-rw-r--r-- | noncore/settings/backup/backuprestore.cpp | 84 | ||||
-rw-r--r-- | noncore/settings/backup/backuprestore.h | 4 |
2 files changed, 56 insertions, 32 deletions
diff --git a/noncore/settings/backup/backuprestore.cpp b/noncore/settings/backup/backuprestore.cpp index 3889744..478b22f 100644 --- a/noncore/settings/backup/backuprestore.cpp +++ b/noncore/settings/backup/backuprestore.cpp | |||
@@ -22,16 +22,17 @@ using namespace Opie::Core; | |||
22 | #include <qheader.h> | 22 | #include <qheader.h> |
23 | #include <qmessagebox.h> | 23 | #include <qmessagebox.h> |
24 | #include <qcombobox.h> | 24 | #include <qcombobox.h> |
25 | #include <qlist.h> | 25 | #include <qlist.h> |
26 | #include <qregexp.h> | 26 | #include <qregexp.h> |
27 | #include <qtextstream.h> | 27 | #include <qtextstream.h> |
28 | #include <qtextview.h> | 28 | #include <qtextview.h> |
29 | #include <qlineedit.h> | 29 | #include <qlineedit.h> |
30 | #include <qstringlist.h> | ||
30 | 31 | ||
31 | /* STD */ | 32 | /* STD */ |
32 | #include <errno.h> | 33 | #include <errno.h> |
33 | #include <stdlib.h> | 34 | #include <stdlib.h> |
34 | #include <unistd.h> | 35 | #include <unistd.h> |
35 | #include <sys/stat.h> | 36 | #include <sys/stat.h> |
36 | #include <dirent.h> | 37 | #include <dirent.h> |
37 | 38 | ||
@@ -61,43 +62,23 @@ BackupAndRestore::BackupAndRestore( QWidget* parent, const char* name, WFlags f | |||
61 | applicationSettings = new QListViewItem(backupList, "Application Settings", "", "Settings/"); | 62 | applicationSettings = new QListViewItem(backupList, "Application Settings", "", "Settings/"); |
62 | selectItem(applicationSettings); | 63 | selectItem(applicationSettings); |
63 | applicationSettings = new QListViewItem(backupList, "Application Data", "", "Applications/"); | 64 | applicationSettings = new QListViewItem(backupList, "Application Data", "", "Applications/"); |
64 | selectItem(applicationSettings); | 65 | selectItem(applicationSettings); |
65 | documents= new QListViewItem(backupList, "Documents", "", "Documents/"); | 66 | documents= new QListViewItem(backupList, "Documents", "", "Documents/"); |
66 | selectItem(documents); | 67 | selectItem(documents); |
67 | 68 | ||
68 | scanForApplicationSettings(); | 69 | scanForApplicationSettings(); |
69 | refreshBackupLocations(); | ||
70 | refreshLocations(); | 70 | refreshLocations(); |
71 | 71 | refreshBackupLocations(); | |
72 | Config config("BackupAndRestore"); | ||
73 | //read last locations | ||
74 | config.setGroup("LastLocation"); | ||
75 | QString lastStoreLocation = config.readEntry( "LastStoreLocation", "" ); | ||
76 | QString lastRestoreLocation = config.readEntry( "LastRestoreLocation", "" ); | ||
77 | int locationIndex = 0; | ||
78 | |||
79 | QMap<QString, QString>::Iterator it; | ||
80 | for( it = backupLocations.begin(); it != backupLocations.end(); ++it ) | ||
81 | { | ||
82 | storeToLocation->insertItem(it.key()); | ||
83 | restoreSource->insertItem(it.key()); | ||
84 | |||
85 | //check for last locations | ||
86 | if ( it.key() == lastStoreLocation ) | ||
87 | storeToLocation->setCurrentItem( locationIndex ); | ||
88 | if ( it.key() == lastRestoreLocation ) | ||
89 | restoreSource->setCurrentItem( locationIndex ); | ||
90 | locationIndex++; | ||
91 | } | ||
92 | 72 | ||
93 | // Read the list of items to ignore. | 73 | // Read the list of items to ignore. |
94 | QList<QString> dontBackupList; | 74 | QList<QString> dontBackupList; |
95 | dontBackupList.setAutoDelete(true); | 75 | dontBackupList.setAutoDelete(true); |
76 | Config config("BackupAndRestore"); | ||
96 | config.setGroup("DontBackup"); | 77 | config.setGroup("DontBackup"); |
97 | int total = config.readNumEntry("Total", 0); | 78 | int total = config.readNumEntry("Total", 0); |
98 | for(int i = 0; i < total; i++) | 79 | for(int i = 0; i < total; i++) |
99 | { | 80 | { |
100 | dontBackupList.append(new QString(config.readEntry(QString("%1").arg(i), ""))); | 81 | dontBackupList.append(new QString(config.readEntry(QString("%1").arg(i), ""))); |
101 | } | 82 | } |
102 | 83 | ||
103 | QList<QListViewItem> list; | 84 | QList<QListViewItem> list; |
@@ -160,18 +141,46 @@ void BackupAndRestore::refreshBackupLocations() | |||
160 | odebug << " Sd Path: " + storage.sdPath() << oendl; | 141 | odebug << " Sd Path: " + storage.sdPath() << oendl; |
161 | } | 142 | } |
162 | if ( storage.hasMmc() ) | 143 | if ( storage.hasMmc() ) |
163 | { | 144 | { |
164 | backupLocations.insert( "MMC", storage.mmcPath() ); | 145 | backupLocations.insert( "MMC", storage.mmcPath() ); |
165 | odebug << "Mmc Path: " + storage.mmcPath() << oendl; | 146 | odebug << "Mmc Path: " + storage.mmcPath() << oendl; |
166 | } | 147 | } |
167 | 148 | ||
168 | // Add own locations from locationList | 149 | for ( QListViewItemIterator it( locationList ); it.current(); ++it ) |
169 | // todo implementation | 150 | { |
151 | backupLocations.insert( it.current()->text( 0 ), it.current()->text( 0 ) ); | ||
152 | } | ||
153 | |||
154 | //update QComboBox | ||
155 | storeToLocation->clear(); | ||
156 | restoreSource->clear(); | ||
157 | |||
158 | //read last locations | ||
159 | Config config("BackupAndRestore"); | ||
160 | config.setGroup("LastLocation"); | ||
161 | QString lastStoreLocation = config.readEntry( "LastStoreLocation", "" ); | ||
162 | QString lastRestoreLocation = config.readEntry( "LastRestoreLocation", "" ); | ||
163 | int locationIndex = 0; | ||
164 | |||
165 | //fill QComboBox | ||
166 | QMap<QString, QString>::Iterator it; | ||
167 | for( it = backupLocations.begin(); it != backupLocations.end(); ++it ) | ||
168 | { | ||
169 | storeToLocation->insertItem(it.key()); | ||
170 | restoreSource->insertItem(it.key()); | ||
171 | |||
172 | //check for last locations | ||
173 | if ( it.key() == lastStoreLocation ) | ||
174 | storeToLocation->setCurrentItem( locationIndex ); | ||
175 | if ( it.key() == lastRestoreLocation ) | ||
176 | restoreSource->setCurrentItem( locationIndex ); | ||
177 | locationIndex++; | ||
178 | } | ||
170 | } | 179 | } |
171 | 180 | ||
172 | QList<QListViewItem> BackupAndRestore::getAllItems(QListViewItem *item, QList<QListViewItem> &list) | 181 | QList<QListViewItem> BackupAndRestore::getAllItems(QListViewItem *item, QList<QListViewItem> &list) |
173 | { | 182 | { |
174 | while(item) | 183 | while(item) |
175 | { | 184 | { |
176 | if(item->childCount() > 0) | 185 | if(item->childCount() > 0) |
177 | getAllItems(item->firstChild(), list); | 186 | getAllItems(item->firstChild(), list); |
@@ -305,17 +314,16 @@ void BackupAndRestore::backup() | |||
305 | break; | 314 | break; |
306 | } | 315 | } |
307 | setCaption(tr("Backup and Restore.. Failed !!")); | 316 | setCaption(tr("Backup and Restore.. Failed !!")); |
308 | return; | 317 | return; |
309 | } | 318 | } |
310 | else | 319 | else |
311 | { | 320 | { |
312 | QMessageBox::information(this, tr( "Message" ), tr( "Backup Successful." ), QString(tr( "Ok" ) ) ); | 321 | QMessageBox::information(this, tr( "Message" ), tr( "Backup Successful." ), QString(tr( "Ok" ) ) ); |
313 | |||
314 | } | 322 | } |
315 | 323 | ||
316 | //write store-location | 324 | //write store-location |
317 | Config config( "BackupAndRestore" ); | 325 | Config config( "BackupAndRestore" ); |
318 | config.setGroup( "LastLocation" ); | 326 | config.setGroup( "LastLocation" ); |
319 | config.writeEntry( "LastStoreLocation", storeToLocation->currentText() ); | 327 | config.writeEntry( "LastStoreLocation", storeToLocation->currentText() ); |
320 | 328 | ||
321 | setCaption(tr("Backup and Restore")); | 329 | setCaption(tr("Backup and Restore")); |
@@ -531,18 +539,26 @@ QString BackupAndRestore::getExcludeFile() | |||
531 | } | 539 | } |
532 | 540 | ||
533 | return excludeFileName; | 541 | return excludeFileName; |
534 | } | 542 | } |
535 | 543 | ||
536 | void BackupAndRestore::refreshLocations() | 544 | void BackupAndRestore::refreshLocations() |
537 | { | 545 | { |
538 | locationList->clear(); | 546 | locationList->clear(); |
547 | |||
539 | //todo: implement add locations | 548 | //todo: implement add locations |
540 | odebug << "not implemented yet" << oendl; | 549 | Config config( "BackupAndRestore" ); |
550 | config.setGroup( "Locations" ); | ||
551 | |||
552 | QStringList locations( config.readListEntry( "locations", '|' ) ); | ||
553 | |||
554 | for ( QStringList::Iterator it = locations.begin(); it != locations.end(); ++it ) { | ||
555 | (void) new QListViewItem( locationList, *it ); | ||
556 | } | ||
541 | } | 557 | } |
542 | 558 | ||
543 | void BackupAndRestore::addLocation() | 559 | void BackupAndRestore::addLocation() |
544 | { | 560 | { |
545 | if ( ( !locationEdit->text().isEmpty() ) && | 561 | if ( ( !locationEdit->text().isEmpty() ) && |
546 | ( QDir( locationEdit->text() ).exists() ) ) | 562 | ( QDir( locationEdit->text() ).exists() ) ) |
547 | { | 563 | { |
548 | (void) new QListViewItem( locationList, locationEdit->text() ); | 564 | (void) new QListViewItem( locationList, locationEdit->text() ); |
@@ -553,17 +569,25 @@ void BackupAndRestore::addLocation() | |||
553 | void BackupAndRestore::removeLocation() | 569 | void BackupAndRestore::removeLocation() |
554 | { | 570 | { |
555 | if ( locationList->selectedItem() ) | 571 | if ( locationList->selectedItem() ) |
556 | { | 572 | { |
557 | delete( locationList->selectedItem() ); | 573 | delete( locationList->selectedItem() ); |
558 | } | 574 | } |
559 | } | 575 | } |
560 | 576 | ||
561 | void BackupAndRestore::saveLocation() | 577 | void BackupAndRestore::saveLocations() |
562 | { | 578 | { |
563 | //todo: implement | 579 | Config config("BackupAndRestore"); |
564 | odebug << "not implemented yet" << oendl; | 580 | config.setGroup("Locations"); |
565 | } | ||
566 | 581 | ||
582 | QStringList locations; | ||
583 | for ( QListViewItemIterator it( locationList ); it.current(); ++it ) | ||
584 | { | ||
585 | locations.append( it.current()->text( 0 ) ); | ||
586 | } | ||
587 | config.writeEntry( "locations", locations, '|' ); | ||
588 | |||
589 | refreshBackupLocations(); | ||
590 | } | ||
567 | 591 | ||
568 | // backuprestore.cpp | 592 | // backuprestore.cpp |
569 | 593 | ||
diff --git a/noncore/settings/backup/backuprestore.h b/noncore/settings/backup/backuprestore.h index 527b3cf..caf6243 100644 --- a/noncore/settings/backup/backuprestore.h +++ b/noncore/settings/backup/backuprestore.h | |||
@@ -2,16 +2,17 @@ | |||
2 | #define WINDOW_H | 2 | #define WINDOW_H |
3 | 3 | ||
4 | #include <qmainwindow.h> | 4 | #include <qmainwindow.h> |
5 | #include "backuprestorebase.h" | 5 | #include "backuprestorebase.h" |
6 | #include <qmap.h> | 6 | #include <qmap.h> |
7 | #include <qlist.h> | 7 | #include <qlist.h> |
8 | 8 | ||
9 | class QListViewItem; | 9 | class QListViewItem; |
10 | class QStringList; | ||
10 | 11 | ||
11 | class BackupAndRestore : public BackupAndRestoreBase | 12 | class BackupAndRestore : public BackupAndRestoreBase |
12 | { | 13 | { |
13 | 14 | ||
14 | Q_OBJECT | 15 | Q_OBJECT |
15 | 16 | ||
16 | public: | 17 | public: |
17 | 18 | ||
@@ -25,29 +26,28 @@ private slots: | |||
25 | void restore(); | 26 | void restore(); |
26 | void selectItem(QListViewItem *currentItem); | 27 | void selectItem(QListViewItem *currentItem); |
27 | void sourceDirChanged(int); | 28 | void sourceDirChanged(int); |
28 | void rescanFolder(QString directory); | 29 | void rescanFolder(QString directory); |
29 | void fileListUpdate(); | 30 | void fileListUpdate(); |
30 | 31 | ||
31 | void addLocation(); | 32 | void addLocation(); |
32 | void removeLocation(); | 33 | void removeLocation(); |
33 | void saveLocation(); | 34 | void saveLocations(); |
34 | 35 | ||
35 | private: | 36 | private: |
36 | void scanForApplicationSettings(); | 37 | void scanForApplicationSettings(); |
37 | int getBackupFiles(QString &backupFiles, QListViewItem *parent); | 38 | int getBackupFiles(QString &backupFiles, QListViewItem *parent); |
38 | QString getExcludeFile(); | 39 | QString getExcludeFile(); |
39 | QMap<QString, QString> backupLocations; | 40 | QMap<QString, QString> backupLocations; |
40 | QList<QListViewItem> getAllItems(QListViewItem *item, QList<QListViewItem> &list); | 41 | QList<QListViewItem> getAllItems(QListViewItem *item, QList<QListViewItem> &list); |
41 | void refreshBackupLocations(); | 42 | void refreshBackupLocations(); |
42 | void refreshLocations(); | 43 | void refreshLocations(); |
43 | 44 | ||
44 | QListViewItem *systemSettings; | 45 | QListViewItem *systemSettings; |
45 | QListViewItem *applicationSettings; | 46 | QListViewItem *applicationSettings; |
46 | QListViewItem *documents; | 47 | QListViewItem *documents; |
47 | |||
48 | }; | 48 | }; |
49 | 49 | ||
50 | #endif | 50 | #endif |
51 | 51 | ||
52 | // backuprestore.h | 52 | // backuprestore.h |
53 | 53 | ||