diff options
author | Friedemann Kleint <Friedemann.Kleint@nokia.com> | 2011-05-19 09:04:51 +0200 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@nokia.com> | 2011-05-19 09:04:51 +0200 |
commit | cb6300f56754b92a972be39be08da019ee6e4b34 (patch) | |
tree | 8d51b952b3fcafcfc45f4826f99e5ca707700bfb /src/designer/src/designer/qdesigner_workbench.cpp | |
parent | 398777900b0ef0e16a346167110ea8326e91d876 (diff) |
Designer: Refactor save/load.
No longer pop up message boxes in QDesignerFormWindowInterface::
contents(), introduce QDesignerFormWindowInterface::checkContents()
instead that checks for orphaned top level spacers (use in
Designer application).
Give QDesignerFormWindowInterface::setContents() a bool return and
pass an optional error string back for IDE integrations.
Remove all Qt3 form conversion logic
from the loading logic (since there is no more uic3); do not
do any additional checks there since everything has been
moved to QAbstractFormBuilder::load() (including language).
Thus, QDesignerFormWindowInterface::setContents() no
longer pops up message boxes, either.
Dependent on: qtbase/449b8a93170ecc19f2f438b160d0bc4122999401
Diffstat (limited to 'src/designer/src/designer/qdesigner_workbench.cpp')
-rw-r--r-- | src/designer/src/designer/qdesigner_workbench.cpp | 34 |
1 files changed, 12 insertions, 22 deletions
diff --git a/src/designer/src/designer/qdesigner_workbench.cpp b/src/designer/src/designer/qdesigner_workbench.cpp index d6c925dc6..0d646060a 100644 --- a/src/designer/src/designer/qdesigner_workbench.cpp +++ b/src/designer/src/designer/qdesigner_workbench.cpp @@ -894,7 +894,6 @@ void QDesignerWorkbench::resizeForm(QDesignerFormWindow *fw, const QWidget *main QDesignerFormWindow * QDesignerWorkbench::loadForm(const QString &fileName, bool detectLineTermiantorMode, - bool *uic3Converted, QString *errorMessage) { QFile file(fileName); @@ -916,11 +915,10 @@ QDesignerFormWindow * QDesignerWorkbench::loadForm(const QString &fileName, } if (!file.open(QFile::ReadOnly|QFile::Text)) { - *errorMessage = tr("The file <b>%1</b> could not be opened.").arg(file.fileName()); + *errorMessage = tr("The file <b>%1</b> could not be opened: %1").arg(file.fileName(), file.errorString()); return 0; } - // Create a form QDesignerFormWindowManagerInterface *formWindowManager = m_core->formWindowManager(); @@ -932,7 +930,13 @@ QDesignerFormWindow * QDesignerWorkbench::loadForm(const QString &fileName, // Temporarily set the file name. It is needed when converting a UIC 3 file. // In this case, the file name will we be cleared on return to force a save box. editor->setFileName(fileName); - editor->setContents(&file); + + if (!editor->setContents(&file, errorMessage)) { + removeFormWindow(formWindow); + formWindowManager->removeFormWindow(editor); + m_core->metaDataBase()->remove(editor); + return 0; + } if (qdesigner_internal::FormWindowBase *fwb = qobject_cast<qdesigner_internal::FormWindowBase *>(editor)) fwb->setLineTerminatorMode(mode); @@ -958,14 +962,6 @@ QDesignerFormWindow * QDesignerWorkbench::loadForm(const QString &fileName, break; } - if (!editor->mainContainer()) { - removeFormWindow(formWindow); - formWindowManager->removeFormWindow(editor); - m_core->metaDataBase()->remove(editor); - *errorMessage = tr("The file <b>%1</b> is not a valid Designer UI file.").arg(file.fileName()); - return 0; - } - *uic3Converted = editor->fileName().isEmpty(); // Did user specify another (missing) resource path -> set dirty. const bool dirty = editor->property("_q_resourcepathchanged").toBool(); editor->setDirty(dirty); @@ -977,13 +973,10 @@ QDesignerFormWindow * QDesignerWorkbench::loadForm(const QString &fileName, QDesignerFormWindow * QDesignerWorkbench::openForm(const QString &fileName, QString *errorMessage) { - bool uic3Converted; - QDesignerFormWindow *rc =loadForm(fileName, true, &uic3Converted, errorMessage); + QDesignerFormWindow *rc = loadForm(fileName, true, errorMessage); if (!rc) return 0; - - if (!uic3Converted) - rc->editor()->setFileName(fileName); + rc->editor()->setFileName(fileName); rc->firstShow(); return rc; } @@ -992,14 +985,11 @@ QDesignerFormWindow * QDesignerWorkbench::openTemplate(const QString &templateFi const QString &editorFileName, QString *errorMessage) { - bool uic3Converted; - QDesignerFormWindow *rc =loadForm(templateFileName, false, &uic3Converted, errorMessage); + QDesignerFormWindow *rc = loadForm(templateFileName, false, errorMessage); if (!rc) return 0; - if (!uic3Converted) - rc->editor()->setFileName(editorFileName); - + rc->editor()->setFileName(editorFileName); rc->firstShow(); return rc; } |