diff --git a/bin/app/data/ApplicationSettings_template.xml b/bin/app/data/ApplicationSettings_template.xml
index 4926a354..7defdc5b 100644
--- a/bin/app/data/ApplicationSettings_template.xml
+++ b/bin/app/data/ApplicationSettings_template.xml
@@ -40,13 +40,11 @@
-
-
-
+
diff --git a/bin/app/data/gui/setting_window/window.css b/bin/app/data/gui/setting_window/window.css
index 7ae5d71a..75c5bc12 100644
--- a/bin/app/data/gui/setting_window/window.css
+++ b/bin/app/data/gui/setting_window/window.css
@@ -31,6 +31,20 @@ QLineEdit:disabled {
font-weight: bold;
}
+#form #help {
+ background: transparent;
+ border: 1px solid #575656;
+ border-radius: 9px;
+ color: #575656;
+ height: 16px;
+ width: 16px;
+}
+
+#form #help:hover {
+ border-color: black;
+ color: black;
+}
+
#moreButton {
background-color: rgba(255, 255, 255, 200);
border: 1px solid lightgray;
diff --git a/src/app/qt/view/QtMainView.cpp b/src/app/qt/view/QtMainView.cpp
index dc909403..a64579de 100644
--- a/src/app/qt/view/QtMainView.cpp
+++ b/src/app/qt/view/QtMainView.cpp
@@ -68,7 +68,7 @@ void QtMainView::setStatusBar(QStatusBar* statusbar)
void QtMainView::hideStartScreen()
{
- m_window->hideScreens();
+ m_window->clearWindows();
}
void QtMainView::setTitle(const std::string& title)
diff --git a/src/app/qt/window/QtAbout.cpp b/src/app/qt/window/QtAbout.cpp
index 4c38317b..88eabf67 100644
--- a/src/app/qt/window/QtAbout.cpp
+++ b/src/app/qt/window/QtAbout.cpp
@@ -95,20 +95,18 @@ void QtAbout::setup()
closeButton->setObjectName("closeButton");
closeButton->move(320, 20);
- connect(closeButton, SIGNAL(clicked()), this, SLOT(handleDoneButtonPress()));
+ connect(closeButton, SIGNAL(clicked()), this, SLOT(handleCloseButtonPress()));
+}
+
+void QtAbout::handleCloseButtonPress()
+{
+ emit finished();
}
void QtAbout::handleCancelButtonPress()
{
- emit canceled();
}
void QtAbout::handleUpdateButtonPress()
{
- close();
-}
-
-void QtAbout::handleDoneButtonPress()
-{
- close();
}
diff --git a/src/app/qt/window/QtAbout.h b/src/app/qt/window/QtAbout.h
index 0c024cb5..d30c4d1a 100644
--- a/src/app/qt/window/QtAbout.h
+++ b/src/app/qt/window/QtAbout.h
@@ -18,14 +18,10 @@ public:
virtual void setup() override;
private slots:
+ void handleCloseButtonPress();
+
void handleCancelButtonPress();
void handleUpdateButtonPress();
- void handleDoneButtonPress();
-
-private:
- QPushButton* m_cancelButton;
- QPushButton* m_updateButton;
-
};
#endif //QT_ABOUT_H
diff --git a/src/app/qt/window/QtAboutLicense.cpp b/src/app/qt/window/QtAboutLicense.cpp
index db13806a..3e86188d 100644
--- a/src/app/qt/window/QtAboutLicense.cpp
+++ b/src/app/qt/window/QtAboutLicense.cpp
@@ -57,15 +57,9 @@ void QtAboutLicense::populateForm(QFormLayout* layout)
void QtAboutLicense::handleCancelButtonPress()
{
- emit canceled();
}
void QtAboutLicense::handleUpdateButtonPress()
{
- close();
-}
-
-void QtAboutLicense::handleDoneButtonPress()
-{
- close();
+ emit finished();
}
diff --git a/src/app/qt/window/QtAboutLicense.h b/src/app/qt/window/QtAboutLicense.h
index 00f86616..deae2ab1 100644
--- a/src/app/qt/window/QtAboutLicense.h
+++ b/src/app/qt/window/QtAboutLicense.h
@@ -16,18 +16,13 @@ public:
QSize sizeHint() const Q_DECL_OVERRIDE;
virtual void setup() override;
+
protected:
virtual void populateForm(QFormLayout* layout) override;
private slots:
void handleCancelButtonPress();
void handleUpdateButtonPress();
- void handleDoneButtonPress();
-
-private:
- QPushButton* m_cancelButton;
- QPushButton* m_updateButton;
-
};
#endif //QT_ABOUT_LICENSE_H
diff --git a/src/app/qt/window/QtApplicationSettingsScreen.cpp b/src/app/qt/window/QtApplicationSettingsScreen.cpp
index e26d3ce2..f5687fa4 100644
--- a/src/app/qt/window/QtApplicationSettingsScreen.cpp
+++ b/src/app/qt/window/QtApplicationSettingsScreen.cpp
@@ -45,18 +45,21 @@ void QtApplicationSettingsScreen::load()
void QtApplicationSettingsScreen::populateForm(QFormLayout* layout)
{
int minimumWidthForSecondCol = 360;
+ QPushButton* helpButton;
- QLabel* includePathsLabel = new QLabel("Include Paths");
+ QWidget* includePathsWidget = createLabelWithHelpButton("Header\nSearch Paths", &helpButton);
+ connect(helpButton, SIGNAL(clicked()), this, SLOT(handleIncludePathHelpPress()));
m_includePaths = new QtDirectoryListBox(this);
m_includePaths->setMinimumWidth(minimumWidthForSecondCol);
- layout->addRow(includePathsLabel, m_includePaths);
+ layout->addRow(includePathsWidget, m_includePaths);
if (QSysInfo::macVersion() != QSysInfo::MV_None)
{
- QLabel* frameworkPathsLabel = new QLabel("Framework Paths");
+ QWidget* frameworkPathsWidget = createLabelWithHelpButton("Framework\nSearch Paths", &helpButton);
+ connect(helpButton, SIGNAL(clicked()), this, SLOT(handleFrameworkPathHelpPress()));
m_frameworkPaths = new QtDirectoryListBox(this);
m_frameworkPaths->setMinimumWidth(minimumWidthForSecondCol);
- layout->addRow(frameworkPathsLabel, m_frameworkPaths);
+ layout->addRow(frameworkPathsWidget, m_frameworkPaths);
}
}
@@ -81,3 +84,21 @@ void QtApplicationSettingsScreen::handleUpdateButtonPress()
MessageRefresh().dispatch();
emit finished();
}
+
+void QtApplicationSettingsScreen::handleIncludePathHelpPress()
+{
+ showHelpMessage(
+ "Header Search Paths define where additional headers, that your project depends on, are found. Usually they are "
+ "header files of frameworks or libraries that your project uses. These files won't be analysed, but Coati needs "
+ "them for correct analysis.\n\n"
+ "Header Search Paths defined here will be used for all projects."
+ );
+}
+
+void QtApplicationSettingsScreen::handleFrameworkPathHelpPress()
+{
+ showHelpMessage(
+ "Framework Search Paths define where MacOS framework containers, that your project depends on, are found.\n\n"
+ "Framework Search Paths defined here will be used for all projects."
+ );
+}
diff --git a/src/app/qt/window/QtApplicationSettingsScreen.h b/src/app/qt/window/QtApplicationSettingsScreen.h
index 7bf07095..0b20b04b 100644
--- a/src/app/qt/window/QtApplicationSettingsScreen.h
+++ b/src/app/qt/window/QtApplicationSettingsScreen.h
@@ -29,6 +29,9 @@ private slots:
void handleCancelButtonPress();
void handleUpdateButtonPress();
+ void handleIncludePathHelpPress();
+ void handleFrameworkPathHelpPress();
+
private:
QPushButton* m_cancelButton;
QPushButton* m_updateButton;
diff --git a/src/app/qt/window/QtMainWindow.cpp b/src/app/qt/window/QtMainWindow.cpp
index 2ff91f0f..578ae9d5 100644
--- a/src/app/qt/window/QtMainWindow.cpp
+++ b/src/app/qt/window/QtMainWindow.cpp
@@ -45,7 +45,6 @@ void QtViewToggle::toggledByUI()
}
QtMainWindow::QtMainWindow()
- : m_startScreenWasVisible(false)
{
setObjectName("QtMainWindow");
setCentralWidget(nullptr);
@@ -72,25 +71,12 @@ QtMainWindow::QtMainWindow()
void QtMainWindow::init()
{
- ApplicationSettings* appSettings = ApplicationSettings::getInstance().get();
-
- if (appSettings->getUserHasSeenSettings())
- {
- showStartScreen();
- }
- else
- {
- openSettings();
- m_startScreenWasVisible = true;
-
- appSettings->setUserHasSeenSettings(true);
- appSettings->save();
- }
+ showStartScreen();
}
QtMainWindow::~QtMainWindow()
{
- if(m_recentProjectAction)
+ if (m_recentProjectAction)
{
delete [] m_recentProjectAction;
}
@@ -192,118 +178,114 @@ bool QtMainWindow::event(QEvent* event)
return QMainWindow::event(event);
}
+void QtMainWindow::pushWindow(QWidget* window)
+{
+ if (m_windowStack.size())
+ {
+ m_windowStack.back()->hide();
+ }
+
+ window->show();
+
+ m_windowStack.push_back(window);
+}
+
+void QtMainWindow::popWindow()
+{
+ if (m_windowStack.size())
+ {
+ m_windowStack.back()->hide();
+ m_windowStack.pop_back();
+ }
+
+ if (m_windowStack.size())
+ {
+ m_windowStack.back()->show();
+ }
+}
+
+void QtMainWindow::clearWindows()
+{
+ if (m_windowStack.size())
+ {
+ m_windowStack.back()->hide();
+ }
+
+ m_windowStack.clear();
+}
+
void QtMainWindow::about()
{
- hideScreens();
-
if (!m_aboutWindow)
{
m_aboutWindow = std::make_shared(this);
m_aboutWindow->setup();
- connect(m_aboutWindow.get(), SIGNAL(finished()), this, SLOT(closeScreens()));
- connect(m_aboutWindow.get(), SIGNAL(canceled()), this, SLOT(restoreScreens()));
+ connect(m_aboutWindow.get(), SIGNAL(finished()), this, SLOT(popWindow()));
}
- m_aboutWindow->show();
-}
-
-void QtMainWindow::hideScreens()
-{
- if (m_applicationSettingsScreen)
- {
- m_applicationSettingsScreen->hide();
- }
-
- if (m_startScreen)
- {
- m_startScreen->hide();
- }
-
- if (m_newProjectDialog)
- {
- m_newProjectDialog->hide();
- }
-
- if(m_licenseWindow)
- {
- m_licenseWindow->hide();
- }
-
- if(m_aboutWindow)
- {
- m_aboutWindow->hide();
- }
-}
-
-void QtMainWindow::closeScreens()
-{
- hideScreens();
- m_startScreenWasVisible = false;
-}
-
-void QtMainWindow::restoreScreens()
-{
- if (m_startScreenWasVisible)
- {
- showStartScreen();
- }
- else
- {
- closeScreens();
- }
+ pushWindow(m_aboutWindow.get());
}
void QtMainWindow::openSettings()
{
- hideScreens();
-
if (!m_applicationSettingsScreen)
{
m_applicationSettingsScreen = std::make_shared(this);
m_applicationSettingsScreen->setup();
- connect(m_applicationSettingsScreen.get(), SIGNAL(finished()), this, SLOT(restoreScreens()));
- connect(m_applicationSettingsScreen.get(), SIGNAL(canceled()), this, SLOT(restoreScreens()));
+
+ connect(m_applicationSettingsScreen.get(), SIGNAL(finished()), this, SLOT(popWindow()));
+ connect(m_applicationSettingsScreen.get(), SIGNAL(canceled()), this, SLOT(popWindow()));
}
m_applicationSettingsScreen->load();
- m_applicationSettingsScreen->show();
+ pushWindow(m_applicationSettingsScreen.get());
+}
+
+void QtMainWindow::showLicenses()
+{
+ if (!m_licenseWindow)
+ {
+ m_licenseWindow = std::make_shared(this);
+ m_licenseWindow->setup();
+
+ connect(m_licenseWindow.get(), SIGNAL(finished()), this, SLOT(popWindow()));
+ }
+
+ pushWindow(m_licenseWindow.get());
}
void QtMainWindow::showStartScreen()
{
- hideScreens();
-
if (!m_startScreen)
{
m_startScreen = std::make_shared(this);
m_startScreen->setup();
- connect(m_startScreen.get(), SIGNAL(finished()), this, SLOT(closeScreens()));
- connect(m_startScreen.get(), SIGNAL(canceled()), this, SLOT(closeScreens()));
+
+ connect(m_startScreen.get(), SIGNAL(finished()), this, SLOT(popWindow()));
+ connect(m_startScreen.get(), SIGNAL(canceled()), this, SLOT(popWindow()));
connect(m_startScreen.get(), SIGNAL(openOpenProjectDialog()), this, SLOT(openProject()));
connect(m_startScreen.get(), SIGNAL(openNewProjectDialog()), this, SLOT(newProject()));
}
- m_startScreen->show();
- m_startScreenWasVisible = true;
+ pushWindow(m_startScreen.get());
}
void QtMainWindow::newProject()
{
- hideScreens();
-
if (!m_newProjectDialog)
{
m_newProjectDialog = std::make_shared(this);
m_newProjectDialog->setup();
- connect(m_newProjectDialog.get(), SIGNAL(finished()), this, SLOT(closeScreens()));
- connect(m_newProjectDialog.get(), SIGNAL(canceled()), this, SLOT(restoreScreens()));
+ connect(m_newProjectDialog.get(), SIGNAL(finished()), this, SLOT(clearWindows()));
+ connect(m_newProjectDialog.get(), SIGNAL(canceled()), this, SLOT(popWindow()));
+ connect(m_newProjectDialog.get(), SIGNAL(showPreferences()), this, SLOT(openSettings()));
}
m_newProjectDialog->loadEmpty();
- m_newProjectDialog->show();
+ pushWindow(m_newProjectDialog.get());
}
void QtMainWindow::openProject(const QString &path)
@@ -318,7 +300,7 @@ void QtMainWindow::openProject(const QString &path)
if (!fileName.isEmpty())
{
MessageLoadProject(fileName.toStdString()).dispatch();
- closeScreens();
+ clearWindows();
}
}
@@ -416,7 +398,7 @@ void QtMainWindow::toggleView(View* view, bool fromMenu)
void QtMainWindow::handleEscapeShortcut()
{
- closeScreens();
+ popWindow();
MessageInterruptTasks().dispatch();
}
@@ -489,14 +471,6 @@ void QtMainWindow::setWindowSettingsPath(const std::string& windowSettingsPath)
m_windowSettingsPath = windowSettingsPath;
}
-void QtMainWindow::showLicenses()
-{
- hideScreens();
- m_licenseWindow = std::make_shared(this);
- m_licenseWindow->setup();
- m_licenseWindow->show();
-}
-
void QtMainWindow::setupEditMenu()
{
QMenu *menu = new QMenu(tr("&Edit"), this);
diff --git a/src/app/qt/window/QtMainWindow.h b/src/app/qt/window/QtMainWindow.h
index f9bbb614..a5b7de5e 100644
--- a/src/app/qt/window/QtMainWindow.h
+++ b/src/app/qt/window/QtMainWindow.h
@@ -56,12 +56,14 @@ protected:
bool event(QEvent* event);
public slots:
- void about();
- void hideScreens();
- void closeScreens();
- void restoreScreens();
+ void pushWindow(QWidget* window);
+ void popWindow();
+ void clearWindows();
+ void about();
void openSettings();
+ void showLicenses();
+
void showStartScreen();
void newProject();
void openProject(const QString &path = QString());
@@ -76,7 +78,6 @@ public slots:
void saveProject();
void saveAsProject();
- void showLicenses();
void undo();
void redo();
@@ -121,9 +122,9 @@ private:
std::shared_ptr m_licenseWindow;
std::shared_ptr m_aboutWindow;
- QShortcut* m_escapeShortcut;
+ std::vector m_windowStack;
- bool m_startScreenWasVisible;
+ QShortcut* m_escapeShortcut;
static std::string m_windowSettingsPath;
};
diff --git a/src/app/qt/window/QtProjectSetupScreen.cpp b/src/app/qt/window/QtProjectSetupScreen.cpp
index eaabe7b2..4b216215 100644
--- a/src/app/qt/window/QtProjectSetupScreen.cpp
+++ b/src/app/qt/window/QtProjectSetupScreen.cpp
@@ -83,6 +83,13 @@ void QtProjectSetupScreen::clear()
void QtProjectSetupScreen::setup()
{
setupForm();
+
+ QPushButton* preferencesButton = new QPushButton("Preferences");
+ preferencesButton->setObjectName("windowButton");
+ connect(preferencesButton, SIGNAL(clicked()), this, SLOT(handlePreferencesButtonPress()));
+
+ m_buttonsLayout->insertWidget(2, preferencesButton);
+ m_buttonsLayout->insertStretch(3);
}
void QtProjectSetupScreen::loadEmpty()
@@ -131,22 +138,27 @@ void QtProjectSetupScreen::populateForm(QFormLayout* layout)
language->insertItem(0, "C++");
layout->addRow(languageLabel, language);
- QLabel* sourcePathsLabel = new QLabel("Source Paths");
+ QPushButton* helpButton;
+
+ QWidget* sourcePathsWidget = createLabelWithHelpButton("Source Paths", &helpButton);
+ connect(helpButton, SIGNAL(clicked()), this, SLOT(handleSourcePathHelpPress()));
m_sourcePaths = new QtDirectoryListBox(this);
m_sourcePaths->setMinimumWidth(minimumWidthForSecondCol);
- layout->addRow(sourcePathsLabel, m_sourcePaths);
+ layout->addRow(sourcePathsWidget, m_sourcePaths);
- QLabel* includePathsLabel = new QLabel("Include Paths");
+ QWidget* includePathsWidget = createLabelWithHelpButton("Header\nSearch Paths", &helpButton);
+ connect(helpButton, SIGNAL(clicked()), this, SLOT(handleIncludePathHelpPress()));
m_includePaths = new QtDirectoryListBox(this);
m_includePaths->setMinimumWidth(minimumWidthForSecondCol);
- layout->addRow(includePathsLabel, m_includePaths);
+ layout->addRow(includePathsWidget, m_includePaths);
if (QSysInfo::macVersion() != QSysInfo::MV_None)
{
- QLabel* frameworkPathsLabel = new QLabel("Framework Paths");
+ QWidget* frameworkPathsWidget = createLabelWithHelpButton("Framework\nSearch Paths", &helpButton);
+ connect(helpButton, SIGNAL(clicked()), this, SLOT(handleFrameworkPathHelpPress()));
m_frameworkPaths = new QtDirectoryListBox(this);
m_frameworkPaths->setMinimumWidth(minimumWidthForSecondCol);
- layout->addRow(frameworkPathsLabel, m_frameworkPaths);
+ layout->addRow(frameworkPathsWidget, m_frameworkPaths);
}
}
@@ -202,3 +214,34 @@ void QtProjectSetupScreen::handleUpdateButtonPress()
emit finished();
}
+
+void QtProjectSetupScreen::handleSourcePathHelpPress()
+{
+ showHelpMessage(
+ "Source Paths define the files and directories that will be analysed by Coati. Usually these are the source "
+ "files of your project or a subset of them."
+ );
+}
+
+void QtProjectSetupScreen::handleIncludePathHelpPress()
+{
+ showHelpMessage(
+ "Header Search Paths define where additional headers, that your project depends on, are found. Usually they are "
+ "header files of frameworks or libraries that your project uses. These files won't be analysed, but Coati needs "
+ "them for correct analysis.\n\n"
+ "Please note that you can define Header Search Paths for all your projects in Coati's preferences."
+ );
+}
+
+void QtProjectSetupScreen::handleFrameworkPathHelpPress()
+{
+ showHelpMessage(
+ "Framework Search Paths define where MacOS framework containers, that your project depends on, are found.\n\n"
+ "Please note that you can define Framework Search Paths for all your projects in Coati's preferences."
+ );
+}
+
+void QtProjectSetupScreen::handlePreferencesButtonPress()
+{
+ emit showPreferences();
+}
diff --git a/src/app/qt/window/QtProjectSetupScreen.h b/src/app/qt/window/QtProjectSetupScreen.h
index 5bb44a6e..e731be6a 100644
--- a/src/app/qt/window/QtProjectSetupScreen.h
+++ b/src/app/qt/window/QtProjectSetupScreen.h
@@ -47,6 +47,9 @@ public:
void projectSetupScreen();
+signals:
+ void showPreferences();
+
protected:
virtual void populateForm(QFormLayout* layout) override;
@@ -54,17 +57,21 @@ private slots:
void handleCancelButtonPress();
void handleUpdateButtonPress();
+ void handleSourcePathHelpPress();
+ void handleIncludePathHelpPress();
+ void handleFrameworkPathHelpPress();
+
+ void handlePreferencesButtonPress();
+
private:
QLineEdit* m_projectName;
QtTextLine* m_projectFileLocation;
- QPushButton* m_createButton;
- QPushButton* m_cancelButton;
- QPushButton* m_updateButton;
-
QtDirectoryListBox* m_includePaths;
QtDirectoryListBox* m_sourcePaths;
QtDirectoryListBox* m_frameworkPaths;
+
+ QPushButton* m_preferencesButton;
};
#endif //QT_PROJECT_SETUP_SCREEN_H
diff --git a/src/app/qt/window/QtSettingsWindow.cpp b/src/app/qt/window/QtSettingsWindow.cpp
index 8812c07e..3543e04f 100644
--- a/src/app/qt/window/QtSettingsWindow.cpp
+++ b/src/app/qt/window/QtSettingsWindow.cpp
@@ -3,6 +3,7 @@
#include
#include
#include
+#include
#include
#include
#include
@@ -150,6 +151,7 @@ void QtSettingsWindow::setupForm()
buttons->addWidget(m_cancelButton);
buttons->addStretch();
buttons->addWidget(m_doneButton);
+ m_buttonsLayout = buttons;
windowLayout->addWidget(scrollArea);
windowLayout->addSpacing(20);
@@ -188,3 +190,40 @@ void QtSettingsWindow::hideCancelButton(bool hidden)
m_cancelButton->setVisible(!hidden);
}
}
+
+QWidget* QtSettingsWindow::createLabelWithHelpButton(QString name, QPushButton** helpButton)
+{
+ QWidget* widget = new QWidget();
+
+ QVBoxLayout* layout = new QVBoxLayout();
+ layout->setContentsMargins(0, 5, 0, 5);
+ layout->setSpacing(5);
+
+ QLabel* label = new QLabel(name);
+ label->setAlignment(Qt::AlignRight);
+ layout->addWidget(label);
+
+ QPushButton* button = new QPushButton("?");
+ button->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
+ button->setAttribute(Qt::WA_LayoutUsesWidgetRect); // fixes layouting on Mac
+ button->setObjectName("help");
+
+ layout->addWidget(button, 0, Qt::AlignRight);
+ layout->addStretch();
+
+ widget->setLayout(layout);
+
+ *helpButton = button;
+
+ return widget;
+}
+
+void QtSettingsWindow::showHelpMessage(const QString& msg)
+{
+ QMessageBox msgBox;
+ msgBox.setText("Help");
+ msgBox.setInformativeText(msg);
+ msgBox.setStandardButtons(QMessageBox::Ok);
+ msgBox.setDefaultButton(QMessageBox::Ok);
+ int ret = msgBox.exec();
+}
diff --git a/src/app/qt/window/QtSettingsWindow.h b/src/app/qt/window/QtSettingsWindow.h
index a72d147e..46604658 100644
--- a/src/app/qt/window/QtSettingsWindow.h
+++ b/src/app/qt/window/QtSettingsWindow.h
@@ -1,6 +1,7 @@
#ifndef QT_SETTINGS_WINDOW_H
#define QT_SETTINGS_WINDOW_H
+#include
#include
#include
@@ -38,6 +39,10 @@ protected:
void updateDoneButton(QString text);
void hideCancelButton(bool hidden);
+ QWidget* createLabelWithHelpButton(QString name, QPushButton** helpButton);
+
+ void showHelpMessage(const QString& msg);
+
QWidget* m_window;
QLabel* m_title;
@@ -45,6 +50,8 @@ protected:
QPushButton* m_cancelButton;
QPushButton* m_doneButton;
+ QHBoxLayout* m_buttonsLayout;
+
private:
int m_displacment;
QPoint m_dragPosition;
diff --git a/src/lib/settings/ApplicationSettings.cpp b/src/lib/settings/ApplicationSettings.cpp
index d98e33ce..752532ae 100644
--- a/src/lib/settings/ApplicationSettings.cpp
+++ b/src/lib/settings/ApplicationSettings.cpp
@@ -131,16 +131,6 @@ bool ApplicationSettings::setRecentProjects(const std::vector &recentP
return setPathValues("user/recent_projects/recent_project", recentProjects);
}
-bool ApplicationSettings::getUserHasSeenSettings() const
-{
- return getValue("user/has_seen_settings", false);
-}
-
-void ApplicationSettings::setUserHasSeenSettings(bool hasSeenSettings)
-{
- setValue("user/has_seen_settings", hasSeenSettings);
-}
-
int ApplicationSettings::getPluginPort() const
{
return getValue("network/plugin_port", 6666);
diff --git a/src/lib/settings/ApplicationSettings.h b/src/lib/settings/ApplicationSettings.h
index a4dbe1c6..a0b24158 100644
--- a/src/lib/settings/ApplicationSettings.h
+++ b/src/lib/settings/ApplicationSettings.h
@@ -49,9 +49,6 @@ public:
void setCodeSnippetExpandRange(int range);
// user
- bool getUserHasSeenSettings() const;
- void setUserHasSeenSettings(bool hasSeenSettings);
-
std::vector getRecentProjects() const;
bool setRecentProjects(const std::vector& recentProjects);