From c05395ef9a6f449bd96b4323d308b53d70cede99 Mon Sep 17 00:00:00 2001 From: Peter Penz Date: Sat, 29 Aug 2009 09:42:21 +0000 Subject: Move code for initializing and handling view extensions to the new class ViewExtensionsFactory. Beside making DolphinView less complex this will allow the column view to share the view extension code instead of (partly) duplicating it as it has been done before. Currently only the tooltips- and filepreview-handling have been moved into ViewExtensionsFactory, a further cleanup will be done later. svn path=/trunk/KDE/kdebase/apps/; revision=1016893 --- src/viewextensionsfactory.cpp | 79 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 src/viewextensionsfactory.cpp (limited to 'src/viewextensionsfactory.cpp') diff --git a/src/viewextensionsfactory.cpp b/src/viewextensionsfactory.cpp new file mode 100644 index 000000000..91f9ff466 --- /dev/null +++ b/src/viewextensionsfactory.cpp @@ -0,0 +1,79 @@ +/*************************************************************************** + * Copyright (C) 2009 by Peter Penz * + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the * + * Free Software Foundation, Inc., * + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * + ***************************************************************************/ + +#include "viewextensionsfactory.h" + +#include "dolphincontroller.h" +#include "dolphinsortfilterproxymodel.h" +#include "dolphinview.h" +#include "settings/dolphinsettings.h" +#include "tooltips/tooltipmanager.h" + +#include "dolphin_generalsettings.h" + +#include +#include + +ViewExtensionsFactory::ViewExtensionsFactory(QAbstractItemView* view, + DolphinController* controller) : + QObject(view), + m_controller(controller), + m_toolTipManager(0), + m_previewGenerator(0) +{ + if (DolphinSettings::instance().generalSettings()->showToolTips()) { + DolphinSortFilterProxyModel* proxyModel = static_cast(view->model()); + m_toolTipManager = new ToolTipManager(view, proxyModel); + + connect(controller, SIGNAL(hideToolTip()), + m_toolTipManager, SLOT(hideTip())); + } + + m_previewGenerator = new KFilePreviewGenerator(view); + m_previewGenerator->setPreviewShown(controller->dolphinView()->showPreview()); + connect(controller, SIGNAL(zoomLevelChanged(int)), + this, SLOT(updateIcons())); + connect(controller, SIGNAL(cancelPreviews()), + this, SLOT(cancelPreviews())); + connect(controller->dolphinView(), SIGNAL(showPreviewChanged()), + this, SLOT(slotShowPreviewChanged())); +} + +ViewExtensionsFactory::~ViewExtensionsFactory() +{ +} + +void ViewExtensionsFactory::updateIcons() +{ + m_previewGenerator->updateIcons(); +} + +void ViewExtensionsFactory::cancelPreviews() +{ + m_previewGenerator->cancelPreviews(); +} + +void ViewExtensionsFactory::slotShowPreviewChanged() +{ + const bool show = m_controller->dolphinView()->showPreview(); + m_previewGenerator->setPreviewShown(show); +} + +#include "viewextensionsfactory.moc" + -- cgit v1.3