summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--archivetreeview.cpp19
-rw-r--r--archivetreeview.h3
-rw-r--r--filestreemodel.h2
-rw-r--r--shemov.cpp28
-rw-r--r--shemov.h8
5 files changed, 59 insertions, 1 deletions
diff --git a/archivetreeview.cpp b/archivetreeview.cpp
index 94bebcd..19f5ae6 100644
--- a/archivetreeview.cpp
+++ b/archivetreeview.cpp
@@ -75,6 +75,25 @@ ArchiveTreeView::ArchiveTreeView(QWidget *parent) : QWidget(parent){
setLayout(mainLayout);
}
+void ArchiveTreeView::setFileViewMode(int mode){
+ switch(mode){
+ case FilesTreeModel::Archived:
+ case FilesTreeModel::Local:
+ mSeriesWidget->setEnabled(false);
+ break;
+ case FilesTreeModel::Normal:
+ mSeriesWidget->setEnabled(true);
+ break;
+ default:
+ ;
+ }
+ mFilesModel->setMode(mode);
+ mFilesWidget->filesTree()->expandAll();
+ mFilesWidget->filesTree()->resizeColumnToContents(0);
+ mFilesWidget->filesTree()->resizeColumnToContents(1);
+ mFilesWidget->filesTree()->resizeColumnToContents(2);
+}
+
void ArchiveTreeView::currentChanged(const QItemSelection &selected, const QItemSelection &deselected){
foreach(QModelIndex i, deselected.indexes()){
mSelectedItems.removeAll(i);
diff --git a/archivetreeview.h b/archivetreeview.h
index a01af10..d4c70a3 100644
--- a/archivetreeview.h
+++ b/archivetreeview.h
@@ -29,6 +29,9 @@ class ArchiveTreeView : public QWidget
SeriesTreeWidget *seriesWidget() { return mSeriesWidget; }
FilesTreeWidget *filesWidget() { return mFilesWidget; }
+ public slots:
+ void setFileViewMode(int mode);
+
private slots:
void currentChanged(const QItemSelection &selected, const QItemSelection &deselected);
void setMappingItems(const QList<int> seriesPartIds, MappingTableModel *model, MappingTableWidget *widget);
diff --git a/filestreemodel.h b/filestreemodel.h
index b5c11e8..7cff707 100644
--- a/filestreemodel.h
+++ b/filestreemodel.h
@@ -21,7 +21,7 @@ class FilesTreeModel : public SmTreeModel {
enum CustomRoles { FileNameRole = Qt::UserRole + 1, FullPathRole = Qt::UserRole + 2, SizeRole = Qt::UserRole + 3, DvdNoRole = Qt::UserRole + 4, SizeDisplayRole = Qt::UserRole + 5, FileTypeRole = Qt::UserRole + 6, Md5SumRole = Qt::UserRole + 7, PartNoRole = Qt::UserRole + 8, SeriesPartIdRole = Qt::UserRole + 9, QualityRole = Qt::UserRole + 10, FilesIdRole = Qt::UserRole + 11, SeriesPartRole = Qt::UserRole + 12, DisplayNameRole = Qt::UserRole + 13 };
enum FileTypes { Movie = 1, FrontCover = 2, BackCover = 3, GeneralCover = 4 };
enum Fields { FileName = 0, PartNo = 1, SizeDisplay = 2, Quality = 3, DvdNo = 4, FullPath = 5, Size = 6, FileType = 7, Md5Sum = 8, SeriesPartId = 9, FilesId = 10, SeriesPart = 11, DisplayName = 12 };
- enum Mode { Archived, Local };
+ enum Mode { Normal = 0, Archived = 1, Local = 2 };
explicit FilesTreeModel(QStringList &headers, QObject *parent = 0);
~FilesTreeModel();
diff --git a/shemov.cpp b/shemov.cpp
index 8440b8b..4313d53 100644
--- a/shemov.cpp
+++ b/shemov.cpp
@@ -381,11 +381,32 @@ void SheMov::createActions(){
mNewMovieWizardA = new QAction(tr("Archive movie..."), this);
connect(mNewMovieWizardA, SIGNAL(triggered()), this, SLOT(newMovieWizard()));
+ //Tree view menu
+ mViewTreeGroup = new QActionGroup(this);
+ QSignalMapper *viewMapper = new QSignalMapper(this);
+ mShowArchivedA = new QAction(tr("Show archived movies"), this);
+ mViewTreeGroup->addAction(mShowArchivedA);
+ viewMapper->setMapping(mShowArchivedA, 1);
+ connect(mShowArchivedA, SIGNAL(triggered()), viewMapper, SLOT(map()));
+ mShowArchivedA->setCheckable(true);
+ mShowLocalA = new QAction(tr("Show local movies"), this);
+ mViewTreeGroup->addAction(mShowLocalA);
+ viewMapper->setMapping(mShowLocalA, 2);
+ connect(mShowLocalA, SIGNAL(triggered()), viewMapper, SLOT(map()));
+ mShowLocalA->setCheckable(true);
+ mShowNormalA = new QAction(tr("Normal view"), this);
+ mViewTreeGroup->addAction(mShowNormalA);
+ viewMapper->setMapping(mShowNormalA, 0);
+ connect(mShowNormalA, SIGNAL(triggered()), viewMapper, SLOT(map()));
+ mShowNormalA->setCheckable(true);
+ mShowNormalA->setChecked(true);
+
// misc
mOpenWithMapperFS = new QSignalMapper(this);
mOpenWithMapperAV = new QSignalMapper(this);
connect(mOpenWithMapperFS, SIGNAL(mapped(QString)), mFSWidget, SLOT(playSelected(QString)));
connect(mOpenWithMapperAV, SIGNAL(mapped(QString)), mATree, SLOT(playSelected(QString)));
+ connect(viewMapper, SIGNAL(mapped(int)), mATree, SLOT(setFileViewMode(int)));
}
@@ -436,6 +457,13 @@ void SheMov::createMenus(){
mEditArchiveMenuA = menuBar()->addMenu(mEditArchiveMenu);
mEditArchiveMenuA->setVisible(false);
+ //TreeView view menu
+ mTreeViewMenu = new QMenu(tr("View"), this);
+ mTreeViewMenu->addAction(mShowNormalA);
+ mTreeViewMenu->addAction(mShowLocalA);
+ mTreeViewMenu->addAction(mShowArchivedA);
+ menuBar()->addMenu(mTreeViewMenu);
+
QMenu *helpMenu = new QMenu(tr("&Help"), this);
helpMenu->addAction(mAboutShemovA);
helpMenu->addAction(mAboutQtA);
diff --git a/shemov.h b/shemov.h
index 18381a4..2c7477d 100644
--- a/shemov.h
+++ b/shemov.h
@@ -99,6 +99,7 @@ class SheMov : public QMainWindow {
QAction *mCopyToPartsA;
//TreeView Actions
+ //Series Actions
QAction *mNewSeriesA;
QAction *mDeleteFromSeriesA;
QAction *mExpandAllSeriesA;
@@ -106,6 +107,12 @@ class SheMov : public QMainWindow {
QAction *mExpandCurrentA;
QAction *mNewMovieWizardA;
+ //TreeView View Actions
+ QAction *mShowLocalA;
+ QAction *mShowArchivedA;
+ QAction *mShowNormalA;
+ QActionGroup *mViewTreeGroup;
+
QActionGroup *mOpenWithGroupFS;
QActionGroup *mOpenWithGroupAV;
//EndActions
@@ -120,6 +127,7 @@ class SheMov : public QMainWindow {
QMenu *mOpenWithMenuFS;
QMenu *mOpenWithMenuAV;
QMenu *mRenameMenu;
+ QMenu *mTreeViewMenu;
QAction *mEditFSMenuA;
QAction *mEditArchiveMenuA;