diff options
| author | Elvis Angelaccio <[email protected]> | 2018-11-11 13:41:18 +0100 |
|---|---|---|
| committer | Elvis Angelaccio <[email protected]> | 2018-11-24 12:18:01 +0100 |
| commit | b5df5f4d9581b314f1fc2d6c15b4f01de9f5204b (patch) | |
| tree | 96f6d919f327554dd4a93b85d372ebee48354937 /src/panels/places/placesitemeditdialog.cpp | |
| parent | 2a96387f760104be6e01d0ae7a82d956ac8bf992 (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/placesitemeditdialog.cpp')
| -rw-r--r-- | src/panels/places/placesitemeditdialog.cpp | 174 |
1 files changed, 0 insertions, 174 deletions
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(); - } - -} - |
