summaryrefslogtreecommitdiff
path: root/noncore/settings/backup/backuprestore.cpp
Unidiff
Diffstat (limited to 'noncore/settings/backup/backuprestore.cpp') (more/less context) (show whitespace changes)
-rw-r--r--noncore/settings/backup/backuprestore.cpp44
1 files changed, 29 insertions, 15 deletions
diff --git a/noncore/settings/backup/backuprestore.cpp b/noncore/settings/backup/backuprestore.cpp
index 5776f3c..fb892d9 100644
--- a/noncore/settings/backup/backuprestore.cpp
+++ b/noncore/settings/backup/backuprestore.cpp
@@ -16,42 +16,52 @@
16#define HEADER_NAME 0 16#define HEADER_NAME 0
17#define HEADER_BACKUP 1 17#define HEADER_BACKUP 1
18#define BACKUP_LOCATION 2 18#define BACKUP_LOCATION 2
19 19
20#define EXTENSION ".bck" 20#define EXTENSION ".bck"
21 21
22BackupAndRestore::BackupAndRestore( QWidget* parent, const char* name) : BackupAndRestoreBase(parent, name){ 22BackupAndRestore::BackupAndRestore( QWidget* parent, const char* name)
23 : BackupAndRestoreBase(parent, name){
23 this->showMaximized(); 24 this->showMaximized();
24 backupList->header()->hide(); 25 backupList->header()->hide();
25 restoreList->header()->hide(); 26 restoreList->header()->hide();
26 connect(backupButton, SIGNAL(clicked()), this, SLOT(backupPressed())); 27 connect(backupButton, SIGNAL(clicked()),
27 connect(restoreButton, SIGNAL(clicked()), this, SLOT(restore())); 28 this, SLOT(backupPressed()));
28 connect(backupList, SIGNAL(clicked( QListViewItem * )), this, SLOT(selectItem(QListViewItem*))); 29 connect(restoreButton, SIGNAL(clicked()),
29 connect(restoreSource, SIGNAL(activated( int )), this, SLOT(sourceDirChanged(int))); 30 this, SLOT(restore()));
30 31 connect(backupList, SIGNAL(clicked( QListViewItem * )),
31 systemSettings = new QListViewItem(backupList, "System Settings", "", "/home/etc"); 32 this, SLOT(selectItem(QListViewItem*)));
33 connect(restoreSource, SIGNAL(activated( int )),
34 this, SLOT(sourceDirChanged(int)));
35
36 systemSettings = new QListViewItem(backupList, "System Settings", "",
37 "/etc");
32 selectItem(systemSettings); 38 selectItem(systemSettings);
33 applicationSettings = new QListViewItem(backupList, "Application Settings", "", QDir::homeDirPath() + "/Settings/"); 39 applicationSettings = new QListViewItem(backupList, "Application Settings", "",
40 QDir::homeDirPath() + "/Settings/");
34 selectItem(applicationSettings); 41 selectItem(applicationSettings);
35 documents= new QListViewItem(backupList, "Documents", "", QDir::homeDirPath() + "/Documents/"); 42 documents= new QListViewItem(backupList, "Documents", "",
43 QDir::homeDirPath() + "/Documents/");
36 selectItem(documents); 44 selectItem(documents);
37 45
38 scanForApplicationSettings(); 46 scanForApplicationSettings();
39 47
40 Config config("BackupAndRestore"); 48 Config config("BackupAndRestore");
41 config.setGroup("General"); 49 config.setGroup("General");
42 int totalLocations = config.readNumEntry("totalLocations",0); 50 int totalLocations = config.readNumEntry("totalLocations",0);
43 51
52//todo make less static here and use Storage class to get infos
44 if(totalLocations == 0){ 53 if(totalLocations == 0){
45 backupLocations.insert("Documents", "/home/root/Documents"); 54 backupLocations.insert("Documents", "/root/Documents");
46 backupLocations.insert("CF", "/mnt/cf"); 55 backupLocations.insert("CF", "/mnt/cf");
47 backupLocations.insert("SD", "/mnt/card"); 56 backupLocations.insert("SD", "/mnt/card");
48 } 57 }
49 else{ 58 else{
50 for(int i = 0; i < totalLocations; i++){ 59 for(int i = 0; i < totalLocations; i++){
51 backupLocations.insert(config.readEntry(QString("backupLocationName_%1").arg(i)), config.readEntry(QString("backupLocation_%1").arg(i))); 60 backupLocations.insert(config.readEntry(QString("backupLocationName_%1").arg(i)),
61 config.readEntry(QString("backupLocation_%1").arg(i)));
52 } 62 }
53 } 63 }
54 QMap<QString, QString>::Iterator it; 64 QMap<QString, QString>::Iterator it;
55 for( it = backupLocations.begin(); it != backupLocations.end(); ++it ){ 65 for( it = backupLocations.begin(); it != backupLocations.end(); ++it ){
56 storeToLocation->insertItem(it.key()); 66 storeToLocation->insertItem(it.key());
57 restoreSource->insertItem(it.key()); 67 restoreSource->insertItem(it.key());
@@ -147,13 +157,14 @@ void BackupAndRestore::scanForApplicationSettings(){
147 * Determine the file name to store the backup in. Backup the file(s) using 157 * Determine the file name to store the backup in. Backup the file(s) using
148 * tar and gzip --best. Report failure or success 158 * tar and gzip --best. Report failure or success
149 */ 159 */
150void BackupAndRestore::backupPressed(){ 160void BackupAndRestore::backupPressed(){
151 QString backupFiles; 161 QString backupFiles;
152 if(getBackupFiles(backupFiles, NULL) == 0){ 162 if(getBackupFiles(backupFiles, NULL) == 0){
153 QMessageBox::critical(this, "Message", "No items selected.",QString("Ok") ); 163 QMessageBox::critical(this, "Message",
164 "No items selected.",QString("Ok") );
154 return; 165 return;
155 } 166 }
156 167
157 QString outputFile = backupLocations[storeToLocation->currentText()]; 168 QString outputFile = backupLocations[storeToLocation->currentText()];
158 169
159 QDateTime time = QDateTime::currentDateTime(); 170 QDateTime time = QDateTime::currentDateTime();
@@ -251,24 +262,27 @@ void BackupAndRestore::rescanFolder(QString directory){
251 * Restore a backup file. 262 * Restore a backup file.
252 * Report errors or success 263 * Report errors or success
253 */ 264 */
254void BackupAndRestore::restore(){ 265void BackupAndRestore::restore(){
255 QListViewItem *restoreItem = restoreList->currentItem(); 266 QListViewItem *restoreItem = restoreList->currentItem();
256 if(!restoreItem){ 267 if(!restoreItem){
257 QMessageBox::critical(this, "Message", "Please select something to restore.",QString("Ok") ); 268 QMessageBox::critical(this, "Message",
269 "Please select something to restore.",QString("Ok") );
258 return; 270 return;
259 } 271 }
260 QString restoreFile = backupLocations[restoreSource->currentText()]; 272 QString restoreFile = backupLocations[restoreSource->currentText()];
261 273
262 restoreFile += "/" + restoreItem->text(0); 274 restoreFile += "/" + restoreItem->text(0);
263 275
264 int r = system(QString("tar -C / -zxf %1").arg(restoreFile).latin1()); 276 int r = system(QString("tar -C / -zxf %1").arg(restoreFile).latin1());
265 if(r != 0){ 277 if(r != 0){
266 QMessageBox::critical(this, "Message", "Restore Failed.",QString("Ok") ); 278 QMessageBox::critical(this, "Message",
279 "Restore Failed.",QString("Ok") );
267 } 280 }
268 else{ 281 else{
269 QMessageBox::critical(this, "Message", "Restore Successfull.",QString("Ok") ); 282 QMessageBox::critical(this, "Message",
283 "Restore Successfull.",QString("Ok") );
270 } 284 }
271} 285}
272 286
273// backuprestore.cpp 287// backuprestore.cpp
274 288