aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/qmldesigner/designmodewidget.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/qmldesigner/designmodewidget.cpp')
-rw-r--r--src/plugins/qmldesigner/designmodewidget.cpp54
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();