diff options
Diffstat (limited to 'src/plugins/qmldesigner/designmodewidget.cpp')
-rw-r--r-- | src/plugins/qmldesigner/designmodewidget.cpp | 54 |
1 files changed, 50 insertions, 4 deletions
diff --git a/src/plugins/qmldesigner/designmodewidget.cpp b/src/plugins/qmldesigner/designmodewidget.cpp index d9db2ea006..c6b4af7054 100644 --- a/src/plugins/qmldesigner/designmodewidget.cpp +++ b/src/plugins/qmldesigner/designmodewidget.cpp @@ -60,6 +60,7 @@ #include <utils/algorithm.h> #include <utils/fileutils.h> #include <utils/qtcassert.h> +#include <utils/stylehelper.h> #include <QSettings> #include <QToolBar> @@ -70,6 +71,7 @@ #include <advanceddockingsystem/dockareawidget.h> #include <advanceddockingsystem/docksplitter.h> +#include <advanceddockingsystem/iconprovider.h> using Core::MiniSplitter; using Core::IEditor; @@ -210,6 +212,13 @@ void DesignModeWidget::disableWidgets() m_isDisabled = true; } +static void addSpacerToToolBar(QToolBar *toolBar) +{ + QWidget* empty = new QWidget(); + empty->setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Preferred); + toolBar->addWidget(empty); +} + void DesignModeWidget::setup() { auto &actionManager = viewManager().designerActionManager(); @@ -219,22 +228,43 @@ void DesignModeWidget::setup() auto settings = Core::ICore::settings(QSettings::UserScope); + ADS::DockManager::setConfigFlags(ADS::DockManager::DefaultNonOpaqueConfig); + ADS::DockManager::setConfigFlag(ADS::DockManager::FocusHighlighting, true); m_dockManager = new ADS::DockManager(this); - m_dockManager->setConfigFlags(ADS::DockManager::DefaultNonOpaqueConfig); m_dockManager->setSettings(settings); m_dockManager->setWorkspacePresetsPath(Core::ICore::resourcePath() + QLatin1String("/qmldesigner/workspacePresets/")); QString sheet = QString::fromUtf8(Utils::FileReader::fetchQrc(":/qmldesigner/dockwidgets.css")); m_dockManager->setStyleSheet(Theme::replaceCssColors(sheet)); + // Setup icons + QColor buttonColor(Theme::getColor(Theme::QmlDesigner_TabLight)); // TODO Use correct color roles + QColor tabColor(Theme::getColor(Theme::QmlDesigner_TabDark)); + + const QString closeUnicode = Theme::getIconUnicode(Theme::Icon::adsClose); + const QString menuUnicode = Theme::getIconUnicode(Theme::Icon::adsDropDown); + const QString undockUnicode = Theme::getIconUnicode(Theme::Icon::adsDetach); + + const QString fontName = "qtds_propertyIconFont.ttf"; + const QIcon tabsCloseIcon = Utils::StyleHelper::getIconFromIconFont(fontName, closeUnicode, 28, 28, tabColor); + const QIcon menuIcon = Utils::StyleHelper::getIconFromIconFont(fontName, menuUnicode, 28, 28, buttonColor); + const QIcon undockIcon = Utils::StyleHelper::getIconFromIconFont(fontName, undockUnicode, 28, 28, buttonColor); + const QIcon closeIcon = Utils::StyleHelper::getIconFromIconFont(fontName, closeUnicode, 28, 28, buttonColor); + + m_dockManager->iconProvider().registerCustomIcon(ADS::TabCloseIcon, tabsCloseIcon); + m_dockManager->iconProvider().registerCustomIcon(ADS::DockAreaMenuIcon, menuIcon); + m_dockManager->iconProvider().registerCustomIcon(ADS::DockAreaUndockIcon, undockIcon); + m_dockManager->iconProvider().registerCustomIcon(ADS::DockAreaCloseIcon, closeIcon); + m_dockManager->iconProvider().registerCustomIcon(ADS::FloatingWidgetCloseIcon, closeIcon); + // Setup Actions and Menus - Core::ActionContainer *mwindow = Core::ActionManager::actionContainer(Core::Constants::M_WINDOW); + Core::ActionContainer *mview = Core::ActionManager::actionContainer(Core::Constants::M_VIEW); // Window > Views - Core::ActionContainer *mviews = Core::ActionManager::actionContainer(Core::Constants::M_WINDOW_VIEWS); + Core::ActionContainer *mviews = Core::ActionManager::createMenu(Core::Constants::M_VIEW_VIEWS); mviews->menu()->addSeparator(); // Window > Workspaces Core::ActionContainer *mworkspaces = Core::ActionManager::createMenu(QmlDesigner::Constants::M_WINDOW_WORKSPACES); - mwindow->addMenu(mworkspaces, Core::Constants::G_WINDOW_VIEWS); + mview->addMenu(mworkspaces, Core::Constants::G_VIEW_VIEWS); mworkspaces->menu()->setTitle(tr("&Workspaces")); mworkspaces->setOnAllDisabledBehavior(Core::ActionContainer::Show); // Connect opening of the 'workspaces' menu with creation of the workspaces menu @@ -344,6 +374,7 @@ void DesignModeWidget::setup() // Create toolbars auto toolBar = new QToolBar(); + toolBar->addAction(viewManager().componentViewAction()); toolBar->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding); DesignerActionToolBar *designerToolBar = QmlDesignerPlugin::instance()->viewManager().designerActionManager().createToolBar(m_toolBar); @@ -385,6 +416,8 @@ void DesignModeWidget::setup() } }); + addSpacerToToolBar(toolBar); + auto workspaceComboBox = new QComboBox(); workspaceComboBox->setMinimumWidth(120); workspaceComboBox->setToolTip(tr("Switch the active workspace.")); @@ -409,6 +442,19 @@ void DesignModeWidget::setup() m_dockManager->openWorkspace(workspaceComboBox->currentText()); }); + const QIcon gaIcon = Utils::StyleHelper::getIconFromIconFont(fontName, + Theme::getIconUnicode(Theme::Icon::annotationBubble), 36, 36); + toolBar->addAction(gaIcon, tr("Edit global annotation for current file."), [&](){ + ModelNode node = currentDesignDocument()->rewriterView()->rootModelNode(); + + if (node.isValid()) { + m_globalAnnotationEditor.setModelNode(node); + m_globalAnnotationEditor.showWidget(); + } + }); + + + viewManager().enableWidgets(); readSettings(); show(); |