summaryrefslogtreecommitdiffstats
path: root/randomtab.h
diff options
context:
space:
mode:
Diffstat (limited to 'randomtab.h')
-rw-r--r--randomtab.h34
1 files changed, 33 insertions, 1 deletions
diff --git a/randomtab.h b/randomtab.h
index 3f400e8..15ef087 100644
--- a/randomtab.h
+++ b/randomtab.h
@@ -11,6 +11,7 @@
#include <QWidget>
#include <QSqlDatabase>
#include <QVector>
+#include <QTreeView>
class QComboBox;
class QPushButton;
@@ -19,6 +20,10 @@ class QSortFilterProxyModel;
class QStandardItemModel;
class QLineEdit;
class QTextEdit;
+class QAction;
+class QMenu;
+class QContextMenuEvent;
+class RandomFileView;
class RandomTab : public QWidget {
Q_OBJECT
@@ -28,6 +33,8 @@ class RandomTab : public QWidget {
enum { ColumnCount = 6 };
explicit RandomTab(QWidget *parent = 0);
virtual ~RandomTab();
+ const QMenu *contextMenu() const { return mContextMenu; }
+ QMenu *editMenu() { return mEditMenu; }
public slots:
void setupModels();
@@ -39,8 +46,12 @@ class RandomTab : public QWidget {
void play(const QStringList &files);
void logMessage(const QString &msg);
+ signals:
+ void configure();
+
private:
void setupGui();
+ void setupActions();
void writeSettings();
void readSettings();
QStringList validDvdNos();
@@ -58,7 +69,7 @@ class RandomTab : public QWidget {
QPushButton *mRefresh;
QPushButton *mPlaySelected;
QPushButton *mPlayAll;
- QTreeView *mFileView;
+ RandomFileView *mFileView;
QTextEdit *mLog;
QStandardItemModel *mFileModel;
QStandardItemModel *mGenreModel;
@@ -66,6 +77,27 @@ class RandomTab : public QWidget {
QSortFilterProxyModel *mFileProxy;
QSqlDatabase mDb;
QStringList mValidDvds;
+ QAction *mPlaySelectedA;
+ QAction *mPlayAllA;
+ QAction *mClearA;
+ QAction *mRefreshA;
+ QAction *mGoA;
+ QAction *mConfigureA;
+ QMenu *mContextMenu;
+ QMenu *mEditMenu;
+};
+
+class RandomFileView : public QTreeView {
+ Q_OBJECT
+ public:
+ explicit RandomFileView(QWidget *parent = 0);
+ void setContextMenu(QMenu *menu) { mCtxMenu = menu; }
+
+ protected:
+ virtual void contextMenuEvent(QContextMenuEvent *e);
+
+ private:
+ QMenu *mCtxMenu;
};
#endif // RANDOMTAB_H