forked from qt-creator/qt-creator
Beautifier: Delay-construct main settings
Even though it doesn't help yet as it's immediately accessed. Change-Id: I7e3a40a05517130a9f747c82a3d4928378143947 Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
This commit is contained in:
@@ -26,22 +26,14 @@
|
||||
|
||||
#include <texteditor/formattexteditor.h>
|
||||
#include <texteditor/textdocument.h>
|
||||
#include <texteditor/textdocumentlayout.h>
|
||||
#include <texteditor/texteditor.h>
|
||||
#include <texteditor/texteditorconstants.h>
|
||||
|
||||
#include <utils/algorithm.h>
|
||||
#include <utils/fileutils.h>
|
||||
#include <utils/mimeutils.h>
|
||||
#include <utils/process.h>
|
||||
#include <utils/qtcassert.h>
|
||||
#include <utils/temporarydirectory.h>
|
||||
#include <utils/textutils.h>
|
||||
|
||||
#include <QMenu>
|
||||
#include <QPlainTextEdit>
|
||||
#include <QScrollBar>
|
||||
#include <QTextBlock>
|
||||
|
||||
using namespace TextEditor;
|
||||
|
||||
@@ -71,8 +63,6 @@ public:
|
||||
|
||||
void autoFormatOnSave(Core::IDocument *document);
|
||||
|
||||
GeneralSettings generalSettings;
|
||||
|
||||
ArtisticStyle artisticStyleBeautifier;
|
||||
ClangFormat clangFormatBeautifier;
|
||||
Uncrustify uncrustifyBeautifier;
|
||||
@@ -103,7 +93,7 @@ ExtensionSystem::IPlugin::ShutdownFlag BeautifierPlugin::aboutToShutdown()
|
||||
BeautifierPluginPrivate::BeautifierPluginPrivate()
|
||||
{
|
||||
for (BeautifierTool *tool : BeautifierTool::allTools())
|
||||
generalSettings.autoFormatTools.addOption(tool->id());
|
||||
generalSettings().autoFormatTools.addOption(tool->id());
|
||||
|
||||
updateActions();
|
||||
|
||||
@@ -122,14 +112,14 @@ void BeautifierPluginPrivate::updateActions(Core::IEditor *editor)
|
||||
|
||||
void BeautifierPluginPrivate::autoFormatOnSave(Core::IDocument *document)
|
||||
{
|
||||
if (!generalSettings.autoFormatOnSave.value())
|
||||
if (!generalSettings().autoFormatOnSave())
|
||||
return;
|
||||
|
||||
if (!isAutoFormatApplicable(document, generalSettings.allowedMimeTypes()))
|
||||
if (!isAutoFormatApplicable(document, generalSettings().allowedMimeTypes()))
|
||||
return;
|
||||
|
||||
// Check if file is contained in the current project (if wished)
|
||||
if (generalSettings.autoFormatOnlyCurrentProject.value()) {
|
||||
if (generalSettings().autoFormatOnlyCurrentProject()) {
|
||||
const ProjectExplorer::Project *pro = ProjectExplorer::ProjectTree::currentProject();
|
||||
if (!pro
|
||||
|| pro->files([document](const ProjectExplorer::Node *n) {
|
||||
@@ -142,7 +132,7 @@ void BeautifierPluginPrivate::autoFormatOnSave(Core::IDocument *document)
|
||||
}
|
||||
|
||||
// Find tool to use by id and format file!
|
||||
const QString id = generalSettings.autoFormatTools.stringValue();
|
||||
const QString id = generalSettings().autoFormatTools.stringValue();
|
||||
const QList<BeautifierTool *> &tools = BeautifierTool::allTools();
|
||||
auto tool = std::find_if(std::begin(tools), std::end(tools),
|
||||
[&id](const BeautifierTool *t){return t->id() == id;});
|
||||
|
@@ -6,6 +6,8 @@
|
||||
#include "beautifierconstants.h"
|
||||
#include "beautifiertr.h"
|
||||
|
||||
#include <coreplugin/dialogs/ioptionspage.h>
|
||||
|
||||
#include <utils/algorithm.h>
|
||||
#include <utils/genericconstants.h>
|
||||
#include <utils/layoutbuilder.h>
|
||||
@@ -14,13 +16,14 @@ using namespace Utils;
|
||||
|
||||
namespace Beautifier::Internal {
|
||||
|
||||
GeneralSettings &generalSettings()
|
||||
{
|
||||
static GeneralSettings theSettings;
|
||||
return theSettings;
|
||||
}
|
||||
|
||||
GeneralSettings::GeneralSettings()
|
||||
{
|
||||
setId(Constants::OPTION_GENERAL_ID);
|
||||
setDisplayName(Tr::tr("General"));
|
||||
setCategory(Constants::OPTION_CATEGORY);
|
||||
setDisplayCategory(Tr::tr("Beautifier"));
|
||||
setCategoryIconPath(":/beautifier/images/settingscategory_beautifier.png");
|
||||
setSettingsGroups("Beautifier", "General");
|
||||
|
||||
autoFormatOnSave.setSettingsKey(Utils::Constants::BEAUTIFIER_AUTO_FORMAT_ON_SAVE);
|
||||
@@ -73,4 +76,20 @@ QList<MimeType> GeneralSettings::allowedMimeTypes() const
|
||||
return types;
|
||||
}
|
||||
|
||||
class GeneralSettingsPage final : public Core::IOptionsPage
|
||||
{
|
||||
public:
|
||||
GeneralSettingsPage()
|
||||
{
|
||||
setId(Constants::OPTION_GENERAL_ID);
|
||||
setDisplayName(Tr::tr("General"));
|
||||
setCategory(Constants::OPTION_CATEGORY);
|
||||
setDisplayCategory(Tr::tr("Beautifier"));
|
||||
setCategoryIconPath(":/beautifier/images/settingscategory_beautifier.png");
|
||||
setSettingsProvider([] { return &generalSettings(); });
|
||||
}
|
||||
};
|
||||
|
||||
const GeneralSettingsPage settingsPage;
|
||||
|
||||
} // Beautifier::Internal
|
||||
|
@@ -3,13 +3,12 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <utils/aspects.h>
|
||||
#include <utils/mimeutils.h>
|
||||
|
||||
#include <coreplugin/dialogs/ioptionspage.h>
|
||||
|
||||
namespace Beautifier::Internal {
|
||||
|
||||
class GeneralSettings : public Core::PagedSettings
|
||||
class GeneralSettings final : public Utils::AspectContainer
|
||||
{
|
||||
public:
|
||||
GeneralSettings();
|
||||
@@ -22,4 +21,6 @@ public:
|
||||
Utils::StringAspect autoFormatMime{this};
|
||||
};
|
||||
|
||||
GeneralSettings &generalSettings();
|
||||
|
||||
} // Beautifier::Internal
|
||||
|
Reference in New Issue
Block a user