X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/60bd873e9f42d22f2d4dae8d1ed43ebbc23c600f..50eaec7a81faaeccc5dbcc2f47cbd982a7dd7207:/src/dolphinpart.cpp diff --git a/src/dolphinpart.cpp b/src/dolphinpart.cpp index 8720e0ce2..d1626e55d 100644 --- a/src/dolphinpart.cpp +++ b/src/dolphinpart.cpp @@ -45,17 +45,18 @@ #include "views/dolphinviewactionhandler.h" #include "views/dolphinnewfilemenuobserver.h" #include "views/dolphinremoteencoding.h" -#include "views/dolphindirlister.h" #include #include #include +#include K_PLUGIN_FACTORY(DolphinPartFactory, registerPlugin();) K_EXPORT_PLUGIN(DolphinPartFactory("dolphinpart", "dolphin")) DolphinPart::DolphinPart(QWidget* parentWidget, QObject* parent, const QVariantList& args) : KParts::ReadOnlyPart(parent) + ,m_openTerminalAction(0) { Q_UNUSED(args) setComponentData(DolphinPartFactory::componentData(), false); @@ -69,8 +70,8 @@ DolphinPart::DolphinPart(QWidget* parentWidget, QObject* parent, const QVariantL m_view->setTabsForFilesEnabled(true); setWidget(m_view); - connect(m_view, SIGNAL(finishedPathLoading(KUrl)), this, SLOT(slotCompleted(KUrl))); - connect(m_view, SIGNAL(pathLoadingProgress(int)), this, SLOT(updateProgress(int))); + connect(m_view, SIGNAL(directoryLoadingCompleted()), this, SIGNAL(completed())); + connect(m_view, SIGNAL(directoryLoadingProgress(int)), this, SLOT(updateProgress(int))); connect(m_view, SIGNAL(errorMessage(QString)), this, SLOT(slotErrorMessage(QString))); setXMLFile("dolphinpart.rc"); @@ -96,7 +97,7 @@ DolphinPart::DolphinPart(QWidget* parentWidget, QObject* parent, const QVariantL connect(m_view, SIGNAL(modeChanged(DolphinView::Mode,DolphinView::Mode)), this, SIGNAL(viewModeChanged())); // relay signal connect(m_view, SIGNAL(redirection(KUrl,KUrl)), - this, SLOT(slotRedirection(KUrl,KUrl))); + this, SLOT(slotDirectoryRedirection(KUrl,KUrl))); // Watch for changes that should result in updates to the // status bar text. @@ -190,18 +191,18 @@ void DolphinPart::createActions() goActionGroup); // Tools menu - KAction* findFile = actionCollection()->addAction("find_file"); - findFile->setText(i18nc("@action:inmenu Tools", "Find File...")); - findFile->setShortcut(Qt::CTRL | Qt::Key_F); - findFile->setIcon(KIcon("edit-find")); - connect(findFile, SIGNAL(triggered()), this, SLOT(slotFindFile())); + m_findFileAction = actionCollection()->addAction("find_file"); + m_findFileAction->setText(i18nc("@action:inmenu Tools", "Find File...")); + m_findFileAction->setShortcut(Qt::CTRL | Qt::Key_F); + m_findFileAction->setIcon(KIcon("edit-find")); + connect(m_findFileAction, SIGNAL(triggered()), this, SLOT(slotFindFile())); if (KAuthorized::authorizeKAction("shell_access")) { - KAction* action = actionCollection()->addAction("open_terminal"); - action->setIcon(KIcon("utilities-terminal")); - action->setText(i18nc("@action:inmenu Tools", "Open &Terminal")); - connect(action, SIGNAL(triggered()), SLOT(slotOpenTerminal())); - action->setShortcut(Qt::Key_F4); + m_openTerminalAction = actionCollection()->addAction("open_terminal"); + m_openTerminalAction->setIcon(KIcon("utilities-terminal")); + m_openTerminalAction->setText(i18nc("@action:inmenu Tools", "Open &Terminal")); + connect(m_openTerminalAction, SIGNAL(triggered()), SLOT(slotOpenTerminal())); + m_openTerminalAction->setShortcut(Qt::Key_F4); } } @@ -296,15 +297,16 @@ bool DolphinPart::openUrl(const KUrl& url) emit aboutToOpenURL(); if (reload) m_view->reload(); + // Disable "Find File" and "Open Terminal" actions for non-file URLs, + // e.g. ftp, smb, etc. #279283 + const bool isLocalUrl = url.isLocalFile(); + m_findFileAction->setEnabled(isLocalUrl); + if (m_openTerminalAction) { + m_openTerminalAction->setEnabled(isLocalUrl); + } return true; } -void DolphinPart::slotCompleted(const KUrl& url) -{ - Q_UNUSED(url) - emit completed(); -} - void DolphinPart::slotMessage(const QString& msg) { emit setStatusBarText(msg); @@ -437,7 +439,7 @@ void DolphinPart::slotOpenContextMenu(const QPoint& pos, actionGroups); } -void DolphinPart::slotRedirection(const KUrl& oldUrl, const KUrl& newUrl) +void DolphinPart::slotDirectoryRedirection(const KUrl& oldUrl, const KUrl& newUrl) { //kDebug() << oldUrl << newUrl << "currentUrl=" << url(); if (oldUrl.equals(url(), KUrl::CompareWithoutTrailingSlash /* #207572 */)) { @@ -477,7 +479,7 @@ void DolphinPart::openSelectionDialog(const QString& title, const QString& text, if (okClicked && !pattern.isEmpty()) { QRegExp patternRegExp(pattern, Qt::CaseSensitive, QRegExp::Wildcard); - m_view->setItemSelectionEnabled(patternRegExp, selectItems); + m_view->selectItems(patternRegExp, selectItems); } } @@ -608,7 +610,7 @@ DolphinPart* DolphinPartFileInfoExtension::part() const bool DolphinPartFileInfoExtension::hasSelection() const { - return part()->view()->hasSelection(); + return part()->view()->selectedItemsCount() > 0; } KParts::FileInfoExtension::QueryModes DolphinPartFileInfoExtension::supportedQueryModes() const