From: APTX Date: Thu, 21 Feb 2013 01:48:02 +0000 (+0100) Subject: Allow building LocalMyList without AniDBUdpClient. Note that this disables adding... X-Git-Url: https://gitweb.tyo.aptx.org/?a=commitdiff_plain;h=87d71e649517eb54c368b983c36cd2519d1ad344;p=localmylist.git Allow building LocalMyList without AniDBUdpClient. Note that this disables adding files, renaming files or handling requests making such version of lml quite limited. --- diff --git a/anioni/anioni.cpp b/anioni/anioni.cpp index 2bbbc41..1c76fda 100644 --- a/anioni/anioni.cpp +++ b/anioni/anioni.cpp @@ -2,8 +2,10 @@ #include #include -#include -#include +#ifndef LOCALMYLIST_NO_ANIDBUDPCLIENT +# include +# include +#endif #include #include #include @@ -20,6 +22,7 @@ AniOni::AniOni(int argc, char **argv) : void AniOni::handleUdpClientError() { +#ifndef LOCALMYLIST_NO_ANIDBUDPCLIENT using namespace AniDBUdpClient; switch (Client::instance()->error()) @@ -59,6 +62,7 @@ void AniOni::handleUdpClientError() return; break; } +#endif } void AniOni::failRequests() @@ -99,6 +103,7 @@ void AniOni::start() if (LocalMyList::instance()->isUdpHost() && runUdpClient) { +#ifndef LOCALMYLIST_NO_ANIDBUDPCLIENT LocalMyList::instance()->setupUdpClient(); AniDBUdpClient::Client::instance()->setIdlePolicy( AniDBUdpClient::IdlePolicy(LocalMyList::instance()->settings()->get("udpClientIdlePolicy").toInt())); @@ -107,6 +112,12 @@ void AniOni::start() LocalMyList::instance()->setupRequestHandler(); LocalMyList::instance()->requestHandler()->handleRequests(); LocalMyList::instance()->requestHandler()->handleMyListUpdates(); +#else + log(QString("AniOni was configured to run the UDP client, but LocalMyList is not compiled with the UDP client." + " Recompile LocalMyList with AniDBUdpClient"), QtServiceBase::Error); + application()->exit(1); + return; +#endif } if (runRenameHandler) diff --git a/anioni/anioni.pro b/anioni/anioni.pro index 305db3f..a522709 100644 --- a/anioni/anioni.pro +++ b/anioni/anioni.pro @@ -22,6 +22,7 @@ LIBS += -lanidbudpclient include(../localmylist.pri) include(qtservice/qtservice.pri) +noanidbudpclient:DEFINES += LOCALMYLIST_NO_ANIDBUDPCLIENT target.path = $${PREFIX}/bin diff --git a/localmylist/addfiletask.cpp b/localmylist/addfiletask.cpp index 57088ad..3c21304 100644 --- a/localmylist/addfiletask.cpp +++ b/localmylist/addfiletask.cpp @@ -2,14 +2,17 @@ #include "database.h" #include "mylist.h" - -#include -#include -#include +#ifndef LOCALMYLIST_NO_ANIDBUDPCLIENT +# include +# include +# include +#endif namespace LocalMyList { +#ifndef LOCALMYLIST_NO_ANIDBUDPCLIENT using namespace AniDBUdpClient; +#endif AddFileTask::AddFileTask(QObject *parent) : AbstractTask(parent), hashResult(0) @@ -18,8 +21,10 @@ AddFileTask::AddFileTask(QObject *parent) : AddFileTask::~AddFileTask() { +#ifndef LOCALMYLIST_NO_ANIDBUDPCLIENT if (hashResult) hashResult->deleteLater(); +#endif } QFileInfo AddFileTask::file() const @@ -34,6 +39,7 @@ QString AddFileTask::taskSubject() const void AddFileTask::start() { +#ifndef LOCALMYLIST_NO_ANIDBUDPCLIENT if (!m_file.exists() || !m_file.size()) { emit finished(); @@ -47,6 +53,10 @@ void AddFileTask::start() } hashResult = Hash::instance()->hashFile(HashRequest(m_file)); connect(hashResult, SIGNAL(resultReady()), this, SLOT(hashingFinished())); +#else + emit finished(); + // Should error if these tasks had errors :) +#endif } void AddFileTask::setFile(const QFileInfo &file) @@ -56,6 +66,7 @@ void AddFileTask::setFile(const QFileInfo &file) void AddFileTask::hashingFinished() { +#ifndef LOCALMYLIST_NO_ANIDBUDPCLIENT int fid = db->isKnownFile(hashResult->hash(), m_file.size()); if (fid) { @@ -82,8 +93,8 @@ void AddFileTask::hashingFinished() request.size = m_file.size(); db->addRequest(request); - emit finished(); +#endif } } // namespace LocalMyList diff --git a/localmylist/addfiletask.h b/localmylist/addfiletask.h index c488c10..90c2305 100644 --- a/localmylist/addfiletask.h +++ b/localmylist/addfiletask.h @@ -23,7 +23,7 @@ class LOCALMYLISTSHARED_EXPORT AddFileTask : public AbstractTask public: explicit AddFileTask(QObject *parent = 0); ~AddFileTask(); - + QFileInfo file() const; QString taskSubject() const; @@ -34,10 +34,10 @@ signals: public slots: void setFile(const QFileInfo &file); - + private slots: void hashingFinished(); - + private: QFileInfo m_file; AniDBUdpClient::HashResult *hashResult; diff --git a/localmylist/localmylist.pro b/localmylist/localmylist.pro index 9dee8a8..e76a2fc 100644 --- a/localmylist/localmylist.pro +++ b/localmylist/localmylist.pro @@ -15,16 +15,13 @@ SOURCES += \ addfiletask.cpp \ abstracttask.cpp \ directoryscantask.cpp \ - requesthandler.cpp \ mylist.cpp \ mylistmodel.cpp \ mylistnode.cpp \ animetitleparsetask.cpp \ mylistexportparsetask.cpp \ settings.cpp \ - renamehandler.cpp \ unknownfilelookuptask.cpp \ - renameutils.cpp \ directorywatcher.cpp \ addrelatedepisodestask.cpp \ scriptablesql.cpp \ @@ -37,16 +34,13 @@ HEADERS += \ addfiletask.h \ abstracttask.h \ directoryscantask.h \ - requesthandler.h \ mylist.h \ mylistmodel.h \ mylistnode.h \ animetitleparsetask.h \ mylistexportparsetask.h \ settings.h \ - renamehandler.h \ unknownfilelookuptask.h \ - renameutils.h \ directorywatcher.h \ addrelatedepisodestask.h \ scriptablesql.h \ @@ -63,8 +57,6 @@ CONV_HEADERS += \ include/LocalMyList/MyListExportParseTask \ include/LocalMyList/MyListModel \ include/LocalMyList/MyListNode \ - include/LocalMyList/RenameUtils \ - include/LocalMyList/RequestHandler \ include/LocalMyList/Settings \ include/LocalMyList/UnknownFileLookupTask @@ -74,12 +66,25 @@ CONV_HEADERS += \ SOURCES += scriptable.cpp } +!noanidbudpclient { + SOURCES += requesthandler.cpp \ + renamehandler.cpp \ + renameutils.cpp + HEADERS += requesthandler.h \ + renamehandler.h \ + renameutils.h + CONV_HEADERS += include/LocalMyList/RenameUtils \ + include/LocalMyList/RequestHandler + LIBS += -lanidbudpclient +} else { + DEFINES += LOCALMYLIST_NO_ANIDBUDPCLIENT +} + + SHARE += \ share/schema/schema.sql \ share/schema/default_config.sql -LIBS += -lanidbudpclient - target.path = $${PREFIX}/lib headers.path = $${PREFIX}/include/LocalMyList diff --git a/localmylist/mylist.cpp b/localmylist/mylist.cpp index 7612d65..3feb3d9 100644 --- a/localmylist/mylist.cpp +++ b/localmylist/mylist.cpp @@ -2,6 +2,7 @@ #include #include +#include #include "database.h" #include "abstracttask.h" @@ -10,11 +11,14 @@ #include "animetitleparsetask.h" #include "mylistexportparsetask.h" #include "workthread.h" -#include "requesthandler.h" -#include "renamehandler.h" +#ifndef LOCALMYLIST_NO_ANIDBUDPCLIENT +# include "requesthandler.h" +# include "renamehandler.h" +#endif #include "directorywatcher.h" -#include - +#ifndef LOCALMYLIST_NO_ANIDBUDPCLIENT +# include +#endif namespace LocalMyList { MyList::MyList() @@ -103,6 +107,9 @@ void MyList::markWatched(int fid, QDateTime when) void MyList::setupUdpClient() { +#ifdef LOCALMYLIST_NO_ANIDBUDPCLIENT + return; +#else if (!db->isConnected()) return; @@ -114,20 +121,24 @@ void MyList::setupUdpClient() Client::instance()->setPass(m_settings->get("udpClientPass").toString()); Client::instance()->setEncryptionEnabled(m_settings->get("udpClientEncryptionEnabled").toBool()); Client::instance()->setApiKey(m_settings->get("udpClientApiKey").toString()); +#endif } void MyList::setupRequestHandler() { +#ifndef LOCALMYLIST_NO_ANIDBUDPCLIENT if (m_requestHandler || !db->isConnected()) return; m_requestHandler = new RequestHandler(db, this); connect(db, SIGNAL(newPendingRequest()), m_requestHandler, SLOT(handleRequests())); connect(db, SIGNAL(newPendingMyListUpdate()), m_requestHandler, SLOT(handleMyListUpdates())); +#endif } void MyList::setupRenameHandler() { +#ifndef LOCALMYLIST_NO_ANIDBUDPCLIENT if (m_renameHandler || !db->isConnected()) return; @@ -135,6 +146,7 @@ void MyList::setupRenameHandler() m_renameHandler = new RenameHandler(workThread->database(), workThread->settings()); m_renameHandler->moveToThread(workThread); +#endif } void MyList::setupDirectoryWatcher() @@ -299,6 +311,15 @@ void MyList::destroy() m_instance = 0; } +bool MyList::isUdpClientAvailable() +{ +#ifdef LOCALMYLIST_NO_ANIDBUDPCLIENT + return false; +#else + return true; +#endif +} + void MyList::init() { static bool init = false; diff --git a/localmylist/mylist.h b/localmylist/mylist.h index 0179adc..5b9b27d 100644 --- a/localmylist/mylist.h +++ b/localmylist/mylist.h @@ -95,6 +95,8 @@ public: static MyList *instance(); static void destroy(); + static bool isUdpClientAvailable(); + static bool REGISTER_QT_TYPES; static bool MANUAL_CLEANUP; diff --git a/management-gui/mainwindow.cpp b/management-gui/mainwindow.cpp index ab4c80c..01bbba7 100644 --- a/management-gui/mainwindow.cpp +++ b/management-gui/mainwindow.cpp @@ -77,6 +77,14 @@ MainWindow::MainWindow(QWidget *parent) : on_actionStartRenameHandler_triggered(); if (autostartUdpClient) on_actionStartUDPCLient_triggered(); + + if (!MyList::isUdpClientAvailable()) + { + ui->actionStartUDPCLient->setDisabled(true); + ui->actionStartRenameHandler->setDisabled(true); + ui->actionRenameScript->setDisabled(true); + ui->actionRenameFiles->setDisabled(true); + } } MainWindow::~MainWindow() @@ -121,12 +129,16 @@ void MainWindow::allTasksFinished() void MainWindow::openRenameScriptEditor(int fid) { +#ifndef LOCALMYLIST_NO_ANIDBUDPCLIENT if (!renameSettingsDialog) renameSettingsDialog = new RenameSettingsDialog(); renameSettingsDialog->setupEnvForFile(fid); renameSettingsDialog->show(); +#else + Q_UNUSED(fid) +#endif } void MainWindow::on_actionConnect_triggered() diff --git a/management-gui/management-gui.pro b/management-gui/management-gui.pro index ebc27ba..c20747a 100644 --- a/management-gui/management-gui.pro +++ b/management-gui/management-gui.pro @@ -8,28 +8,31 @@ TEMPLATE = app SOURCES += main.cpp\ - mainwindow.cpp \ + mainwindow.cpp \ databaseconnectiondialog.cpp \ mylistview.cpp \ - renamesettingsdialog.cpp \ mylistfiltermodel.cpp \ reporteditordialog.cpp HEADERS += mainwindow.h \ databaseconnectiondialog.h \ mylistview.h \ - renamesettingsdialog.h \ mylistfiltermodel.h \ reporteditordialog.h FORMS += mainwindow.ui \ - databaseconnectiondialog.ui \ - renamesettingsdialog.ui + databaseconnectiondialog.ui include(../localmylist.pri) include(qtsingleapplication/qtsingleapplication.pri) -LIBS += -lanidbudpclient - +!noanidbudpclient { + SOURCES += renamesettingsdialog.cpp + HEADERS += renamesettingsdialog.h + FORMS += renamesettingsdialog.ui + LIBS += -lanidbudpclient +} else { + DEFINES += LOCALMYLIST_NO_ANIDBUDPCLIENT +} target.path = $${PREFIX}/bin INSTALLS += target diff --git a/management-gui/mylistview.cpp b/management-gui/mylistview.cpp index 4a7a0c2..8baf0a9 100644 --- a/management-gui/mylistview.cpp +++ b/management-gui/mylistview.cpp @@ -33,6 +33,12 @@ MyListView::MyListView(QWidget *parent) : connect(renameTestAction, SIGNAL(triggered()), this, SLOT(renameTest())); requestDataAction = new QAction(tr("Request Data"), this); connect(requestDataAction, SIGNAL(triggered()), this, SLOT(requestData())); + + if (!LocalMyList::MyList::isUdpClientAvailable()) + { + renameFilesAction->setDisabled(true); + renameTestAction->setDisabled(true); + } } MyListFilterModel *MyListView::myListFilterModel() const