mirror of
https://github.com/cookiengineer/audacity
synced 2025-12-20 15:41:18 +01:00
Bug1424: Better positioned scrubbing tool bar with legacy .cfg file
This commit is contained in:
@@ -835,10 +835,51 @@ void ToolManager::ReadConfig()
|
|||||||
d->LoadConfig();
|
d->LoadConfig();
|
||||||
|
|
||||||
// Add all unordered toolbars
|
// Add all unordered toolbars
|
||||||
|
bool deviceWasPositioned = false;
|
||||||
for( int ord = 0; ord < (int) unordered[ dock ].GetCount(); ord++ )
|
for( int ord = 0; ord < (int) unordered[ dock ].GetCount(); ord++ )
|
||||||
{
|
{
|
||||||
ToolBar *t = mBars[ unordered[ dock ][ ord ] ];
|
ToolBar *t = mBars[ unordered[ dock ][ ord ] ];
|
||||||
|
|
||||||
|
if (deviceWasPositioned &&
|
||||||
|
t->GetType() == DeviceBarID)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if (someFound &&
|
||||||
|
t->GetType() == ScrubbingBarID) {
|
||||||
|
// Special case code to put the NEW scrubbing toolbar where we
|
||||||
|
// want it, when audacity.cfg is present from an older version
|
||||||
|
ToolBar *lastRoot {};
|
||||||
|
|
||||||
|
// Change from the ideal configuration to the constrained one,
|
||||||
|
// just as when dragging and dropping
|
||||||
|
ToolBarConfiguration dummy;
|
||||||
|
mTopDock->WrapConfiguration(dummy);
|
||||||
|
|
||||||
|
// Start a NEW row with just the scrubbing toolbar
|
||||||
|
auto &configuration = mTopDock->GetConfiguration();
|
||||||
|
for (const auto place : configuration)
|
||||||
|
if (place.position.rightOf == nullptr)
|
||||||
|
lastRoot = place.pTree->pBar;
|
||||||
|
ToolBarConfiguration::Position position {
|
||||||
|
nullptr, lastRoot, false
|
||||||
|
};
|
||||||
|
mTopDock->Dock(t, false, position);
|
||||||
|
|
||||||
|
// Reposition the device toolbar, if it was docked above,
|
||||||
|
// right of scrubbing
|
||||||
|
const auto deviceToolBar = mBars[ DeviceBarID ];
|
||||||
|
if (deviceToolBar->GetDock() == mTopDock) {
|
||||||
|
deviceToolBar->GetDock()->Undock(deviceToolBar);
|
||||||
|
position = { t, nullptr };
|
||||||
|
mTopDock->Dock(deviceToolBar, false, position);
|
||||||
|
|
||||||
|
// Remember not to place the device toolbar again
|
||||||
|
deviceWasPositioned = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
// Dock it
|
// Dock it
|
||||||
d->Dock( t, false );
|
d->Dock( t, false );
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user