summaryrefslogtreecommitdiff
path: root/noncore/apps/confedit/listviewitemconffile.cpp
authortille <tille>2002-07-08 14:12:26 (UTC)
committer tille <tille>2002-07-08 14:12:26 (UTC)
commitc92049007eaf6615a059425073b03a827d11831e (patch) (side-by-side diff)
tree6d4d0b05a597d46eb6969cd728174fa6345a1099 /noncore/apps/confedit/listviewitemconffile.cpp
parent0d6ff4c6b10524943b43240489182138694f2759 (diff)
downloadopie-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.cpp15
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();
}