author | tille <tille> | 2002-07-08 14:12:26 (UTC) |
---|---|---|
committer | tille <tille> | 2002-07-08 14:12:26 (UTC) |
commit | c92049007eaf6615a059425073b03a827d11831e (patch) (side-by-side diff) | |
tree | 6d4d0b05a597d46eb6969cd728174fa6345a1099 /noncore/apps/confedit/listviewitemconffile.cpp | |
parent | 0d6ff4c6b10524943b43240489182138694f2759 (diff) | |
download | opie-c92049007eaf6615a059425073b03a827d11831e.zip opie-c92049007eaf6615a059425073b03a827d11831e.tar.gz opie-c92049007eaf6615a059425073b03a827d11831e.tar.bz2 |
parse files when needed
an other oipkg test ;)
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 @@ -69,83 +69,92 @@ void ListViewItemConfFile::parseFile() } else if ( int pos = s.find('=') ) { // qDebug("got key"+s); if (!groupItem) qDebug("PANIK NO GROUP! >%s<",group.latin1()); item = new ListViewItemConfigEntry(this, group, s ); groupItem->insertItem( item ); } } confFile.close(); setExpandable( _valid ); // qDebug("ListViewItemConfFile::parseFile END"); } void ListViewItemConfFile::remove() { QFile::remove(confFileInfo->absFilePath()); 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()); QFile back(backupFileName()); if (!conf.open(IO_ReadOnly)) return; if (!back.open(IO_WriteOnly)) return; char buf[SIZE]; while (int c = conf.readBlock(buf, SIZE) ) back.writeBlock(buf,c); conf.close(); back.close(); if (!conf.open(IO_WriteOnly)) return; QTextStream *t = new QTextStream( &conf ); for (QListViewItem *it = firstChild(); it!=0;it = it->nextSibling()) { ((ListViewItemConfigEntry*)it)->save(t); } conf.close(); unchanged(); } bool ListViewItemConfFile::revertable() { return _changed || QFile(backupFileName()).exists(); } QString ListViewItemConfFile::backupFileName() { return confFileInfo->absFilePath()+"~"; } void ListViewItemConfFile::expand() { + QListViewItem *subItem = firstChild(); + QListViewItem *toDel; + while(subItem) + { + toDel = subItem; + subItem = subItem->nextSibling(); + delete toDel; + } parseFile(); } |