aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/haskell/haskellsettings.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/haskell/haskellsettings.cpp')
-rw-r--r--src/plugins/haskell/haskellsettings.cpp58
1 files changed, 58 insertions, 0 deletions
diff --git a/src/plugins/haskell/haskellsettings.cpp b/src/plugins/haskell/haskellsettings.cpp
new file mode 100644
index 00000000000..7b2bbc7fd38
--- /dev/null
+++ b/src/plugins/haskell/haskellsettings.cpp
@@ -0,0 +1,58 @@
+// Copyright (c) 2017 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+#include "haskellsettings.h"
+
+#include "haskellconstants.h"
+#include "haskelltr.h"
+
+#include <utils/hostosinfo.h>
+#include <utils/layoutbuilder.h>
+
+using namespace Utils;
+
+namespace Haskell::Internal {
+
+static HaskellSettings *theSettings;
+
+HaskellSettings &settings()
+{
+ return *theSettings;
+}
+
+HaskellSettings::HaskellSettings()
+{
+ theSettings = this;
+
+ setId(Constants::OPTIONS_GENERAL);
+ setDisplayName(Tr::tr("General"));
+ setCategory("J.Z.Haskell");
+ setDisplayCategory(Tr::tr("Haskell"));
+ setCategoryIconPath(":/haskell/images/settingscategory_haskell.png");
+
+ stackPath.setSettingsKey("Haskell/StackExecutable");
+ stackPath.setExpectedKind(PathChooser::ExistingCommand);
+ stackPath.setPromptDialogTitle(Tr::tr("Choose Stack Executable"));
+ stackPath.setCommandVersionArguments({"--version"});
+
+ // stack from brew or the installer script from https://docs.haskellstack.org
+ // install to /usr/local/bin.
+ stackPath.setDefaultFilePath(HostOsInfo::isAnyUnixHost()
+ ? FilePath::fromString("/usr/local/bin/stack")
+ : FilePath::fromString("stack"));
+
+ setLayouter([this] {
+ using namespace Layouting;
+ return Column {
+ Group {
+ title(Tr::tr("General")),
+ Row { Tr::tr("Stack executable:"), stackPath }
+ },
+ st,
+ };
+ });
+
+ readSettings();
+}
+
+} // Haskell::Internal