1
0
mirror of https://invent.kde.org/system/dolphin synced 2024-07-04 17:30:55 +00:00

Introduce HAVE_TERMINAL

Source code should check for features detected during configure-time,
rather than checking for a specific OS.

See also commit 87e8d0ba5f.
This commit is contained in:
Elvis Angelaccio 2019-01-28 22:38:21 +01:00
parent 52c019c9cb
commit 8bc93b564c
6 changed files with 28 additions and 16 deletions

View File

@ -98,6 +98,13 @@ else()
message(WARNING "Baloo packages not found. They are needed for the metadata features of Dolphin (including the information panel).") message(WARNING "Baloo packages not found. They are needed for the metadata features of Dolphin (including the information panel).")
endif() endif()
# TODO: drop HAVE_TERMINAL once we are sure the terminal panel works on Windows too.
if(WIN32)
set(HAVE_TERMINAL FALSE)
else()
set(HAVE_TERMINAL TRUE)
endif()
add_subdirectory(src) add_subdirectory(src)
add_subdirectory(doc) add_subdirectory(doc)

View File

@ -4,6 +4,8 @@ configure_file(config-baloo.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-baloo.h)
configure_file(config-dolphin.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-dolphin.h) configure_file(config-dolphin.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-dolphin.h)
configure_file(config-terminal.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-terminal.h)
add_definitions( add_definitions(
-DTRANSLATION_DOMAIN=\"dolphin\" -DTRANSLATION_DOMAIN=\"dolphin\"
) )

View File

@ -0,0 +1 @@
#cmakedefine HAVE_TERMINAL

View File

