From: Rahman Duran Date: Wed, 25 Mar 2009 22:00:50 +0000 (+0000) Subject: BUG: 175658 X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/commitdiff_plain/bd2f7179de1b42399b5f04ef65221e8e81250392 BUG: 175658 GUI: The remote encoding code adapted from Konqueror to Dolphin. Now user can change encoding for remote urls like ftp. Konqueror doesn't use KRemoteEncodingPlugin anymore. Instead, this feature is supplied to Konqueror via DolphinPart. svn path=/trunk/KDE/kdebase/apps/; revision=944659 --- diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index ed8fbe562..629adea88 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -29,7 +29,7 @@ set(dolphinprivate_LIB_SRCS dolphincategorydrawer.cpp dolphinview.cpp dolphinviewactionhandler.cpp - dolphinviewautoscroller.cpp + dolphinviewautoscroller.cpp draganddrophelper.cpp folderexpander.cpp renamedialog.cpp @@ -74,6 +74,7 @@ install(TARGETS dolphinprivate ${INSTALL_TARGETS_DEFAULT_ARGS}) set(dolphinpart_SRCS dolphinpart.cpp + dolphinremoteencoding.cpp ) @@ -89,6 +90,7 @@ install(FILES dolphinpart.desktop DESTINATION ${SERVICES_INSTALL_DIR} ) ########################################## set(dolphin_SRCS + dolphinremoteencoding.cpp dolphinapplication.cpp dolphinmainwindow.cpp dolphinnewmenu.cpp diff --git a/src/dolphinmainwindow.cpp b/src/dolphinmainwindow.cpp index 6e6d4cc12..c2939e59a 100644 --- a/src/dolphinmainwindow.cpp +++ b/src/dolphinmainwindow.cpp @@ -21,6 +21,7 @@ #include "dolphinmainwindow.h" #include "dolphinviewactionhandler.h" +#include "dolphinremoteencoding.h" #include @@ -113,6 +114,7 @@ DolphinMainWindow::DolphinMainWindow(int id) : m_tabIndex(0), m_viewTab(), m_actionHandler(0), + m_remoteEncoding(0), m_settingsDialog(0) { setObjectName("Dolphin#"); @@ -985,6 +987,10 @@ void DolphinMainWindow::init() view->reload(); m_activeViewContainer->show(); m_actionHandler->setCurrentView(view); + + m_remoteEncoding = new DolphinRemoteEncoding(this, m_actionHandler); + connect(this, SIGNAL(urlChanged(const KUrl&)), + m_remoteEncoding, SLOT(slotAboutToOpenUrl())); m_tabBar = new KTabBar(this); m_tabBar->setMovable(true); diff --git a/src/dolphinmainwindow.h b/src/dolphinmainwindow.h index 35fc57db4..77fc36b58 100644 --- a/src/dolphinmainwindow.h +++ b/src/dolphinmainwindow.h @@ -43,6 +43,7 @@ class DolphinApplication; class DolphinSearchBox; class DolphinSettingsDialog; class DolphinViewContainer; +class DolphinRemoteEncoding; class KNewMenu; class KTabBar; class KUrl; @@ -461,6 +462,7 @@ private: QList m_viewTab; DolphinViewActionHandler* m_actionHandler; + DolphinRemoteEncoding* m_remoteEncoding; QPointer m_settingsDialog; }; diff --git a/src/dolphinpart.cpp b/src/dolphinpart.cpp index c6076cc37..dd590efd5 100644 --- a/src/dolphinpart.cpp +++ b/src/dolphinpart.cpp @@ -23,6 +23,7 @@ #include "dolphinview.h" #include "dolphinmodel.h" #include "dolphinnewmenuobserver.h" +#include "dolphinremoteencoding.h" #include #include @@ -125,6 +126,10 @@ DolphinPart::DolphinPart(QWidget* parentWidget, QObject* parent, const QVariantL m_actionHandler = new DolphinViewActionHandler(actionCollection(), this); m_actionHandler->setCurrentView(m_view); + m_remoteEncoding = new DolphinRemoteEncoding(this, m_actionHandler); + connect(this, SIGNAL(aboutToOpenURL()), + m_remoteEncoding, SLOT(slotAboutToOpenUrl())); + QClipboard* clipboard = QApplication::clipboard(); connect(clipboard, SIGNAL(dataChanged()), this, SLOT(updatePasteAction())); @@ -137,6 +142,7 @@ DolphinPart::DolphinPart(QWidget* parentWidget, QObject* parent, const QVariantL // (sort of spacial navigation) loadPlugins(this, this, componentData()); + } DolphinPart::~DolphinPart() diff --git a/src/dolphinpart.h b/src/dolphinpart.h index a25bc72f3..e7198d45e 100644 --- a/src/dolphinpart.h +++ b/src/dolphinpart.h @@ -30,6 +30,7 @@ class KFileItemList; class KFileItem; class DolphinPartBrowserExtension; class DolphinSortFilterProxyModel; +class DolphinRemoteEncoding; class DolphinModel; class KDirLister; class DolphinView; @@ -206,6 +207,7 @@ private: private: DolphinView* m_view; DolphinViewActionHandler* m_actionHandler; + DolphinRemoteEncoding* m_remoteEncoding; KDirLister* m_dirLister; DolphinModel* m_dolphinModel; DolphinSortFilterProxyModel* m_proxyModel; diff --git a/src/dolphinpart.rc b/src/dolphinpart.rc index 19b606dd1..2ed6ea764 100644 --- a/src/dolphinpart.rc +++ b/src/dolphinpart.rc @@ -56,6 +56,7 @@ + Dolphin Toolbar diff --git a/src/dolphinremoteencoding.cpp b/src/dolphinremoteencoding.cpp index dc804a05a..397eaccc0 100644 --- a/src/dolphinremoteencoding.cpp +++ b/src/dolphinremoteencoding.cpp @@ -1,30 +1,30 @@ -/* - Copyright (c) 2003 Thiago Macieira - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License (LGPL) as published by the Free Software Foundation; - either version 2 of the License, or (at your option) any later - version. - - This library 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 - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public License - along with this library; see the file COPYING.LIB. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ - -/* - * This code is largely based on the UserAgent changer plugin (uachanger) - * Copyright © 2001 Dawit Alemayehu +/*************************************************************************** + * Copyright (C) 2009 by Rahman Duran * + * * + * 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 * + ***************************************************************************/ + + /* + * This code is largely based on the kremoteencodingplugin + * Copyright (c) 2003 Thiago Macieira * Distributed under the same terms. */ - -#include "kremoteencodingplugin.h" + +#include "dolphinremoteencoding.h" +#include "dolphinviewactionhandler.h" #include #include @@ -36,222 +36,206 @@ #include #include #include -#include #include #include #include #include -#include #include -#define DATA_KEY QLatin1String("Charset") +#define DATA_KEY QLatin1String("Charset") -KRemoteEncodingPlugin::KRemoteEncodingPlugin(QObject * parent, - const QStringList &) - : KParts::Plugin(parent), m_loaded(false), m_idDefault(0) +DolphinRemoteEncoding::DolphinRemoteEncoding(QObject* parent, DolphinViewActionHandler* actionHandler) + :QObject(parent), + m_actionHandler(actionHandler), + m_loaded(false), + m_idDefault(0) { - m_menu = new KActionMenu(KIcon("character-set"), i18n("Select Remote Charset"), this); - actionCollection()->addAction("changeremoteencoding", m_menu); - connect(m_menu->menu(), SIGNAL(aboutToShow()), - this, SLOT(slotAboutToShow())); - m_menu->setEnabled(false); - m_menu->setDelayed(false); + m_menu = new KActionMenu(KIcon("character-set"), i18n("Select Remote Charset"), this); + m_actionHandler->actionCollection()->addAction("change_remote_encoding", m_menu); + connect(m_menu->menu(), SIGNAL(aboutToShow()), + this, SLOT(slotAboutToShow())); - m_part = qobject_cast(parent); - if (m_part) { - // if parent is not a part, our menu will never show - connect(m_part, SIGNAL(aboutToOpenURL()), - this, SLOT(slotAboutToOpenURL())); - m_part->installEventFilter(this); - } + m_menu->setEnabled(false); + m_menu->setDelayed(false); } -KRemoteEncodingPlugin::~KRemoteEncodingPlugin() +DolphinRemoteEncoding::~DolphinRemoteEncoding() { } -void -KRemoteEncodingPlugin::slotReload() +void DolphinRemoteEncoding::slotReload() { - loadSettings(); + loadSettings(); } -void -KRemoteEncodingPlugin::loadSettings() +void DolphinRemoteEncoding::loadSettings() { - m_loaded = true; - - m_encodingDescriptions = KGlobal::charsets()->descriptiveEncodingNames(); + m_loaded = true; + m_encodingDescriptions = KGlobal::charsets()->descriptiveEncodingNames(); - fillMenu(); + fillMenu(); } -void -KRemoteEncodingPlugin::slotAboutToOpenURL() +void DolphinRemoteEncoding::slotAboutToOpenUrl() { - KUrl oldURL = m_currentURL; - m_currentURL = m_part->url(); - - if (m_currentURL.protocol() != oldURL.protocol()) - { - // This plugin works on ftp, fish, etc. - // everything whose type is T_FILESYSTEM except for local files - if (!m_currentURL.isLocalFile() && - KProtocolManager::outputType(m_currentURL) == KProtocolInfo::T_FILESYSTEM) - { - m_menu->setEnabled(true); - loadSettings(); - } - else - m_menu->setEnabled(false); - - return; + KUrl oldURL = m_currentURL; + m_currentURL = m_actionHandler->currentView()->url(); + + if (m_currentURL.protocol() != oldURL.protocol()) { + // This plugin works on ftp, fish, etc. + // everything whose type is T_FILESYSTEM except for local files + if (!m_currentURL.isLocalFile() && + KProtocolManager::outputType(m_currentURL) == KProtocolInfo::T_FILESYSTEM) { + + m_menu->setEnabled(true); + loadSettings(); + } else { + m_menu->setEnabled(false); + } + return; } - if (m_currentURL.host() != oldURL.host()) - updateMenu(); + if (m_currentURL.host() != oldURL.host()) { + updateMenu(); + } } -void -KRemoteEncodingPlugin::fillMenu() +void DolphinRemoteEncoding::fillMenu() { - KMenu *menu = m_menu->menu(); - menu->clear(); - - QStringList::ConstIterator it; - int count = 0; - for (it = m_encodingDescriptions.constBegin(); it != m_encodingDescriptions.constEnd(); ++it) - menu->insertItem(*it, this, SLOT(slotItemSelected(int)), 0, ++count); - menu->addSeparator(); + KMenu* menu = m_menu->menu(); + menu->clear(); + + + for (int i = 0; i < m_encodingDescriptions.size();i++) { + QAction* action = new QAction(m_encodingDescriptions.at(i), this); + action->setCheckable(true); + action->setData(i); + menu->addAction(action); + } + menu->addSeparator(); - menu->insertItem(i18n("Reload"), this, SLOT(slotReload()), 0, ++count); - menu->insertItem(i18n("Default"), this, SLOT(slotDefault()), 0, ++count); - m_idDefault = count; + menu->addAction(i18n("Reload"), this, SLOT(slotReload()), 0); + menu->addAction(i18n("Default"), this, SLOT(slotDefault()), 0)->setCheckable(true); + m_idDefault = m_encodingDescriptions.size() + 2; + + connect(menu, SIGNAL(triggered(QAction*)), this, SLOT(slotItemSelected(QAction*))); } -void -KRemoteEncodingPlugin::updateMenu() +void DolphinRemoteEncoding::updateMenu() { - if (!m_loaded) - loadSettings(); - - // uncheck everything - for (unsigned i = 0; i < m_menu->menu()->actions().count(); i++) - m_menu->menu()->setItemChecked(m_menu->menu()->idAt(i), false); - - QString charset = KIO::SlaveConfig::self()->configData(m_currentURL.protocol(), m_currentURL.host(), - DATA_KEY); - if (!charset.isEmpty()) - { - int id = 1; - QStringList::const_iterator it; - for (it = m_encodingDescriptions.constBegin(); it != m_encodingDescriptions.constEnd(); ++it, ++id) - if ((*it).indexOf(charset) != -1) - break; - - kDebug() << "URL=" << m_currentURL << " charset=" << charset; - - if (it == m_encodingDescriptions.constEnd()) - kWarning() << "could not find entry for charset=" << charset ; - else - m_menu->menu()->setItemChecked(id, true); + if (!m_loaded) { + loadSettings(); } - else - m_menu->menu()->setItemChecked(m_idDefault, true); + + // uncheck everything + for (int i = 0; i < m_menu->menu()->actions().count(); i++) { + m_menu->menu()->actions().at(i)->setChecked(false); + } + + QString charset = KIO::SlaveConfig::self()->configData(m_currentURL.protocol(), + m_currentURL.host(), DATA_KEY); + + if (!charset.isEmpty()) { + int id = 0; + bool isFound = false; + for (int i = 0; i < m_encodingDescriptions.size(); i++) { + if (m_encodingDescriptions.at(i).contains(charset)) { + isFound = true; + id = i; + break; + } + } + + kDebug() << "URL=" << m_currentURL << " charset=" << charset; + + if (!isFound) { + kWarning() << "could not find entry for charset=" << charset ; + } else { + m_menu->menu()->actions().at(id)->setChecked(true); + } + } else { + m_menu->menu()->actions().at(m_idDefault)->setChecked(true); + } + } -void -KRemoteEncodingPlugin::slotAboutToShow() +void DolphinRemoteEncoding::slotAboutToShow() { - if (!m_loaded) - loadSettings(); - updateMenu(); + if (!m_loaded) { + loadSettings(); + } + updateMenu(); } -void -KRemoteEncodingPlugin::slotItemSelected(int id) +void DolphinRemoteEncoding::slotItemSelected(QAction* action) { - KConfig config(("kio_" + m_currentURL.protocol() + "rc").toLatin1()); - QString host = m_currentURL.host(); - if ( m_menu->menu()->isItemChecked(id) ) - { - QString charset = KGlobal::charsets()->encodingForName(m_encodingDescriptions[id - 1]); - KConfigGroup cg(&config, host); - cg.writeEntry(DATA_KEY, charset); - config.sync(); - // Update the io-slaves... - updateBrowser(); + if (action != 0) { + int id = action->data().toInt(); + + KConfig config(("kio_" + m_currentURL.protocol() + "rc").toLatin1()); + QString host = m_currentURL.host(); + if (m_menu->menu()->actions().at(id)->isChecked()) { + QString charset = KGlobal::charsets()->encodingForName(m_encodingDescriptions.at(id)); + KConfigGroup cg(&config, host); + cg.writeEntry(DATA_KEY, charset); + config.sync(); + + // Update the io-slaves... + updateView(); + } } } -void -KRemoteEncodingPlugin::slotDefault() +void DolphinRemoteEncoding::slotDefault() { - // We have no choice but delete all higher domain level - // settings here since it affects what will be matched. - KConfig config(("kio_" + m_currentURL.protocol() + "rc").toLatin1()); - - QStringList partList = m_currentURL.host().split('.', QString::SkipEmptyParts); - if (!partList.isEmpty()) - { - partList.erase(partList.begin()); - - QStringList domains; - // Remove the exact name match... - domains << m_currentURL.host(); - - while (partList.count()) - { - if (partList.count() == 2) - if (partList[0].length() <= 2 && partList[1].length() == 2) - break; - - if (partList.count() == 1) - break; - - domains << partList.join("."); - partList.erase(partList.begin()); - } + // We have no choice but delete all higher domain level + // settings here since it affects what will be matched. + KConfig config(("kio_" + m_currentURL.protocol() + "rc").toLatin1()); - for (QStringList::const_iterator it = domains.constBegin(); it != domains.constEnd(); - ++it) - { - kDebug() << "Domain to remove: " << *it; - if (config.hasGroup(*it)) - config.deleteGroup(*it); - else if (config.group("").hasKey(*it)) - config.group("").deleteEntry(*it); //don't know what group name is supposed to be XXX - } + QStringList partList = m_currentURL.host().split('.', QString::SkipEmptyParts); + if (!partList.isEmpty()) { + partList.erase(partList.begin()); + + QStringList domains; + // Remove the exact name match... + domains << m_currentURL.host(); + + while (partList.count()) { + if (partList.count() == 2) { + if (partList[0].length() <= 2 && partList[1].length() == 2) { + break; + } + } + + if (partList.count() == 1) { + break; + } + + domains << partList.join("."); + partList.erase(partList.begin()); + } + + for (QStringList::const_iterator it = domains.constBegin(); it != domains.constEnd();++it) { + kDebug() << "Domain to remove: " << *it; + if (config.hasGroup(*it)) { + config.deleteGroup(*it); + } else if (config.group("").hasKey(*it)) { + config.group("").deleteEntry(*it); //don't know what group name is supposed to be XXX + } + } } - config.sync(); - - // Update the io-slaves. - updateBrowser(); -} + config.sync(); -void -KRemoteEncodingPlugin::updateBrowser() -{ - KIO::Scheduler::emitReparseSlaveConfiguration(); - // Reload the page with the new charset - KParts::OpenUrlArguments args = m_part->arguments(); - args.setReload( true ); - m_part->setArguments( args ); - m_part->openUrl(m_currentURL); + // Update the io-slaves. + updateView(); } -bool KRemoteEncodingPlugin::eventFilter(QObject*obj, QEvent *ev) +void DolphinRemoteEncoding::updateView() { - if (obj == m_part && KParts::OpenUrlEvent::test(ev)) { - const QString mimeType = m_part->arguments().mimeType(); - if (!mimeType.isEmpty() && KMimeType::mimeType(mimeType)->is("inode/directory")) - slotAboutToOpenURL(); - } - return KParts::Plugin::eventFilter(obj, ev); + KIO::Scheduler::emitReparseSlaveConfiguration(); + // Reload the page with the new charset + m_actionHandler->currentView()->setUrl(m_currentURL); + m_actionHandler->currentView()->reload(); } -typedef KGenericFactory < KRemoteEncodingPlugin > KRemoteEncodingPluginFactory; -K_EXPORT_COMPONENT_FACTORY(konq_remoteencoding, - KRemoteEncodingPluginFactory("kremoteencodingplugin")) - -#include "kremoteencodingplugin.moc" +#include "dolphinremoteencoding.moc" diff --git a/src/dolphinremoteencoding.h b/src/dolphinremoteencoding.h index a61d1fee1..97b6f8b60 100644 --- a/src/dolphinremoteencoding.h +++ b/src/dolphinremoteencoding.h @@ -1,61 +1,65 @@ -/* - Copyright (c) 2003 Thiago Macieira +/*************************************************************************** + * Copyright (C) 2009 by Rahman Duran * + * * + * 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 * + ***************************************************************************/ - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License (LGPL) as published by the Free Software Foundation; - either version 2 of the License, or (at your option) any later - version. +#ifndef DOLPHINREMOTEENCODING_H +#define DOLPHINREMOTEENCODING_H - This library 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 - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public License - along with this library; see the file COPYING.LIB. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ - -#ifndef REMOTEENCODING_PLUGIN_H -#define REMOTEENCODING_PLUGIN_H - -#include +#include +#include #include -#include -#include + class KActionMenu; -namespace KParts { class ReadOnlyPart; } +class DolphinViewActionHandler; + +/** + * @brief Allows to chnage character encoding for remote urls like ftp. + * + * When browsing remote url, its possible to change encoding from Tools Menu. + */ -class KRemoteEncodingPlugin: public KParts::Plugin +class DolphinRemoteEncoding: public QObject { Q_OBJECT public: - KRemoteEncodingPlugin(QObject * parent, const QStringList &); - ~KRemoteEncodingPlugin(); + DolphinRemoteEncoding(QObject* parent, DolphinViewActionHandler* actionHandler); + ~DolphinRemoteEncoding(); -protected Q_SLOTS: - void slotAboutToOpenURL(); - void slotAboutToShow(); - void slotItemSelected(int); +public Q_SLOTS: + void slotAboutToOpenUrl(); + void slotItemSelected(QAction* action); void slotReload(); void slotDefault(); - -protected: - virtual bool eventFilter(QObject*obj, QEvent *ev); - + +private Q_SLOTS: + void slotAboutToShow(); + private: - void updateBrowser(); + void updateView(); void loadSettings(); void fillMenu(); void updateMenu(); - KParts::ReadOnlyPart *m_part; - KActionMenu *m_menu; + KActionMenu* m_menu; QStringList m_encodingDescriptions; KUrl m_currentURL; + DolphinViewActionHandler* m_actionHandler; bool m_loaded; int m_idDefault; diff --git a/src/dolphinui.rc b/src/dolphinui.rc index 8d89b07c8..05dfd3abb 100644 --- a/src/dolphinui.rc +++ b/src/dolphinui.rc @@ -78,6 +78,7 @@ + diff --git a/src/dolphinviewactionhandler.cpp b/src/dolphinviewactionhandler.cpp index 748856275..404c6eae0 100644 --- a/src/dolphinviewactionhandler.cpp +++ b/src/dolphinviewactionhandler.cpp @@ -22,7 +22,6 @@ #include "settings/viewpropertiesdialog.h" #include "dolphinview.h" #include "zoomlevelinfo.h" - #include #include @@ -32,6 +31,7 @@ #include #include + DolphinViewActionHandler::DolphinViewActionHandler(KActionCollection* collection, QObject* parent) : QObject(parent), m_actionCollection(collection), @@ -68,6 +68,11 @@ void DolphinViewActionHandler::setCurrentView(DolphinView* view) this, SLOT(slotZoomLevelChanged(int))); } +DolphinView* DolphinViewActionHandler::currentView() +{ + return m_currentView; +} + void DolphinViewActionHandler::createActions() { // This action doesn't appear in the GUI, it's for the shortcut only. @@ -340,6 +345,11 @@ QString DolphinViewActionHandler::currentViewModeActionName() const return QString(); // can't happen } +KActionCollection* DolphinViewActionHandler::actionCollection() +{ + return m_actionCollection; +} + void DolphinViewActionHandler::updateViewActions() { QAction* viewModeAction = m_actionCollection->action(currentViewModeActionName()); diff --git a/src/dolphinviewactionhandler.h b/src/dolphinviewactionhandler.h index ad56518c4..18305d19f 100644 --- a/src/dolphinviewactionhandler.h +++ b/src/dolphinviewactionhandler.h @@ -55,11 +55,21 @@ public: * Sets the view that this action handler should work on. */ void setCurrentView(DolphinView* view); + + /** + * Returns the view that this action handler should work on. + */ + DolphinView* currentView(); /** * Returns the name of the action for the current viewmode */ QString currentViewModeActionName() const; + + /** + * Returns m_actionCollection + */ + KActionCollection* actionCollection(); public Q_SLOTS: /**