summaryrefslogtreecommitdiffstats
path: root/archivetreeview.h
diff options
context:
space:
mode:
Diffstat (limited to 'archivetreeview.h')
-rw-r--r--archivetreeview.h68
1 files changed, 68 insertions, 0 deletions
diff --git a/archivetreeview.h b/archivetreeview.h
index ddfad7e..2789298 100644
--- a/archivetreeview.h
+++ b/archivetreeview.h
@@ -11,6 +11,11 @@
#include <QWidget>
#include <QModelIndexList>
#include <QList>
+#include <QSqlDatabase>
+#include <QTreeView>
+#include <QDialog>
+
+#include "smtreemodel.h"
class SeriesTreeWidget;
class FilesTreeWidget;
@@ -18,7 +23,12 @@ class FilesTreeModel;
class SeriesTreeModel;
class MappingTableWidget;
class MappingTableModel;
+class NoCoverMovieDialog;
class QItemSelection;
+class QSqlQuery;
+class QPushButton;
+class QContextMenuEvent;
+class QLabel;
class ArchiveTreeView : public QWidget
{
@@ -35,6 +45,8 @@ class ArchiveTreeView : public QWidget
public slots:
void setFileViewMode(int mode);
void cleanDatabase(const QString &table);
+ void showNoCoverDialog();
+ void selectMovie(const QModelIndex &idx);
private slots:
void currentChanged(const QItemSelection &selected, const QItemSelection &deselected);
@@ -59,6 +71,62 @@ class ArchiveTreeView : public QWidget
//misc
QString mWindowTitle;
+ NoCoverMovieDialog *mNoCoverDialog;
+};
+
+class NoCoverMovieModel : public SmTreeModel {
+ Q_OBJECT
+ public:
+ enum CustomRoles { SeriesNameRole = Qt::UserRole + 1, SeriesPartRole = Qt::UserRole + 2, SeriesIdRole = Qt::UserRole + 3 };
+ enum Fields { Display = 0, SeriesName = 1, SeriesPart = 2, SeriesId = 3 };
+ explicit NoCoverMovieModel(const QStringList &headers, QObject *parent = 0);
+ virtual ~NoCoverMovieModel() {}
+ virtual QVariant data(const QModelIndex &index, int role) const;
+ Qt::ItemFlags flags(const QModelIndex &index) const;
+
+ public slots:
+ void refresh();
+
+ signals:
+ void refreshed();
+
+ private:
+ QSqlDatabase mDb;
+ QSqlQuery *mDataQuery;
+};
+
+class NoCoverMovieView : public QTreeView {
+ Q_OBJECT
+ public:
+ explicit NoCoverMovieView(QWidget *parent = 0);
+ virtual ~NoCoverMovieView() {}
+
+ protected:
+ void contextMenuEvent(QContextMenuEvent *e);
+};
+
+class NoCoverMovieDialog : public QDialog {
+ Q_OBJECT
+ public:
+ explicit NoCoverMovieDialog(QWidget *parent = 0, Qt::WindowFlags flags = 0);
+ virtual ~NoCoverMovieDialog() {}
+ NoCoverMovieView *view() { return mView; }
+
+ private slots:
+ void openInBrowser();
+ void copyToClipboard();
+ void updateLabel();
+
+ private:
+ const QString selectedText() const;
+ const QString labelText() const;
+ QPushButton *mClose;
+ QPushButton *mRefresh;
+ NoCoverMovieView *mView;
+ NoCoverMovieModel *mModel;
+ QLabel *mMovieLabel;
+ QAction *mCopyA;
+ QAction *mBrowserA;
};
#endif