OTHER: Make the settingsdialog emit a settingsChanged Signal
It's now no longer necessary to restart promoe for new settings to take effect. The Signal is piped through Application. Updated the classes that are affected by settings changes Removed some now unused code from XMMSHandler
This commit is contained in:
parent
97707922c9
commit
d0d07f7553
11 changed files with 47 additions and 95 deletions
|
@ -40,21 +40,6 @@ XMMSHandler::XMMSHandler (QObject *parent, const std::string &name) : XClient (p
|
||||||
bool
|
bool
|
||||||
XMMSHandler::connect_handler (const char *ipcpath, const bool &sync, QWidget *parent)
|
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
|
//TODO must be moved elsewere later
|
||||||
m_playlist_model = new PlaylistModel(NULL, this, "_active");
|
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<QString, QString> &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<QHash<QString, QString> > l;
|
|
||||||
|
|
||||||
for (;res->listValid (); res->listNext()) {
|
|
||||||
QHash<QString, QString> h(DictToQHash (static_cast<XMMSResultDict *>(res)));
|
|
||||||
l.append (h);
|
|
||||||
}
|
|
||||||
|
|
||||||
emit medialibResponse (res->getCID (), l);
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
|
@ -46,30 +46,14 @@ class XMMSHandler : public XClient {
|
||||||
void medialibQueryAdd (QString q) { delete m_xmmsc->medialib_add_to_playlist (q.toUtf8 ()); }
|
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; }
|
Xmms::Client *getClient () { return m_client; }
|
||||||
|
|
||||||
PlaylistModel *getPlaylistModel () {return m_playlist_model; }
|
PlaylistModel *getPlaylistModel () {return m_playlist_model; }
|
||||||
|
|
||||||
signals:
|
|
||||||
void settingsSaved ();
|
|
||||||
/*
|
|
||||||
void medialibResponse (uint, const QList<QHash<QString, QString> > &);
|
|
||||||
*/
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void DictToQHash (const std::string &key,
|
void DictToQHash (const std::string &key,
|
||||||
const Xmms::Dict::Variant &value,
|
const Xmms::Dict::Variant &value,
|
||||||
QHash<QString, QString> &hash);
|
QHash<QString, QString> &hash);
|
||||||
// void PropDictToQHash (const std::string &key,
|
|
||||||
// const Xmms::Dict::Variant &value,
|
|
||||||
// const std::string &source,
|
|
||||||
// QHash<QString, QString> &hash);
|
|
||||||
|
|
||||||
XmmsQT4 *m_qt4;
|
|
||||||
PlaylistModel *m_playlist_model;
|
PlaylistModel *m_playlist_model;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -25,6 +25,9 @@ class Application : public QApplication
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
|
signals:
|
||||||
|
void settingsChanged (void);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
Application (int &argc, char **argv);
|
Application (int &argc, char **argv);
|
||||||
|
|
||||||
|
|
|
@ -26,7 +26,7 @@
|
||||||
#include <QSettings>
|
#include <QSettings>
|
||||||
#include <QTimer>
|
#include <QTimer>
|
||||||
|
|
||||||
#include <QtDebug>
|
#include <application.h>
|
||||||
|
|
||||||
TextScroller::TextScroller (QWidget *parent, uint w,
|
TextScroller::TextScroller (QWidget *parent, uint w,
|
||||||
uint h, const QString &name) : QWidget (parent)
|
uint h, const QString &name) : QWidget (parent)
|
||||||
|
@ -65,11 +65,12 @@ TextScroller::TextScroller (QWidget *parent, uint w,
|
||||||
m_timer = new QTimer (this);
|
m_timer = new QTimer (this);
|
||||||
m_timer->setInterval (40);
|
m_timer->setInterval (40);
|
||||||
connect (m_timer, SIGNAL (timeout()), this, SLOT (addOffset ()));
|
connect (m_timer, SIGNAL (timeout()), this, SLOT (addOffset ()));
|
||||||
//connect (xmmsh, SIGNAL (settingsSaved ()), this, SLOT (settingsSaved ()));
|
connect (qApp, SIGNAL (settingsChanged ()),
|
||||||
|
this, SLOT (settingsChanged ()));
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
TextScroller::settingsSaved (void)
|
TextScroller::settingsChanged (void)
|
||||||
{
|
{
|
||||||
QSettings s;
|
QSettings s;
|
||||||
s.beginGroup ("display_" + m_name);
|
s.beginGroup ("display_" + m_name);
|
||||||
|
|
|
@ -38,7 +38,7 @@ class TextScroller : public QWidget
|
||||||
public slots:
|
public slots:
|
||||||
void addOffset ();
|
void addOffset ();
|
||||||
void setPixmaps(Skin *skin);
|
void setPixmaps(Skin *skin);
|
||||||
void settingsSaved (void);
|
void settingsChanged (void);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void paintEvent (QPaintEvent *event);
|
void paintEvent (QPaintEvent *event);
|
||||||
|
|
|
@ -17,6 +17,7 @@
|
||||||
#include <xmmsclient/xmmsclient++.h>
|
#include <xmmsclient/xmmsclient++.h>
|
||||||
#include "xclientcache.h"
|
#include "xclientcache.h"
|
||||||
|
|
||||||
|
#include "application.h"
|
||||||
#include "playlistshade.h"
|
#include "playlistshade.h"
|
||||||
#include "playlistwindow.h"
|
#include "playlistwindow.h"
|
||||||
#include "pixmapbutton.h"
|
#include "pixmapbutton.h"
|
||||||
|
@ -49,15 +50,15 @@ PlaylistShade::PlaylistShade (PlaylistWindow *parent) : QWidget (parent)
|
||||||
connect (xmmsh.cache (), SIGNAL (activeEntryChanged (QVariantHash)),
|
connect (xmmsh.cache (), SIGNAL (activeEntryChanged (QVariantHash)),
|
||||||
this, SLOT (setMediainfo (QVariantHash)));
|
this, SLOT (setMediainfo (QVariantHash)));
|
||||||
|
|
||||||
connect (&xmmsh, SIGNAL(settingsSaved ()),
|
connect (qApp, SIGNAL(settingsChanged ()),
|
||||||
this, SLOT(settingsSaved ()));
|
this, SLOT(settingsChanged ()));
|
||||||
|
|
||||||
m_text = "Promoe " PROMOE_VERSION " - A very neat XMMS2 client";
|
m_text = "Promoe " PROMOE_VERSION " - A very neat XMMS2 client";
|
||||||
setMinimumSize (275, 14);
|
setMinimumSize (275, 14);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
PlaylistShade::settingsSaved ()
|
PlaylistShade::settingsChanged ()
|
||||||
{
|
{
|
||||||
QSettings s;
|
QSettings s;
|
||||||
|
|
||||||
|
|
|
@ -43,7 +43,7 @@ class PlaylistShade : public QWidget {
|
||||||
public slots:
|
public slots:
|
||||||
void setPixmaps (Skin *skin);
|
void setPixmaps (Skin *skin);
|
||||||
void setMediainfo (QVariantHash);
|
void setMediainfo (QVariantHash);
|
||||||
void settingsSaved ();
|
void settingsChanged ();
|
||||||
void resizeEvent (QResizeEvent *);
|
void resizeEvent (QResizeEvent *);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
|
@ -18,6 +18,7 @@
|
||||||
#include "XMMSHandler.h"
|
#include "XMMSHandler.h"
|
||||||
#include "xplayback.h"
|
#include "xplayback.h"
|
||||||
|
|
||||||
|
#include "application.h"
|
||||||
#include "playlistview.h"
|
#include "playlistview.h"
|
||||||
#include "playlistmodel.h"
|
#include "playlistmodel.h"
|
||||||
#include "playlistwidget.h"
|
#include "playlistwidget.h"
|
||||||
|
@ -137,8 +138,8 @@ PlaylistView::PlaylistView (QWidget *parent) : QListView (parent)
|
||||||
|
|
||||||
XMMSHandler &xmmsh = XMMSHandler::getInstance ();
|
XMMSHandler &xmmsh = XMMSHandler::getInstance ();
|
||||||
|
|
||||||
connect (&xmmsh, SIGNAL(settingsSaved()),
|
connect (qApp, SIGNAL (settingsChanged ()),
|
||||||
this, SLOT(settingsSaved()));
|
this, SLOT (settingsChanged ()));
|
||||||
|
|
||||||
connect (xmmsh.xplayback (), SIGNAL(playbackStatusChanged(Xmms::Playback::Status)),
|
connect (xmmsh.xplayback (), SIGNAL(playbackStatusChanged(Xmms::Playback::Status)),
|
||||||
this, SLOT(handleStatus(Xmms::Playback::Status)));
|
this, SLOT(handleStatus(Xmms::Playback::Status)));
|
||||||
|
@ -219,7 +220,7 @@ PlaylistView::handleStatus (const Xmms::Playback::Status st)
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
PlaylistView::settingsSaved ()
|
PlaylistView::settingsChanged ()
|
||||||
{
|
{
|
||||||
QSettings s;
|
QSettings s;
|
||||||
m_font->setPixelSize (s.value ("playlist/fontsize").toInt ());
|
m_font->setPixelSize (s.value ("playlist/fontsize").toInt ());
|
||||||
|
|
|
@ -60,7 +60,7 @@ class PlaylistView : public QListView {
|
||||||
void cropSelected (void);
|
void cropSelected (void);
|
||||||
void removeSelected (void);
|
void removeSelected (void);
|
||||||
void showEntryInfo (void);
|
void showEntryInfo (void);
|
||||||
void settingsSaved (void);
|
void settingsChanged (void);
|
||||||
void setPixmaps (Skin *skin);
|
void setPixmaps (Skin *skin);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
|
@ -38,6 +38,9 @@ SettingsDialog::SettingsDialog (QWidget *parent) : QDialog (parent)
|
||||||
|
|
||||||
resize (400, 500);
|
resize (400, 500);
|
||||||
|
|
||||||
|
connect (this, SIGNAL (settingsChanged (void)),
|
||||||
|
qApp, SIGNAL (settingsChanged (void)));
|
||||||
|
|
||||||
QVBoxLayout *vbox = new QVBoxLayout (this);
|
QVBoxLayout *vbox = new QVBoxLayout (this);
|
||||||
setLayout(vbox);
|
setLayout(vbox);
|
||||||
|
|
||||||
|
@ -66,8 +69,13 @@ SettingsDialog::SettingsDialog (QWidget *parent) : QDialog (parent)
|
||||||
void
|
void
|
||||||
SettingsDialog::okButton (void)
|
SettingsDialog::okButton (void)
|
||||||
{
|
{
|
||||||
m_mainwindow->saveSettings ();
|
bool changed = false;
|
||||||
m_playlistwin->saveSettings ();
|
|
||||||
|
changed |= m_mainwindow->saveSettings ();
|
||||||
|
changed |= m_playlistwin->saveSettings ();
|
||||||
|
|
||||||
|
if (changed)
|
||||||
|
emit settingsChanged ();
|
||||||
|
|
||||||
close ();
|
close ();
|
||||||
}
|
}
|
||||||
|
@ -306,13 +314,15 @@ SettingsTabPlaylist::SettingsTabPlaylist (QWidget *parent) : QWidget (parent)
|
||||||
s.endGroup ();
|
s.endGroup ();
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
bool
|
||||||
SettingsTabPlaylist::saveSettings (void)
|
SettingsTabPlaylist::saveSettings (void)
|
||||||
{
|
{
|
||||||
QSettings s;
|
QSettings s;
|
||||||
s.setValue ("playlist/fontsize", m_fontsize->value ());
|
s.setValue ("playlist/fontsize", m_fontsize->value ());
|
||||||
s.setValue ("playlist/shadedsize", m_shadesize->value ());
|
s.setValue ("playlist/shadedsize", m_shadesize->value ());
|
||||||
s.setValue ("playlist/useremote", m_remote_fs->checkState () == Qt::Checked);
|
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)
|
SettingsTabMain::SettingsTabMain (QWidget *parent) : QWidget (parent)
|
||||||
|
@ -472,7 +482,7 @@ SettingsTabMain::SettingsTabMain (QWidget *parent) : QWidget (parent)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
bool
|
||||||
SettingsTabMain::saveSettings (void)
|
SettingsTabMain::saveSettings (void)
|
||||||
{
|
{
|
||||||
QSettings s;
|
QSettings s;
|
||||||
|
@ -490,4 +500,7 @@ SettingsTabMain::saveSettings (void)
|
||||||
s.setValue ("fontsize", m_shadesize->value ());
|
s.setValue ("fontsize", m_shadesize->value ());
|
||||||
s.setValue ("ttf", m_shadettf->checkState () == Qt::Checked);
|
s.setValue ("ttf", m_shadettf->checkState () == Qt::Checked);
|
||||||
s.endGroup ();
|
s.endGroup ();
|
||||||
|
|
||||||
|
//TODO: Check if we really changed something
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,6 +19,8 @@
|
||||||
#include <QWidget>
|
#include <QWidget>
|
||||||
#include <QDialog>
|
#include <QDialog>
|
||||||
|
|
||||||
|
#include <application.h>
|
||||||
|
|
||||||
class QCheckBox;
|
class QCheckBox;
|
||||||
class QSpinBox;
|
class QSpinBox;
|
||||||
class QComboBox;
|
class QComboBox;
|
||||||
|
@ -29,7 +31,7 @@ class SettingsTabMedialib : public QWidget {
|
||||||
public:
|
public:
|
||||||
SettingsTabMedialib (QWidget *parent);
|
SettingsTabMedialib (QWidget *parent);
|
||||||
~SettingsTabMedialib () {}
|
~SettingsTabMedialib () {}
|
||||||
void saveSettings (void);
|
bool saveSettings (void);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QComboBox *m_selected;
|
QComboBox *m_selected;
|
||||||
|
@ -43,7 +45,7 @@ class SettingsTabPlaylist : public QWidget {
|
||||||
public:
|
public:
|
||||||
SettingsTabPlaylist (QWidget *parent);
|
SettingsTabPlaylist (QWidget *parent);
|
||||||
~SettingsTabPlaylist () {}
|
~SettingsTabPlaylist () {}
|
||||||
void saveSettings (void);
|
bool saveSettings (void);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QSpinBox *m_fontsize;
|
QSpinBox *m_fontsize;
|
||||||
|
@ -56,7 +58,7 @@ class SettingsTabMain : public QWidget {
|
||||||
public:
|
public:
|
||||||
SettingsTabMain (QWidget *parent);
|
SettingsTabMain (QWidget *parent);
|
||||||
~SettingsTabMain () {}
|
~SettingsTabMain () {}
|
||||||
void saveSettings (void);
|
bool saveSettings (void);
|
||||||
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
@ -72,6 +74,10 @@ class SettingsTabMain : public QWidget {
|
||||||
|
|
||||||
class SettingsDialog : public QDialog {
|
class SettingsDialog : public QDialog {
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
|
signals:
|
||||||
|
void settingsChanged (void);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
SettingsDialog (QWidget *parent);
|
SettingsDialog (QWidget *parent);
|
||||||
~SettingsDialog () {}
|
~SettingsDialog () {}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue