From 235db3c44f6ff072a055ab67231c017344a969f5 Mon Sep 17 00:00:00 2001 From: trialuser02 Date: Fri, 7 Mar 2008 20:40:21 +0000 Subject: psi now playing notification support git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@264 90c681e8-e032-0410-971d-27865f9a5e38 --- src/plugins/General/notifier/notifier.cpp | 27 +- src/plugins/General/notifier/notifier.h | 2 + src/plugins/General/notifier/notifierfactory.cpp | 2 +- src/plugins/General/notifier/settingsdialog.cpp | 4 + src/plugins/General/notifier/settingsdialog.ui | 300 +++++++++++++---------- 5 files changed, 195 insertions(+), 140 deletions(-) (limited to 'src/plugins') diff --git a/src/plugins/General/notifier/notifier.cpp b/src/plugins/General/notifier/notifier.cpp index 2c2c53ae4..9f6006366 100644 --- a/src/plugins/General/notifier/notifier.cpp +++ b/src/plugins/General/notifier/notifier.cpp @@ -19,6 +19,9 @@ ***************************************************************************/ #include +#include +#include +#include #include "popupwidget.h" #include "notifier.h" @@ -26,7 +29,13 @@ Notifier::Notifier(QObject *parent) : General(parent) { - m_popupWidget = 0; + m_popupWidget = 0; + QFile::remove(QDir::homePath()+"/.psi/tune"); + QSettings settings(QDir::homePath()+"/.qmmp/qmmprc", QSettings::IniFormat); + settings.beginGroup("Notifier"); + m_desktop = settings.value("desktop_notification", TRUE).toBool(); + m_psi = settings.value("psi_notification", FALSE).toBool(); + settings.endGroup(); } Notifier::~Notifier() @@ -46,6 +55,7 @@ void Notifier::setState(const uint &state) } case General::Stopped: { + QFile::remove(QDir::homePath()+"/.psi/tune"); break; } } @@ -53,7 +63,18 @@ void Notifier::setState(const uint &state) void Notifier::setSongInfo(const SongInfo &song) { - if(m_popupWidget) + if (m_popupWidget) delete m_popupWidget; - m_popupWidget = new PopupWidget(song); + if(m_desktop) + m_popupWidget = new PopupWidget(song); + if(!m_psi) + return; + QFile file(QDir::homePath()+"/.psi/tune"); //psi file + file.open(QIODevice::WriteOnly | QIODevice::Text); + file.write(song.title().toUtf8()+"\n"); + file.write(song.artist().toUtf8()+"\n"); + file.write(song.album().toUtf8()+"\n"); + file.write(QString("%1").arg(song.track()).toUtf8()+"\n"); + file.write(QString("%1").arg(song.length()).toUtf8()+"\n"); + file.close(); } diff --git a/src/plugins/General/notifier/notifier.h b/src/plugins/General/notifier/notifier.h index d2d2f706f..cc93b2ea5 100644 --- a/src/plugins/General/notifier/notifier.h +++ b/src/plugins/General/notifier/notifier.h @@ -43,6 +43,8 @@ public: private: QPointer m_popupWidget; + bool m_desktop; + bool m_psi; }; diff --git a/src/plugins/General/notifier/notifierfactory.cpp b/src/plugins/General/notifier/notifierfactory.cpp index d99a11064..708c1e1dd 100644 --- a/src/plugins/General/notifier/notifierfactory.cpp +++ b/src/plugins/General/notifier/notifierfactory.cpp @@ -46,7 +46,7 @@ QDialog *NotifierFactory::createConfigDialog(QWidget *parent) void NotifierFactory::showAbout(QWidget *parent) { QMessageBox::about (parent, tr("About Notifier Plugin"), - tr("Qmmp Desktop Notifier Plugin")+"\n"+ + tr("Qmmp Notifier Plugin")+"\n"+ tr("Writen by: Ilya Kotov ")); } diff --git a/src/plugins/General/notifier/settingsdialog.cpp b/src/plugins/General/notifier/settingsdialog.cpp index a460d5af9..3899216ec 100644 --- a/src/plugins/General/notifier/settingsdialog.cpp +++ b/src/plugins/General/notifier/settingsdialog.cpp @@ -44,6 +44,8 @@ SettingsDialog::SettingsDialog(QWidget *parent) ui.messageDelaySpinBox->setValue(settings.value("message_delay", 2000).toInt()); uint pos = settings.value("message_pos", PopupWidget::BOTTOMLEFT).toUInt(); m_buttons.value(pos)->setChecked(TRUE); + ui.psiCheckBox->setChecked(settings.value("psi_notification", FALSE).toBool()); + ui.desktopCheckBox->setChecked(settings.value("desktop_notification", TRUE).toBool()); settings.endGroup(); connect(ui.okButton, SIGNAL(clicked()), SLOT(writeSettings())); } @@ -64,6 +66,8 @@ void SettingsDialog::writeSettings() pos = m_buttons.key(button); } settings.setValue("message_pos", pos); + settings.setValue("psi_notification", ui.psiCheckBox->isChecked()); + settings.setValue("desktop_notification", ui.desktopCheckBox->isChecked()); settings.endGroup(); accept(); } diff --git a/src/plugins/General/notifier/settingsdialog.ui b/src/plugins/General/notifier/settingsdialog.ui index db6a1ec24..063329379 100644 --- a/src/plugins/General/notifier/settingsdialog.ui +++ b/src/plugins/General/notifier/settingsdialog.ui @@ -5,8 +5,8 @@ 0 0 - 268 - 273 + 278 + 355 @@ -14,172 +14,200 @@ - + - General + Psi Notification - - - - 10 - 30 - 141 - 23 - - - - Message delay, ms: - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - - - - 140 - 30 - 71 - 23 - - - - 100 - - - 10000 - - - 100 - - - 1000 - - + + + + + Enable Psi notification + + + + - Position + Desktop Notification - - - - - - - true - - - true - - - - - - - - - - true - - - true - - - - - + + - - - - true - - - true + Enable desktop notification - + - - - - true + Message delay, ms: - - true + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - - - - - true - - - true + + + + 100 - - - - - - + + 10000 - - true + + 100 - - true + + 1000 - - + + - - - - true - - - true + Position - - - - - - - true - - - true - - + + + + + + + + + true + + + true + + + + + + + + + + true + + + true + + + + + + + + + + true + + + true + + + + + + + + + + true + + + true + + + + + + + + + + true + + + true + + + + + + + + + + true + + + true + + + + + + + + + + true + + + true + + + + + + + + + + true + + + true + + + + + + + + + + true + + + true + + + + - - - - + + + + Qt::Horizontal - - true + + + 40 + 20 + - - true - - + -- cgit v1.2.3-13-gbd6f