diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2020-02-20 17:15:22 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2020-02-20 17:15:22 +0000 |
| commit | 94aa57d698a6400ae9c9d46991193d8ee844bb83 (patch) | |
| tree | 627ff0e180f70bc7eca9ddd7f6792f64fd9182fc /src/plugins/General/trackchange | |
| parent | bc9f38c3aa0ba093afb569497ba046493fada15f (diff) | |
| download | qmmp-94aa57d698a6400ae9c9d46991193d8ee844bb83.tar.gz qmmp-94aa57d698a6400ae9c9d46991193d8ee844bb83.tar.bz2 qmmp-94aa57d698a6400ae9c9d46991193d8ee844bb83.zip | |
trackchange: feature to start command on application startup/exit (#202)
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@9235 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/plugins/General/trackchange')
| -rw-r--r-- | src/plugins/General/trackchange/settingsdialog.cpp | 24 | ||||
| -rw-r--r-- | src/plugins/General/trackchange/settingsdialog.ui | 70 | ||||
| -rw-r--r-- | src/plugins/General/trackchange/trackchange.cpp | 34 | ||||
| -rw-r--r-- | src/plugins/General/trackchange/trackchange.h | 4 |
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; |
