Diffstat (limited to 'noncore/settings/backup/backuprestore.cpp') (more/less context) (show whitespace changes)
-rw-r--r-- | noncore/settings/backup/backuprestore.cpp | 107 |
1 files changed, 74 insertions, 33 deletions
diff --git a/noncore/settings/backup/backuprestore.cpp b/noncore/settings/backup/backuprestore.cpp index 2eccdfe..3889744 100644 --- a/noncore/settings/backup/backuprestore.cpp +++ b/noncore/settings/backup/backuprestore.cpp | |||
@@ -1,99 +1,82 @@ | |||
1 | #include "backuprestore.h" | 1 | #include "backuprestore.h" |
2 | #include "errordialog.h" | 2 | #include "errordialog.h" |
3 | 3 | ||
4 | |||
4 | /* OPIE */ | 5 | /* OPIE */ |
5 | #include <opie2/odebug.h> | 6 | #include <opie2/odebug.h> |
6 | #include <opie2/ostorageinfo.h> | 7 | #include <opie2/ostorageinfo.h> |
7 | #include <qpe/qpeapplication.h> | ||
8 | using namespace Opie::Core; | 8 | using namespace Opie::Core; |
9 | 9 | ||
10 | #include <qpe/qpeapplication.h> | ||
11 | #include <qpe/resource.h> | ||
12 | #include <qpe/config.h> | ||
13 | |||
10 | /* QT */ | 14 | /* QT */ |
11 | #include <qapplication.h> | 15 | #include <qapplication.h> |
12 | #include <qmultilineedit.h> | 16 | #include <qmultilineedit.h> |
13 | #include <qdir.h> | 17 | #include <qdir.h> |
14 | #include <qfile.h> | 18 | #include <qfile.h> |
15 | #include <qfileinfo.h> | 19 | #include <qfileinfo.h> |
16 | #include <qlistview.h> | 20 | #include <qlistview.h> |
17 | #include <qpushbutton.h> | 21 | #include <qpushbutton.h> |
18 | #include <qheader.h> | 22 | #include <qheader.h> |
19 | #include <qpe/resource.h> | ||
20 | #include <qpe/config.h> | ||
21 | #include <qmessagebox.h> | 23 | #include <qmessagebox.h> |
22 | #include <qcombobox.h> | 24 | #include <qcombobox.h> |
23 | #include <qlist.h> | 25 | #include <qlist.h> |
24 | #include <stdlib.h> | ||
25 | #include <qregexp.h> | 26 | #include <qregexp.h> |
26 | #include <qtextstream.h> | 27 | #include <qtextstream.h> |
27 | #include <qtextview.h> | 28 | #include <qtextview.h> |
29 | #include <qlineedit.h> | ||
28 | 30 | ||
29 | /* STD */ | 31 | /* STD */ |
30 | #include <errno.h> | 32 | #include <errno.h> |
31 | #include <stdlib.h> | 33 | #include <stdlib.h> |
32 | #include <unistd.h> | 34 | #include <unistd.h> |
33 | #include <sys/stat.h> | 35 | #include <sys/stat.h> |
34 | #include <dirent.h> | 36 | #include <dirent.h> |
35 | 37 | ||
36 | #define HEADER_NAME 0 | 38 | #define HEADER_NAME 0 |
37 | #define HEADER_BACKUP 1 | 39 | #define HEADER_BACKUP 1 |
38 | #define BACKUP_LOCATION 2 | 40 | #define BACKUP_LOCATION 2 |
39 | 41 | ||
40 | #define EXTENSION ".bck" | 42 | #define EXTENSION ".bck" |
41 | 43 | ||
42 | const QString tempFileName = "/tmp/backup.err"; | 44 | const QString tempFileName = "/tmp/backup.err"; |
43 | 45 | ||
44 | BackupAndRestore::BackupAndRestore( QWidget* parent, const char* name, WFlags fl) | 46 | BackupAndRestore::BackupAndRestore( QWidget* parent, const char* name, WFlags fl) |
45 | : BackupAndRestoreBase(parent, name, fl) | 47 | : BackupAndRestoreBase(parent, name, fl) |
46 | { | 48 | { |
47 | backupList->header()->hide(); | 49 | backupList->header()->hide(); |
48 | restoreList->header()->hide(); | 50 | restoreList->header()->hide(); |
49 | connect(backupButton, SIGNAL(clicked()), | 51 | locationList->header()->hide(); |
50 | this, SLOT(backup())); | 52 | connect( backupButton, SIGNAL( clicked() ), this, SLOT( backup() ) ); |
51 | connect(restoreButton, SIGNAL(clicked()), | 53 | connect( restoreButton, SIGNAL( clicked() ), this, SLOT( restore() ) ); |
52 | this, SLOT(restore())); | 54 | connect( backupList, SIGNAL( clicked( QListViewItem* ) ), this, SLOT( selectItem( QListViewItem* ) ) ); |
53 | connect(backupList, SIGNAL(clicked(QListViewItem*)), | 55 | connect( restoreSource, SIGNAL( activated( int ) ), this, SLOT( sourceDirChanged( int ) ) ); |
54 | this, SLOT(selectItem(QListViewItem*))); | 56 | connect( addLocationButton, SIGNAL( clicked() ), this, SLOT( addLocation() ) ); |
55 | connect(restoreSource, SIGNAL(activated(int)), | 57 | connect( removeLocationButton, SIGNAL( clicked() ), this, SLOT( removeLocation() ) ); |
56 | this, SLOT(sourceDirChanged(int))); | 58 | connect( saveLocationsButton, SIGNAL( clicked() ), this, SLOT( saveLocations() ) ); |
57 | connect(updateList, SIGNAL(clicked()), | ||
58 | this, SLOT( fileListUpdate())); | ||
59 | 59 | ||
60 | //add directorys for backing up | 60 | //add directorys for backing up |
61 | applicationSettings = new QListViewItem(backupList, "Application Settings", "", "Settings/"); | 61 | applicationSettings = new QListViewItem(backupList, "Application Settings", "", "Settings/"); |
62 | selectItem(applicationSettings); | 62 | selectItem(applicationSettings); |
63 | applicationSettings = new QListViewItem(backupList, "Application Data", "", "Applications/"); | 63 | applicationSettings = new QListViewItem(backupList, "Application Data", "", "Applications/"); |
64 | selectItem(applicationSettings); | 64 | selectItem(applicationSettings); |
65 | documents= new QListViewItem(backupList, "Documents", "", "Documents/"); | 65 | documents= new QListViewItem(backupList, "Documents", "", "Documents/"); |
66 | selectItem(documents); | 66 | selectItem(documents); |
67 | 67 | ||
68 | scanForApplicationSettings(); | 68 | scanForApplicationSettings(); |
69 | 69 | refreshBackupLocations(); | |
70 | Opie::Core::OStorageInfo storage; | 70 | refreshLocations(); |
71 | |||
72 | backupLocations.insert( "Documents", QDir::homeDirPath() + "/Documents" ); | ||
73 | if ( storage.hasCf() ) | ||
74 | { | ||
75 | backupLocations.insert( "CF", storage.cfPath() ); | ||
76 | odebug << "Cf Path: " + storage.cfPath() << oendl; | ||
77 | } | ||
78 | if ( storage.hasSd() ) | ||
79 | { | ||
80 | backupLocations.insert( "SD", storage.sdPath() ); | ||
81 | odebug << " Sd Path: " + storage.sdPath() << oendl; | ||
82 | } | ||
83 | if ( storage.hasMmc() ) | ||
84 | { | ||
85 | backupLocations.insert( "MMC", storage.mmcPath() ); | ||
86 | odebug << "Mmc Path: " + storage.mmcPath() << oendl; | ||
87 | } | ||
88 | 71 | ||
89 | Config config("BackupAndRestore"); | 72 | Config config("BackupAndRestore"); |
90 | //read last locations | 73 | //read last locations |
91 | config.setGroup("LastLocation"); | 74 | config.setGroup("LastLocation"); |
92 | QString lastStoreLocation = config.readEntry( "LastStoreLocation", "" ); | 75 | QString lastStoreLocation = config.readEntry( "LastStoreLocation", "" ); |
93 | QString lastRestoreLocation = config.readEntry( "LastRestoreLocation", "" ); | 76 | QString lastRestoreLocation = config.readEntry( "LastRestoreLocation", "" ); |
94 | int locationIndex = 0; | 77 | int locationIndex = 0; |
95 | 78 | ||
96 | QMap<QString, QString>::Iterator it; | 79 | QMap<QString, QString>::Iterator it; |
97 | for( it = backupLocations.begin(); it != backupLocations.end(); ++it ) | 80 | for( it = backupLocations.begin(); it != backupLocations.end(); ++it ) |
98 | { | 81 | { |
99 | storeToLocation->insertItem(it.key()); | 82 | storeToLocation->insertItem(it.key()); |
@@ -151,24 +134,50 @@ BackupAndRestore::~BackupAndRestore() | |||
151 | { | 134 | { |
152 | config.writeEntry(QString("%1").arg(count), list.at(i)->text(HEADER_NAME)); | 135 | config.writeEntry(QString("%1").arg(count), list.at(i)->text(HEADER_NAME)); |
153 | count++; | 136 | count++; |
154 | } | 137 | } |
155 | } | 138 | } |
156 | config.writeEntry("Total", count); | 139 | config.writeEntry("Total", count); |
157 | 140 | ||
158 | // Remove Temp File | 141 | // Remove Temp File |
159 | if ( QFile::exists( tempFileName ) ) | 142 | if ( QFile::exists( tempFileName ) ) |
160 | QFile::remove( tempFileName ); | 143 | QFile::remove( tempFileName ); |
161 | } | 144 | } |
162 | 145 | ||
146 | void BackupAndRestore::refreshBackupLocations() | ||
147 | { | ||
148 | backupLocations.clear(); | ||
149 | // Add cards | ||
150 | Opie::Core::OStorageInfo storage; | ||
151 | backupLocations.insert( "Documents", QDir::homeDirPath() + "/Documents" ); | ||
152 | if ( storage.hasCf() ) | ||
153 | { | ||
154 | backupLocations.insert( "CF", storage.cfPath() ); | ||
155 | odebug << "Cf Path: " + storage.cfPath() << oendl; | ||
156 | } | ||
157 | if ( storage.hasSd() ) | ||
158 | { | ||
159 | backupLocations.insert( "SD", storage.sdPath() ); | ||
160 | odebug << " Sd Path: " + storage.sdPath() << oendl; | ||
161 | } | ||
162 | if ( storage.hasMmc() ) | ||
163 | { | ||
164 | backupLocations.insert( "MMC", storage.mmcPath() ); | ||
165 | odebug << "Mmc Path: " + storage.mmcPath() << oendl; | ||
166 | } | ||
167 | |||
168 | // Add own locations from locationList | ||
169 | // todo implementation | ||
170 | } | ||
171 | |||
163 | QList<QListViewItem> BackupAndRestore::getAllItems(QListViewItem *item, QList<QListViewItem> &list) | 172 | QList<QListViewItem> BackupAndRestore::getAllItems(QListViewItem *item, QList<QListViewItem> &list) |
164 | { | 173 | { |
165 | while(item) | 174 | while(item) |
166 | { | 175 | { |
167 | if(item->childCount() > 0) | 176 | if(item->childCount() > 0) |
168 | getAllItems(item->firstChild(), list); | 177 | getAllItems(item->firstChild(), list); |
169 | list.append(item); | 178 | list.append(item); |
170 | item = item->nextSibling(); | 179 | item = item->nextSibling(); |
171 | } | 180 | } |
172 | return list; | 181 | return list; |
173 | } | 182 | } |
174 | 183 | ||
@@ -515,14 +524,46 @@ QString BackupAndRestore::getExcludeFile() | |||
515 | writeStream << "*.bck" << "\n"; | 524 | writeStream << "*.bck" << "\n"; |
516 | excludeFile.close(); | 525 | excludeFile.close(); |
517 | } | 526 | } |
518 | else | 527 | else |
519 | { | 528 | { |
520 | return QString::null; | 529 | return QString::null; |
521 | } | 530 | } |
522 | } | 531 | } |
523 | 532 | ||
524 | return excludeFileName; | 533 | return excludeFileName; |
525 | } | 534 | } |
526 | 535 | ||
536 | void BackupAndRestore::refreshLocations() | ||
537 | { | ||
538 | locationList->clear(); | ||
539 | //todo: implement add locations | ||
540 | odebug << "not implemented yet" << oendl; | ||
541 | } | ||
542 | |||
543 | void BackupAndRestore::addLocation() | ||
544 | { | ||
545 | if ( ( !locationEdit->text().isEmpty() ) && | ||
546 | ( QDir( locationEdit->text() ).exists() ) ) | ||
547 | { | ||
548 | (void) new QListViewItem( locationList, locationEdit->text() ); | ||
549 | locationEdit->setText( "" ); | ||
550 | } | ||
551 | } | ||
552 | |||
553 | void BackupAndRestore::removeLocation() | ||
554 | { | ||
555 | if ( locationList->selectedItem() ) | ||
556 | { | ||
557 | delete( locationList->selectedItem() ); | ||
558 | } | ||
559 | } | ||
560 | |||
561 | void BackupAndRestore::saveLocation() | ||
562 | { | ||
563 | //todo: implement | ||
564 | odebug << "not implemented yet" << oendl; | ||
565 | } | ||
566 | |||
567 | |||
527 | // backuprestore.cpp | 568 | // backuprestore.cpp |
528 | 569 | ||