diff --git a/src/Display.cpp b/src/Display.cpp index f396176..8f154eb 100644 --- a/src/Display.cpp +++ b/src/Display.cpp @@ -20,10 +20,10 @@ #include "Skin.h" #include "TitleBar.h" - #include "FileDialog.h" #include +#include SkinDisplay::SkinDisplay (QWidget *parent) : QWidget(parent) { diff --git a/src/NumberDisplay.cpp b/src/NumberDisplay.cpp index 0456b0e..919f527 100644 --- a/src/NumberDisplay.cpp +++ b/src/NumberDisplay.cpp @@ -18,6 +18,8 @@ #include "TimeDisplay.h" #include "Skin.h" +#include + NumberDisplay::NumberDisplay (QWidget *parent, TimeDisplay *td,uint w, uint startpx) : PixWidget (parent) { m_td = td; diff --git a/src/PixWidget.h b/src/PixWidget.h index 9789ffb..79f497b 100644 --- a/src/PixWidget.h +++ b/src/PixWidget.h @@ -28,12 +28,10 @@ class PixWidget : public QWidget PixWidget(QWidget *parent = 0); ~PixWidget(); void paintEvent (QPaintEvent *event); - QWidget *getMW (void) { return m_mw; } public slots: virtual void setPixmaps(Skin *skin); protected: QPixmap m_pixmap; - QWidget *m_mw; }; #endif diff --git a/src/Skin.cpp b/src/Skin.cpp index e2da390..efea9d4 100644 --- a/src/Skin.cpp +++ b/src/Skin.cpp @@ -15,6 +15,9 @@ #include "Skin.h" +#include +#include + Skin *Skin::singleton = NULL; Skin *Skin::getInstance (void) diff --git a/src/Skin.h b/src/Skin.h index c0e25db..ba3b4d1 100644 --- a/src/Skin.h +++ b/src/Skin.h @@ -19,10 +19,9 @@ #include #include -#include #include #include -#include +class QDir; class Skin : public QWidget { diff --git a/src/VolumeSlider.cpp b/src/VolumeSlider.cpp index fd589eb..aabe405 100644 --- a/src/VolumeSlider.cpp +++ b/src/VolumeSlider.cpp @@ -17,11 +17,13 @@ #include #include "VolumeSlider.h" -#include #include "Skin.h" #include "Button.h" +#include +#include + #define CLAMP(x, low, high) (((x) > (high)) ? (high) : (((x) < (low)) ? (low) : (x))) Slider::Slider (QWidget *parent, uint name_min, uint name_max, diff --git a/src/equalizer/equalizerwidget.cpp b/src/equalizer/equalizerwidget.cpp index 158dad3..5b92b3f 100644 --- a/src/equalizer/equalizerwidget.cpp +++ b/src/equalizer/equalizerwidget.cpp @@ -23,6 +23,7 @@ #include "Skin.h" #include "VolumeSlider.h" +#include EqualizerSlider::EqualizerSlider (QWidget *parent, uint pix_min, uint pix_max, uint pix_on, uint pix_off, int min, int max, @@ -108,7 +109,9 @@ EqualizerWidget::EqualizerWidget (QWidget *parent) : QWidget (parent) value = m_xconfig->value_get (key); serverConfigChanged (key, value); // set preamp - + key = QString ("equalizer.preamp"); + value = m_xconfig->value_get (key); + serverConfigChanged (key, value); // Set band-sliders for (int i=0; i < 10; i++) { key = QString ("equalizer.legacy%1").arg(i); diff --git a/src/mainwindow/maindisplay.cpp b/src/mainwindow/maindisplay.cpp index 4394fc4..7a4c85b 100644 --- a/src/mainwindow/maindisplay.cpp +++ b/src/mainwindow/maindisplay.cpp @@ -17,6 +17,7 @@ #include "XMMSHandler.h" #include "xclientcache.h" #include "xplayback.h" +#include "xconfig.h" #include "maindisplay.h" #include "mainwindow.h" @@ -40,6 +41,9 @@ MainDisplay::MainDisplay (QWidget *parent) : SkinDisplay(parent) { + XMMSHandler &client = XMMSHandler::getInstance (); + m_xconfig = client.xconfig (); + m_tbar = new TitleBar(this, false); m_tbar->move(0, 0); m_tbar->resize(275, 14); @@ -86,7 +90,6 @@ MainDisplay::MainDisplay (QWidget *parent) : SkinDisplay(parent) Skin::BALANCE_BTN_0, Skin::BALANCE_BTN_1, -20, 20); m_bslider->move (177, 57); - XMMSHandler &client = XMMSHandler::getInstance (); connect (&client, SIGNAL(currentSong (const Xmms::PropDict &)), this, SLOT(setMediainfo (const Xmms::PropDict &))); connect (&client, SIGNAL(playbackStatusChanged(Xmms::Playback::Status)), @@ -98,6 +101,8 @@ MainDisplay::MainDisplay (QWidget *parent) : SkinDisplay(parent) connect (&client, SIGNAL(getVolume(uint)), this, SLOT(updateVolume(uint))); connect (m_vslider, SIGNAL(valueChanged(int)), this, SLOT(setVolume(int))); client.volumeGet(); + + setupServerConfig (); } @@ -249,7 +254,9 @@ MainDisplay::SetupToggleButtons (void) m_repeat = new ToggleButton (this, Skin::REPEAT_ON_0, Skin::REPEAT_ON_1, Skin::REPEAT_OFF_0, Skin::REPEAT_OFF_1); m_repeat->move(210, 89); - m_repeat->setEnabled(false); // FIXME: Disabled button for now, not yet implemented + connect (m_repeat, SIGNAL (clicked (bool)), + this, SLOT (setRepeatAllEnabled (bool))); + //m_repeat->setEnabled(false); // FIXME: Disabled button for now, not yet implemented } @@ -291,3 +298,43 @@ MainDisplay::SetupPushButtons (void) } + +/* + * Methods for interaction with the server configuration + */ +void +MainDisplay::setupServerConfig () +{ + connect (m_xconfig, SIGNAL (configChanged (QString, QString)), + this, SLOT (serverConfigChanged (QString, QString))); + + if (m_xconfig->isReady ()) { + QString key; + QString value; + // set repeat button + key = QString ("playlist.repeat_all"); + value = m_xconfig->value_get (key); + serverConfigChanged (key, value); + } +} + +void +MainDisplay::serverConfigChanged (QString key, QString value) +{ + if (key == "playlist.repeat_all") { + if (value != "0") { + m_repeat->setChecked (true); + } else { + m_repeat->setChecked (false); + } + } +} + +void +MainDisplay::setRepeatAllEnabled (bool enabled) { + if (enabled) { + m_xconfig->value_set ("playlist.repeat_all", "1"); + } else { + m_xconfig->value_set ("playlist.repeat_all", "0"); + } +} diff --git a/src/mainwindow/maindisplay.h b/src/mainwindow/maindisplay.h index 9d5f517..cd5d228 100644 --- a/src/mainwindow/maindisplay.h +++ b/src/mainwindow/maindisplay.h @@ -43,6 +43,7 @@ class Slider; class PlayStatus; class MainWindow; class ClutterBar; +class XConfig; class MainDisplay : public SkinDisplay { @@ -76,6 +77,10 @@ class MainDisplay : public SkinDisplay void updateVolume (uint volume); void setVolume (int volume); + protected slots: + void serverConfigChanged (QString key, QString value); + void setRepeatAllEnabled (bool enabled); + protected: void SetupPushButtons (void); void SetupToggleButtons (void); @@ -96,6 +101,11 @@ class MainDisplay : public SkinDisplay ClutterBar *m_clutterbar; + private: + void setupServerConfig (); + + XConfig *m_xconfig; + }; #endif diff --git a/src/mainwindow/stereomono.cpp b/src/mainwindow/stereomono.cpp index d538920..682e519 100644 --- a/src/mainwindow/stereomono.cpp +++ b/src/mainwindow/stereomono.cpp @@ -16,6 +16,8 @@ #include "stereomono.h" #include "Skin.h" +#include + StereoMono::StereoMono (QWidget *parent) : PixWidget (parent) { setMinimumSize (56, 12); diff --git a/src/playlist/playlistmenu.cpp b/src/playlist/playlistmenu.cpp index 346af68..da192e7 100644 --- a/src/playlist/playlistmenu.cpp +++ b/src/playlist/playlistmenu.cpp @@ -19,6 +19,7 @@ #include #include #include +#include PlaylistMenuButton::PlaylistMenuButton (PlaylistMenu *menu, uint pix1, uint pix2) : QWidget (menu) @@ -54,6 +55,10 @@ PlaylistMenuButton::setPixmaps (Skin *skin) m_pixmap = m_pixmap1; } + +/* + * PlaylistMenu + */ PlaylistMenu::PlaylistMenu (QWidget *parent, uint pix, uint decoration) : PixWidget (parent) { diff --git a/src/playlist/playlistmenu.h b/src/playlist/playlistmenu.h index 30d5748..6c11e71 100644 --- a/src/playlist/playlistmenu.h +++ b/src/playlist/playlistmenu.h @@ -18,13 +18,11 @@ class PlaylistMenu; -#include "XMMSHandler.h" +//#include "XMMSHandler.h" #include "PixWidget.h" #include "Skin.h" -class PlaylistMenu; -#include -class QWidget; +#include class PlaylistMenuBar : public PixWidget { Q_OBJECT diff --git a/src/playlist/playlistshade.cpp b/src/playlist/playlistshade.cpp index ae5bead..12559a0 100644 --- a/src/playlist/playlistshade.cpp +++ b/src/playlist/playlistshade.cpp @@ -20,6 +20,7 @@ #include "playlistwindow.h" #include +#include PlaylistShade::PlaylistShade (QWidget *parent) : QWidget (parent) { diff --git a/src/playlist/playlistview.cpp b/src/playlist/playlistview.cpp index 4a9c244..1e2ffc8 100644 --- a/src/playlist/playlistview.cpp +++ b/src/playlist/playlistview.cpp @@ -27,6 +27,7 @@ #include #include #include +#include #include #include #include diff --git a/src/playlist/playlistwidget.cpp b/src/playlist/playlistwidget.cpp index 739ac6c..91a5c4e 100644 --- a/src/playlist/playlistwidget.cpp +++ b/src/playlist/playlistwidget.cpp @@ -36,6 +36,7 @@ #include #include #include +#include /* * diff --git a/src/widgets/pixmapbutton.h b/src/widgets/pixmapbutton.h index e9206dd..fcf1285 100644 --- a/src/widgets/pixmapbutton.h +++ b/src/widgets/pixmapbutton.h @@ -22,6 +22,16 @@ class QPaintEvent; class QWidget; +/* + * QIcon::Normal for normal apperance + * QIcon::Active for pressed state + * + * QIcon::Off for uncecked state + * QIcon::On for checked state + * + * only QIcon::Normal QIcon::Off combination is necessary + */ + class PixmapButton : public QAbstractButton { Q_OBJECT