Editor: move code setCodeStyle from widget to document

The information was only used in the document and it does not make any
sense to change it for different widgets in different ways.

Change-Id: I1d7c4548c4bd02c3dfa8f27065e440b7469653b1
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
David Schulz
2024-11-26 12:02:42 +01:00
parent baf02224a2
commit d9016f917e
12 changed files with 42 additions and 48 deletions

View File

@@ -507,7 +507,7 @@ void CppCodeStylePreferencesWidget::updatePreview()
QtStyleCodeFormatter formatter(ts, ccss);
for (SnippetEditorWidget *preview : std::as_const(d->m_previews)) {
preview->textDocument()->setTabSettings(ts);
preview->setCodeStyle(cppCodeStylePreferences);
preview->textDocument()->setCodeStyle(cppCodeStylePreferences);
QTextDocument *doc = preview->document();
formatter.invalidateCache(doc);

View File

@@ -171,6 +171,12 @@ void CppEditorDocument::applyFontSettings()
m_processor->semanticRehighlight();
}
void CppEditorDocument::slotCodeStyleSettingsChanged()
{
QtStyleCodeFormatter formatter;
formatter.invalidateCache(document());
}
void CppEditorDocument::invalidateFormatterCache()
{
QtStyleCodeFormatter formatter;

View File

@@ -68,6 +68,7 @@ signals:
protected:
void applyFontSettings() override;
Utils::Result saveImpl(const Utils::FilePath &filePath, bool autoSave) override;
void slotCodeStyleSettingsChanged() override;
private:
void invalidateFormatterCache();

View File

@@ -1246,12 +1246,6 @@ bool CppEditorWidget::handleStringSplitting(QKeyEvent *e) const
return false;
}
void CppEditorWidget::slotCodeStyleSettingsChanged(const QVariant &)
{
QtStyleCodeFormatter formatter;
formatter.invalidateCache(document());
}
void CppEditorWidget::updateSemanticInfo()
{
updateSemanticInfo(d->m_cppEditorDocument->recalculateSemanticInfo(),

View File

@@ -115,8 +115,6 @@ protected:
bool resolveTarget = true,
bool inNextSplit = false) override;
void slotCodeStyleSettingsChanged(const QVariant &) override;
private:
void updateFunctionDeclDefLink();
void updateFunctionDeclDefLinkNow();

View File

@@ -27,7 +27,7 @@ SelectableTextEditorWidget::SelectableTextEditorWidget(Utils::Id id, QWidget *pa
this, &SelectableTextEditorWidget::setDisplaySettings);
SelectableTextEditorWidget::setDisplaySettings(TextEditorSettings::displaySettings());
setCodeStyle(TextEditorSettings::codeStyle());
textDocument()->setCodeStyle(TextEditorSettings::codeStyle());
setCodeFoldingSupported(true);
}

View File

