diff options
author | Arno <am@disconnect.de> | 2014-02-07 09:04:54 +0100 |
---|---|---|
committer | Arno <am@disconnect.de> | 2014-02-07 09:04:54 +0100 |
commit | f41e3577a9fc25b37e33047afc8852017d612f5e (patch) | |
tree | 1b2f6cb4d084d5d4cf5c06bffa153f7034c29089 | |
parent | 768236c6ac478a7fa96923c8a29415a7afbd1f41 (diff) | |
download | SheMov-f41e3577a9fc25b37e33047afc8852017d612f5e.tar.gz SheMov-f41e3577a9fc25b37e33047afc8852017d612f5e.tar.bz2 SheMov-f41e3577a9fc25b37e33047afc8852017d612f5e.zip |
Save state of ArchiveBrowser
persist header settings and filters
-rw-r--r-- | archivebrowser.cpp | 16 | ||||
-rw-r--r-- | archivebrowser.h | 3 | ||||
-rw-r--r-- | shemov.cpp | 17 | ||||
-rw-r--r-- | shemov.h | 7 |
4 files changed, 40 insertions, 3 deletions
diff --git a/archivebrowser.cpp b/archivebrowser.cpp index e6a1efb..7587c93 100644 --- a/archivebrowser.cpp +++ b/archivebrowser.cpp @@ -10,6 +10,7 @@ #include <QLabel> #include <QComboBox> #include <QCheckBox> +#include <QSettings> #include <QSortFilterProxyModel> #include "archivebrowser.h" @@ -23,7 +24,7 @@ ArchiveBrowser::ArchiveBrowser(QWidget *parent) : QWidget(parent), mSelectedSize mModel = static_cast<ArchiveBrowserModel*>(SmGlobals::instance()->model("BrowserModel")); mProxy = new ArchiveBrowserModelProxy; mProxy->setSourceModel(mModel); - mTree = new SmTreeView; + mTree = new SmTreeView("ui/archivebrowserheaders"); mTree->setModel(mProxy); mTree->setColumnHidden(ArchiveBrowserModel::GenericId, true); mTree->setColumnHidden(ArchiveBrowserModel::NodeType, true); @@ -77,6 +78,19 @@ void ArchiveBrowser::browserSelectionChanged(const QItemSelection &selected, con mProxy->setBytesRemaining(remaining); } +void ArchiveBrowser::readConfig(){ + mTree->readHeaderConfig(); + QSettings s; + QString qualFilter = s.value("ui/browserquality", tr("(none)")).toString(); + mQualityFilter->setCurrentText(qualFilter); +} + +void ArchiveBrowser::writeSettings(){ + mTree->writeHeaderConfig(); + QSettings s; + s.setValue("ui/browserquality", mQualityFilter->currentText()); +} + void ArchiveBrowser::setupQualityFilter(){ mQualityFilter->clear(); QList<int> qualities = mModel->availableQualities(); diff --git a/archivebrowser.h b/archivebrowser.h index 6986b84..7179c78 100644 --- a/archivebrowser.h +++ b/archivebrowser.h @@ -25,9 +25,12 @@ class ArchiveBrowser : public QWidget { Q_OBJECT public: explicit ArchiveBrowser(QWidget *parent = 0); + SmTreeView *archiveTree() { return mTree; } public slots: void browserSelectionChanged(const QItemSelection &selected, const QItemSelection &deselected); + void readConfig(); + void writeSettings(); private slots: void setupQualityFilter(); @@ -80,7 +80,7 @@ SheMov::SheMov(QWidget *parent, Qt::WindowFlags flags) : QMainWindow(parent, fla //archivebrower splash.showMessage(tr("Creating Archive Browser..."), Qt::AlignHCenter, Qt::yellow); qApp->processEvents(); - ArchiveBrowser *mArchiveBrowser = new ArchiveBrowser; + mArchiveBrowser = new ArchiveBrowser; mTab->addTab(mArchiveBrowser, tr("Archive Browser")); connect(mArchiveBrowser, SIGNAL(sizeChanged(qint64)), this, SLOT(setSize(qint64))); connect(mArchiveBrowser, SIGNAL(itemCountChanged(int)), this, SLOT(updateSelectedCount(int))); @@ -137,6 +137,7 @@ SheMov::SheMov(QWidget *parent, Qt::WindowFlags flags) : QMainWindow(parent, fla mFSWidget->fileView()->setFocus(Qt::ActiveWindowFocusReason); mPicWidget->readSettings(); mArchive->readSettings(); + mArchiveBrowser->readConfig(); readSettings(); Helper::centerWidget(picViewer); } @@ -147,6 +148,7 @@ void SheMov::closeEvent(QCloseEvent *event){ mPicWidget->picViewer2()->writeSettings(); mPicWidget->writeSettings(); mArchive->writeSettings(); + mArchiveBrowser->writeSettings(); writeSettings(); SmGlobals *globals = SmGlobals::instance(); delete globals; @@ -185,6 +187,7 @@ void SheMov::tabChanged(int newTab){ mPVAddToNPA->setEnabled(newTab == FileManager); mNewPicsA->setEnabled(newTab == FileManager); mNewMovieWizardA->setEnabled(newTab == FileManager); + mArchiveBrowserViewMenuA->setEnabled(newTab == ArchiveBrowserTab); statusbarMessage(QString()); ArchiveController *c = SmGlobals::instance()->archiveController(); switch(newTab){ @@ -476,6 +479,11 @@ void SheMov::createActions(){ QSignalMapper *aFilesMapper = createHeaderMapper(afilesmodel, mArchiveFilesAG); connect(aFilesMapper, SIGNAL(mapped(QObject*)), controller->archiveFiles(), SLOT(toggleHeader(QObject*))); controller->archiveFiles()->setHeaderGroup(mArchiveFilesAG); + SmTreeModel *abrowsermodel = static_cast<SmTreeModel*>(SmGlobals::instance()->model("BrowserModel")); + mArchiveBrowserAG = new QActionGroup(this); + QSignalMapper *archiveBrowserHeaderMapper = createHeaderMapper(abrowsermodel, mArchiveBrowserAG); + connect(archiveBrowserHeaderMapper, SIGNAL(mapped(QObject*)), mArchiveBrowser->archiveTree(), SLOT(toggleHeader(QObject*))); + mArchiveBrowser->archiveTree()->setHeaderGroup(mArchiveBrowserAG); /* very unfortunate naming of variables: * picViewer: the actual PictureViewer2 window @@ -750,6 +758,13 @@ void SheMov::createMenus(){ mPicViewMenu->addAction(mPWRefreshA); mViewPicMenuA = menuBar()->addMenu(mPicViewMenu); + //Archive Browser view menu + mArchiveBrowserViewMenu = new QMenu(tr("&View"), this); + QMenu *abHeaderMenu = new QMenu(tr("Show headers"), this); + abHeaderMenu->addActions(mArchiveBrowserAG->actions()); + mArchiveBrowserViewMenu->addMenu(abHeaderMenu); + mArchiveBrowserViewMenuA = menuBar()->addMenu(mArchiveBrowserViewMenu); + //Movie archive QMenu *archiveHeaderMenu = new QMenu(tr("Show headers"), this); archiveHeaderMenu->addActions(mArchiveFilesAG->actions()); @@ -27,7 +27,7 @@ class SheMov : public QMainWindow { Q_OBJECT public: SheMov(QWidget *parent = 0, Qt::WindowFlags flags = 0); - enum TabNum { FileManager = 0, Movies = 1, Pictures = 2 }; + enum TabNum { FileManager = 0, Movies = 1, Pictures = 2, ArchiveBrowserTab = 3 }; virtual ~SheMov() {} protected: @@ -149,6 +149,10 @@ class SheMov : public QMainWindow { QAction *mArchiveViewCollapseAllA; QActionGroup *mArchiveFilesAG; + //ArchiveBrowser + QAction *mArchiveBrowserViewMenuA; + QActionGroup *mArchiveBrowserAG; + //ArchiveFiles actions QAction *mArchiveMenuA; QAction *mArchiveFilesPlayA; @@ -175,6 +179,7 @@ class SheMov : public QMainWindow { QMenu *mFSViewMenu; QMenu *mPicViewMenu; QMenu *mArchiveViewMenu; + QMenu *mArchiveBrowserViewMenu; QAction *mEditFSMenuA; QAction *mEditPicMenuA; QAction *mViewFSMenuA; |