Skip to content

Commit f909951

Browse files
committed
Update document
1 parent 7c7d7ca commit f909951

2 files changed

Lines changed: 26 additions & 3 deletions

File tree

src/plugins/coreplugin/project/document/DspxDocument.cpp

Lines changed: 24 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -498,6 +498,8 @@ namespace Core {
498498
removedCount = deleteClips();
499499
break;
500500
case dspx::SelectionModel::ST_Note:
501+
removedCount = deleteNotes();
502+
break;
501503
case dspx::SelectionModel::ST_AnchorNode:
502504
// TODO delete support for additional selection types
503505
break;
@@ -572,9 +574,6 @@ namespace Core {
572574
}
573575

574576
int DspxDocumentPrivate::deleteClips() {
575-
if (!model || !selectionModel || !model->timeline())
576-
return 0;
577-
578577
int removedCount = 0;
579578
for (auto *item : selectionModel->clipSelectionModel()->selectedItems()) {
580579
if (item->clipSequence()->removeItem(item)) {
@@ -585,6 +584,17 @@ namespace Core {
585584
return removedCount;
586585
}
587586

587+
int DspxDocumentPrivate::deleteNotes() {
588+
int removedCount = 0;
589+
for (auto *item : selectionModel->noteSelectionModel()->selectedItems()) {
590+
if (item->noteSequence()->removeItem(item)) {
591+
model->destroyItem(item);
592+
++removedCount;
593+
}
594+
}
595+
return removedCount;
596+
}
597+
588598
void DspxDocumentPrivate::selectAllTempos() {
589599
for (auto item : model->timeline()->tempos()->asRange()) {
590600
selectionModel->select(item, dspx::SelectionModel::Select);
@@ -611,6 +621,15 @@ namespace Core {
611621
}
612622
}
613623

624+
void DspxDocumentPrivate::selectAllNotes() {
625+
auto noteSequence = selectionModel->noteSelectionModel()->noteSequenceWithSelectedItems();
626+
if (!noteSequence)
627+
return;
628+
for (auto item : noteSequence->asRange()) {
629+
selectionModel->select(item, dspx::SelectionModel::Select);
630+
}
631+
}
632+
614633
DspxDocument::DspxDocument(QObject *parent) : QObject(parent), d_ptr(new DspxDocumentPrivate) {
615634
Q_D(DspxDocument);
616635
d->q_ptr = this;
@@ -809,6 +828,8 @@ namespace Core {
809828
d->selectAllClips();
810829
break;
811830
case dspx::SelectionModel::ST_Note:
831+
d->selectAllNotes();
832+
break;
812833
case dspx::SelectionModel::ST_AnchorNode:
813834
// TODO select all support for additional selection types
814835
break;

src/plugins/coreplugin/project/document/DspxDocument_p.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,11 +41,13 @@ namespace Core {
4141
int deleteLabels();
4242
int deleteTracks();
4343
int deleteClips();
44+
int deleteNotes();
4445

4546
void selectAllTempos();
4647
void selectAllLabels();
4748
void selectAllTracks();
4849
void selectAllClips();
50+
void selectAllNotes();
4951

5052
template<typename Signal>
5153
bool emitOnChange(bool value, bool &cache, Signal signal);

0 commit comments

Comments
 (0)