summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLasse Holmstedt <lasse.holmstedt@nokia.com>2010-02-26 14:28:26 +0100
committerLasse Holmstedt <lasse.holmstedt@nokia.com>2010-02-26 14:29:12 +0100
commite952d30914a1600a0cf67c828ce83af91fe2abed (patch)
treea798584c07fedd33f57510e5aa96789d25df868b
parentec5952c5f6bb11250c8fd1643eb7951fa3311773 (diff)
downloadqt-creator-e952d30914a1600a0cf67c828ce83af91fe2abed.tar.gz
Fixed resource file issue with Qt Designer and switching to edit mode while debugging
-rw-r--r--src/plugins/coreplugin/designmode.cpp5
-rw-r--r--src/plugins/designer/cpp/formclasswizard.cpp2
-rw-r--r--src/plugins/designer/formwindoweditor.cpp55
-rw-r--r--src/plugins/designer/formwindoweditor.h2
-rw-r--r--src/plugins/designer/formwizard.cpp2
-rw-r--r--src/plugins/qmldesigner/qmldesignerplugin.cpp15
-rw-r--r--src/plugins/qmldesigner/qmldesignerplugin.h1
7 files changed, 55 insertions, 27 deletions
diff --git a/src/plugins/coreplugin/designmode.cpp b/src/plugins/coreplugin/designmode.cpp
index 1dcece3b69..351767dcbe 100644
--- a/src/plugins/coreplugin/designmode.cpp
+++ b/src/plugins/coreplugin/designmode.cpp
@@ -186,10 +186,9 @@ void DesignMode::currentEditorChanged(Core::IEditor *editor)
if (!mimeEditorAvailable)
setEnabled(false);
- if ((!mimeEditorAvailable && core->modeManager()->currentMode() == this)
- || !modeActivated)
+ if (!mimeEditorAvailable && core->modeManager()->currentMode() == this)
{
- // switch back to edit mode
+ // switch back to edit mode - we don't want to be here
core->modeManager()->activateMode(Constants::MODE_EDIT);
}
diff --git a/src/plugins/designer/cpp/formclasswizard.cpp b/src/plugins/designer/cpp/formclasswizard.cpp
index 2c185c3350..c6b7b9a75f 100644
--- a/src/plugins/designer/cpp/formclasswizard.cpp
+++ b/src/plugins/designer/cpp/formclasswizard.cpp
@@ -96,7 +96,7 @@ Core::GeneratedFiles FormClassWizard::generateFiles(const QWizard *w, QString *e
// UI
Core::GeneratedFile uiFile(formFileName);
uiFile.setContents(params.uiTemplate());
- uiFile.setEditorId(QLatin1String(Constants::FORMEDITOR_ID));
+ uiFile.setEditorId(QLatin1String(Constants::DESIGNER_XML_EDITOR_ID));
QString source, header;
Designer::FormClassWizardGenerationParameters generationParameters;
diff --git a/src/plugins/designer/formwindoweditor.cpp b/src/plugins/designer/formwindoweditor.cpp
index 7915619525..d32ad3bef8 100644
--- a/src/plugins/designer/formwindoweditor.cpp
+++ b/src/plugins/designer/formwindoweditor.cpp
@@ -144,6 +144,7 @@ void FormWindowEditor::setFile(Core::IFile *file)
}
m_file = file;
+ m_formWindow->setFileName(file->fileName());
if (m_file) {
connect(m_file, SIGNAL(changed()), this, SIGNAL(changed()));
@@ -185,6 +186,9 @@ bool FormWindowEditor::createNew(const QString &contents)
if (qdesigner_internal::FormWindowBase *fw = qobject_cast<qdesigner_internal::FormWindowBase *>(m_formWindow))
fw->setDesignerGrid(qdesigner_internal::FormWindowBase::defaultDesignerGrid());
+
+ initializeResources();
+
return true;
}
@@ -216,31 +220,42 @@ bool FormWindowEditor::open(const QString &fileName /*= QString()*/)
return false;
m_formWindow->setDirty(false);
- ProjectExplorer::ProjectExplorerPlugin *pe = ProjectExplorer::ProjectExplorerPlugin::instance();
- ProjectExplorer::SessionManager *session = pe->session();
- m_sessionNode = session->sessionNode();
- m_sessionWatcher = new ProjectExplorer::NodesWatcher();
- connect(m_sessionWatcher, SIGNAL(filesAdded()), this, SLOT(updateResources()));
- connect(m_sessionWatcher, SIGNAL(filesRemoved()), this, SLOT(updateResources()));
- connect(m_sessionWatcher, SIGNAL(foldersAdded()), this, SLOT(updateResources()));
- connect(m_sessionWatcher, SIGNAL(foldersRemoved()), this, SLOT(updateResources()));
- m_sessionNode->registerWatcher(m_sessionWatcher);
-
- if (qdesigner_internal::FormWindowBase *fw = qobject_cast<qdesigner_internal::FormWindowBase *>(m_formWindow)) {
- QtResourceSet *rs = fw->resourceSet();
- m_originalUiQrcPaths = rs->activeQrcPaths();
- }
+ initializeResources(fileName);
- emit opened(fileName);
- updateResources();
+ setDisplayName(fi.fileName());
- QDesignerFormWindowManagerInterface *fwm = FormEditorW::instance()->designerEditor()->formWindowManager();
- fwm->setActiveFormWindow(m_formWindow);
+ }
- setDisplayName(fi.fileName());
+ return true;
+}
+void FormWindowEditor::initializeResources(const QString &fileName /*= QString()*/)
+{
+ ProjectExplorer::ProjectExplorerPlugin *pe = ProjectExplorer::ProjectExplorerPlugin::instance();
+ ProjectExplorer::SessionManager *session = pe->session();
+
+ m_sessionNode = session->sessionNode();
+ m_sessionWatcher = new ProjectExplorer::NodesWatcher();
+
+ connect(m_sessionWatcher, SIGNAL(filesAdded()), this, SLOT(updateResources()));
+ connect(m_sessionWatcher, SIGNAL(filesRemoved()), this, SLOT(updateResources()));
+ connect(m_sessionWatcher, SIGNAL(foldersAdded()), this, SLOT(updateResources()));
+ connect(m_sessionWatcher, SIGNAL(foldersRemoved()), this, SLOT(updateResources()));
+ m_sessionNode->registerWatcher(m_sessionWatcher);
+
+ if (qdesigner_internal::FormWindowBase *fw = qobject_cast<qdesigner_internal::FormWindowBase *>(m_formWindow)) {
+ QtResourceSet *rs = fw->resourceSet();
+ m_originalUiQrcPaths = rs->activeQrcPaths();
}
+
+ if (!fileName.isEmpty())
+ emit opened(fileName);
+
+ updateResources();
+
+ QDesignerFormWindowManagerInterface *fwm = FormEditorW::instance()->designerEditor()->formWindowManager();
+ fwm->setActiveFormWindow(m_formWindow);
+
emit changed();
- return true;
}
void FormWindowEditor::updateResources()
diff --git a/src/plugins/designer/formwindoweditor.h b/src/plugins/designer/formwindoweditor.h
index ed9b7a67ab..50da0e86b4 100644
--- a/src/plugins/designer/formwindoweditor.h
+++ b/src/plugins/designer/formwindoweditor.h
@@ -113,6 +113,8 @@ private slots:
void updateResources();
private:
+ void initializeResources(const QString &fileName = QString());
+
QWidget *m_containerWidget;
QString m_displayName;
QList<int> m_context;
diff --git a/src/plugins/designer/formwizard.cpp b/src/plugins/designer/formwizard.cpp
index aa79fdf3b2..1c219a121b 100644
--- a/src/plugins/designer/formwizard.cpp
+++ b/src/plugins/designer/formwizard.cpp
@@ -66,6 +66,6 @@ Core::GeneratedFiles FormWizard::generateFiles(const QWizard *w,
Core::GeneratedFile file(fileName);
file.setContents(formTemplate);
- file.setEditorId(QLatin1String(Constants::FORMEDITOR_ID));
+ file.setEditorId(QLatin1String(Constants::DESIGNER_XML_EDITOR_ID));
return Core::GeneratedFiles() << file;
}
diff --git a/src/plugins/qmldesigner/qmldesignerplugin.cpp b/src/plugins/qmldesigner/qmldesignerplugin.cpp
index dd67918cab..e7e7ab6281 100644
--- a/src/plugins/qmldesigner/qmldesignerplugin.cpp
+++ b/src/plugins/qmldesigner/qmldesignerplugin.cpp
@@ -204,6 +204,7 @@ void BauhausPlugin::createDesignModeWidget()
Core::Constants::PASTE, m_context->context());
command->setDefaultKeySequence(QKeySequence::Paste);
editMenu->addAction(command, Core::Constants::G_EDIT_COPYPASTE);
+ Core::ModeManager *modeManager = creatorCore->modeManager();
command = actionManager->registerAction(m_mainWidget->selectAllAction(),
Core::Constants::SELECTALL, m_context->context());
@@ -218,7 +219,8 @@ void BauhausPlugin::createDesignModeWidget()
m_mainWidget->addAction(deleteAction);
- Core::ModeManager *modeManager = creatorCore->modeManager();
+ connect(m_editorManager, SIGNAL(currentEditorChanged(Core::IEditor*)),
+ this, SLOT(updateEditor(Core::IEditor*)));
connect(modeManager, SIGNAL(currentModeChanged(Core::IMode*)),
this, SLOT(modeChanged(Core::IMode*)));
@@ -228,6 +230,16 @@ void BauhausPlugin::createDesignModeWidget()
}
+void BauhausPlugin::updateEditor(Core::IEditor *editor)
+{
+ Core::ICore *creatorCore = Core::ICore::instance();
+ if (editor->id() == QmlJSEditor::Constants::C_QMLJSEDITOR_ID
+ && creatorCore->modeManager()->currentMode() == m_designMode)
+ {
+ m_mainWidget->showEditor(editor);
+ }
+}
+
void BauhausPlugin::modeChanged(Core::IMode *mode)
{
if (mode == m_designMode) {
@@ -236,7 +248,6 @@ void BauhausPlugin::modeChanged(Core::IMode *mode)
} else {
if (m_isActive) {
m_isActive = false;
-
m_mainWidget->showEditor(0);
}
}
diff --git a/src/plugins/qmldesigner/qmldesignerplugin.h b/src/plugins/qmldesigner/qmldesignerplugin.h
index 6e4c7c16b2..9ea4479890 100644
--- a/src/plugins/qmldesigner/qmldesignerplugin.h
+++ b/src/plugins/qmldesigner/qmldesignerplugin.h
@@ -84,6 +84,7 @@ private slots:
void modeChanged(Core::IMode *mode);
void textEditorsClosed(QList<Core::IEditor *> editors);
void updateActions(Core::IEditor* editor);
+ void updateEditor(Core::IEditor *editor);
private:
void createDesignModeWidget();