From ecf1ae6d0b1691bfe36fc0ff64500f111f3abc32 Mon Sep 17 00:00:00 2001 From: Stefan BrĂ¼ns Date: Sun, 14 Apr 2019 02:44:01 +0200 Subject: [InformationPanel] Use the new inline configuration mode Summary: The current external configuration dialog has some issues: - its layout is suboptimal, as its initial size is typically to small - it is quite disassociated with the actual widget it configures, properties have a different order, and the property names can be quite abstract without the corresponding value. Doing the visibility selection inline typically avoids the sizing problem, as the containing application (dolphin) is often vertically maximized. The selection becomes more obvious, as the item order is kept, and the values are shown. Depends on D20524 CCBUG: 389571 Reviewers: #dolphin, #baloo, #frameworks, ngraham, astippich, #vdg, elvisangelaccio Reviewed By: #dolphin, elvisangelaccio Subscribers: elvisangelaccio, meven, kfm-devel Tags: #dolphin Differential Revision: https://phabricator.kde.org/D20525 --- src/panels/information/informationpanel.cpp | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) (limited to 'src/panels/information/informationpanel.cpp') diff --git a/src/panels/information/informationpanel.cpp b/src/panels/information/informationpanel.cpp index 051134c64..9a0358df0 100644 --- a/src/panels/information/informationpanel.cpp +++ b/src/panels/information/informationpanel.cpp @@ -36,7 +36,6 @@ #include #include "dolphin_informationpanelsettings.h" -#include "filemetadataconfigurationdialog.h" InformationPanel::InformationPanel(QWidget* parent) : Panel(parent), @@ -179,6 +178,9 @@ void InformationPanel::showContextMenu(const QPoint &pos) QAction* configureAction = popup.addAction(i18nc("@action:inmenu", "Configure...")); configureAction->setIcon(QIcon::fromTheme(QStringLiteral("configure"))); + if (m_inConfigurationMode) { + configureAction->setEnabled(false); + } QAction* dateformatAction = popup.addAction(i18nc("@action:inmenu", "Condensed Date")); dateformatAction->setIcon(QIcon::fromTheme(QStringLiteral("change-date-symbolic"))); @@ -203,13 +205,8 @@ void InformationPanel::showContextMenu(const QPoint &pos) InformationPanelSettings::setPreviewsShown(isChecked); m_content->refreshPreview(); } else if (action == configureAction) { - FileMetaDataConfigurationDialog* dialog = new FileMetaDataConfigurationDialog(this); - dialog->setDescription(i18nc("@label::textbox", - "Select which data should be shown in the information panel:")); - dialog->setItems(m_content->items()); - dialog->setAttribute(Qt::WA_DeleteOnClose); - dialog->show(); - connect(dialog, &FileMetaDataConfigurationDialog::destroyed, m_content, &InformationPanelContent::refreshMetaData); + m_inConfigurationMode = true; + m_content->configureShownProperties(); } if (action == dateformatAction) { int dateFormat = static_cast(isChecked ? Baloo::DateFormats::ShortFormat : Baloo::DateFormats::LongFormat); @@ -412,6 +409,7 @@ void InformationPanel::init() m_content = new InformationPanelContent(this); connect(m_content, &InformationPanelContent::urlActivated, this, &InformationPanel::urlActivated); + connect(m_content, &InformationPanelContent::configurationFinished, this, [this]() { m_inConfigurationMode = false; }); QVBoxLayout* layout = new QVBoxLayout(this); layout->setContentsMargins(0, 0, 0, 0); -- cgit v1.3