diff --git a/src/ApplicationSettings.cpp b/src/ApplicationSettings.cpp
index 2193f5f2c..f5c38dc3b 100644
--- a/src/ApplicationSettings.cpp
+++ b/src/ApplicationSettings.cpp
@@ -45,6 +45,7 @@ CREATE_SETTING(Gui, ShowToolBar, showToolBar, bool, true)
CREATE_SETTING(Gui, ShowTabBar, showTabBar, bool, true)
CREATE_SETTING(Gui, ShowStatusBar, showStatusBar, bool, true)
CREATE_SETTING(Gui, CenterSearchDialog, centerSearchDialog, bool, true)
+CREATE_SETTING(Gui, UseTabs, useTabs, bool, true)
CREATE_SETTING(Gui, TabsClosable, tabsClosable, bool, true)
CREATE_SETTING(Gui, ExitOnLastTabClosed, exitOnLastTabClosed, bool, false)
diff --git a/src/ApplicationSettings.h b/src/ApplicationSettings.h
index 481475ef3..d6b7e95ab 100644
--- a/src/ApplicationSettings.h
+++ b/src/ApplicationSettings.h
@@ -93,6 +93,7 @@ class ApplicationSettings : public QSettings
DEFINE_SETTING(ShowTabBar, showTabBar, bool)
DEFINE_SETTING(ShowStatusBar, showStatusBar, bool)
DEFINE_SETTING(CenterSearchDialog, centerSearchDialog, bool)
+ DEFINE_SETTING(UseTabs, useTabs, bool)
DEFINE_SETTING(TabsClosable, tabsClosable, bool)
DEFINE_SETTING(ExitOnLastTabClosed, exitOnLastTabClosed, bool)
diff --git a/src/EditorManager.cpp b/src/EditorManager.cpp
index 2f04f674c..3659ee660 100644
--- a/src/EditorManager.cpp
+++ b/src/EditorManager.cpp
@@ -58,6 +58,11 @@ EditorManager::EditorManager(ApplicationSettings *settings, QObject *parent)
}
});
+ connect(settings, &ApplicationSettings::useTabsChanged, this, [=, this](bool b) {
+ for (auto &editor : getEditors()) {
+ editor->setUseTabs((b ? true : false));
+ }
+ });
connect(settings, &ApplicationSettings::showWhitespaceChanged, this, [=, this](bool b) {
// TODO: could make SCWS_VISIBLEALWAYS configurable via settings. Probably not worth
@@ -295,6 +300,7 @@ void EditorManager::setupEditor(ScintillaNext *editor)
editor->setTabDrawMode(SCTD_STRIKEOUT);
editor->setTabWidth(4);
editor->setBackSpaceUnIndents(true);
+ editor->setUseTabs(settings->useTabs() ? true : false);
editor->setCaretLineVisible(true);
editor->setCaretLineVisibleAlways(true);
diff --git a/src/dialogs/PreferencesDialog.cpp b/src/dialogs/PreferencesDialog.cpp
index dbdc93755..52485ce5d 100644
--- a/src/dialogs/PreferencesDialog.cpp
+++ b/src/dialogs/PreferencesDialog.cpp
@@ -45,6 +45,7 @@ PreferencesDialog::PreferencesDialog(ApplicationSettings *settings, QWidget *par
MapSettingToCheckBox(ui->checkBoxToolBar, &ApplicationSettings::showToolBar, &ApplicationSettings::setShowToolBar, &ApplicationSettings::showToolBarChanged);
MapSettingToCheckBox(ui->checkBoxStatusBar, &ApplicationSettings::showStatusBar, &ApplicationSettings::setShowStatusBar, &ApplicationSettings::showStatusBarChanged);
MapSettingToCheckBox(ui->checkBoxRecenterSearchDialog, &ApplicationSettings::centerSearchDialog, &ApplicationSettings::setCenterSearchDialog, &ApplicationSettings::centerSearchDialogChanged);
+ MapSettingToCheckBox(ui->checkBoxSetUseTabs, &ApplicationSettings::useTabs, &ApplicationSettings::setUseTabs, &ApplicationSettings::useTabsChanged);
MapSettingToGroupBox(ui->gbxRestorePreviousSession, &ApplicationSettings::restorePreviousSession, &ApplicationSettings::setRestorePreviousSession, &ApplicationSettings::restorePreviousSessionChanged);
connect(ui->gbxRestorePreviousSession, &QGroupBox::toggled, this, [=, this](bool checked) {
diff --git a/src/dialogs/PreferencesDialog.ui b/src/dialogs/PreferencesDialog.ui
index 625699592..9e3fcbdba 100644
--- a/src/dialogs/PreferencesDialog.ui
+++ b/src/dialogs/PreferencesDialog.ui
@@ -52,6 +52,13 @@
+ -
+
+
+ Set use tabs
+
+
+
-