diff options
| -rw-r--r-- | src/qmmp/CMakeLists.txt | 1 | ||||
| -rw-r--r-- | src/qmmp/decoder.cpp | 6 | ||||
| -rw-r--r-- | src/qmmp/effect.cpp | 5 | ||||
| -rw-r--r-- | src/qmmp/output.cpp | 8 | ||||
| -rw-r--r-- | src/qmmp/qmmp.cpp | 24 | ||||
| -rw-r--r-- | src/qmmp/qmmp.h | 10 | ||||
| -rw-r--r-- | src/qmmp/visual.cpp | 5 | ||||
| -rw-r--r-- | src/qmmpui/CMakeLists.txt | 6 | ||||
| -rw-r--r-- | src/qmmpui/commandlinemanager.cpp | 7 | ||||
| -rw-r--r-- | src/qmmpui/filedialog.cpp | 13 | ||||
| -rw-r--r-- | src/qmmpui/general.cpp | 6 | ||||
| -rw-r--r-- | src/qmmpui/playlistparser.cpp | 7 | ||||
| -rw-r--r-- | src/qmmpui/qmmpui.pro | 9 |
13 files changed, 54 insertions, 53 deletions
diff --git a/src/qmmp/CMakeLists.txt b/src/qmmp/CMakeLists.txt index bbf68a8b5..6df4a1926 100644 --- a/src/qmmp/CMakeLists.txt +++ b/src/qmmp/CMakeLists.txt @@ -16,6 +16,7 @@ ADD_DEFINITIONS(-DQT_THREAD) ADD_DEFINITIONS(-DLIB_DIR=\\\"\\/${LIB_DIR}\\\") ADD_DEFINITIONS(-DQMMP_VERSION=${QMMP_VERSION}) ADD_DEFINITIONS(-DQMMP_STR_VERSION=\\\"${QMMP_VERSION}\\\") +ADD_DEFINITIONS(-DQMMP_INSTALL_PREFIX=\\\"${CMAKE_INSTALL_PREFIX}\\\") IF(SVN_VERSION) #add svn revision execute_process(COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/svn_revision.sh diff --git a/src/qmmp/decoder.cpp b/src/qmmp/decoder.cpp index 3a6cde240..65a34abbf 100644 --- a/src/qmmp/decoder.cpp +++ b/src/qmmp/decoder.cpp @@ -19,6 +19,7 @@ #include "visual.h" #include "decoderfactory.h" #include "streamreader.h" +#include "qmmp.h" extern "C" { @@ -200,9 +201,8 @@ void Decoder::checkFactories() m_files.clear(); m_factories = new QList<DecoderFactory *>; - QDir pluginsDir (qApp->applicationDirPath()); - pluginsDir.cdUp(); - pluginsDir.cd("./"LIB_DIR"/qmmp/Input"); + QDir pluginsDir (Qmmp::pluginsPath()); + pluginsDir.cd("Input"); foreach (QString fileName, pluginsDir.entryList(QDir::Files)) { QPluginLoader loader(pluginsDir.absoluteFilePath(fileName)); diff --git a/src/qmmp/effect.cpp b/src/qmmp/effect.cpp index 7d0b15ded..0cb45a268 100644 --- a/src/qmmp/effect.cpp +++ b/src/qmmp/effect.cpp @@ -66,9 +66,8 @@ static void checkFactories() files.clear(); factories = new QList<EffectFactory *>; - QDir pluginsDir (qApp->applicationDirPath()); - pluginsDir.cdUp(); - pluginsDir.cd("./"LIB_DIR"/qmmp/Effect"); + QDir pluginsDir (Qmmp::pluginsPath()); + pluginsDir.cd("Effect"); foreach (QString fileName, pluginsDir.entryList(QDir::Files)) { QPluginLoader loader(pluginsDir.absoluteFilePath(fileName)); diff --git a/src/qmmp/output.cpp b/src/qmmp/output.cpp index 90591baf7..bd8948b97 100644 --- a/src/qmmp/output.cpp +++ b/src/qmmp/output.cpp @@ -14,6 +14,7 @@ #include "buffer.h" #include "output.h" #include "volumecontrol.h" +#include "qmmp.h" #include <stdio.h> @@ -159,7 +160,7 @@ void Output::run() mutex()->lock (); recycler()->mutex()->lock (); done = m_userStop; - + while (!done && (recycler()->empty() || m_pause)) { mutex()->unlock(); @@ -249,9 +250,8 @@ void Output::checkFactories() m_files.clear(); m_factories = new QList<OutputFactory *>; - QDir pluginsDir ( qApp->applicationDirPath() ); - pluginsDir.cdUp(); - pluginsDir.cd ( "./"LIB_DIR"/qmmp/Output" ); + QDir pluginsDir (Qmmp::pluginsPath()); + pluginsDir.cd("Output"); foreach ( QString fileName, pluginsDir.entryList ( QDir::Files ) ) { QPluginLoader loader ( pluginsDir.absoluteFilePath ( fileName ) ); diff --git a/src/qmmp/qmmp.cpp b/src/qmmp/qmmp.cpp index 820897dad..9020876fb 100644 --- a/src/qmmp/qmmp.cpp +++ b/src/qmmp/qmmp.cpp @@ -19,17 +19,22 @@ ***************************************************************************/ #include <QDir> +#include <QApplication> #include <QSettings> #ifndef QMMP_STR_VERSION #define QMMP_STR_VERSION "0.3.0" #endif +#ifndef LIB_DIR +#define "/lib" +#endif + #include "qmmp.h" QString Qmmp::m_configFile; -QString Qmmp::configFile() +const QString Qmmp::configFile() { return m_configFile.isEmpty() ? QDir::homePath() +"/.qmmp/qmmprc" : m_configFile; } @@ -39,12 +44,12 @@ void Qmmp::setConfigFile(const QString &path) m_configFile = path; } -QString Qmmp::strVersion() +const QString Qmmp::strVersion() { #ifdef SVN_REVISION return QString("%1-%2").arg(QMMP_STR_VERSION).arg(SVN_REVISION); #else - return QMMP_VERSION_STR; + return QMMP_STR_VERSION; #endif } @@ -60,7 +65,7 @@ bool Qmmp::useProxyAuth() return settings.value("Proxy/authentication", FALSE).toBool(); } -QUrl Qmmp::proxy() +const QUrl Qmmp::proxy() { QSettings settings(configFile(), QSettings::IniFormat); return settings.value("Proxy/url").toUrl(); @@ -83,3 +88,14 @@ void Qmmp::setProxy (const QUrl &proxy) QSettings settings(configFile(), QSettings::IniFormat); settings.setValue("Proxy/url", proxy); } + +const QString Qmmp::pluginsPath() +{ +#ifdef QMMP_INSTALL_PREFIX + QDir dir(QMMP_INSTALL_PREFIX"/"LIB_DIR"/qmmp"); + qDebug(QMMP_INSTALL_PREFIX"/"LIB_DIR"/qmmp"); +#else + QDir dir(qApp->applicationDirPath() + "/../"LIB_DIR"/qmmp"); +#endif + return dir.canonicalPath(); +} diff --git a/src/qmmp/qmmp.h b/src/qmmp/qmmp.h index 54fe2984a..91950cce3 100644 --- a/src/qmmp/qmmp.h +++ b/src/qmmp/qmmp.h @@ -57,7 +57,7 @@ public: /*! * Returns configuration file path. */ - static QString configFile(); + static const QString configFile(); /*! * Overrides default configuration file path. */ @@ -65,7 +65,7 @@ public: /*! * Returns %Qmmp library version. */ - static QString strVersion(); + static const QString strVersion(); /*! * Returns \b true if global proxy is enabled, otherwise returns \b false */ @@ -77,7 +77,7 @@ public: /*! * Returns global proxy url. */ - static QUrl proxy(); + static const QUrl proxy(); /*! * Enables or disables global proxy. * @param yes Proxy enable state (\b true - enabled, \b false - disabled) @@ -92,6 +92,10 @@ public: * Sets global proxy url to \b proxy */ static void setProxy (const QUrl &proxy); + /*! + * Returns the location of the installed Qmmp plugins. + */ + static const QString pluginsPath(); private: static QString m_configFile; diff --git a/src/qmmp/visual.cpp b/src/qmmp/visual.cpp index c8874e1d9..366492986 100644 --- a/src/qmmp/visual.cpp +++ b/src/qmmp/visual.cpp @@ -204,9 +204,8 @@ void Visual::checkFactories() m_files.clear(); m_factories = new QList<VisualFactory *>; - QDir pluginsDir (qApp->applicationDirPath()); - pluginsDir.cdUp(); - pluginsDir.cd("./"LIB_DIR"/qmmp/Visual"); + QDir pluginsDir (Qmmp::pluginsPath()); + pluginsDir.cd("Visual"); foreach (QString fileName, pluginsDir.entryList(QDir::Files)) { QPluginLoader loader(pluginsDir.absoluteFilePath(fileName)); diff --git a/src/qmmpui/CMakeLists.txt b/src/qmmpui/CMakeLists.txt index 4434f3a81..490c7fd1e 100644 --- a/src/qmmpui/CMakeLists.txt +++ b/src/qmmpui/CMakeLists.txt @@ -13,12 +13,6 @@ ADD_DEFINITIONS(${QT_DEFINITIONS}) ADD_DEFINITIONS(-DQT_NO_DEBUG) ADD_DEFINITIONS(-DQT_SHARED) ADD_DEFINITIONS(-DQT_THREAD) -ADD_DEFINITIONS(-DLIB_DIR=\\\"\\/${LIB_DIR}\\\") -IF(SVN_VERSION) -ADD_DEFINITIONS(-DQMMP_STR_VERSION=\\\"${QMMP_VERSION}-svn\\\") -ELSE(SVN_VERSION) -ADD_DEFINITIONS(-DQMMP_STR_VERSION=\\\"${QMMP_VERSION}\\\") -ENDIF(SVN_VERSION) include_directories(${CMAKE_CURRENT_SOURCE_DIR}) diff --git a/src/qmmpui/commandlinemanager.cpp b/src/qmmpui/commandlinemanager.cpp index 9320064f1..4a8ae40af 100644 --- a/src/qmmpui/commandlinemanager.cpp +++ b/src/qmmpui/commandlinemanager.cpp @@ -25,7 +25,7 @@ #include <cstdlib> #include <iostream> - +#include <qmmp/qmmp.h> #include "commandlinemanager.h" using namespace std; @@ -40,9 +40,8 @@ static void checkOptions() files.clear(); options = new QList<CommandLineOption *>; - QDir pluginsDir (qApp->applicationDirPath()); - pluginsDir.cdUp(); - pluginsDir.cd("./"LIB_DIR"/qmmp/CommandLineOptions"); + QDir pluginsDir (Qmmp::pluginsPath()); + pluginsDir.cd("CommadLineOptions"); foreach (QString fileName, pluginsDir.entryList(QDir::Files)) { QPluginLoader loader(pluginsDir.absoluteFilePath(fileName)); diff --git a/src/qmmpui/filedialog.cpp b/src/qmmpui/filedialog.cpp index 9ab1c57c2..e094f5006 100644 --- a/src/qmmpui/filedialog.cpp +++ b/src/qmmpui/filedialog.cpp @@ -156,10 +156,8 @@ void FileDialog::registerBuiltinFactories() void FileDialog::registerExternalFactories() { - QDir pluginsDir (qApp->applicationDirPath()); - pluginsDir.cdUp(); - pluginsDir.cd("./"LIB_DIR"/qmmp/FileDialogs"); - + QDir pluginsDir (Qmmp::pluginsPath()); + pluginsDir.cd("FileDialogs"); foreach (QString fileName, pluginsDir.entryList(QDir::Files)) { QPluginLoader loader(pluginsDir.absoluteFilePath(fileName)); @@ -208,7 +206,7 @@ FileDialog* FileDialog::instance() QStringList names = factories.keys(); - if(!names.contains(f_dialogName)) + if (!names.contains(f_dialogName)) f_dialogName = "qt_dialog"; if (m_current_factory != f_dialogName || !_instance) @@ -275,7 +273,10 @@ void FileDialog::popup(QWidget *parent, { QStringList files; if (m == AddFiles || m == AddFile || m == AddDirsFiles) - files = getOpenFileNames(parent, caption, *dir, filters); + { + QString selectedFilter; + files = getOpenFileNames(parent, caption, *dir, filters, &selectedFilter); + } else if (m == AddDirs || m == AddDir) { QString path = getExistingDirectory(parent, caption, *dir); diff --git a/src/qmmpui/general.cpp b/src/qmmpui/general.cpp index 9f47ddc1f..7bf9514d7 100644 --- a/src/qmmpui/general.cpp +++ b/src/qmmpui/general.cpp @@ -36,10 +36,8 @@ static void checkFactories() { files.clear(); factories = new QList<GeneralFactory *>; - - QDir pluginsDir (qApp->applicationDirPath()); - pluginsDir.cdUp(); - pluginsDir.cd("./"LIB_DIR"/qmmp/General"); + QDir pluginsDir (Qmmp::pluginsPath()); + pluginsDir.cd("General"); foreach (QString fileName, pluginsDir.entryList(QDir::Files)) { QPluginLoader loader(pluginsDir.absoluteFilePath(fileName)); diff --git a/src/qmmpui/playlistparser.cpp b/src/qmmpui/playlistparser.cpp index 673abcb0f..7b41f35c9 100644 --- a/src/qmmpui/playlistparser.cpp +++ b/src/qmmpui/playlistparser.cpp @@ -22,7 +22,7 @@ #include <QObject> #include <QList> #include <QApplication> - +#include <qmmp/qmmp.h> #include "playlistformat.h" #include "playlistparser.h" @@ -78,9 +78,8 @@ void PlaylistParser::loadExternalPlaylistFormats() { if (!m_formats.isEmpty()) return; - QDir pluginsDir (qApp->applicationDirPath()); - pluginsDir.cdUp(); - pluginsDir.cd("./"LIB_DIR"/qmmp/PlaylistFormats"); + QDir pluginsDir (Qmmp::pluginsPath()); + pluginsDir.cd("PlaylistFormats"); foreach (QString fileName, pluginsDir.entryList(QDir::Files)) { QPluginLoader loader(pluginsDir.absoluteFilePath(fileName)); diff --git a/src/qmmpui/qmmpui.pro b/src/qmmpui/qmmpui.pro index 7027a9070..af48ad1fa 100644 --- a/src/qmmpui/qmmpui.pro +++ b/src/qmmpui/qmmpui.pro @@ -17,15 +17,6 @@ unix : isEmpty(LIB_DIR){ LIB_DIR = /lib } -unix : DEFINES += LIB_DIR=\\\"$$LIB_DIR\\\" - -DEFINES += QMMP_VERSION=$$QMMP_VERSION -contains(CONFIG, SVN_VERSION){ - DEFINES += QMMP_STR_VERSION=\\\"$$QMMP_VERSION-svn\\\" -}else { - DEFINES += QMMP_STR_VERSION=\\\"$$QMMP_VERSION\\\" -} - VERSION = $$QMMP_VERSION target.path = $$LIB_DIR |
