20 #include <QToolButton>
31 auto add_layer_button =
new QToolButton;
32 add_layer_button->setText(
"Add");
33 add_layer_button->setToolTip(
34 "Adds a new single layer (default) or new layer-repeater after currently selected.\nIf "
35 "nothing is selected, appends to the end. Click and hold to see possible choices.");
36 add_layer_button->setPopupMode(QToolButton::MenuButtonPopup);
37 add_layer_button->setIcon(QIcon(
":/icons/plus-circle-outline.svg"));
38 add_layer_button->setMenu(layer_menu);
39 add_layer_button->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
40 addWidget(add_layer_button);
41 m_toolbarWidgets.insert(std::pair<std::string, QWidget*>(
"Add", add_layer_button));
42 connect(add_layer_button, &QToolButton::clicked,
43 [layer_menu]() { layer_menu->defaultAction()->triggered(); });
45 auto action =
new QAction(
"Clone",
this);
46 action->setIcon(QIcon(
":/icons/plus-circle-multiple-outline.svg"));
47 action->setToolTip(
"Clones selected layer");
50 m_toolbarWidgets.insert(std::pair<std::string, QWidget*>(
"Clone", widgetForAction(action)));
52 action =
new QAction(
"Remove",
this);
53 action->setIcon(QIcon(
":/icons/beaker-remove-outline.svg"));
54 action->setToolTip(
"Removes selected layer");
57 m_toolbarWidgets.insert(std::pair<std::string, QWidget*>(
"Remove", widgetForAction(action)));
61 action =
new QAction(
"Up",
this);
62 action->setIcon(QIcon(
":/icons/arrow-up-circle-outline.svg"));
63 action->setToolTip(
"Moves selected layer up");
66 m_toolbarWidgets.insert(std::pair<std::string, QWidget*>(
"Up", widgetForAction(action)));
68 action =
new QAction(
"Down",
this);
69 action->setIcon(QIcon(
":/icons/arrow-down-circle-outline.svg"));
70 action->setToolTip(
"Moves selected layer down");
73 m_toolbarWidgets.insert(std::pair<std::string, QWidget*>(
"Down", widgetForAction(action)));
86 auto result =
new QMenu(
"Add",
this);
87 result->setToolTipsVisible(
true);
88 result->menuAction()->setToolTip(
"Adds a single layer or layer-repeater.");
89 result->setIcon(QIcon(
":/icons/plus-circle-outline.svg"));
92 auto action = result->addAction(
"Adds a single layer");
93 action->setIcon(QIcon(
":/icons/layers-outline.svg"));
94 action->setToolTip(
"Adds a new layer after selected one");
96 result->setDefaultAction(action);
99 action = result->addAction(
"Adds layer repeater");
100 action->setIcon(QIcon(
":/icons/layers-triple-outline.svg"));
101 action->setToolTip(
"Adds a new layer-repeater after selected one.\n"
102 "Layer repeater allows to repeat it content (i.e. bi-layer) "
103 "certain amount of times");
Handles user actions applied to layer tree.
void onAddLayer()
Adds layer after selected item. If more than one item is selected, adds after the last one.
DAREFLCORE_EXPORT void SetToolBarStyleTextBesides(QToolBar *toolbar)
Set common style for a toolbar.
Based on Qt example "codeeditor" Copyright (C) 2016 The Qt Company Ltd.