added selection mode UI

coverity_scan
Marc Zinnschlag 9 years ago
parent c1901069be
commit 0305ae3693

@ -85,7 +85,7 @@ opencs_units (view/widget
opencs_units (view/render opencs_units (view/render
scenewidget worldspacewidget pagedworldspacewidget unpagedworldspacewidget scenewidget worldspacewidget pagedworldspacewidget unpagedworldspacewidget
previewwidget editmode instancemode previewwidget editmode instancemode instanceselectionmode
) )
opencs_units_noqt (view/render opencs_units_noqt (view/render

@ -16,10 +16,11 @@
#include "object.hpp" #include "object.hpp"
#include "worldspacewidget.hpp" #include "worldspacewidget.hpp"
#include "pagedworldspacewidget.hpp" #include "pagedworldspacewidget.hpp"
#include "instanceselectionmode.hpp"
CSVRender::InstanceMode::InstanceMode (WorldspaceWidget *worldspaceWidget, QWidget *parent) CSVRender::InstanceMode::InstanceMode (WorldspaceWidget *worldspaceWidget, QWidget *parent)
: EditMode (worldspaceWidget, QIcon (":placeholder"), Element_Reference, "Instance editing", : EditMode (worldspaceWidget, QIcon (":placeholder"), Element_Reference, "Instance editing",
parent), mSubMode (0) parent), mSubMode (0), mSelectionMode (0)
{ {
} }
@ -48,16 +49,30 @@ void CSVRender::InstanceMode::activate (CSVWidget::SceneToolbar *toolbar)
"<font color=Red>Not implemented yet</font color>"); "<font color=Red>Not implemented yet</font color>");
} }
if (!mSelectionMode)
mSelectionMode = new InstanceSelectionMode (toolbar);
EditMode::activate (toolbar); EditMode::activate (toolbar);
toolbar->addTool (mSubMode); toolbar->addTool (mSubMode);
toolbar->addTool (mSelectionMode);
} }
void CSVRender::InstanceMode::deactivate (CSVWidget::SceneToolbar *toolbar) void CSVRender::InstanceMode::deactivate (CSVWidget::SceneToolbar *toolbar)
{ {
if (mSelectionMode)
{
toolbar->removeTool (mSelectionMode);
delete mSelectionMode;
mSelectionMode = 0;
}
if (mSubMode)
{
toolbar->removeTool (mSubMode); toolbar->removeTool (mSubMode);
delete mSubMode; delete mSubMode;
mSubMode = 0; mSubMode = 0;
}
EditMode::deactivate (toolbar); EditMode::deactivate (toolbar);
} }

@ -10,10 +10,13 @@ namespace CSVWidget
namespace CSVRender namespace CSVRender
{ {
class InstanceSelectionMode;
class InstanceMode : public EditMode class InstanceMode : public EditMode
{ {
Q_OBJECT Q_OBJECT
CSVWidget::SceneToolMode *mSubMode; CSVWidget::SceneToolMode *mSubMode;
InstanceSelectionMode *mSelectionMode;
public: public:

@ -0,0 +1,27 @@
#include "instanceselectionmode.hpp"
CSVRender::InstanceSelectionMode::InstanceSelectionMode (CSVWidget::SceneToolbar *parent)
: CSVWidget::SceneToolMode (parent, "Selection Mode")
{
addButton (":placeholder", "cube-centre",
"Centred cube"
"<ul><li>Drag with primary (make instances the selection) or secondary (invert selection state) select button from the centre of the selection cube outwards</li>"
"<li>The selection cube is aligned to the word space axis</li>"
"<li>If context selection mode is enabled, a drag with primary/secondary edit not starting on an instance will have the same effect</li>"
"</ul>"
"<font color=Red>Not implemented yet</font color>");
addButton (":placeholder", "cube-corner",
"Cube corner to corner"
"<ul><li>Drag with primary (make instances the selection) or secondary (invert selection state) select button from one corner of the selection cube to the opposite corner</li>"
"<li>The selection cube is aligned to the word space axis</li>"
"<li>If context selection mode is enabled, a drag with primary/secondary edit not starting on an instance will have the same effect</li>"
"</ul>"
"<font color=Red>Not implemented yet</font color>");
addButton (":placeholder", "sphere",
"Centred sphere"
"<ul><li>Drag with primary (make instances the selection) or secondary (invert selection state) select button from the centre of the selection sphere outwards</li>"
"<li>If context selection mode is enabled, a drag with primary/secondary edit not starting on an instance will have the same effect</li>"
"</ul>"
"<font color=Red>Not implemented yet</font color>");
}

@ -0,0 +1,19 @@
#ifndef CSV_RENDER_INSTANCE_SELECTION_MODE_H
#define CSV_RENDER_INSTANCE_SELECTION_MODE_H
#include "../widget/scenetoolmode.hpp"
namespace CSVRender
{
class InstanceSelectionMode : public CSVWidget::SceneToolMode
{
Q_OBJECT
public:
InstanceSelectionMode (CSVWidget::SceneToolbar *parent);
};
}
#endif
Loading…
Cancel
Save