improve ground effect tool UI
This commit is contained in:
@@ -14,6 +14,8 @@ namespace noggit
|
|||||||
label_doodad_name(new QLabel), wrapper_layout(new QHBoxLayout), reset_button(new QPushButton),
|
label_doodad_name(new QLabel), wrapper_layout(new QHBoxLayout), reset_button(new QPushButton),
|
||||||
title_layout(new QHBoxLayout)
|
title_layout(new QHBoxLayout)
|
||||||
{
|
{
|
||||||
|
setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum);
|
||||||
|
|
||||||
// Set up spinbox ranges
|
// Set up spinbox ranges
|
||||||
spinbox_weight->setRange(0, 10);
|
spinbox_weight->setRange(0, 10);
|
||||||
|
|
||||||
@@ -25,6 +27,7 @@ namespace noggit
|
|||||||
label_percentage->setText("NaN");
|
label_percentage->setText("NaN");
|
||||||
|
|
||||||
reset_button->setIcon(Noggit::Ui::FontAwesomeIcon(Noggit::Ui::FontAwesome::minus));
|
reset_button->setIcon(Noggit::Ui::FontAwesomeIcon(Noggit::Ui::FontAwesome::minus));
|
||||||
|
reset_button->setToolTip("Reset this Doodad's values");
|
||||||
reset_button->setFixedSize(15, 15);
|
reset_button->setFixedSize(15, 15);
|
||||||
// Set fixed heights for labels and spin boxes
|
// Set fixed heights for labels and spin boxes
|
||||||
//label_text_weight->setFixedHeight(20); // Adjust the height as needed
|
//label_text_weight->setFixedHeight(20); // Adjust the height as needed
|
||||||
|
|||||||
@@ -695,7 +695,7 @@ namespace Noggit
|
|||||||
setWindowTitle("Ground Effects Tools");
|
setWindowTitle("Ground Effects Tools");
|
||||||
setMinimumSize(750, 600);
|
setMinimumSize(750, 600);
|
||||||
setWindowFlags(Qt::Tool | Qt::WindowStaysOnTopHint);
|
setWindowFlags(Qt::Tool | Qt::WindowStaysOnTopHint);
|
||||||
// setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Maximum);
|
setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred);
|
||||||
QHBoxLayout* main_layout = new QHBoxLayout(this);
|
QHBoxLayout* main_layout = new QHBoxLayout(this);
|
||||||
QVBoxLayout* left_side_layout = new QVBoxLayout(this);
|
QVBoxLayout* left_side_layout = new QVBoxLayout(this);
|
||||||
QVBoxLayout* right_side_layout = new QVBoxLayout(this);
|
QVBoxLayout* right_side_layout = new QVBoxLayout(this);
|
||||||
@@ -759,12 +759,13 @@ namespace Noggit
|
|||||||
|
|
||||||
// selection
|
// selection
|
||||||
auto selection_group = new QGroupBox("Effect Set Selection", this);
|
auto selection_group = new QGroupBox("Effect Set Selection", this);
|
||||||
right_side_layout->addWidget(selection_group);
|
selection_group->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum);
|
||||||
auto selection_layout(new QFormLayout(selection_group));
|
left_side_layout->addWidget(selection_group);
|
||||||
|
auto selection_layout(new QVBoxLayout(selection_group));
|
||||||
selection_group->setLayout(selection_layout);
|
selection_group->setLayout(selection_layout);
|
||||||
|
|
||||||
auto button_create_new = new QPushButton("Create New", this);
|
auto button_create_new = new QPushButton("Create New", this);
|
||||||
selection_layout->addRow(button_create_new);
|
selection_layout->addWidget(button_create_new);
|
||||||
|
|
||||||
// _cbbox_effect_sets = new QComboBox(this);
|
// _cbbox_effect_sets = new QComboBox(this);
|
||||||
// _cbbox_effect_sets->addItem("Noggit Default");
|
// _cbbox_effect_sets->addItem("Noggit Default");
|
||||||
@@ -772,7 +773,7 @@ namespace Noggit
|
|||||||
// selection_layout->addRow("Active Set : ", _cbbox_effect_sets);
|
// selection_layout->addRow("Active Set : ", _cbbox_effect_sets);
|
||||||
|
|
||||||
_effect_sets_list = new QListWidget(this);
|
_effect_sets_list = new QListWidget(this);
|
||||||
selection_layout->addRow(_effect_sets_list);
|
selection_layout->addWidget(_effect_sets_list);
|
||||||
_effect_sets_list->setViewMode(QListView::ListMode);
|
_effect_sets_list->setViewMode(QListView::ListMode);
|
||||||
_effect_sets_list->setSelectionMode(QAbstractItemView::SelectionMode::SingleSelection);
|
_effect_sets_list->setSelectionMode(QAbstractItemView::SelectionMode::SingleSelection);
|
||||||
_effect_sets_list->setSelectionBehavior(QAbstractItemView::SelectItems);
|
_effect_sets_list->setSelectionBehavior(QAbstractItemView::SelectItems);
|
||||||
@@ -785,7 +786,7 @@ namespace Noggit
|
|||||||
// effect settings
|
// effect settings
|
||||||
{
|
{
|
||||||
auto settings_group = new QGroupBox("Selected Set Settings", this);
|
auto settings_group = new QGroupBox("Selected Set Settings", this);
|
||||||
// settings_group->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Maximum);
|
settings_group->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum);
|
||||||
// settings_group->setCheckable(true);
|
// settings_group->setCheckable(true);
|
||||||
right_side_layout->addWidget(settings_group);
|
right_side_layout->addWidget(settings_group);
|
||||||
|
|
||||||
@@ -793,6 +794,9 @@ namespace Noggit
|
|||||||
auto settings_layout(new QFormLayout(settings_group));
|
auto settings_layout(new QFormLayout(settings_group));
|
||||||
settings_group->setLayout(settings_layout);
|
settings_group->setLayout(settings_layout);
|
||||||
|
|
||||||
|
auto set_help_label = new QLabel("A ground Effect Set contains up to 4 different doodads.\nTerrain Type is used for footprints and sounds.");
|
||||||
|
settings_layout->addRow(set_help_label);
|
||||||
|
|
||||||
// for (int i = 0; i < 4; i++)
|
// for (int i = 0; i < 4; i++)
|
||||||
// {
|
// {
|
||||||
// _button_effect_doodad[i] = new QPushButton(STRING_EMPTY_DISPLAY, this);
|
// _button_effect_doodad[i] = new QPushButton(STRING_EMPTY_DISPLAY, this);
|
||||||
@@ -812,9 +816,9 @@ namespace Noggit
|
|||||||
_object_list->setSelectionMode(QAbstractItemView::SingleSelection);
|
_object_list->setSelectionMode(QAbstractItemView::SingleSelection);
|
||||||
_object_list->setAcceptDrops(false);
|
_object_list->setAcceptDrops(false);
|
||||||
_object_list->setMovement(QListView::Movement::Static);
|
_object_list->setMovement(QListView::Movement::Static);
|
||||||
_object_list->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Maximum);
|
_object_list->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum);
|
||||||
_object_list->setMinimumWidth(480);
|
_object_list->setFixedWidth(_object_list->iconSize().width() * 4 + 40); // padding-right: 10px * 4
|
||||||
_object_list->setMinimumHeight(100);
|
_object_list->setFixedHeight(_object_list->iconSize().height() + 20);
|
||||||
|
|
||||||
settings_layout->addRow(_object_list);
|
settings_layout->addRow(_object_list);
|
||||||
for (int i = 0; i < 4; i++)
|
for (int i = 0; i < 4; i++)
|
||||||
@@ -828,15 +832,15 @@ namespace Noggit
|
|||||||
}
|
}
|
||||||
|
|
||||||
_weight_list = new QListWidget(this);
|
_weight_list = new QListWidget(this);
|
||||||
_weight_list->setItemAlignment(Qt::AlignLeft);
|
_weight_list->setItemAlignment(Qt::AlignLeft | Qt::AlignTop);
|
||||||
_weight_list->setFlow(QListWidget::LeftToRight);
|
_weight_list->setFlow(QListWidget::LeftToRight);
|
||||||
_weight_list->setMovement(QListView::Movement::Static);
|
_weight_list->setMovement(QListView::Movement::Static);
|
||||||
_weight_list->setSelectionMode(QAbstractItemView::NoSelection);
|
_weight_list->setSelectionMode(QAbstractItemView::NoSelection);
|
||||||
_weight_list->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Maximum);
|
_weight_list->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum);
|
||||||
_weight_list->setMinimumWidth(480);
|
_weight_list->setMinimumWidth(450);
|
||||||
_weight_list->setMinimumHeight(120);
|
_weight_list->setFixedHeight(120);
|
||||||
_weight_list->setVisible(true);
|
_weight_list->setVisible(true);
|
||||||
QString styleSheet = "QListWidget::item { padding-right: 10px; }";
|
QString styleSheet = "QListWidget::item { padding-right: 6px; border: 1px solid darkGray;}";
|
||||||
_weight_list->setStyleSheet(styleSheet);
|
_weight_list->setStyleSheet(styleSheet);
|
||||||
|
|
||||||
settings_layout->addRow(_weight_list);
|
settings_layout->addRow(_weight_list);
|
||||||
@@ -888,35 +892,51 @@ namespace Noggit
|
|||||||
|
|
||||||
/// Apply group
|
/// Apply group
|
||||||
auto apply_group = new QGroupBox("Apply Ground Effect", this);
|
auto apply_group = new QGroupBox("Apply Ground Effect", this);
|
||||||
left_side_layout->addWidget(apply_group);
|
right_side_layout->addWidget(apply_group);
|
||||||
|
|
||||||
auto apply_layout(new QVBoxLayout(apply_group));
|
auto apply_layout(new QVBoxLayout(apply_group));
|
||||||
apply_group->setLayout(apply_layout);
|
apply_group->setLayout(apply_layout);
|
||||||
|
|
||||||
// generate modes
|
// generate modes
|
||||||
{
|
{
|
||||||
|
auto buttons_layout(new QGridLayout(this));
|
||||||
|
apply_layout->addLayout(buttons_layout);
|
||||||
|
|
||||||
auto generate_type_group = new QButtonGroup(apply_group);
|
auto generate_type_group = new QButtonGroup(apply_group);
|
||||||
|
|
||||||
auto generate_effect_zone = new QRadioButton("Current Zone", this);
|
auto generate_effect_zone = new QRadioButton("Current Zone", this);
|
||||||
generate_type_group->addButton(generate_effect_zone);
|
generate_type_group->addButton(generate_effect_zone);
|
||||||
apply_layout->addWidget(generate_effect_zone);
|
buttons_layout->addWidget(generate_effect_zone, 0, 0);
|
||||||
|
|
||||||
auto generate_effect_area = new QRadioButton("Current Area(subzone)", this);
|
auto generate_effect_area = new QRadioButton("Current Area(subzone)", this);
|
||||||
generate_type_group->addButton(generate_effect_area);
|
generate_type_group->addButton(generate_effect_area);
|
||||||
apply_layout->addWidget(generate_effect_area);
|
buttons_layout->addWidget(generate_effect_area, 0, 1);
|
||||||
|
|
||||||
|
auto generate_effect_adt = new QRadioButton("Current ADT(Tile)", this);
|
||||||
|
generate_type_group->addButton(generate_effect_adt);
|
||||||
|
buttons_layout->addWidget(generate_effect_adt, 1, 0);
|
||||||
|
|
||||||
|
auto generate_effect_global = new QRadioButton("Global (entire map)", this);
|
||||||
|
generate_type_group->addButton(generate_effect_global);
|
||||||
|
buttons_layout->addWidget(generate_effect_global, 1, 1);
|
||||||
|
|
||||||
generate_effect_zone->setChecked(true);
|
generate_effect_zone->setChecked(true);
|
||||||
generate_effect_zone->setAutoExclusive(true);
|
generate_effect_zone->setAutoExclusive(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
_apply_override_cb = new QCheckBox("Override", this);
|
_apply_override_cb = new QCheckBox("Override", this);
|
||||||
|
_apply_override_cb->setToolTip("If the texture already had a ground effect, replace it.");
|
||||||
|
_apply_override_cb->setChecked(true);
|
||||||
apply_layout->addWidget(_apply_override_cb);
|
apply_layout->addWidget(_apply_override_cb);
|
||||||
|
|
||||||
auto button_generate_adt = new QPushButton("Generate for current ADT", this);
|
auto button_generate = new QPushButton("Apply to Texture", this);
|
||||||
apply_layout->addWidget(button_generate_adt);
|
apply_layout->addWidget(button_generate);
|
||||||
|
|
||||||
auto button_generate_global = new QPushButton("Generate Global(entire map)", this);
|
// auto button_generate_adt = new QPushButton("Generate for current ADT", this);
|
||||||
apply_layout->addWidget(button_generate_global);
|
// apply_layout->addWidget(button_generate_adt);
|
||||||
|
|
||||||
|
// auto button_generate_global = new QPushButton("Generate Global(entire map)", this);
|
||||||
|
// apply_layout->addWidget(button_generate_global);
|
||||||
|
|
||||||
// brush modes
|
// brush modes
|
||||||
{
|
{
|
||||||
@@ -941,7 +961,8 @@ namespace Noggit
|
|||||||
_paint_effect->setChecked(true);
|
_paint_effect->setChecked(true);
|
||||||
_paint_effect->setAutoExclusive(true);
|
_paint_effect->setAutoExclusive(true);
|
||||||
}
|
}
|
||||||
//adjustSize();
|
left_side_layout->addSpacerItem(new QSpacerItem(20, 40, QSizePolicy::Minimum, QSizePolicy::Expanding));
|
||||||
|
// adjustSize();
|
||||||
|
|
||||||
connect(_render_group_box, &QGroupBox::clicked,
|
connect(_render_group_box, &QGroupBox::clicked,
|
||||||
[this](bool checked)
|
[this](bool checked)
|
||||||
|
|||||||
@@ -109,7 +109,7 @@ namespace Noggit
|
|||||||
// commented objects that shouldn't be placed on the map, still accessible through Show all
|
// commented objects that shouldn't be placed on the map, still accessible through Show all
|
||||||
const QMap<QString, asset_browse_mode> brosweModeLabels = {
|
const QMap<QString, asset_browse_mode> brosweModeLabels = {
|
||||||
{ "World Objects", asset_browse_mode::world },
|
{ "World Objects", asset_browse_mode::world },
|
||||||
// { "Detail Doodads", asset_browse_mode::detail_doodads },
|
{ "Detail Doodads", asset_browse_mode::detail_doodads },
|
||||||
// { "Skybox", asset_browse_mode::skybox },
|
// { "Skybox", asset_browse_mode::skybox },
|
||||||
// { "Creatures", asset_browse_mode::creatures },
|
// { "Creatures", asset_browse_mode::creatures },
|
||||||
// { "Characters", asset_browse_mode::characters },
|
// { "Characters", asset_browse_mode::characters },
|
||||||
|
|||||||
Reference in New Issue
Block a user