diff options
| -rw-r--r-- | src/plugins/General/dbuscontrol/dbuscontrolfactory.cpp | 1 | ||||
| -rw-r--r-- | src/plugins/General/notifier/notifierfactory.cpp | 1 | ||||
| -rw-r--r-- | src/plugins/General/scrobbler/scrobblerfactory.cpp | 1 | ||||
| -rw-r--r-- | src/plugins/General/statusicon/settingsdialog.cpp | 2 | ||||
| -rw-r--r-- | src/plugins/General/statusicon/settingsdialog.ui | 124 | ||||
| -rw-r--r-- | src/plugins/General/statusicon/statusiconfactory.cpp | 1 | ||||
| -rw-r--r-- | src/qmmpui/generalfactory.h | 1 | ||||
| -rw-r--r-- | src/qmmpui/generalhandler.cpp | 11 | ||||
| -rw-r--r-- | src/qmmpui/generalhandler.h | 1 | ||||
| -rw-r--r-- | src/ui/configdialog.cpp | 5 | ||||
| -rw-r--r-- | src/ui/forms/configdialog.ui | 27 | ||||
| -rw-r--r-- | src/ui/mainwindow.cpp | 15 | ||||
| -rw-r--r-- | src/ui/mainwindow.h | 4 |
13 files changed, 96 insertions, 98 deletions
diff --git a/src/plugins/General/dbuscontrol/dbuscontrolfactory.cpp b/src/plugins/General/dbuscontrol/dbuscontrolfactory.cpp index 567614673..704538b8b 100644 --- a/src/plugins/General/dbuscontrol/dbuscontrolfactory.cpp +++ b/src/plugins/General/dbuscontrol/dbuscontrolfactory.cpp @@ -29,6 +29,7 @@ const GeneralProperties DBUSControlFactory::properties() const properties.name = tr("D-Bus Plugin"); properties.hasAbout = TRUE; properties.hasSettings = FALSE; + properties.visibilityControl = FALSE; return properties; } diff --git a/src/plugins/General/notifier/notifierfactory.cpp b/src/plugins/General/notifier/notifierfactory.cpp index 708c1e1dd..91e7eab17 100644 --- a/src/plugins/General/notifier/notifierfactory.cpp +++ b/src/plugins/General/notifier/notifierfactory.cpp @@ -30,6 +30,7 @@ const GeneralProperties NotifierFactory::properties() const properties.name = tr("Notifier Plugin"); properties.hasAbout = TRUE; properties.hasSettings = TRUE; + properties.visibilityControl = FALSE; return properties; } diff --git a/src/plugins/General/scrobbler/scrobblerfactory.cpp b/src/plugins/General/scrobbler/scrobblerfactory.cpp index 7f1fe7757..2bf7bfdfc 100644 --- a/src/plugins/General/scrobbler/scrobblerfactory.cpp +++ b/src/plugins/General/scrobbler/scrobblerfactory.cpp @@ -30,6 +30,7 @@ const GeneralProperties ScrobblerFactory::properties() const properties.name = tr("Scrobbler Plugin"); properties.hasAbout = TRUE; properties.hasSettings = TRUE; + properties.visibilityControl = FALSE; return properties; } diff --git a/src/plugins/General/statusicon/settingsdialog.cpp b/src/plugins/General/statusicon/settingsdialog.cpp index 5dc1ab4eb..d2050f88c 100644 --- a/src/plugins/General/statusicon/settingsdialog.cpp +++ b/src/plugins/General/statusicon/settingsdialog.cpp @@ -32,7 +32,6 @@ SettingsDialog::SettingsDialog(QWidget *parent) ui.messageCheckBox->setChecked(settings.value("show_message",TRUE).toBool()); ui.messageDelaySpinBox->setValue(settings.value("message_delay", 2000).toInt()); ui.toolTipCheckBox->setChecked(settings.value("show_tooltip",FALSE).toBool()); - ui.hideToTrayRadioButton->setChecked(settings.value("hide_on_close", FALSE).toBool()); settings.endGroup(); connect(ui.okButton, SIGNAL(clicked()), SLOT(writeSettings())); } @@ -48,7 +47,6 @@ void SettingsDialog::writeSettings() settings.setValue ("show_message", ui.messageCheckBox->isChecked()); settings.setValue ("message_delay", ui.messageDelaySpinBox->value()); settings.setValue ("show_tooltip", ui.toolTipCheckBox->isChecked()); - settings.setValue ("hide_on_close", ui.hideToTrayRadioButton->isChecked()); settings.endGroup(); accept(); } diff --git a/src/plugins/General/statusicon/settingsdialog.ui b/src/plugins/General/statusicon/settingsdialog.ui index 126fcce7a..7ef412e3c 100644 --- a/src/plugins/General/statusicon/settingsdialog.ui +++ b/src/plugins/General/statusicon/settingsdialog.ui @@ -6,104 +6,54 @@ <x>0</x> <y>0</y> <width>267</width> - <height>285</height> + <height>156</height> </rect> </property> <property name="windowTitle" > <string>Status Icon Plugin Settings</string> </property> - <layout class="QVBoxLayout" > - <item> - <widget class="QGroupBox" name="groupBox_4" > - <property name="title" > - <string>Tray Icon</string> + <layout class="QGridLayout" > + <item row="0" column="0" > + <widget class="QCheckBox" name="messageCheckBox" > + <property name="text" > + <string>Show message</string> </property> - <layout class="QGridLayout" > - <item row="0" column="0" > - <widget class="QCheckBox" name="messageCheckBox" > - <property name="text" > - <string>Show message</string> - </property> - </widget> - </item> - <item row="1" column="0" > - <widget class="QCheckBox" name="toolTipCheckBox" > - <property name="text" > - <string>Show tooltip</string> - </property> - </widget> - </item> - <item row="2" column="0" > - <widget class="QLabel" name="label_3" > - <property name="text" > - <string>Message delay, ms:</string> - </property> - <property name="alignment" > - <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set> - </property> - </widget> - </item> - <item row="2" column="1" > - <widget class="QSpinBox" name="messageDelaySpinBox" > - <property name="minimum" > - <number>100</number> - </property> - <property name="maximum" > - <number>10000</number> - </property> - <property name="singleStep" > - <number>100</number> - </property> - <property name="value" > - <number>1000</number> - </property> - </widget> - </item> - </layout> </widget> </item> - <item> - <widget class="QGroupBox" name="closeGroupBox" > - <property name="title" > - <string>Action On Close</string> + <item row="1" column="0" > + <widget class="QCheckBox" name="toolTipCheckBox" > + <property name="text" > + <string>Show tooltip</string> </property> - <layout class="QVBoxLayout" > - <property name="spacing" > - <number>6</number> - </property> - <property name="leftMargin" > - <number>9</number> - </property> - <property name="topMargin" > - <number>9</number> - </property> - <property name="rightMargin" > - <number>9</number> - </property> - <property name="bottomMargin" > - <number>9</number> - </property> - <item> - <widget class="QRadioButton" name="hideToTrayRadioButton" > - <property name="text" > - <string>Hide to tray</string> - </property> - </widget> - </item> - <item> - <widget class="QRadioButton" name="quitRadioButton" > - <property name="text" > - <string>Quit</string> - </property> - <property name="checked" > - <bool>true</bool> - </property> - </widget> - </item> - </layout> </widget> </item> - <item> + <item row="2" column="0" > + <widget class="QLabel" name="label_3" > + <property name="text" > + <string>Message delay, ms:</string> + </property> + <property name="alignment" > + <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set> + </property> + </widget> + </item> + <item row="2" column="1" > + <widget class="QSpinBox" name="messageDelaySpinBox" > + <property name="minimum" > + <number>100</number> + </property> + <property name="maximum" > + <number>10000</number> + </property> + <property name="singleStep" > + <number>100</number> + </property> + <property name="value" > + <number>1000</number> + </property> + </widget> + </item> + <item row="3" column="0" colspan="2" > <layout class="QHBoxLayout" > <property name="spacing" > <number>6</number> diff --git a/src/plugins/General/statusicon/statusiconfactory.cpp b/src/plugins/General/statusicon/statusiconfactory.cpp index 12c57261c..5aedc6f7c 100644 --- a/src/plugins/General/statusicon/statusiconfactory.cpp +++ b/src/plugins/General/statusicon/statusiconfactory.cpp @@ -30,6 +30,7 @@ const GeneralProperties StatusIconFactory::properties() const properties.name = tr("Status Icon Plugin"); properties.hasAbout = TRUE; properties.hasSettings = TRUE; + properties.visibilityControl = TRUE; return properties; } diff --git a/src/qmmpui/generalfactory.h b/src/qmmpui/generalfactory.h index 980d0b0f1..619632f4d 100644 --- a/src/qmmpui/generalfactory.h +++ b/src/qmmpui/generalfactory.h @@ -34,6 +34,7 @@ struct GeneralProperties QString name; bool hasAbout; bool hasSettings; + bool visibilityControl; }; class GeneralFactory diff --git a/src/qmmpui/generalhandler.cpp b/src/qmmpui/generalhandler.cpp index 99df0e320..94536fc4c 100644 --- a/src/qmmpui/generalhandler.cpp +++ b/src/qmmpui/generalhandler.cpp @@ -138,6 +138,17 @@ void GeneralHandler::showSettings(GeneralFactory* factory, QWidget* parentWidget delete dialog; } +bool GeneralHandler::visibilityControl() +{ + GeneralFactory* factory; + foreach(factory, *General::generalFactories()) + { + if (General::isEnabled(factory) && factory->properties().visibilityControl) + return TRUE; + } + return FALSE; +} + GeneralHandler* GeneralHandler::instance() { return m_instance; diff --git a/src/qmmpui/generalhandler.h b/src/qmmpui/generalhandler.h index 26129f4bc..23232ae86 100644 --- a/src/qmmpui/generalhandler.h +++ b/src/qmmpui/generalhandler.h @@ -42,6 +42,7 @@ public: void updateVolume(int left, int right); void setEnabled(GeneralFactory* factory, bool enable); void showSettings(GeneralFactory* factory, QWidget* parentWidget); + bool visibilityControl(); static GeneralHandler* instance(); signals: diff --git a/src/ui/configdialog.cpp b/src/ui/configdialog.cpp index fac9c4dd6..949667f80 100644 --- a/src/ui/configdialog.cpp +++ b/src/ui/configdialog.cpp @@ -122,6 +122,8 @@ void ConfigDialog::readSettings() ui.proxyUserLineEdit->setEnabled(ui.authProxyCheckBox->isChecked()); ui.proxyPasswLineEdit->setEnabled(ui.authProxyCheckBox->isChecked()); + ui.hiddenCheckBox->setChecked(settings.value("MainWindow/start_hidden", FALSE).toBool()); + ui.hideOnCloseCheckBox->setChecked(settings.value("MainWindow/hide_on_close", FALSE).toBool()); ui.softVolumeCheckBox->setChecked(settings.value("Volume/software_volume", FALSE).toBool()); } @@ -130,6 +132,7 @@ void ConfigDialog::changePage (QListWidgetItem *current, QListWidgetItem *previo if (!current) current = previous; ui.stackedWidget->setCurrentIndex (ui.contentsWidget->row (current)); + ui.visibilityGroupBox->setEnabled(GeneralHandler::instance()->visibilityControl()); } void ConfigDialog::changeSkin() @@ -533,6 +536,8 @@ void ConfigDialog::saveSettings() settings.setValue ("Proxy/user",ui.proxyUserLineEdit->text()); settings.setValue ("Proxy/passw",ui.proxyPasswLineEdit->text()); settings.setValue ("Volume/software_volume", ui.softVolumeCheckBox->isChecked()); + settings.setValue ("MainWindow/start_hidden", ui.hiddenCheckBox->isChecked()); + settings.setValue ("MainWindow/hide_on_close", ui.hideOnCloseCheckBox->isChecked()); } void ConfigDialog::updateButtons() diff --git a/src/ui/forms/configdialog.ui b/src/ui/forms/configdialog.ui index 12be43826..6e08c2c00 100644 --- a/src/ui/forms/configdialog.ui +++ b/src/ui/forms/configdialog.ui @@ -691,14 +691,37 @@ </widget> </item> <item> + <widget class="QGroupBox" name="visibilityGroupBox" > + <property name="title" > + <string>Visibility Control</string> + </property> + <layout class="QVBoxLayout" > + <item> + <widget class="QCheckBox" name="hideOnCloseCheckBox" > + <property name="text" > + <string>Hide on close</string> + </property> + </widget> + </item> + <item> + <widget class="QCheckBox" name="hiddenCheckBox" > + <property name="text" > + <string>Start hidden</string> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item> <spacer> <property name="orientation" > <enum>Qt::Vertical</enum> </property> <property name="sizeHint" > <size> - <width>20</width> - <height>251</height> + <width>387</width> + <height>151</height> </size> </property> </spacer> diff --git a/src/ui/mainwindow.cpp b/src/ui/mainwindow.cpp index b5fb8a6f9..59294d31a 100644 --- a/src/ui/mainwindow.cpp +++ b/src/ui/mainwindow.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2006 by Ilya Kotov * + * Copyright (C) 2006-2008 by Ilya Kotov * * forkotov02@hotmail.ru * * * * This program is free software; you can redistribute it and/or modify * @@ -155,6 +155,8 @@ MainWindow::MainWindow(const QStringList& args,CommandLineOptionManager* option_ char buf[PATH_MAX + 1]; QString cwd = QString::fromLocal8Bit(getcwd(buf,PATH_MAX)); processCommandArgs(args,cwd); + if(m_startHidden && m_generalHandler->visibilityControl()) + toggleVisibility(); } @@ -532,8 +534,10 @@ void MainWindow::readSettings() move(settings.value("pos", QPoint(100, 100)).toPoint()); //last directory m_lastDir = settings.value("last_dir","/").toString(); + m_startHidden = settings.value("start_hidden", FALSE).toBool(); settings.endGroup(); show(); + //visibility m_playlist->setVisible(settings.value("Playlist/visible",TRUE).toBool()); m_equalizer->setVisible(settings.value("Equalizer/visible",TRUE).toBool()); @@ -551,6 +555,7 @@ void MainWindow::readSettings() m_update = TRUE; } + m_hideOnClose = settings.value("MainWindow/hide_on_close", FALSE).toBool(); } void MainWindow::writeSettings() @@ -825,10 +830,10 @@ void MainWindow::jumpToFile() void MainWindow::handleCloseRequest() { - //if (m_hide_on_titlebar_close && m_tray->isVisible()) - /*toggleVisibility(); - else*/ - QApplication::closeAllWindows(); + if (m_hideOnClose && m_generalHandler->visibilityControl()) + toggleVisibility(); + else + QApplication::closeAllWindows(); } void MainWindow::addUrl( ) diff --git a/src/ui/mainwindow.h b/src/ui/mainwindow.h index 0ad44cec4..21b1c8fab 100644 --- a/src/ui/mainwindow.h +++ b/src/ui/mainwindow.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2006 by Ilya Kotov * + * Copyright (C) 2006-2008 by Ilya Kotov * * forkotov02@hotmail.ru * * * * This program is free software; you can redistribute it and/or modify * @@ -132,7 +132,7 @@ private: Skin *m_skin; QString m_playlistName; JumpToTrackDialog* m_jumpDialog; - bool m_hide_on_titlebar_close; + bool m_hideOnClose, m_startHidden; int m_elapsed; VisualMenu *m_visMenu; CommandLineOptionManager* m_option_manager; |
