summaryrefslogtreecommitdiff
path: root/src/app.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/app.c')
-rw-r--r--src/app.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/src/app.c b/src/app.c
index a7aceb19..6b78f2e4 100644
--- a/src/app.c
+++ b/src/app.c
@@ -254,13 +254,24 @@ static iBool loadState_App_(iApp *d) {
254 return iFalse; 254 return iFalse;
255} 255}
256 256
257iObjectList *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
257static void saveState_App_(const iApp *d) { 268static 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);