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({
|
activeTool()->onMousePress({
|
||||||
.button = event->button(),
|
.button = event->button(),
|
||||||
.mouse_position = event->pos(),
|
.mouse_position = event->pos(),
|
||||||
|
.mod_shift_down = _mod_shift_down,
|
||||||
.mod_ctrl_down = _mod_ctrl_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())
|
switch (event->button())
|
||||||
|
|||||||
@@ -56,7 +56,11 @@ namespace Noggit
|
|||||||
{
|
{
|
||||||
Qt::MouseButton button = Qt::MouseButton::NoButton;
|
Qt::MouseButton button = Qt::MouseButton::NoButton;
|
||||||
QPoint mouse_position;
|
QPoint mouse_position;
|
||||||
|
bool mod_shift_down = false;
|
||||||
bool mod_ctrl_down = false;
|
bool mod_ctrl_down = false;
|
||||||
|
bool mod_alt_down = false;
|
||||||
|
bool mod_num_down = false;
|
||||||
|
bool mod_space_down = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct MouseReleaseParameters
|
struct MouseReleaseParameters
|
||||||
|
|||||||
@@ -85,9 +85,17 @@ namespace Noggit
|
|||||||
mapView()->getWorld()->renderer()->getTerrainParamsUniformBlock()->draw_areaid_overlay = false;
|
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;
|
return;
|
||||||
}
|
}
|
||||||
@@ -102,6 +110,8 @@ namespace Noggit
|
|||||||
}
|
}
|
||||||
else if(params.mod_ctrl_down)
|
else if(params.mod_ctrl_down)
|
||||||
{
|
{
|
||||||
|
mapView()->doSelection(true);
|
||||||
|
|
||||||
for (auto&& selection : mapView()->getWorld()->current_selection())
|
for (auto&& selection : mapView()->getWorld()->current_selection())
|
||||||
{
|
{
|
||||||
MapChunk* chnk(std::get<selected_chunk_type>(selection).chunk);
|
MapChunk* chnk(std::get<selected_chunk_type>(selection).chunk);
|
||||||
@@ -109,14 +119,7 @@ namespace Noggit
|
|||||||
_selectedAreaId = newID;
|
_selectedAreaId = newID;
|
||||||
_areaTool->setZoneID(newID);
|
_areaTool->setZoneID(newID);
|
||||||
}
|
}
|
||||||
}
|
return;
|
||||||
}
|
|
||||||
|
|
||||||
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);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -37,10 +37,10 @@ namespace Noggit
|
|||||||
|
|
||||||
virtual void onDeselected();
|
virtual void onDeselected();
|
||||||
|
|
||||||
void onTick(float deltaTime, TickParameters const& params) override;
|
|
||||||
|
|
||||||
void onMouseMove(MouseMoveParameters const& params) override;
|
void onMouseMove(MouseMoveParameters const& params) override;
|
||||||
|
|
||||||
|
void onMousePress(MousePressParameters const& params) override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Ui::zone_id_browser* _areaTool = nullptr;
|
Ui::zone_id_browser* _areaTool = nullptr;
|
||||||
int _selectedAreaId = -1;
|
int _selectedAreaId = -1;
|
||||||
|
|||||||
Reference in New Issue
Block a user