[Baloo Runner] Allow opening parent folder

Since the "Open file manager window job" is not yet finished, this only opens the folder
without highlighting the actual file which will hopefully be added in Plasma 5.7

BUG: 340302
FIXED-IN: 5.6.0

Differential Revision: https://phabricator.kde.org/D904
wilder-5.14
Kai Uwe Broulik 10 years ago
parent 4abb289daf
commit a18be0a6e6
  1. 22
      runners/baloo/baloosearchrunner.cpp
  2. 1
      runners/baloo/baloosearchrunner.h

@ -21,6 +21,7 @@
#include "baloosearchrunner.h" #include "baloosearchrunner.h"
#include <QAction>
#include <QIcon> #include <QIcon>
#include <QDir> #include <QDir>
#include <KRun> #include <KRun>
@ -170,9 +171,30 @@ void SearchRunner::match(Plasma::RunnerContext& context)
void SearchRunner::run(const Plasma::RunnerContext&, const Plasma::QueryMatch& match) void SearchRunner::run(const Plasma::RunnerContext&, const Plasma::QueryMatch& match)
{ {
const QUrl url = match.data().toUrl(); const QUrl url = match.data().toUrl();
if (match.selectedAction()) {
if (match.selectedAction()->data().toString() == QLatin1String("openParentDir")) {
new KRun(url.adjusted(QUrl::RemoveFilename), nullptr);
return;
}
}
new KRun(url, 0); new KRun(url, 0);
} }
QList<QAction *> SearchRunner::actionsForMatch(const Plasma::QueryMatch &match)
{
Q_UNUSED(match)
const QString openParentDirId = QStringLiteral("openParentDir");
if (!action(openParentDirId)) {
(addAction(openParentDirId, QIcon::fromTheme(QStringLiteral("document-open-folder")), i18n("Open Containing Folder")))->setData(openParentDirId);
}
return {action(openParentDirId)};
}
QMimeData *SearchRunner::mimeDataForMatch(const Plasma::QueryMatch &match) QMimeData *SearchRunner::mimeDataForMatch(const Plasma::QueryMatch &match)
{ {
QMimeData *result = new QMimeData(); QMimeData *result = new QMimeData();

@ -41,6 +41,7 @@ public:
virtual QStringList categories() const; virtual QStringList categories() const;
virtual QIcon categoryIcon(const QString& category) const; virtual QIcon categoryIcon(const QString& category) const;
QList<QAction *> actionsForMatch(const Plasma::QueryMatch &match) override;
QMimeData *mimeDataForMatch(const Plasma::QueryMatch &match) override; QMimeData *mimeDataForMatch(const Plasma::QueryMatch &match) override;
protected Q_SLOTS: protected Q_SLOTS:

Loading…
Cancel
Save