bugfix: You can now select areas using the AreaTool again (CTRL+Left Click)
This commit is contained in:
@@ -3972,7 +3972,11 @@ void MapView::mousePressEvent(QMouseEvent* event)
|
||||
activeTool()->onMousePress({
|
||||
.button = event->button(),
|
||||
.mouse_position = event->pos(),
|
||||
.mod_shift_down = _mod_shift_down,
|
||||
.mod_ctrl_down = _mod_ctrl_down,
|
||||
.mod_alt_down = _mod_alt_down,
|
||||
.mod_num_down = _mod_num_down,
|
||||
.mod_space_down = _mod_space_down,
|
||||
});
|
||||
|
||||
switch (event->button())
|
||||
|
||||
@@ -56,7 +56,11 @@ namespace Noggit
|
||||
{
|
||||
Qt::MouseButton button = Qt::MouseButton::NoButton;
|
||||
QPoint mouse_position;
|
||||
bool mod_shift_down = false;
|
||||
bool mod_ctrl_down = false;
|
||||
bool mod_alt_down = false;
|
||||
bool mod_num_down = false;
|
||||
bool mod_space_down = false;
|
||||
};
|
||||
|
||||
struct MouseReleaseParameters
|
||||
|
||||
@@ -85,9 +85,17 @@ namespace Noggit
|
||||
mapView()->getWorld()->renderer()->getTerrainParamsUniformBlock()->draw_areaid_overlay = false;
|
||||
}
|
||||
|
||||
void AreaTool::onTick(float deltaTime, TickParameters const& params)
|
||||
void AreaTool::onMouseMove(MouseMoveParameters const& params)
|
||||
{
|
||||
if (!mapView()->getWorld()->has_selection() || params.underMap || !params.left_mouse)
|
||||
if (params.left_mouse && params.mod_alt_down && !params.mod_shift_down && !params.mod_ctrl_down)
|
||||
{
|
||||
_areaTool->changeRadius(params.relative_movement.dx() / XSENS);
|
||||
}
|
||||
}
|
||||
|
||||
void AreaTool::onMousePress(MousePressParameters const& params)
|
||||
{
|
||||
if (params.button != Qt::LeftButton)
|
||||
{
|
||||
return;
|
||||
}
|
||||
@@ -100,8 +108,10 @@ namespace Noggit
|
||||
// draw the selected AreaId on current selected chunk
|
||||
mapView()->getWorld()->setAreaID(mapView()->cursorPosition(), _selectedAreaId, false, _areaTool->brushRadius());
|
||||
}
|
||||
else if (params.mod_ctrl_down)
|
||||
else if(params.mod_ctrl_down)
|
||||
{
|
||||
mapView()->doSelection(true);
|
||||
|
||||
for (auto&& selection : mapView()->getWorld()->current_selection())
|
||||
{
|
||||
MapChunk* chnk(std::get<selected_chunk_type>(selection).chunk);
|
||||
@@ -109,14 +119,7 @@ namespace Noggit
|
||||
_selectedAreaId = newID;
|
||||
_areaTool->setZoneID(newID);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void AreaTool::onMouseMove(MouseMoveParameters const& params)
|
||||
{
|
||||
if (params.left_mouse && params.mod_alt_down && !params.mod_shift_down && !params.mod_ctrl_down)
|
||||
{
|
||||
_areaTool->changeRadius(params.relative_movement.dx() / XSENS);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -37,10 +37,10 @@ namespace Noggit
|
||||
|
||||
virtual void onDeselected();
|
||||
|
||||
void onTick(float deltaTime, TickParameters const& params) override;
|
||||
|
||||
void onMouseMove(MouseMoveParameters const& params) override;
|
||||
|
||||
void onMousePress(MousePressParameters const& params) override;
|
||||
|
||||
private:
|
||||
Ui::zone_id_browser* _areaTool = nullptr;
|
||||
int _selectedAreaId = -1;
|
||||
|
||||
Reference in New Issue
Block a user