minimap editor: basic selection functionality

This commit is contained in:
Skarn
2020-10-23 14:04:27 +03:00
parent a7d7024073
commit f3830b65f2
2 changed files with 67 additions and 0 deletions

View File

@@ -189,6 +189,40 @@ namespace noggit
}
);
connect(remove_btn, &QPushButton::clicked,
[=]()
{
for (auto item : _m2_model_filter_include->selectedItems())
{
auto item_ = _m2_model_filter_include->takeItem(_m2_model_filter_include->row(item));
delete item_;
}
if (!world->has_selection())
{
return;
}
for (auto& selection : world->current_selection())
{
if (selection.which() == eEntry_MapChunk)
{
continue;
}
std::string path;
if (selection.which() == eEntry_Model)
{
path = boost::get<selected_model_type>(selection)->model->filename;
unincludeM2Model(path);
}
}
}
);
connect ( _radius_spin, qOverload<double> (&QDoubleSpinBox::valueChanged)
, [&] (double v)
{
@@ -342,6 +376,23 @@ namespace noggit
void MinimapCreator::includeM2Model(std::string filename)
{
bool already_added = false;
for (int i = 0; i < _m2_model_filter_include->count(); ++i)
{
if (!reinterpret_cast<MinimapM2ModelFilterEntry*>(_m2_model_filter_include->itemWidget(
_m2_model_filter_include->item(i)))->getFileName().toStdString().compare(filename))
{
already_added = true;
break;
}
}
if (already_added)
{
return;
}
auto item = new QListWidgetItem();
_m2_model_filter_include->addItem(item);
auto entry_wgt = new MinimapM2ModelFilterEntry(this);
@@ -350,6 +401,21 @@ namespace noggit
_m2_model_filter_include->setItemWidget(item, entry_wgt);
}
void MinimapCreator::unincludeM2Model(std::string filename)
{
for (int i = 0; i < _m2_model_filter_include->count(); ++i )
{
if (!reinterpret_cast<MinimapM2ModelFilterEntry*>(_m2_model_filter_include->itemWidget(
_m2_model_filter_include->item(i)))->getFileName().toStdString().compare(filename))
{
auto item = _m2_model_filter_include->takeItem(i);
delete item;
}
}
}
MinimapM2ModelFilterEntry::MinimapM2ModelFilterEntry(MinimapCreator* parent) : QWidget(parent)
{
auto layout = new QHBoxLayout(this);

View File

@@ -81,6 +81,7 @@ namespace noggit
void progressUpdate(int value) { _progress_bar->setValue(value); };
void includeM2Model(std::string filename);
void unincludeM2Model(std::string filename);
private:
float _radius = 0.01f;