summaryrefslogtreecommitdiffstats
path: root/shemov.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'shemov.cpp')
-rw-r--r--shemov.cpp48
1 files changed, 48 insertions, 0 deletions
diff --git a/shemov.cpp b/shemov.cpp
index ec882e8..74b8ce1 100644
--- a/shemov.cpp
+++ b/shemov.cpp
@@ -28,11 +28,13 @@
#include <QFileSystemModel>
#include <QToolBar>
#include <QIcon>
+#include <QHeaderView>
#include <sys/vfs.h>
#include "shemov.h"
#include "filesystemwidget.h"
+#include "filestreewidget.h"
#include "fileview.h"
#include "configurationdialog.h"
#include "statisticsdialog.h"
@@ -103,6 +105,7 @@ SheMov::SheMov(QWidget *parent, Qt::WindowFlags flags) : QMainWindow(parent, fla
mFSWidget->readSettings();
readSettings();
mFSWidget->fileView()->setFocus(Qt::ActiveWindowFocusReason);
+ mATree->filesWidget()->filesTree()->header()->resizeSections(QHeaderView::ResizeToContents);
}
void SheMov::closeEvent(QCloseEvent *event){
@@ -166,6 +169,8 @@ void SheMov::tabChanged(int newTab){
mShowArchivedA->setEnabled(false);
mShowLocalA->setEnabled(false);
mShowNoCoverDialogA->setEnabled(false);
+ mFilesTreeHeadersGroup->setEnabled(false);
+ mTreeHeaderMenu->setEnabled(false);
}
if(newTab == 1){
setWindowTitle(mATree->windowTitle());
@@ -175,6 +180,8 @@ void SheMov::tabChanged(int newTab){
mShowArchivedA->setEnabled(true);
mShowLocalA->setEnabled(true);
mShowNoCoverDialogA->setEnabled(true);
+ mFilesTreeHeadersGroup->setEnabled(true);
+ mTreeHeaderMenu->setEnabled(true);
}
updateSelectionCount(QItemSelection(), QItemSelection());
}
@@ -418,6 +425,22 @@ void SheMov::createActions(){
mShowNoCoverDialogA = new QAction(QIcon(":/higheels.png"), tr("List movies without cover..."), this);
connect(mShowNoCoverDialogA, SIGNAL(triggered()), mATree, SLOT(showNoCoverDialog()));
+ //Tree view headers
+ FilesTreeModel *filesModel = static_cast<FilesTreeModel*>(SmGlobals::instance()->model("FilesModel"));
+ QHash<QString, int> headerData = filesModel->headerData();
+ QSignalMapper *headerMapper = new QSignalMapper(this);
+ mFilesTreeHeadersGroup = new QActionGroup(this);
+ mFilesTreeHeadersGroup->setExclusive(false);
+ for(QHash<QString, int>::const_iterator it = headerData.constBegin(); it != headerData.constEnd(); ++it){
+ QAction *a = new QAction(it.key(), this);
+ a->setCheckable(true);
+ a->setData(it.value());
+ mFilesTreeHeadersGroup->addAction(a);
+ headerMapper->setMapping(a, a);
+ connect(a, SIGNAL(triggered()), headerMapper, SLOT(map()));
+ }
+ connect(headerMapper, SIGNAL(mapped(QObject*)), mATree->filesWidget()->filesTree(), SLOT(toggleHeader(QObject*)));
+
//Tree FileWidget actions
mMoveToBurnA = new QAction(tr("Move to burn directory"), this);
connect(mMoveToBurnA, SIGNAL(triggered()), mATree->filesWidget(), SLOT(moveToBurn()));
@@ -514,6 +537,14 @@ void SheMov::createMenus(){
mTreeViewMenu->addAction(mShowLocalA);
mTreeViewMenu->addAction(mShowArchivedA);
menuBar()->addMenu(mTreeViewMenu);
+ QAction *sep14 = new QAction(this);
+ sep14->setSeparator(true);
+ mTreeViewMenu->addAction(sep14);
+ mTreeHeaderMenu = new QMenu(tr("Show headers"), this);
+ foreach(QAction *a, mFilesTreeHeadersGroup->actions()){
+ mTreeHeaderMenu->addAction(a);
+ }
+ mTreeViewMenu->addMenu(mTreeHeaderMenu);
QMenu *helpMenu = new QMenu(tr("&Help"), this);
helpMenu->addAction(mAboutShemovA);
@@ -691,6 +722,14 @@ void SheMov::writeSettings(){
s.setValue("ui/selectedtab", mTab->currentIndex());
FilesTreeModel *filesModel = static_cast<FilesTreeModel*>(SmGlobals::instance()->model("FilesModel"));
s.setValue("ui/filestreemode", filesModel->mode());
+ QList<QVariant> visibleHeaders;
+ foreach(QAction *a, mFilesTreeHeadersGroup->actions()){
+ if(a->isChecked()){
+ visibleHeaders << a->data();
+ }
+ }
+ s.setValue("ui/visibleheaders", visibleHeaders);
+ mATree->filesWidget()->filesTree()->writeHeaderConfig();
}
void SheMov::readSettings(){
@@ -736,6 +775,15 @@ void SheMov::readSettings(){
mMountDvdA->setChecked(false);
}
}
+ QList<QVariant> visibleHeadersDefault = QList<QVariant>() << 0 << 1 << 2 << 3 << 4 << 13;
+ QList<QVariant> visibleHeaders = s.value("ui/visibleheaders", visibleHeadersDefault).toList();
+ foreach(QVariant h, visibleHeaders){
+ foreach(QAction *a, mFilesTreeHeadersGroup->actions()){
+ if(a->data() == h){
+ a->trigger();
+ }
+ }
+ }
}
void SheMov::checkConsistency(){