mirror of
https://github.com/cookiengineer/audacity
synced 2025-11-23 17:30:17 +01:00
Also skip TimeTrack in some other commands with the flag
This commit is contained in:
@@ -323,6 +323,8 @@ void OnDelete(const CommandContext &context)
|
|||||||
auto &window = ProjectWindow::Get( project );
|
auto &window = ProjectWindow::Get( project );
|
||||||
|
|
||||||
for (auto n : tracks.Any()) {
|
for (auto n : tracks.Any()) {
|
||||||
|
if (!n->SupportsBasicEditing())
|
||||||
|
continue;
|
||||||
if (n->GetSelected() || n->IsSyncLockSelected()) {
|
if (n->GetSelected() || n->IsSyncLockSelected()) {
|
||||||
n->Clear(selectedRegion.t0(), selectedRegion.t1());
|
n->Clear(selectedRegion.t0(), selectedRegion.t1());
|
||||||
}
|
}
|
||||||
@@ -647,6 +649,9 @@ void OnDuplicate(const CommandContext &context)
|
|||||||
auto range = tracks.Selected();
|
auto range = tracks.Selected();
|
||||||
auto last = *range.rbegin();
|
auto last = *range.rbegin();
|
||||||
for (auto n : range) {
|
for (auto n : range) {
|
||||||
|
if (!n->SupportsBasicEditing())
|
||||||
|
continue;
|
||||||
|
|
||||||
// Make copies not for clipboard but for direct addition to the project
|
// Make copies not for clipboard but for direct addition to the project
|
||||||
auto dest = n->Copy(selectedRegion.t0(),
|
auto dest = n->Copy(selectedRegion.t0(),
|
||||||
selectedRegion.t1(), false);
|
selectedRegion.t1(), false);
|
||||||
@@ -687,12 +692,14 @@ void OnSplitCut(const CommandContext &context)
|
|||||||
FinishCopy(n, dest, newClipboard);
|
FinishCopy(n, dest, newClipboard);
|
||||||
},
|
},
|
||||||
[&](Track *n) {
|
[&](Track *n) {
|
||||||
dest = n->Copy(selectedRegion.t0(),
|
if (n->SupportsBasicEditing()) {
|
||||||
selectedRegion.t1());
|
dest = n->Copy(selectedRegion.t0(),
|
||||||
n->Silence(selectedRegion.t0(),
|
|
||||||
selectedRegion.t1());
|
selectedRegion.t1());
|
||||||
if (dest)
|
n->Silence(selectedRegion.t0(),
|
||||||
FinishCopy(n, dest, newClipboard);
|
selectedRegion.t1());
|
||||||
|
if (dest)
|
||||||
|
FinishCopy(n, dest, newClipboard);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
@@ -717,8 +724,9 @@ void OnSplitDelete(const CommandContext &context)
|
|||||||
selectedRegion.t1());
|
selectedRegion.t1());
|
||||||
},
|
},
|
||||||
[&](Track *n) {
|
[&](Track *n) {
|
||||||
n->Silence(selectedRegion.t0(),
|
if (n->SupportsBasicEditing())
|
||||||
selectedRegion.t1());
|
n->Silence(selectedRegion.t0(),
|
||||||
|
selectedRegion.t1());
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
@@ -483,7 +483,7 @@ void OnSelectSyncLockSel(const CommandContext &context)
|
|||||||
auto &tracks = TrackList::Get( project );
|
auto &tracks = TrackList::Get( project );
|
||||||
|
|
||||||
bool selected = false;
|
bool selected = false;
|
||||||
for (auto t : tracks.Any()
|
for (auto t : tracks.Any() + &Track::SupportsBasicEditing
|
||||||
+ &Track::IsSyncLockSelected - &Track::IsSelected) {
|
+ &Track::IsSyncLockSelected - &Track::IsSelected) {
|
||||||
t->SetSelected(true);
|
t->SetSelected(true);
|
||||||
selected = true;
|
selected = true;
|
||||||
@@ -866,7 +866,7 @@ void OnCursorTrackStart(const CommandContext &context)
|
|||||||
|
|
||||||
double kWayOverToRight = std::numeric_limits<double>::max();
|
double kWayOverToRight = std::numeric_limits<double>::max();
|
||||||
|
|
||||||
auto trackRange = tracks.Selected();
|
auto trackRange = tracks.Selected() + &Track::SupportsBasicEditing;
|
||||||
if (trackRange.empty())
|
if (trackRange.empty())
|
||||||
// This should have been prevented by command manager
|
// This should have been prevented by command manager
|
||||||
return;
|
return;
|
||||||
@@ -892,7 +892,7 @@ void OnCursorTrackEnd(const CommandContext &context)
|
|||||||
|
|
||||||
double kWayOverToLeft = std::numeric_limits<double>::lowest();
|
double kWayOverToLeft = std::numeric_limits<double>::lowest();
|
||||||
|
|
||||||
auto trackRange = tracks.Selected();
|
auto trackRange = tracks.Selected() + &Track::SupportsBasicEditing;
|
||||||
if (trackRange.empty())
|
if (trackRange.empty())
|
||||||
// This should have been prevented by command manager
|
// This should have been prevented by command manager
|
||||||
return;
|
return;
|
||||||
|
|||||||
Reference in New Issue
Block a user