┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/panels/places/placespanel.cpp
diff options
context:
space:
mode:
authorElvis Angelaccio <[email protected]>2018-11-11 13:41:18 +0100
committerElvis Angelaccio <[email protected]>2018-11-24 12:18:01 +0100
commitb5df5f4d9581b314f1fc2d6c15b4f01de9f5204b (patch)
tree96f6d919f327554dd4a93b85d372ebee48354937 /src/panels/places/placespanel.cpp
parent2a96387f760104be6e01d0ae7a82d956ac8bf992 (diff)
[PlacesPanel] Port to KFilePlaceEditDialog
Summary: This patch ports away from the old PlacesItemEditDialog copy, which doesn't honour the "applicationLocal" checkbox. KFilePlaceEditDialog was not exported by KIO, but it will be starting from 5.53 BUG: 376619 FIXED-IN: 19.03.80 Test Plan: * Create a new place ("Add Entry" from the panel context menu) and check the "only show in dolphin" checkbox * Edit an existing (global) place and check the "only show in dolphin" checkbox Reviewers: #dolphin Subscribers: kfm-devel Tags: #dolphin Differential Revision: https://phabricator.kde.org/D16824
Diffstat (limited to 'src/panels/places/placespanel.cpp')
-rw-r--r--src/panels/places/placespanel.cpp25
1 files changed, 12 insertions, 13 deletions
diff --git a/src/panels/places/placespanel.cpp b/src/panels/places/placespanel.cpp
index 1a8b0ecd4..c18c54d1d 100644
--- a/src/panels/places/placespanel.cpp
+++ b/src/panels/places/placespanel.cpp
@@ -30,7 +30,6 @@
#include "kitemviews/kitemlistselectionmanager.h"
#include "kitemviews/kstandarditem.h"
#include "placesitem.h"
-#include "placesitemeditdialog.h"
#include "placesitemlistgroupheader.h"
#include "placesitemlistwidget.h"
#include "placesitemmodel.h"
@@ -38,6 +37,7 @@
#include "trash/dolphintrash.h"
#include "views/draganddrophelper.h"
+#include <KFilePlaceEditDialog>
#include <KFilePlacesModel>
#include <KIO/DropJob>
#include <KIO/EmptyTrashJob>
@@ -474,13 +474,12 @@ void PlacesPanel::addEntry()
{
const int index = m_controller->selectionManager()->currentItem();
const QUrl url = m_model->data(index).value("url").toUrl();
+ const QString text = url.fileName().isEmpty() ? url.toDisplayString(QUrl::PreferLocalFile) : url.fileName();
- QPointer<PlacesItemEditDialog> dialog = new PlacesItemEditDialog(this);
- dialog->setWindowTitle(i18nc("@title:window", "Add Places Entry"));
- dialog->setAllowGlobal(true);
- dialog->setUrl(url);
+ QPointer<KFilePlaceEditDialog> dialog = new KFilePlaceEditDialog(true, url, text, QString(), true, false, KIconLoader::SizeMedium, this);
if (dialog->exec() == QDialog::Accepted) {
- m_model->createPlacesItem(dialog->text(), dialog->url(), dialog->icon());
+ const QString appName = dialog->applicationLocal() ? QCoreApplication::applicationName() : QString();
+ m_model->createPlacesItem(dialog->label(), dialog->url(), dialog->icon(), appName);
}
delete dialog;
@@ -489,17 +488,17 @@ void PlacesPanel::addEntry()
void PlacesPanel::editEntry(int index)
{
QHash<QByteArray, QVariant> data = m_model->data(index);
+ const QUrl url = m_model->data(index).value("url").toUrl();
+ const QString text = m_model->data(index).value("text").toString();
+ const bool applicationLocal = !m_model->data(index).value("applicationName").toString().isEmpty();
- QPointer<PlacesItemEditDialog> dialog = new PlacesItemEditDialog(this);
- dialog->setWindowTitle(i18nc("@title:window", "Edit Places Entry"));
- dialog->setIcon(data.value("iconName").toString());
- dialog->setText(data.value("text").toString());
- dialog->setUrl(data.value("url").toUrl());
- dialog->setAllowGlobal(true);
+ QPointer<KFilePlaceEditDialog> dialog = new KFilePlaceEditDialog(true, url, text, QString(), true, applicationLocal, KIconLoader::SizeMedium, this);
if (dialog->exec() == QDialog::Accepted) {
PlacesItem* oldItem = m_model->placesItem(index);
if (oldItem) {
- oldItem->setText(dialog->text());
+ const QString appName = dialog->applicationLocal() ? QCoreApplication::applicationName() : QString();
+ oldItem->setApplicationName(appName);
+ oldItem->setText(dialog->label());
oldItem->setUrl(dialog->url());
oldItem->setIcon(dialog->icon());
m_model->refresh();