diff options
author | Mateusz Łukasik <mati75@linuxmint.pl> | 2018-05-17 21:02:30 +0200 |
---|---|---|
committer | Mateusz Łukasik <mati75@linuxmint.pl> | 2018-05-17 21:02:30 +0200 |
commit | f32f79beb0288871bd88450df90e0f6e85e4a1cc (patch) | |
tree | 1a7af633202234147a53fb0f874026279ee0cba0 /src/findsubtitles | |
parent | 6c3f8733e9723de625a14670a948419235504e64 (diff) |
New upstream version 18.4.0~ds0
Diffstat (limited to 'src/findsubtitles')
-rw-r--r-- | src/findsubtitles/findsubtitles.pro | 2 | ||||
-rw-r--r-- | src/findsubtitles/findsubtitlesconfigdialog.cpp | 8 | ||||
-rw-r--r-- | src/findsubtitles/findsubtitlesconfigdialog.h | 4 | ||||
-rw-r--r-- | src/findsubtitles/findsubtitleswindow.cpp | 33 | ||||
-rw-r--r-- | src/findsubtitles/findsubtitleswindow.h | 4 | ||||
-rw-r--r-- | src/findsubtitles/osclient.cpp | 38 | ||||
-rw-r--r-- | src/findsubtitles/osclient.h | 8 |
7 files changed, 65 insertions, 32 deletions
diff --git a/src/findsubtitles/findsubtitles.pro b/src/findsubtitles/findsubtitles.pro index ce7dfc7..eee7384 100644 --- a/src/findsubtitles/findsubtitles.pro +++ b/src/findsubtitles/findsubtitles.pro @@ -19,6 +19,7 @@ HEADERS += ../filehash.h \ ../filechooser.h \ ../languages.h \ ../version.h \ + ../myscroller.h \ fixsubs.h \ findsubtitlesconfigdialog.h \ findsubtitleswindow.h @@ -28,6 +29,7 @@ SOURCES += ../filehash.cpp \ ../filechooser.cpp \ ../languages.cpp \ ../version.cpp \ + ../myscroller.cpp \ fixsubs.cpp \ findsubtitlesconfigdialog.cpp \ findsubtitleswindow.cpp \ diff --git a/src/findsubtitles/findsubtitlesconfigdialog.cpp b/src/findsubtitles/findsubtitlesconfigdialog.cpp index 7a15484..8b11ce5 100644 --- a/src/findsubtitles/findsubtitlesconfigdialog.cpp +++ b/src/findsubtitles/findsubtitlesconfigdialog.cpp @@ -17,6 +17,7 @@ */ #include "findsubtitlesconfigdialog.h" +#include "osclient.h" #include <QNetworkProxy> FindSubtitlesConfigDialog::FindSubtitlesConfigDialog( QWidget* parent, Qt::WindowFlags f ) @@ -24,8 +25,9 @@ FindSubtitlesConfigDialog::FindSubtitlesConfigDialog( QWidget* parent, Qt::Windo { setupUi(this); - search_method_combo->addItem(tr("Hash"), Hash); - search_method_combo->addItem(tr("Filename"), Filename); + search_method_combo->addItem(tr("Hash"), OSClient::Hash); + search_method_combo->addItem(tr("Filename"), OSClient::Filename); + search_method_combo->addItem(tr("Hash and filename"), OSClient::HashAndFilename); #ifdef FS_USE_PROXY proxy_type_combo->addItem( tr("HTTP"), QNetworkProxy::HttpProxy); @@ -77,7 +79,7 @@ QString FindSubtitlesConfigDialog::server() { } #endif -void FindSubtitlesConfigDialog::setSearchMethod(SearchMethod m) { +void FindSubtitlesConfigDialog::setSearchMethod(int m) { int pos = search_method_combo->findData(m); if (pos == -1) pos = 0; search_method_combo->setCurrentIndex(pos); diff --git a/src/findsubtitles/findsubtitlesconfigdialog.h b/src/findsubtitles/findsubtitlesconfigdialog.h index 084c325..dff4a1a 100644 --- a/src/findsubtitles/findsubtitlesconfigdialog.h +++ b/src/findsubtitles/findsubtitlesconfigdialog.h @@ -26,8 +26,6 @@ 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(); @@ -37,7 +35,7 @@ public: QString server(); #endif - void setSearchMethod(SearchMethod m); + void setSearchMethod(int m); int searchMethod(); #ifdef OS_SEARCH_WORKAROUND diff --git a/src/findsubtitles/findsubtitleswindow.cpp b/src/findsubtitles/findsubtitleswindow.cpp index de25063..ca4389f 100644 --- a/src/findsubtitles/findsubtitleswindow.cpp +++ b/src/findsubtitles/findsubtitleswindow.cpp @@ -137,7 +137,7 @@ FindSubtitlesWindow::FindSubtitlesWindow( QWidget * parent, Qt::WindowFlags f ) this, SLOT(updateRefreshButton()) ); connect( downloader, SIGNAL(connecting(QString)), - this, SLOT(connecting(QString)) ); + this, SLOT(showConnecting(QString)) ); connect( downloader, SIGNAL(dataReadProgress(int, int)), this, SLOT(updateDataReadProgress(int, int)) ); */ @@ -148,6 +148,7 @@ FindSubtitlesWindow::FindSubtitlesWindow( QWidget * parent, Qt::WindowFlags f ) connect( osclient, SIGNAL(loginFailed()), this, SLOT(showLoginFailed()) ); connect( osclient, SIGNAL(searchFailed()), this, SLOT(showSearchFailed()) ); connect( osclient, SIGNAL(errorFound(int, const QString &)), this, SLOT(showErrorOS(int, const QString &)) ); + connect( osclient, SIGNAL(connecting()), this, SLOT(showConnecting()) ); #ifdef DOWNLOAD_SUBS include_lang_on_filename = false; @@ -186,8 +187,6 @@ 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; @@ -282,7 +281,13 @@ void FindSubtitlesWindow::retranslateStrings() { copyLinkAct->setText( tr("&Copy link to clipboard") ); // Icons -#ifndef NO_SMPLAYER_SUPPORT +#ifdef NO_SMPLAYER_SUPPORT + download_button->setIcon(QApplication::style()->standardIcon(QStyle::SP_ArrowDown)); + refresh_button->setIcon(QApplication::style()->standardIcon(QStyle::SP_BrowserReload)); + configure_button->setIcon(QIcon::fromTheme("preferences-other")); + downloadAct->setIcon(QApplication::style()->standardIcon(QStyle::SP_ArrowDown)); + copyLinkAct->setIcon(QIcon::fromTheme("edit-copy")); +#else download_button->setIcon( Images::icon("download") ); configure_button->setIcon( Images::icon("prefs") ); refresh_button->setIcon( Images::icon("refresh") ); @@ -312,9 +317,7 @@ void FindSubtitlesWindow::setMovie(QString filename) { QFileInfo fi(filename); qint64 file_size = fi.size(); QString basename; - if (search_method == FindSubtitlesConfigDialog::Filename) { - basename = fi.completeBaseName(); // Filename without extension - } + basename = fi.completeBaseName(); // Filename without extension osclient->search(hash, file_size, basename); last_file = filename; } @@ -366,9 +369,15 @@ void FindSubtitlesWindow::showError(QString error) { .arg(error)); } -void FindSubtitlesWindow::connecting(QString host) { +void FindSubtitlesWindow::showConnecting() { + status->setText(tr("Connecting...")); +} + +/* +void FindSubtitlesWindow::showConnecting(QString host) { status->setText( tr("Connecting to %1...").arg(host) ); } +*/ void FindSubtitlesWindow::showLoginFailed() { status->setText( tr("Login to opensubtitles.org has failed") ); @@ -788,7 +797,7 @@ void FindSubtitlesWindow::on_configure_button_clicked() { #ifdef FS_USE_SERVER_CONFIG d.setServer( os_server ); #endif - d.setSearchMethod( (FindSubtitlesConfigDialog::SearchMethod) search_method ); + d.setSearchMethod(osclient->searchMethod()); #ifdef OS_SEARCH_WORKAROUND d.setRetries(osclient->retries()); #endif @@ -809,7 +818,7 @@ void FindSubtitlesWindow::on_configure_button_clicked() { #ifdef FS_USE_SERVER_CONFIG os_server = d.server(); #endif - search_method = d.searchMethod(); + osclient->setSearchMethod( (OSClient::SearchMethod) d.searchMethod() ); #ifdef OS_SEARCH_WORKAROUND osclient->setRetries( d.retries() ); #endif @@ -881,7 +890,7 @@ void FindSubtitlesWindow::saveSettings() { set->setValue("proxy/password", proxy_password); #endif - set->setValue("search_method", search_method); + set->setValue("search_method", osclient->searchMethod()); set->endGroup(); } @@ -910,7 +919,7 @@ void FindSubtitlesWindow::loadSettings() { proxy_password = set->value("proxy/password", proxy_password).toString(); #endif - search_method = set->value("search_method", search_method).toInt(); + osclient->setSearchMethod( (OSClient::SearchMethod) set->value("search_method", osclient->searchMethod()).toInt() ); set->endGroup(); } diff --git a/src/findsubtitles/findsubtitleswindow.h b/src/findsubtitles/findsubtitleswindow.h index 0837b7a..048e379 100644 --- a/src/findsubtitles/findsubtitleswindow.h +++ b/src/findsubtitles/findsubtitleswindow.h @@ -70,7 +70,8 @@ protected slots: void applyCurrentFilter(); void showError(QString error); - void connecting(QString host); + void showConnecting(); + //void showConnecting(QString host); void showLoginFailed(); void showSearchFailed(); void showErrorOS(int, const QString &); @@ -137,7 +138,6 @@ protected: // Opensubtitles server QString os_server; - int search_method; #ifdef FS_USE_PROXY // Proxy diff --git a/src/findsubtitles/osclient.cpp b/src/findsubtitles/osclient.cpp index 6da6dfb..a2fec28 100644 --- a/src/findsubtitles/osclient.cpp +++ b/src/findsubtitles/osclient.cpp @@ -27,6 +27,7 @@ OSClient::OSClient(QObject* parent) : , best_search_count(0) , search_retries(8) #endif + , search_method(HashAndFilename) { rpc = new MaiaXmlRpcClient(QUrl("http://api.opensubtitles.org/xml-rpc"), this); } @@ -45,7 +46,7 @@ void OSClient::login() { qDebug("OSClient::login"); QString user_agent = "SMPlayer v" + Version::stable(); - qDebug("OSClient::login: user agent: %s", user_agent.toUtf8().constData()); + qDebug() << "OSClient::login: user agent:" << user_agent; QVariantList args; @@ -76,6 +77,8 @@ void OSClient::search(const QString & hash, qint64 file_size, const QString & fi connect(this, SIGNAL(loggedIn()), this, SLOT(doSearch())); login(); #endif + + emit connecting(); } #ifdef OS_SEARCH_WORKAROUND @@ -90,16 +93,28 @@ void OSClient::doSearch() { #endif qDebug("OSClient::doSearch"); + QVariantList list; + QVariantMap m; m["sublanguageid"] = "all"; - if (!search_filename.isEmpty()) { - m["query"] = search_filename; - } else { - m["moviehash"] = search_hash; - m["moviebytesize"] = QString::number(search_size); + + switch (search_method) { + case Filename: + m["query"] = search_filename; + break; + case Hash: + m["moviehash"] = search_hash; + m["moviebytesize"] = QString::number(search_size); + break; + case HashAndFilename: + m["moviehash"] = search_hash; + m["moviebytesize"] = QString::number(search_size); + QVariantMap m2; + m2["sublanguageid"] = "all"; + m2["query"] = search_filename; + list.append(m2); } - QVariantList list; #ifdef OS_SEARCH_WORKAROUND // Sometimes opensubtitles return 0 subtitles // A workaround seems to add the query several times @@ -131,8 +146,7 @@ void OSClient::responseLogin(QVariant &arg) { QString status = m["status"].toString(); QString t = m["token"].toString(); - qDebug("OSClient::responseLogin: status: %s", status.toLatin1().constData()); - qDebug("OSClient::responseLogin: token: %s", t.toLatin1().constData()); + qDebug() << "OSClient::responseLogin: status:" << status << "token:" << t; if (status == "200 OK") { token = t; @@ -149,7 +163,7 @@ void OSClient::responseSearch(QVariant &arg) { QVariantMap m = arg.toMap(); QString status = m["status"].toString(); - qDebug("OSClient::responseSearch: status: %s", status.toLatin1().constData()); + qDebug() << "OSClient::responseSearch: status:" << status; //qDebug("count: %d", m.count()); /* @@ -168,7 +182,7 @@ void OSClient::responseSearch(QVariant &arg) { s_list.clear(); QVariantList data = m["data"].toList(); - qDebug("OSClient::responseSearch: data count: %d", data.count()); + qDebug() << "OSClient::responseSearch: data count:" << data.count(); #ifdef OS_SEARCH_WORKAROUND if (best_search_count >= data.count()) { @@ -223,7 +237,7 @@ void OSClient::responseSearch(QVariant &arg) { } void OSClient::gotFault(int error, const QString &message) { - qDebug("OSClient::gotFault: error: %d, message: %s", error, message.toUtf8().constData()); + qDebug() << "OSClient::gotFault: error:" << error << "message:" << message; emit errorFound(error, message); } diff --git a/src/findsubtitles/osclient.h b/src/findsubtitles/osclient.h index b7dff71..eb122c1 100644 --- a/src/findsubtitles/osclient.h +++ b/src/findsubtitles/osclient.h @@ -31,6 +31,8 @@ class OSClient : public QObject { Q_OBJECT public: + enum SearchMethod { Hash = 0, Filename = 1, HashAndFilename = 2 }; + OSClient(QObject* parent = 0); QList<OSSubtitle> subtitleList() { return s_list; }; @@ -44,6 +46,9 @@ public: int retries() { return search_retries; }; #endif + void setSearchMethod(SearchMethod m) { search_method = m; }; + int searchMethod() { return search_method; }; + public slots: void setServer(const QString & server); void search(const QString & hash, qint64 file_size, const QString & filename = QString::null); @@ -61,6 +66,7 @@ private slots: void responseSearch(QVariant &); signals: + void connecting(); void loggedIn(); void loginFailed(); void searchFinished(); @@ -79,6 +85,8 @@ private: int search_retries; #endif QList <OSSubtitle> s_list; + + int search_method; }; #endif |