diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/CMakeLists.txt | 4 | ||||
| -rw-r--r-- | src/dolphinmainwindow.cpp | 6 | ||||
| -rw-r--r-- | src/dolphinmainwindow.h | 2 | ||||
| -rw-r--r-- | src/dolphinpart.cpp | 6 | ||||
| -rw-r--r-- | src/dolphinpart.h | 2 | ||||
| -rw-r--r-- | src/dolphinpart.rc | 1 | ||||
| -rw-r--r-- | src/dolphinremoteencoding.cpp | 354 | ||||
| -rw-r--r-- | src/dolphinremoteencoding.h | 82 | ||||
| -rw-r--r-- | src/dolphinui.rc | 1 | ||||
| -rw-r--r-- | src/dolphinviewactionhandler.cpp | 12 | ||||
| -rw-r--r-- | src/dolphinviewactionhandler.h | 10 |
11 files changed, 254 insertions, 226 deletions
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 <config-nepomuk.h> @@ -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<ViewTab> m_viewTab; DolphinViewActionHandler* m_actionHandler; + DolphinRemoteEncoding* m_remoteEncoding; QPointer<DolphinSettingsDialog> 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 <konq_fileitemcapabilities.h> #include <konq_operations.h> @@ -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 @@ <Action name="find_file" /> <Action name="show_filter_bar" /> <Action name="compare_files" /> + <Action name="change_remote_encoding" /> </Menu> </MenuBar> <ToolBar name="mainToolBar"><text context="@title:menu">Dolphin Toolbar</text> 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 <[email protected]> - - 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 <[email protected]> +/*************************************************************************** + * Copyright (C) 2009 by Rahman Duran <[email protected]> * + * * + * 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 <[email protected]> * Distributed under the same terms. */ - -#include "kremoteencodingplugin.h" + +#include "dolphinremoteencoding.h" +#include "dolphinviewactionhandler.h" #include <kdebug.h> #include <kactionmenu.h> @@ -36,222 +36,206 @@ #include <kconfig.h> #include <kcharsets.h> #include <kmenu.h> -#include <kgenericfactory.h> #include <kprotocolinfo.h> #include <kprotocolmanager.h> #include <kio/slaveconfig.h> #include <kio/scheduler.h> -#include <kparts/browserextension.h> #include <kconfiggroup.h> -#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<KParts::ReadOnlyPart*>(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(); + 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.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(); + 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(); + + 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; + if (!m_loaded) { + loadSettings(); + } + + // 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); - kDebug() << "URL=" << m_currentURL << " charset=" << charset; + 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 (it == m_encodingDescriptions.constEnd()) - kWarning() << "could not find entry for charset=" << charset ; - else - m_menu->menu()->setItemChecked(id, true); + 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); } - else - m_menu->menu()->setItemChecked(m_idDefault, 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()); + // 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 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(); + 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; + while (partList.count()) { + if (partList.count() == 2) { + if (partList[0].length() <= 2 && partList[1].length() == 2) { + break; + } + } - if (partList.count() == 1) - break; + if (partList.count() == 1) { + break; + } - domains << partList.join("."); - partList.erase(partList.begin()); - } + 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 - } + 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 <[email protected]> +/*************************************************************************** + * Copyright (C) 2009 by Rahman Duran <[email protected]> * + * * + * 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 <QtCore/QStringList> +#include <QStringList> +#include <QtGui/QAction> #include <kurl.h> -#include <klibloader.h> -#include <kparts/plugin.h> + 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 @@ <Action name="show_filter_bar" /> <Action name="open_terminal" /> <Action name="compare_files" /> + <Action name="change_remote_encoding" /> </Menu> </MenuBar> <State name="new_file" > 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 <konq_operations.h> #include <kaction.h> @@ -32,6 +31,7 @@ #include <krun.h> #include <kpropertiesdialog.h> + 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: /** |
