diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/CMakeLists.txt | 1 | ||||
| -rw-r--r-- | src/settings/interface/folderstabssettingspage.cpp | 19 |
2 files changed, 20 insertions, 0 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index bbf882a8a..ce5b54613 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -526,6 +526,7 @@ if(NOT WIN32) # The settings are still accessible from the hamburger menu add_library(kcm_dolphinviewmodes MODULE) add_library(kcm_dolphingeneral MODULE) + target_compile_definitions(kcm_dolphingeneral PUBLIC IS_KCM) target_sources(kcm_dolphinviewmodes PRIVATE settings/kcm/kcmdolphinviewmodes.cpp diff --git a/src/settings/interface/folderstabssettingspage.cpp b/src/settings/interface/folderstabssettingspage.cpp index 6fad3d1c2..0212f624c 100644 --- a/src/settings/interface/folderstabssettingspage.cpp +++ b/src/settings/interface/folderstabssettingspage.cpp @@ -13,6 +13,9 @@ #include <KMessageBox> #include <KProtocolManager> +#ifndef IS_KCM +#include <QApplication> +#endif #include <QButtonGroup> #include <QCheckBox> #include <QFileDialog> @@ -71,9 +74,11 @@ FoldersTabsSettingsPage::FoldersTabsSettingsPage(QWidget *parent) QHBoxLayout *buttonBoxLayout = new QHBoxLayout(m_buttonBoxLayoutContainer); buttonBoxLayout->setContentsMargins(0, 0, 0, 0); +#ifndef IS_KCM QPushButton *useCurrentButton = new QPushButton(i18nc("@action:button", "Use Current Location")); buttonBoxLayout->addWidget(useCurrentButton); connect(useCurrentButton, &QPushButton::clicked, this, &FoldersTabsSettingsPage::useCurrentLocation); +#endif QPushButton *useDefaultButton = new QPushButton(i18nc("@action:button", "Use Default Location")); buttonBoxLayout->addWidget(useDefaultButton); connect(useDefaultButton, &QPushButton::clicked, this, &FoldersTabsSettingsPage::useDefaultLocation); @@ -241,6 +246,20 @@ void FoldersTabsSettingsPage::selectHomeUrl() void FoldersTabsSettingsPage::useCurrentLocation() { +#ifndef IS_KCM + DolphinMainWindow *mainWindow = nullptr; + const auto topLevelWidgets = QApplication::allWidgets(); + for (const auto widget : topLevelWidgets) { + if (qobject_cast<DolphinMainWindow *>(widget)) { + mainWindow = static_cast<DolphinMainWindow *>(widget); + break; + } + } + + if (mainWindow) { + m_url = mainWindow->activeViewContainer()->url(); + } +#endif m_homeUrl->setText(m_url.toDisplayString(QUrl::PreferLocalFile)); } |
