After some more investigation into the issue with tabs being lost on restarts I've found 1 relatively reliable way to reproduce 1 bug of "Empty tab"s (but not another one of restoring a totally different layout from the latest one):
- Open many tabs (save them in a tab group)
- (confirm that DOpus remembers them by closing and reopening a Lister)
- Exit DOpus
- Open DOpus and immediately click to Exit it from the tray icon (so normal close, not crashing the process or anything)
- re-open DOpus and see that some tabs are "Empty tabs"
(restore tabs)
Checking the AppData\Local\GPSoftware\Directory Opus\State Data\openlisters.oll
file I see the empty tabs are saved on "fast exit"
<tabs1 active="0">
<tab />
<tab />
<tab />
<tab />
<tab />
<tab />
<tab />
<tab />
<tab />
<tab />
<tab />
<tab />
<tab />
<tab />
<tab />
<tab />
<tab />
<tab />
<tab />
<tab />
Or sometimes these keys don't even get created (think if I manage to close fast enough?), so instead of
<initial_layout>esExplorer</initial_layout>
<tabs1 active="8">
<tab />
...(~20 empty tabs)...
</tabs1>
<tabgroup1>x</tabgroup1>
...↑ this is the correct name of my backup tab group I used in step 1....
<vars>
I get
<initial_layout>esExplorer</initial_layout>
<vars>
(by the way, if DOpus correctly identifies the tab group, can it use said tab group to restore instead of me doing it manually?)
I thought it might be due to this file being big ~9k lines due to an extension saving all undo tabs as lister vars. But then I've deleted all the vars, disabled all the extensions (the file is a few hundred lines now with a dozen lines / tab), and the issue remains - quickly closing DOpus writes empty tabs.
So this is some bug in the saving step - instead of overwriting the good state with the failed one DOpus should do an atomic save and only remove the old openlisters
file data if the new one is successully saved
So it seems that DOpus can't save this data properly on exit, and that explains why on various windows update reboots that force-close apps it's lost, but if you close a Lister and reopen it, it's fine.
I've also noticed that some tabs have their folder layouts reset to "factory default" when I restore from a saved tab group (not in this testing), but that might have been just a result of "partial save" on exit so not the whole tab is lost, but just its layout?
This is using the latest Directory Opus 13.13.7
- tried with
Update default listed
on an off, no effect - tried with all MSDefender options turned off (real-time protection etc), no effect
- tried with an empty config (removing both local and roaming appdata dirs for Opus), same thing