From 44cefd73b19055e8b15041482e6f39cd24ce4db0 Mon Sep 17 00:00:00 2001 From: Leandro Melo <leandro.melo@nokia.com> Date: Wed, 13 Oct 2010 16:26:29 +0200 Subject: [PATCH] Text editor: Fix potential crash in the plain text editor. Example situation: The plain text editor is displaying in-memory content and has not been explicitly "configured". If there's an attempt to indent the text it crashes since the indenter is invalid. This can happen if one clicks on 'Show View Contents in Editor' within a debug session and press enter in the editor. Reviewed-by: con --- src/plugins/texteditor/plaintexteditor.cpp | 8 ++------ src/plugins/texteditor/plaintexteditor.h | 2 +- 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/src/plugins/texteditor/plaintexteditor.cpp b/src/plugins/texteditor/plaintexteditor.cpp index 74060a2e2e7..ea1a0b0a2c2 100644 --- a/src/plugins/texteditor/plaintexteditor.cpp +++ b/src/plugins/texteditor/plaintexteditor.cpp @@ -63,7 +63,8 @@ PlainTextEditorEditable::PlainTextEditorEditable(PlainTextEditor *editor) PlainTextEditor::PlainTextEditor(QWidget *parent) : BaseTextEditor(parent), m_isMissingSyntaxDefinition(false), - m_ignoreMissingSyntaxDefinition(false) + m_ignoreMissingSyntaxDefinition(false), + m_indenter(new NormalIndenter) // Currently only "normal" indentation is supported. { setRevisionsVisible(true); setMarksVisible(true); @@ -199,11 +200,6 @@ void PlainTextEditor::configure(const Core::MimeType &mimeType) setFontSettings(TextEditorSettings::instance()->fontSettings()); - // @todo: Indentation specification through the definition files is not really being used - // because Kate recommends to configure indentation through another feature. Maybe we should - // provide something similar in Creator? For now, only normal indentation is supported. - m_indenter.reset(new NormalIndenter); - emit configured(editableInterface()); } diff --git a/src/plugins/texteditor/plaintexteditor.h b/src/plugins/texteditor/plaintexteditor.h index 7d7917ff9f3..45ae953271a 100644 --- a/src/plugins/texteditor/plaintexteditor.h +++ b/src/plugins/texteditor/plaintexteditor.h @@ -96,8 +96,8 @@ private: bool m_isMissingSyntaxDefinition; bool m_ignoreMissingSyntaxDefinition; - Utils::CommentDefinition m_commentDefinition; QScopedPointer<Indenter> m_indenter; + Utils::CommentDefinition m_commentDefinition; }; } // namespace TextEditor -- GitLab