diff options
author | Mateusz Łukasik <mati75@linuxmint.pl> | 2017-10-08 22:17:31 +0200 |
---|---|---|
committer | Mateusz Łukasik <mati75@linuxmint.pl> | 2017-10-08 22:17:31 +0200 |
commit | 867f979d517190a0aaab06f4180cdd964a48677e (patch) | |
tree | c4367ae381f38a39e36b574513229be318e20556 /src/findsubtitles | |
parent | f6d0340806ec11f417006a3704eca7ec7d537eab (diff) |
New upstream version 17.10.0~ds0
Diffstat (limited to 'src/findsubtitles')
-rw-r--r-- | src/findsubtitles/findsubtitles.pro | 3 | ||||
-rw-r--r-- | src/findsubtitles/findsubtitlesconfigdialog.cpp | 24 | ||||
-rw-r--r-- | src/findsubtitles/findsubtitlesconfigdialog.h | 7 | ||||
-rw-r--r-- | src/findsubtitles/findsubtitlesconfigdialog.ui | 119 | ||||
-rw-r--r-- | src/findsubtitles/findsubtitleswindow.cpp | 26 | ||||
-rw-r--r-- | src/findsubtitles/findsubtitleswindow.h | 1 | ||||
-rw-r--r-- | src/findsubtitles/findsubtitleswindow.ui | 173 | ||||
-rw-r--r-- | src/findsubtitles/osclient.cpp | 13 | ||||
-rw-r--r-- | src/findsubtitles/osclient.h | 3 |
9 files changed, 218 insertions, 151 deletions
diff --git a/src/findsubtitles/findsubtitles.pro b/src/findsubtitles/findsubtitles.pro index c316236..ce7dfc7 100644 --- a/src/findsubtitles/findsubtitles.pro +++ b/src/findsubtitles/findsubtitles.pro @@ -42,7 +42,8 @@ DEFINES += NO_SMPLAYER_SUPPORT DEFINES += DOWNLOAD_SUBS #DEFINES += USE_QUAZIP #DEFINES += FS_USE_PROXY -DEFINES += OS_SEARCH_WORKAROUND +#DEFINES += OS_SEARCH_WORKAROUND +#DEFINES += FS_USE_SERVER_CONFIG contains( DEFINES, DOWNLOAD_SUBS ) { INCLUDEPATH += filedownloader diff --git a/src/findsubtitles/findsubtitlesconfigdialog.cpp b/src/findsubtitles/findsubtitlesconfigdialog.cpp index 678939e..4162467 100644 --- a/src/findsubtitles/findsubtitlesconfigdialog.cpp +++ b/src/findsubtitles/findsubtitlesconfigdialog.cpp @@ -24,6 +24,9 @@ FindSubtitlesConfigDialog::FindSubtitlesConfigDialog( QWidget* parent, Qt::Windo { setupUi(this); + search_method_combo->addItem(tr("Hash"), Hash); + search_method_combo->addItem(tr("Filename"), Filename); + #ifdef FS_USE_PROXY proxy_type_combo->addItem( tr("HTTP"), QNetworkProxy::HttpProxy); proxy_type_combo->addItem( tr("SOCKS5"), QNetworkProxy::Socks5Proxy); @@ -49,12 +52,22 @@ FindSubtitlesConfigDialog::FindSubtitlesConfigDialog( QWidget* parent, Qt::Windo misc_group->hide(); #endif +#ifndef FS_USE_SERVER_CONFIG + server_label->hide(); + server_edit->hide(); +#endif + +#if !defined(FS_USE_SERVER_CONFIG) && !defined(OS_SEARCH_WORKAROUND) + server_group->hide(); +#endif + layout()->setSizeConstraint(QLayout::SetFixedSize); } FindSubtitlesConfigDialog::~FindSubtitlesConfigDialog() { } +#ifdef FS_USE_SERVER_CONFIG void FindSubtitlesConfigDialog::setServer(QString server) { server_edit->setText(server); } @@ -62,6 +75,17 @@ void FindSubtitlesConfigDialog::setServer(QString server) { QString FindSubtitlesConfigDialog::server() { return server_edit->text(); } +#endif + +void FindSubtitlesConfigDialog::setSearchMethod(SearchMethod m) { + int pos = search_method_combo->findData(m); + if (pos == -1) pos = 0; + search_method_combo->setCurrentIndex(pos); +} + +int FindSubtitlesConfigDialog::searchMethod() { + return search_method_combo->itemData(search_method_combo->currentIndex()).toInt(); +} #ifdef OS_SEARCH_WORKAROUND void FindSubtitlesConfigDialog::setRetries(int n) { diff --git a/src/findsubtitles/findsubtitlesconfigdialog.h b/src/findsubtitles/findsubtitlesconfigdialog.h index b308b3b..c2634a9 100644 --- a/src/findsubtitles/findsubtitlesconfigdialog.h +++ b/src/findsubtitles/findsubtitlesconfigdialog.h @@ -26,12 +26,19 @@ class FindSubtitlesConfigDialog : public QDialog, public Ui::FindSubtitlesConfig Q_OBJECT public: + enum SearchMethod { Hash = 0, Filename = 1 }; + FindSubtitlesConfigDialog( QWidget* parent = 0, Qt::WindowFlags f = 0 ); ~FindSubtitlesConfigDialog(); +#ifdef FS_USE_SERVER_CONFIG // Server void setServer(QString server); QString server(); +#endif + + void setSearchMethod(SearchMethod m); + int searchMethod(); #ifdef OS_SEARCH_WORKAROUND void setRetries(int n); diff --git a/src/findsubtitles/findsubtitlesconfigdialog.ui b/src/findsubtitles/findsubtitlesconfigdialog.ui index 9fe5de7..0dc93c8 100644 --- a/src/findsubtitles/findsubtitlesconfigdialog.ui +++ b/src/findsubtitles/findsubtitlesconfigdialog.ui @@ -7,7 +7,7 @@ <x>0</x> <y>0</y> <width>499</width> - <height>397</height> + <height>464</height> </rect> </property> <property name="windowTitle"> @@ -15,58 +15,34 @@ </property> <layout class="QVBoxLayout" name="verticalLayout_3"> <item> - <widget class="QGroupBox" name="server_group"> + <widget class="QGroupBox" name="misc_group"> <property name="title"> - <string>Server</string> + <string>General</string> </property> <layout class="QVBoxLayout" name="verticalLayout"> <item> - <layout class="QHBoxLayout" name="horizontalLayout"> + <layout class="QHBoxLayout" name="horizontalLayout_3"> <item> - <widget class="QLabel" name="label"> + <widget class="QLabel" name="label_7"> <property name="text"> - <string>&OpenSubtitles server:</string> + <string>Search &method:</string> </property> <property name="buddy"> - <cstring>server_edit</cstring> + <cstring>search_method_combo</cstring> </property> </widget> </item> <item> - <widget class="QLineEdit" name="server_edit"/> + <widget class="QComboBox" name="search_method_combo"/> </item> - </layout> - </item> - <item> - <layout class="QHBoxLayout" name="horizontalLayout_2"> <item> - <widget class="QLabel" name="retries_label"> - <property name="text"> - <string>Number of &retries:</string> - </property> - <property name="buddy"> - <cstring>retries_spin</cstring> - </property> - </widget> - </item> - <item> - <widget class="QSpinBox" name="retries_spin"> - <property name="minimum"> - <number>1</number> - </property> - <property name="maximum"> - <number>50</number> - </property> - </widget> - </item> - <item> - <spacer name="horizontalSpacer"> + <spacer name="horizontalSpacer_2"> <property name="orientation"> <enum>Qt::Horizontal</enum> </property> <property name="sizeHint" stdset="0"> <size> - <width>257</width> + <width>40</width> <height>20</height> </size> </property> @@ -74,6 +50,13 @@ </item> </layout> </item> + <item> + <widget class="QCheckBox" name="addlang_check"> + <property name="text"> + <string>A&ppend language code to the subtitle filename</string> + </property> + </widget> + </item> </layout> </widget> </item> @@ -192,17 +175,64 @@ </widget> </item> <item> - <widget class="QGroupBox" name="misc_group"> + <widget class="QGroupBox" name="server_group"> <property name="title"> - <string>Misc</string> + <string>Server</string> </property> <layout class="QVBoxLayout" name="verticalLayout_2"> <item> - <widget class="QCheckBox" name="addlang_check"> - <property name="text"> - <string>A&ppend language code to the subtitle filename</string> - </property> - </widget> + <layout class="QHBoxLayout" name="horizontalLayout"> + <item> + <widget class="QLabel" name="server_label"> + <property name="text"> + <string>&OpenSubtitles server:</string> + </property> + <property name="buddy"> + <cstring>server_edit</cstring> + </property> + </widget> + </item> + <item> + <widget class="QLineEdit" name="server_edit"/> + </item> + </layout> + </item> + <item> + <layout class="QHBoxLayout" name="horizontalLayout_2"> + <item> + <widget class="QLabel" name="retries_label"> + <property name="text"> + <string>Number of &retries:</string> + </property> + <property name="buddy"> + <cstring>retries_spin</cstring> + </property> + </widget> + </item> + <item> + <widget class="QSpinBox" name="retries_spin"> + <property name="minimum"> + <number>1</number> + </property> + <property name="maximum"> + <number>50</number> + </property> + </widget> + </item> + <item> + <spacer name="horizontalSpacer"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>257</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + </layout> </item> </layout> </widget> @@ -220,15 +250,16 @@ </layout> </widget> <tabstops> - <tabstop>server_edit</tabstop> - <tabstop>retries_spin</tabstop> + <tabstop>search_method_combo</tabstop> + <tabstop>addlang_check</tabstop> <tabstop>use_proxy_check</tabstop> <tabstop>proxy_hostname_edit</tabstop> <tabstop>proxy_port_spin</tabstop> <tabstop>proxy_username_edit</tabstop> <tabstop>proxy_password_edit</tabstop> <tabstop>proxy_type_combo</tabstop> - <tabstop>addlang_check</tabstop> + <tabstop>server_edit</tabstop> + <tabstop>retries_spin</tabstop> <tabstop>buttonBox</tabstop> </tabstops> <resources/> diff --git a/src/findsubtitles/findsubtitleswindow.cpp b/src/findsubtitles/findsubtitleswindow.cpp index e914b04..ed05d25 100644 --- a/src/findsubtitles/findsubtitleswindow.cpp +++ b/src/findsubtitles/findsubtitleswindow.cpp @@ -150,7 +150,7 @@ FindSubtitlesWindow::FindSubtitlesWindow( QWidget * parent, Qt::WindowFlags f ) connect( osclient, SIGNAL(errorFound(int, const QString &)), this, SLOT(showErrorOS(int, const QString &)) ); #ifdef DOWNLOAD_SUBS - include_lang_on_filename = true; + include_lang_on_filename = false; file_downloader = new FileDownloader(this); file_downloader->setModal(false); @@ -186,6 +186,8 @@ FindSubtitlesWindow::FindSubtitlesWindow( QWidget * parent, Qt::WindowFlags f ) os_server = "http://api.opensubtitles.org/xml-rpc"; osclient->setServer(os_server); + search_method = FindSubtitlesConfigDialog::Hash; + #ifdef FS_USE_PROXY // Proxy use_proxy = false; @@ -288,6 +290,9 @@ void FindSubtitlesWindow::retranslateStrings() { downloadAct->setIcon( Images::icon("download") ); copyLinkAct->setIcon( Images::icon("copy") ); #endif + + credits_label->setText("<i>"+ tr("Subtitles service powered by %1") + .arg("<a href=\"http://www.opensubtitles.org\">www.OpenSubtitles.org</a>") + "</i>"); } void FindSubtitlesWindow::setMovie(QString filename) { @@ -304,8 +309,13 @@ void FindSubtitlesWindow::setMovie(QString filename) { if (hash.isEmpty()) { qWarning("FindSubtitlesWindow::setMovie: hash invalid. Doing nothing."); } else { - qint64 file_size = QFileInfo(filename).size(); - osclient->search(hash, file_size); + QFileInfo fi(filename); + qint64 file_size = fi.size(); + QString basename; + if (search_method == FindSubtitlesConfigDialog::Filename) { + basename = fi.completeBaseName(); // Filename without extension + } + osclient->search(hash, file_size, basename); last_file = filename; } } @@ -775,7 +785,10 @@ void FindSubtitlesWindow::on_configure_button_clicked() { FindSubtitlesConfigDialog d(this); + #ifdef FS_USE_SERVER_CONFIG d.setServer( os_server ); + #endif + d.setSearchMethod( (FindSubtitlesConfigDialog::SearchMethod) search_method ); #ifdef OS_SEARCH_WORKAROUND d.setRetries(osclient->retries()); #endif @@ -793,7 +806,10 @@ void FindSubtitlesWindow::on_configure_button_clicked() { #endif if (d.exec() == QDialog::Accepted) { + #ifdef FS_USE_SERVER_CONFIG os_server = d.server(); + #endif + search_method = d.searchMethod(); #ifdef OS_SEARCH_WORKAROUND osclient->setRetries( d.retries() ); #endif @@ -865,6 +881,8 @@ void FindSubtitlesWindow::saveSettings() { set->setValue("proxy/password", proxy_password); #endif + set->setValue("search_method", search_method); + set->endGroup(); } @@ -892,6 +910,8 @@ void FindSubtitlesWindow::loadSettings() { proxy_password = set->value("proxy/password", proxy_password).toString(); #endif + search_method = set->value("search_method", search_method).toInt(); + set->endGroup(); } diff --git a/src/findsubtitles/findsubtitleswindow.h b/src/findsubtitles/findsubtitleswindow.h index fe5992c..dc55edd 100644 --- a/src/findsubtitles/findsubtitleswindow.h +++ b/src/findsubtitles/findsubtitleswindow.h @@ -137,6 +137,7 @@ protected: // Opensubtitles server QString os_server; + int search_method; #ifdef FS_USE_PROXY // Proxy diff --git a/src/findsubtitles/findsubtitleswindow.ui b/src/findsubtitles/findsubtitleswindow.ui index 886358b..2d3b660 100644 --- a/src/findsubtitles/findsubtitleswindow.ui +++ b/src/findsubtitles/findsubtitleswindow.ui @@ -1,7 +1,8 @@ -<ui version="4.0" > +<?xml version="1.0" encoding="UTF-8"?> +<ui version="4.0"> <class>FindSubtitlesWindow</class> - <widget class="QWidget" name="FindSubtitlesWindow" > - <property name="geometry" > + <widget class="QWidget" name="FindSubtitlesWindow"> + <property name="geometry"> <rect> <x>0</x> <y>0</y> @@ -9,100 +10,67 @@ <height>385</height> </rect> </property> - <property name="windowTitle" > + <property name="windowTitle"> <string>Find Subtitles</string> </property> - <layout class="QVBoxLayout" > - <property name="spacing" > - <number>6</number> - </property> - <property name="leftMargin" > - <number>9</number> - </property> - <property name="topMargin" > - <number>9</number> - </property> - <property name="rightMargin" > - <number>9</number> - </property> - <property name="bottomMargin" > - <number>9</number> - </property> + <layout class="QVBoxLayout" name="verticalLayout"> <item> - <layout class="QHBoxLayout" > - <property name="spacing" > + <layout class="QHBoxLayout"> + <property name="spacing"> <number>6</number> </property> - <property name="leftMargin" > - <number>0</number> - </property> - <property name="topMargin" > - <number>0</number> - </property> - <property name="rightMargin" > - <number>0</number> - </property> - <property name="bottomMargin" > + <property name="margin"> <number>0</number> </property> <item> - <widget class="QLabel" name="subtitles_for_label" > - <property name="text" > + <widget class="QLabel" name="subtitles_for_label"> + <property name="text"> <string>&Subtitles for</string> </property> - <property name="buddy" > + <property name="buddy"> <cstring>file_chooser</cstring> </property> </widget> </item> <item> - <widget class="FileChooser" name="file_chooser" /> + <widget class="FileChooser" name="file_chooser"/> </item> </layout> </item> <item> - <widget class="QTreeView" name="view" /> + <widget class="QTreeView" name="view"/> </item> <item> - <layout class="QHBoxLayout" > - <property name="spacing" > + <layout class="QHBoxLayout"> + <property name="spacing"> <number>6</number> </property> - <property name="leftMargin" > - <number>0</number> - </property> - <property name="topMargin" > - <number>0</number> - </property> - <property name="rightMargin" > - <number>0</number> - </property> - <property name="bottomMargin" > + <property name="margin"> <number>0</number> </property> <item> - <widget class="QLabel" name="filter_language_label" > - <property name="text" > + <widget class="QLabel" name="filter_language_label"> + <property name="text"> <string>&Language:</string> </property> - <property name="buddy" > + <property name="buddy"> <cstring>language_filter</cstring> </property> </widget> </item> <item> - <widget class="QComboBox" name="language_filter" > - <property name="editable" > + <widget class="QComboBox" name="language_filter"> + <property name="editable"> <bool>false</bool> </property> </widget> </item> <item> <spacer> - <property name="orientation" > + <property name="orientation"> <enum>Qt::Horizontal</enum> </property> - <property name="sizeHint" > + <property name="sizeHint" stdset="0"> <size> <width>40</width> <height>20</height> @@ -111,28 +79,28 @@ </spacer> </item> <item> - <widget class="QPushButton" name="configure_button" > - <property name="text" > + <widget class="QPushButton" name="configure_button"> + <property name="text"> <string>&Options</string> </property> </widget> </item> <item> - <widget class="QPushButton" name="refresh_button" > - <property name="enabled" > + <widget class="QPushButton" name="refresh_button"> + <property name="enabled"> <bool>false</bool> </property> - <property name="text" > + <property name="text"> <string>&Refresh</string> </property> </widget> </item> <item> - <widget class="QPushButton" name="download_button" > - <property name="enabled" > + <widget class="QPushButton" name="download_button"> + <property name="enabled"> <bool>false</bool> </property> - <property name="text" > + <property name="text"> <string>&Download</string> </property> </widget> @@ -140,56 +108,50 @@ </layout> </item> <item> - <layout class="QHBoxLayout" > - <property name="spacing" > + <layout class="QHBoxLayout"> + <property name="spacing"> <number>6</number> </property> - <property name="leftMargin" > - <number>0</number> - </property> - <property name="topMargin" > - <number>0</number> - </property> - <property name="rightMargin" > - <number>0</number> - </property> - <property name="bottomMargin" > + <property name="margin"> <number>0</number> </property> <item> - <widget class="QLabel" name="status" > - <property name="sizePolicy" > - <sizepolicy vsizetype="Preferred" hsizetype="Expanding" > + <widget class="QLabel" name="status"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Expanding" vsizetype="Preferred"> <horstretch>0</horstretch> <verstretch>0</verstretch> </sizepolicy> </property> - <property name="frameShape" > + <property name="frameShape"> <enum>QFrame::Panel</enum> </property> - <property name="frameShadow" > + <property name="frameShadow"> <enum>QFrame::Sunken</enum> </property> - <property name="text" > + <property name="text"> <string/> </property> + <property name="wordWrap"> + <bool>true</bool> + </property> </widget> </item> <item> - <widget class="QProgressBar" name="progress" > - <property name="sizePolicy" > - <sizepolicy vsizetype="Fixed" hsizetype="Preferred" > + <widget class="QProgressBar" name="progress"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Fixed"> <horstretch>0</horstretch> <verstretch>0</verstretch> </sizepolicy> </property> - <property name="value" > + <property name="value"> <number>0</number> </property> - <property name="textVisible" > + <property name="textVisible"> <bool>false</bool> </property> - <property name="orientation" > + <property name="orientation"> <enum>Qt::Horizontal</enum> </property> </widget> @@ -197,14 +159,28 @@ </layout> </item> <item> - <widget class="QDialogButtonBox" name="buttonBox" > - <property name="orientation" > - <enum>Qt::Horizontal</enum> - </property> - <property name="standardButtons" > - <set>QDialogButtonBox::Close</set> - </property> - </widget> + <layout class="QHBoxLayout" name="horizontalLayout"> + <item> + <widget class="QLabel" name="credits_label"> + <property name="text"> + <string notr="true">Subtitles service powered by....</string> + </property> + <property name="openExternalLinks"> + <bool>true</bool> + </property> + </widget> + </item> + <item> + <widget class="QDialogButtonBox" name="buttonBox"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="standardButtons"> + <set>QDialogButtonBox::Close</set> + </property> + </widget> + </item> + </layout> </item> </layout> </widget> @@ -219,6 +195,7 @@ <tabstop>file_chooser</tabstop> <tabstop>view</tabstop> <tabstop>language_filter</tabstop> + <tabstop>configure_button</tabstop> <tabstop>refresh_button</tabstop> <tabstop>download_button</tabstop> <tabstop>buttonBox</tabstop> @@ -231,11 +208,11 @@ <receiver>FindSubtitlesWindow</receiver> <slot>close()</slot> <hints> - <hint type="sourcelabel" > + <hint type="sourcelabel"> <x>334</x> <y>380</y> </hint> - <hint type="destinationlabel" > + <hint type="destinationlabel"> <x>334</x> <y>201</y> </hint> diff --git a/src/findsubtitles/osclient.cpp b/src/findsubtitles/osclient.cpp index 238ee92..7954086 100644 --- a/src/findsubtitles/osclient.cpp +++ b/src/findsubtitles/osclient.cpp @@ -56,11 +56,12 @@ void OSClient::login() { this, SLOT(gotFault(int, const QString &))); } -void OSClient::search(const QString & hash, qint64 file_size) { - qDebug() << "OSClient::search: hash: " << hash << "file_size: " << file_size; +void OSClient::search(const QString & hash, qint64 file_size, const QString & filename) { + qDebug() << "OSClient::search: hash:" << hash << "file_size:" << file_size << "filename:" << filename; search_hash = hash; search_size = file_size; + search_filename = filename; disconnect(this, SIGNAL(loggedIn()), this, SLOT(doSearch())); @@ -91,8 +92,12 @@ void OSClient::doSearch() { QVariantMap m; m["sublanguageid"] = "all"; - m["moviehash"] = search_hash; - m["moviebytesize"] = QString::number(search_size); + if (!search_filename.isEmpty()) { + m["query"] = search_filename; + } else { + m["moviehash"] = search_hash; + m["moviebytesize"] = QString::number(search_size); + } QVariantList list; #ifdef OS_SEARCH_WORKAROUND diff --git a/src/findsubtitles/osclient.h b/src/findsubtitles/osclient.h index 96a453f..9120a54 100644 --- a/src/findsubtitles/osclient.h +++ b/src/findsubtitles/osclient.h @@ -46,7 +46,7 @@ public: public slots: void setServer(const QString & server); - void search(const QString & hash, qint64 file_size); + void search(const QString & hash, qint64 file_size, const QString & filename = QString::null); private slots: void login(); @@ -73,6 +73,7 @@ private: bool logged_in; QString search_hash; qint64 search_size; + QString search_filename; #ifdef OS_SEARCH_WORKAROUND int best_search_count; int search_retries; |