cmake_minimum_required(VERSION 3.0)
# KDE Application Version, managed by release script
-set (KDE_APPLICATIONS_VERSION_MAJOR "18")
-set (KDE_APPLICATIONS_VERSION_MINOR "11")
-set (KDE_APPLICATIONS_VERSION_MICRO "90")
+set (KDE_APPLICATIONS_VERSION_MAJOR "19")
+set (KDE_APPLICATIONS_VERSION_MINOR "03")
+set (KDE_APPLICATIONS_VERSION_MICRO "70")
set (KDE_APPLICATIONS_VERSION "${KDE_APPLICATIONS_VERSION_MAJOR}.${KDE_APPLICATIONS_VERSION_MINOR}.${KDE_APPLICATIONS_VERSION_MICRO}")
project(Dolphin VERSION ${KDE_APPLICATIONS_VERSION})
set(QT_MIN_VERSION "5.8.0")
-set(KF5_MIN_VERSION "5.43.0")
+set(KF5_MIN_VERSION "5.53.0")
# ECM setup
find_package(ECM ${KF5_MIN_VERSION} CONFIG REQUIRED)
filterbar/filterbar.cpp
panels/places/placespanel.cpp
panels/places/placesitem.cpp
- panels/places/placesitemeditdialog.cpp
panels/places/placesitemlistgroupheader.cpp
panels/places/placesitemlistwidget.cpp
panels/places/placesitemmodel.cpp
addAction(collection->action(KStandardAction::name(KStandardAction::RenameFile)));
// Insert 'Move to Trash' and/or 'Delete'
- if (properties.supportsDeleting()) {
- const bool showDeleteAction = (KSharedConfig::openConfig()->group("KDE").readEntry("ShowDeleteCommand", false) ||
- !properties.isLocal());
- const bool showMoveToTrashAction = (properties.isLocal() &&
- properties.supportsMoving());
-
- if (showDeleteAction && showMoveToTrashAction) {
- delete m_removeAction;
- m_removeAction = nullptr;
- addAction(m_mainWindow->actionCollection()->action(KStandardAction::name(KStandardAction::MoveToTrash)));
- addAction(m_mainWindow->actionCollection()->action(KStandardAction::name(KStandardAction::DeleteFile)));
- } else if (showDeleteAction && !showMoveToTrashAction) {
- addAction(m_mainWindow->actionCollection()->action(KStandardAction::name(KStandardAction::DeleteFile)));
- } else {
- if (!m_removeAction) {
- m_removeAction = new DolphinRemoveAction(this, m_mainWindow->actionCollection());
- }
- addAction(m_removeAction);
- m_removeAction->update();
+ const bool showDeleteAction = (KSharedConfig::openConfig()->group("KDE").readEntry("ShowDeleteCommand", false) ||
+ !properties.isLocal());
+ const bool showMoveToTrashAction = (properties.isLocal() &&
+ properties.supportsMoving());
+
+ if (showDeleteAction && showMoveToTrashAction) {
+ delete m_removeAction;
+ m_removeAction = nullptr;
+ addAction(m_mainWindow->actionCollection()->action(KStandardAction::name(KStandardAction::MoveToTrash)));
+ addAction(m_mainWindow->actionCollection()->action(KStandardAction::name(KStandardAction::DeleteFile)));
+ } else if (showDeleteAction && !showMoveToTrashAction) {
+ addAction(m_mainWindow->actionCollection()->action(KStandardAction::name(KStandardAction::DeleteFile)));
+ } else {
+ if (!m_removeAction) {
+ m_removeAction = new DolphinRemoveAction(this, m_mainWindow->actionCollection());
}
+ addAction(m_removeAction);
+ m_removeAction->update();
}
}
int count = 0;
const RoleInfoMap* map = rolesInfoMap(count);
for (int i = 0; i < count; ++i) {
+ if (!map[i].roleTranslation) {
+ continue;
+ }
description.insert(map[i].role, i18nc(map[i].roleTranslationContext, map[i].roleTranslation));
}
}
m_groups.clear();
}
-void KFileItemModel::onSortRoleChanged(const QByteArray& current, const QByteArray& previous)
+void KFileItemModel::onSortRoleChanged(const QByteArray& current, const QByteArray& previous, bool resortItems)
{
Q_UNUSED(previous);
m_sortRole = typeForRole(current);
setRoles(newRoles);
}
- resortAllItems();
+ if (resortItems) {
+ resortAllItems();
+ }
}
void KFileItemModel::onSortOrderChanged(Qt::SortOrder current, Qt::SortOrder previous)
protected:
void onGroupedSortingChanged(bool current) override;
- void onSortRoleChanged(const QByteArray& current, const QByteArray& previous) override;
+ void onSortRoleChanged(const QByteArray& current, const QByteArray& previous, bool resortItems = true) override;
void onSortOrderChanged(Qt::SortOrder current, Qt::SortOrder previous) override;
private slots:
return m_singleClickActivationEnforced;
}
-bool KItemListController::showEvent(QShowEvent* event)
-{
- Q_UNUSED(event);
- return false;
-}
-
-bool KItemListController::hideEvent(QHideEvent* event)
-{
- Q_UNUSED(event);
- return false;
-}
-
bool KItemListController::keyPressEvent(QKeyEvent* event)
{
int index = m_selectionManager->currentItem();
class QGraphicsSceneMouseEvent;
class QGraphicsSceneResizeEvent;
class QGraphicsSceneWheelEvent;
-class QHideEvent;
class QInputMethodEvent;
class QKeyEvent;
-class QShowEvent;
class QTransform;
/**
void setSingleClickActivationEnforced(bool singleClick);
bool singleClickActivationEnforced() const;
- virtual bool showEvent(QShowEvent* event);
- virtual bool hideEvent(QHideEvent* event);
- virtual bool keyPressEvent(QKeyEvent* event);
- virtual bool inputMethodEvent(QInputMethodEvent* event);
- virtual bool mousePressEvent(QGraphicsSceneMouseEvent* event, const QTransform& transform);
- virtual bool mouseMoveEvent(QGraphicsSceneMouseEvent* event, const QTransform& transform);
- virtual bool mouseReleaseEvent(QGraphicsSceneMouseEvent* event, const QTransform& transform);
- virtual bool mouseDoubleClickEvent(QGraphicsSceneMouseEvent* event, const QTransform& transform);
- virtual bool dragEnterEvent(QGraphicsSceneDragDropEvent* event, const QTransform& transform);
- virtual bool dragLeaveEvent(QGraphicsSceneDragDropEvent* event, const QTransform& transform);
- virtual bool dragMoveEvent(QGraphicsSceneDragDropEvent* event, const QTransform& transform);
- virtual bool dropEvent(QGraphicsSceneDragDropEvent* event, const QTransform& transform);
- virtual bool hoverEnterEvent(QGraphicsSceneHoverEvent* event, const QTransform& transform);
- virtual bool hoverMoveEvent(QGraphicsSceneHoverEvent* event, const QTransform& transform);
- virtual bool hoverLeaveEvent(QGraphicsSceneHoverEvent* event, const QTransform& transform);
- virtual bool wheelEvent(QGraphicsSceneWheelEvent* event, const QTransform& transform);
- virtual bool resizeEvent(QGraphicsSceneResizeEvent* event, const QTransform& transform);
- virtual bool processEvent(QEvent* event, const QTransform& transform);
+ bool processEvent(QEvent* event, const QTransform& transform);
signals:
/**
*/
void updateExtendedSelectionRegion();
+ bool keyPressEvent(QKeyEvent* event);
+ bool inputMethodEvent(QInputMethodEvent* event);
+ bool mousePressEvent(QGraphicsSceneMouseEvent* event, const QTransform& transform);
+ bool mouseMoveEvent(QGraphicsSceneMouseEvent* event, const QTransform& transform);
+ bool mouseReleaseEvent(QGraphicsSceneMouseEvent* event, const QTransform& transform);
+ bool mouseDoubleClickEvent(QGraphicsSceneMouseEvent* event, const QTransform& transform);
+ bool dragEnterEvent(QGraphicsSceneDragDropEvent* event, const QTransform& transform);
+ bool dragLeaveEvent(QGraphicsSceneDragDropEvent* event, const QTransform& transform);
+ bool dragMoveEvent(QGraphicsSceneDragDropEvent* event, const QTransform& transform);
+ bool dropEvent(QGraphicsSceneDragDropEvent* event, const QTransform& transform);
+ bool hoverEnterEvent(QGraphicsSceneHoverEvent* event, const QTransform& transform);
+ bool hoverMoveEvent(QGraphicsSceneHoverEvent* event, const QTransform& transform);
+ bool hoverLeaveEvent(QGraphicsSceneHoverEvent* event, const QTransform& transform);
+ bool wheelEvent(QGraphicsSceneWheelEvent* event, const QTransform& transform);
+ bool resizeEvent(QGraphicsSceneResizeEvent* event, const QTransform& transform);
+
private:
bool m_singleClickActivationEnforced;
bool m_selectionTogglePressed;
return m_groupedSorting;
}
-void KItemModelBase::setSortRole(const QByteArray& role)
+void KItemModelBase::setSortRole(const QByteArray& role, bool resortItems)
{
if (role != m_sortRole) {
const QByteArray previous = m_sortRole;
m_sortRole = role;
- onSortRoleChanged(role, previous);
+ onSortRoleChanged(role, previous, resortItems);
emit sortRoleChanged(role, previous);
}
}
Q_UNUSED(current);
}
-void KItemModelBase::onSortRoleChanged(const QByteArray& current, const QByteArray& previous)
+void KItemModelBase::onSortRoleChanged(const QByteArray& current, const QByteArray& previous, bool resortItems)
{
Q_UNUSED(current);
Q_UNUSED(previous);
+ Q_UNUSED(resortItems);
}
void KItemModelBase::onSortOrderChanged(Qt::SortOrder current, Qt::SortOrder previous)
* Sets the sort-role to \a role. The method KItemModelBase::onSortRoleChanged() will be
* called so that model-implementations can react on the sort-role change. Afterwards the
* signal sortRoleChanged() will be emitted.
+ * The implementation should resort only if \a resortItems is true.
*/
- void setSortRole(const QByteArray& role);
+ void setSortRole(const QByteArray& role, bool resortItems = true);
QByteArray sortRole() const;
/**
* Usually the most efficient way is to emit a
* itemsRemoved() signal for all items, reorder the items internally and to emit a
* itemsInserted() signal afterwards.
+ * The implementation should resort only if \a resortItems is true.
*/
- virtual void onSortRoleChanged(const QByteArray& current, const QByteArray& previous);
+ virtual void onSortRoleChanged(const QByteArray& current, const QByteArray& previous, bool resortItems = true);
/**
* Is invoked if the sort order has been changed by KItemModelBase::setSortOrder(). Allows
// Change the sort role and reset to the ascending order
const QByteArray previous = m_model->sortRole();
const QByteArray current = m_columns[m_pressedRoleIndex];
- m_model->setSortRole(current);
+ const bool resetSortOrder = m_model->sortOrder() == Qt::DescendingOrder;
+ m_model->setSortRole(current, !resetSortOrder);
emit sortRoleChanged(current, previous);
- if (m_model->sortOrder() == Qt::DescendingOrder) {
+ if (resetSortOrder) {
m_model->setSortOrder(Qt::AscendingOrder);
emit sortOrderChanged(Qt::AscendingOrder, Qt::DescendingOrder);
}
<caption xml:lang="ca">Gestió de fitxers al Dolphin</caption>
<caption xml:lang="ca-valencia">Gestió de fitxers al Dolphin</caption>
<caption xml:lang="de">Dateiverwaltung mit Dolphin</caption>
+ <caption xml:lang="el">Διαχείριση αρχείων στο Dolphin</caption>
<caption xml:lang="en-GB">File management in Dolphin</caption>
<caption xml:lang="es">Gestión de archivos en Dolphin</caption>
<caption xml:lang="fi">Tiedostonhallinta Dolphinissa</caption>
<caption xml:lang="pt">Gestão de ficheiros no Dolphin</caption>
<caption xml:lang="pt-BR">Gerenciamento de arquivos no Dolphin</caption>
<caption xml:lang="ru">Управление файлами</caption>
+ <caption xml:lang="sk">Správa súborov v Dolphin</caption>
<caption xml:lang="sv">Filhantering i Dolphin</caption>
<caption xml:lang="uk">Керування файлами у Dolphin</caption>
<caption xml:lang="x-test">xxFile management in Dolphinxx</caption>
+ <caption xml:lang="zh-CN">在 Dolphin 中管理文件</caption>
<caption xml:lang="zh-TW">在 Dolphin 管理檔案</caption>
<image>https://kde.org/images/screenshots/dolphin.png</image>
</screenshot>
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();
}
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;
/***************************************************************************
* Copyright (C) 2012 by Peter Penz <peter.penz19@gmail.com> *
+ * Copyright (C) 2018 by Elvis Angelaccio <elvis.angelaccio@kde.org> *
* *
* Based on KFilePlacesItem from kdelibs: *
* Copyright (C) 2007 Kevin Ottens <ervin@kde.org> *
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);
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") {
void setUdi(const QString& udi);
QString udi() const;
+ void setApplicationName(const QString& applicationName);
+ QString applicationName() const;
+
void setHidden(bool hidden);
bool isHidden() const;
+++ /dev/null
-/***************************************************************************
- * Copyright (C) 2012 by Peter Penz <peter.penz19@gmail.com> *
- * *
- * Based on KFilePlaceEditDialog from kdelibs: *
- * Copyright (C) 2001,2002,2003 Carsten Pfeiffer <pfeiffer@kde.org> *
- * Copyright (C) 2007 Kevin Ottens <ervin@kde.org> * *
- * *
- * 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();
- }
-
-}
-
+++ /dev/null
-/***************************************************************************
- * Copyright (C) 2012 by Peter Penz <peter.penz19@gmail.com> *
- * *
- * Based on KFilePlaceEditDialog from kdelibs: *
- * Copyright (C) 2001,2002,2003 Carsten Pfeiffer <pfeiffer@kde.org> *
- * Copyright (C) 2007 Kevin Ottens <ervin@kde.org> * *
- * *
- * 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
{
}
-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
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
* @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;
#include "kitemviews/kitemlistselectionmanager.h"
#include "kitemviews/kstandarditem.h"
#include "placesitem.h"
-#include "placesitemeditdialog.h"
#include "placesitemlistgroupheader.h"
#include "placesitemlistwidget.h"
#include "placesitemmodel.h"
#include "trash/dolphintrash.h"
#include "views/draganddrophelper.h"
+#include <KFilePlaceEditDialog>
#include <KFilePlacesModel>
#include <KIO/DropJob>
#include <KIO/EmptyTrashJob>
{
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;
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();
}
}
- if (items.count() > 0) {
+ if (!items.isEmpty()) {
const QUrl& url = items.first().first.url();
itemStates.insert(url.adjusted(QUrl::RemoveFilename).path(), items);
}