diff --git a/src/XMMSHandler.cpp b/src/XMMSHandler.cpp index 0d0a356..2483e31 100644 --- a/src/XMMSHandler.cpp +++ b/src/XMMSHandler.cpp @@ -40,21 +40,6 @@ XMMSHandler::XMMSHandler (QObject *parent, const std::string &name) : XClient (p bool XMMSHandler::connect_handler (const char *ipcpath, const bool &sync, QWidget *parent) { -/* try { - m_client.connect(path); - //TODO reenable checking of path - //m_client.connect (path ? path : ""); - } - catch (Xmms::connection_error& e) { - QErrorMessage *err = new QErrorMessage (); - err->showMessage ("Couldn't connect to XMMS2, please try again."); - err->exec (); - delete err; - return false; - } - - m_client.setMainloop (new XmmsQT4 (m_client.getConnection ())); -*/ //TODO must be moved elsewere later m_playlist_model = new PlaylistModel(NULL, this, "_active"); @@ -86,45 +71,3 @@ XMMSHandler::DictToQHash (const std::string &key, } } -/* -void -XMMSHandler::PropDictToQHash (const std::string &key, - const Xmms::Dict::Variant &value, - const std::string &source, - QHash &hash) -{ - if (value.type () == typeid (int32_t)) { - hash.insert (QString::fromLatin1 (key.c_str ()), - QString::number (boost::get< int32_t > (value))); - } else if (value.type () == typeid (uint32_t)) { - hash.insert (QString::fromLatin1 (key.c_str ()), - QString::number (boost::get< uint32_t > (value))); - } else { - hash.insert (QString::fromLatin1 (key.c_str ()), - QString::fromUtf8 (boost::get< std::string > (value).c_str())); - } -} -*/ -/* -uint -XMMSHandler::medialibQuery (QString q) -{ - XMMSResultDictList *r = m_xmmsc->medialib_select (q.toUtf8 ()); - r->connect (sigc::mem_fun (this, &XMMSHandler::medialib_select)); - m_mlibqs->append (r); -} - -void -XMMSHandler::medialib_select (XMMSResultDictList *res) -{ - QList > l; - - for (;res->listValid (); res->listNext()) { - QHash h(DictToQHash (static_cast(res))); - l.append (h); - } - - emit medialibResponse (res->getCID (), l); -} -*/ - diff --git a/src/XMMSHandler.h b/src/XMMSHandler.h index 0e28b16..93fafd0 100644 --- a/src/XMMSHandler.h +++ b/src/XMMSHandler.h @@ -46,30 +46,14 @@ class XMMSHandler : public XClient { void medialibQueryAdd (QString q) { delete m_xmmsc->medialib_add_to_playlist (q.toUtf8 ()); } */ - //const XMMSClient *getXMMS () { return m_xmmsc; } - - void updateSettings () { emit settingsSaved (); } - Xmms::Client *getClient () { return m_client; } PlaylistModel *getPlaylistModel () {return m_playlist_model; } - signals: - void settingsSaved (); - /* - void medialibResponse (uint, const QList > &); - */ - private: void DictToQHash (const std::string &key, const Xmms::Dict::Variant &value, QHash &hash); -// void PropDictToQHash (const std::string &key, -// const Xmms::Dict::Variant &value, -// const std::string &source, -// QHash &hash); - - XmmsQT4 *m_qt4; PlaylistModel *m_playlist_model; }; diff --git a/src/application.h b/src/application.h index 303e2cd..b075f06 100644 --- a/src/application.h +++ b/src/application.h @@ -25,10 +25,13 @@ class Application : public QApplication { Q_OBJECT + signals: + void settingsChanged (void); + public: - Application (int &argc, char **argv); + Application (int &argc, char **argv); public slots: - void cleanupHandler (); - void handleDisconnected (); + void cleanupHandler (); + void handleDisconnected (); }; diff --git a/src/mainwindow/textbar.cpp b/src/mainwindow/textbar.cpp index bd67537..6021b20 100644 --- a/src/mainwindow/textbar.cpp +++ b/src/mainwindow/textbar.cpp @@ -26,7 +26,7 @@ #include #include -#include +#include TextScroller::TextScroller (QWidget *parent, uint w, uint h, const QString &name) : QWidget (parent) @@ -65,11 +65,12 @@ TextScroller::TextScroller (QWidget *parent, uint w, m_timer = new QTimer (this); m_timer->setInterval (40); connect (m_timer, SIGNAL (timeout()), this, SLOT (addOffset ())); - //connect (xmmsh, SIGNAL (settingsSaved ()), this, SLOT (settingsSaved ())); + connect (qApp, SIGNAL (settingsChanged ()), + this, SLOT (settingsChanged ())); } void -TextScroller::settingsSaved (void) +TextScroller::settingsChanged (void) { QSettings s; s.beginGroup ("display_" + m_name); diff --git a/src/mainwindow/textbar.h b/src/mainwindow/textbar.h index 1d14f6b..f30a44d 100644 --- a/src/mainwindow/textbar.h +++ b/src/mainwindow/textbar.h @@ -38,7 +38,7 @@ class TextScroller : public QWidget public slots: void addOffset (); void setPixmaps(Skin *skin); - void settingsSaved (void); + void settingsChanged (void); protected: void paintEvent (QPaintEvent *event); diff --git a/src/playlist/playlistshade.cpp b/src/playlist/playlistshade.cpp index 9252e27..49ed40b 100644 --- a/src/playlist/playlistshade.cpp +++ b/src/playlist/playlistshade.cpp @@ -17,6 +17,7 @@ #include #include "xclientcache.h" +#include "application.h" #include "playlistshade.h" #include "playlistwindow.h" #include "pixmapbutton.h" @@ -49,15 +50,15 @@ PlaylistShade::PlaylistShade (PlaylistWindow *parent) : QWidget (parent) connect (xmmsh.cache (), SIGNAL (activeEntryChanged (QVariantHash)), this, SLOT (setMediainfo (QVariantHash))); - connect (&xmmsh, SIGNAL(settingsSaved ()), - this, SLOT(settingsSaved ())); + connect (qApp, SIGNAL(settingsChanged ()), + this, SLOT(settingsChanged ())); m_text = "Promoe " PROMOE_VERSION " - A very neat XMMS2 client"; setMinimumSize (275, 14); } void -PlaylistShade::settingsSaved () +PlaylistShade::settingsChanged () { QSettings s; diff --git a/src/playlist/playlistshade.h b/src/playlist/playlistshade.h index 9d89d24..0b4e7cf 100644 --- a/src/playlist/playlistshade.h +++ b/src/playlist/playlistshade.h @@ -43,7 +43,7 @@ class PlaylistShade : public QWidget { public slots: void setPixmaps (Skin *skin); void setMediainfo (QVariantHash); - void settingsSaved (); + void settingsChanged (); void resizeEvent (QResizeEvent *); private: diff --git a/src/playlist/playlistview.cpp b/src/playlist/playlistview.cpp index 72fe862..f97ee49 100644 --- a/src/playlist/playlistview.cpp +++ b/src/playlist/playlistview.cpp @@ -18,6 +18,7 @@ #include "XMMSHandler.h" #include "xplayback.h" +#include "application.h" #include "playlistview.h" #include "playlistmodel.h" #include "playlistwidget.h" @@ -137,8 +138,8 @@ PlaylistView::PlaylistView (QWidget *parent) : QListView (parent) XMMSHandler &xmmsh = XMMSHandler::getInstance (); - connect (&xmmsh, SIGNAL(settingsSaved()), - this, SLOT(settingsSaved())); + connect (qApp, SIGNAL (settingsChanged ()), + this, SLOT (settingsChanged ())); connect (xmmsh.xplayback (), SIGNAL(playbackStatusChanged(Xmms::Playback::Status)), this, SLOT(handleStatus(Xmms::Playback::Status))); @@ -219,7 +220,7 @@ PlaylistView::handleStatus (const Xmms::Playback::Status st) } void -PlaylistView::settingsSaved () +PlaylistView::settingsChanged () { QSettings s; m_font->setPixelSize (s.value ("playlist/fontsize").toInt ()); diff --git a/src/playlist/playlistview.h b/src/playlist/playlistview.h index 9a1c0cf..6d6c810 100644 --- a/src/playlist/playlistview.h +++ b/src/playlist/playlistview.h @@ -60,7 +60,7 @@ class PlaylistView : public QListView { void cropSelected (void); void removeSelected (void); void showEntryInfo (void); - void settingsSaved (void); + void settingsChanged (void); void setPixmaps (Skin *skin); protected: diff --git a/src/settingsdialog.cpp b/src/settingsdialog.cpp index 4539ed2..4bd870f 100644 --- a/src/settingsdialog.cpp +++ b/src/settingsdialog.cpp @@ -38,6 +38,9 @@ SettingsDialog::SettingsDialog (QWidget *parent) : QDialog (parent) resize (400, 500); + connect (this, SIGNAL (settingsChanged (void)), + qApp, SIGNAL (settingsChanged (void))); + QVBoxLayout *vbox = new QVBoxLayout (this); setLayout(vbox); @@ -66,8 +69,13 @@ SettingsDialog::SettingsDialog (QWidget *parent) : QDialog (parent) void SettingsDialog::okButton (void) { - m_mainwindow->saveSettings (); - m_playlistwin->saveSettings (); + bool changed = false; + + changed |= m_mainwindow->saveSettings (); + changed |= m_playlistwin->saveSettings (); + + if (changed) + emit settingsChanged (); close (); } @@ -306,13 +314,15 @@ SettingsTabPlaylist::SettingsTabPlaylist (QWidget *parent) : QWidget (parent) s.endGroup (); } -void +bool SettingsTabPlaylist::saveSettings (void) { QSettings s; s.setValue ("playlist/fontsize", m_fontsize->value ()); s.setValue ("playlist/shadedsize", m_shadesize->value ()); s.setValue ("playlist/useremote", m_remote_fs->checkState () == Qt::Checked); + //TODO: Check if we really changed something + return true; } SettingsTabMain::SettingsTabMain (QWidget *parent) : QWidget (parent) @@ -472,7 +482,7 @@ SettingsTabMain::SettingsTabMain (QWidget *parent) : QWidget (parent) } -void +bool SettingsTabMain::saveSettings (void) { QSettings s; @@ -490,4 +500,7 @@ SettingsTabMain::saveSettings (void) s.setValue ("fontsize", m_shadesize->value ()); s.setValue ("ttf", m_shadettf->checkState () == Qt::Checked); s.endGroup (); + + //TODO: Check if we really changed something + return true; } diff --git a/src/settingsdialog.h b/src/settingsdialog.h index 506081a..b362ea3 100644 --- a/src/settingsdialog.h +++ b/src/settingsdialog.h @@ -19,6 +19,8 @@ #include #include +#include + class QCheckBox; class QSpinBox; class QComboBox; @@ -29,7 +31,7 @@ class SettingsTabMedialib : public QWidget { public: SettingsTabMedialib (QWidget *parent); ~SettingsTabMedialib () {} - void saveSettings (void); + bool saveSettings (void); private: QComboBox *m_selected; @@ -43,7 +45,7 @@ class SettingsTabPlaylist : public QWidget { public: SettingsTabPlaylist (QWidget *parent); ~SettingsTabPlaylist () {} - void saveSettings (void); + bool saveSettings (void); private: QSpinBox *m_fontsize; @@ -56,7 +58,7 @@ class SettingsTabMain : public QWidget { public: SettingsTabMain (QWidget *parent); ~SettingsTabMain () {} - void saveSettings (void); + bool saveSettings (void); private: @@ -72,6 +74,10 @@ class SettingsTabMain : public QWidget { class SettingsDialog : public QDialog { Q_OBJECT + + signals: + void settingsChanged (void); + public: SettingsDialog (QWidget *parent); ~SettingsDialog () {}