summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--archivebrowser.cpp16
-rw-r--r--archivebrowser.h3
-rw-r--r--shemov.cpp17
-rw-r--r--shemov.h7
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();
diff --git a/shemov.cpp b/shemov.cpp
index ff26204..b045120 100644
--- a/shemov.cpp
+++ b/shemov.cpp
@@ -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());
diff --git a/shemov.h b/shemov.h
index 58562c0..79bd03f 100644
--- a/shemov.h
+++ b/shemov.h
@@ -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;