#4176 Add keyboard shortcuts to enter measurement modes

This commit is contained in:
Gaute Lindkvist 2019-03-27 13:08:13 +01:00
parent cd03ab865b
commit 45ea093dee
2 changed files with 37 additions and 5 deletions

View File

@ -24,6 +24,7 @@
#include "RimMeasurement.h"
#include "RimProject.h"
#include "cafCmdFeatureManager.h"
#include "cafPdmUiPropertyViewDialog.h"
#include "cafSelectionManager.h"
#include "cvfAssert.h"
@ -65,6 +66,7 @@ void RicToggleMeasurementModeFeature::onActionTriggered(bool isChecked)
}
refreshActionLook();
refreshPolyMeasuremeantActionLook();
}
//--------------------------------------------------------------------------------------------------
@ -73,17 +75,19 @@ void RicToggleMeasurementModeFeature::onActionTriggered(bool isChecked)
void RicToggleMeasurementModeFeature::setupActionLook(QAction* actionToSetup)
{
actionToSetup->setText("Measurement Mode");
actionToSetup->setToolTip("Single Line Measurement (Ctrl+M)");
actionToSetup->setIcon(QIcon(":/Ruler24x24.png"));
actionToSetup->setCheckable(true);
auto* meas = measurement();
if (meas && meas->measurementMode() == RimMeasurement::MEASURE_REGULAR)
{
applyShortcutWithHintToAction(actionToSetup, QKeySequence(Qt::Key_Escape));
applyShortcutWithHintToAction(actionToSetup, QKeySequence::Cancel);
applyShortcutWithHintToAction(actionToSetup, QKeySequence(tr("Ctrl+M")));
}
else
{
applyShortcutWithHintToAction(actionToSetup, QKeySequence());
applyShortcutWithHintToAction(actionToSetup, QKeySequence(tr("Ctrl+M")));
}
}
@ -118,6 +122,15 @@ Rim3dView* RicToggleMeasurementModeFeature::activeView() const
return view;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RicToggleMeasurementModeFeature::refreshPolyMeasuremeantActionLook()
{
auto cmdFeature = caf::CmdFeatureManager::instance()->getCommandFeature("RicTogglePolyMeasurementModeFeature");
static_cast<RicTogglePolyMeasurementModeFeature*>(cmdFeature)->refreshActionLook();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
@ -134,6 +147,7 @@ void RicTogglePolyMeasurementModeFeature::onActionTriggered(bool isChecked)
}
refreshActionLook();
refreshMeasurementActionLook();
}
//--------------------------------------------------------------------------------------------------
@ -142,17 +156,19 @@ void RicTogglePolyMeasurementModeFeature::onActionTriggered(bool isChecked)
void RicTogglePolyMeasurementModeFeature::setupActionLook(QAction* actionToSetup)
{
actionToSetup->setText("Poly Line Measurement Mode");
actionToSetup->setToolTip("Poly Line Measurement (Ctrl+Shift+M)");
actionToSetup->setIcon(QIcon(":/RulerPoly24x24.png"));
actionToSetup->setCheckable(true);
auto* meas = measurement();
if (meas && meas->measurementMode() == RimMeasurement::MEASURE_POLYLINE)
{
applyShortcutWithHintToAction(actionToSetup, QKeySequence(Qt::Key_Escape));
applyShortcutWithHintToAction(actionToSetup, QKeySequence::Cancel);
applyShortcutWithHintToAction(actionToSetup, QKeySequence(tr("Ctrl+Shift+M")));
}
else
{
applyShortcutWithHintToAction(actionToSetup, QKeySequence());
applyShortcutWithHintToAction(actionToSetup, QKeySequence(tr("Ctrl+Shift+M")));
}
}
@ -169,3 +185,12 @@ bool RicTogglePolyMeasurementModeFeature::isCommandChecked()
return false;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RicTogglePolyMeasurementModeFeature::refreshMeasurementActionLook()
{
auto cmdFeature = caf::CmdFeatureManager::instance()->getCommandFeature("RicToggleMeasurementModeFeature");
static_cast<RicToggleMeasurementModeFeature*>(cmdFeature)->refreshActionLook();
}

View File

@ -33,6 +33,8 @@ class RicToggleMeasurementModeFeature : public caf::CmdFeature
{
CAF_CMD_HEADER_INIT;
void refreshActionLook();
protected:
bool isCommandEnabled() override;
void onActionTriggered( bool isChecked ) override;
@ -40,9 +42,11 @@ protected:
bool isCommandChecked() override;
protected:
void refreshActionLook();
RimMeasurement* measurement() const;
Rim3dView* activeView() const;
private:
void refreshPolyMeasuremeantActionLook();
};
//==================================================================================================
@ -57,4 +61,7 @@ protected:
void setupActionLook(QAction* actionToSetup) override;
bool isCommandChecked() override;
private:
void refreshMeasurementActionLook();
};