Starting to add Equalizer window
This commit is contained in:
parent
da993036aa
commit
0fe79ab827
10 changed files with 243 additions and 2 deletions
95
Equalizer.cpp
Normal file
95
Equalizer.cpp
Normal file
|
@ -0,0 +1,95 @@
|
|||
#include "MainWindow.h"
|
||||
#include "TitleBar.h"
|
||||
#include "Equalizer.h"
|
||||
#include "Button.h"
|
||||
|
||||
EqualizerWindow::EqualizerWindow (QWidget *parent) : QMainWindow (parent)
|
||||
{
|
||||
m_mw = dynamic_cast<MainWindow *>(parent);
|
||||
|
||||
setWindowFlags (Qt::Dialog | Qt::FramelessWindowHint);
|
||||
setAttribute (Qt::WA_DeleteOnClose);
|
||||
|
||||
m_equalizer = new EqualizerWidget (this);
|
||||
m_equalizer->show();
|
||||
|
||||
setCentralWidget (m_equalizer);
|
||||
|
||||
setMinimumSize (275, 116);
|
||||
setMaximumSize (275, 116);
|
||||
}
|
||||
|
||||
EqualizerWindow::~EqualizerWindow (void)
|
||||
{
|
||||
}
|
||||
|
||||
void
|
||||
EqualizerWindow::setEnabled (void)
|
||||
{
|
||||
qDebug ("test");
|
||||
}
|
||||
|
||||
|
||||
EqualizerWidget::EqualizerWidget (QWidget *parent) : QWidget (parent)
|
||||
{
|
||||
Skin *skin = Skin::getInstance ();
|
||||
|
||||
connect (skin, SIGNAL(skinChanged(Skin *)),
|
||||
this, SLOT(setPixmaps(Skin *)));
|
||||
|
||||
m_enable = new ToggleButton(this, Skin::EQ_WIN_ON_0, Skin::EQ_WIN_ON_1,
|
||||
Skin::EQ_WIN_OFF_0, Skin::EQ_WIN_OFF_1);
|
||||
m_enable->move(14, 18);
|
||||
|
||||
connect(m_enable, SIGNAL(clicked()), parent, SLOT(setEnabled()));
|
||||
|
||||
m_auto = new ToggleButton(this, Skin::EQ_WIN_AUTO_ON_0, Skin::EQ_WIN_AUTO_ON_1,
|
||||
Skin::EQ_WIN_AUTO_OFF_0, Skin::EQ_WIN_AUTO_OFF_1);
|
||||
m_auto->move(39, 18);
|
||||
|
||||
connect(m_auto, SIGNAL(clicked()), parent, SLOT(setEnabled()));
|
||||
|
||||
m_preset = new Button(this, Skin::EQ_WIN_PRESET_0, Skin::EQ_WIN_PRESET_1);
|
||||
m_preset->move(217, 18);
|
||||
|
||||
connect(m_preset, SIGNAL(clicked()), parent, SLOT(setEnabled()));
|
||||
}
|
||||
|
||||
EqualizerWidget::~EqualizerWidget (void)
|
||||
{
|
||||
}
|
||||
|
||||
void
|
||||
EqualizerWidget::mouseMoveEvent (QMouseEvent *event)
|
||||
{
|
||||
}
|
||||
|
||||
void
|
||||
EqualizerWidget::setPixmaps (Skin *skin)
|
||||
{
|
||||
m_pixmap = skin->getItem(Skin::EQ_WIN_BG);
|
||||
m_graph = skin->getItem(Skin::EQ_WIN_GRAPH_BG);
|
||||
|
||||
setMinimumSize (m_pixmap.size ());
|
||||
setMaximumSize (m_pixmap.size ());
|
||||
|
||||
update();
|
||||
}
|
||||
|
||||
void
|
||||
EqualizerWidget::paintEvent (QPaintEvent *event)
|
||||
{
|
||||
if (m_pixmap.isNull ()) {
|
||||
return;
|
||||
}
|
||||
QPainter(paint);
|
||||
QRect r;
|
||||
|
||||
paint.begin(this);
|
||||
|
||||
paint.drawPixmap(rect(), m_pixmap, m_pixmap.rect());
|
||||
r.setRect(86, 17, 113, 19);
|
||||
paint.drawPixmap(r, m_graph, m_graph.rect());
|
||||
|
||||
paint.end();
|
||||
}
|
55
Equalizer.h
Normal file
55
Equalizer.h
Normal file
|
@ -0,0 +1,55 @@
|
|||
#ifndef __EQUALIZER_H__
|
||||
#define __EQUALIZER_H__
|
||||
|
||||
class Skin;
|
||||
class Button;
|
||||
class MainWindow;
|
||||
class TitleBar;
|
||||
class ToggleButton;
|
||||
|
||||
#include <iostream>
|
||||
|
||||
#include <QPixmap>
|
||||
#include <QWidget>
|
||||
#include <QMouseEvent>
|
||||
#include <QPaintEvent>
|
||||
#include <QMainWindow>
|
||||
|
||||
#include "Display.h"
|
||||
|
||||
class EqualizerWidget : public QWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
EqualizerWidget(QWidget *parent);
|
||||
~EqualizerWidget();
|
||||
void mouseMoveEvent(QMouseEvent *);
|
||||
void paintEvent (QPaintEvent *event);
|
||||
|
||||
public slots:
|
||||
void setPixmaps(Skin *skin);
|
||||
private:
|
||||
QPixmap m_pixmap;
|
||||
QPixmap m_graph;
|
||||
ToggleButton *m_enable;
|
||||
ToggleButton *m_auto;
|
||||
Button *m_preset;
|
||||
};
|
||||
|
||||
class EqualizerWindow : public QMainWindow
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
EqualizerWindow(QWidget *parent);
|
||||
~EqualizerWindow();
|
||||
|
||||
public slots:
|
||||
void setEnabled (void);
|
||||
|
||||
private:
|
||||
MainWindow *m_mw;
|
||||
EqualizerWidget *m_equalizer;
|
||||
};
|
||||
|
||||
|
||||
#endif
|
|
@ -189,6 +189,10 @@ MainDisplay::SetupToggleButtons (void)
|
|||
m_eq = new ToggleButton (this, Skin::EQ_ON_0, Skin::EQ_ON_1,
|
||||
Skin::EQ_OFF_0, Skin::EQ_OFF_1);
|
||||
m_eq->move(219, 58);
|
||||
if (!s.value ("equalizer/hidden").toBool ())
|
||||
m_pls->toggleOn ();
|
||||
|
||||
connect (m_eq, SIGNAL(clicked()), this, SLOT(toggleEQ()));
|
||||
|
||||
m_shuffle = new ToggleButton (this, Skin::SHUFFLE_ON_0, Skin::SHUFFLE_ON_1,
|
||||
Skin::SHUFFLE_OFF_0, Skin::SHUFFLE_OFF_1);
|
||||
|
@ -204,6 +208,13 @@ MainDisplay::togglePL (void)
|
|||
{
|
||||
m_mw->togglePL(false);
|
||||
}
|
||||
|
||||
void
|
||||
MainDisplay::toggleEQ (void)
|
||||
{
|
||||
m_mw->toggleEQ(false);
|
||||
}
|
||||
|
||||
void
|
||||
MainDisplay::toggleTime (void)
|
||||
{
|
||||
|
|
|
@ -49,6 +49,7 @@ class MainDisplay : public SkinDisplay
|
|||
MainDisplay (QWidget *parent);
|
||||
~MainDisplay ();
|
||||
ToggleButton *GetPls() {return m_pls;};
|
||||
ToggleButton *GetEq() {return m_eq;};
|
||||
|
||||
TextScroller *m_text;
|
||||
TimeDisplay *m_time;
|
||||
|
@ -71,6 +72,7 @@ class MainDisplay : public SkinDisplay
|
|||
void setPlaytime (uint time);
|
||||
void setMediainfo (const Xmms::PropDict &);
|
||||
void togglePL(void);
|
||||
void toggleEQ(void);
|
||||
void toggleTime(void);
|
||||
|
||||
protected:
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
#include "Playlist.h"
|
||||
#include "MainDisplay.h"
|
||||
#include "ShadedDisplay.h"
|
||||
#include "Equalizer.h"
|
||||
|
||||
#include <QSettings>
|
||||
#include <QIcon>
|
||||
|
@ -111,6 +112,25 @@ MainWindow::togglePL (bool UpdateButton)
|
|||
}
|
||||
|
||||
|
||||
void
|
||||
MainWindow::toggleEQ (bool UpdateButton)
|
||||
{
|
||||
QSettings s;
|
||||
|
||||
if(UpdateButton)
|
||||
{
|
||||
getMD()->GetEq()->toggleOn();
|
||||
}
|
||||
|
||||
if (s.value ("equalizer/hidden").toBool ()) {
|
||||
m_equalizer->show ();
|
||||
s.setValue ("equalizer/hidden", false);
|
||||
} else {
|
||||
m_equalizer->hide ();
|
||||
s.setValue ("equalizer/hidden", true);
|
||||
}
|
||||
}
|
||||
|
||||
int
|
||||
main (int argc, char **argv)
|
||||
{
|
||||
|
@ -132,6 +152,7 @@ main (int argc, char **argv)
|
|||
MainWindow *mw = new MainWindow (NULL);
|
||||
|
||||
PlaylistWindow *playlistwin = new PlaylistWindow (mw);
|
||||
EqualizerWindow *eqwin = new EqualizerWindow (mw);
|
||||
|
||||
/*
|
||||
* Now that everything is initialized
|
||||
|
@ -147,6 +168,7 @@ main (int argc, char **argv)
|
|||
|
||||
mw->show ();
|
||||
mw->setPL (playlistwin);
|
||||
mw->setEQ (eqwin);
|
||||
|
||||
if (!settings.contains ("playlist/pos"))
|
||||
settings.setValue ("playlist/pos", QPoint (mw->pos().x(),
|
||||
|
@ -162,6 +184,12 @@ main (int argc, char **argv)
|
|||
else
|
||||
playlistwin->show ();
|
||||
|
||||
if (settings.value("equalizer/hidden").toBool ())
|
||||
eqwin->hide ();
|
||||
else
|
||||
eqwin->show ();
|
||||
|
||||
|
||||
#ifdef HAVE_SERVERBROWSER
|
||||
ServerBrowserWindow *browser = new ServerBrowserWindow (mw);
|
||||
browser->show ();
|
||||
|
|
|
@ -28,6 +28,7 @@ class Skin;
|
|||
class MainDisplay;
|
||||
class ShadedDisplay;
|
||||
class PlaylistWindow;
|
||||
class EqualizerWindow;
|
||||
|
||||
class MainWindow : public QMainWindow
|
||||
{
|
||||
|
@ -41,9 +42,13 @@ class MainWindow : public QMainWindow
|
|||
PlaylistWindow *getPL () { return m_playlistwin; }
|
||||
|
||||
void setPL (PlaylistWindow *p) { m_playlistwin = p; }
|
||||
void setEQ (EqualizerWindow *e) { m_equalizer = e; }
|
||||
|
||||
void raisePL (void);
|
||||
void moveEvent (QMoveEvent *event);
|
||||
|
||||
void togglePL (bool UpdateButton);
|
||||
void toggleEQ (bool UpdateButton);
|
||||
bool isTimemodeReverse(void) { QSettings s; return s.value("MainWindow/timemodereverse").toBool(); }
|
||||
void setTimemodeReverse(bool b) { QSettings s; return s.setValue("MainWindow/timemodereverse",b); }
|
||||
|
||||
|
@ -56,6 +61,7 @@ class MainWindow : public QMainWindow
|
|||
MainDisplay *m_display;
|
||||
ShadedDisplay *m_shaded;
|
||||
PlaylistWindow *m_playlistwin;
|
||||
EqualizerWindow *m_equalizer;
|
||||
};
|
||||
|
||||
|
||||
|
|
28
Skin.cpp
28
Skin.cpp
|
@ -11,6 +11,33 @@ Skin *Skin::getInstance (void)
|
|||
return singleton;
|
||||
}
|
||||
|
||||
void
|
||||
Skin::BuildEqualizer (void)
|
||||
{
|
||||
QPixmap *img = getPixmap ("eqmain");
|
||||
if (img) {
|
||||
m_items[EQ_WIN_BG] = img->copy (0, 0, 275, 116);
|
||||
m_items[EQ_WIN_ON_0] = img->copy (10, 119, 25, 12);
|
||||
m_items[EQ_WIN_ON_1] = img->copy (128, 119, 25, 12);
|
||||
m_items[EQ_WIN_OFF_1] = img->copy (187, 119, 25, 12);
|
||||
m_items[EQ_WIN_OFF_0] = img->copy (69, 119, 25, 12);
|
||||
|
||||
m_items[EQ_WIN_AUTO_ON_0] = img->copy (35, 119, 33, 12);
|
||||
m_items[EQ_WIN_AUTO_ON_1] = img->copy (153, 119, 33, 12);
|
||||
m_items[EQ_WIN_AUTO_OFF_1] = img->copy (212, 119, 33, 12);
|
||||
m_items[EQ_WIN_AUTO_OFF_0] = img->copy (94, 119, 33, 12);
|
||||
|
||||
m_items[EQ_WIN_PRESET_0] = img->copy (224, 164, 44, 12);
|
||||
m_items[EQ_WIN_PRESET_1] = img->copy (224, 176, 44, 12);
|
||||
|
||||
m_items[EQ_WIN_GRAPH_BG] = img->copy (0, 294, 113, 19);
|
||||
|
||||
delete img;
|
||||
} else {
|
||||
setSkin(":CleanAMP/");
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
Skin::BuildPlaylist (void)
|
||||
{
|
||||
|
@ -144,6 +171,7 @@ Skin::setSkin (const QString& name)
|
|||
BuildToggleButtons();
|
||||
BuildTitleBar();
|
||||
BuildOther();
|
||||
BuildEqualizer ();
|
||||
|
||||
m_letterMap.clear();
|
||||
BuildLetterMap();
|
||||
|
|
16
Skin.h
16
Skin.h
|
@ -160,7 +160,20 @@ class Skin : public QWidget
|
|||
CLUTTER_I,
|
||||
CLUTTER_D,
|
||||
CLUTTER_V,
|
||||
EQ_WIN_BG,
|
||||
EQ_WIN_ON_0,
|
||||
EQ_WIN_ON_1,
|
||||
EQ_WIN_OFF_0,
|
||||
EQ_WIN_OFF_1,
|
||||
EQ_WIN_AUTO_ON_0,
|
||||
EQ_WIN_AUTO_ON_1,
|
||||
EQ_WIN_AUTO_OFF_0,
|
||||
EQ_WIN_AUTO_OFF_1,
|
||||
EQ_WIN_PRESET_0,
|
||||
EQ_WIN_PRESET_1,
|
||||
EQ_WIN_GRAPH_BG,
|
||||
};
|
||||
|
||||
enum PlaylistParts {
|
||||
PLS_CORNER_UL_0,
|
||||
PLS_CORNER_UL_1,
|
||||
|
@ -253,7 +266,6 @@ class Skin : public QWidget
|
|||
PLS_LST_OPN_0,
|
||||
PLS_LST_OPN_1
|
||||
};
|
||||
|
||||
private:
|
||||
Skin() {};
|
||||
static Skin *singleton;
|
||||
|
@ -268,6 +280,7 @@ class Skin : public QWidget
|
|||
void BuildNumbers (void);
|
||||
void BuildPlaylist (void);
|
||||
void ParsePLEdit (void);
|
||||
void BuildEqualizer (void);
|
||||
|
||||
|
||||
QString m_skinname;
|
||||
|
@ -279,6 +292,7 @@ class Skin : public QWidget
|
|||
QMap<uint, QPixmap> m_balance;
|
||||
QMap<uint, QPixmap> m_numbers;
|
||||
QMap<uint, QPixmap> m_playlist;
|
||||
QMap<uint, QPixmap> m_equalizer;
|
||||
|
||||
QMap<QByteArray, QByteArray> m_pledit_txt;
|
||||
QList<QPixmap *> m_buttons;
|
||||
|
|
|
@ -40,7 +40,7 @@ SkinList::SkinList (QWidget *parent) : QListWidget (parent)
|
|||
|
||||
QString path;
|
||||
path.append (QDir::homePath());
|
||||
path.append ("/.xmms2/clients/promoe/skins/");
|
||||
path.append ("/.config/xmms2/clients/promoe/skins/");
|
||||
QDir d;
|
||||
|
||||
new SkinChooserItem (QIcon (":CleanAMP/main.png"), "CleanAMP (default)", ":CleanAMP/", this);
|
||||
|
|
|
@ -24,6 +24,7 @@ SOURCES += XmmsQT4.cpp \
|
|||
PlaylistMenu.cpp \
|
||||
VolumeSlider.cpp \
|
||||
ClutterBar.cpp \
|
||||
Equalizer.cpp \
|
||||
|
||||
|
||||
HEADERS += XmmsQT4.h \
|
||||
|
@ -52,6 +53,7 @@ HEADERS += XmmsQT4.h \
|
|||
PlaylistMenu.h \
|
||||
VolumeSlider.h \
|
||||
ClutterBar.h \
|
||||
Equalizer.h \
|
||||
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue