minimap editor changes, 1920x1080 fix. new splash.

This commit is contained in:
Skarn
2020-10-23 01:23:53 +03:00
parent 238c52595b
commit 8f553c56ed
4 changed files with 61 additions and 4 deletions

View File

@@ -29,7 +29,7 @@ namespace noggit
World* world,
QWidget* parent ) : QWidget(parent)
{
setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
//setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
auto layout = new QHBoxLayout(this);
// Left side
@@ -48,7 +48,6 @@ namespace noggit
scroll_minimap->setWidgetResizable(true);
scroll_minimap->setFixedSize(QSize(512, 512));
_minimap_widget->world(world);
_minimap_widget->draw_boundaries(true);
_minimap_widget->use_selection(&_render_settings.selected_tiles);
@@ -60,6 +59,7 @@ namespace noggit
layout->addLayout(layout_right);
auto settings_tabs = new QTabWidget (this);
settings_tabs->setFixedWidth(300);
layout_right->addWidget(settings_tabs);
// Generate
@@ -129,6 +129,14 @@ namespace noggit
_progress_bar->setRange(0, 4096);
generate_layout->addRow (_progress_bar);
// Generate
auto filter_widget = new QWidget(this);
auto filter_layout = new QFormLayout(filter_widget);
settings_tabs->addTab(filter_widget, "Filter");
_m2_model_filter_include = new QListWidget(filter_widget);
filter_layout->addRow(_m2_model_filter_include);
// Connections
connect ( _radius_spin, qOverload<double> (&QDoubleSpinBox::valueChanged)
@@ -281,5 +289,27 @@ namespace noggit
}
}
void MinimapCreator::includeM2Model(std::string filename)
{
auto item = new QListWidgetItem();
_m2_model_filter_include->addItem(item);
auto entry_wgt = new MinimapM2ModelFilterEntry(this);
// entry_wgt->set
item->setSizeHint(entry_wgt->minimumSizeHint());
_m2_model_filter_include->setItemWidget(item, entry_wgt);
}
MinimapM2ModelFilterEntry::MinimapM2ModelFilterEntry(MinimapCreator* parent) : QWidget(parent)
{
auto layout = new QHBoxLayout(this);
layout->addWidget(_filename = new QLineEdit(this));
layout->addWidget(_size_category_spin = new QDoubleSpinBox(this));
_size_category_spin->setRange (0.0f, 100.0f);
_size_category_spin->setDecimals (2);
_size_category_spin->setValue (0.0);
}
}
}

View File

@@ -7,6 +7,8 @@
#include <QtWidgets/QSlider>
#include <QDoubleSpinBox>
#include <QProgressBar>
#include <QLineEdit>
#include <QListWidget>
#include <boost/optional.hpp>
#include <string>
@@ -38,12 +40,19 @@ struct MinimapRenderSettings
bool draw_adt_grid = false;
bool draw_elevation = false;
std::array<bool, 4096> selected_tiles = {false};
QListWidget* m2_model_filter_include;
// Filtering
/*
std::unordered_map<std::string, float> m2_model_filter_include; // filename, size category
std::vector<uint32_t> m2_instance_filter_include; // include specific M2 instances
std::vector<std::string> wmo_model_filter_exclude; // exclude WMOs by filename
std::vector<uint32_t> wmo_instance_filter_exclude; // exclude specific WMO instances
std::array<bool, 4096> selected_tiles = {false};
*/
};
@@ -52,10 +61,11 @@ namespace noggit
namespace ui
{
class MinimapCreator : public QWidget
{
public:
MinimapCreator (MapView* mapView, World* world, QWidget* parent = nullptr);
MinimapCreator(MapView* mapView, World* world, QWidget* parent = nullptr);
void changeRadius(float change);
@@ -70,6 +80,8 @@ namespace noggit
void progressUpdate(int value) { _progress_bar->setValue(value); };
void includeM2Model(std::string filename);
private:
float _radius = 0.01f;
MinimapRenderSettings _render_settings;
@@ -77,7 +89,21 @@ namespace noggit
QDoubleSpinBox* _radius_spin;
minimap_widget* _minimap_widget;
QProgressBar* _progress_bar;
QListWidget* _m2_model_filter_include;
};
class MinimapM2ModelFilterEntry : public QWidget
{
public:
MinimapM2ModelFilterEntry(MinimapCreator* parent = nullptr);
QString getFileName() { return _filename->text(); };
float getSizeCategory() { return static_cast<float>(_size_category_spin->value()); };
private:
QLineEdit* _filename;
QDoubleSpinBox* _size_category_spin;
};
}
}

View File

@@ -26,6 +26,7 @@ namespace noggit
setSizePolicy (QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding);
//setMouseTracking(true);
setMaximumSize(QSize(1024, 1024));
setMinimumSize(QSize(512, 512));
}
QSize minimap_widget::sizeHint() const