]> git.sesse.net Git - vlc/blobdiff - modules/gui/qt4/components/playlist/playlist.hpp
Qt: use a QStackedWidget for the artContainer in the playlist
[vlc] / modules / gui / qt4 / components / playlist / playlist.hpp
index 2b02388d97198979af09b8cd77030b4d125c4e12..ae38a279a87a68966c0de59a9d4a1c88e7cbcf8f 100644 (file)
 //#include <vlc_playlist.h>
 
 #include <QSplitter>
+
 #include <QPushButton>
+#include <QSplitterHandle>
+#include <QMouseEvent>
 
 class StandardPLPanel;
 class LocationBar;
 class QSignalMapper;
 class SearchLineEdit;
 class QModelIndex;
+class QStackedWidget;
 
-class PlaylistWidget : public QSplitter
+class PlaylistWidget : public QWidget
 {
     Q_OBJECT
 public:
@@ -52,9 +56,10 @@ public:
 
     void forceHide();
     void forceShow();
-
+    QStackedWidget *artContainer;
 private:
     QSplitter            *leftSplitter;
+    QSplitter            *split;
     StandardPLPanel      *mainView;
 
     QAction *viewActions[ 4 /* StandardPLPanel::VIEW_COUNT*/ ];
@@ -68,11 +73,36 @@ protected:
     virtual void dropEvent( QDropEvent *);
     virtual void dragEnterEvent( QDragEnterEvent * );
     virtual void closeEvent( QCloseEvent * );
-
 private slots:
     void changeView( const QModelIndex& index );
 };
 
+#ifdef Q_WS_MAC
+class PlaylistSplitter : public QSplitter
+{
+public:
+    PlaylistSplitter( QWidget *_parent ) : QSplitter( _parent ){}
+protected:
+    virtual QSplitterHandle *createHandle();
+};
+#else
+ #define PlaylistSplitter QSplitter
+#endif
+
+#ifdef Q_WS_MAC
+class SplitterHandle : public QSplitterHandle
+{
+public:
+    SplitterHandle( Qt::Orientation orientation, QSplitter * parent );
+
+protected:
+    virtual void paintEvent ( QPaintEvent * );
+
+private:
+    virtual QSize sizeHint () const;
+};
+#endif /* __APPLE__ */
+
 class LocationButton : public QPushButton
 {
 public:
@@ -101,7 +131,7 @@ private:
 
     PLModel *model;
     QSignalMapper *mapper;
-    QList<QWidget*> buttons;
+    QWidgetList buttons;
     QList<QAction*> actions;
     LocationButton *btnMore;
     QMenu *menuMore;