Mercurial > hg > svgui
comparison layer/NoteLayer.cpp @ 1422:6f51297a0250
Keep the point being edited highlighted while the edit dialog is open
| author | Chris Cannam |
|---|---|
| date | Tue, 05 Mar 2019 10:02:48 +0000 |
| parents | c8a6fd3f9dff |
| children | 62e908518c71 |
comparison
equal
deleted
inserted
replaced
| 1421:70e93f996da6 | 1422:6f51297a0250 |
|---|---|
| 55 m_dragStartX(0), | 55 m_dragStartX(0), |
| 56 m_dragStartY(0), | 56 m_dragStartY(0), |
| 57 m_originalPoint(0, 0.0, 0, 1.f, tr("New Point")), | 57 m_originalPoint(0, 0.0, 0, 1.f, tr("New Point")), |
| 58 m_editingPoint(0, 0.0, 0, 1.f, tr("New Point")), | 58 m_editingPoint(0, 0.0, 0, 1.f, tr("New Point")), |
| 59 m_editingCommand(nullptr), | 59 m_editingCommand(nullptr), |
| 60 m_editIsOpen(false), | |
| 60 m_verticalScale(AutoAlignScale), | 61 m_verticalScale(AutoAlignScale), |
| 61 m_scaleMinimum(0), | 62 m_scaleMinimum(0), |
| 62 m_scaleMaximum(0) | 63 m_scaleMaximum(0) |
| 63 { | 64 { |
| 64 SVDEBUG << "constructed NoteLayer" << endl; | 65 SVDEBUG << "constructed NoteLayer" << endl; |
| 775 bool shouldIlluminate = false; | 776 bool shouldIlluminate = false; |
| 776 | 777 |
| 777 if (v->shouldIlluminateLocalFeatures(this, localPos)) { | 778 if (v->shouldIlluminateLocalFeatures(this, localPos)) { |
| 778 shouldIlluminate = getPointToDrag(v, localPos.x(), localPos.y(), | 779 shouldIlluminate = getPointToDrag(v, localPos.x(), localPos.y(), |
| 779 illuminatePoint); | 780 illuminatePoint); |
| 781 } else if (m_editIsOpen) { | |
| 782 shouldIlluminate = true; | |
| 783 illuminatePoint = m_editingPoint; | |
| 780 } | 784 } |
| 781 | 785 |
| 782 paint.save(); | 786 paint.save(); |
| 783 paint.setRenderHint(QPainter::Antialiasing, false); | 787 paint.setRenderHint(QPainter::Antialiasing, false); |
| 784 | 788 |
| 1090 dialog->setFrameTime(note.frame); | 1094 dialog->setFrameTime(note.frame); |
| 1091 dialog->setValue(note.value); | 1095 dialog->setValue(note.value); |
| 1092 dialog->setFrameDuration(note.duration); | 1096 dialog->setFrameDuration(note.duration); |
| 1093 dialog->setText(note.label); | 1097 dialog->setText(note.label); |
| 1094 | 1098 |
| 1099 m_editingPoint = note; | |
| 1100 m_editIsOpen = true; | |
| 1101 | |
| 1095 if (dialog->exec() == QDialog::Accepted) { | 1102 if (dialog->exec() == QDialog::Accepted) { |
| 1096 | 1103 |
| 1097 NoteModel::Point newNote = note; | 1104 NoteModel::Point newNote = note; |
| 1098 newNote.frame = dialog->getFrameTime(); | 1105 newNote.frame = dialog->getFrameTime(); |
| 1099 newNote.value = dialog->getValue(); | 1106 newNote.value = dialog->getValue(); |
| 1105 command->deletePoint(note); | 1112 command->deletePoint(note); |
| 1106 command->addPoint(newNote); | 1113 command->addPoint(newNote); |
| 1107 finish(command); | 1114 finish(command); |
| 1108 } | 1115 } |
| 1109 | 1116 |
| 1117 m_editingPoint = 0; | |
| 1118 m_editIsOpen = false; | |
| 1119 | |
| 1110 delete dialog; | 1120 delete dialog; |
| 1111 return true; | 1121 return true; |
| 1112 } | 1122 } |
| 1113 | 1123 |
| 1114 void | 1124 void |
