Add Ctrl+A to select all; Arrow keys for movement

This commit is contained in:
manongjohn 2021-11-13 00:48:26 -05:00
parent 88d6b4b1e1
commit a345b1a763
2 changed files with 45 additions and 0 deletions

View file

@ -19,6 +19,7 @@
#include <QApplication> #include <QApplication>
#include <QDir> #include <QDir>
#include <QKeyEvent>
#include <QDebug> #include <QDebug>
@ -1159,6 +1160,49 @@ void PerspectiveTool::leftButtonUp(const TPointD &pos, const TMouseEvent &e) {
//---------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------
bool PerspectiveTool::keyDown(QKeyEvent *event) {
if (event->modifiers() & Qt::ControlModifier) {
if (event->key() == Qt::Key_A) {
for (int i = 0; i < m_perspectiveObjs.size(); i++) {
m_selection.select(i);
m_perspectiveObjs[i]->setActive(true);
}
m_selection.makeCurrent();
invalidate();
return true;
}
}
TPointD delta;
switch (event->key()) {
case Qt::Key_Up:
delta.y = 1;
break;
case Qt::Key_Down:
delta.y = -1;
break;
case Qt::Key_Left:
delta.x = -1;
break;
case Qt::Key_Right:
delta.x = 1;
break;
default:
return false;
break;
}
std::set<int> selectedObjects = m_selection.getSelectedObjects();
std::set<int>::iterator it;
for (it = selectedObjects.begin(); it != selectedObjects.end(); it++)
m_perspectiveObjs[*it]->shiftPerspectiveObject(delta);
return true;
}
//----------------------------------------------------------------------------------------------
void PerspectiveTool::invalidateControl(int controlIdx) { void PerspectiveTool::invalidateControl(int controlIdx) {
if (!m_perspectiveObjs.size() || controlIdx >= m_perspectiveObjs.size()) if (!m_perspectiveObjs.size() || controlIdx >= m_perspectiveObjs.size())
return; return;

View file

@ -409,6 +409,7 @@ public:
void leftButtonDown(const TPointD &pos, const TMouseEvent &e) override; void leftButtonDown(const TPointD &pos, const TMouseEvent &e) override;
void leftButtonDrag(const TPointD &pos, const TMouseEvent &e) override; void leftButtonDrag(const TPointD &pos, const TMouseEvent &e) override;
void leftButtonUp(const TPointD &pos, const TMouseEvent &) override; void leftButtonUp(const TPointD &pos, const TMouseEvent &) override;
bool keyDown(QKeyEvent *event) override;
bool onPropertyChanged(std::string propertyName) override; bool onPropertyChanged(std::string propertyName) override;