diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2015-05-06 19:07:28 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2015-05-06 19:07:28 +0000 |
| commit | 2731ececc64c9ab9338b929da7e0cf41e658bb9d (patch) | |
| tree | 2a4118dafb9bbbe541f6f554186a14717d1d3fa1 | |
| parent | 31d4c909c6dc83acabfae1ace0ee7ac9395f59fc (diff) | |
| download | qmmp-2731ececc64c9ab9338b929da7e0cf41e658bb9d.tar.gz qmmp-2731ececc64c9ab9338b929da7e0cf41e658bb9d.tar.bz2 qmmp-2731ececc64c9ab9338b929da7e0cf41e658bb9d.zip | |
added feature to change window title
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@4932 90c681e8-e032-0410-971d-27865f9a5e38
| -rw-r--r-- | src/plugins/Ui/skinned/forms/skinnedsettings.ui | 31 | ||||
| -rw-r--r-- | src/plugins/Ui/skinned/mainwindow.cpp | 44 | ||||
| -rw-r--r-- | src/plugins/Ui/skinned/skinnedsettings.cpp | 32 | ||||
| -rw-r--r-- | src/plugins/Ui/skinned/skinnedsettings.h | 2 |
4 files changed, 84 insertions, 25 deletions
diff --git a/src/plugins/Ui/skinned/forms/skinnedsettings.ui b/src/plugins/Ui/skinned/forms/skinnedsettings.ui index 04192048c..842e51054 100644 --- a/src/plugins/Ui/skinned/forms/skinnedsettings.ui +++ b/src/plugins/Ui/skinned/forms/skinnedsettings.ui @@ -7,7 +7,7 @@ <x>0</x> <y>0</y> <width>489</width> - <height>424</height> + <height>458</height> </rect> </property> <property name="windowTitle"> @@ -94,28 +94,49 @@ <property name="title"> <string>View</string> </property> - <layout class="QGridLayout" name="gridLayout_5"> - <item row="0" column="0"> + <layout class="QGridLayout" name="gridLayout"> + <item row="0" column="0" rowspan="2" colspan="2"> <widget class="QCheckBox" name="hideOnCloseCheckBox"> <property name="text"> <string>Hide on close</string> </property> </widget> </item> - <item row="0" column="1"> + <item row="0" column="2" rowspan="2"> <widget class="QCheckBox" name="hiddenCheckBox"> <property name="text"> <string>Start hidden</string> </property> </widget> </item> - <item row="1" column="0" colspan="2"> + <item row="2" column="0" colspan="3"> <widget class="QCheckBox" name="skinCursorsCheckBox"> <property name="text"> <string>Use skin cursors</string> </property> </widget> </item> + <item row="3" column="0" colspan="3"> + <layout class="QHBoxLayout" name="horizontalLayout"> + <item> + <widget class="QLabel" name="label_6"> + <property name="text"> + <string>Window title format:</string> + </property> + </widget> + </item> + <item> + <widget class="QLineEdit" name="windowTitleLineEdit"/> + </item> + <item> + <widget class="QToolButton" name="windowTitleButton"> + <property name="text"> + <string>...</string> + </property> + </widget> + </item> + </layout> + </item> </layout> </widget> </item> diff --git a/src/plugins/Ui/skinned/mainwindow.cpp b/src/plugins/Ui/skinned/mainwindow.cpp index 48b70e73b..824f40305 100644 --- a/src/plugins/Ui/skinned/mainwindow.cpp +++ b/src/plugins/Ui/skinned/mainwindow.cpp @@ -231,9 +231,32 @@ void MainWindow::readSettings() { QSettings settings(Qmmp::configFile(), QSettings::IniFormat); settings.beginGroup("Skinned"); - if (!m_update) + m_titleFormatter.setPattern(settings.value("window_title_format","%if(%p,%p - %t,%t").toString()); + + if (m_update) { + if(ACTION(ActionManager::WM_ALLWAYS_ON_TOP)->isChecked()) + { + setWindowFlags(windowFlags() | Qt::WindowStaysOnTopHint); + m_playlist->setWindowFlags(m_playlist->windowFlags() | Qt::WindowStaysOnTopHint); + m_equalizer->setWindowFlags(m_equalizer->windowFlags() | Qt::WindowStaysOnTopHint); + } + else + { + setWindowFlags(windowFlags() & ~Qt::WindowStaysOnTopHint); + m_playlist->setWindowFlags(m_playlist->windowFlags() & ~Qt::WindowStaysOnTopHint); + m_equalizer->setWindowFlags(m_equalizer->windowFlags() & ~Qt::WindowStaysOnTopHint); + } + show(); + qApp->processEvents(); + m_playlist->setVisible(m_display->isPlaylistVisible()); + m_equalizer->setVisible(m_display->isEqualizerVisible()); + if (m_pl_manager->currentPlayList()->currentTrack()) + setWindowTitle(m_titleFormatter.format(m_pl_manager->currentPlayList()->currentTrack())); + } + else + { move(settings.value("mw_pos", QPoint(100, 100)).toPoint()); //geometry m_startHidden = settings.value("start_hidden", false).toBool(); if(settings.value("always_on_top", false).toBool()) @@ -259,25 +282,6 @@ void MainWindow::readSettings() ACTION(ActionManager::NO_PL_ADVANCE)->setChecked(m_ui_settings->isNoPlayListAdvance()); m_update = true; } - else - { - if(ACTION(ActionManager::WM_ALLWAYS_ON_TOP)->isChecked()) - { - setWindowFlags(windowFlags() | Qt::WindowStaysOnTopHint); - m_playlist->setWindowFlags(m_playlist->windowFlags() | Qt::WindowStaysOnTopHint); - m_equalizer->setWindowFlags(m_equalizer->windowFlags() | Qt::WindowStaysOnTopHint); - } - else - { - setWindowFlags(windowFlags() & ~Qt::WindowStaysOnTopHint); - m_playlist->setWindowFlags(m_playlist->windowFlags() & ~Qt::WindowStaysOnTopHint); - m_equalizer->setWindowFlags(m_equalizer->windowFlags() & ~Qt::WindowStaysOnTopHint); - } - show(); - qApp->processEvents(); - m_playlist->setVisible(m_display->isPlaylistVisible()); - m_equalizer->setVisible(m_display->isEqualizerVisible()); - } #ifdef Q_WS_X11 WindowSystem::changeWinSticky(winId(), ACTION(ActionManager::WM_STICKY)->isChecked()); WindowSystem::setWinHint(winId(), "player", "Qmmp"); diff --git a/src/plugins/Ui/skinned/skinnedsettings.cpp b/src/plugins/Ui/skinned/skinnedsettings.cpp index 848117026..13219cf91 100644 --- a/src/plugins/Ui/skinned/skinnedsettings.cpp +++ b/src/plugins/Ui/skinned/skinnedsettings.cpp @@ -21,6 +21,7 @@ #include <QSettings> #include <QDir> #include <QFontDialog> +#include <QMenu> #include <qmmp/qmmp.h> #include <qmmpui/filedialog.h> #include <qmmpui/uihelper.h> @@ -39,6 +40,7 @@ SkinnedSettings::SkinnedSettings(QWidget *parent) : QWidget(parent) readSettings(); loadSkins(); loadFonts(); + createActions(); //setup icons m_ui.skinInstallButton->setIcon(QIcon::fromTheme("list-add")); m_ui.skinReloadButton->setIcon(QIcon::fromTheme("view-refresh")); @@ -172,6 +174,26 @@ void SkinnedSettings::findSkins(const QString &path) } } +void SkinnedSettings::createActions() +{ + QMenu *windowTitleMenu = new QMenu(this); + windowTitleMenu->addAction(tr("Artist"))->setData("%p"); + windowTitleMenu->addAction(tr("Album"))->setData("%a"); + windowTitleMenu->addAction(tr("Album Artist"))->setData("%aa"); + windowTitleMenu->addAction(tr("Title"))->setData("%t"); + windowTitleMenu->addAction(tr("Genre"))->setData("%g"); + windowTitleMenu->addAction(tr("Comment"))->setData("%c"); + windowTitleMenu->addAction(tr("Composer"))->setData("%C"); + windowTitleMenu->addAction(tr("Disc Number"))->setData("%D"); + windowTitleMenu->addAction(tr("Year"))->setData("%y"); + windowTitleMenu->addAction(tr("Condition"))->setData("%if(%p&%a,%p - %a,%p%a)"); + windowTitleMenu->addAction(tr("Artist - Title"))->setData("%if(%p,%p - %t,%t)"); + + m_ui.windowTitleButton->setMenu(windowTitleMenu); + m_ui.windowTitleButton->setPopupMode(QToolButton::InstantPopup); + connect(windowTitleMenu, SIGNAL(triggered (QAction *)), SLOT(addWindowTitleString(QAction *))); +} + void SkinnedSettings::loadSkins() { m_reader->generateThumbs(); @@ -215,6 +237,14 @@ void SkinnedSettings::on_popupTemplateButton_clicked() p->deleteLater(); } +void SkinnedSettings::addWindowTitleString(QAction *a) +{ + if (m_ui.windowTitleLineEdit->cursorPosition () < 1) + m_ui.windowTitleLineEdit->insert(a->data().toString()); + else + m_ui.windowTitleLineEdit->insert(" - "+a->data().toString()); +} + void SkinnedSettings::readSettings() { QSettings settings (Qmmp::configFile(), QSettings::IniFormat); @@ -238,6 +268,7 @@ void SkinnedSettings::readSettings() m_currentSkinName = settings.value("skin_name", "default").toString(); m_ui.hiddenCheckBox->setChecked(settings.value("start_hidden", false).toBool()); m_ui.hideOnCloseCheckBox->setChecked(settings.value("hide_on_close", false).toBool()); + m_ui.windowTitleLineEdit->setText(settings.value("window_title_format","%if(%p,%p - %t,%t").toString()); settings.endGroup(); } @@ -262,5 +293,6 @@ void SkinnedSettings::writeSettings() settings.setValue ("skin_name", m_currentSkinName); settings.setValue ("start_hidden", m_ui.hiddenCheckBox->isChecked()); settings.setValue ("hide_on_close", m_ui.hideOnCloseCheckBox->isChecked()); + settings.setValue ("window_title_format", m_ui.windowTitleLineEdit->text()); settings.endGroup(); } diff --git a/src/plugins/Ui/skinned/skinnedsettings.h b/src/plugins/Ui/skinned/skinnedsettings.h index 47aee8504..8ed0110cc 100644 --- a/src/plugins/Ui/skinned/skinnedsettings.h +++ b/src/plugins/Ui/skinned/skinnedsettings.h @@ -44,11 +44,13 @@ private slots: void on_skinInstallButton_clicked(); void loadSkins(); void on_popupTemplateButton_clicked(); + void addWindowTitleString(QAction *a); private: void showEvent(QShowEvent *); void loadFonts(); void findSkins(const QString &path); + void createActions(); void readSettings(); Ui::SkinnedSettings m_ui; |
