#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 "RimMeasurement.h"
#include "RimProject.h" #include "RimProject.h"
#include "cafCmdFeatureManager.h"
#include "cafPdmUiPropertyViewDialog.h" #include "cafPdmUiPropertyViewDialog.h"
#include "cafSelectionManager.h" #include "cafSelectionManager.h"
#include "cvfAssert.h" #include "cvfAssert.h"
@ -65,6 +66,7 @@ void RicToggleMeasurementModeFeature::onActionTriggered(bool isChecked)
} }
refreshActionLook(); refreshActionLook();
refreshPolyMeasuremeantActionLook();
} }
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
@ -73,17 +75,19 @@ void RicToggleMeasurementModeFeature::onActionTriggered(bool isChecked)
void RicToggleMeasurementModeFeature::setupActionLook(QAction* actionToSetup) void RicToggleMeasurementModeFeature::setupActionLook(QAction* actionToSetup)
{ {
actionToSetup->setText("Measurement Mode"); actionToSetup->setText("Measurement Mode");
actionToSetup->setToolTip("Single Line Measurement (Ctrl+M)");
actionToSetup->setIcon(QIcon(":/Ruler24x24.png")); actionToSetup->setIcon(QIcon(":/Ruler24x24.png"));
actionToSetup->setCheckable(true); actionToSetup->setCheckable(true);
auto* meas = measurement(); auto* meas = measurement();
if (meas && meas->measurementMode() == RimMeasurement::MEASURE_REGULAR) if (meas && meas->measurementMode() == RimMeasurement::MEASURE_REGULAR)
{ {
applyShortcutWithHintToAction(actionToSetup, QKeySequence(Qt::Key_Escape)); applyShortcutWithHintToAction(actionToSetup, QKeySequence::Cancel);
applyShortcutWithHintToAction(actionToSetup, QKeySequence(tr("Ctrl+M")));
} }
else else
{ {
applyShortcutWithHintToAction(actionToSetup, QKeySequence()); applyShortcutWithHintToAction(actionToSetup, QKeySequence(tr("Ctrl+M")));
} }
} }
@ -118,6 +122,15 @@ Rim3dView* RicToggleMeasurementModeFeature::activeView() const
return view; 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(); refreshActionLook();
refreshMeasurementActionLook();
} }
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
@ -142,17 +156,19 @@ void RicTogglePolyMeasurementModeFeature::onActionTriggered(bool isChecked)
void RicTogglePolyMeasurementModeFeature::setupActionLook(QAction* actionToSetup) void RicTogglePolyMeasurementModeFeature::setupActionLook(QAction* actionToSetup)
{ {
actionToSetup->setText("Poly Line Measurement Mode"); actionToSetup->setText("Poly Line Measurement Mode");
actionToSetup->setToolTip("Poly Line Measurement (Ctrl+Shift+M)");
actionToSetup->setIcon(QIcon(":/RulerPoly24x24.png")); actionToSetup->setIcon(QIcon(":/RulerPoly24x24.png"));
actionToSetup->setCheckable(true); actionToSetup->setCheckable(true);
auto* meas = measurement(); auto* meas = measurement();
if (meas && meas->measurementMode() == RimMeasurement::MEASURE_POLYLINE) 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 else
{ {
applyShortcutWithHintToAction(actionToSetup, QKeySequence()); applyShortcutWithHintToAction(actionToSetup, QKeySequence(tr("Ctrl+Shift+M")));
} }
} }
@ -169,3 +185,12 @@ bool RicTogglePolyMeasurementModeFeature::isCommandChecked()
return false; 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; CAF_CMD_HEADER_INIT;
void refreshActionLook();
protected: protected:
bool isCommandEnabled() override; bool isCommandEnabled() override;
void onActionTriggered( bool isChecked ) override; void onActionTriggered( bool isChecked ) override;
@ -40,9 +42,11 @@ protected:
bool isCommandChecked() override; bool isCommandChecked() override;
protected: protected:
void refreshActionLook();
RimMeasurement* measurement() const; RimMeasurement* measurement() const;
Rim3dView* activeView() const; Rim3dView* activeView() const;
private:
void refreshPolyMeasuremeantActionLook();
}; };
//================================================================================================== //==================================================================================================
@ -57,4 +61,7 @@ protected:
void setupActionLook(QAction* actionToSetup) override; void setupActionLook(QAction* actionToSetup) override;
bool isCommandChecked() override; bool isCommandChecked() override;
private:
void refreshMeasurementActionLook();
}; };