MCPcopy Create free account
hub / github.com/computationalpathologygroup/ASAP / keyPressEvent

Method keyPressEvent

ASAP/annotation/AnnotationTool.cpp:61–114  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

59}
60
61void AnnotationTool::keyPressEvent(QKeyEvent *event) {
62 if (event->key() == Qt::Key::Key_Escape) {
63 cancelAnnotation();
64 event->accept();
65 }
66 else if (event->key() == Qt::Key::Key_Delete && event->modifiers() == Qt::ShiftModifier) {
67 if (_generating) {
68 cancelAnnotation();
69 }
70 else {
71 QSet<QtAnnotation*> selectedAnnotations = _annotationPlugin->getSelectedAnnotations();
72 for (QSet<QtAnnotation*>::iterator it = selectedAnnotations.begin(); it != selectedAnnotations.end(); ++it) {
73 _annotationPlugin->deleteAnnotation(*it);
74 }
75 }
76 event->accept();
77 }
78 else if (event->key() == Qt::Key::Key_Delete) {
79 if (_generating) {
80 if (_annotationPlugin->getGeneratedAnnotation()->getAnnotation()->getCoordinates().size() < 2) {
81 cancelAnnotation();
82 }
83 else {
84 _annotationPlugin->getGeneratedAnnotation()->removeCoordinate(-1);
85 if (!_annotationPlugin->getGeneratedAnnotation()->getAnnotation()->getCoordinates().empty()) {
86 Point prev = _annotationPlugin->getGeneratedAnnotation()->getAnnotation()->getCoordinate(-1);
87 _last = Point(prev.getX() * _viewer->getSceneScale(), prev.getY() * _viewer->getSceneScale());
88 }
89 }
90 event->accept();
91 }
92 else if (_annotationPlugin->getActiveAnnotation()) {
93 if (_annotationPlugin->getActiveAnnotation()->getAnnotation()->getCoordinates().size() <= 1) {
94 _annotationPlugin->deleteAnnotation(_annotationPlugin->getActiveAnnotation());
95 event->accept();
96 }
97 else if (_annotationPlugin->getActiveAnnotation()->getActiveSeedPoint() > -1) {
98 int activeSeedPoint = _annotationPlugin->getActiveAnnotation()->getActiveSeedPoint();
99 _annotationPlugin->getActiveAnnotation()->removeCoordinate(activeSeedPoint);
100 if (activeSeedPoint - 1 >= 0) {
101 _annotationPlugin->getActiveAnnotation()->setActiveSeedPoint(activeSeedPoint - 1);
102 }
103 else {
104 _annotationPlugin->getActiveAnnotation()->setActiveSeedPoint(_annotationPlugin->getActiveAnnotation()->getAnnotation()->getCoordinates().size() - 1);
105 }
106 event->accept();
107 }
108 else if (_annotationPlugin->getActiveAnnotation()) {
109 _annotationPlugin->getActiveAnnotation()->removeCoordinate(-1);
110 event->accept();
111 }
112 }
113 }
114}
115
116void AnnotationTool::setActive(bool active) {
117 if (!active) {

Callers

nothing calls this directly

Calls 13

PointClass · 0.85
deleteAnnotationMethod · 0.80
sizeMethod · 0.80
getCoordinatesMethod · 0.80
emptyMethod · 0.80
getCoordinateMethod · 0.80
getActiveAnnotationMethod · 0.80
getActiveSeedPointMethod · 0.80
setActiveSeedPointMethod · 0.80
getAnnotationMethod · 0.45

Tested by

no test coverage detected