┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/viewextensionsfactory.cpp
diff options
context:
space:
mode:
authorPeter Penz <[email protected]>2009-08-29 11:36:22 +0000
committerPeter Penz <[email protected]>2009-08-29 11:36:22 +0000
commit95f0ba76ae26e45a6ff9f1ec51db7d270ca278c0 (patch)
tree53e19752852ded3c61f4c1c51b56790642a6f1d2 /src/viewextensionsfactory.cpp
parent69686ffbba123f2b05f5cb7b74a927953e5157a5 (diff)
move handling of SelectionManager and AutoScroller to ViewExtensionsFactory
svn path=/trunk/KDE/kdebase/apps/; revision=1016927
Diffstat (limited to 'src/viewextensionsfactory.cpp')
-rw-r--r--src/viewextensionsfactory.cpp54
1 files changed, 50 insertions, 4 deletions
diff --git a/src/viewextensionsfactory.cpp b/src/viewextensionsfactory.cpp
index 91f9ff466..b4b37983b 100644
--- a/src/viewextensionsfactory.cpp
+++ b/src/viewextensionsfactory.cpp
@@ -22,6 +22,8 @@
#include "dolphincontroller.h"
#include "dolphinsortfilterproxymodel.h"
#include "dolphinview.h"
+#include "dolphinviewautoscroller.h"
+#include "selectionmanager.h"
#include "settings/dolphinsettings.h"
#include "tooltips/tooltipmanager.h"
@@ -35,9 +37,14 @@ ViewExtensionsFactory::ViewExtensionsFactory(QAbstractItemView* view,
QObject(view),
m_controller(controller),
m_toolTipManager(0),
- m_previewGenerator(0)
+ m_previewGenerator(0),
+ m_selectionManager(0),
+ m_autoScroller(0)
{
- if (DolphinSettings::instance().generalSettings()->showToolTips()) {
+ GeneralSettings* settings = DolphinSettings::instance().generalSettings();
+
+ // initialize tooltips
+ if (settings->showToolTips()) {
DolphinSortFilterProxyModel* proxyModel = static_cast<DolphinSortFilterProxyModel*>(view->model());
m_toolTipManager = new ToolTipManager(view, proxyModel);
@@ -45,23 +52,57 @@ ViewExtensionsFactory::ViewExtensionsFactory(QAbstractItemView* view,
m_toolTipManager, SLOT(hideTip()));
}
+ // initialize preview generator
m_previewGenerator = new KFilePreviewGenerator(view);
m_previewGenerator->setPreviewShown(controller->dolphinView()->showPreview());
connect(controller, SIGNAL(zoomLevelChanged(int)),
- this, SLOT(updateIcons()));
+ this, SLOT(slotZoomLevelChanged()));
connect(controller, SIGNAL(cancelPreviews()),
this, SLOT(cancelPreviews()));
connect(controller->dolphinView(), SIGNAL(showPreviewChanged()),
this, SLOT(slotShowPreviewChanged()));
+
+ // initialize selection manager
+ if (settings->showSelectionToggle()) {
+ m_selectionManager = new SelectionManager(view);
+ connect(m_selectionManager, SIGNAL(selectionChanged()),
+ this, SLOT(requestActivation()));
+ connect(controller, SIGNAL(urlChanged(const KUrl&)),
+ m_selectionManager, SLOT(reset()));
+ }
+
+ // initialize auto scroller
+ m_autoScroller = new DolphinViewAutoScroller(view);
+ connect(controller, SIGNAL(currentIndexChanged(QModelIndex, QModelIndex)),
+ m_autoScroller, SLOT(handleCurrentIndexChanged(QModelIndex, QModelIndex)));
+
+ view->viewport()->installEventFilter(this);
}
ViewExtensionsFactory::~ViewExtensionsFactory()
{
}
-void ViewExtensionsFactory::updateIcons()
+void ViewExtensionsFactory::handleCurrentIndexChange(const QModelIndex& current, const QModelIndex& previous)
+{
+ m_autoScroller->handleCurrentIndexChange(current, previous);
+}
+
+bool ViewExtensionsFactory::eventFilter(QObject* watched, QEvent* event)
+{
+ Q_UNUSED(watched);
+ if ((event->type() == QEvent::Wheel) && (m_selectionManager != 0)) {
+ m_selectionManager->reset();
+ }
+ return false;
+}
+
+void ViewExtensionsFactory::slotZoomLevelChanged()
{
m_previewGenerator->updateIcons();
+ if (m_selectionManager != 0) {
+ m_selectionManager->reset();
+ }
}
void ViewExtensionsFactory::cancelPreviews()
@@ -75,5 +116,10 @@ void ViewExtensionsFactory::slotShowPreviewChanged()
m_previewGenerator->setPreviewShown(show);
}
+void ViewExtensionsFactory::requestActivation()
+{
+ m_controller->requestActivation();
+}
+
#include "viewextensionsfactory.moc"