diff --git a/apps/opencs/view/render/instancemode.cpp b/apps/opencs/view/render/instancemode.cpp
index 7a59222eff..fb085f075a 100644
--- a/apps/opencs/view/render/instancemode.cpp
+++ b/apps/opencs/view/render/instancemode.cpp
@@ -60,24 +60,6 @@
#include "pagedworldspacewidget.hpp"
#include "worldspacewidget.hpp"
-namespace
-{
- constexpr std::string_view sInstanceModeTooltip = R"(
- Instance editing
-
- Use {scene-select-primary} and {scene-select-secondary} to select and unselect instances
- - Use {scene-edit-primary} to manipulate instances
- - Use {scene-select-tertiary} to select a reference object and then {scene-edit-secondary} to snap
- selection relative to the reference object
- - Use {scene-submode-move}, {scene-submode-rotate}, {scene-submode-scale} to change to move, rotate, and
- scale modes respectively
- - Use {scene-axis-x}, {scene-axis-y}, and {scene-axis-z} to lock changes to X, Y, and Z axes
- respectively
- - Use {scene-delete} to delete currently selected objects
- - Use {scene-duplicate} to duplicate instances
- - Use {scene-instance-drop} to drop instances
-)";
-}
-
int CSVRender::InstanceMode::getSubModeFromId(const std::string& id) const
{
return id == "move" ? 0 : (id == "rotate" ? 1 : 2);
@@ -312,10 +294,28 @@ void CSVRender::InstanceMode::setDragAxis(const char axis)
mDragAxis = newDragAxis;
}
+QString CSVRender::InstanceMode::getTooltip()
+{
+ return QString(
+ "Instance editing"
+ "- Use {scene-select-primary} and {scene-select-secondary} to select and unselect instances
"
+ "- Use {scene-edit-primary} to manipulate instances
"
+ "- Use {scene-select-tertiary} to select a reference object and then {scene-edit-secondary} to snap "
+ "selection relative to the reference object
"
+ "- Use {scene-submode-move}, {scene-submode-rotate}, {scene-submode-scale} to change to move, "
+ "rotate, and "
+ "scale modes respectively
"
+ "- Use {scene-axis-x}, {scene-axis-y}, and {scene-axis-z} to lock changes to X, Y, and Z axes "
+ "respectively
"
+ "- Use {scene-delete} to delete currently selected objects
"
+ "- Use {scene-duplicate} to duplicate instances
"
+ "- Use {scene-instance-drop} to drop instances
");
+}
+
CSVRender::InstanceMode::InstanceMode(
WorldspaceWidget* worldspaceWidget, osg::ref_ptr parentNode, QWidget* parent)
: EditMode(worldspaceWidget, Misc::ScalableIcon::load(":scenetoolbar/editing-instance"),
- Mask_Reference | Mask_Terrain, sInstanceModeTooltip.data(), parent)
+ Mask_Reference | Mask_Terrain, getTooltip(), parent)
, mSubMode(nullptr)
, mSubModeId("move")
, mSelectionMode(nullptr)
diff --git a/apps/opencs/view/render/instancemode.hpp b/apps/opencs/view/render/instancemode.hpp
index 193423efd5..f4dd9d99ea 100644
--- a/apps/opencs/view/render/instancemode.hpp
+++ b/apps/opencs/view/render/instancemode.hpp
@@ -53,6 +53,7 @@ namespace CSVRender
std::vector mObjectsAtDragStart;
CSMWorld::IdTable* mSelectionGroups;
+ QString getTooltip();
int getSubModeFromId(const std::string& id) const;
osg::Vec3 quatToEuler(const osg::Quat& quat) const;