diff options
Diffstat (limited to 'src/app.c')
-rw-r--r-- | src/app.c | 15 |
1 files changed, 13 insertions, 2 deletions
@@ -254,13 +254,24 @@ static iBool loadState_App_(iApp *d) { | |||
254 | return iFalse; | 254 | return iFalse; |
255 | } | 255 | } |
256 | 256 | ||
257 | iObjectList *listDocuments_App(void) { | ||
258 | iObjectList *docs = new_ObjectList(); | ||
259 | const iWidget *tabs = findWidget_App("doctabs"); | ||
260 | iForEach(ObjectList, i, children_Widget(findChild_Widget(tabs, "tabs.pages"))) { | ||
261 | if (isInstance_Object(i.object, &Class_DocumentWidget)) { | ||
262 | pushBack_ObjectList(docs, i.object); | ||
263 | } | ||
264 | } | ||
265 | return docs; | ||
266 | } | ||
267 | |||
257 | static void saveState_App_(const iApp *d) { | 268 | static void saveState_App_(const iApp *d) { |
269 | iUnused(d); | ||
258 | iFile *f = newCStr_File(concatPath_CStr(dataDir_App_, stateFileName_App_)); | 270 | iFile *f = newCStr_File(concatPath_CStr(dataDir_App_, stateFileName_App_)); |
259 | if (open_File(f, writeOnly_FileMode)) { | 271 | if (open_File(f, writeOnly_FileMode)) { |
260 | writeData_File(f, magicState_App_, 4); | 272 | writeData_File(f, magicState_App_, 4); |
261 | write32_File(f, 0); /* version */ | 273 | write32_File(f, 0); /* version */ |
262 | iWidget *tabs = findChild_Widget(d->window->root, "doctabs"); | 274 | iConstForEach(ObjectList, i, iClob(listDocuments_App())) { |
263 | iConstForEach(ObjectList, i, children_Widget(findChild_Widget(tabs, "tabs.pages"))) { | ||
264 | if (isInstance_Object(i.object, &Class_DocumentWidget)) { | 275 | if (isInstance_Object(i.object, &Class_DocumentWidget)) { |
265 | writeData_File(f, magicTabDocument_App_, 4); | 276 | writeData_File(f, magicTabDocument_App_, 4); |
266 | write8_File(f, document_App() == i.object ? 1 : 0); | 277 | write8_File(f, document_App() == i.object ? 1 : 0); |