From f54174f9f6b99aac433e81cad9965a7f31786ce7 Mon Sep 17 00:00:00 2001 From: David Faure Date: Sun, 2 Oct 2016 21:03:01 +0200 Subject: Popupmenu: use KIO 5.27's new addPluginActionsTo method REVIEW: 129085 --- src/dolphincontextmenu.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'src/dolphincontextmenu.cpp') diff --git a/src/dolphincontextmenu.cpp b/src/dolphincontextmenu.cpp index 971ef1e35..ed3f64379 100644 --- a/src/dolphincontextmenu.cpp +++ b/src/dolphincontextmenu.cpp @@ -34,6 +34,7 @@ #include #include #include +#include #include #include #include @@ -283,7 +284,7 @@ void DolphinContextMenu::openItemContextMenu() fileItemActions.setItemListProperties(selectedItemsProps); addServiceActions(fileItemActions); - addFileItemPluginActions(); + addFileItemPluginActions(fileItemActions); addVersionControlPluginActions(); @@ -355,7 +356,7 @@ void DolphinContextMenu::openViewportContextMenu() fileItemActions.setItemListProperties(baseUrlProperties); addServiceActions(fileItemActions); - addFileItemPluginActions(); + addFileItemPluginActions(fileItemActions); addVersionControlPluginActions(); @@ -483,8 +484,12 @@ void DolphinContextMenu::addServiceActions(KFileItemActions& fileItemActions) fileItemActions.addServiceActionsTo(this); } -void DolphinContextMenu::addFileItemPluginActions() +void DolphinContextMenu::addFileItemPluginActions(KFileItemActions& fileItemActions) { +#if KIO_VERSION >= QT_VERSION_CHECK(5, 27, 0) + fileItemActions.addPluginActionsTo(this); +#else + Q_UNUSED(fileItemActions); KFileItemListProperties props; if (m_selectedItems.isEmpty()) { props.setItems(KFileItemList() << baseFileItem()); @@ -550,6 +555,7 @@ void DolphinContextMenu::addFileItemPluginActions() addedPlugins << jsonMetadata.pluginId(); } } +#endif } void DolphinContextMenu::addVersionControlPluginActions() -- cgit v1.3 From 996f8520e7003326ade6ea96929dd41958ba308d Mon Sep 17 00:00:00 2001 From: Kai Uwe Broulik Date: Tue, 3 Jan 2017 09:46:43 +0100 Subject: Explicitly pass iconNameForUrl when creating new places entry Once KIO::iconNameForUrl returns special icons for standard paths (e.g. Video folder) this will ensure when adding such a folder to places it will automatically get the proper icon. Since KIO already depends on KBookmarks it can't depend the other way round, otherwise this would have been fixed in KBookmarks directly. Differential Revision: https://phabricator.kde.org/D3896 --- src/dolphincontextmenu.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'src/dolphincontextmenu.cpp') diff --git a/src/dolphincontextmenu.cpp b/src/dolphincontextmenu.cpp index ed3f64379..666b81c8d 100644 --- a/src/dolphincontextmenu.cpp +++ b/src/dolphincontextmenu.cpp @@ -307,7 +307,7 @@ void DolphinContextMenu::openItemContextMenu() if (selectedUrl.isValid()) { PlacesItemModel model; const QString text = selectedUrl.fileName(); - PlacesItem* item = model.createPlacesItem(text, selectedUrl); + PlacesItem* item = model.createPlacesItem(text, selectedUrl, KIO::iconNameForUrl(selectedUrl)); model.appendItemToGroup(item); model.saveBookmarks(); } @@ -373,7 +373,8 @@ void DolphinContextMenu::openViewportContextMenu() if (container->url().isValid()) { PlacesItemModel model; PlacesItem* item = model.createPlacesItem(container->placesText(), - container->url()); + container->url(), + KIO::iconNameForUrl(container->url())); model.appendItemToGroup(item); model.saveBookmarks(); } -- cgit v1.3 From 1be2704214a9685fe85fdf65f30e4921eba0f2c9 Mon Sep 17 00:00:00 2001 From: Elvis Angelaccio Date: Wed, 18 Jan 2017 23:45:39 +0100 Subject: Port away from deprecated KIO::Job::ui() It's equivalent to KJob::uiDelegate() from kcoreaddons. --- src/dolphincontextmenu.cpp | 2 +- src/dolphinmainwindow.cpp | 2 +- src/kitemviews/kfileitemmodelrolesupdater.cpp | 2 +- src/panels/folders/folderspanel.cpp | 2 +- src/panels/folders/treeviewcontextmenu.cpp | 4 ++-- src/panels/information/informationpanel.cpp | 2 +- src/panels/information/informationpanelcontent.cpp | 2 +- src/panels/terminal/terminalpanel.cpp | 2 +- src/views/dolphinview.cpp | 2 +- src/views/renamedialog.cpp | 2 +- src/views/tooltips/tooltipmanager.cpp | 2 +- 11 files changed, 12 insertions(+), 12 deletions(-) (limited to 'src/dolphincontextmenu.cpp') diff --git a/src/dolphincontextmenu.cpp b/src/dolphincontextmenu.cpp index 666b81c8d..bedb4cb80 100644 --- a/src/dolphincontextmenu.cpp +++ b/src/dolphincontextmenu.cpp @@ -160,7 +160,7 @@ void DolphinContextMenu::openTrashContextMenu() if (uiDelegate.askDeleteConfirmation(QList(), KIO::JobUiDelegate::EmptyTrash, KIO::JobUiDelegate::DefaultConfirmation)) { KIO::Job* job = KIO::emptyTrash(); KJobWidgets::setWindow(job, m_mainWindow); - job->ui()->setAutoErrorHandlingEnabled(true); + job->uiDelegate()->setAutoErrorHandlingEnabled(true); } } } diff --git a/src/dolphinmainwindow.cpp b/src/dolphinmainwindow.cpp index deb5d5e57..1dcae7ec4 100644 --- a/src/dolphinmainwindow.cpp +++ b/src/dolphinmainwindow.cpp @@ -723,7 +723,7 @@ void DolphinMainWindow::handleUrl(const QUrl& url) } else if (KProtocolManager::supportsListing(url)) { // stat the URL to see if it is a dir or not m_lastHandleUrlStatJob = KIO::stat(url, KIO::HideProgressInfo); - if (m_lastHandleUrlStatJob->ui()) { + if (m_lastHandleUrlStatJob->uiDelegate()) { KJobWidgets::setWindow(m_lastHandleUrlStatJob, this); } connect(m_lastHandleUrlStatJob, &KIO::Job::result, diff --git a/src/kitemviews/kfileitemmodelrolesupdater.cpp b/src/kitemviews/kfileitemmodelrolesupdater.cpp index 92a020003..6e1c3d3dd 100644 --- a/src/kitemviews/kfileitemmodelrolesupdater.cpp +++ b/src/kitemviews/kfileitemmodelrolesupdater.cpp @@ -907,7 +907,7 @@ void KFileItemModelRolesUpdater::startPreviewJob() KIO::PreviewJob* job = new KIO::PreviewJob(itemSubSet, cacheSize, &m_enabledPlugins); job->setIgnoreMaximumSize(itemSubSet.first().isLocalFile()); - if (job->ui()) { + if (job->uiDelegate()) { KJobWidgets::setWindow(job, qApp->activeWindow()); } diff --git a/src/panels/folders/folderspanel.cpp b/src/panels/folders/folderspanel.cpp index 276cf5672..8b759d813 100644 --- a/src/panels/folders/folderspanel.cpp +++ b/src/panels/folders/folderspanel.cpp @@ -260,7 +260,7 @@ void FoldersPanel::slotRoleEditingFinished(int index, const QByteArray& role, co KIO::Job* job = KIO::moveAs(oldUrl, newUrl); KJobWidgets::setWindow(job, this); KIO::FileUndoManager::self()->recordJob(KIO::FileUndoManager::Rename, {oldUrl}, newUrl, job); - job->ui()->setAutoErrorHandlingEnabled(true); + job->uiDelegate()->setAutoErrorHandlingEnabled(true); } } } diff --git a/src/panels/folders/treeviewcontextmenu.cpp b/src/panels/folders/treeviewcontextmenu.cpp index ec4186db2..51fc229c1 100644 --- a/src/panels/folders/treeviewcontextmenu.cpp +++ b/src/panels/folders/treeviewcontextmenu.cpp @@ -201,7 +201,7 @@ void TreeViewContextMenu::moveToTrash() KIO::Job* job = KIO::trash(list); KIO::FileUndoManager::self()->recordJob(KIO::FileUndoManager::Trash, list, QUrl(QStringLiteral("trash:/")), job); KJobWidgets::setWindow(job, m_parent); - job->ui()->setAutoErrorHandlingEnabled(true); + job->uiDelegate()->setAutoErrorHandlingEnabled(true); } } @@ -213,7 +213,7 @@ void TreeViewContextMenu::deleteItem() if (uiDelegate.askDeleteConfirmation(list, KIO::JobUiDelegate::Delete, KIO::JobUiDelegate::DefaultConfirmation)) { KIO::Job* job = KIO::del(list); KJobWidgets::setWindow(job, m_parent); - job->ui()->setAutoErrorHandlingEnabled(true); + job->uiDelegate()->setAutoErrorHandlingEnabled(true); } } diff --git a/src/panels/information/informationpanel.cpp b/src/panels/information/informationpanel.cpp index 3f778b07a..16dc721b2 100644 --- a/src/panels/information/informationpanel.cpp +++ b/src/panels/information/informationpanel.cpp @@ -185,7 +185,7 @@ void InformationPanel::showItemInfo() // No item is hovered and no selection has been done: provide // an item for the currently shown directory. m_folderStatJob = KIO::stat(url(), KIO::HideProgressInfo); - if (m_folderStatJob->ui()) { + if (m_folderStatJob->uiDelegate()) { KJobWidgets::setWindow(m_folderStatJob, this); } connect(m_folderStatJob, &KIO::Job::result, diff --git a/src/panels/information/informationpanelcontent.cpp b/src/panels/information/informationpanelcontent.cpp index d519ff121..9478aaf45 100644 --- a/src/panels/information/informationpanelcontent.cpp +++ b/src/panels/information/informationpanelcontent.cpp @@ -195,7 +195,7 @@ void InformationPanelContent::showItem(const KFileItem& item) m_previewJob = new KIO::PreviewJob(KFileItemList() << item, QSize(m_preview->width(), m_preview->height())); m_previewJob->setScaleType(KIO::PreviewJob::Unscaled); m_previewJob->setIgnoreMaximumSize(item.isLocalFile()); - if (m_previewJob->ui()) { + if (m_previewJob->uiDelegate()) { KJobWidgets::setWindow(m_previewJob, this); } diff --git a/src/panels/terminal/terminalpanel.cpp b/src/panels/terminal/terminalpanel.cpp index da68210c1..e952f23a0 100644 --- a/src/panels/terminal/terminalpanel.cpp +++ b/src/panels/terminal/terminalpanel.cpp @@ -137,7 +137,7 @@ void TerminalPanel::changeDir(const QUrl& url) sendCdToTerminal(url.toLocalFile()); } else { m_mostLocalUrlJob = KIO::mostLocalUrl(url, KIO::HideProgressInfo); - if (m_mostLocalUrlJob->ui()) { + if (m_mostLocalUrlJob->uiDelegate()) { KJobWidgets::setWindow(m_mostLocalUrlJob, this); } connect(m_mostLocalUrlJob, &KIO::StatJob::result, this, &TerminalPanel::slotMostLocalUrlResult); diff --git a/src/views/dolphinview.cpp b/src/views/dolphinview.cpp index 7d85fa240..f5ba63d1e 100644 --- a/src/views/dolphinview.cpp +++ b/src/views/dolphinview.cpp @@ -1534,7 +1534,7 @@ void DolphinView::slotRoleEditingFinished(int index, const QByteArray& role, con KIO::Job * job = KIO::moveAs(oldUrl, newUrl); KJobWidgets::setWindow(job, this); KIO::FileUndoManager::self()->recordJob(KIO::FileUndoManager::Rename, {oldUrl}, newUrl, job); - job->ui()->setAutoErrorHandlingEnabled(true); + job->uiDelegate()->setAutoErrorHandlingEnabled(true); if (!newNameExistsAlready) { // Only connect the result signal if there is no item with the new name diff --git a/src/views/renamedialog.cpp b/src/views/renamedialog.cpp index a514ede1e..c73f003a8 100644 --- a/src/views/renamedialog.cpp +++ b/src/views/renamedialog.cpp @@ -162,7 +162,7 @@ void RenameDialog::renameItem(const KFileItem &item, const QString& newName) KIO::Job * job = KIO::moveAs(oldUrl, newUrl); KJobWidgets::setWindow(job, widget); KIO::FileUndoManager::self()->recordJob(KIO::FileUndoManager::Rename, {oldUrl}, newUrl, job); - job->ui()->setAutoErrorHandlingEnabled(true); + job->uiDelegate()->setAutoErrorHandlingEnabled(true); } void RenameDialog::slotAccepted() diff --git a/src/views/tooltips/tooltipmanager.cpp b/src/views/tooltips/tooltipmanager.cpp index 0636df795..404d6801c 100644 --- a/src/views/tooltips/tooltipmanager.cpp +++ b/src/views/tooltips/tooltipmanager.cpp @@ -130,7 +130,7 @@ void ToolTipManager::startContentRetrieval() KIO::PreviewJob* job = new KIO::PreviewJob(KFileItemList() << m_item, QSize(256, 256)); job->setIgnoreMaximumSize(m_item.isLocalFile()); - if (job->ui()) { + if (job->uiDelegate()) { KJobWidgets::setWindow(job, qApp->activeWindow()); } -- cgit v1.3 From 5f484d8ee865554f933dd22fd1a2e597b1ecb52a Mon Sep 17 00:00:00 2001 From: Elvis Angelaccio Date: Sun, 5 Feb 2017 23:38:32 +0100 Subject: Drop another obsolete version check We now require Frameworks >= 5.30 --- src/dolphincontextmenu.cpp | 70 ---------------------------------------------- 1 file changed, 70 deletions(-) (limited to 'src/dolphincontextmenu.cpp') diff --git a/src/dolphincontextmenu.cpp b/src/dolphincontextmenu.cpp index bedb4cb80..58e2f4de5 100644 --- a/src/dolphincontextmenu.cpp +++ b/src/dolphincontextmenu.cpp @@ -34,7 +34,6 @@ #include #include #include -#include #include #include #include @@ -487,76 +486,7 @@ void DolphinContextMenu::addServiceActions(KFileItemActions& fileItemActions) void DolphinContextMenu::addFileItemPluginActions(KFileItemActions& fileItemActions) { -#if KIO_VERSION >= QT_VERSION_CHECK(5, 27, 0) fileItemActions.addPluginActionsTo(this); -#else - Q_UNUSED(fileItemActions); - KFileItemListProperties props; - if (m_selectedItems.isEmpty()) { - props.setItems(KFileItemList() << baseFileItem()); - } else { - props = selectedItemsProperties(); - } - - QString commonMimeType = props.mimeType(); - if (commonMimeType.isEmpty()) { - commonMimeType = QStringLiteral("application/octet-stream"); - } - - const KService::List pluginServices = KMimeTypeTrader::self()->query(commonMimeType, QStringLiteral("KFileItemAction/Plugin"), QStringLiteral("exist Library")); - const KConfig config(QStringLiteral("kservicemenurc"), KConfig::NoGlobals); - const KConfigGroup showGroup = config.group("Show"); - - QSet addedPlugins; - foreach (const KService::Ptr& service, pluginServices) { - if (!showGroup.readEntry(service->desktopEntryName(), true)) { - // The plugin has been disabled - continue; - } - - KAbstractFileItemActionPlugin* abstractPlugin = service->createInstance(); - if (abstractPlugin) { - abstractPlugin->setParent(this); - addActions(abstractPlugin->actions(props, m_mainWindow)); - addedPlugins << service->desktopEntryName(); - } - } - - const auto jsonPlugins = KPluginLoader::findPlugins(QStringLiteral("kf5/kfileitemaction"), [=](const KPluginMetaData& metaData) { - if (!metaData.serviceTypes().contains(QStringLiteral("KFileItemAction/Plugin"))) { - return false; - } - - auto mimeType = QMimeDatabase().mimeTypeForName(commonMimeType); - foreach (const auto& supportedMimeType, metaData.mimeTypes()) { - if (mimeType.inherits(supportedMimeType)) { - return true; - } - } - - return false; - }); - - foreach (const auto& jsonMetadata, jsonPlugins) { - // The plugin has been disabled - if (!showGroup.readEntry(jsonMetadata.pluginId(), true)) { - continue; - } - - // The plugin also has a .desktop file and has already been added. - if (addedPlugins.contains(jsonMetadata.pluginId())) { - continue; - } - - KPluginFactory *factory = KPluginLoader(jsonMetadata.fileName()).factory(); - KAbstractFileItemActionPlugin* abstractPlugin = factory->create(); - if (abstractPlugin) { - abstractPlugin->setParent(this); - addActions(abstractPlugin->actions(props, m_mainWindow)); - addedPlugins << jsonMetadata.pluginId(); - } - } -#endif } void DolphinContextMenu::addVersionControlPluginActions() -- cgit v1.3