From 6674c9c387d0986e99698332727bf797257bf07d Mon Sep 17 00:00:00 2001 From: Elvis Angelaccio Date: Mon, 13 Aug 2018 23:36:35 +0200 Subject: [PATCH] Port away from kdelibs4support Summary: It was only used as fallback when baloo was not found, but `KFileMetaDataWidget` is useless without nepomuk. The result of this patch is that the information panel and the tooltips won't be available from platforms without baloo (instead of being available but broken). The baloo dependency remains optional. Closes T8720 Test Plan: Build dolphin with `cmake -DCMAKE_DISABLE_FIND_PACKAGE_KF5Baloo=ON ..` and make sure it doesn't show tooltips or the information panel. Reviewers: #dolphin, broulik, ngraham Subscribers: kfm-devel Tags: #dolphin Maniphest Tasks: T8720 Differential Revision: https://phabricator.kde.org/D14814 --- CMakeLists.txt | 5 +--- src/CMakeLists.txt | 25 ++++++++++--------- src/dolphinmainwindow.cpp | 3 +++ .../filemetadataconfigurationdialog.cpp | 9 ------- .../filemetadataconfigurationdialog.h | 4 --- .../information/informationpanelcontent.cpp | 19 ++------------ src/settings/general/behaviorsettingspage.cpp | 8 ++++++ src/views/dolphinview.cpp | 6 +++++ .../tooltips/dolphinfilemetadatawidget.cpp | 12 --------- .../tooltips/dolphinfilemetadatawidget.h | 8 ------ 10 files changed, 33 insertions(+), 66 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 506d98cbe8..390376e944 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -94,10 +94,7 @@ if (KF5Baloo_FOUND AND KF5BalooWidgets_FOUND AND KF5FileMetaData_FOUND) message(STATUS "Baloo packages are found") set(HAVE_BALOO TRUE) else() - message(WARNING "Baloo packages not found. They are needed for the metadata features of Dolphin.") - find_package(KF5 ${KF5_MIN_VERSION} REQUIRED COMPONENTS - KDELibs4Support # for KFileMetaDataWidget - ) + message(WARNING "Baloo packages not found. They are needed for the metadata features of Dolphin (including the information panel).") endif() add_subdirectory(src) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index eacb792fc9..5aff4b0fad 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -98,8 +98,6 @@ set(dolphinprivate_LIB_SRCS views/dolphinviewactionhandler.cpp views/draganddrophelper.cpp views/renamedialog.cpp - views/tooltips/dolphinfilemetadatawidget.cpp - views/tooltips/tooltipmanager.cpp views/versioncontrol/updateitemstatesthread.cpp views/versioncontrol/versioncontrolobserver.cpp views/viewmodecontroller.cpp @@ -114,6 +112,8 @@ set(dolphinprivate_LIB_SRCS if(HAVE_BALOO) set(dolphinprivate_LIB_SRCS ${dolphinprivate_LIB_SRCS} + views/tooltips/dolphinfilemetadatawidget.cpp + views/tooltips/tooltipmanager.cpp kitemviews/private/kbaloorolesprovider.cpp ) endif() @@ -155,11 +155,6 @@ if(HAVE_BALOO) KF5::Baloo KF5::BalooWidgets ) -else() - target_link_libraries( - dolphinprivate PUBLIC - KF5::KDELibs4Support # for KFileMetaDataWidget - ) endif() set_target_properties(dolphinprivate PROPERTIES @@ -204,11 +199,6 @@ set(dolphinstatic_SRCS dolphintabwidget.cpp trash/dolphintrash.cpp filterbar/filterbar.cpp - panels/information/filemetadataconfigurationdialog.cpp - panels/information/informationpanel.cpp - panels/information/informationpanelcontent.cpp - panels/information/pixmapviewer.cpp - panels/information/phononwidget.cpp panels/places/placespanel.cpp panels/places/placesitem.cpp panels/places/placesitemeditdialog.cpp @@ -252,6 +242,17 @@ set(dolphinstatic_SRCS global.cpp ) +if(HAVE_BALOO) + set(dolphinstatic_SRCS + ${dolphinstatic_SRCS} + panels/information/filemetadataconfigurationdialog.cpp + panels/information/informationpanel.cpp + panels/information/informationpanelcontent.cpp + panels/information/pixmapviewer.cpp + panels/information/phononwidget.cpp + ) +endif() + kconfig_add_kcfg_files(dolphinstatic_SRCS GENERATE_MOC panels/folders/dolphin_folderspanelsettings.kcfgc panels/information/dolphin_informationpanelsettings.kcfgc diff --git a/src/dolphinmainwindow.cpp b/src/dolphinmainwindow.cpp index f8b35d4a70..32915827bc 100644 --- a/src/dolphinmainwindow.cpp +++ b/src/dolphinmainwindow.cpp @@ -1266,6 +1266,8 @@ void DolphinMainWindow::setupDockWidgets() infoDock->setLocked(lock); infoDock->setObjectName(QStringLiteral("infoDock")); infoDock->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea); + +#ifdef HAVE_BALOO InformationPanel* infoPanel = new InformationPanel(infoDock); infoPanel->setCustomContextMenuActions({lockLayoutAction}); connect(infoPanel, &InformationPanel::urlActivated, this, &DolphinMainWindow::handleUrl); @@ -1281,6 +1283,7 @@ void DolphinMainWindow::setupDockWidgets() infoPanel, &InformationPanel::setSelection); connect(this, &DolphinMainWindow::requestItemInfo, infoPanel, &InformationPanel::requestDelayedItemInfo); +#endif // Setup "Folders" DolphinDockWidget* foldersDock = new DolphinDockWidget(i18nc("@title:window", "Folders")); diff --git a/src/panels/information/filemetadataconfigurationdialog.cpp b/src/panels/information/filemetadataconfigurationdialog.cpp index 3b3789175b..f3ca819b7d 100644 --- a/src/panels/information/filemetadataconfigurationdialog.cpp +++ b/src/panels/information/filemetadataconfigurationdialog.cpp @@ -19,11 +19,7 @@ #include "filemetadataconfigurationdialog.h" -#ifndef HAVE_BALOO -#include -#else #include -#endif #include #include #include @@ -56,12 +52,7 @@ FileMetaDataConfigurationDialog::FileMetaDataConfigurationDialog(QWidget* parent "be shown:"), this); m_descriptionLabel->setWordWrap(true); -#ifndef HAVE_BALOO - m_configWidget = new KFileMetaDataConfigurationWidget(this); -#else m_configWidget = new Baloo::FileMetaDataConfigWidget(this); -#endif - QWidget* mainWidget = new QWidget(this); QVBoxLayout* topLayout = new QVBoxLayout(mainWidget); diff --git a/src/panels/information/filemetadataconfigurationdialog.h b/src/panels/information/filemetadataconfigurationdialog.h index b38404da86..04357783c3 100644 --- a/src/panels/information/filemetadataconfigurationdialog.h +++ b/src/panels/information/filemetadataconfigurationdialog.h @@ -70,11 +70,7 @@ protected slots: void slotAccepted(); private: QLabel* m_descriptionLabel; -#ifndef HAVE_BALOO - KFileMetaDataConfigurationWidget* m_configWidget; -#else Baloo::FileMetaDataConfigWidget* m_configWidget; -#endif }; #endif diff --git a/src/panels/information/informationpanelcontent.cpp b/src/panels/information/informationpanelcontent.cpp index 0cba0cdf06..bb30cc81c4 100644 --- a/src/panels/information/informationpanelcontent.cpp +++ b/src/panels/information/informationpanelcontent.cpp @@ -32,11 +32,7 @@ #include #include -#ifndef HAVE_BALOO -#include -#else #include -#endif #include #include @@ -106,19 +102,13 @@ InformationPanelContent::InformationPanelContent(QWidget* parent) : const bool previewsShown = InformationPanelSettings::previewsShown(); m_preview->setVisible(previewsShown); -#ifndef HAVE_BALOO - m_metaDataWidget = new KFileMetaDataWidget(parent); - connect(m_metaDataWidget, &KFileMetaDataWidget::urlActivated, - this, &InformationPanelContent::urlActivated); -#else m_metaDataWidget = new Baloo::FileMetaDataWidget(parent); m_metaDataWidget->setDateFormat(static_cast(InformationPanelSettings::dateFormat())); connect(m_metaDataWidget, &Baloo::FileMetaDataWidget::urlActivated, this, &InformationPanelContent::urlActivated); -#endif m_metaDataWidget->setFont(QFontDatabase::systemFont(QFontDatabase::SmallestReadableFont)); m_metaDataWidget->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Minimum); - + // Encapsulate the MetaDataWidget inside a container that has a dummy widget // at the bottom. This prevents that the meta data widget gets vertically stretched // in the case where the height of m_metaDataArea > m_metaDataWidget. @@ -194,9 +184,7 @@ void InformationPanelContent::showItem(const KFileItem& item) } if (m_metaDataWidget) { -#ifdef HAVE_BALOO m_metaDataWidget->setDateFormat(static_cast(InformationPanelSettings::dateFormat())); -#endif m_metaDataWidget->show(); m_metaDataWidget->setItems(KFileItemList() << item); } @@ -285,12 +273,11 @@ void InformationPanelContent::configureSettings(const QList& customCon QAction* configureAction = popup.addAction(i18nc("@action:inmenu", "Configure...")); configureAction->setIcon(QIcon::fromTheme(QStringLiteral("configure"))); -#ifdef HAVE_BALOO QAction* dateformatAction = popup.addAction(i18nc("@action:inmenu", "Condensed Date")); dateformatAction->setIcon(QIcon::fromTheme(QStringLiteral("change-date-symbolic"))); dateformatAction->setCheckable(true); dateformatAction->setChecked(InformationPanelSettings::dateFormat() == static_cast(Baloo::DateFormats::ShortFormat)); -#endif + popup.addSeparator(); foreach (QAction* action, customContextMenuActions) { popup.addAction(action); @@ -316,14 +303,12 @@ void InformationPanelContent::configureSettings(const QList& customCon dialog->show(); connect(dialog, &FileMetaDataConfigurationDialog::destroyed, this, &InformationPanelContent::refreshMetaData); } -#ifdef HAVE_BALOO if (action == dateformatAction) { int dateFormat = static_cast(isChecked ? Baloo::DateFormats::ShortFormat : Baloo::DateFormats::LongFormat); InformationPanelSettings::setDateFormat(dateFormat); refreshMetaData(); } -#endif } void InformationPanelContent::showIcon(const KFileItem& item) diff --git a/src/settings/general/behaviorsettingspage.cpp b/src/settings/general/behaviorsettingspage.cpp index 921ab3f8e1..fa21822ccc 100644 --- a/src/settings/general/behaviorsettingspage.cpp +++ b/src/settings/general/behaviorsettingspage.cpp @@ -78,9 +78,11 @@ BehaviorSettingsPage::BehaviorSettingsPage(const QUrl& url, QWidget* parent) : topLayout->addItem(new QSpacerItem(0, Dolphin::VERTICAL_SPACER_HEIGHT, QSizePolicy::Fixed, QSizePolicy::Fixed)); +#ifdef HAVE_BALOO // 'Show tooltips' m_showToolTips = new QCheckBox(i18nc("@option:check", "Show tooltips")); topLayout->addRow(i18nc("@title:group", "Miscellaneous: "), m_showToolTips); +#endif // 'Show selection marker' m_showSelectionToggle = new QCheckBox(i18nc("@option:check", "Show selection marker")); @@ -98,7 +100,9 @@ BehaviorSettingsPage::BehaviorSettingsPage(const QUrl& url, QWidget* parent) : connect(m_localViewProps, &QRadioButton::toggled, this, &BehaviorSettingsPage::changed); connect(m_globalViewProps, &QRadioButton::toggled, this, &BehaviorSettingsPage::changed); +#ifdef HAVE_BALOO connect(m_showToolTips, &QCheckBox::toggled, this, &BehaviorSettingsPage::changed); +#endif connect(m_showSelectionToggle, &QCheckBox::toggled, this, &BehaviorSettingsPage::changed); connect(m_naturalSorting, &QRadioButton::toggled, this, &BehaviorSettingsPage::changed); connect(m_caseInsensitiveSorting, &QRadioButton::toggled, this, &BehaviorSettingsPage::changed); @@ -118,7 +122,9 @@ void BehaviorSettingsPage::applySettings() const bool useGlobalViewProps = m_globalViewProps->isChecked(); settings->setGlobalViewProps(useGlobalViewProps); +#ifdef HAVE_BALOO settings->setShowToolTips(m_showToolTips->isChecked()); +#endif settings->setShowSelectionToggle(m_showSelectionToggle->isChecked()); setSortingChoiceValue(settings); settings->setRenameInline(m_renameInline->isChecked()); @@ -149,7 +155,9 @@ void BehaviorSettingsPage::loadSettings() m_localViewProps->setChecked(!useGlobalViewProps); m_globalViewProps->setChecked(useGlobalViewProps); +#ifdef HAVE_BALOO m_showToolTips->setChecked(GeneralSettings::showToolTips()); +#endif m_showSelectionToggle->setChecked(GeneralSettings::showSelectionToggle()); m_renameInline->setChecked(GeneralSettings::renameInline()); m_useTabForSplitViewSwitch->setChecked(GeneralSettings::useTabForSwitchingSplitView()); diff --git a/src/views/dolphinview.cpp b/src/views/dolphinview.cpp index 342c226382..a0c5ef38b0 100644 --- a/src/views/dolphinview.cpp +++ b/src/views/dolphinview.cpp @@ -176,8 +176,10 @@ DolphinView::DolphinView(const QUrl& url, QWidget* parent) : connect(selectionManager, &KItemListSelectionManager::selectionChanged, this, &DolphinView::slotSelectionChanged); +#ifdef HAVE_BALOO m_toolTipManager = new ToolTipManager(this); connect(m_toolTipManager, &ToolTipManager::urlActivated, this, &DolphinView::urlActivated); +#endif m_versionControlObserver = new VersionControlObserver(this); m_versionControlObserver->setModel(m_model); @@ -1030,7 +1032,9 @@ void DolphinView::slotItemHovered(int index) const QPoint pos = m_container->mapToGlobal(itemRect.topLeft().toPoint()); itemRect.moveTo(pos); +#ifdef HAVE_BALOO m_toolTipManager->showToolTip(item, itemRect, nativeParentWidget()->windowHandle()); +#endif } emit requestItemInfo(item); @@ -1407,9 +1411,11 @@ void DolphinView::updateViewState() void DolphinView::hideToolTip() { +#ifdef HAVE_BALOO if (GeneralSettings::showToolTips()) { m_toolTipManager->hideToolTip(); } +#endif } void DolphinView::calculateItemCount(int& fileCount, diff --git a/src/views/tooltips/dolphinfilemetadatawidget.cpp b/src/views/tooltips/dolphinfilemetadatawidget.cpp index 1df6a66732..f4a688ea82 100644 --- a/src/views/tooltips/dolphinfilemetadatawidget.cpp +++ b/src/views/tooltips/dolphinfilemetadatawidget.cpp @@ -24,11 +24,7 @@ #include #include #include -#ifndef HAVE_BALOO -#include -#else #include -#endif #include #include @@ -61,19 +57,11 @@ DolphinFileMetaDataWidget::DolphinFileMetaDataWidget(QWidget* parent) : m_name->setMaximumWidth(fontMetrics.averageCharWidth() * 40); // Create widget for the meta data -#ifndef HAVE_BALOO - m_fileMetaDataWidget = new KFileMetaDataWidget(this); - connect(m_fileMetaDataWidget, &KFileMetaDataWidget::metaDataRequestFinished, - this, &DolphinFileMetaDataWidget::metaDataRequestFinished); - connect(m_fileMetaDataWidget, &KFileMetaDataWidget::urlActivated, - this, &DolphinFileMetaDataWidget::urlActivated); -#else m_fileMetaDataWidget = new Baloo::FileMetaDataWidget(this); connect(m_fileMetaDataWidget, &Baloo::FileMetaDataWidget::metaDataRequestFinished, this, &DolphinFileMetaDataWidget::metaDataRequestFinished); connect(m_fileMetaDataWidget, &Baloo::FileMetaDataWidget::urlActivated, this, &DolphinFileMetaDataWidget::urlActivated); -#endif m_fileMetaDataWidget->setForegroundRole(QPalette::ToolTipText); m_fileMetaDataWidget->setReadOnly(true); diff --git a/src/views/tooltips/dolphinfilemetadatawidget.h b/src/views/tooltips/dolphinfilemetadatawidget.h index 1e2cfadb67..b9dbd98a10 100644 --- a/src/views/tooltips/dolphinfilemetadatawidget.h +++ b/src/views/tooltips/dolphinfilemetadatawidget.h @@ -29,13 +29,9 @@ class KFileItemList; class QLabel; -#ifndef HAVE_BALOO -class KFileMetaDataWidget; -#else namespace Baloo { class FileMetaDataWidget; } -#endif /** * @brief Widget that shows the meta information and a preview of one @@ -79,11 +75,7 @@ signals: private: QLabel* m_preview; QLabel* m_name; -#ifndef HAVE_BALOO - KFileMetaDataWidget* m_fileMetaDataWidget; -#else Baloo::FileMetaDataWidget* m_fileMetaDataWidget; -#endif }; #endif