summaryrefslogtreecommitdiff
path: root/src/findsubtitles
diff options
context:
space:
mode:
authorMateusz Łukasik <mati75@linuxmint.pl>2018-05-17 21:02:30 +0200
committerMateusz Łukasik <mati75@linuxmint.pl>2018-05-17 21:02:30 +0200
commitf32f79beb0288871bd88450df90e0f6e85e4a1cc (patch)
tree1a7af633202234147a53fb0f874026279ee0cba0 /src/findsubtitles
parent6c3f8733e9723de625a14670a948419235504e64 (diff)
New upstream version 18.4.0~ds0
Diffstat (limited to 'src/findsubtitles')
-rw-r--r--src/findsubtitles/findsubtitles.pro2
-rw-r--r--src/findsubtitles/findsubtitlesconfigdialog.cpp8
-rw-r--r--src/findsubtitles/findsubtitlesconfigdialog.h4
-rw-r--r--src/findsubtitles/findsubtitleswindow.cpp33
-rw-r--r--src/findsubtitles/findsubtitleswindow.h4
-rw-r--r--src/findsubtitles/osclient.cpp38
-rw-r--r--src/findsubtitles/osclient.h8
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