┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/panels
diff options
context:
space:
mode:
Diffstat (limited to 'src/panels')
-rw-r--r--src/panels/information/informationpanel.cpp2
-rw-r--r--src/panels/information/pixmapviewer.cpp2
-rw-r--r--src/panels/places/placesitem.cpp13
-rw-r--r--src/panels/places/placesitem.h3
-rw-r--r--src/panels/places/placesitemeditdialog.cpp174
-rw-r--r--src/panels/places/placesitemeditdialog.h78
-rw-r--r--src/panels/places/placesitemmodel.cpp14
-rw-r--r--src/panels/places/placesitemmodel.h6
-rw-r--r--src/panels/places/placespanel.cpp25
9 files changed, 40 insertions, 277 deletions
diff --git a/src/panels/information/informationpanel.cpp b/src/panels/information/informationpanel.cpp
index 042849b25..1ec2696e3 100644
--- a/src/panels/information/informationpanel.cpp
+++ b/src/panels/information/informationpanel.cpp
@@ -91,7 +91,7 @@ void InformationPanel::requestDelayedItemInfo(const KFileItem& item)
if (item.isNull()) {
// The cursor is above the viewport. If files are selected,
// show information regarding the selection.
- if (m_selection.size() > 0) {
+ if (!m_selection.isEmpty()) {
m_fileItem = KFileItem();
m_infoTimer->start();
}
diff --git a/src/panels/information/pixmapviewer.cpp b/src/panels/information/pixmapviewer.cpp
index 24a629569..5828a37dd 100644
--- a/src/panels/information/pixmapviewer.cpp
+++ b/src/panels/information/pixmapviewer.cpp
@@ -112,7 +112,7 @@ void PixmapViewer::paintEvent(QPaintEvent* event)
void PixmapViewer::checkPendingPixmaps()
{
- if (m_pendingPixmaps.count() > 0) {
+ if (!m_pendingPixmaps.isEmpty()) {
QPixmap pixmap = m_pendingPixmaps.dequeue();
m_oldPixmap = m_pixmap.isNull() ? pixmap : m_pixmap;
m_pixmap = pixmap;
diff --git a/src/panels/places/placesitem.cpp b/src/panels/places/placesitem.cpp
index 9f9041bfa..3d3645ea2 100644
--- a/src/panels/places/placesitem.cpp
+++ b/src/panels/places/placesitem.cpp
@@ -1,5 +1,6 @@
/***************************************************************************
* Copyright (C) 2012 by Peter Penz <[email protected]> *
+ * Copyright (C) 2018 by Elvis Angelaccio <[email protected]> *
* *
* Based on KFilePlacesItem from kdelibs: *
* Copyright (C) 2007 Kevin Ottens <[email protected]> *
@@ -80,6 +81,16 @@ QString PlacesItem::udi() const
return dataValue("udi").toString();
}
+void PlacesItem::setApplicationName(const QString &applicationName)
+{
+ setDataValue("applicationName", applicationName);
+}
+
+QString PlacesItem::applicationName() const
+{
+ return dataValue("applicationName").toString();
+}
+
void PlacesItem::setHidden(bool hidden)
{
setDataValue("isHidden", hidden);
@@ -247,6 +258,8 @@ void PlacesItem::updateBookmarkForRole(const QByteArray& role)
m_bookmark.setUrl(url());
} else if (role == "udi") {
m_bookmark.setMetaDataItem(QStringLiteral("UDI"), udi());
+ } else if (role == "applicationName") {
+ m_bookmark.setMetaDataItem(QStringLiteral("OnlyInApp"), applicationName());
} else if (role == "isSystemItem") {
m_bookmark.setMetaDataItem(QStringLiteral("isSystemItem"), isSystemItem() ? QStringLiteral("true") : QStringLiteral("false"));
} else if (role == "isHidden") {
diff --git a/src/panels/places/placesitem.h b/src/panels/places/placesitem.h
index 1677cca19..eccd297fa 100644
--- a/src/panels/places/placesitem.h
+++ b/src/panels/places/placesitem.h
@@ -52,6 +52,9 @@ public:
void setUdi(const QString& udi);
QString udi() const;
+ void setApplicationName(const QString& applicationName);
+ QString applicationName() const;
+
void setHidden(bool hidden);
bool isHidden() const;
diff --git a/src/panels/places/placesitemeditdialog.cpp b/src/panels/places/placesitemeditdialog.cpp
deleted file mode 100644
index dfb5dda10..000000000
--- a/src/panels/places/placesitemeditdialog.cpp
+++ /dev/null
@@ -1,174 +0,0 @@
-/***************************************************************************
- * Copyright (C) 2012 by Peter Penz <[email protected]> *
- * *
- * Based on KFilePlaceEditDialog from kdelibs: *
- * Copyright (C) 2001,2002,2003 Carsten Pfeiffer <[email protected]> *
- * Copyright (C) 2007 Kevin Ottens <[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 *
- ***************************************************************************/
-
-#include "placesitemeditdialog.h"
-
-#include "dolphindebug.h"
-
-#include <KAboutData>
-#include <KFile>
-#include <KIconButton>
-#include <KLocalizedString>
-#include <KUrlRequester>
-
-#include <QCheckBox>
-#include <QDialogButtonBox>
-#include <QEvent>
-#include <QFormLayout>
-#include <QLineEdit>
-#include <QMimeDatabase>
-
-PlacesItemEditDialog::PlacesItemEditDialog(QWidget* parent) :
- QDialog(parent),
- m_icon(),
- m_text(),
- m_url(),
- m_allowGlobal(false),
- m_urlEdit(nullptr),
- m_textEdit(nullptr),
- m_iconButton(nullptr),
- m_appLocal(nullptr),
- m_buttonBox(nullptr)
-{
-}
-
-void PlacesItemEditDialog::setIcon(const QString& icon)
-{
- m_icon = icon;
-}
-
-QString PlacesItemEditDialog::icon() const
-{
- return m_iconButton ? m_iconButton->icon() : m_icon;
-}
-
-void PlacesItemEditDialog::setText(const QString& text)
-{
- m_text = text;
-}
-
-QString PlacesItemEditDialog::text() const
-{
- QString text = m_textEdit->text();
- if (text.isEmpty()) {
- const QUrl url = m_urlEdit->url();
- text = url.fileName().isEmpty() ? url.toDisplayString(QUrl::PreferLocalFile) : url.fileName();
- }
- return text;
-}
-
-void PlacesItemEditDialog::setUrl(const QUrl& url)
-{
- m_url = url;
-}
-
-QUrl PlacesItemEditDialog::url() const
-{
- return m_urlEdit->url();
-}
-
-void PlacesItemEditDialog::setAllowGlobal(bool allow)
-{
- m_allowGlobal = allow;
-}
-
-bool PlacesItemEditDialog::allowGlobal() const
-{
- return m_allowGlobal;
-}
-
-bool PlacesItemEditDialog::event(QEvent* event)
-{
- if (event->type() == QEvent::Polish) {
- initialize();
- }
- return QWidget::event(event);
-}
-
-void PlacesItemEditDialog::slotUrlChanged(const QString& text)
-{
- m_buttonBox->button(QDialogButtonBox::Ok)->setEnabled(!text.isEmpty());
-}
-
-PlacesItemEditDialog::~PlacesItemEditDialog()
-{
-}
-
-void PlacesItemEditDialog::initialize()
-{
- m_buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok|QDialogButtonBox::Cancel, this);
- connect(m_buttonBox, &QDialogButtonBox::accepted, this, &PlacesItemEditDialog::accept);
- connect(m_buttonBox, &QDialogButtonBox::rejected, this, &PlacesItemEditDialog::reject);
- setModal(true);
-
- QVBoxLayout *mainLayout = new QVBoxLayout;
- setLayout(mainLayout);
- QWidget* mainWidget = new QWidget(this);
- mainLayout->addWidget(mainWidget);
- mainLayout->addWidget(m_buttonBox);
-
- QVBoxLayout* vBox = new QVBoxLayout(mainWidget);
-
- QFormLayout* formLayout = new QFormLayout();
- vBox->addLayout( formLayout );
-
- m_textEdit = new QLineEdit(mainWidget);
- formLayout->addRow(i18nc("@label", "Label:"), m_textEdit);
- m_textEdit->setText(m_text);
- m_textEdit->setPlaceholderText(i18n("Enter descriptive label here"));
-
- m_urlEdit = new KUrlRequester(m_url, mainWidget);
- m_urlEdit->setMode(KFile::Directory);
- formLayout->addRow(i18nc("@label", "Location:"), m_urlEdit);
- // Provide room for at least 40 chars (average char width is half of height)
- m_urlEdit->setMinimumWidth(m_urlEdit->fontMetrics().height() * (40 / 2));
- connect(m_urlEdit, &KUrlRequester::textChanged, this, &PlacesItemEditDialog::slotUrlChanged);
-
- if (m_url.scheme() != QLatin1String("trash")) {
- m_iconButton = new KIconButton(mainWidget);
- formLayout->addRow(i18nc("@label", "Choose an icon:"), m_iconButton);
- m_iconButton->setIconSize(IconSize(KIconLoader::Desktop));
- m_iconButton->setIconType(KIconLoader::NoGroup, KIconLoader::Place);
- if (m_icon.isEmpty()) {
- QMimeDatabase db;
- m_iconButton->setIcon(db.mimeTypeForUrl(m_url).iconName());
- } else {
- m_iconButton->setIcon(m_icon);
- }
- }
-
- if (m_allowGlobal) {
- const QString appName = KAboutData::applicationData().displayName();
- m_appLocal = new QCheckBox( i18n("&Only show when using this application (%1)", appName ), mainWidget );
- m_appLocal->setChecked(false);
- vBox->addWidget(m_appLocal);
- }
-
- if (m_text.isEmpty()) {
- m_urlEdit->setFocus();
- } else {
- m_textEdit->setFocus();
- }
-
-}
-
diff --git a/src/panels/places/placesitemeditdialog.h b/src/panels/places/placesitemeditdialog.h
deleted file mode 100644
index 73104a1b6..000000000
--- a/src/panels/places/placesitemeditdialog.h
+++ /dev/null
@@ -1,78 +0,0 @@
-/***************************************************************************
- * Copyright (C) 2012 by Peter Penz <[email protected]> *
- * *
- * Based on KFilePlaceEditDialog from kdelibs: *
- * Copyright (C) 2001,2002,2003 Carsten Pfeiffer <[email protected]> *
- * Copyright (C) 2007 Kevin Ottens <[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 *
- ***************************************************************************/
-
-#ifndef PLACESITEMEDITDIALOG_H
-#define PLACESITEMEDITDIALOG_H
-
-#include <QDialog>
-#include <QUrl>
-
-class KIconButton;
-class KUrlRequester;
-class QLineEdit;
-class QCheckBox;
-class QDialogButtonBox;
-
-class PlacesItemEditDialog: public QDialog
-{
- Q_OBJECT
-
-public:
- explicit PlacesItemEditDialog(QWidget* parent = nullptr);
- ~PlacesItemEditDialog() override;
-
- void setIcon(const QString& icon);
- QString icon() const;
-
- void setText(const QString& text);
- QString text() const;
-
- void setUrl(const QUrl& url);
- QUrl url() const;
-
- void setAllowGlobal(bool allow);
- bool allowGlobal() const;
-
-protected:
- bool event(QEvent* event) override;
-
-private slots:
- void slotUrlChanged(const QString& text);
-
-private:
- void initialize();
-
-private:
- QString m_icon;
- QString m_text;
- QUrl m_url;
- bool m_allowGlobal;
-
- KUrlRequester* m_urlEdit;
- QLineEdit* m_textEdit;
- KIconButton* m_iconButton;
- QCheckBox* m_appLocal;
- QDialogButtonBox *m_buttonBox;
-};
-
-#endif
diff --git a/src/panels/places/placesitemmodel.cpp b/src/panels/places/placesitemmodel.cpp
index 66bdbd57a..7513a25d5 100644
--- a/src/panels/places/placesitemmodel.cpp
+++ b/src/panels/places/placesitemmodel.cpp
@@ -78,12 +78,14 @@ PlacesItemModel::~PlacesItemModel()
{
}
-void PlacesItemModel::createPlacesItem(const QString& text,
- const QUrl& url,
- const QString& iconName,
- int after)
+void PlacesItemModel::createPlacesItem(const QString &text, const QUrl &url, const QString &iconName, const QString &appName)
{
- m_sourceModel->addPlace(text, url, iconName, {}, mapToSource(after));
+ createPlacesItem(text, url, iconName, appName, -1);
+}
+
+void PlacesItemModel::createPlacesItem(const QString &text, const QUrl &url, const QString &iconName, const QString &appName, int after)
+{
+ m_sourceModel->addPlace(text, url, iconName, appName, mapToSource(after));
}
PlacesItem* PlacesItemModel::placesItem(int index) const
@@ -369,7 +371,7 @@ void PlacesItemModel::dropMimeDataBefore(int index, const QMimeData* mimeData)
continue;
}
- createPlacesItem(text, url, KIO::iconNameForUrl(url), qMax(0, index - 1));
+ createPlacesItem(text, url, KIO::iconNameForUrl(url), {}, qMax(0, index - 1));
}
}
// will save bookmark alteration and fix sort if that is broken by the drag/drop operation
diff --git a/src/panels/places/placesitemmodel.h b/src/panels/places/placesitemmodel.h
index 58d0d55b2..dde3f3d7b 100644
--- a/src/panels/places/placesitemmodel.h
+++ b/src/panels/places/placesitemmodel.h
@@ -52,10 +52,8 @@ public:
* @brief Create a new place entry in the bookmark file
* and add it to the model
*/
- void createPlacesItem(const QString& text,
- const QUrl& url,
- const QString& iconName = QString(),
- int after = -1);
+ void createPlacesItem(const QString& text, const QUrl& url, const QString& iconName = {}, const QString& appName = {});
+ void createPlacesItem(const QString& text, const QUrl& url, const QString& iconName, const QString& appName, int after);
PlacesItem* placesItem(int index) const;
diff --git a/src/panels/places/placespanel.cpp b/src/panels/places/placespanel.cpp
index 1a8b0ecd4..93fba7168 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 = data.value("url").toUrl();
+ const QString text = data.value("text").toString();
+ const bool applicationLocal = !data.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();