diff options
-rw-r--r-- | archivetreeview.cpp | 19 | ||||
-rw-r--r-- | archivetreeview.h | 3 | ||||
-rw-r--r-- | filestreemodel.h | 2 | ||||
-rw-r--r-- | shemov.cpp | 28 | ||||
-rw-r--r-- | shemov.h | 8 |
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(); @@ -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); @@ -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; |