@ -21,6 +21,7 @@
#include "dolphinmainwindow.h" #include "dolphinmainwindow.h"
#include "config-terminal.h"
#include "global.h" #include "global.h"
#include "dolphindockwidget.h" #include "dolphindockwidget.h"
#include "dolphincontextmenu.h" #include "dolphincontextmenu.h"
@ -1213,7 +1214,7 @@ void DolphinMainWindow::setupActions()
compareFiles->setEnabled(false); compareFiles->setEnabled(false);
connect(compareFiles, &QAction::triggered, this, &DolphinMainWindow::compareFiles); connect(compareFiles, &QAction::triggered, this, &DolphinMainWindow::compareFiles);
#ifndef Q_OS_WIN #ifdef HAVE_TERMINAL
if (KAuthorized::authorize(QStringLiteral("shell_access"))) { if (KAuthorized::authorize(QStringLiteral("shell_access"))) {
QAction* openTerminal = actionCollection()->addAction(QStringLiteral("open_terminal")); QAction* openTerminal = actionCollection()->addAction(QStringLiteral("open_terminal"));
openTerminal->setText(i18nc("@action:inmenu Tools", "Open Terminal")); openTerminal->setText(i18nc("@action:inmenu Tools", "Open Terminal"));
@ -1332,7 +1333,7 @@ void DolphinMainWindow::setupDockWidgets()
this, &DolphinMainWindow::showErrorMessage); this, &DolphinMainWindow::showErrorMessage);
// Setup "Terminal" // Setup "Terminal"
#ifndef Q_OS_WIN #ifdef HAVE_TERMINAL
if (KAuthorized::authorize(QStringLiteral("shell_access"))) { if (KAuthorized::authorize(QStringLiteral("shell_access"))) {
DolphinDockWidget* terminalDock = new DolphinDockWidget(i18nc("@title:window Shell terminal", "Terminal")); DolphinDockWidget* terminalDock = new DolphinDockWidget(i18nc("@title:window Shell terminal", "Terminal"));
terminalDock->setLocked(lock); terminalDock->setLocked(lock);

View File

@ -41,9 +41,9 @@ ConfirmationsSettingsPage::ConfirmationsSettingsPage(QWidget* parent) :
m_confirmEmptyTrash(nullptr), m_confirmEmptyTrash(nullptr),
m_confirmDelete(nullptr), m_confirmDelete(nullptr),
#ifndef Q_OS_WIN #ifdef HAVE_TERMINAL
m_confirmClosingTerminalRunningProgram(nullptr), m_confirmClosingTerminalRunningProgram(nullptr),
#endif #endif
m_confirmClosingMultipleTabs(nullptr) m_confirmClosingMultipleTabs(nullptr)
{ {
@ -67,10 +67,10 @@ ConfirmationsSettingsPage::ConfirmationsSettingsPage(QWidget* parent) :
m_confirmClosingMultipleTabs = new QCheckBox(i18nc("@option:check Ask for confirmation in Dolphin when", m_confirmClosingMultipleTabs = new QCheckBox(i18nc("@option:check Ask for confirmation in Dolphin when",
"Closing windows with multiple tabs"), this); "Closing windows with multiple tabs"), this);
#ifndef Q_OS_WIN #ifdef HAVE_TERMINAL
m_confirmClosingTerminalRunningProgram = new QCheckBox(i18nc("@option:check Ask for confirmation when", m_confirmClosingTerminalRunningProgram = new QCheckBox(i18nc("@option:check Ask for confirmation when",
"Closing windows with a program running in the Terminal panel"), this); "Closing windows with a program running in the Terminal panel"), this);
#endif #endif
topLayout->addWidget(confirmLabelKde); topLayout->addWidget(confirmLabelKde);
topLayout->addWidget(m_confirmMoveToTrash); topLayout->addWidget(m_confirmMoveToTrash);
@ -81,9 +81,9 @@ ConfirmationsSettingsPage::ConfirmationsSettingsPage(QWidget* parent) :
topLayout->addWidget(confirmLabelDolphin); topLayout->addWidget(confirmLabelDolphin);
topLayout->addWidget(m_confirmClosingMultipleTabs); topLayout->addWidget(m_confirmClosingMultipleTabs);
#ifndef Q_OS_WIN #ifdef HAVE_TERMINAL
topLayout->addWidget(m_confirmClosingTerminalRunningProgram); topLayout->addWidget(m_confirmClosingTerminalRunningProgram);
#endif #endif
topLayout->addStretch(); topLayout->addStretch();
@ -95,9 +95,9 @@ ConfirmationsSettingsPage::ConfirmationsSettingsPage(QWidget* parent) :
connect(m_confirmScriptExecution, &QCheckBox::toggled, this, &ConfirmationsSettingsPage::changed); connect(m_confirmScriptExecution, &QCheckBox::toggled, this, &ConfirmationsSettingsPage::changed);
connect(m_confirmClosingMultipleTabs, &QCheckBox::toggled, this, &ConfirmationsSettingsPage::changed); connect(m_confirmClosingMultipleTabs, &QCheckBox::toggled, this, &ConfirmationsSettingsPage::changed);
#ifndef Q_OS_WIN #ifdef HAVE_TERMINAL
connect(m_confirmClosingTerminalRunningProgram, &QCheckBox::toggled, this, &ConfirmationsSettingsPage::changed); connect(m_confirmClosingTerminalRunningProgram, &QCheckBox::toggled, this, &ConfirmationsSettingsPage::changed);
#endif #endif
} }
ConfirmationsSettingsPage::~ConfirmationsSettingsPage() ConfirmationsSettingsPage::~ConfirmationsSettingsPage()
@ -123,9 +123,9 @@ void ConfirmationsSettingsPage::applySettings()
GeneralSettings* settings = GeneralSettings::self(); GeneralSettings* settings = GeneralSettings::self();
settings->setConfirmClosingMultipleTabs(m_confirmClosingMultipleTabs->isChecked()); settings->setConfirmClosingMultipleTabs(m_confirmClosingMultipleTabs->isChecked());
#ifndef Q_OS_WIN #ifdef HAVE_TERMINAL
settings->setConfirmClosingTerminalRunningProgram(m_confirmClosingTerminalRunningProgram->isChecked()); settings->setConfirmClosingTerminalRunningProgram(m_confirmClosingTerminalRunningProgram->isChecked());
#endif #endif
settings->save(); settings->save();
} }
@ -157,8 +157,8 @@ void ConfirmationsSettingsPage::loadSettings()
m_confirmClosingMultipleTabs->setChecked(GeneralSettings::confirmClosingMultipleTabs()); m_confirmClosingMultipleTabs->setChecked(GeneralSettings::confirmClosingMultipleTabs());
#ifndef Q_OS_WIN #ifdef HAVE_TERMINAL
m_confirmClosingTerminalRunningProgram->setChecked(GeneralSettings::confirmClosingTerminalRunningProgram()); m_confirmClosingTerminalRunningProgram->setChecked(GeneralSettings::confirmClosingTerminalRunningProgram());
#endif #endif
} }

View File

@ -19,6 +19,7 @@
#ifndef CONFIRMATIONSSETTINGSPAGE_H #ifndef CONFIRMATIONSSETTINGSPAGE_H
#define CONFIRMATIONSSETTINGSPAGE_H #define CONFIRMATIONSSETTINGSPAGE_H
#include "config-terminal.h"
#include "settings/settingspagebase.h" #include "settings/settingspagebase.h"
class QCheckBox; class QCheckBox;
@ -48,9 +49,9 @@ private:
QCheckBox* m_confirmEmptyTrash; QCheckBox* m_confirmEmptyTrash;
QCheckBox* m_confirmDelete; QCheckBox* m_confirmDelete;
#ifndef Q_OS_WIN #ifdef HAVE_TERMINAL
QCheckBox* m_confirmClosingTerminalRunningProgram; QCheckBox* m_confirmClosingTerminalRunningProgram;
#endif #endif
QCheckBox* m_confirmClosingMultipleTabs; QCheckBox* m_confirmClosingMultipleTabs;
QCheckBox* m_confirmScriptExecution; QCheckBox* m_confirmScriptExecution;