Add secondary toolbar ( not finished )
This commit is contained in:
@@ -231,7 +231,7 @@ void MapView::set_editing_mode(editing_mode mode)
|
|||||||
{
|
{
|
||||||
_world->renderer()->getTerrainParamsUniformBlock()->draw_areaid_overlay = false;
|
_world->renderer()->getTerrainParamsUniformBlock()->draw_areaid_overlay = false;
|
||||||
_world->renderer()->getTerrainParamsUniformBlock()->draw_impass_overlay = false;
|
_world->renderer()->getTerrainParamsUniformBlock()->draw_impass_overlay = false;
|
||||||
_world->renderer()->getTerrainParamsUniformBlock()->draw_paintability_overlay = _left_sec_toolbar->showUnpaintableChunk();
|
_world->renderer()->getTerrainParamsUniformBlock()->draw_paintability_overlay = false;
|
||||||
_world->renderer()->getTerrainParamsUniformBlock()->draw_selection_overlay = false;
|
_world->renderer()->getTerrainParamsUniformBlock()->draw_selection_overlay = false;
|
||||||
_minimap->use_selection(nullptr);
|
_minimap->use_selection(nullptr);
|
||||||
|
|
||||||
@@ -248,6 +248,10 @@ void MapView::set_editing_mode(editing_mode mode)
|
|||||||
{
|
{
|
||||||
texturingTool->updateMaskImage();
|
texturingTool->updateMaskImage();
|
||||||
}
|
}
|
||||||
|
if (_left_sec_toolbar->showUnpaintableChunk())
|
||||||
|
{
|
||||||
|
_world->renderer()->getTerrainParamsUniformBlock()->draw_paintability_overlay = true;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case editing_mode::mccv:
|
case editing_mode::mccv:
|
||||||
if (shaderTool->getImageMaskSelector()->isEnabled())
|
if (shaderTool->getImageMaskSelector()->isEnabled())
|
||||||
|
|||||||
@@ -84,6 +84,22 @@
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QWidget" name="secondaryToolbarHolder" native="true">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Maximum" vsizetype="Preferred">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>0</width>
|
||||||
|
<height>0</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<spacer name="horizontalSpacer_4">
|
<spacer name="horizontalSpacer_4">
|
||||||
<property name="orientation">
|
<property name="orientation">
|
||||||
@@ -137,16 +153,6 @@
|
|||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout_5">
|
<layout class="QHBoxLayout" name="horizontalLayout_5">
|
||||||
<item>
|
|
||||||
<widget class="QWidget" name="secondaryToolbarHolder" native="true">
|
|
||||||
<property name="sizePolicy">
|
|
||||||
<sizepolicy hsizetype="Maximum" vsizetype="Preferred">
|
|
||||||
<horstretch>0</horstretch>
|
|
||||||
<verstretch>0</verstretch>
|
|
||||||
</sizepolicy>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
<item>
|
||||||
<spacer name="horizontalSpacer_5">
|
<spacer name="horizontalSpacer_5">
|
||||||
<property name="orientation">
|
<property name="orientation">
|
||||||
|
|||||||
@@ -136,7 +136,8 @@ ViewToolbar::ViewToolbar(MapView* mapView, editing_mode mode)
|
|||||||
{
|
{
|
||||||
setContextMenuPolicy(Qt::PreventContextMenu);
|
setContextMenuPolicy(Qt::PreventContextMenu);
|
||||||
setAllowedAreas(Qt::TopToolBarArea | Qt::BottomToolBarArea);
|
setAllowedAreas(Qt::TopToolBarArea | Qt::BottomToolBarArea);
|
||||||
setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Maximum);
|
setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Minimum);
|
||||||
|
setOrientation(Qt::Vertical);
|
||||||
mapView->getLeftSecondaryToolbar()->hide();
|
mapView->getLeftSecondaryToolbar()->hide();
|
||||||
|
|
||||||
{
|
{
|
||||||
@@ -144,25 +145,31 @@ ViewToolbar::ViewToolbar(MapView* mapView, editing_mode mode)
|
|||||||
* FLATTEN/BLUE SECONDARY TOOL
|
* FLATTEN/BLUE SECONDARY TOOL
|
||||||
*/
|
*/
|
||||||
|
|
||||||
IconAction* _icon = new IconAction(FontNoggitIcon{ FontNoggit::TOOL_FLATTEN_BLUR });
|
SubToolBarAction* _toolbar = new SubToolBarAction();
|
||||||
|
|
||||||
CheckBoxAction* _raise = new CheckBoxAction(tr("Raise"));
|
{
|
||||||
_raise->setChecked(true);
|
IconAction* _icon = new IconAction(FontNoggitIcon{ FontNoggit::TOOL_FLATTEN_BLUR });
|
||||||
connect(_raise->checkbox(), &QCheckBox::stateChanged, [mapView](int state)
|
|
||||||
{
|
|
||||||
mapView->getFlattenTool()->_flatten_mode.raise = state;
|
|
||||||
});
|
|
||||||
|
|
||||||
CheckBoxAction* _lower = new CheckBoxAction(tr("Lower"));
|
CheckBoxAction* _raise = new CheckBoxAction(tr("Raise"), true);
|
||||||
_lower->setChecked(true);
|
connect(_raise->checkbox(), &QCheckBox::stateChanged, [mapView](int state)
|
||||||
connect(_lower->checkbox(), &QCheckBox::stateChanged, [mapView](int state)
|
{
|
||||||
{
|
mapView->getFlattenTool()->_flatten_mode.raise = state;
|
||||||
mapView->getFlattenTool()->_flatten_mode.lower = state;
|
});
|
||||||
});
|
|
||||||
|
|
||||||
_flatten_secondary_tool.push_back(_icon);
|
CheckBoxAction* _lower = new CheckBoxAction(tr("Lower"), true);
|
||||||
_flatten_secondary_tool.push_back(_raise); raise_index = 1;
|
connect(_lower->checkbox(), &QCheckBox::stateChanged, [mapView](int state)
|
||||||
_flatten_secondary_tool.push_back(_lower); lower_index = 2;
|
{
|
||||||
|
mapView->getFlattenTool()->_flatten_mode.lower = state;
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
_toolbar->ADD_ACTION(_icon);
|
||||||
|
_toolbar->ADD_ACTION(_raise); raise_index = 1;
|
||||||
|
_toolbar->ADD_ACTION(_lower); lower_index = 2;
|
||||||
|
_toolbar->SETUP_WIDGET(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
_flatten_secondary_tool.push_back(_toolbar);
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
@@ -170,18 +177,66 @@ ViewToolbar::ViewToolbar(MapView* mapView, editing_mode mode)
|
|||||||
* TEXTURE PAINTER SECONDARY TOOL
|
* TEXTURE PAINTER SECONDARY TOOL
|
||||||
*/
|
*/
|
||||||
|
|
||||||
IconAction* _icon = new IconAction(FontNoggitIcon{ FontNoggit::TOOL_TEXTURE_PAINT });
|
SubToolBarAction* _toolbar = new SubToolBarAction();
|
||||||
|
|
||||||
CheckBoxAction* _unpaintable_chunk = new CheckBoxAction(tr("Unpaintable chunk"));
|
{
|
||||||
_unpaintable_chunk->setChecked(false);
|
IconAction* _icon = new IconAction(FontNoggitIcon{ FontNoggit::TOOL_TEXTURE_PAINT });
|
||||||
connect(_unpaintable_chunk->checkbox(), &QCheckBox::toggled, [mapView](bool checked)
|
|
||||||
{
|
|
||||||
mapView->getWorld()->renderer()->getTerrainParamsUniformBlock()->draw_paintability_overlay = checked;
|
|
||||||
mapView->getWorld()->renderer()->markTerrainParamsUniformBlockDirty();
|
|
||||||
});
|
|
||||||
|
|
||||||
_texture_secondary_tool.push_back(_icon);
|
CheckBoxAction* _unpaintable_chunk = new CheckBoxAction(tr("Unpaintable chunk"));
|
||||||
_texture_secondary_tool.push_back(_unpaintable_chunk); unpaintable_chunk_index = 1;
|
connect(_unpaintable_chunk->checkbox(), &QCheckBox::toggled, [mapView](bool checked)
|
||||||
|
{
|
||||||
|
mapView->getWorld()->renderer()->getTerrainParamsUniformBlock()->draw_paintability_overlay = checked;
|
||||||
|
mapView->getWorld()->renderer()->markTerrainParamsUniformBlockDirty();
|
||||||
|
});
|
||||||
|
|
||||||
|
_toolbar->ADD_ACTION(_icon);
|
||||||
|
_toolbar->ADD_ACTION(_unpaintable_chunk); unpaintable_chunk_index = 1;
|
||||||
|
_toolbar->SETUP_WIDGET(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
_texture_secondary_tool.push_back(_toolbar);
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
* OBJECT SECONDARY TOOL
|
||||||
|
*/
|
||||||
|
|
||||||
|
SubToolBarAction* _up_toolbar = new SubToolBarAction();
|
||||||
|
|
||||||
|
{
|
||||||
|
QVector<QWidgetAction*> _up_temp;
|
||||||
|
|
||||||
|
IconAction* _icon = new IconAction(FontNoggitIcon{ FontNoggit::TOOL_OBJECT_EDITOR });
|
||||||
|
CheckBoxAction* _rotate_follow_cursor = new CheckBoxAction(tr("Rotate following cursor"), true);
|
||||||
|
CheckBoxAction* _smooth_follow_rotation = new CheckBoxAction(tr("Smooth follow rotation"), true);
|
||||||
|
CheckBoxAction* _random_all_on_rotation = new CheckBoxAction(tr("Random Rotation/Tilt/Scale on Rotation"));
|
||||||
|
CheckBoxAction* _magnetic_to_ground = new CheckBoxAction(tr("Magnetic to ground when dragging"));
|
||||||
|
|
||||||
|
_up_toolbar->ADD_ACTION(_icon);
|
||||||
|
_up_toolbar->ADD_ACTION(_rotate_follow_cursor);
|
||||||
|
_up_toolbar->ADD_ACTION(_smooth_follow_rotation);
|
||||||
|
_up_toolbar->ADD_ACTION(_random_all_on_rotation);
|
||||||
|
_up_toolbar->ADD_ACTION(_magnetic_to_ground);
|
||||||
|
_up_toolbar->SETUP_WIDGET(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
SubToolBarAction* _down_toolbar = new SubToolBarAction();
|
||||||
|
|
||||||
|
{
|
||||||
|
QVector<QWidgetAction*> _down_temp;
|
||||||
|
|
||||||
|
CheckBoxAction* _magnetic_to_ground = new CheckBoxAction(tr("Magnetic to ground when dragging"));
|
||||||
|
CheckBoxAction* _rotation_around_pivot = new CheckBoxAction(tr("Rotate around pivot"), true);
|
||||||
|
|
||||||
|
_down_toolbar->ADD_ACTION(_magnetic_to_ground);
|
||||||
|
_down_toolbar->ADD_ACTION(_rotation_around_pivot);
|
||||||
|
_down_toolbar->SETUP_WIDGET(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
_object_secondary_tool.push_back(_up_toolbar);
|
||||||
|
_object_secondary_tool.push_back(_down_toolbar);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -208,6 +263,12 @@ void ViewToolbar::setCurrentMode(MapView* mapView, editing_mode mode)
|
|||||||
mapView->getLeftSecondaryToolbar()->show();
|
mapView->getLeftSecondaryToolbar()->show();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case editing_mode::object:
|
||||||
|
if (_object_secondary_tool.size() > 0)
|
||||||
|
{
|
||||||
|
//setupWidget(_object_secondary_tool, true);
|
||||||
|
//mapView->getLeftSecondaryToolbar()->show();
|
||||||
|
}
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -245,33 +306,31 @@ void ViewToolbar::add_tool_icon(MapView* mapView,
|
|||||||
action->setChecked(view_state->get());
|
action->setChecked(view_state->get());
|
||||||
}
|
}
|
||||||
|
|
||||||
void ViewToolbar::setupWidget(QVector<QWidgetAction *> _to_setup)
|
void ViewToolbar::setupWidget(QVector<QWidgetAction *> _to_setup, bool ignoreSeparator)
|
||||||
{
|
{
|
||||||
clear();
|
clear();
|
||||||
for (int i = 0; i < _to_setup.size(); ++i)
|
for (int i = 0; i < _to_setup.size(); ++i)
|
||||||
{
|
{
|
||||||
addAction(_to_setup[i]);
|
addAction(_to_setup[i]);
|
||||||
(i == _to_setup.size() - 1) ? NULL : addSeparator();
|
(i == _to_setup.size() - 1) ? NULL : (ignoreSeparator) ? NULL : addSeparator();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ViewToolbar::showUnpaintableChunk()
|
bool ViewToolbar::showUnpaintableChunk()
|
||||||
{
|
{
|
||||||
if ((unpaintable_chunk_index >= _texture_secondary_tool.size()) ||
|
return static_cast<SubToolBarAction*>(_texture_secondary_tool[0])->GET<CheckBoxAction*>(unpaintable_chunk_index)->checkbox()->isChecked() && current_mode == editing_mode::paint;
|
||||||
(unpaintable_chunk_index < 0) ||
|
|
||||||
(current_mode != editing_mode::paint))
|
|
||||||
return false;
|
|
||||||
|
|
||||||
return _texture_secondary_tool[unpaintable_chunk_index];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void ViewToolbar::nextFlattenMode(MapView* mapView)
|
void ViewToolbar::nextFlattenMode(MapView* mapView)
|
||||||
{
|
{
|
||||||
mapView->getFlattenTool()->_flatten_mode.next();
|
mapView->getFlattenTool()->_flatten_mode.next();
|
||||||
|
|
||||||
QSignalBlocker const raise_lock(_flatten_secondary_tool[raise_index]);
|
CheckBoxAction* _raise_option = static_cast<SubToolBarAction*>(_flatten_secondary_tool[0])->GET<CheckBoxAction*>(raise_index);
|
||||||
QSignalBlocker const lower_lock(_flatten_secondary_tool[lower_index]);
|
CheckBoxAction* _lower_option = static_cast<SubToolBarAction*>(_flatten_secondary_tool[0])->GET<CheckBoxAction*>(lower_index);
|
||||||
|
|
||||||
_flatten_secondary_tool[raise_index]->setChecked(true);
|
QSignalBlocker const raise_lock(_raise_option);
|
||||||
_flatten_secondary_tool[lower_index]->setChecked(true);
|
QSignalBlocker const lower_lock(_lower_option);
|
||||||
|
|
||||||
|
_raise_option->setChecked(true);
|
||||||
|
_lower_option->setChecked(true);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -25,7 +25,6 @@ namespace Noggit
|
|||||||
ViewToolbar(MapView* mapView, editing_mode mode);
|
ViewToolbar(MapView* mapView, editing_mode mode);
|
||||||
|
|
||||||
void setCurrentMode(MapView* mapView, editing_mode mode);
|
void setCurrentMode(MapView* mapView, editing_mode mode);
|
||||||
void setupWidget(QVector<QWidgetAction*> _to_setup);
|
|
||||||
|
|
||||||
/*secondary top tool*/
|
/*secondary top tool*/
|
||||||
QVector<QWidgetAction*> _climb_secondary_tool;
|
QVector<QWidgetAction*> _climb_secondary_tool;
|
||||||
@@ -36,6 +35,7 @@ namespace Noggit
|
|||||||
|
|
||||||
QVector<QWidgetAction*> _flatten_secondary_tool;
|
QVector<QWidgetAction*> _flatten_secondary_tool;
|
||||||
QVector<QWidgetAction*> _texture_secondary_tool;
|
QVector<QWidgetAction*> _texture_secondary_tool;
|
||||||
|
QVector<QWidgetAction*> _object_secondary_tool;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QActionGroup _tool_group;
|
QActionGroup _tool_group;
|
||||||
@@ -45,6 +45,7 @@ namespace Noggit
|
|||||||
int lower_index = -1;
|
int lower_index = -1;
|
||||||
int unpaintable_chunk_index = -1;
|
int unpaintable_chunk_index = -1;
|
||||||
|
|
||||||
|
void setupWidget(QVector<QWidgetAction*> _to_setup, bool ignoreSeparator = false);
|
||||||
void add_tool_icon(MapView* mapView,
|
void add_tool_icon(MapView* mapView,
|
||||||
Noggit::BoolToggleProperty* view_state,
|
Noggit::BoolToggleProperty* view_state,
|
||||||
const QString& name,
|
const QString& name,
|
||||||
@@ -62,6 +63,8 @@ namespace Noggit
|
|||||||
{
|
{
|
||||||
QWidget* _widget = new QWidget(NULL);
|
QWidget* _widget = new QWidget(NULL);
|
||||||
QHBoxLayout* _layout = new QHBoxLayout();
|
QHBoxLayout* _layout = new QHBoxLayout();
|
||||||
|
_layout->setSpacing(3);
|
||||||
|
_layout->setMargin(0);
|
||||||
QLabel* _label = new QLabel(title);
|
QLabel* _label = new QLabel(title);
|
||||||
QLabel* _display = new QLabel(tr("49 degrees"));
|
QLabel* _display = new QLabel(tr("49 degrees"));
|
||||||
|
|
||||||
@@ -100,6 +103,7 @@ namespace Noggit
|
|||||||
{
|
{
|
||||||
QWidget* _widget = new QWidget(NULL);
|
QWidget* _widget = new QWidget(NULL);
|
||||||
QHBoxLayout* _layout = new QHBoxLayout();
|
QHBoxLayout* _layout = new QHBoxLayout();
|
||||||
|
_layout->setMargin(0);
|
||||||
|
|
||||||
_push = new QPushButton(text);
|
_push = new QPushButton(text);
|
||||||
|
|
||||||
@@ -118,13 +122,15 @@ namespace Noggit
|
|||||||
class CheckBoxAction : public QWidgetAction
|
class CheckBoxAction : public QWidgetAction
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
CheckBoxAction (const QString& text)
|
CheckBoxAction (const QString& text, bool checked = false)
|
||||||
: QWidgetAction(NULL)
|
: QWidgetAction(NULL)
|
||||||
{
|
{
|
||||||
QWidget* _widget = new QWidget(NULL);
|
QWidget* _widget = new QWidget(NULL);
|
||||||
QHBoxLayout* _layout = new QHBoxLayout();
|
QHBoxLayout* _layout = new QHBoxLayout();
|
||||||
|
_layout->setMargin(0);
|
||||||
|
|
||||||
_checkbox = new QCheckBox(text);
|
_checkbox = new QCheckBox(text);
|
||||||
|
_checkbox->setChecked(checked);
|
||||||
|
|
||||||
_layout->addWidget(_checkbox);
|
_layout->addWidget(_checkbox);
|
||||||
_widget->setLayout(_layout);
|
_widget->setLayout(_layout);
|
||||||
@@ -146,13 +152,13 @@ namespace Noggit
|
|||||||
{
|
{
|
||||||
QWidget* _widget = new QWidget(NULL);
|
QWidget* _widget = new QWidget(NULL);
|
||||||
QHBoxLayout* _layout = new QHBoxLayout();
|
QHBoxLayout* _layout = new QHBoxLayout();
|
||||||
|
_layout->setMargin(0);
|
||||||
|
|
||||||
_icon = new QLabel();
|
_icon = new QLabel();
|
||||||
_icon->setPixmap(icon.pixmap(QSize(24,24)));
|
_icon->setPixmap(icon.pixmap(QSize(22,22)));
|
||||||
|
|
||||||
_layout->addWidget(_icon);
|
_layout->addWidget(_icon);
|
||||||
_widget->setLayout(_layout);
|
_widget->setLayout(_layout);
|
||||||
|
|
||||||
setDefaultWidget(_widget);
|
setDefaultWidget(_widget);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -161,5 +167,87 @@ namespace Noggit
|
|||||||
private:
|
private:
|
||||||
QLabel *_icon;
|
QLabel *_icon;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class SpacerAction : public QWidgetAction
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
SpacerAction(Qt::Orientation orientation)
|
||||||
|
: QWidgetAction(NULL)
|
||||||
|
{
|
||||||
|
QWidget* _widget = new QWidget(NULL);
|
||||||
|
QHBoxLayout* _layout = new QHBoxLayout();
|
||||||
|
_layout->setMargin(0);
|
||||||
|
|
||||||
|
if (orientation == Qt::Vertical)
|
||||||
|
_layout->addSpacerItem(new QSpacerItem(0, 0, QSizePolicy::Minimum, QSizePolicy::Expanding));
|
||||||
|
|
||||||
|
if (orientation == Qt::Horizontal)
|
||||||
|
_layout->addSpacerItem(new QSpacerItem(0, 0, QSizePolicy::Expanding, QSizePolicy::Minimum));
|
||||||
|
|
||||||
|
_widget->setLayout(_layout);
|
||||||
|
setDefaultWidget(_widget);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
class SubToolBarAction : public QWidgetAction
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
SubToolBarAction()
|
||||||
|
: QWidgetAction(NULL)
|
||||||
|
{
|
||||||
|
QWidget* _widget = new QWidget(NULL);
|
||||||
|
QHBoxLayout* _layout = new QHBoxLayout();
|
||||||
|
_layout->setSpacing(5);
|
||||||
|
_layout->setMargin(0);
|
||||||
|
|
||||||
|
_toolbar = new QToolBar();
|
||||||
|
_toolbar->setContextMenuPolicy(Qt::PreventContextMenu);
|
||||||
|
_toolbar->setAllowedAreas(Qt::TopToolBarArea | Qt::BottomToolBarArea);
|
||||||
|
_toolbar->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Maximum);
|
||||||
|
_toolbar->setOrientation(Qt::Horizontal);
|
||||||
|
|
||||||
|
_layout->addWidget(_toolbar);
|
||||||
|
_widget->setLayout(_layout);
|
||||||
|
|
||||||
|
setDefaultWidget(_widget);
|
||||||
|
};
|
||||||
|
|
||||||
|
QToolBar* toolbar() { return _toolbar; };
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
T GET(int index)
|
||||||
|
{
|
||||||
|
if (index >= 0 && index < _actions.size())
|
||||||
|
return static_cast<T>(_actions[index]);
|
||||||
|
|
||||||
|
return T();
|
||||||
|
}
|
||||||
|
|
||||||
|
void ADD_ACTION(QWidgetAction* _act) { _actions.push_back(_act); };
|
||||||
|
void SETUP_WIDGET(bool forceSpacer, Qt::Orientation orientation = Qt::Horizontal) {
|
||||||
|
_toolbar->clear();
|
||||||
|
for (int i = 0; i < _actions.size(); ++i)
|
||||||
|
{
|
||||||
|
_toolbar->addAction(_actions[i]);
|
||||||
|
if (i == _actions.size() - 1)
|
||||||
|
{
|
||||||
|
if (forceSpacer)
|
||||||
|
{
|
||||||
|
/* TODO: fix this spacer */
|
||||||
|
|
||||||
|
_toolbar->addAction(new SpacerAction(orientation));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_toolbar->addSeparator();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
private:
|
||||||
|
QToolBar* _toolbar;
|
||||||
|
QVector<QWidgetAction*> _actions;
|
||||||
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user