forked from qt-creator/qt-creator
ProjectExplorer: Don't save defaults to settings
Writes less settings and makes it possible to change defaults in the future. Task-number: QTCREATORBUG-24762 Change-Id: I73873b3684827b4fe27cfa5ea2f62a76003f9750 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io> Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
This commit is contained in:
@@ -75,7 +75,9 @@ static QString settingsPrefix(int position)
|
||||
|
||||
//! Flat mode settings
|
||||
|
||||
void NavigationWidgetFactory::saveSettings(QSettings *settings, int position, QWidget *widget)
|
||||
void NavigationWidgetFactory::saveSettings(Utils::QtcSettings *settings,
|
||||
int position,
|
||||
QWidget *widget)
|
||||
{
|
||||
auto pw = qobject_cast<NavigationWidget *>(widget);
|
||||
QTC_ASSERT(pw, return);
|
||||
|
||||
@@ -41,7 +41,7 @@ public:
|
||||
Core::NavigationView createWidget() override;
|
||||
|
||||
//! \implements Core::INavigationWidgetFactory::saveSettings
|
||||
void saveSettings(QSettings *settings, int position, QWidget *widget) override;
|
||||
void saveSettings(Utils::QtcSettings *settings, int position, QWidget *widget) override;
|
||||
|
||||
//! \implements Core::INavigationWidgetFactory::restoreSettings
|
||||
void restoreSettings(QSettings *settings, int position, QWidget *widget) override;
|
||||
|
||||
@@ -156,7 +156,9 @@ QKeySequence INavigationWidgetFactory::activationSequence() const
|
||||
|
||||
\sa INavigationWidgetFactory::restoreSettings()
|
||||
*/
|
||||
void INavigationWidgetFactory::saveSettings(QSettings * /* settings */, int /* position */, QWidget * /* widget */)
|
||||
void INavigationWidgetFactory::saveSettings(Utils::QtcSettings * /* settings */,
|
||||
int /* position */,
|
||||
QWidget * /* widget */)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
@@ -39,6 +39,10 @@ class QToolButton;
|
||||
class QWidget;
|
||||
QT_END_NAMESPACE
|
||||
|
||||
namespace Utils {
|
||||
class QtcSettings;
|
||||
}
|
||||
|
||||
namespace Core {
|
||||
|
||||
struct NavigationView
|
||||
@@ -75,7 +79,7 @@ public:
|
||||
// Similar to how IView
|
||||
virtual NavigationView createWidget() = 0;
|
||||
|
||||
virtual void saveSettings(QSettings *settings, int position, QWidget *widget);
|
||||
virtual void saveSettings(Utils::QtcSettings *settings, int position, QWidget *widget);
|
||||
virtual void restoreSettings(QSettings *settings, int position, QWidget *widget);
|
||||
|
||||
private:
|
||||
|
||||
@@ -170,7 +170,7 @@ void NavigationSubWidget::saveSettings()
|
||||
if (!m_navigationWidget || !factory())
|
||||
return;
|
||||
|
||||
QSettings *settings = Core::ICore::settings();
|
||||
QtcSettings *settings = Core::ICore::settings();
|
||||
settings->beginGroup(m_parentWidget->settingsGroup());
|
||||
factory()->saveSettings(settings, position(), m_navigationWidget);
|
||||
settings->endGroup();
|
||||
|
||||
@@ -48,6 +48,7 @@
|
||||
#include <utils/fileutils.h>
|
||||
#include <utils/navigationtreeview.h>
|
||||
#include <utils/qtcassert.h>
|
||||
#include <utils/qtcsettings.h>
|
||||
#include <utils/utilsicons.h>
|
||||
|
||||
#include <QCoreApplication>
|
||||
@@ -546,7 +547,7 @@ static CppIncludeHierarchyWidget *hierarchyWidget(QWidget *widget)
|
||||
return hierarchyWidget;
|
||||
}
|
||||
|
||||
void CppIncludeHierarchyFactory::saveSettings(QSettings *settings, int position, QWidget *widget)
|
||||
void CppIncludeHierarchyFactory::saveSettings(QtcSettings *settings, int position, QWidget *widget)
|
||||
{
|
||||
hierarchyWidget(widget)->saveSettings(settings, position);
|
||||
}
|
||||
|
||||
@@ -72,7 +72,7 @@ public:
|
||||
CppIncludeHierarchyFactory();
|
||||
|
||||
Core::NavigationView createWidget() override;
|
||||
void saveSettings(QSettings *settings, int position, QWidget *widget) override;
|
||||
void saveSettings(Utils::QtcSettings *settings, int position, QWidget *widget) override;
|
||||
void restoreSettings(QSettings *settings, int position, QWidget *widget) override;
|
||||
};
|
||||
|
||||
|
||||
@@ -510,15 +510,27 @@ void AppOutputPane::setSettings(const AppOutputSettings &settings)
|
||||
updateFromSettings();
|
||||
}
|
||||
|
||||
const AppOutputPaneMode kRunOutputModeDefault = AppOutputPaneMode::PopupOnFirstOutput;
|
||||
const AppOutputPaneMode kDebugOutputModeDefault = AppOutputPaneMode::FlashOnOutput;
|
||||
const bool kCleanOldOutputDefault = false;
|
||||
const bool kMergeChannelsDefault = false;
|
||||
const bool kWrapOutputDefault = true;
|
||||
|
||||
void AppOutputPane::storeSettings() const
|
||||
{
|
||||
QSettings * const s = Core::ICore::settings();
|
||||
s->setValue(POP_UP_FOR_RUN_OUTPUT_KEY, int(m_settings.runOutputMode));
|
||||
s->setValue(POP_UP_FOR_DEBUG_OUTPUT_KEY, int(m_settings.debugOutputMode));
|
||||
s->setValue(CLEAN_OLD_OUTPUT_KEY, m_settings.cleanOldOutput);
|
||||
s->setValue(MERGE_CHANNELS_KEY, m_settings.mergeChannels);
|
||||
s->setValue(WRAP_OUTPUT_KEY, m_settings.wrapOutput);
|
||||
s->setValue(MAX_LINES_KEY, m_settings.maxCharCount / 100);
|
||||
Utils::QtcSettings *const s = Core::ICore::settings();
|
||||
s->setValueWithDefault(POP_UP_FOR_RUN_OUTPUT_KEY,
|
||||
int(m_settings.runOutputMode),
|
||||
int(kRunOutputModeDefault));
|
||||
s->setValueWithDefault(POP_UP_FOR_DEBUG_OUTPUT_KEY,
|
||||
int(m_settings.debugOutputMode),
|
||||
int(kDebugOutputModeDefault));
|
||||
s->setValueWithDefault(CLEAN_OLD_OUTPUT_KEY, m_settings.cleanOldOutput, kCleanOldOutputDefault);
|
||||
s->setValueWithDefault(MERGE_CHANNELS_KEY, m_settings.mergeChannels, kMergeChannelsDefault);
|
||||
s->setValueWithDefault(WRAP_OUTPUT_KEY, m_settings.wrapOutput, kWrapOutputDefault);
|
||||
s->setValueWithDefault(MAX_LINES_KEY,
|
||||
m_settings.maxCharCount / 100,
|
||||
Core::Constants::DEFAULT_MAX_CHAR_COUNT);
|
||||
}
|
||||
|
||||
void AppOutputPane::loadSettings()
|
||||
@@ -527,13 +539,12 @@ void AppOutputPane::loadSettings()
|
||||
const auto modeFromSettings = [s](const QString key, AppOutputPaneMode defaultValue) {
|
||||
return static_cast<AppOutputPaneMode>(s->value(key, int(defaultValue)).toInt());
|
||||
};
|
||||
m_settings.runOutputMode = modeFromSettings(POP_UP_FOR_RUN_OUTPUT_KEY,
|
||||
AppOutputPaneMode::PopupOnFirstOutput);
|
||||
m_settings.runOutputMode = modeFromSettings(POP_UP_FOR_RUN_OUTPUT_KEY, kRunOutputModeDefault);
|
||||
m_settings.debugOutputMode = modeFromSettings(POP_UP_FOR_DEBUG_OUTPUT_KEY,
|
||||
AppOutputPaneMode::FlashOnOutput);
|
||||
m_settings.cleanOldOutput = s->value(CLEAN_OLD_OUTPUT_KEY, false).toBool();
|
||||
m_settings.mergeChannels = s->value(MERGE_CHANNELS_KEY, false).toBool();
|
||||
m_settings.wrapOutput = s->value(WRAP_OUTPUT_KEY, true).toBool();
|
||||
kDebugOutputModeDefault);
|
||||
m_settings.cleanOldOutput = s->value(CLEAN_OLD_OUTPUT_KEY, kCleanOldOutputDefault).toBool();
|
||||
m_settings.mergeChannels = s->value(MERGE_CHANNELS_KEY, kMergeChannelsDefault).toBool();
|
||||
m_settings.wrapOutput = s->value(WRAP_OUTPUT_KEY, kWrapOutputDefault).toBool();
|
||||
m_settings.maxCharCount = s->value(MAX_LINES_KEY,
|
||||
Core::Constants::DEFAULT_MAX_CHAR_COUNT).toInt() * 100;
|
||||
}
|
||||
|
||||
@@ -305,21 +305,26 @@ void CompileOutputWindow::updateFilter()
|
||||
filterUsesRegexp(), filterIsInverted());
|
||||
}
|
||||
|
||||
const bool kPopUpDefault = false;
|
||||
const bool kWrapOutputDefault = true;
|
||||
|
||||
void CompileOutputWindow::loadSettings()
|
||||
{
|
||||
QSettings * const s = Core::ICore::settings();
|
||||
m_settings.popUp = s->value(POP_UP_KEY, false).toBool();
|
||||
m_settings.wrapOutput = s->value(WRAP_OUTPUT_KEY, true).toBool();
|
||||
m_settings.popUp = s->value(POP_UP_KEY, kPopUpDefault).toBool();
|
||||
m_settings.wrapOutput = s->value(WRAP_OUTPUT_KEY, kWrapOutputDefault).toBool();
|
||||
m_settings.maxCharCount = s->value(MAX_LINES_KEY,
|
||||
Core::Constants::DEFAULT_MAX_CHAR_COUNT).toInt() * 100;
|
||||
}
|
||||
|
||||
void CompileOutputWindow::storeSettings() const
|
||||
{
|
||||
QSettings * const s = Core::ICore::settings();
|
||||
s->setValue(POP_UP_KEY, m_settings.popUp);
|
||||
s->setValue(WRAP_OUTPUT_KEY, m_settings.wrapOutput);
|
||||
s->setValue(MAX_LINES_KEY, m_settings.maxCharCount / 100);
|
||||
Utils::QtcSettings *const s = Core::ICore::settings();
|
||||
s->setValueWithDefault(POP_UP_KEY, m_settings.popUp, kPopUpDefault);
|
||||
s->setValueWithDefault(WRAP_OUTPUT_KEY, m_settings.wrapOutput, kWrapOutputDefault);
|
||||
s->setValueWithDefault(MAX_LINES_KEY,
|
||||
m_settings.maxCharCount / 100,
|
||||
Core::Constants::DEFAULT_MAX_CHAR_COUNT);
|
||||
}
|
||||
|
||||
class CompileOutputSettingsWidget : public Core::IOptionsPageWidget
|
||||
|
||||
@@ -219,7 +219,7 @@ void DeviceSettingsWidget::updateDeviceFromUi()
|
||||
|
||||
void DeviceSettingsWidget::saveSettings()
|
||||
{
|
||||
ICore::settings()->setValue(QLatin1String(LastDeviceIndexKey), currentIndex());
|
||||
ICore::settings()->setValueWithDefault(LastDeviceIndexKey, currentIndex(), 0);
|
||||
DeviceManager::replaceInstance();
|
||||
}
|
||||
|
||||
|
||||
@@ -903,15 +903,28 @@ Core::NavigationView FolderNavigationWidgetFactory::createWidget()
|
||||
return n;
|
||||
}
|
||||
|
||||
void FolderNavigationWidgetFactory::saveSettings(QSettings *settings, int position, QWidget *widget)
|
||||
const bool kHiddenFilesDefault = false;
|
||||
const bool kAutoSyncDefault = true;
|
||||
const bool kShowBreadCrumbsDefault = true;
|
||||
const bool kRootAutoSyncDefault = true;
|
||||
|
||||
void FolderNavigationWidgetFactory::saveSettings(Utils::QtcSettings *settings,
|
||||
int position,
|
||||
QWidget *widget)
|
||||
{
|
||||
auto fnw = qobject_cast<FolderNavigationWidget *>(widget);
|
||||
QTC_ASSERT(fnw, return);
|
||||
const QString base = kSettingsBase + QString::number(position);
|
||||
settings->setValue(base + kHiddenFilesKey, fnw->hiddenFilesFilter());
|
||||
settings->setValue(base + kSyncKey, fnw->autoSynchronization());
|
||||
settings->setValue(base + kShowBreadCrumbs, fnw->isShowingBreadCrumbs());
|
||||
settings->setValue(base + kSyncRootWithEditor, fnw->rootAutoSynchronization());
|
||||
settings->setValueWithDefault(base + kHiddenFilesKey,
|
||||
fnw->hiddenFilesFilter(),
|
||||
kHiddenFilesDefault);
|
||||
settings->setValueWithDefault(base + kSyncKey, fnw->autoSynchronization(), kAutoSyncDefault);
|
||||
settings->setValueWithDefault(base + kShowBreadCrumbs,
|
||||
fnw->isShowingBreadCrumbs(),
|
||||
kShowBreadCrumbsDefault);
|
||||
settings->setValueWithDefault(base + kSyncRootWithEditor,
|
||||
fnw->rootAutoSynchronization(),
|
||||
kRootAutoSyncDefault);
|
||||
}
|
||||
|
||||
void FolderNavigationWidgetFactory::restoreSettings(QSettings *settings, int position, QWidget *widget)
|
||||
@@ -919,10 +932,12 @@ void FolderNavigationWidgetFactory::restoreSettings(QSettings *settings, int pos
|
||||
auto fnw = qobject_cast<FolderNavigationWidget *>(widget);
|
||||
QTC_ASSERT(fnw, return);
|
||||
const QString base = kSettingsBase + QString::number(position);
|
||||
fnw->setHiddenFilesFilter(settings->value(base + kHiddenFilesKey, false).toBool());
|
||||
fnw->setAutoSynchronization(settings->value(base + kSyncKey, true).toBool());
|
||||
fnw->setShowBreadCrumbs(settings->value(base + kShowBreadCrumbs, true).toBool());
|
||||
fnw->setRootAutoSynchronization(settings->value(base + kSyncRootWithEditor, true).toBool());
|
||||
fnw->setHiddenFilesFilter(settings->value(base + kHiddenFilesKey, kHiddenFilesDefault).toBool());
|
||||
fnw->setAutoSynchronization(settings->value(base + kSyncKey, kAutoSyncDefault).toBool());
|
||||
fnw->setShowBreadCrumbs(
|
||||
settings->value(base + kShowBreadCrumbs, kShowBreadCrumbsDefault).toBool());
|
||||
fnw->setRootAutoSynchronization(
|
||||
settings->value(base + kSyncRootWithEditor, kRootAutoSyncDefault).toBool());
|
||||
}
|
||||
|
||||
void FolderNavigationWidgetFactory::insertRootDirectory(const RootDirectory &directory)
|
||||
|
||||
@@ -39,6 +39,7 @@ class IEditor;
|
||||
namespace Utils {
|
||||
class NavigationTreeView;
|
||||
class FileCrumbLabel;
|
||||
class QtcSettings;
|
||||
}
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
@@ -70,7 +71,7 @@ public:
|
||||
FolderNavigationWidgetFactory();
|
||||
|
||||
Core::NavigationView createWidget() override;
|
||||
void saveSettings(QSettings *settings, int position, QWidget *widget) override;
|
||||
void saveSettings(Utils::QtcSettings *settings, int position, QWidget *widget) override;
|
||||
void restoreSettings(QSettings *settings, int position, QWidget *widget) override;
|
||||
|
||||
static void insertRootDirectory(const RootDirectory &directory);
|
||||
|
||||
@@ -92,7 +92,7 @@ void KitChooser::onActivated()
|
||||
Id id = Id::fromSetting(m_chooser->currentData());
|
||||
if (m_hasStartupKit && m_chooser->currentIndex() == 0)
|
||||
id = Id(); // Special value to indicate startup kit.
|
||||
ICore::settings()->setValue(lastKitKey, id.toSetting());
|
||||
ICore::settings()->setValueWithDefault(lastKitKey, id.toSetting(), Id().toSetting());
|
||||
emit activated();
|
||||
}
|
||||
|
||||
|
||||
@@ -262,6 +262,8 @@ const char DEFAULT_BUILD_DIRECTORY_TEMPLATE[] = "../%{JS: Util.asciify(\"build-%
|
||||
const char DEFAULT_BUILD_DIRECTORY_TEMPLATE_KEY_OLD[] = "Directories/BuildDirectory.Template"; // TODO: Remove in ~4.16
|
||||
const char DEFAULT_BUILD_DIRECTORY_TEMPLATE_KEY[] = "Directories/BuildDirectory.TemplateV2";
|
||||
|
||||
const char RECENTPROJECTS_FILE_NAMES_KEY[] = "ProjectExplorer/RecentProjects/FileNames";
|
||||
const char RECENTPROJECTS_DISPLAY_NAMES_KEY[] = "ProjectExplorer/RecentProjects/DisplayNames";
|
||||
const char BUILD_BEFORE_DEPLOY_SETTINGS_KEY[] = "ProjectExplorer/Settings/BuildBeforeDeploy";
|
||||
const char DEPLOY_BEFORE_RUN_SETTINGS_KEY[] = "ProjectExplorer/Settings/DeployBeforeRun";
|
||||
const char SAVE_BEFORE_BUILD_SETTINGS_KEY[] = "ProjectExplorer/Settings/SaveBeforeBuild";
|
||||
@@ -1481,10 +1483,9 @@ bool ProjectExplorerPlugin::initialize(const QStringList &arguments, QString *er
|
||||
});
|
||||
|
||||
QSettings *s = ICore::settings();
|
||||
const QStringList fileNames =
|
||||
s->value(QLatin1String("ProjectExplorer/RecentProjects/FileNames")).toStringList();
|
||||
const QStringList displayNames =
|
||||
s->value(QLatin1String("ProjectExplorer/RecentProjects/DisplayNames")).toStringList();
|
||||
const QStringList fileNames = s->value(Constants::RECENTPROJECTS_FILE_NAMES_KEY).toStringList();
|
||||
const QStringList displayNames = s->value(Constants::RECENTPROJECTS_DISPLAY_NAMES_KEY)
|
||||
.toStringList();
|
||||
if (fileNames.size() == displayNames.size()) {
|
||||
for (int i = 0; i < fileNames.size(); ++i) {
|
||||
dd->m_recentProjects.append(qMakePair(fileNames.at(i), displayNames.at(i)));
|
||||
@@ -1502,38 +1503,59 @@ bool ProjectExplorerPlugin::initialize(const QStringList &arguments, QString *er
|
||||
= static_cast<BuildBeforeRunMode>(buildBeforeDeploy.toInt());
|
||||
}
|
||||
|
||||
dd->m_projectExplorerSettings.deployBeforeRun =
|
||||
s->value(Constants::DEPLOY_BEFORE_RUN_SETTINGS_KEY, true).toBool();
|
||||
dd->m_projectExplorerSettings.saveBeforeBuild =
|
||||
s->value(Constants::SAVE_BEFORE_BUILD_SETTINGS_KEY, false).toBool();
|
||||
dd->m_projectExplorerSettings.useJom = s->value(Constants::USE_JOM_SETTINGS_KEY, true).toBool();
|
||||
dd->m_projectExplorerSettings.autorestoreLastSession =
|
||||
s->value(Constants::AUTO_RESTORE_SESSION_SETTINGS_KEY, false).toBool();
|
||||
dd->m_projectExplorerSettings.addLibraryPathsToRunEnv =
|
||||
s->value(Constants::ADD_LIBRARY_PATHS_TO_RUN_ENV_SETTINGS_KEY, true).toBool();
|
||||
dd->m_projectExplorerSettings.prompToStopRunControl =
|
||||
s->value(Constants::PROMPT_TO_STOP_RUN_CONTROL_SETTINGS_KEY, false).toBool();
|
||||
dd->m_projectExplorerSettings.automaticallyCreateRunConfigurations =
|
||||
s->value(Constants::AUTO_CREATE_RUN_CONFIGS_SETTINGS_KEY, true).toBool();
|
||||
static const ProjectExplorerSettings defaultSettings;
|
||||
|
||||
dd->m_projectExplorerSettings.deployBeforeRun
|
||||
= s->value(Constants::DEPLOY_BEFORE_RUN_SETTINGS_KEY, defaultSettings.deployBeforeRun)
|
||||
.toBool();
|
||||
dd->m_projectExplorerSettings.saveBeforeBuild
|
||||
= s->value(Constants::SAVE_BEFORE_BUILD_SETTINGS_KEY, defaultSettings.saveBeforeBuild)
|
||||
.toBool();
|
||||
dd->m_projectExplorerSettings.useJom
|
||||
= s->value(Constants::USE_JOM_SETTINGS_KEY, defaultSettings.useJom).toBool();
|
||||
dd->m_projectExplorerSettings.autorestoreLastSession
|
||||
= s->value(Constants::AUTO_RESTORE_SESSION_SETTINGS_KEY,
|
||||
defaultSettings.autorestoreLastSession)
|
||||
.toBool();
|
||||
dd->m_projectExplorerSettings.addLibraryPathsToRunEnv
|
||||
= s->value(Constants::ADD_LIBRARY_PATHS_TO_RUN_ENV_SETTINGS_KEY,
|
||||
defaultSettings.addLibraryPathsToRunEnv)
|
||||
.toBool();
|
||||
dd->m_projectExplorerSettings.prompToStopRunControl
|
||||
= s->value(Constants::PROMPT_TO_STOP_RUN_CONTROL_SETTINGS_KEY,
|
||||
defaultSettings.prompToStopRunControl)
|
||||
.toBool();
|
||||
dd->m_projectExplorerSettings.automaticallyCreateRunConfigurations
|
||||
= s->value(Constants::AUTO_CREATE_RUN_CONFIGS_SETTINGS_KEY,
|
||||
defaultSettings.automaticallyCreateRunConfigurations)
|
||||
.toBool();
|
||||
dd->m_projectExplorerSettings.environmentId =
|
||||
QUuid(s->value(Constants::ENVIRONMENT_ID_SETTINGS_KEY).toByteArray());
|
||||
if (dd->m_projectExplorerSettings.environmentId.isNull())
|
||||
dd->m_projectExplorerSettings.environmentId = QUuid::createUuid();
|
||||
int tmp = s->value(Constants::STOP_BEFORE_BUILD_SETTINGS_KEY,
|
||||
Utils::HostOsInfo::isWindowsHost() ? 1 : 0).toInt();
|
||||
int(defaultSettings.stopBeforeBuild))
|
||||
.toInt();
|
||||
if (tmp < 0 || tmp > int(StopBeforeBuild::SameApp))
|
||||
tmp = Utils::HostOsInfo::isWindowsHost() ? 1 : 0;
|
||||
tmp = int(defaultSettings.stopBeforeBuild);
|
||||
dd->m_projectExplorerSettings.stopBeforeBuild = StopBeforeBuild(tmp);
|
||||
dd->m_projectExplorerSettings.terminalMode = static_cast<TerminalMode>(s->value(
|
||||
Constants::TERMINAL_MODE_SETTINGS_KEY, int(TerminalMode::Off)).toInt());
|
||||
dd->m_projectExplorerSettings.terminalMode = static_cast<TerminalMode>(
|
||||
s->value(Constants::TERMINAL_MODE_SETTINGS_KEY, int(defaultSettings.terminalMode)).toInt());
|
||||
dd->m_projectExplorerSettings.closeSourceFilesWithProject
|
||||
= s->value(Constants::CLOSE_FILES_WITH_PROJECT_SETTINGS_KEY, true).toBool();
|
||||
= s->value(Constants::CLOSE_FILES_WITH_PROJECT_SETTINGS_KEY,
|
||||
defaultSettings.closeSourceFilesWithProject)
|
||||
.toBool();
|
||||
dd->m_projectExplorerSettings.clearIssuesOnRebuild
|
||||
= s->value(Constants::CLEAR_ISSUES_ON_REBUILD_SETTINGS_KEY, true).toBool();
|
||||
= s->value(Constants::CLEAR_ISSUES_ON_REBUILD_SETTINGS_KEY,
|
||||
defaultSettings.clearIssuesOnRebuild)
|
||||
.toBool();
|
||||
dd->m_projectExplorerSettings.abortBuildAllOnError
|
||||
= s->value(Constants::ABORT_BUILD_ALL_ON_ERROR_SETTINGS_KEY, true).toBool();
|
||||
= s->value(Constants::ABORT_BUILD_ALL_ON_ERROR_SETTINGS_KEY,
|
||||
defaultSettings.abortBuildAllOnError)
|
||||
.toBool();
|
||||
dd->m_projectExplorerSettings.lowBuildPriority
|
||||
= s->value(Constants::LOW_BUILD_PRIORITY_SETTINGS_KEY, false).toBool();
|
||||
= s->value(Constants::LOW_BUILD_PRIORITY_SETTINGS_KEY, defaultSettings.lowBuildPriority)
|
||||
.toBool();
|
||||
|
||||
dd->m_buildPropertiesSettings.buildDirectoryTemplateOld
|
||||
= s->value(Constants::DEFAULT_BUILD_DIRECTORY_TEMPLATE_KEY_OLD).toString();
|
||||
@@ -2119,7 +2141,7 @@ void ProjectExplorerPluginPrivate::savePersistentSettings()
|
||||
SessionManager::save();
|
||||
}
|
||||
|
||||
QSettings *s = ICore::settings();
|
||||
QtcSettings *s = ICore::settings();
|
||||
if (SessionManager::isDefaultVirgin()) {
|
||||
s->remove(Constants::STARTUPSESSION_KEY);
|
||||
} else {
|
||||
@@ -2137,45 +2159,79 @@ void ProjectExplorerPluginPrivate::savePersistentSettings()
|
||||
displayNames << (*it).second;
|
||||
}
|
||||
|
||||
s->setValue(QLatin1String("ProjectExplorer/RecentProjects/FileNames"), fileNames);
|
||||
s->setValue(QLatin1String("ProjectExplorer/RecentProjects/DisplayNames"), displayNames);
|
||||
s->setValueWithDefault(Constants::RECENTPROJECTS_FILE_NAMES_KEY, fileNames);
|
||||
s->setValueWithDefault(Constants::RECENTPROJECTS_DISPLAY_NAMES_KEY, displayNames);
|
||||
|
||||
s->setValue(Constants::BUILD_BEFORE_DEPLOY_SETTINGS_KEY, int(dd->m_projectExplorerSettings.buildBeforeDeploy));
|
||||
s->setValue(Constants::DEPLOY_BEFORE_RUN_SETTINGS_KEY, dd->m_projectExplorerSettings.deployBeforeRun);
|
||||
s->setValue(Constants::SAVE_BEFORE_BUILD_SETTINGS_KEY, dd->m_projectExplorerSettings.saveBeforeBuild);
|
||||
s->setValue(Constants::USE_JOM_SETTINGS_KEY, dd->m_projectExplorerSettings.useJom);
|
||||
s->setValue(Constants::AUTO_RESTORE_SESSION_SETTINGS_KEY, dd->m_projectExplorerSettings.autorestoreLastSession);
|
||||
s->setValue(Constants::ADD_LIBRARY_PATHS_TO_RUN_ENV_SETTINGS_KEY, dd->m_projectExplorerSettings.addLibraryPathsToRunEnv);
|
||||
s->setValue(Constants::PROMPT_TO_STOP_RUN_CONTROL_SETTINGS_KEY, dd->m_projectExplorerSettings.prompToStopRunControl);
|
||||
s->setValue(Constants::TERMINAL_MODE_SETTINGS_KEY,
|
||||
int(dd->m_projectExplorerSettings.terminalMode));
|
||||
s->setValue(Constants::CLOSE_FILES_WITH_PROJECT_SETTINGS_KEY,
|
||||
dd->m_projectExplorerSettings.closeSourceFilesWithProject);
|
||||
s->setValue(Constants::CLEAR_ISSUES_ON_REBUILD_SETTINGS_KEY,
|
||||
dd->m_projectExplorerSettings.clearIssuesOnRebuild);
|
||||
s->setValue(Constants::ABORT_BUILD_ALL_ON_ERROR_SETTINGS_KEY,
|
||||
dd->m_projectExplorerSettings.abortBuildAllOnError);
|
||||
s->setValue(Constants::LOW_BUILD_PRIORITY_SETTINGS_KEY,
|
||||
dd->m_projectExplorerSettings.lowBuildPriority);
|
||||
s->setValue(Constants::AUTO_CREATE_RUN_CONFIGS_SETTINGS_KEY,
|
||||
dd->m_projectExplorerSettings.automaticallyCreateRunConfigurations);
|
||||
s->setValue(Constants::ENVIRONMENT_ID_SETTINGS_KEY, dd->m_projectExplorerSettings.environmentId.toByteArray());
|
||||
s->setValue(Constants::STOP_BEFORE_BUILD_SETTINGS_KEY, int(dd->m_projectExplorerSettings.stopBeforeBuild));
|
||||
static const ProjectExplorerSettings defaultSettings;
|
||||
|
||||
s->setValueWithDefault(Constants::BUILD_BEFORE_DEPLOY_SETTINGS_KEY,
|
||||
int(dd->m_projectExplorerSettings.buildBeforeDeploy),
|
||||
int(defaultSettings.buildBeforeDeploy));
|
||||
s->setValueWithDefault(Constants::DEPLOY_BEFORE_RUN_SETTINGS_KEY,
|
||||
dd->m_projectExplorerSettings.deployBeforeRun,
|
||||
defaultSettings.deployBeforeRun);
|
||||
s->setValueWithDefault(Constants::SAVE_BEFORE_BUILD_SETTINGS_KEY,
|
||||
dd->m_projectExplorerSettings.saveBeforeBuild,
|
||||
defaultSettings.saveBeforeBuild);
|
||||
s->setValueWithDefault(Constants::USE_JOM_SETTINGS_KEY,
|
||||
dd->m_projectExplorerSettings.useJom,
|
||||
defaultSettings.useJom);
|
||||
s->setValueWithDefault(Constants::AUTO_RESTORE_SESSION_SETTINGS_KEY,
|
||||
dd->m_projectExplorerSettings.autorestoreLastSession,
|
||||
defaultSettings.autorestoreLastSession);
|
||||
s->setValueWithDefault(Constants::ADD_LIBRARY_PATHS_TO_RUN_ENV_SETTINGS_KEY,
|
||||
dd->m_projectExplorerSettings.addLibraryPathsToRunEnv,
|
||||
defaultSettings.addLibraryPathsToRunEnv);
|
||||
s->setValueWithDefault(Constants::PROMPT_TO_STOP_RUN_CONTROL_SETTINGS_KEY,
|
||||
dd->m_projectExplorerSettings.prompToStopRunControl,
|
||||
defaultSettings.prompToStopRunControl);
|
||||
s->setValueWithDefault(Constants::TERMINAL_MODE_SETTINGS_KEY,
|
||||
int(dd->m_projectExplorerSettings.terminalMode),
|
||||
int(defaultSettings.terminalMode));
|
||||
s->setValueWithDefault(Constants::CLOSE_FILES_WITH_PROJECT_SETTINGS_KEY,
|
||||
dd->m_projectExplorerSettings.closeSourceFilesWithProject,
|
||||
defaultSettings.closeSourceFilesWithProject);
|
||||
s->setValueWithDefault(Constants::CLEAR_ISSUES_ON_REBUILD_SETTINGS_KEY,
|
||||
dd->m_projectExplorerSettings.clearIssuesOnRebuild,
|
||||
defaultSettings.clearIssuesOnRebuild);
|
||||
s->setValueWithDefault(Constants::ABORT_BUILD_ALL_ON_ERROR_SETTINGS_KEY,
|
||||
dd->m_projectExplorerSettings.abortBuildAllOnError,
|
||||
defaultSettings.abortBuildAllOnError);
|
||||
s->setValueWithDefault(Constants::LOW_BUILD_PRIORITY_SETTINGS_KEY,
|
||||
dd->m_projectExplorerSettings.lowBuildPriority,
|
||||
defaultSettings.lowBuildPriority);
|
||||
s->setValueWithDefault(Constants::AUTO_CREATE_RUN_CONFIGS_SETTINGS_KEY,
|
||||
dd->m_projectExplorerSettings.automaticallyCreateRunConfigurations,
|
||||
defaultSettings.automaticallyCreateRunConfigurations);
|
||||
s->setValueWithDefault(Constants::ENVIRONMENT_ID_SETTINGS_KEY,
|
||||
dd->m_projectExplorerSettings.environmentId.toByteArray());
|
||||
s->setValueWithDefault(Constants::STOP_BEFORE_BUILD_SETTINGS_KEY,
|
||||
int(dd->m_projectExplorerSettings.stopBeforeBuild),
|
||||
int(defaultSettings.stopBeforeBuild));
|
||||
|
||||
// Store this in the Core directory scope for backward compatibility!
|
||||
if (dd->m_buildPropertiesSettings.buildDirectoryTemplate
|
||||
== Constants::DEFAULT_BUILD_DIRECTORY_TEMPLATE) {
|
||||
s->remove(Constants::DEFAULT_BUILD_DIRECTORY_TEMPLATE_KEY_OLD);
|
||||
s->remove(Constants::DEFAULT_BUILD_DIRECTORY_TEMPLATE_KEY);
|
||||
} else {
|
||||
s->setValue(Constants::DEFAULT_BUILD_DIRECTORY_TEMPLATE_KEY_OLD,
|
||||
dd->m_buildPropertiesSettings.buildDirectoryTemplateOld);
|
||||
s->setValue(Constants::DEFAULT_BUILD_DIRECTORY_TEMPLATE_KEY,
|
||||
dd->m_buildPropertiesSettings.buildDirectoryTemplate);
|
||||
}
|
||||
|
||||
s->setValue(Constants::SEPARATE_DEBUG_INFO_SETTINGS_KEY,
|
||||
dd->m_buildPropertiesSettings.separateDebugInfo.toVariant());
|
||||
s->setValue(Constants::QML_DEBUGGING_SETTINGS_KEY,
|
||||
dd->m_buildPropertiesSettings.qmlDebugging.toVariant());
|
||||
s->setValue(Constants::QT_QUICK_COMPILER_SETTINGS_KEY,
|
||||
dd->m_buildPropertiesSettings.qtQuickCompiler.toVariant());
|
||||
s->setValueWithDefault(Constants::SEPARATE_DEBUG_INFO_SETTINGS_KEY,
|
||||
dd->m_buildPropertiesSettings.separateDebugInfo.toVariant(),
|
||||
TriState::Default.toVariant());
|
||||
s->setValueWithDefault(Constants::QML_DEBUGGING_SETTINGS_KEY,
|
||||
dd->m_buildPropertiesSettings.qmlDebugging.toVariant(),
|
||||
TriState::Default.toVariant());
|
||||
s->setValueWithDefault(Constants::QT_QUICK_COMPILER_SETTINGS_KEY,
|
||||
dd->m_buildPropertiesSettings.qtQuickCompiler.toVariant(),
|
||||
TriState::Default.toVariant());
|
||||
|
||||
s->setValue(Constants::CUSTOM_PARSER_COUNT_KEY, dd->m_customParsers.count());
|
||||
s->setValueWithDefault(Constants::CUSTOM_PARSER_COUNT_KEY, dd->m_customParsers.count(), 0);
|
||||
for (int i = 0; i < dd->m_customParsers.count(); ++i) {
|
||||
s->setValue(Constants::CUSTOM_PARSER_PREFIX_KEY + QString::number(i),
|
||||
dd->m_customParsers.at(i).toMap());
|
||||
|
||||
@@ -25,8 +25,10 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "projectexplorerconstants.h"
|
||||
|
||||
#include <coreplugin/coreconstants.h>
|
||||
#include <projectexplorer/projectexplorerconstants.h>
|
||||
#include <utils/hostosinfo.h>
|
||||
|
||||
#include <QUuid>
|
||||
|
||||
@@ -53,7 +55,9 @@ public:
|
||||
bool clearIssuesOnRebuild = true;
|
||||
bool abortBuildAllOnError = true;
|
||||
bool lowBuildPriority = false;
|
||||
StopBeforeBuild stopBeforeBuild = StopBeforeBuild::None;
|
||||
StopBeforeBuild stopBeforeBuild = Utils::HostOsInfo::isWindowsHost()
|
||||
? StopBeforeBuild::SameProject
|
||||
: StopBeforeBuild::None;
|
||||
TerminalMode terminalMode = TerminalMode::Off;
|
||||
|
||||
// Add a UUid which is used to identify the development environment.
|
||||
|
||||
@@ -635,16 +635,32 @@ NavigationView ProjectTreeWidgetFactory::createWidget()
|
||||
return n;
|
||||
}
|
||||
|
||||
void ProjectTreeWidgetFactory::saveSettings(QSettings *settings, int position, QWidget *widget)
|
||||
const bool kProjectFilterDefault = false;
|
||||
const bool kHideGeneratedFilesDefault = true;
|
||||
const bool kHideDisabledFilesDefault = false;
|
||||
const bool kTrimEmptyDirsDefault = true;
|
||||
const bool kSyncDefault = true;
|
||||
|
||||
void ProjectTreeWidgetFactory::saveSettings(QtcSettings *settings, int position, QWidget *widget)
|
||||
{
|
||||
auto ptw = qobject_cast<ProjectTreeWidget *>(widget);
|
||||
Q_ASSERT(ptw);
|
||||
const QString baseKey = QLatin1String("ProjectTreeWidget.") + QString::number(position);
|
||||
settings->setValue(baseKey + QLatin1String(".ProjectFilter"), ptw->projectFilter());
|
||||
settings->setValue(baseKey + QLatin1String(".GeneratedFilter"), ptw->generatedFilesFilter());
|
||||
settings->setValue(baseKey + ".DisabledFilesFilter", ptw->disabledFilesFilter());
|
||||
settings->setValue(baseKey + QLatin1String(".TrimEmptyDirsFilter"), ptw->trimEmptyDirectoriesFilter());
|
||||
settings->setValue(baseKey + QLatin1String(".SyncWithEditor"), ptw->autoSynchronization());
|
||||
settings->setValueWithDefault(baseKey + ".ProjectFilter",
|
||||
ptw->projectFilter(),
|
||||
kProjectFilterDefault);
|
||||
settings->setValueWithDefault(baseKey + ".GeneratedFilter",
|
||||
ptw->generatedFilesFilter(),
|
||||
kHideGeneratedFilesDefault);
|
||||
settings->setValueWithDefault(baseKey + ".DisabledFilesFilter",
|
||||
ptw->disabledFilesFilter(),
|
||||
kHideDisabledFilesDefault);
|
||||
settings->setValueWithDefault(baseKey + ".TrimEmptyDirsFilter",
|
||||
ptw->trimEmptyDirectoriesFilter(),
|
||||
kTrimEmptyDirsDefault);
|
||||
settings->setValueWithDefault(baseKey + ".SyncWithEditor",
|
||||
ptw->autoSynchronization(),
|
||||
kSyncDefault);
|
||||
}
|
||||
|
||||
void ProjectTreeWidgetFactory::restoreSettings(QSettings *settings, int position, QWidget *widget)
|
||||
@@ -652,9 +668,16 @@ void ProjectTreeWidgetFactory::restoreSettings(QSettings *settings, int position
|
||||
auto ptw = qobject_cast<ProjectTreeWidget *>(widget);
|
||||
Q_ASSERT(ptw);
|
||||
const QString baseKey = QLatin1String("ProjectTreeWidget.") + QString::number(position);
|
||||
ptw->setProjectFilter(settings->value(baseKey + QLatin1String(".ProjectFilter"), false).toBool());
|
||||
ptw->setGeneratedFilesFilter(settings->value(baseKey + QLatin1String(".GeneratedFilter"), true).toBool());
|
||||
ptw->setDisabledFilesFilter(settings->value(baseKey + ".DisabledFilesFilter", false).toBool());
|
||||
ptw->setTrimEmptyDirectories(settings->value(baseKey + QLatin1String(".TrimEmptyDirsFilter"), true).toBool());
|
||||
ptw->setAutoSynchronization(settings->value(baseKey + QLatin1String(".SyncWithEditor"), true).toBool());
|
||||
ptw->setProjectFilter(
|
||||
settings->value(baseKey + QLatin1String(".ProjectFilter"), kProjectFilterDefault).toBool());
|
||||
ptw->setGeneratedFilesFilter(
|
||||
settings->value(baseKey + QLatin1String(".GeneratedFilter"), kHideGeneratedFilesDefault)
|
||||
.toBool());
|
||||
ptw->setDisabledFilesFilter(
|
||||
settings->value(baseKey + ".DisabledFilesFilter", kHideDisabledFilesDefault).toBool());
|
||||
ptw->setTrimEmptyDirectories(
|
||||
settings->value(baseKey + QLatin1String(".TrimEmptyDirsFilter"), kTrimEmptyDirsDefault)
|
||||
.toBool());
|
||||
ptw->setAutoSynchronization(
|
||||
settings->value(baseKey + QLatin1String(".SyncWithEditor"), kSyncDefault).toBool());
|
||||
}
|
||||
|
||||
@@ -114,7 +114,7 @@ public:
|
||||
|
||||
Core::NavigationView createWidget() override;
|
||||
void restoreSettings(QSettings *settings, int position, QWidget *widget) override;
|
||||
void saveSettings(QSettings *settings, int position, QWidget *widget) override;
|
||||
void saveSettings(Utils::QtcSettings *settings, int position, QWidget *widget) override;
|
||||
};
|
||||
|
||||
} // namespace Internal
|
||||
|
||||
@@ -105,7 +105,8 @@ ToolChainManager::ToolChainManager(QObject *parent) :
|
||||
connect(this, &ToolChainManager::toolChainUpdated, this, &ToolChainManager::toolChainsChanged);
|
||||
|
||||
QSettings * const s = Core::ICore::settings();
|
||||
d->m_detectionSettings.detectX64AsX32 = s->value(DETECT_X64_AS_X32_KEY, false).toBool();
|
||||
d->m_detectionSettings.detectX64AsX32
|
||||
= s->value(DETECT_X64_AS_X32_KEY, ToolchainDetectionSettings().detectX64AsX32).toBool();
|
||||
}
|
||||
|
||||
ToolChainManager::~ToolChainManager()
|
||||
@@ -137,8 +138,10 @@ void ToolChainManager::saveToolChains()
|
||||
QTC_ASSERT(d->m_accessor, return);
|
||||
|
||||
d->m_accessor->saveToolChains(d->m_toolChains, Core::ICore::dialogParent());
|
||||
QSettings * const s = Core::ICore::settings();
|
||||
s->setValue(DETECT_X64_AS_X32_KEY, d->m_detectionSettings.detectX64AsX32);
|
||||
QtcSettings *const s = Core::ICore::settings();
|
||||
s->setValueWithDefault(DETECT_X64_AS_X32_KEY,
|
||||
d->m_detectionSettings.detectX64AsX32,
|
||||
ToolchainDetectionSettings().detectX64AsX32);
|
||||
}
|
||||
|
||||
QList<ToolChain *> ToolChainManager::toolChains(const ToolChain::Predicate &predicate)
|
||||
|
||||
@@ -250,7 +250,7 @@ Core::NavigationView OutlineFactory::createWidget()
|
||||
return n;
|
||||
}
|
||||
|
||||
void OutlineFactory::saveSettings(QSettings *settings, int position, QWidget *widget)
|
||||
void OutlineFactory::saveSettings(Utils::QtcSettings *settings, int position, QWidget *widget)
|
||||
{
|
||||
auto widgetStack = qobject_cast<OutlineWidgetStack *>(widget);
|
||||
Q_ASSERT(widgetStack);
|
||||
|
||||
@@ -79,7 +79,7 @@ public:
|
||||
|
||||
// from INavigationWidgetFactory
|
||||
Core::NavigationView createWidget() override;
|
||||
void saveSettings(QSettings *settings, int position, QWidget *widget) override;
|
||||
void saveSettings(Utils::QtcSettings *settings, int position, QWidget *widget) override;
|
||||
void restoreSettings(QSettings *settings, int position, QWidget *widget) override;
|
||||
|
||||
signals:
|
||||
|
||||
Reference in New Issue
Block a user