Closed vlomov closed 5 months ago
You should not call restoreState() multiple times without giving the ui the possibility to update its state. I do not consider this a bug. If you split the update into two separate update actions, it works perfectly:
auto * action = new QAction("Run!!!");
action->connect(action, &QAction::triggered,
[this]() {
DockManager->restoreState(
{ R"(<?xml version="1.0" encoding="UTF-8"?><QtAdvancedDockingSystem Version="1" UserVersion="0" Containers="1" CentralWidget="CentralWidget"><Container Floating="0"><Splitter Orientation="|" Count="2"><Area Tabs="1" Current="Table 1"><Widget Name="Table 1" Closed="0"/></Area><Splitter Orientation="-" Count="1"><Splitter Orientation="|" Count="2"><Area Tabs="1" Current="CentralWidget" AllowedAreas="f" Flags="1"><Widget Name="CentralWidget" Closed="0"/></Area><Area Tabs="1" Current="Properties"><Widget Name="Properties" Closed="0"/></Area><Sizes>734 256 </Sizes></Splitter><Sizes>707 </Sizes></Splitter><Sizes>256 995 </Sizes></Splitter><SideBar Area="1" Tabs="1"><Widget Name="Table 2" Closed="0" Size="100"/></SideBar></Container></QtAdvancedDockingSystem>)"});
//DockManager->restoreState(
//{ R"(<?xml version="1.0" encoding="UTF-8"?><QtAdvancedDockingSystem Version="1" UserVersion="0" Containers="1" CentralWidget="CentralWidget"><Container Floating="0"><Splitter Orientation="|" Count="2"><Area Tabs="1" Current="Table 2"><Widget Name="Table 2" Closed="0"/></Area><Splitter Orientation="-" Count="1"><Splitter Orientation="|" Count="2"><Area Tabs="1" Current="CentralWidget" AllowedAreas="f" Flags="1"><Widget Name="CentralWidget" Closed="0"/></Area><Area Tabs="1" Current="Properties"><Widget Name="Properties" Closed="0"/></Area><Sizes>734 256 </Sizes></Splitter><Sizes>707 </Sizes></Splitter><Sizes>256 995 </Sizes></Splitter><SideBar Area="1" Tabs="1"><Widget Name="Table 1" Closed="0" Size="272"/></SideBar></Container></QtAdvancedDockingSystem>)"});
});
ui->toolBar->addAction(action);
action = new QAction("Run2!!!");
action->connect(action, &QAction::triggered,
[this]() {
//DockManager->restoreState(
//{ R"(<?xml version="1.0" encoding="UTF-8"?><QtAdvancedDockingSystem Version="1" UserVersion="0" Containers="1" CentralWidget="CentralWidget"><Container Floating="0"><Splitter Orientation="|" Count="2"><Area Tabs="1" Current="Table 1"><Widget Name="Table 1" Closed="0"/></Area><Splitter Orientation="-" Count="1"><Splitter Orientation="|" Count="2"><Area Tabs="1" Current="CentralWidget" AllowedAreas="f" Flags="1"><Widget Name="CentralWidget" Closed="0"/></Area><Area Tabs="1" Current="Properties"><Widget Name="Properties" Closed="0"/></Area><Sizes>734 256 </Sizes></Splitter><Sizes>707 </Sizes></Splitter><Sizes>256 995 </Sizes></Splitter><SideBar Area="1" Tabs="1"><Widget Name="Table 2" Closed="0" Size="100"/></SideBar></Container></QtAdvancedDockingSystem>)"});
DockManager->restoreState(
{ R"(<?xml version="1.0" encoding="UTF-8"?><QtAdvancedDockingSystem Version="1" UserVersion="0" Containers="1" CentralWidget="CentralWidget"><Container Floating="0"><Splitter Orientation="|" Count="2"><Area Tabs="1" Current="Table 2"><Widget Name="Table 2" Closed="0"/></Area><Splitter Orientation="-" Count="1"><Splitter Orientation="|" Count="2"><Area Tabs="1" Current="CentralWidget" AllowedAreas="f" Flags="1"><Widget Name="CentralWidget" Closed="0"/></Area><Area Tabs="1" Current="Properties"><Widget Name="Properties" Closed="0"/></Area><Sizes>734 256 </Sizes></Splitter><Sizes>707 </Sizes></Splitter><Sizes>256 995 </Sizes></Splitter><SideBar Area="1" Tabs="1"><Widget Name="Table 1" Closed="0" Size="272"/></SideBar></Container></QtAdvancedDockingSystem>)"});
});
ui->toolBar->addAction(action);
patch.txt try apply this to AutoHideExample mainwindow.cpp, compile and run. Click Run!!! button on toolbar MSVC 19 Qt 6.6.2 Release