context menu for removing playlist items, lots of fixes, basic functions seem to...
[tomamp] / mainwindow.h
index fd492de..898df91 100644 (file)
@@ -50,6 +50,7 @@
 #include <phonon/volumeslider.h>
 #include <phonon/backendcapabilities.h>
 #include <QList>
+#include "playlistmanager.h"
 
 class QAction;
 class QTableWidget;
@@ -66,7 +67,7 @@ public:
 
     QSize sizeHint() const
     {
-        return QSize(500, 300);
+        return QSize(800, 480);
     }
 
 private slots:
@@ -80,31 +81,38 @@ private slots:
     void stateChanged(Phonon::State newState, Phonon::State oldState);
     void tick(qint64 time);
     void sourceChanged(const Phonon::MediaSource &source);
-    void metaStateChanged(Phonon::State newState, Phonon::State oldState);
     void aboutToFinish();
     void finished();
     void tableClicked(int row, int column);
-    void savePlaylist();
-    void loadPlaylist();
-    void clearPlaylist();
+    void play();
     void next();
     void previous();
     void cellClicked(int row, int column);
+    void savePlaylist ();
+    void loadPlaylist ();
+    void playlistChanged (int from);
+    void itemUpdated (int index);
+    void setItem (int ind, bool doplay);
+    void removeSelectedItem ();
+    void removeAllButSelectedItem ();
+    void highlightRow (int i);
+    void unhighlightRow (int i);
 
+protected:
+    void contextMenuEvent (QContextMenuEvent*e);
 private:
     void setupActions();
     void setupMenus();
     void setupUi();
     void setupShuffleList();
-    void addStringList (const QStringList&);
-    void parseAndAddFolder (const QString& dir, bool recursive);
+    void setRowFromItem (int row, const PlaylistItem& item);
 
     Phonon::SeekSlider *seekSlider;
     Phonon::MediaObject *mediaObject;
-    Phonon::MediaObject *metaInformationResolver;
     Phonon::AudioOutput *audioOutput;
     Phonon::VolumeSlider *volumeSlider;
-    QList<Phonon::MediaSource> sources;
+
+    PlaylistManager plman;
 
     QAction *playAction;
     QAction *pauseAction;
@@ -124,13 +132,17 @@ private:
     QAction *exitAction;
     QAction *aboutAction;
     QAction *aboutQtAction;
+    QAction *removeSelected;
+    QAction *removeAllButSelected;
+    QMenu   *contextMenu;
     QToolBar *bar;
     QLCDNumber *timeLcd;
     QTableWidget *musicTable;
-    bool    repeat;
-    bool    shuffle;
+    bool        repeat;
+    bool        shuffle;
     QSettings settings;
-    QList<int> shuffleList;
+    QList<int>  shuffleList;
+    int lastPlayed;
 };
 
 #endif