From 2731ececc64c9ab9338b929da7e0cf41e658bb9d Mon Sep 17 00:00:00 2001 From: trialuser02 Date: Wed, 6 May 2015 19:07:28 +0000 Subject: 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 --- src/plugins/Ui/skinned/forms/skinnedsettings.ui | 31 ++++++++++++++--- src/plugins/Ui/skinned/mainwindow.cpp | 44 ++++++++++++++----------- src/plugins/Ui/skinned/skinnedsettings.cpp | 32 ++++++++++++++++++ src/plugins/Ui/skinned/skinnedsettings.h | 2 ++ 4 files changed, 84 insertions(+), 25 deletions(-) (limited to 'src') 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 @@ 0 0 489 - 424 + 458 @@ -94,28 +94,49 @@ View - - + + Hide on close - + Start hidden - + Use skin cursors + + + + + + Window title format: + + + + + + + + + + ... + + + + + 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 #include #include +#include #include #include #include @@ -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; -- cgit v1.2.3-13-gbd6f