diff --git a/src/Display.cpp b/src/Display.cpp index 3869496..bfddaae 100644 --- a/src/Display.cpp +++ b/src/Display.cpp @@ -23,7 +23,6 @@ #include "TitleBar.h" #include "FileDialog.h" -#include #include SkinDisplay::SkinDisplay (QWidget *parent) : QWidget(parent) @@ -41,21 +40,6 @@ SkinDisplay::setPixmaps (Skin *skin) { } -void -SkinDisplay::mousePressEvent (QMouseEvent *event) -{ - dynamic_cast(getMW())->raisePL (); - m_diffX = event->x(); - m_diffY = event->y(); -} - -void -SkinDisplay::mouseMoveEvent (QMouseEvent *event) -{ - m_mw->move (event->globalPos().x() - m_diffX, - event->globalPos().y() - m_diffY); -} - void SkinDisplay::enterEvent (QEvent *event) { diff --git a/src/Display.h b/src/Display.h index 759738b..e727932 100644 --- a/src/Display.h +++ b/src/Display.h @@ -18,7 +18,6 @@ #include class QEvent; -class QMouseEvent; class QPaintEvent; class Skin; @@ -35,8 +34,6 @@ class SkinDisplay : public QWidget void fileOpen (void); protected: - void mousePressEvent (QMouseEvent *); - void mouseMoveEvent (QMouseEvent *); void paintEvent (QPaintEvent *event); void enterEvent (QEvent *event); void leaveEvent (QEvent *event); @@ -44,8 +41,6 @@ class SkinDisplay : public QWidget QWidget *m_mw; QWidget *m_tbar; - int m_diffX; - int m_diffY; }; #endif diff --git a/src/Skin.h b/src/Skin.h index ba3b4d1..c580ff7 100644 --- a/src/Skin.h +++ b/src/Skin.h @@ -23,7 +23,8 @@ #include class QDir; -class Skin : public QWidget +//class Skin : public QWidget +class Skin : public QObject { Q_OBJECT public: diff --git a/src/equalizer/equalizerwindow.cpp b/src/equalizer/equalizerwindow.cpp index 9863a4c..2ba28f0 100644 --- a/src/equalizer/equalizerwindow.cpp +++ b/src/equalizer/equalizerwindow.cpp @@ -19,13 +19,12 @@ #include "QWidget" #include -#include #include #include "mainwindow.h" #include "equalizerwidget.h" -EqualizerWindow::EqualizerWindow (QWidget *parent) : QMainWindow (parent) +EqualizerWindow::EqualizerWindow (QWidget *parent) : BaseWindow (parent) { m_mw = dynamic_cast(parent); @@ -64,21 +63,6 @@ EqualizerWindow::setEnabled (void) qDebug ("test"); } - -void -EqualizerWindow::mousePressEvent (QMouseEvent *event) -{ - m_diffx = event->pos().x(); - m_diffy = event->pos().y(); -} - -void -EqualizerWindow::mouseMoveEvent (QMouseEvent *event) -{ - move(event->globalPos().x() - m_diffx, - event->globalPos().y() - m_diffy); -} - void EqualizerWindow::moveEvent (QMoveEvent *event) { diff --git a/src/equalizer/equalizerwindow.h b/src/equalizer/equalizerwindow.h index 38716c2..9edac1e 100644 --- a/src/equalizer/equalizerwindow.h +++ b/src/equalizer/equalizerwindow.h @@ -16,10 +16,9 @@ #ifndef __EQUALIZERWINDOW_H__ #define __EQUALIZERWINDOW_H__ -#include +#include "basewindow.h" class QWidget; -class QMouseEvent; class QMoveEvent; class QHideEvent; class QShowEvent; @@ -27,7 +26,7 @@ class QShowEvent; class MainWindow; class EqualizerWidget; -class EqualizerWindow : public QMainWindow +class EqualizerWindow : public BaseWindow { Q_OBJECT public: @@ -43,16 +42,12 @@ class EqualizerWindow : public QMainWindow protected: void hideEvent (QHideEvent *event); void showEvent (QShowEvent *event); - void mouseMoveEvent(QMouseEvent *); - void mousePressEvent(QMouseEvent *); void moveEvent(QMoveEvent *event); private: MainWindow *m_mw; EqualizerWidget *m_equalizer; - int m_diffx; - int m_diffy; }; #endif // __EQUALIZERWINDOW_H__ diff --git a/src/mainwindow/maindisplay.cpp b/src/mainwindow/maindisplay.cpp index 4ad77f6..9905dae 100644 --- a/src/mainwindow/maindisplay.cpp +++ b/src/mainwindow/maindisplay.cpp @@ -119,21 +119,6 @@ MainDisplay::setVolume (int volume) xmmsh.volumeSet((uint)volume); } -void -MainDisplay::mouseMoveEvent (QMouseEvent *event) -{ - MainWindow *mw = dynamic_cast(window ()); - PlaylistWindow *pl = mw->getPL (); - - m_mw->move (event->globalPos().x() - m_diffX, - event->globalPos().y() - m_diffY); - - if (!pl || !pl->isVisible ()) - return; - - pl->move (event->globalPos().x() - m_diffX, - event->globalPos().y() - m_diffY + size().height()); -} void MainDisplay::setPixmaps (Skin *skin) diff --git a/src/mainwindow/maindisplay.h b/src/mainwindow/maindisplay.h index cd5d228..ee1f2d6 100644 --- a/src/mainwindow/maindisplay.h +++ b/src/mainwindow/maindisplay.h @@ -66,8 +66,6 @@ class MainDisplay : public SkinDisplay PlayStatus *m_playstatus; MainWindow *getMW(void) { return m_mw; } - void mouseMoveEvent (QMouseEvent *); - public slots: void setPixmaps(Skin *skin); void setStatus (Xmms::Playback::Status status); diff --git a/src/mainwindow/mainwindow.cpp b/src/mainwindow/mainwindow.cpp index fa83e02..d731909 100644 --- a/src/mainwindow/mainwindow.cpp +++ b/src/mainwindow/mainwindow.cpp @@ -33,7 +33,7 @@ #include #include -MainWindow::MainWindow (QWidget *parent) : QMainWindow (parent) +MainWindow::MainWindow (QWidget *parent) : BaseWindow (parent) { QSettings s; @@ -130,5 +130,15 @@ MainWindow::moveEvent (QMoveEvent *event) { QSettings s; s.setValue ("mainwindow/pos", pos ()); -} + // move all connected windows to their new position + // at the moment connected windows can be m_playlistwin and m_equalizer + if (!m_connectedWidgets.isEmpty ()) { + QMap::const_iterator i + = m_connectedWidgets.constBegin (); + while (i != m_connectedWidgets.constEnd ()) { + i.key()->move (pos () + i.value ()); + ++i; + } + } +} diff --git a/src/mainwindow/mainwindow.h b/src/mainwindow/mainwindow.h index 1eaf7f1..f7eae43 100644 --- a/src/mainwindow/mainwindow.h +++ b/src/mainwindow/mainwindow.h @@ -16,9 +16,9 @@ #ifndef __MAINWINDOW_H__ #define __MAINWINDOW_H__ -#include -#include +#include "basewindow.h" +#include class QWidget; class MainDisplay; @@ -26,7 +26,7 @@ class ShadedDisplay; class PlaylistWindow; class EqualizerWindow; -class MainWindow : public QMainWindow +class MainWindow : public BaseWindow { Q_OBJECT public: @@ -55,6 +55,8 @@ class MainWindow : public QMainWindow ShadedDisplay *m_shaded; EqualizerWindow *m_equalizer; PlaylistWindow *m_playlistwin; + + QMap m_connectedWidgets; }; diff --git a/src/playlist/playlistwindow.cpp b/src/playlist/playlistwindow.cpp index b18912d..05b90a5 100644 --- a/src/playlist/playlistwindow.cpp +++ b/src/playlist/playlistwindow.cpp @@ -18,9 +18,9 @@ #include "playlistwindow.h" -#include #include #include +#include #include "Button.h" #include "playlistwidget.h" @@ -28,7 +28,7 @@ #include "mainwindow.h" -PlaylistWindow::PlaylistWindow (QWidget *parent) : QMainWindow (parent) +PlaylistWindow::PlaylistWindow (QWidget *parent) : BaseWindow (parent) { QSettings s; m_mw = dynamic_cast(parent); @@ -132,21 +132,6 @@ PlaylistWindow::resizeEvent (QResizeEvent *event) } } -void -PlaylistWindow::mousePressEvent (QMouseEvent *event) -{ - m_diffx = event->pos ().x (); - m_diffy = event->pos ().y (); -} - -void -PlaylistWindow::mouseMoveEvent (QMouseEvent *event) -{ - move (event->globalPos().x() - m_diffx, - event->globalPos().y() - m_diffy); - -} - void PlaylistWindow::moveEvent (QMoveEvent *event) { diff --git a/src/playlist/playlistwindow.h b/src/playlist/playlistwindow.h index 89969b9..65b616d 100644 --- a/src/playlist/playlistwindow.h +++ b/src/playlist/playlistwindow.h @@ -18,14 +18,14 @@ #define __PLAYLISTWINDOW_H__ // Qt classes -#include +#include "basewindow.h" class QEvent; -class QMouseEvent; class QMoveEvent; class QResizeEvent; class QHideEvent; class QShowEvent; +class QPoint; // our own classes class Button; @@ -33,7 +33,7 @@ class MainWindow; class PlaylistWidget; class PlaylistShade; -class PlaylistWindow : public QMainWindow { +class PlaylistWindow : public BaseWindow { Q_OBJECT public: @@ -51,21 +51,15 @@ class PlaylistWindow : public QMainWindow { protected: void hideEvent (QHideEvent *event); void showEvent (QShowEvent *event); - void mousePressEvent (QMouseEvent *event); - void mouseMoveEvent (QMouseEvent *event); void enterEvent (QEvent *event); void leaveEvent (QEvent *event); void moveEvent (QMoveEvent *event); void resizeEvent (QResizeEvent *event); - private: PlaylistWidget *m_playlist; PlaylistShade *m_shaded; - int m_diffx; - int m_diffy; - Button *m_shadebtn; Button *m_closebtn; MainWindow *m_mw; diff --git a/src/src.pri b/src/src.pri index 7882a4a..b7932e8 100644 --- a/src/src.pri +++ b/src/src.pri @@ -18,6 +18,7 @@ HEADERS += PixWidget.h \ PlayStatus.h \ SkinChooser.h \ settingsdialog.h \ + basewindow.h \ VolumeSlider.h \ FileDialog.h \ BrowseModel.h \ @@ -38,6 +39,7 @@ SOURCES += main.cpp \ PlayStatus.cpp \ SkinChooser.cpp \ settingsdialog.cpp \ + basewindow.cpp \ VolumeSlider.cpp \ FileDialog.cpp \ BrowseModel.cpp \