OSDN Git Service

Text editor: Fix potential crash in the plain text editor.
authorLeandro Melo <leandro.melo@nokia.com>
Wed, 13 Oct 2010 14:26:29 +0000 (16:26 +0200)
committerLeandro Melo <leandro.melo@nokia.com>
Wed, 13 Oct 2010 14:37:05 +0000 (16:37 +0200)
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
src/plugins/texteditor/plaintexteditor.h

index 74060a2..ea1a0b0 100644 (file)
@@ -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());
 }
 
index 7d7917f..45ae953 100644 (file)
@@ -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