aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/plugins/Ui/skinned/forms/skinnedsettings.ui31
-rw-r--r--src/plugins/Ui/skinned/mainwindow.cpp44
-rw-r--r--src/plugins/Ui/skinned/skinnedsettings.cpp32
-rw-r--r--src/plugins/Ui/skinned/skinnedsettings.h2
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;