From c08a635673308fd597000974c6ffae1352f52ad1 Mon Sep 17 00:00:00 2001 From: Tobias Rundstrom Date: Sun, 5 Mar 2006 17:22:29 -0300 Subject: [PATCH] Added playlist fontsize setting. --- Playlist.cpp | 1 - PlaylistList.cpp | 24 +++++++++++++++++++++++- PlaylistList.h | 1 + SettingsWindow.cpp | 37 ++++++++++++++++++++++++++++++++++++- SettingsWindow.h | 13 ++++++++++++- 5 files changed, 72 insertions(+), 4 deletions(-) diff --git a/Playlist.cpp b/Playlist.cpp index c76399e..69a1062 100644 --- a/Playlist.cpp +++ b/Playlist.cpp @@ -187,7 +187,6 @@ PlaylistWindow::leaveEvent (QEvent *event) } - PlaylistWidget::PlaylistWidget (QWidget *parent) : QWidget (parent) { Skin *skin = Skin::getInstance (); diff --git a/PlaylistList.cpp b/PlaylistList.cpp index 66859ca..730063d 100644 --- a/PlaylistList.cpp +++ b/PlaylistList.cpp @@ -5,6 +5,7 @@ #include #include +#include #include PlaylistItem::PlaylistItem (PlaylistList *pl, uint id) @@ -39,9 +40,13 @@ PlaylistItem::text (void) PlaylistList::PlaylistList (QWidget *parent) : QWidget (parent) { + QSettings s; XMMSHandler *xmmsh = XMMSHandler::getInstance (); Skin *skin = Skin::getInstance (); + if (!s.contains("playlist/fontsize")) + s.setValue ("playlist/fontsize", 10); + setAttribute (Qt::WA_NoBackground); setFocusPolicy (Qt::StrongFocus); @@ -73,6 +78,22 @@ PlaylistList::PlaylistList (QWidget *parent) : QWidget (parent) connect (xmmsh, SIGNAL(playbackStatusChanged(uint)), this, SLOT(setStatus(uint))); + + connect (xmmsh, SIGNAL(settingsSaved()), + this, SLOT(settingsSaved())); +} + +void +PlaylistList::settingsSaved () +{ + QSettings s; + m_font->setPixelSize (s.value ("playlist/fontsize").toInt ()); + + if (m_fontmetrics) { + delete m_fontmetrics; + } + m_fontmetrics = new QFontMetrics (*m_font); + update (); } void @@ -578,6 +599,7 @@ PlaylistList::getFontH (void) void PlaylistList::setPixmaps (Skin *skin) { + QSettings s; QPalette pal; QColor c; c.setNamedColor (skin->getPLeditValue ("normalbg")); @@ -589,7 +611,7 @@ PlaylistList::setPixmaps (Skin *skin) delete m_font; } m_font = new QFont (skin->getPLeditValue ("font")); - m_font->setPixelSize (10); + m_font->setPixelSize (s.value ("playlist/fontsize").toInt ()); if (m_fontmetrics) { delete m_fontmetrics; diff --git a/PlaylistList.h b/PlaylistList.h index b8e9041..f8258ca 100644 --- a/PlaylistList.h +++ b/PlaylistList.h @@ -27,6 +27,7 @@ class PlaylistList : public QWidget { void playlistChanged (QHash); void currentID (uint); void setStatus (uint); + void settingsSaved (); private: void paintEvent (QPaintEvent *event); diff --git a/SettingsWindow.cpp b/SettingsWindow.cpp index fa72e48..56ae972 100644 --- a/SettingsWindow.cpp +++ b/SettingsWindow.cpp @@ -36,7 +36,7 @@ SettingsWindow::SettingsWindow (QWidget *parent) : QMainWindow (parent) hbox->addWidget (ok); m_mainwindow = new SettingsTabMain (tab); - m_playlistwin = new QWidget (tab); + m_playlistwin = new SettingsTabPlaylist (tab); m_medialib = new QWidget (tab); tab->addTab (m_mainwindow, tr ("Main Window")); @@ -49,11 +49,46 @@ SettingsWindow::okButton (void) { XMMSHandler *xmmsh = XMMSHandler::getInstance (); m_mainwindow->saveSettings (); + m_playlistwin->saveSettings (); close (); xmmsh->updateSettings (); } +SettingsTabPlaylist::SettingsTabPlaylist (QWidget *parent) : QWidget (parent) +{ + QSettings s; + + s.beginGroup("playlist"); + QWidget *dummy = new QWidget (this); + + QVBoxLayout *vbox = new QVBoxLayout (dummy); + QWidget *c = new QWidget (dummy); + QHBoxLayout *h = new QHBoxLayout (c); + + vbox->addWidget (c); + + m_fontsize = new QSpinBox (c); + m_fontsize->setSizePolicy (QSizePolicy (QSizePolicy::Fixed, QSizePolicy::Fixed)); + m_fontsize->setMinimum (6); + m_fontsize->setMaximum (20); + m_fontsize->setValue (s.value("fontsize").toInt ()); + h->addWidget (m_fontsize); + + QLabel *l = new QLabel (tr ("Playlist fontsize"), c); + l->setSizePolicy (QSizePolicy (QSizePolicy::Fixed, QSizePolicy::Fixed)); + h->addWidget (l); + + s.endGroup (); +} + +void +SettingsTabPlaylist::saveSettings (void) +{ + QSettings s; + s.setValue ("playlist/fontsize", m_fontsize->value ()); +} + SettingsTabMain::SettingsTabMain (QWidget *parent) : QWidget (parent) { QSettings s; diff --git a/SettingsWindow.h b/SettingsWindow.h index d20fcf7..de7cfd5 100644 --- a/SettingsWindow.h +++ b/SettingsWindow.h @@ -10,6 +10,17 @@ #include #include +class SettingsTabPlaylist : public QWidget { + Q_OBJECT + public: + SettingsTabPlaylist (QWidget *parent); + ~SettingsTabPlaylist () {} + void saveSettings (void); + + private: + QSpinBox *m_fontsize; +}; + class SettingsTabMain : public QWidget { Q_OBJECT public: @@ -40,7 +51,7 @@ class SettingsWindow : public QMainWindow { private: SettingsTabMain *m_mainwindow; - QWidget *m_playlistwin; + SettingsTabPlaylist *m_playlistwin; QWidget *m_medialib; };