diff options
Diffstat (limited to 'shemov.cpp')
-rw-r--r-- | shemov.cpp | 48 |
1 files changed, 48 insertions, 0 deletions
@@ -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(){ |