@@ -234,7 +234,7 @@ void EditorConfiguration::configureEditor(BaseTextEditor *textEditor) const
{
TextEditorWidget *widget = textEditor->editorWidget();
if (widget)
widget->setCodeStyle(codeStyle(widget->languageSettingsId()));
widget->textDocument()->setCodeStyle(codeStyle(widget->languageSettingsId()));
if (!d->m_useGlobal) {
textEditor->textDocument()->setCodec(d->m_textCodec);
if (widget)
@@ -250,7 +250,7 @@ void EditorConfiguration::deconfigureEditor(BaseTextEditor *textEditor) const
{
TextEditorWidget *widget = textEditor->editorWidget();
if (widget)
widget->setCodeStyle(TextEditorSettings::codeStyle(widget->languageSettingsId()));
widget->textDocument()->setCodeStyle(TextEditorSettings::codeStyle(widget->languageSettingsId()));
d->m_editors.removeOne(textEditor);

View File

@@ -86,7 +86,7 @@ CodeStyleEditor::CodeStyleEditor(ICodeStylePreferencesFactory *factory,
indenter->setFileName(fileName);
m_preview->textDocument()->setIndenter(indenter);
} else {
m_preview->setCodeStyle(codeStyle);
m_preview->textDocument()->setCodeStyle(codeStyle);
}
updatePreview();

View File

@@ -5,6 +5,7 @@
#include "extraencodingsettings.h"
#include "fontsettings.h"
#include "icodestylepreferences.h"
#include "storagesettings.h"
#include "syntaxhighlighter.h"
#include "tabsettings.h"
@@ -76,6 +77,7 @@ public:
QString m_suggestedFileName;
TypingSettings m_typingSettings;
StorageSettings m_storageSettings;
ICodeStylePreferences *m_codeStylePreferences = nullptr;
TabSettings m_tabSettings;
ExtraEncodingSettings m_extraEncodingSettings;
FontSettings m_fontSettings;
@@ -457,6 +459,26 @@ IAssistProvider *TextDocument::quickFixAssistProvider() const
return d->m_quickFixProvider;
}
void TextDocument::setCodeStyle(ICodeStylePreferences *preferences)
{
indenter()->setCodeStylePreferences(preferences);
if (d->m_codeStylePreferences) {
disconnect(d->m_codeStylePreferences, &ICodeStylePreferences::currentTabSettingsChanged,
this, &TextDocument::setTabSettings);
disconnect(d->m_codeStylePreferences, &ICodeStylePreferences::currentValueChanged,
this, &TextDocument::slotCodeStyleSettingsChanged);
}
d->m_codeStylePreferences = preferences;
if (d->m_codeStylePreferences) {
connect(d->m_codeStylePreferences, &ICodeStylePreferences::currentTabSettingsChanged,
this, &TextDocument::setTabSettings);
connect(d->m_codeStylePreferences, &ICodeStylePreferences::currentValueChanged,
this, &TextDocument::slotCodeStyleSettingsChanged);
setTabSettings(d->m_codeStylePreferences->currentTabSettings());
slotCodeStyleSettingsChanged();
}
}
void TextDocument::applyFontSettings()
{
d->m_fontSettingsNeedsApply = false;
@@ -470,6 +492,8 @@ void TextDocument::applyFontSettings()
d->m_highlighter->setFontSettings(d->m_fontSettings);
}
void TextDocument::slotCodeStyleSettingsChanged() { }
const FontSettings &TextDocument::fontSettings() const
{
return d->m_fontSettings;

View File

@@ -139,6 +139,7 @@ public:
void setQuickFixAssistProvider(IAssistProvider *provider) const;
virtual IAssistProvider *quickFixAssistProvider() const;
void setCodeStyle(ICodeStylePreferences *preferences);
void setTabSettings(const TextEditor::TabSettings &tabSettings);
void setFontSettings(const TextEditor::FontSettings &fontSettings);
@@ -163,6 +164,7 @@ signals:
protected:
virtual void applyFontSettings();
Utils::Result saveImpl(const Utils::FilePath &filePath, bool autoSave) override;
virtual void slotCodeStyleSettingsChanged(); // Used in CppEditorDocumet
private:
OpenResult openImpl(QString *errorString,

View File

@@ -359,6 +359,7 @@ private:
}));
}
tabSize->addActions(tabSizeGroup->actions());
menu->popup(QCursor::pos());
}
@@ -896,7 +897,6 @@ public:
QWidget *m_extraArea = nullptr;
Id m_tabSettingsId;
ICodeStylePreferences *m_codeStylePreferences = nullptr;
DisplaySettings m_displaySettings;
bool m_annotationsrRight = true;
MarginSettings m_marginSettings;
@@ -1592,7 +1592,7 @@ void TextEditorWidgetPrivate::setDocument(const QSharedPointer<TextDocument> &do
q->setDisplaySettings(TextEditorSettings::displaySettings());
q->setCompletionSettings(TextEditorSettings::completionSettings());
q->setExtraEncodingSettings(globalExtraEncodingSettings());
q->setCodeStyle(TextEditorSettings::codeStyle(m_tabSettingsId));
q->textDocument()->setCodeStyle(TextEditorSettings::codeStyle(m_tabSettingsId));
m_blockCount = doc->document()->blockCount();
@@ -7707,7 +7707,8 @@ void TextEditorWidgetPrivate::toggleBlockVisible(const QTextBlock &block)
void TextEditorWidget::setLanguageSettingsId(Id settingsId)
{
d->m_tabSettingsId = settingsId;
setCodeStyle(TextEditorSettings::codeStyle(settingsId));
if (auto doc = textDocument())
doc->setCodeStyle(TextEditorSettings::codeStyle(settingsId));
}
Id TextEditorWidget::languageSettingsId() const
@@ -7715,35 +7716,6 @@ Id TextEditorWidget::languageSettingsId() const
return d->m_tabSettingsId;
}
void TextEditorWidget::setCodeStyle(ICodeStylePreferences *preferences)
{
TextDocument *document = d->m_document.data();
// Not fully initialized yet... wait for TextEditorWidgetPrivate::setupDocumentSignals
if (!document)
return;
document->indenter()->setCodeStylePreferences(preferences);
if (d->m_codeStylePreferences) {
disconnect(d->m_codeStylePreferences, &ICodeStylePreferences::currentTabSettingsChanged,
document, &TextDocument::setTabSettings);
disconnect(d->m_codeStylePreferences, &ICodeStylePreferences::currentValueChanged,
this, &TextEditorWidget::slotCodeStyleSettingsChanged);
}
d->m_codeStylePreferences = preferences;
if (d->m_codeStylePreferences) {
connect(d->m_codeStylePreferences, &ICodeStylePreferences::currentTabSettingsChanged,
document, &TextDocument::setTabSettings);
connect(d->m_codeStylePreferences, &ICodeStylePreferences::currentValueChanged,
this, &TextEditorWidget::slotCodeStyleSettingsChanged);
document->setTabSettings(d->m_codeStylePreferences->currentTabSettings());
slotCodeStyleSettingsChanged(d->m_codeStylePreferences->currentValue());
}
}
void TextEditorWidget::slotCodeStyleSettingsChanged(const QVariant &)
{
}
const DisplaySettings &TextEditorWidget::displaySettings() const
{
return d->m_displaySettings;

View File

@@ -319,8 +319,6 @@ public:
void setLanguageSettingsId(Utils::Id settingsId);
Utils::Id languageSettingsId() const;
void setCodeStyle(ICodeStylePreferences *settings);
const DisplaySettings &displaySettings() const;
const MarginSettings &marginSettings() const;
const BehaviorSettings &behaviorSettings() const;
@@ -689,7 +687,6 @@ signals:
protected:
virtual void slotCursorPositionChanged(); // Used in VcsBase
virtual void slotCodeStyleSettingsChanged(const QVariant &); // Used in CppEditor
private:
std::unique_ptr<Internal::TextEditorWidgetPrivate> d;