From: APTX Date: Sun, 30 Aug 2009 11:15:08 +0000 (+0200) Subject: - Add ability to limit automark file to specific paths. X-Git-Url: https://gitweb.aptx.org/?a=commitdiff_plain;h=150ba79cf52f2a39b5e86caab49227b2a6015863;p=aniplayer-old.git - Add ability to limit automark file to specific paths. --- diff --git a/src/anidbconfigdialog.cpp b/src/anidbconfigdialog.cpp index 5a6050b..7a2027a 100644 --- a/src/anidbconfigdialog.cpp +++ b/src/anidbconfigdialog.cpp @@ -1,6 +1,8 @@ #include "anidbconfigdialog.h" #include "ui_anidbconfigdialog.h" +#include + AniDBConfigDialog::AniDBConfigDialog(QWidget *parent) : QDialog(parent), m_ui(new Ui::AniDBConfigDialog) @@ -67,6 +69,16 @@ void AniDBConfigDialog::setAutomark(int percent) m_ui->automark->setValue(percent); } +QStringList AniDBConfigDialog::paths() const +{ + return QDir::fromNativeSeparators(m_ui->paths->text()).split(';'); +} + +void AniDBConfigDialog::setPaths(const QStringList &paths) +{ + m_ui->paths->setText(QDir::toNativeSeparators(paths.join(";"))); +} + AniDBConfigDialog::~AniDBConfigDialog() { delete m_ui; diff --git a/src/anidbconfigdialog.h b/src/anidbconfigdialog.h index b94504d..078e6b9 100644 --- a/src/anidbconfigdialog.h +++ b/src/anidbconfigdialog.h @@ -32,6 +32,9 @@ public: int automark() const; void setAutomark(int percent); + QStringList paths() const; + void setPaths(const QStringList &paths); + protected: virtual void changeEvent(QEvent *e); diff --git a/src/anidbconfigdialog.ui b/src/anidbconfigdialog.ui index 9ad4cc2..fecdc23 100644 --- a/src/anidbconfigdialog.ui +++ b/src/anidbconfigdialog.ui @@ -25,6 +25,9 @@ Host: + + host + @@ -35,6 +38,9 @@ Port: + + hostPort + @@ -55,6 +61,9 @@ Local Port: + + localPort + @@ -75,6 +84,9 @@ User: + + user + @@ -85,6 +97,9 @@ Password: + + pass + @@ -99,6 +114,9 @@ Automark on: + + automark + @@ -114,6 +132,19 @@ + + + + + + + Paths: + + + paths + + + @@ -138,8 +169,8 @@ accept() - 248 - 254 + 257 + 290 157 @@ -154,8 +185,8 @@ reject() - 316 - 260 + 325 + 290 286 diff --git a/src/videowindow.cpp b/src/videowindow.cpp index 64bf8f4..8e0cbdb 100644 --- a/src/videowindow.cpp +++ b/src/videowindow.cpp @@ -248,10 +248,6 @@ void VideoWindow::open(const QString &file, bool closeOnStop) return; } - AniDBUdpClient::Hash *h = new AniDBUdpClient::Hash(this); - h->hashFile(fileInfo); - - playlist->setDirectory(fileInfo.absoluteDir()); playlist->setCurrent(playlist->indexOfFile(file)); @@ -260,6 +256,10 @@ void VideoWindow::open(const QString &file, bool closeOnStop) Phonon::MediaSource mediaSource(file); videoPlayer->open(mediaSource); +#ifndef NO_ANIDBUDPCLIENT + updateAutomarkable(); +#endif + m_closeOnStop = closeOnStop; } @@ -407,7 +407,7 @@ void VideoWindow::tick(qint64 time) menu->tick(time); #ifndef NO_ANIDBUDPCLIENT - if (!m_automark || m_marked) + if (!m_automarkable || !m_automark || m_marked) return; int percentPlayed = int(double(time) / double(videoPlayer->totalTime()) * double(100)); @@ -571,6 +571,7 @@ void VideoWindow::anidbSettings() dialog.setUser(anidb->user()); dialog.setPass(anidb->pass()); dialog.setAutomark(m_automark); + dialog.setPaths(m_automarkPaths); if (!dialog.exec()) { @@ -585,6 +586,32 @@ void VideoWindow::anidbSettings() anidb->setUser(dialog.user()); anidb->setPass(dialog.pass()); m_automark = dialog.automark(); + m_automarkPaths = dialog.paths(); + + updateAutomarkable(); +} + +void VideoWindow::updateAutomarkable() +{ + if (m_automarkPaths.isEmpty()) + { + m_automarkable = true; + } + else + { + m_automarkable = false; + QString absoluteFilePath = QFileInfo(videoPlayer->currentFile()).absoluteFilePath(); +qDebug() << "FULL" << absoluteFilePath; + foreach (const QString &p, m_automarkPaths) + { +qDebug() << "PART" << p; + if (absoluteFilePath.startsWith(p, Qt::CaseSensitive)) + { + m_automarkable = true; + break; + } + } + } } #endif @@ -653,6 +680,7 @@ void VideoWindow::saveSettings() settings.setValue("user", anidb->user()); settings.setValue("pass", anidb->pass()); settings.setValue("automark", m_automark); + settings.setValue("paths", m_automarkPaths); settings.endGroup(); # endif #endif @@ -686,6 +714,7 @@ void VideoWindow::loadSettings() anidb->setUser(settings.value("user").toString()); anidb->setPass(settings.value("pass").toString()); m_automark = settings.value("automark", 0).toInt(); + m_automarkPaths = settings.value("paths", QStringList()).toStringList(); settings.endGroup(); # endif #endif diff --git a/src/videowindow.h b/src/videowindow.h index 95482fe..754ae4e 100644 --- a/src/videowindow.h +++ b/src/videowindow.h @@ -102,6 +102,8 @@ private slots: void showMarkResult(bool success); void anidbSettings(); + void updateAutomarkable(); + #endif private: void addAction(const QString &name, const QString &text, const QKeySequence &shortcut = QKeySequence(), bool checkable = false); @@ -145,7 +147,9 @@ private: #ifndef NO_ANIDBUDPCLIENT int m_automark; + QStringList m_automarkPaths; bool m_marked; + bool m_automarkable; AniDBUdpClient::Client *anidb; AniDBUdpClient::MylistAddCommand *addCommand; #endif