diff --git a/src/plugins/designer/formwindoweditor.cpp b/src/plugins/designer/formwindoweditor.cpp index 4bf4ddea849..5ad300f655d 100644 --- a/src/plugins/designer/formwindoweditor.cpp +++ b/src/plugins/designer/formwindoweditor.cpp @@ -39,11 +39,6 @@ #include #include -#include -#include -#include -#include - namespace Designer { using namespace Internal; @@ -58,49 +53,9 @@ FormWindowEditor::~FormWindowEditor() { } -void FormWindowEditor::finalizeInitialization() -{ - // Revert to saved/load externally modified files. - connect(formWindowFile(), &FormWindowFile::reloadRequested, - [this](QString *errorString, const QString &fileName) { - open(errorString, fileName, fileName); - }); -} - bool FormWindowEditor::open(QString *errorString, const QString &fileName, const QString &realFileName) { - if (Designer::Constants::Internal::debug) - qDebug() << "FormWindowEditor::open" << fileName; - - auto document = qobject_cast(textDocument()); - QDesignerFormWindowInterface *form = document->formWindow(); - QTC_ASSERT(form, return false); - - if (fileName.isEmpty()) - return true; - - const QFileInfo fi(fileName); - const QString absfileName = fi.absoluteFilePath(); - - QString contents; - if (document->read(absfileName, &contents, errorString) != Utils::TextFileFormat::ReadSuccess) - return false; - - form->setFileName(absfileName); - const QByteArray contentsBA = contents.toUtf8(); - QBuffer str; - str.setData(contentsBA); - str.open(QIODevice::ReadOnly); - if (!form->setContents(&str, errorString)) - return false; - form->setDirty(fileName != realFileName); - - document->syncXmlFromFormWindow(); - document->setFilePath(Utils::FileName::fromString(absfileName)); - document->setShouldAutoSave(false); - document->resourceHandler()->updateResources(true); - - return true; + return formWindowFile()->open(errorString, fileName, realFileName); } QWidget *FormWindowEditor::toolBar() diff --git a/src/plugins/designer/formwindoweditor.h b/src/plugins/designer/formwindoweditor.h index 2e5251c128b..f82030b61d4 100644 --- a/src/plugins/designer/formwindoweditor.h +++ b/src/plugins/designer/formwindoweditor.h @@ -54,7 +54,6 @@ public: FormWindowEditor(); ~FormWindowEditor(); - void finalizeInitialization(); bool open(QString *errorString, const QString &fileName, const QString &realFileName); QWidget *toolBar(); bool isDesignModePreferred() const; diff --git a/src/plugins/designer/formwindowfile.cpp b/src/plugins/designer/formwindowfile.cpp index cb6d053774b..4b2ec88039b 100644 --- a/src/plugins/designer/formwindowfile.cpp +++ b/src/plugins/designer/formwindowfile.cpp @@ -36,6 +36,7 @@ #include #include +#include #include #include #include @@ -71,6 +72,41 @@ FormWindowFile::FormWindowFile(QDesignerFormWindowInterface *form, QObject *pare m_resourceHandler, SLOT(updateResources())); } +bool FormWindowFile::open(QString *errorString, const QString &fileName, const QString &realFileName) +{ + if (Designer::Constants::Internal::debug) + qDebug() << "FormWindowFile::open" << fileName; + + QDesignerFormWindowInterface *form = formWindow(); + QTC_ASSERT(form, return false); + + if (fileName.isEmpty()) + return true; + + const QFileInfo fi(fileName); + const QString absfileName = fi.absoluteFilePath(); + + QString contents; + if (read(absfileName, &contents, errorString) != Utils::TextFileFormat::ReadSuccess) + return false; + + form->setFileName(absfileName); + const QByteArray contentsBA = contents.toUtf8(); + QBuffer str; + str.setData(contentsBA); + str.open(QIODevice::ReadOnly); + if (!form->setContents(&str, errorString)) + return false; + form->setDirty(fileName != realFileName); + + syncXmlFromFormWindow(); + setFilePath(Utils::FileName::fromString(absfileName)); + setShouldAutoSave(false); + resourceHandler()->updateResources(true); + + return true; +} + bool FormWindowFile::save(QString *errorString, const QString &name, bool autoSave) { const FileName actualName = name.isEmpty() ? filePath() : FileName::fromString(name); @@ -175,8 +211,7 @@ bool FormWindowFile::reload(QString *errorString, ReloadFlag flag, ChangeType ty emit changed(); } else { emit aboutToReload(); - emit reloadRequested(errorString, filePath().toString()); - const bool success = errorString->isEmpty(); + const bool success = open(errorString, filePath().toString(), filePath().toString()); emit reloadFinished(success); return success; } diff --git a/src/plugins/designer/formwindowfile.h b/src/plugins/designer/formwindowfile.h index bf26bf505f7..1d4d7a4f369 100644 --- a/src/plugins/designer/formwindowfile.h +++ b/src/plugins/designer/formwindowfile.h @@ -52,6 +52,8 @@ public: explicit FormWindowFile(QDesignerFormWindowInterface *form, QObject *parent = 0); ~FormWindowFile() { } + bool open(QString *errorString, const QString &fileName, const QString &realFileName); + // IDocument bool save(QString *errorString, const QString &fileName, bool autoSave); bool setContents(const QByteArray &contents); @@ -72,10 +74,6 @@ public: QString formWindowContents() const; ResourceHandler *resourceHandler() const; -signals: - // Internal - void reloadRequested(QString *errorString, const QString &); - public slots: void setFilePath(const Utils::FileName &); void setShouldAutoSave(bool sad = true) { m_shouldAutoSave = sad; }