mirror of
https://github.com/cookiengineer/audacity
synced 2025-08-02 17:09:26 +02:00
Double-click on stereo channel separator makes heights equal
This commit is contained in:
parent
45a0ce1819
commit
f1e5e96480
@ -35,7 +35,8 @@ HitTestPreview TrackPanelResizeHandle::HitPreview(bool bLinked)
|
|||||||
// is shorter when it is between stereo tracks).
|
// is shorter when it is between stereo tracks).
|
||||||
|
|
||||||
return {
|
return {
|
||||||
XO("Click and drag to adjust relative size of stereo tracks."),
|
XO(
|
||||||
|
"Click and drag to adjust relative size of stereo tracks, double-click to make heights equal"),
|
||||||
&resizeCursor
|
&resizeCursor
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
@ -51,10 +52,32 @@ TrackPanelResizeHandle::~TrackPanelResizeHandle()
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
UIHandle::Result TrackPanelResizeHandle::Click
|
UIHandle::Result TrackPanelResizeHandle::Click(
|
||||||
(const TrackPanelMouseEvent &WXUNUSED(evt), AudacityProject *WXUNUSED(pProject))
|
const TrackPanelMouseEvent &evt, AudacityProject *pProject )
|
||||||
{
|
{
|
||||||
return RefreshCode::RefreshNone;
|
using namespace RefreshCode;
|
||||||
|
if ( evt.event.LeftDClick() && mMode == IsResizingBetweenLinkedTracks ) {
|
||||||
|
auto &tracks = TrackList::Get( *pProject );
|
||||||
|
auto pTrack = tracks.Lock(mpTrack);
|
||||||
|
if (pTrack &&
|
||||||
|
!TrackView::Get(*pTrack).GetMinimized()) {
|
||||||
|
auto range = TrackList::Channels( pTrack.get() );
|
||||||
|
auto size = range.size();
|
||||||
|
auto height = range.sum( [](const Track *pTrack){
|
||||||
|
return TrackView::Get(*pTrack).GetHeight(); } );
|
||||||
|
int ii = 1;
|
||||||
|
int coord = 0;
|
||||||
|
for ( const auto channel : range ) {
|
||||||
|
int newCoord = ((double)ii++ /size) * height;
|
||||||
|
TrackView::Get(*channel).SetHeight( newCoord - coord );
|
||||||
|
coord = newCoord;
|
||||||
|
}
|
||||||
|
ProjectHistory::Get( *pProject ).ModifyState(false);
|
||||||
|
// Do not start a drag
|
||||||
|
return Cancelled | RefreshAll;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return RefreshNone;
|
||||||
}
|
}
|
||||||
|
|
||||||
TrackPanelResizeHandle::TrackPanelResizeHandle
|
TrackPanelResizeHandle::TrackPanelResizeHandle
|
||||||
|
Loading…
x
Reference in New Issue
Block a user