summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2016-10-26 11:39:47 +0200
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2016-10-31 20:04:19 +0000
commite3c0afb5d19b0223f85d5b528b427e5f0c6c7392 (patch)
treeb21b0a39ea0a3efc0c1377c73d1a5863b06f6262
parente8bf10fb3aff47ed5dbf32431853194b1f311572 (diff)
downloadqttools-e3c0afb5d19b0223f85d5b528b427e5f0c6c7392.tar.gz
Qt Designer: Mark forms as dirty when changing the promoted classes
Call QDesignerFormWindow::setDirty() when promoted classes are changed. Change-Id: I2310c73b8894658bf9fb8f2a76f0aa25364fae10 Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
-rw-r--r--src/designer/src/lib/shared/qdesigner_promotion.cpp16
1 files changed, 14 insertions, 2 deletions
diff --git a/src/designer/src/lib/shared/qdesigner_promotion.cpp b/src/designer/src/lib/shared/qdesigner_promotion.cpp
index fabca5514..61c7675cf 100644
--- a/src/designer/src/lib/shared/qdesigner_promotion.cpp
+++ b/src/designer/src/lib/shared/qdesigner_promotion.cpp
@@ -116,6 +116,13 @@ namespace {
}
}
+static void markFormsDirty(const QDesignerFormEditorInterface *core)
+{
+ const QDesignerFormWindowManagerInterface *fwm = core->formWindowManager();
+ for (int f = 0, count = fwm->formWindowCount(); f < count; ++f)
+ fwm->formWindow(f)->setDirty(true);
+}
+
namespace qdesigner_internal {
QDesignerPromotion::QDesignerPromotion(QDesignerFormEditorInterface *core) :
@@ -153,6 +160,7 @@ namespace qdesigner_internal {
promotedItem->setExtends(baseClass);
promotedItem->setIncludeFile(includeFile);
widgetDataBase->append(promotedItem);
+ markFormsDirty(m_core);
return true;
}
@@ -303,6 +311,7 @@ namespace qdesigner_internal {
}
}
widgetDataBase->remove(index);
+ markFormsDirty(m_core);
return true;
}
@@ -344,6 +353,7 @@ namespace qdesigner_internal {
if (foundReferences)
refreshObjectInspector();
+ markFormsDirty(m_core);
return true;
}
@@ -358,8 +368,10 @@ namespace qdesigner_internal {
QDesignerWidgetDataBaseItemInterface *dbItem = promotedWidgetDataBaseItem(widgetDataBase, className, errorMessage);
if (!dbItem)
return false;
-
- dbItem->setIncludeFile(includeFile);
+ if (dbItem->includeFile() != includeFile) {
+ dbItem->setIncludeFile(includeFile);
+ markFormsDirty(m_core);
+ }
return true;
}