From 50f0644c55d21f6d75aad483aaca85a5d35500d4 Mon Sep 17 00:00:00 2001
From: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Date: Fri, 12 Mar 2010 16:54:32 +0100
Subject: [PATCH] Designer: Fix displaying of 'modified' state after saving.

Emit an IEditor::changed() after saving to force an update
of the OpenEditorsModel.
---
 src/plugins/designer/formwindoweditor.cpp |  2 ++
 src/plugins/designer/formwindowfile.cpp   |  1 +
 src/plugins/designer/formwindowfile.h     | 17 +++++++++--------
 3 files changed, 12 insertions(+), 8 deletions(-)

diff --git a/src/plugins/designer/formwindoweditor.cpp b/src/plugins/designer/formwindoweditor.cpp
index 63ae50127e5..9fe8e3916d7 100644
--- a/src/plugins/designer/formwindoweditor.cpp
+++ b/src/plugins/designer/formwindoweditor.cpp
@@ -81,6 +81,8 @@ FormWindowEditor::FormWindowEditor(Internal::DesignerXmlEditor *editor,
     connect(form, SIGNAL(changed()), this, SIGNAL(changed()));
     // Revert to saved/load externally modified files
     connect(&(d->m_file), SIGNAL(reload(QString)), this, SLOT(slotOpen(QString)));
+    // Force update of open editors model.
+    connect(&(d->m_file), SIGNAL(saved()), this, SIGNAL(changed()));
 }
 
 FormWindowEditor::~FormWindowEditor()
diff --git a/src/plugins/designer/formwindowfile.cpp b/src/plugins/designer/formwindowfile.cpp
index 4cb80925606..6851d5ed934 100644
--- a/src/plugins/designer/formwindowfile.cpp
+++ b/src/plugins/designer/formwindowfile.cpp
@@ -83,6 +83,7 @@ bool FormWindowFile::save(const QString &name /*= QString()*/)
     emit setDisplayName(fi.fileName());
     m_formWindow->setDirty(false);
     emit changed();
+    emit saved();
 
     return true;
 }
diff --git a/src/plugins/designer/formwindowfile.h b/src/plugins/designer/formwindowfile.h
index 36363f8fdb6..5c08cc8b732 100644
--- a/src/plugins/designer/formwindowfile.h
+++ b/src/plugins/designer/formwindowfile.h
@@ -50,14 +50,14 @@ public:
     explicit FormWindowFile(QDesignerFormWindowInterface *form, QObject *parent = 0);
 
     // IFile
-    bool save(const QString &fileName = QString());
-    QString fileName() const;
-    bool isModified() const;
-    bool isReadOnly() const;
-    bool isSaveAsAllowed() const;
-    void modified(Core::IFile::ReloadBehavior *behavior);
-    QString defaultPath() const;
-    QString suggestedFileName() const;
+    virtual bool save(const QString &fileName = QString());
+    virtual QString fileName() const;
+    virtual bool isModified() const;
+    virtual bool isReadOnly() const;
+    virtual bool isSaveAsAllowed() const;
+    virtual void modified(Core::IFile::ReloadBehavior *behavior);
+    virtual QString defaultPath() const;
+    virtual QString suggestedFileName() const;
     virtual QString mimeType() const;
 
     // Internal
@@ -70,6 +70,7 @@ public:
 
 signals:
     // Internal
+    void saved();
     void reload(const QString &);
     void setDisplayName(const QString &);
 
-- 
GitLab