diff --git a/MainWindow.cpp b/MainWindow.cpp index 80e3932..4dbf8f7 100644 --- a/MainWindow.cpp +++ b/MainWindow.cpp @@ -8,12 +8,19 @@ MainWindow::MainWindow (QWidget *parent) : QMainWindow (parent) { + QSettings settings; + setWindowFlags(Qt::FramelessWindowHint); setGeometry(100, 100, 275, 116); #ifndef _WIN32 setWindowIcon (QIcon (":icon.png")); #endif + if (!settings.contains ("mainwindow/shaded")) + setShaded (true); + else + setShaded (!isShaded ()); + /* * The MainDisplay is the mainwindow non-shaded mode */ @@ -27,14 +34,14 @@ MainWindow::MainWindow (QWidget *parent) : QMainWindow (parent) m_shaded = new ShadedDisplay (this); m_shaded->hide (); - /* - * Per default not shaded. Change this to a - * config value later. - */ - m_isshaded = false; + switchDisplay (); m_playlistwin = NULL; + if (!settings.contains ("mainwindow/pos")) + settings.setValue ("mainwindow/pos", QPoint (100, 100)); + + move (settings.value("mainwindow/pos").toPoint ()); } MainWindow::~MainWindow () @@ -46,16 +53,18 @@ MainWindow::~MainWindow () void MainWindow::switchDisplay () { - if (m_isshaded) { + QSettings s; + + if (isShaded ()) { m_shaded->hide (); m_display->show (); resize (275, 116); - m_isshaded = false; + setShaded (false); } else { m_display->hide (); m_shaded->show (); resize (275, 14); - m_isshaded = true; + setShaded (true); } update (); @@ -82,16 +91,23 @@ MainWindow::moveEvent (QMoveEvent *event) m_playlistwin->move (event->pos().x(), event->pos().y() + size().height()); } + + QSettings s; + s.setValue ("mainwindow/pos", pos ()); } void MainWindow::togglePL (void) { - if (m_playlistwin->isVisible ()) { - m_playlistwin->hide (); - } else { - m_playlistwin->move (pos().x(), pos().y()+size().height()); + QSettings s; + + if (s.value ("playlist/hidden").toBool ()) { + m_playlistwin->move (s.value("playlist/pos").toPoint ()); m_playlistwin->show (); + s.setValue ("playlist/hidden", false); + } else { + m_playlistwin->hide (); + s.setValue ("playlist/hidden", true); } } @@ -133,5 +149,20 @@ main (int argc, char **argv) mw->show (); mw->setPL (playlistwin); + if (!settings.contains ("playlist/pos")) + settings.setValue ("playlist/pos", QPoint (mw->pos().x(), + mw->pos().y()+mw->size().height())); + playlistwin->move (settings.value("playlist/pos").toPoint ()); + playlistwin->move (settings.value("playlist/pos").toPoint ()); + + + if (!settings.contains ("playlist/hidden")) + settings.setValue ("playlist/hidden", true); + + if (settings.value("playlist/hidden").toBool ()) + playlistwin->hide (); + else + playlistwin->show (); + return app.exec(); } diff --git a/MainWindow.h b/MainWindow.h index 8fa783a..997dc5f 100644 --- a/MainWindow.h +++ b/MainWindow.h @@ -12,6 +12,7 @@ class MainWindow; #include #include #include +#include #include "Skin.h" #include "XmmsQT4.h" @@ -31,7 +32,6 @@ class MainWindow : public QMainWindow MainDisplay *getMD () { return m_display; } ShadedDisplay *getSD () { return m_shaded; } - bool getShaded (void) { return m_isshaded; } void setPL (PlaylistWindow *p) { m_playlistwin = p; } void moveEvent (QMoveEvent *event); @@ -40,8 +40,8 @@ class MainWindow : public QMainWindow void togglePL (void); private: - bool m_isshaded; - + bool isShaded (void) { QSettings s; return s.value("MainWindow/shaded").toBool(); } + void setShaded (bool b) { QSettings s; return s.setValue("MainWindow/shaded", b); } MainDisplay *m_display; ShadedDisplay *m_shaded; PlaylistWindow *m_playlistwin; diff --git a/Playlist.cpp b/Playlist.cpp index 9598cef..db62a1e 100644 --- a/Playlist.cpp +++ b/Playlist.cpp @@ -6,6 +6,7 @@ #include #include #include +#include PlaylistScrollButton::PlaylistScrollButton (PlaylistScroller *parent, uint normal, uint pressed) : Button (parent, normal, pressed, true) { @@ -79,49 +80,75 @@ PlaylistScroller::paintEvent (QPaintEvent *event) PlaylistWindow::PlaylistWindow (QWidget *parent) : QMainWindow (parent) { + QSettings s; + #ifndef _WIN32 setWindowIcon (QIcon (":icon.png")); #endif setWindowFlags (Qt::FramelessWindowHint); - resize (275, 300); + s.beginGroup ("playlist"); + if (!s.contains ("size")) { + s.setValue ("size", QSize (280, 350)); + } + resize (s.value("size").toSize ()); m_playlist = new PlaylistWidget (this); setCentralWidget (m_playlist); m_shaded = new PlaylistShade (this); - m_shaded->hide (); - m_isshaded = false; + if (!s.contains ("shaded")) + s.setValue ("shaded", false); + else + s.setValue ("shaded", !s.value("shaded").toBool ()); + + switchDisplay (); + + s.endGroup (); + } void PlaylistWindow::switchDisplay (void) { - if (m_isshaded) { + QSettings s; + + s.beginGroup ("playlist"); + + if (!s.value("shaded").toBool ()) { m_shaded->hide (); m_playlist->show (); - m_playlist->resize (m_pl_size); - resize (m_pl_size); + s.setValue ("shaded", true); + m_playlist->resize (s.value("size").toSize ()); + resize (s.value("size").toSize ()); - m_isshaded = false; } else { - m_pl_size = m_playlist->size (); m_playlist->hide (); m_shaded->show (); - m_shaded->resize (size().width(), 14); - - resize (size().width(), 14); - - m_isshaded = true; + s.setValue ("shaded", false); + m_shaded->resize (s.value("size").toSize ().width(), 14); + resize (s.value("size").toSize ().width(), 14); } + s.endGroup (); + update (); } +void +PlaylistWindow::resizeEvent (QResizeEvent *event) +{ + QSettings s; + + if (s.value("playlist/shaded").toBool ()) { + s.setValue ("playlist/size", size ()); + } +} + void PlaylistWindow::mousePressEvent (QMouseEvent *event) { @@ -135,6 +162,8 @@ PlaylistWindow::mouseMoveEvent (QMouseEvent *event) move (event->globalPos().x() - m_diffx, event->globalPos().y() - m_diffy); + QSettings s; + s.setValue ("playlist/pos", pos ()); } void diff --git a/Playlist.h b/Playlist.h index ed3230d..e5acf21 100644 --- a/Playlist.h +++ b/Playlist.h @@ -112,17 +112,15 @@ class PlaylistWindow : public QMainWindow { void mouseMoveEvent (QMouseEvent *event); void enterEvent (QEvent *event); void leaveEvent (QEvent *event); + void resizeEvent (QResizeEvent *event); private: - bool m_isshaded; - PlaylistWidget *m_playlist; PlaylistShade *m_shaded; int m_diffx; int m_diffy; - QSize m_pl_size; }; #endif