diff --git a/MainDisplay.cpp b/MainDisplay.cpp index 82c4533..b8f3209 100644 --- a/MainDisplay.cpp +++ b/MainDisplay.cpp @@ -14,6 +14,8 @@ MainDisplay::MainDisplay (QWidget *parent) : SkinDisplay(parent) m_tbar->move(0, 0); m_tbar->resize(275, 14); + m_mw = dynamic_cast(parent); + SetupPushButtons (); SetupToggleButtons (); @@ -126,7 +128,7 @@ MainDisplay::SetupToggleButtons (void) if (!s.value ("playlist/hidden").toBool ()) m_pls->toggleOn (); - connect (m_pls, SIGNAL(clicked()), window(), SLOT(togglePL())); + connect (m_pls, SIGNAL(clicked()), this, SLOT(togglePL())); m_eq = new ToggleButton (this, Skin::EQ_ON_0, Skin::EQ_ON_1, Skin::EQ_OFF_0, Skin::EQ_OFF_1); @@ -141,6 +143,12 @@ MainDisplay::SetupToggleButtons (void) m_repeat->move(210, 89); } +void +MainDisplay::togglePL (void) +{ + m_mw->togglePL(false); +} + void MainDisplay::SetupPushButtons (void) { diff --git a/MainDisplay.h b/MainDisplay.h index eae213d..050687e 100644 --- a/MainDisplay.h +++ b/MainDisplay.h @@ -31,6 +31,7 @@ class MainDisplay : public SkinDisplay public: MainDisplay (QWidget *parent); ~MainDisplay (); + ToggleButton *GetPls() {return m_pls;}; TextScroller *m_text; NumberDisplay *m_number; @@ -49,6 +50,7 @@ class MainDisplay : public SkinDisplay void setStatus (uint status); void setPlaytime (uint time); void setMediainfo (QHash); + void togglePL(void); protected: void SetupPushButtons (void); @@ -66,6 +68,8 @@ class MainDisplay : public SkinDisplay ToggleButton *m_shuffle; ToggleButton *m_repeat; + MainWindow *m_mw; + }; #endif diff --git a/MainWindow.cpp b/MainWindow.cpp index ce77e76..42fd184 100644 --- a/MainWindow.cpp +++ b/MainWindow.cpp @@ -101,10 +101,15 @@ MainWindow::moveEvent (QMoveEvent *event) } void -MainWindow::togglePL (void) +MainWindow::togglePL (bool UpdateButton) { QSettings s; + if(UpdateButton) + { + getMD()->GetPls()->toggleOn(); + } + if (s.value ("playlist/hidden").toBool ()) { m_playlistwin->move (s.value("playlist/pos").toPoint ()); m_playlistwin->show (); @@ -136,7 +141,7 @@ main (int argc, char **argv) MainWindow *mw = new MainWindow (NULL); - PlaylistWindow *playlistwin = new PlaylistWindow (NULL); + PlaylistWindow *playlistwin = new PlaylistWindow (mw); /* * Now that everything is initialized diff --git a/MainWindow.h b/MainWindow.h index 4fe5e52..e3ad267 100644 --- a/MainWindow.h +++ b/MainWindow.h @@ -33,10 +33,10 @@ class MainWindow : public QMainWindow void setPL (PlaylistWindow *p) { m_playlistwin = p; } void raisePL (void) { m_playlistwin->raise (); } void moveEvent (QMoveEvent *event); + void togglePL (bool UpdateButton); public slots: void switchDisplay (); - void togglePL (void); private: bool isShaded (void) { QSettings s; return s.value("MainWindow/shaded").toBool(); } diff --git a/Playlist.cpp b/Playlist.cpp index 1b13903..01f2215 100644 --- a/Playlist.cpp +++ b/Playlist.cpp @@ -1,4 +1,4 @@ - +#include "MainWindow.h" #include "Playlist.h" #include @@ -105,7 +105,7 @@ PlaylistScroller::paintEvent (QPaintEvent *event) PlaylistWindow::PlaylistWindow (QWidget *parent) : QMainWindow (parent) { QSettings s; - + m_mw = dynamic_cast(parent); #ifndef _WIN32 setWindowIcon (QIcon (":icon.png")); #endif @@ -123,6 +123,14 @@ PlaylistWindow::PlaylistWindow (QWidget *parent) : QMainWindow (parent) setCentralWidget (m_playlist); m_shaded = new PlaylistShade (this); + m_shadebtn = new Button (this, Skin::PLS_SHADE_BTN_0, Skin::PLS_SHADE_BTN_1, true); + connect (m_shadebtn, SIGNAL (clicked()), this, SLOT (switchDisplay ())); + m_shadebtn->move(size().width() - 21, 3); + + m_closebtn = new Button (this, Skin::PLS_CLOSE_BTN_0, Skin::PLS_CLOSE_BTN_1, true); + connect (m_closebtn, SIGNAL (clicked()), this, SLOT (togglePL ())); + m_closebtn->move(size().width() - 11, 3); + if (!s.contains ("shaded")) s.setValue ("shaded", false); else @@ -134,6 +142,11 @@ PlaylistWindow::PlaylistWindow (QWidget *parent) : QMainWindow (parent) } +void PlaylistWindow::togglePL (void) +{ + m_mw->togglePL(true); +} + void PlaylistWindow::switchDisplay (void) { @@ -169,6 +182,9 @@ PlaylistWindow::resizeEvent (QResizeEvent *event) { QSettings s; + m_shadebtn->move(size().width() - 21, 3); + m_closebtn->move(size().width() - 11, 3); + if (s.value("playlist/shaded").toBool ()) { s.setValue ("playlist/size", size ()); } diff --git a/Playlist.h b/Playlist.h index 18581b3..e165ef5 100644 --- a/Playlist.h +++ b/Playlist.h @@ -9,6 +9,7 @@ #include #include +class MainWindow; class PlaylistWidget; class PlaylistScroller; @@ -113,7 +114,6 @@ class PlaylistWindow : public QMainWindow { ~PlaylistWindow () {} void setActive (bool); - void switchDisplay (void); void mousePressEvent (QMouseEvent *event); void mouseMoveEvent (QMouseEvent *event); @@ -123,6 +123,10 @@ class PlaylistWindow : public QMainWindow { void resizeEvent (QResizeEvent *event); + public slots: + void switchDisplay (void); + void togglePL (void); + private: PlaylistWidget *m_playlist; PlaylistShade *m_shaded; @@ -130,6 +134,10 @@ class PlaylistWindow : public QMainWindow { int m_diffx; int m_diffy; + Button *m_shadebtn; + Button *m_closebtn; + MainWindow *m_mw; + }; #endif diff --git a/Skin.cpp b/Skin.cpp index dabe4a5..dc0c5c0 100644 --- a/Skin.cpp +++ b/Skin.cpp @@ -46,7 +46,7 @@ Skin::BuildPlaylist (void) m_playlist[PLS_CLOSE_BTN_1] = img->copy(52, 42, 9, 9); m_playlist[PLS_SHADE_BTN_0] = tmp.copy(14, 3, 9, 9); - m_playlist[PLS_SHADE_BTN_1] = img->copy(52, 42, 9, 9); + m_playlist[PLS_SHADE_BTN_1] = img->copy(62, 42, 9, 9); m_playlist[PLS_MAX_BTN_0] = img->copy(150, 42, 9, 9);