The beginning of a settings window. Only application settings for now
This commit is contained in:
parent
002867c17b
commit
2ae3f3bf7e
8 changed files with 265 additions and 22 deletions
142
SettingsWindow.cpp
Normal file
142
SettingsWindow.cpp
Normal file
|
@ -0,0 +1,142 @@
|
|||
#include "MainWindow.h"
|
||||
#include "SettingsWindow.h"
|
||||
|
||||
#include <QCheckBox>
|
||||
#include <QSettings>
|
||||
|
||||
SettingsWindow::SettingsWindow (QWidget *parent) : QMainWindow (parent)
|
||||
{
|
||||
#ifndef _WIN32
|
||||
setWindowIcon (QIcon (":icon.png"));
|
||||
#endif
|
||||
|
||||
resize (400, 300);
|
||||
|
||||
QWidget *dummy = new QWidget (this);
|
||||
setCentralWidget (dummy);
|
||||
|
||||
QVBoxLayout *vbox = new QVBoxLayout (dummy);
|
||||
|
||||
QTabWidget *tab = new QTabWidget (dummy);
|
||||
vbox->addWidget (tab);
|
||||
|
||||
QWidget *dummy2 = new QWidget (dummy);
|
||||
QHBoxLayout *hbox = new QHBoxLayout (dummy2);
|
||||
vbox->addWidget (dummy2);
|
||||
|
||||
QPushButton *cancel = new QPushButton (tr ("Cancel"));
|
||||
cancel->setSizePolicy (QSizePolicy (QSizePolicy::Fixed, QSizePolicy::Fixed));
|
||||
QPushButton *ok = new QPushButton (tr ("OK"));
|
||||
ok->setSizePolicy (QSizePolicy (QSizePolicy::Fixed, QSizePolicy::Fixed));
|
||||
connect (ok, SIGNAL (clicked ()), this, SLOT (okButton ()));
|
||||
|
||||
hbox->addWidget (new QWidget (dummy2), 1);
|
||||
hbox->addWidget (cancel);
|
||||
hbox->addWidget (ok);
|
||||
|
||||
m_mainwindow = new SettingsTabMain (tab);
|
||||
m_playlistwin = new QWidget (tab);
|
||||
m_medialib = new QWidget (tab);
|
||||
|
||||
tab->addTab (m_mainwindow, tr ("Main Window"));
|
||||
tab->addTab (m_playlistwin, tr ("Playlist Window"));
|
||||
tab->addTab (m_medialib, tr ("Medialib"));
|
||||
}
|
||||
|
||||
void
|
||||
SettingsWindow::okButton (void)
|
||||
{
|
||||
XMMSHandler *xmmsh = XMMSHandler::getInstance ();
|
||||
m_mainwindow->saveSettings ();
|
||||
|
||||
close ();
|
||||
xmmsh->updateSettings ();
|
||||
}
|
||||
|
||||
SettingsTabMain::SettingsTabMain (QWidget *parent) : QWidget (parent)
|
||||
{
|
||||
QSettings s;
|
||||
|
||||
QVBoxLayout *vbox = new QVBoxLayout (this);
|
||||
QWidget *c = new QWidget (this);
|
||||
QHBoxLayout *h = new QHBoxLayout (c);
|
||||
|
||||
vbox->addWidget (c);
|
||||
|
||||
s.beginGroup ("maindisplay");
|
||||
m_scrolltbar = new QCheckBox (tr ("Scroll titlebar"), this);
|
||||
|
||||
if (s.value("scrollbar").toBool ())
|
||||
m_scrolltbar->setCheckState (Qt::Checked);
|
||||
else
|
||||
m_scrolltbar->setCheckState (Qt::Unchecked);
|
||||
|
||||
h->addWidget (m_scrolltbar);
|
||||
|
||||
m_fontsize = new QSpinBox (this);
|
||||
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 ("Titlebar fontsize"), this);
|
||||
l->setSizePolicy (QSizePolicy (QSizePolicy::Fixed, QSizePolicy::Fixed));
|
||||
h->addWidget (l);
|
||||
|
||||
QFrame *f = new QFrame (this);
|
||||
f->setFrameStyle (QFrame::HLine | QFrame::Raised);
|
||||
vbox->addWidget (f, 1);
|
||||
|
||||
c = new QWidget (this);
|
||||
h = new QHBoxLayout (c);
|
||||
|
||||
vbox->addWidget (c);
|
||||
|
||||
m_mainttf = new QCheckBox (tr ("Draw main title with TrueType fonts"), this);
|
||||
m_mainttf->setCheckState (s.value ("mainttf").toBool () ? Qt::Checked : Qt::Unchecked);
|
||||
h->addWidget (m_mainttf);
|
||||
|
||||
/*
|
||||
c = new QWidget (this);
|
||||
h = new QHBoxLayout (c);
|
||||
|
||||
vbox->addWidget (c);
|
||||
|
||||
m_shadettf = new QCheckBox (tr ("Draw shaded title with TrueType fonts"), this);
|
||||
m_shadettf->setCheckState (s.value ("shadettf").toBool () ? Qt::Checked : Qt::Unchecked);
|
||||
h->addWidget (m_shadettf);
|
||||
*/
|
||||
|
||||
f = new QFrame (this);
|
||||
f->setFrameStyle (QFrame::HLine | QFrame::Raised);
|
||||
vbox->addWidget (f, 1);
|
||||
|
||||
c = new QWidget (this);
|
||||
h = new QHBoxLayout (c);
|
||||
|
||||
vbox->addWidget (c);
|
||||
|
||||
m_quitonclose = new QCheckBox (tr ("Quit XMMS2D when closing Promoe"));
|
||||
if (s.contains ("quitonclose"))
|
||||
s.setValue ("quitonclose", false);
|
||||
m_quitonclose->setCheckState (s.value ("quitonclose").toBool () ? Qt::Checked : Qt::Unchecked);
|
||||
h->addWidget (m_quitonclose);
|
||||
|
||||
|
||||
s.endGroup ();
|
||||
|
||||
}
|
||||
|
||||
void
|
||||
SettingsTabMain::saveSettings (void)
|
||||
{
|
||||
QSettings s;
|
||||
|
||||
s.beginGroup ("maindisplay");
|
||||
s.setValue ("scrollbar", m_scrolltbar->checkState () == Qt::Checked);
|
||||
s.setValue ("fontsize", m_fontsize->value ());
|
||||
s.setValue ("quitonclose", m_quitonclose->checkState () == Qt::Checked);
|
||||
s.setValue ("mainttf", m_mainttf->checkState () == Qt::Checked);
|
||||
s.endGroup ();
|
||||
}
|
46
SettingsWindow.h
Normal file
46
SettingsWindow.h
Normal file
|
@ -0,0 +1,46 @@
|
|||
#ifndef __SETTINGSWINDOW_H__
|
||||
#define __SETTINGSWINDOW_H__
|
||||
|
||||
#include <QMainWindow>
|
||||
#include <QTabWidget>
|
||||
#include <QPushButton>
|
||||
#include <QVBoxLayout>
|
||||
#include <QCheckBox>
|
||||
#include <QHBoxLayout>
|
||||
#include <QSpinBox>
|
||||
#include <QLabel>
|
||||
|
||||
class SettingsTabMain : public QWidget {
|
||||
Q_OBJECT
|
||||
public:
|
||||
SettingsTabMain (QWidget *parent);
|
||||
~SettingsTabMain () {}
|
||||
void saveSettings (void);
|
||||
|
||||
|
||||
private:
|
||||
QCheckBox *m_scrolltbar;
|
||||
QSpinBox *m_fontsize;
|
||||
QCheckBox *m_quitonclose;
|
||||
QCheckBox *m_mainttf;
|
||||
QCheckBox *m_shadettf;
|
||||
};
|
||||
|
||||
class SettingsWindow : public QMainWindow {
|
||||
Q_OBJECT
|
||||
public:
|
||||
SettingsWindow (QWidget *parent);
|
||||
~SettingsWindow () {}
|
||||
|
||||
public slots:
|
||||
void okButton (void);
|
||||
|
||||
private:
|
||||
SettingsTabMain *m_mainwindow;
|
||||
QWidget *m_playlistwin;
|
||||
QWidget *m_medialib;
|
||||
|
||||
};
|
||||
|
||||
|
||||
#endif
|
70
TextBar.cpp
70
TextBar.cpp
|
@ -4,21 +4,37 @@
|
|||
|
||||
TextScroller::TextScroller (QWidget *parent, uint w, uint h) : QWidget (parent)
|
||||
{
|
||||
XMMSHandler *xmmsh = XMMSHandler::getInstance ();
|
||||
Skin *skin = Skin::getInstance ();
|
||||
|
||||
connect (skin, SIGNAL (skinChanged (Skin *)),
|
||||
this, SLOT (setPixmaps(Skin *)));
|
||||
|
||||
QSettings s;
|
||||
|
||||
s.beginGroup ("maindisplay");
|
||||
|
||||
if (!s.contains("scrollbar"))
|
||||
s.setValue("scrollbar", true);
|
||||
|
||||
if (!s.contains("fontsize"))
|
||||
s.setValue("fontsize", 8);
|
||||
|
||||
if (!s.contains("mainttf"))
|
||||
s.setValue("mainttf", true);
|
||||
|
||||
if (!s.contains("shadettf"))
|
||||
s.setValue("shadettf", true);
|
||||
|
||||
m_h = h;
|
||||
m_w = w;
|
||||
m_x_off = 0;
|
||||
m_x2_off = 0;
|
||||
#ifdef Q_OS_MACX
|
||||
m_fontsize = 9;
|
||||
#else
|
||||
m_fontsize = 8; /* default */
|
||||
#endif
|
||||
m_ttf = true;
|
||||
m_fontsize = s.value ("fontsize").toInt ();
|
||||
m_ttf = s.value ("mainttf").toBool ();
|
||||
m_text = "Promoe 0.1";
|
||||
|
||||
s.endGroup ();
|
||||
|
||||
setMinimumSize(m_w + 2, m_h);
|
||||
setMaximumSize(m_w + 2, m_h);
|
||||
|
@ -31,7 +47,20 @@ TextScroller::TextScroller (QWidget *parent, uint w, uint h) : QWidget (parent)
|
|||
|
||||
m_timer = new QTimer (this);
|
||||
connect (m_timer, SIGNAL (timeout()), this, SLOT (addOffset ()));
|
||||
connect (xmmsh, SIGNAL (settingsSaved ()), this, SLOT (settingsSaved ()));
|
||||
}
|
||||
|
||||
void
|
||||
TextScroller::settingsSaved (void)
|
||||
{
|
||||
QSettings s;
|
||||
s.beginGroup ("maindisplay");
|
||||
m_fontsize = s.value ("fontsize").toInt ();
|
||||
m_ttf = s.value ("mainttf").toBool ();
|
||||
s.endGroup ();
|
||||
|
||||
setText (m_text);
|
||||
update ();
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -43,7 +72,7 @@ TextScroller::setPixmaps (Skin *skin)
|
|||
pal.setBrush (QPalette::Window, b);
|
||||
setPalette (pal);
|
||||
|
||||
setText (QString::fromUtf8 ("Promoe 0.1"));
|
||||
setText (m_text);
|
||||
update();
|
||||
}
|
||||
void
|
||||
|
@ -63,8 +92,10 @@ TextScroller::addOffset ()
|
|||
}
|
||||
|
||||
void
|
||||
TextScroller::setText (const QString &text)
|
||||
TextScroller::setText (QString text)
|
||||
{
|
||||
m_text = text;
|
||||
|
||||
if (m_ttf) {
|
||||
drawQtFont (text);
|
||||
} else {
|
||||
|
@ -76,12 +107,12 @@ TextScroller::setText (const QString &text)
|
|||
}
|
||||
|
||||
void
|
||||
TextScroller::drawBitmapFont (const QString &text)
|
||||
TextScroller::drawBitmapFont (QString text)
|
||||
{
|
||||
Skin *skin = Skin::getInstance ();
|
||||
|
||||
int width = text.length() * 6;
|
||||
QString (temp) = text.toLower ();
|
||||
QString temp = text.toLower ();
|
||||
|
||||
if (width > m_w) {
|
||||
temp += QString::fromAscii (" -- ");
|
||||
|
@ -91,29 +122,36 @@ TextScroller::drawBitmapFont (const QString &text)
|
|||
} else {
|
||||
m_pixmap = QPixmap (m_w, m_h);
|
||||
}
|
||||
const char *t = temp.toLatin1();
|
||||
QByteArray temp2 = temp.toLatin1();
|
||||
const char *t = temp2.data();
|
||||
|
||||
QPainter (paint);
|
||||
|
||||
paint.begin (&m_pixmap);
|
||||
paint.fillRect (m_pixmap.rect(), Qt::white);
|
||||
|
||||
paint.drawPixmap (m_pixmap.rect (),
|
||||
skin->getItem (Skin::TEXTBG),
|
||||
skin->getItem (Skin::TEXTBG).rect ());
|
||||
|
||||
for (uint i = 0; i < strlen (t); i++) {
|
||||
QPixmap p = skin->getLetter (t[i]);
|
||||
if (!p) {
|
||||
if (p.isNull ()) {
|
||||
p = skin->getLetter(' ');
|
||||
if (p.isNull ()) {
|
||||
qDebug ("abort ffs!");
|
||||
}
|
||||
}
|
||||
|
||||
paint.drawPixmap (QRect (i * 6, m_y, 4, 6),
|
||||
paint.drawPixmap (QRect ((i * 6), m_y, 4, 6),
|
||||
p, p.rect());
|
||||
}
|
||||
|
||||
paint.end();
|
||||
m_pixmap.setMask (m_pixmap.createHeuristicMask ());
|
||||
|
||||
}
|
||||
|
||||
void
|
||||
TextScroller::drawQtFont (const QString &text)
|
||||
TextScroller::drawQtFont (QString text)
|
||||
{
|
||||
Skin *skin = Skin::getInstance ();
|
||||
|
||||
|
|
|
@ -22,13 +22,14 @@ class TextScroller : public QWidget
|
|||
TextScroller (QWidget *parent, uint, uint);
|
||||
~TextScroller ();
|
||||
|
||||
void setText(const QString &text);
|
||||
void setText(QString text);
|
||||
void setFontSize (int i) { m_fontsize = i; }
|
||||
void setTTF (bool b) { m_ttf = b; }
|
||||
|
||||
public slots:
|
||||
void addOffset ();
|
||||
void setPixmaps(Skin *skin);
|
||||
void settingsSaved (void);
|
||||
|
||||
protected:
|
||||
QPixmap m_pixmap;
|
||||
|
@ -44,9 +45,10 @@ class TextScroller : public QWidget
|
|||
bool m_ttf;
|
||||
|
||||
QTimer *m_timer;
|
||||
QString m_text;
|
||||
|
||||
void drawBitmapFont (const QString &text);
|
||||
void drawQtFont (const QString &text);
|
||||
void drawBitmapFont (QString text);
|
||||
void drawQtFont (QString text);
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
#include "Display.h"
|
||||
#include "SkinChooser.h"
|
||||
#include "Medialib.h"
|
||||
#include "SettingsWindow.h"
|
||||
|
||||
#include <QMenu>
|
||||
|
||||
|
@ -50,6 +51,7 @@ TitleBar::showMenu (void)
|
|||
qm.addAction (a);
|
||||
a = new QAction (tr ("Application settings"), this);
|
||||
a->setShortcut (tr ("Alt+A"));
|
||||
connect (a, SIGNAL (triggered ()), this, SLOT (showSettings ()));
|
||||
qm.addAction (a);
|
||||
a = new QAction (tr ("Server settings"), this);
|
||||
a->setShortcut (tr ("Alt+S"));
|
||||
|
@ -71,6 +73,13 @@ TitleBar::showMlib ()
|
|||
mw->show ();
|
||||
}
|
||||
|
||||
void
|
||||
TitleBar::showSettings ()
|
||||
{
|
||||
SettingsWindow *sw = new SettingsWindow (window ());
|
||||
sw->show ();
|
||||
}
|
||||
|
||||
void
|
||||
TitleBar::showTheme ()
|
||||
{
|
||||
|
|
|
@ -21,6 +21,7 @@ class TitleBar : public PixWidget
|
|||
void showMenu (void);
|
||||
void showTheme (void);
|
||||
void showMlib (void);
|
||||
void showSettings (void);
|
||||
|
||||
protected:
|
||||
void mouseDoubleClickEvent (QMouseEvent *event);
|
||||
|
|
|
@ -36,6 +36,8 @@ class XMMSHandler : public QObject, public sigc::trackable {
|
|||
|
||||
const XMMSClient *getXMMS () { return m_xmmsc; }
|
||||
|
||||
void updateSettings (void) { emit settingsSaved (); }
|
||||
|
||||
public slots:
|
||||
void setPlaytime ();
|
||||
void fileOpen (void);
|
||||
|
@ -53,6 +55,7 @@ class XMMSHandler : public QObject, public sigc::trackable {
|
|||
}
|
||||
|
||||
signals:
|
||||
void settingsSaved (void);
|
||||
void playbackStatusChanged (uint status);
|
||||
void playtimeChanged (uint time);
|
||||
void mediainfoChanged (uint, QHash<QString, QString>);
|
||||
|
|
|
@ -19,7 +19,8 @@ SOURCES += XmmsQT4.cpp \
|
|||
SkinChooser.cpp \
|
||||
PlaylistShade.cpp \
|
||||
Medialib.cpp \
|
||||
qtmd5.cpp
|
||||
qtmd5.cpp \
|
||||
SettingsWindow.cpp
|
||||
|
||||
HEADERS += XmmsQT4.h \
|
||||
PixWidget.h \
|
||||
|
@ -42,7 +43,8 @@ HEADERS += XmmsQT4.h \
|
|||
SkinChooser.h \
|
||||
PlaylistShade.h \
|
||||
Medialib.h \
|
||||
qtmd5.h
|
||||
qtmd5.h \
|
||||
SettingsWindow.h
|
||||
|
||||
|
||||
RESOURCES = promoe.qrc
|
||||
|
@ -53,7 +55,7 @@ macx:QTPLUGIN += qjpeg
|
|||
QMAKE_LFLAGS += -L$$[QT_INSTALL_PLUGINS]/imageformats
|
||||
|
||||
CONFIG += link_pkgconfig
|
||||
CXXFLAGS += -g
|
||||
QMAKE_CXXFLAGS += -g
|
||||
;CONFIG += debug warn_on
|
||||
QMAKE_CXXFLAGS_WARN_ON += -Wno-unused-parameter
|
||||
PKGCONFIG += xmms2-client xmms2-client-cpp sigc++-2.0
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue