QmlDesigner: crash fix

See BAUHAUS-435
Inside a modification group/transaction we disable undo/redo
This commit is contained in:
Thomas Hartmann
2010-03-08 13:55:19 +01:00
parent 4bd8b4772b
commit 845948cdee
3 changed files with 10 additions and 2 deletions

View File

@@ -748,12 +748,14 @@ RewriterView *DesignDocumentController::rewriterView() const
void DesignDocumentController::undo() void DesignDocumentController::undo()
{ {
m_d->textEdit->undo(); if (m_d->rewriterView && !m_d->rewriterView->modificationGroupActive())
m_d->textEdit->undo();
} }
void DesignDocumentController::redo() void DesignDocumentController::redo()
{ {
m_d->textEdit->redo(); if (m_d->rewriterView && !m_d->rewriterView->modificationGroupActive())
m_d->textEdit->redo();
} }
#ifdef ENABLE_TEXT_VIEW #ifdef ENABLE_TEXT_VIEW

View File

@@ -153,6 +153,7 @@ public:
int nodeLength(const ModelNode &node) const; int nodeLength(const ModelNode &node) const;
int firstDefinitionInsideOffset(const ModelNode &node) const; int firstDefinitionInsideOffset(const ModelNode &node) const;
int firstDefinitionInsideLength(const ModelNode &node) const; int firstDefinitionInsideLength(const ModelNode &node) const;
bool modificationGroupActive();
signals: signals:
void errorsChanged(const QList<RewriterView::Error> &errors); void errorsChanged(const QList<RewriterView::Error> &errors);

View File

@@ -484,6 +484,11 @@ int RewriterView::firstDefinitionInsideLength(const ModelNode &node) const
return objectLengthCalculator(offset); return objectLengthCalculator(offset);
} }
bool RewriterView::modificationGroupActive()
{
return m_modificationGroupActive;
}
void RewriterView::qmlTextChanged() void RewriterView::qmlTextChanged()
{ {
if (inErrorState()) if (inErrorState())