forked from qt-creator/qt-creator
Refactored toolbar interface
This commit is contained in:
@@ -183,13 +183,11 @@ void EditorToolBar::closeView()
|
||||
emit closeClicked();
|
||||
}
|
||||
|
||||
void EditorToolBar::addEditor(IEditor *editor, ToolbarCreationFlags flags)
|
||||
void EditorToolBar::addEditor(IEditor *editor)
|
||||
{
|
||||
connect(editor, SIGNAL(changed()), this, SLOT(checkEditorStatus()));
|
||||
QWidget *toolBar = editor->toolBar();
|
||||
|
||||
m_ignoreEditorToolbar = flags & FlagsIgnoreIEditorToolBar;
|
||||
|
||||
if (toolBar && !m_ignoreEditorToolbar)
|
||||
addCenterToolBar(toolBar);
|
||||
|
||||
@@ -215,6 +213,10 @@ void EditorToolBar::updateToolBar(QWidget *toolBar)
|
||||
m_activeToolBar = toolBar;
|
||||
}
|
||||
|
||||
void EditorToolBar::setToolbarCreationFlags(ToolbarCreationFlags flags)
|
||||
{
|
||||
m_ignoreEditorToolbar = flags & FlagsIgnoreIEditorToolBar;
|
||||
}
|
||||
|
||||
void EditorToolBar::setCurrentEditor(IEditor *editor)
|
||||
{
|
||||
|
||||
@@ -61,15 +61,18 @@ public:
|
||||
enum ToolbarCreationFlags { FlagsNone = 0, FlagsIgnoreIEditorToolBar = 1 };
|
||||
|
||||
/**
|
||||
* Adds an editor to listen to state changes so that the editor can be updated accordingly.
|
||||
* Adds an editor whose state is listened to, so that the toolbar can be kept up to date
|
||||
* with regards to locked status and tooltips.
|
||||
*/
|
||||
void addEditor(IEditor *editor, ToolbarCreationFlags flags = FlagsNone);
|
||||
void addEditor(IEditor *editor);
|
||||
|
||||
/**
|
||||
* Sets the editor and adds its custom toolbar to the widget.
|
||||
*/
|
||||
void setCurrentEditor(IEditor *editor);
|
||||
|
||||
void setToolbarCreationFlags(ToolbarCreationFlags flags);
|
||||
|
||||
/**
|
||||
* Adds a toolbar to the widget and sets invisible by default.
|
||||
*/
|
||||
|
||||
@@ -30,7 +30,6 @@
|
||||
#include "formeditorw.h"
|
||||
#include "formwindoweditor.h"
|
||||
#include "designerconstants.h"
|
||||
#include "faketoolbar.h"
|
||||
#include "settingsmanager.h"
|
||||
#include "settingspage.h"
|
||||
#include "editorwidget.h"
|
||||
@@ -42,6 +41,7 @@
|
||||
#include "resourcehandler.h"
|
||||
#include <widgethost.h>
|
||||
|
||||
#include <coreplugin/designmodetoolbar.h>
|
||||
#include <coreplugin/modemanager.h>
|
||||
#include <coreplugin/designmode.h>
|
||||
#include <coreplugin/coreconstants.h>
|
||||
@@ -154,7 +154,9 @@ FormEditorW::FormEditorW() :
|
||||
m_context(0),
|
||||
m_modeWidget(0),
|
||||
m_editorWidget(0),
|
||||
m_designMode(0)
|
||||
m_designMode(0),
|
||||
m_editorToolBar(0),
|
||||
m_toolBar(0)
|
||||
{
|
||||
if (Designer::Constants::Internal::debug)
|
||||
qDebug() << Q_FUNC_INFO;
|
||||
@@ -310,14 +312,19 @@ void FormEditorW::fullInit()
|
||||
m_editorWidget->restoreSettings(settings);
|
||||
settings->endGroup();
|
||||
|
||||
m_editorToolBar = createEditorToolBar();
|
||||
m_toolBar = Core::EditorManager::createToolBar();
|
||||
m_toolBar->setToolbarCreationFlags(Core::EditorToolBar::FlagsIgnoreIEditorToolBar);
|
||||
m_toolBar->setNavigationVisible(false);
|
||||
m_toolBar->addCenterToolBar(m_editorToolBar);
|
||||
|
||||
m_designMode = ExtensionSystem::PluginManager::instance()->getObject<Core::DesignMode>();
|
||||
m_modeWidget = new QWidget;
|
||||
m_modeWidget->setObjectName(QLatin1String("DesignerModeWidget"));
|
||||
QVBoxLayout *layout = new QVBoxLayout;
|
||||
layout->setMargin(0);
|
||||
layout->setSpacing(0);
|
||||
|
||||
layout->addWidget(new FakeToolBar(createEditorToolBar()));
|
||||
layout->addWidget(m_toolBar);
|
||||
layout->addWidget(m_editorWidget);
|
||||
m_modeWidget->setLayout(layout);
|
||||
|
||||
@@ -676,6 +683,9 @@ EditorData FormEditorW::createEditor(QWidget *parent)
|
||||
connect(data.formWindowEditor->file(), SIGNAL(changed()),
|
||||
resourceHandler, SLOT(updateResources()));
|
||||
m_editorWidget->add(data);
|
||||
|
||||
m_toolBar->addEditor(xmlEditor->editableInterface());
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
|
||||
@@ -61,6 +61,7 @@ class ICore;
|
||||
class IEditor;
|
||||
class Command;
|
||||
class DesignMode;
|
||||
class EditorToolBar;
|
||||
}
|
||||
|
||||
namespace Designer {
|
||||
@@ -192,6 +193,9 @@ private:
|
||||
EditorWidget *m_editorWidget;
|
||||
Core::DesignMode *m_designMode;
|
||||
|
||||
QWidget *m_editorToolBar;
|
||||
Core::EditorToolBar *m_toolBar;
|
||||
|
||||
QMap<Core::Command *, QAction *> m_commandToDesignerAction;
|
||||
};
|
||||
|
||||
|
||||
@@ -297,7 +297,8 @@ void DocumentWidget::setup()
|
||||
|
||||
m_designToolBar->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Ignored);
|
||||
|
||||
m_fakeToolBar->addEditor(textEditor(), Core::EditorToolBar::FlagsIgnoreIEditorToolBar);
|
||||
m_fakeToolBar->setToolbarCreationFlags(Core::EditorToolBar::FlagsIgnoreIEditorToolBar);
|
||||
m_fakeToolBar->addEditor(textEditor());
|
||||
m_fakeToolBar->addCenterToolBar(m_designToolBar);
|
||||
m_fakeToolBar->setNavigationVisible(false);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user