diff options
Diffstat (limited to 'src/frontend/btbookshelfdockwidget.cpp')
-rw-r--r-- | src/frontend/btbookshelfdockwidget.cpp | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/src/frontend/btbookshelfdockwidget.cpp b/src/frontend/btbookshelfdockwidget.cpp index 9c6877d..bedebcb 100644 --- a/src/frontend/btbookshelfdockwidget.cpp +++ b/src/frontend/btbookshelfdockwidget.cpp @@ -26,7 +26,7 @@ #include <QVBoxLayout> #include "backend/bookshelfmodel/btbookshelfmodel.h" #include "backend/bookshelfmodel/btbookshelftreemodel.h" -#include "backend/bookshelfmodel/btcheckstatefilterproxymodel.h" +#include "backend/bookshelfmodel/btmodulehiddenfilterproxymodel.h" #include "backend/bookshelfmodel/btmodulenamefilterproxymodel.h" #include "backend/config/cbtconfig.h" #include "backend/drivers/cswordmoduleinfo.h" @@ -35,7 +35,8 @@ #include "frontend/mainindex/btbookshelfview.h" #include "util/cpointers.h" #include "util/cresmgr.h" -#include "util/directoryutil.h" +#include "util/directory.h" + BtBookshelfDockWidget::BtBookshelfDockWidget(QWidget *parent, Qt::WindowFlags f) : QDockWidget(parent, f) { @@ -49,16 +50,16 @@ BtBookshelfDockWidget::BtBookshelfDockWidget(QWidget *parent, Qt::WindowFlags f) QVariant v(settings->value("grouping")); if (v.canConvert<BtBookshelfTreeModel::Grouping>()) { m_bookshelfTreeModel = new BtBookshelfTreeModel(v.value<BtBookshelfTreeModel::Grouping>(), this); - } else { + } + else { m_bookshelfTreeModel = new BtBookshelfTreeModel(this); } } settings->endGroup(); - m_bookshelfTreeModel->setDefaultChecked(true); + m_bookshelfTreeModel->setDefaultChecked(BtBookshelfTreeModel::MODULE_HIDDEN); m_bookshelfTreeModel->setSourceModel(CPointers::backend()->model()); - m_filterProxyModel = new BtCheckStateFilterProxyModel(this); - m_filterProxyModel->setFilterRole(BtBookshelfTreeModel::CheckStateRole); + m_filterProxyModel = new BtModuleHiddenFilterProxyModel(this); m_filterProxyModel->setSourceModel(m_bookshelfTreeModel); m_nameFilterProxyModel = new BtModuleNameFilterProxyModel(this); m_nameFilterProxyModel->setSourceModel(m_filterProxyModel); @@ -71,6 +72,8 @@ BtBookshelfDockWidget::BtBookshelfDockWidget(QWidget *parent, Qt::WindowFlags f) QVBoxLayout *layout(new QVBoxLayout); layout->setContentsMargins(0, 0, 0, 0); QHBoxLayout *toolBar(new QHBoxLayout); + // Add a small margin between the edge of the window and the label (looks better) + toolBar->setContentsMargins(3,0,0,0); m_nameFilterLabel = new QLabel(this); toolBar->addWidget(m_nameFilterLabel); @@ -107,6 +110,8 @@ BtBookshelfDockWidget::BtBookshelfDockWidget(QWidget *parent, Qt::WindowFlags f) this, SLOT(showItemContextMenu(CSwordModuleInfo*, QPoint))); connect(m_view, SIGNAL(moduleActivated(CSwordModuleInfo*)), this, SIGNAL(moduleOpenTriggered(CSwordModuleInfo*))); + connect(m_bookshelfTreeModel, SIGNAL(moduleChecked(CSwordModuleInfo*,bool)), + this, SLOT(moduleChecked(CSwordModuleInfo*,bool))); retranslateInterface(); } @@ -130,7 +135,7 @@ bool BtBookshelfDockWidget::eventFilter(QObject *object, QEvent *event) { } void BtBookshelfDockWidget::initMenus() { - typedef util::filesystem::DirectoryUtil DU; + namespace DU = util::directory; namespace RM = CResMgr::mainIndex; m_contextMenu = new QMenu(this); @@ -235,6 +240,10 @@ void BtBookshelfDockWidget::retranslateInterface() { m_itemAboutAction->setText(tr("&About...")); } +void BtBookshelfDockWidget::moduleChecked(CSwordModuleInfo *module, bool c) { + module->setHidden(!c); +} + void BtBookshelfDockWidget::showContextMenu(QPoint pos) { m_contextMenu->popup(pos); } |