aboutsummaryrefslogtreecommitdiff
path: root/src/plugins
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins')
-rw-r--r--src/plugins/General/trackchange/settingsdialog.cpp24
-rw-r--r--src/plugins/General/trackchange/settingsdialog.ui70
-rw-r--r--src/plugins/General/trackchange/trackchange.cpp34
-rw-r--r--src/plugins/General/trackchange/trackchange.h4
4 files changed, 88 insertions, 44 deletions
diff --git a/src/plugins/General/trackchange/settingsdialog.cpp b/src/plugins/General/trackchange/settingsdialog.cpp
index 0e95164a0..d72bcd2d8 100644
--- a/src/plugins/General/trackchange/settingsdialog.cpp
+++ b/src/plugins/General/trackchange/settingsdialog.cpp
@@ -33,10 +33,14 @@ SettingsDialog::SettingsDialog(QWidget *parent) : QDialog(parent)
addMenu(m_ui.titleChangeButton);
QSettings settings(Qmmp::configFile(), QSettings::IniFormat);
- m_ui.newTrackLineEdit->setText(settings.value("TrackChange/new_track_command").toString());
- m_ui.endOfTrackLineEdit->setText(settings.value("TrackChange/end_of_track_command").toString());
- m_ui.endOfPlayListLineEdit->setText(settings.value("TrackChange/end_of_pl_command").toString());
- m_ui.titleChangeLineEdit->setText(settings.value("TrackChange/title_change_command").toString());
+ settings.beginGroup("TrackChange");
+ m_ui.newTrackLineEdit->setText(settings.value("new_track_command").toString());
+ m_ui.endOfTrackLineEdit->setText(settings.value("end_of_track_command").toString());
+ m_ui.endOfPlayListLineEdit->setText(settings.value("end_of_pl_command").toString());
+ m_ui.titleChangeLineEdit->setText(settings.value("title_change_command").toString());
+ m_ui.appStartupLineEdit->setText(settings.value("application_startup_command").toString());
+ m_ui.appExitLineEdit->setText(settings.value("application_exit_command").toString());
+ settings.endGroup();
}
SettingsDialog::~SettingsDialog()
@@ -45,10 +49,14 @@ SettingsDialog::~SettingsDialog()
void SettingsDialog::accept()
{
QSettings settings(Qmmp::configFile(), QSettings::IniFormat);
- settings.setValue("TrackChange/new_track_command", m_ui.newTrackLineEdit->text());
- settings.setValue("TrackChange/end_of_track_command", m_ui.endOfTrackLineEdit->text());
- settings.setValue("TrackChange/end_of_pl_command", m_ui.endOfPlayListLineEdit->text());
- settings.setValue("TrackChange/title_change_command", m_ui.titleChangeLineEdit->text());
+ settings.beginGroup("TrackChange");
+ settings.setValue("new_track_command", m_ui.newTrackLineEdit->text());
+ settings.setValue("end_of_track_command", m_ui.endOfTrackLineEdit->text());
+ settings.setValue("end_of_pl_command", m_ui.endOfPlayListLineEdit->text());
+ settings.setValue("title_change_command", m_ui.titleChangeLineEdit->text());
+ settings.setValue("application_startup_command", m_ui.appStartupLineEdit->text());
+ settings.setValue("application_exit_command", m_ui.appExitLineEdit->text());
+ settings.endGroup();
QDialog::accept();
}
diff --git a/src/plugins/General/trackchange/settingsdialog.ui b/src/plugins/General/trackchange/settingsdialog.ui
index 6835ed3bf..68b6120eb 100644
--- a/src/plugins/General/trackchange/settingsdialog.ui
+++ b/src/plugins/General/trackchange/settingsdialog.ui
@@ -6,8 +6,8 @@
<rect>
<x>0</x>
<y>0</y>
- <width>441</width>
- <height>249</height>
+ <width>484</width>
+ <height>382</height>
</rect>
</property>
<property name="windowTitle">
@@ -23,6 +23,13 @@
<property name="bottomMargin">
<number>6</number>
</property>
+ <item row="0" column="0">
+ <widget class="QLabel" name="label">
+ <property name="text">
+ <string>Command to run when Qmmp starts new track</string>
+ </property>
+ </widget>
+ </item>
<item row="1" column="0">
<widget class="QLineEdit" name="newTrackLineEdit"/>
</item>
@@ -33,6 +40,13 @@
</property>
</widget>
</item>
+ <item row="2" column="0">
+ <widget class="QLabel" name="label_2">
+ <property name="text">
+ <string>Command to run toward to end of a track</string>
+ </property>
+ </widget>
+ </item>
<item row="3" column="0">
<widget class="QLineEdit" name="endOfTrackLineEdit"/>
</item>
@@ -43,6 +57,13 @@
</property>
</widget>
</item>
+ <item row="4" column="0" colspan="2">
+ <widget class="QLabel" name="label_3">
+ <property name="text">
+ <string>Command to run when Qmmp reaches the end of the playlist</string>
+ </property>
+ </widget>
+ </item>
<item row="5" column="0">
<widget class="QLineEdit" name="endOfPlayListLineEdit"/>
</item>
@@ -53,6 +74,13 @@
</property>
</widget>
</item>
+ <item row="6" column="0" colspan="2">
+ <widget class="QLabel" name="label_4">
+ <property name="text">
+ <string>Command to run when title changes (i.e. network streams title)</string>
+ </property>
+ </widget>
+ </item>
<item row="7" column="0">
<widget class="QLineEdit" name="titleChangeLineEdit"/>
</item>
@@ -63,40 +91,32 @@
</property>
</widget>
</item>
- <item row="8" column="0" colspan="2">
- <widget class="QDialogButtonBox" name="buttonBox">
- <property name="standardButtons">
- <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
- </property>
- </widget>
- </item>
- <item row="0" column="0" colspan="2">
- <widget class="QLabel" name="label">
+ <item row="8" column="0">
+ <widget class="QLabel" name="label_5">
<property name="text">
- <string>Command to run when Qmmp starts new track</string>
+ <string>Command to run on application startup:</string>
</property>
</widget>
</item>
- <item row="2" column="0" colspan="2">
- <widget class="QLabel" name="label_2">
+ <item row="10" column="0">
+ <widget class="QLabel" name="label_6">
<property name="text">
- <string>Command to run toward to end of a track</string>
+ <string>Command to run on application exit:</string>
</property>
</widget>
</item>
- <item row="4" column="0" colspan="2">
- <widget class="QLabel" name="label_3">
- <property name="text">
- <string>Command to run when Qmmp reaches the end of the playlist</string>
+ <item row="12" column="0" colspan="2">
+ <widget class="QDialogButtonBox" name="buttonBox">
+ <property name="standardButtons">
+ <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
</property>
</widget>
</item>
- <item row="6" column="0" colspan="2">
- <widget class="QLabel" name="label_4">
- <property name="text">
- <string>Command to run when title changes (i.e. network streams title)</string>
- </property>
- </widget>
+ <item row="9" column="0" colspan="2">
+ <widget class="QLineEdit" name="appStartupLineEdit"/>
+ </item>
+ <item row="11" column="0" colspan="2">
+ <widget class="QLineEdit" name="appExitLineEdit"/>
</item>
</layout>
</widget>
diff --git a/src/plugins/General/trackchange/trackchange.cpp b/src/plugins/General/trackchange/trackchange.cpp
index cbe5009f7..5c8168129 100644
--- a/src/plugins/General/trackchange/trackchange.cpp
+++ b/src/plugins/General/trackchange/trackchange.cpp
@@ -18,16 +18,9 @@
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
***************************************************************************/
-#include <QAction>
#include <QSettings>
#include <QApplication>
-#include <QProgressDialog>
-#include <QMessageBox>
-#include <QFile>
-#include <QDir>
#include <QProcess>
-#include <QMap>
-#include <QtDebug>
#include <qmmp/soundcore.h>
#include <qmmpui/uihelper.h>
#include <qmmpui/playlistmodel.h>
@@ -45,10 +38,17 @@ TrackChange::TrackChange(QObject *parent) : QObject(parent)
connect(m_core, SIGNAL(trackInfoChanged()), SLOT(onTrackInfoChanged()));
connect(m_core, SIGNAL(finished()), SLOT(onFinised()));
QSettings settings(Qmmp::configFile(), QSettings::IniFormat);
- m_newTrackCommand = settings.value("TrackChange/new_track_command").toString();
- m_endOfTrackCommand = settings.value("TrackChange/end_of_track_command").toString();
- m_endOfPlCommand = settings.value("TrackChange/end_of_pl_command").toString();
- m_titleChangeCommand = settings.value("TrackChange/title_change_command").toString();
+ settings.beginGroup("TrackChange");
+ m_newTrackCommand = settings.value("new_track_command").toString();
+ m_endOfTrackCommand = settings.value("end_of_track_command").toString();
+ m_endOfPlCommand = settings.value("end_of_pl_command").toString();
+ m_titleChangeCommand = settings.value("title_change_command").toString();
+ m_appStartupCommand = settings.value("title_change_command").toString();
+ m_appExitCommand = settings.value("title_change_command").toString();
+ settings.endGroup();
+
+ connect(qApp, SIGNAL(aboutToQuit()), SLOT(onAppExit()));
+ onAppStartup();
}
TrackChange::~TrackChange()
@@ -104,6 +104,18 @@ void TrackChange::onFinised()
}
}
+void TrackChange::onAppStartup()
+{
+ if(QApplication::allWindows().count() == 1 && !m_appStartupCommand.isEmpty()) //detect startup
+ QProcess::startDetached(m_appStartupCommand);
+}
+
+void TrackChange::onAppExit()
+{
+ if(!m_appExitCommand.isEmpty())
+ QProcess::startDetached(m_appExitCommand);
+}
+
bool TrackChange::executeCommand(const TrackInfo &info, const QString &format)
{
TrackInfo tmp = info;
diff --git a/src/plugins/General/trackchange/trackchange.h b/src/plugins/General/trackchange/trackchange.h
index daacc7cc9..f9fb2f158 100644
--- a/src/plugins/General/trackchange/trackchange.h
+++ b/src/plugins/General/trackchange/trackchange.h
@@ -44,6 +44,8 @@ private slots:
void onStateChanged(Qmmp::State state);
void onTrackInfoChanged();
void onFinised();
+ void onAppStartup();
+ void onAppExit();
private:
bool executeCommand(const TrackInfo &info, const QString &format);
@@ -51,6 +53,8 @@ private:
QString m_endOfTrackCommand;
QString m_endOfPlCommand;
QString m_titleChangeCommand;
+ QString m_appStartupCommand;
+ QString m_appExitCommand;
SoundCore *m_core;
PlayListManager *m_plManager;
TrackInfo m_prevInfo;