forked from qt-creator/qt-creator
Avoid multiple shows of same form editor info bar.
This commit is contained in:
@@ -50,8 +50,6 @@ DesignerXmlEditor::DesignerXmlEditor(QDesignerFormWindowInterface *form,
|
|||||||
m_designerEditor(new FormWindowEditor(this, form))
|
m_designerEditor(new FormWindowEditor(this, form))
|
||||||
{
|
{
|
||||||
setReadOnly(true);
|
setReadOnly(true);
|
||||||
connect(Core::EditorManager::instance(), SIGNAL(currentEditorChanged(Core::IEditor*)),
|
|
||||||
SLOT(updateEditorInfoBar(Core::IEditor*)));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
TextEditor::BaseTextEditorEditable *DesignerXmlEditor::createEditableInterface()
|
TextEditor::BaseTextEditorEditable *DesignerXmlEditor::createEditableInterface()
|
||||||
@@ -61,22 +59,6 @@ TextEditor::BaseTextEditorEditable *DesignerXmlEditor::createEditableInterface()
|
|||||||
return m_designerEditor->textEditable();
|
return m_designerEditor->textEditable();
|
||||||
}
|
}
|
||||||
|
|
||||||
void DesignerXmlEditor::updateEditorInfoBar(Core::IEditor *editor)
|
|
||||||
{
|
|
||||||
if (editor == m_designerEditor) {
|
|
||||||
Core::EditorManager::instance()->showEditorInfoBar(Constants::INFO_READ_ONLY,
|
|
||||||
tr("This file can only be edited in Design Mode."),
|
|
||||||
tr("Open Designer"), this, SLOT(designerModeClicked()));
|
|
||||||
}
|
|
||||||
if (!editor)
|
|
||||||
Core::EditorManager::instance()->hideEditorInfoBar(Constants::INFO_READ_ONLY);
|
|
||||||
}
|
|
||||||
|
|
||||||
void DesignerXmlEditor::designerModeClicked()
|
|
||||||
{
|
|
||||||
Core::ICore::instance()->modeManager()->activateMode(QLatin1String(Core::Constants::MODE_DESIGN));
|
|
||||||
}
|
|
||||||
|
|
||||||
FormWindowEditor *DesignerXmlEditor::designerEditor() const
|
FormWindowEditor *DesignerXmlEditor::designerEditor() const
|
||||||
{
|
{
|
||||||
return m_designerEditor;
|
return m_designerEditor;
|
||||||
|
|||||||
@@ -58,10 +58,6 @@ public:
|
|||||||
|
|
||||||
FormWindowEditor *designerEditor() const;
|
FormWindowEditor *designerEditor() const;
|
||||||
|
|
||||||
private slots:
|
|
||||||
void designerModeClicked();
|
|
||||||
void updateEditorInfoBar(Core::IEditor *editor);
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual TextEditor::BaseTextEditorEditable *createEditableInterface();
|
virtual TextEditor::BaseTextEditorEditable *createEditableInterface();
|
||||||
|
|
||||||
|
|||||||
@@ -34,9 +34,11 @@
|
|||||||
#include "designerconstants.h"
|
#include "designerconstants.h"
|
||||||
#include "designerxmleditor.h"
|
#include "designerxmleditor.h"
|
||||||
|
|
||||||
|
#include <coreplugin/coreconstants.h>
|
||||||
#include <coreplugin/icore.h>
|
#include <coreplugin/icore.h>
|
||||||
#include <coreplugin/fileiconprovider.h>
|
#include <coreplugin/fileiconprovider.h>
|
||||||
#include <coreplugin/editormanager/editormanager.h>
|
#include <coreplugin/editormanager/editormanager.h>
|
||||||
|
#include <coreplugin/modemanager.h>
|
||||||
|
|
||||||
#include <QtCore/QFileInfo>
|
#include <QtCore/QFileInfo>
|
||||||
#include <QtCore/QDebug>
|
#include <QtCore/QDebug>
|
||||||
@@ -53,6 +55,8 @@ FormEditorFactory::FormEditorFactory()
|
|||||||
Core::FileIconProvider *iconProvider = Core::FileIconProvider::instance();
|
Core::FileIconProvider *iconProvider = Core::FileIconProvider::instance();
|
||||||
iconProvider->registerIconOverlayForSuffix(QIcon(QLatin1String(":/formeditor/images/qt_ui.png")),
|
iconProvider->registerIconOverlayForSuffix(QIcon(QLatin1String(":/formeditor/images/qt_ui.png")),
|
||||||
QLatin1String("ui"));
|
QLatin1String("ui"));
|
||||||
|
connect(Core::EditorManager::instance(), SIGNAL(currentEditorChanged(Core::IEditor*)),
|
||||||
|
SLOT(updateEditorInfoBar(Core::IEditor*)));
|
||||||
}
|
}
|
||||||
|
|
||||||
QString FormEditorFactory::id() const
|
QString FormEditorFactory::id() const
|
||||||
@@ -82,6 +86,22 @@ QStringList FormEditorFactory::mimeTypes() const
|
|||||||
return m_mimeTypes;
|
return m_mimeTypes;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void FormEditorFactory::updateEditorInfoBar(Core::IEditor *editor)
|
||||||
|
{
|
||||||
|
if (qobject_cast<FormWindowEditor *>(editor)) {
|
||||||
|
Core::EditorManager::instance()->showEditorInfoBar(Constants::INFO_READ_ONLY,
|
||||||
|
tr("This file can only be edited in Design Mode."),
|
||||||
|
tr("Open Designer"), this, SLOT(designerModeClicked()));
|
||||||
|
} else {
|
||||||
|
Core::EditorManager::instance()->hideEditorInfoBar(Constants::INFO_READ_ONLY);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void FormEditorFactory::designerModeClicked()
|
||||||
|
{
|
||||||
|
Core::ICore::instance()->modeManager()->activateMode(QLatin1String(Core::Constants::MODE_DESIGN));
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace Internal
|
} // namespace Internal
|
||||||
} // namespace Designer
|
} // namespace Designer
|
||||||
|
|
||||||
|
|||||||
@@ -56,6 +56,10 @@ public:
|
|||||||
Core::IFile *open(const QString &fileName);
|
Core::IFile *open(const QString &fileName);
|
||||||
Core::IEditor *createEditor(QWidget *parent);
|
Core::IEditor *createEditor(QWidget *parent);
|
||||||
|
|
||||||
|
private slots:
|
||||||
|
void designerModeClicked();
|
||||||
|
void updateEditorInfoBar(Core::IEditor *editor);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
const QStringList m_mimeTypes;
|
const QStringList m_mimeTypes;
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user