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
|
||||
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<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 ()); }
|
||||
*/
|
||||
|
||||
//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<QHash<QString, QString> > &);
|
||||
*/
|
||||
|
||||
private:
|
||||
void DictToQHash (const std::string &key,
|
||||
const Xmms::Dict::Variant &value,
|
||||
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;
|
||||
};
|
||||
|
||||
|
|
|
@ -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 ();
|
||||
};
|
||||
|
|
|
@ -26,7 +26,7 @@
|
|||
#include <QSettings>
|
||||
#include <QTimer>
|
||||
|
||||
#include <QtDebug>
|
||||
#include <application.h>
|
||||
|
||||
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);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -17,6 +17,7 @@
|
|||
#include <xmmsclient/xmmsclient++.h>
|
||||
#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;
|
||||
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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 ());
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -19,6 +19,8 @@
|
|||
#include <QWidget>
|
||||
#include <QDialog>
|
||||
|
||||
#include <application.h>
|
||||
|
||||
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 () {}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue