Diffstat (limited to 'noncore/apps/confedit/listviewitemconffile.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | noncore/apps/confedit/listviewitemconffile.cpp | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/noncore/apps/confedit/listviewitemconffile.cpp b/noncore/apps/confedit/listviewitemconffile.cpp index 1f85095..ce6504c 100644 --- a/noncore/apps/confedit/listviewitemconffile.cpp +++ b/noncore/apps/confedit/listviewitemconffile.cpp @@ -87,28 +87,29 @@ void ListViewItemConfFile::remove() QFile::remove(backupFileName()); delete this; } void ListViewItemConfFile::revert() { - if (_changed) + if (!_changed) { - parseFile(); - }else{ + // read the backup file QFile conf(confFileInfo->absFilePath()); QFile back(backupFileName()); if (!back.open(IO_ReadOnly)) return; if (!conf.open(IO_WriteOnly)) return; #define SIZE 124 char buf[SIZE]; while (int c = back.readBlock(buf, SIZE) ) conf.writeBlock(buf,c); conf.close(); back.close(); } + parseFile(); + expand(); } void ListViewItemConfFile::save() { if (!_changed) return; QFile conf(confFileInfo->absFilePath()); @@ -144,8 +145,16 @@ QString ListViewItemConfFile::backupFileName() return confFileInfo->absFilePath()+"~"; } void ListViewItemConfFile::expand() { + QListViewItem *subItem = firstChild(); + QListViewItem *toDel; + while(subItem) + { + toDel = subItem; + subItem = subItem->nextSibling(); + delete toDel; + } parseFile(); } |