diff --git a/.gitignore b/.gitignore
index 48b02884c..efb24d97e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -50,3 +50,4 @@ CMakeLists.txt.user*
/build
/icon/*.png
/icon/ImageMagick
+src/build/**
diff --git a/src/NotepadNext/ApplicationSettings.cpp b/src/NotepadNext/ApplicationSettings.cpp
index 6f18558eb..2a04e6ea4 100644
--- a/src/NotepadNext/ApplicationSettings.cpp
+++ b/src/NotepadNext/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/NotepadNext/ApplicationSettings.h b/src/NotepadNext/ApplicationSettings.h
index 3150b14d9..c35c1bab9 100644
--- a/src/NotepadNext/ApplicationSettings.h
+++ b/src/NotepadNext/ApplicationSettings.h
@@ -87,6 +87,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/NotepadNext/EditorManager.cpp b/src/NotepadNext/EditorManager.cpp
index b6e91ee63..b44e07c3c 100644
--- a/src/NotepadNext/EditorManager.cpp
+++ b/src/NotepadNext/EditorManager.cpp
@@ -57,6 +57,11 @@ EditorManager::EditorManager(ApplicationSettings *settings, QObject *parent)
}
});
+ connect(settings, &ApplicationSettings::useTabsChanged, this, [=](bool b) {
+ for (auto &editor : getEditors()) {
+ editor->setUseTabs((b ? true : false));
+ }
+ });
connect(settings, &ApplicationSettings::showWhitespaceChanged, this, [=](bool b) {
// TODO: could make SCWS_VISIBLEALWAYS configurable via settings. Probably not worth
@@ -199,6 +204,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/NotepadNext/NotepadNextApplication.cpp b/src/NotepadNext/NotepadNextApplication.cpp
index 3e79b55df..ea68c5e77 100644
--- a/src/NotepadNext/NotepadNextApplication.cpp
+++ b/src/NotepadNext/NotepadNextApplication.cpp
@@ -161,6 +161,7 @@ bool NotepadNextApplication::init()
.addFunction("showToolBar", &ApplicationSettings::setShowToolBar)
.addFunction("showTabBar", &ApplicationSettings::setShowTabBar)
.addFunction("showStatusBar", &ApplicationSettings::setShowStatusBar)
+ .addFunction("getUseTabs", &ApplicationSettings::useTabs)
.endClass()
.endNamespace();
luabridge::setGlobal(luaState->L, settings, "settings");
@@ -315,9 +316,9 @@ void NotepadNextApplication::setEditorLanguage(ScintillaNext *editor, const QStr
getLuaState()->execute(R"(
local L = languages[languageName]
- if not skip_tabs then
- editor.UseTabs = (L.tabSettings or "tabs") == "tabs"
- end
+ --if not skip_tabs then
+ -- editor.UseTabs = (L.tabSettings or "tabs") == "tabs"
+ --end
if not skip_tabwidth then
editor.TabWidth = L.tabSize or 4
end
diff --git a/src/NotepadNext/dialogs/PreferencesDialog.cpp b/src/NotepadNext/dialogs/PreferencesDialog.cpp
index c58fe7cb0..b4b69e6ec 100644
--- a/src/NotepadNext/dialogs/PreferencesDialog.cpp
+++ b/src/NotepadNext/dialogs/PreferencesDialog.cpp
@@ -42,6 +42,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, [=](bool checked) {
diff --git a/src/NotepadNext/dialogs/PreferencesDialog.ui b/src/NotepadNext/dialogs/PreferencesDialog.ui
index ee7df5ec5..d752cca09 100644
--- a/src/NotepadNext/dialogs/PreferencesDialog.ui
+++ b/src/NotepadNext/dialogs/PreferencesDialog.ui
@@ -37,6 +37,13 @@
+ -
+
+
+ Set use tabs
+
+
+
-