diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2008-11-24 21:54:59 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2008-11-24 21:54:59 +0000 |
| commit | a9946929bc45b96acd171a8137600277d122ccd9 (patch) | |
| tree | 5e675c6dbc697ac80ed3920c768c7fd6c328df0f /src/plugins/General/statusicon | |
| parent | 52cdbf3b10333908693f21a7c04ff7983baf923e (diff) | |
| download | qmmp-a9946929bc45b96acd171a8137600277d122ccd9.tar.gz qmmp-a9946929bc45b96acd171a8137600277d122ccd9.tar.bz2 qmmp-a9946929bc45b96acd171a8137600277d122ccd9.zip | |
general api cleanup
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@631 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/plugins/General/statusicon')
| -rw-r--r-- | src/plugins/General/statusicon/CMakeLists.txt | 7 | ||||
| -rw-r--r-- | src/plugins/General/statusicon/statusicon.cpp | 56 | ||||
| -rw-r--r-- | src/plugins/General/statusicon/statusicon.h | 15 | ||||
| -rw-r--r-- | src/plugins/General/statusicon/statusicon.pro | 2 | ||||
| -rw-r--r-- | src/plugins/General/statusicon/statusiconfactory.cpp | 4 | ||||
| -rw-r--r-- | src/plugins/General/statusicon/statusiconfactory.h | 3 |
6 files changed, 43 insertions, 44 deletions
diff --git a/src/plugins/General/statusicon/CMakeLists.txt b/src/plugins/General/statusicon/CMakeLists.txt index 62f49700a..cbaa6b3f2 100644 --- a/src/plugins/General/statusicon/CMakeLists.txt +++ b/src/plugins/General/statusicon/CMakeLists.txt @@ -22,9 +22,10 @@ SET(QT_INCLUDES ${CMAKE_CURRENT_SOURCE_DIR}/../../../ ) -# libqmmpui +# libqmmpui & libqmmp include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../../../) link_directories(${CMAKE_CURRENT_BINARY_DIR}/../../../qmmpui) +link_directories(${CMAKE_CURRENT_BINARY_DIR}/../../../qmmp) SET(libstatusicon_SRCS settingsdialog.cpp @@ -59,6 +60,6 @@ QT4_WRAP_UI(libstatusicon_UIS_H ${libstatusicon_UIS}) include_directories(${CMAKE_CURRENT_BINARY_DIR}) ADD_LIBRARY(statusicon SHARED ${libstatusicon_SRCS} ${libstatusicon_MOC_SRCS} ${libstatusicon_UIS_H} ${libstatusicon_RCC_SRCS}) -add_dependencies(statusicon qmmpui) -target_link_libraries(statusicon ${QT_LIBRARIES} -lqmmpui) +add_dependencies(statusicon qmmpui libqmmp) +target_link_libraries(statusicon ${QT_LIBRARIES} -lqmmpui -lqmmp) install(TARGETS statusicon DESTINATION ${LIB_DIR}/qmmp/General) diff --git a/src/plugins/General/statusicon/statusicon.cpp b/src/plugins/General/statusicon/statusicon.cpp index 4946a4ba2..b3e49f2cb 100644 --- a/src/plugins/General/statusicon/statusicon.cpp +++ b/src/plugins/General/statusicon/statusicon.cpp @@ -23,26 +23,27 @@ #include <QDir> #include <QTimer> #include <QCoreApplication> -#include <qmmpui/control.h> + +#include <qmmp/soundcore.h> #include "statusicon.h" -StatusIcon::StatusIcon(Control *control, QObject *parent) +StatusIcon::StatusIcon(QObject *parent) : General(parent) { - m_control = control; m_tray = new QSystemTrayIcon(this); connect(m_tray, SIGNAL(activated(QSystemTrayIcon::ActivationReason)), this, SLOT(trayActivated(QSystemTrayIcon::ActivationReason))); m_tray->setIcon ( QIcon(":/tray_stop.png")); m_tray->show(); + m_core = SoundCore::instance(); QMenu *menu = new QMenu(qobject_cast<QWidget *>(parent)); - menu->addAction(tr("Play"), control, SLOT(play())); - menu->addAction(tr("Pause"), control, SLOT(pause())); - menu->addAction(tr("Stop"), control, SLOT(stop())); - menu->addAction(tr("Next"), control, SLOT(next())); - menu->addAction(tr("Previous"), control, SLOT(previous())); + menu->addAction(tr("Play"), this, SLOT(play())); + menu->addAction(tr("Pause"), m_core, SLOT(pause())); + menu->addAction(tr("Stop"), m_core, SLOT(stop())); + /*menu->addAction(tr("Next"), control, SLOT(next())); + menu->addAction(tr("Previous"), control, SLOT(previous()));*/ menu->addSeparator(); - menu->addAction(tr("Exit"), control, SLOT(exit())); + menu->addAction(tr("Exit"), this, SLOT(exit())); m_tray->setContextMenu(menu); QSettings settings(QDir::homePath()+"/.qmmp/qmmprc", QSettings::IniFormat); @@ -53,30 +54,30 @@ StatusIcon::StatusIcon(Control *control, QObject *parent) m_hideToTray = settings.value("hide_on_close", FALSE).toBool(); settings.endGroup(); m_enabled = FALSE; + connect (m_core, SIGNAL(metaDataChanged ()), SLOT(showMetaData())); + connect (m_core, SIGNAL(stateChanged (Qmmp::State)), SLOT(setState(Qmmp::State))); QTimer::singleShot(200, this, SLOT(enable())); - m_state = General::Stopped; } StatusIcon::~StatusIcon() {} -void StatusIcon::setState(const uint &state) +void StatusIcon::setState(Qmmp::State state) { - m_state = state; switch ((uint) state) { - case General::Playing: + case Qmmp::Playing: { m_tray->setIcon(QIcon(":/tray_play.png")); break; } - case General::Paused: + case Qmmp::Paused: { m_tray->setIcon(QIcon(":/tray_pause.png")); break; } - case General::Stopped: + case Qmmp::Stopped: { m_tray->setIcon(QIcon(":/tray_stop.png")); break; @@ -84,17 +85,16 @@ void StatusIcon::setState(const uint &state) } } -void StatusIcon::setSongInfo(const SongInfo &song) +void StatusIcon::showMetaData() { - if(!m_enabled) + if (!m_enabled) return; - QString message = song.artist() + " - " +song.title(); - if (song.artist().isEmpty()) - message = song.title(); - if (song.title().isEmpty()) - message = song.artist(); - if (song.artist().isEmpty() && song.title().isEmpty()) - message = song.path().section('/',-1); + QString message = m_core->metaData(Qmmp::ARTIST) + " - " + m_core->metaData(Qmmp::TITLE); + if (message.startsWith (" - ") || message.endsWith (" - ")) + message.remove(" - "); + if (message.isEmpty()) + message = m_core->metaData(Qmmp::URL).section('/',-1); + if (m_showMessage) m_tray->showMessage (tr("Now Playing"), message, QSystemTrayIcon::Information, m_messageDelay); @@ -105,13 +105,13 @@ void StatusIcon::setSongInfo(const SongInfo &song) void StatusIcon::trayActivated(QSystemTrayIcon::ActivationReason reason) { if (reason == QSystemTrayIcon::Trigger) - m_control->toggleVisibility(); + toggleVisibility(); else if (reason == QSystemTrayIcon::MiddleClick) { - if(m_state == General::Stopped) - m_control->play(); + if (SoundCore::instance()->state() == Qmmp::Stopped) + play(); else - m_control->pause(); + m_core->pause(); } } diff --git a/src/plugins/General/statusicon/statusicon.h b/src/plugins/General/statusicon/statusicon.h index b6d8a3e04..be65500f4 100644 --- a/src/plugins/General/statusicon/statusicon.h +++ b/src/plugins/General/statusicon/statusicon.h @@ -21,10 +21,12 @@ #define STATUSICON_H #include <QSystemTrayIcon> +#include <QMap> #include <qmmpui/general.h> +#include <qmmp/qmmp.h> -class Control; +class SoundCore; /** @author Ilya Kotov <forkotov02@hotmail.ru> @@ -34,14 +36,13 @@ class StatusIcon : public General { Q_OBJECT public: - StatusIcon(Control *control, QObject *parent = 0); + StatusIcon(QObject *parent = 0); ~StatusIcon(); - void setState(const uint& state); - void setSongInfo(const SongInfo &song); - private slots: + void showMetaData(); + void setState(Qmmp::State state); void trayActivated(QSystemTrayIcon::ActivationReason); void enable(); @@ -52,9 +53,7 @@ private: bool m_hideToTray; bool m_enabled; int m_messageDelay; - Control *m_control; - uint m_state; - + SoundCore *m_core; }; #endif diff --git a/src/plugins/General/statusicon/statusicon.pro b/src/plugins/General/statusicon/statusicon.pro index bad3ba7e0..8def7d140 100644 --- a/src/plugins/General/statusicon/statusicon.pro +++ b/src/plugins/General/statusicon/statusicon.pro @@ -11,7 +11,7 @@ QMAKE_CLEAN =$$PLUGINS_PREFIX/General/libstatusicon.so TEMPLATE = lib QMAKE_LIBDIR += ../../../../lib -LIBS += -lqmmpui +LIBS += -lqmmpui -lqmmp TRANSLATIONS = translations/statusicon_plugin_cs.ts \ translations/statusicon_plugin_de.ts \ diff --git a/src/plugins/General/statusicon/statusiconfactory.cpp b/src/plugins/General/statusicon/statusiconfactory.cpp index b25d03ceb..2b56d7c82 100644 --- a/src/plugins/General/statusicon/statusiconfactory.cpp +++ b/src/plugins/General/statusicon/statusiconfactory.cpp @@ -34,9 +34,9 @@ const GeneralProperties StatusIconFactory::properties() const return properties; } -General *StatusIconFactory::create(Control *control, QObject *parent) +General *StatusIconFactory::create(QObject *parent) { - return new StatusIcon(control, parent); + return new StatusIcon(parent); } QDialog *StatusIconFactory::createConfigDialog(QWidget *parent) diff --git a/src/plugins/General/statusicon/statusiconfactory.h b/src/plugins/General/statusicon/statusiconfactory.h index bb75f8843..c2dc76bc5 100644 --- a/src/plugins/General/statusicon/statusiconfactory.h +++ b/src/plugins/General/statusicon/statusiconfactory.h @@ -28,7 +28,6 @@ #include <QDialog> #include <qmmpui/general.h> -#include <qmmpui/control.h> #include <qmmpui/generalfactory.h> class StatusIconFactory : public QObject, public GeneralFactory @@ -37,7 +36,7 @@ Q_OBJECT Q_INTERFACES(GeneralFactory); public: const GeneralProperties properties() const; - General *create(Control *control, QObject *parent); + General *create(QObject *parent); QDialog *createConfigDialog(QWidget *parent); void showAbout(QWidget *parent); QTranslator *createTranslator(QObject *parent); |
