summaryrefslogtreecommitdiff
path: root/src/frontend/btbookshelfdockwidget.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/frontend/btbookshelfdockwidget.cpp')
-rw-r--r--src/frontend/btbookshelfdockwidget.cpp23
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);
}