// Autosave-Layout-AfterFolderChange // (c) 2023 Ken // This is a script for Directory Opus. // See https://www.gpsoft.com.au/DScripts/redirect.asp?page=scripts for development information. // Called by Directory Opus to initialize the script function OnInit(initData) { initData.name = "Autosave-Layout-AfterFolderChange"; initData.version = "1.2"; initData.copyright = "(c) 2023 Ken"; // initData.url = "https://resource.dopus.com/c/buttons-scripts/16"; initData.desc = "Autosave layout after the folder change, save the second layout after the folder has changed 10 times"; initData.default_enable = true; initData.min_version = "12.0"; } // Called after a new folder is read in a tab function OnAfterFolderChange(afterFolderChangeData) { var cmd = DOpus.Create().Command; if (Script.vars.Exists('folderChangeCount')) { var folderChangeCount = Script.vars.Get('folderChangeCount'); switch (folderChangeCount) { case 10: cmd.RunCommand('Prefs LAYOUTNAME="Autosaved-Layout2" LAYOUTSAVE'); Script.vars.Set('folderChangeCount') = folderChangeCount+1; break case 50: cmd.RunCommand('Prefs LAYOUTNAME="Autosaved-Layout3" LAYOUTSAVE'); Script.vars.Set('folderChangeCount') = 0; break default: cmd.RunCommand('Prefs LAYOUTNAME="Autosaved-Layout" LAYOUTSAVE'); Script.vars.Set('folderChangeCount') = folderChangeCount+1; if (folderChangeCount > 50) Script.vars.Set('folderChangeCount') = 1; } } else Script.vars.Set('folderChangeCount') = 1; }