Diffstat (limited to 'noncore/apps/confedit/listviewitemconffile.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | noncore/apps/confedit/listviewitemconffile.cpp | 30 |
1 files changed, 29 insertions, 1 deletions
diff --git a/noncore/apps/confedit/listviewitemconffile.cpp b/noncore/apps/confedit/listviewitemconffile.cpp index 858726d..b075063 100644 --- a/noncore/apps/confedit/listviewitemconffile.cpp +++ b/noncore/apps/confedit/listviewitemconffile.cpp @@ -74,7 +74,30 @@ void ListViewItemConfFile::parseFile() } confFile.close(); + unchanged(); setExpandable( _valid ); } + +void ListViewItemConfFile::revert() +{ + if (_changed) + { + parseFile(); + }else{ + QString backup = confFileInfo->absFilePath()+"~"; + QFile conf(confFileInfo->absFilePath()); + QFile back(backup); + + 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(); + } +} + void ListViewItemConfFile::save() { @@ -102,5 +125,10 @@ void ListViewItemConfFile::save() } conf.close(); - qDebug("no saveing yet..."); unchanged(); } + + +bool ListViewItemConfFile::revertable() +{ + return _changed || QFile(confFileInfo->absFilePath()+"~").exists(); +}
\ No newline at end of file |