summaryrefslogtreecommitdiff
authorar <ar>2005-02-18 20:21:32 (UTC)
committer ar <ar>2005-02-18 20:21:32 (UTC)
commitd8254f2f295b07bdadf6b4b25f0bd125d8121c28 (patch) (unidiff)
treebc3edde3980b5c568e630ef4418e7508e3d5d374
parent03da1c30d7d6c7197a551219e3a36c9a3f469cc8 (diff)
downloadopie-d8254f2f295b07bdadf6b4b25f0bd125d8121c28.zip
opie-d8254f2f295b07bdadf6b4b25f0bd125d8121c28.tar.gz
opie-d8254f2f295b07bdadf6b4b25f0bd125d8121c28.tar.bz2
- #1570 - Confirmation needed before restore backup and overwrite local data
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--ChangeLog1
-rw-r--r--noncore/settings/backup/backuprestore.cpp5
2 files changed, 6 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 8ac976d..218aacf 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,147 +1,148 @@
1 2005-??-??Opie 1.2.0 1 2005-??-??Opie 1.2.0
2 2
3 New Features 3 New Features
4 ------------ 4 ------------
5 * Launcher: Support a static background pixmap (mickeyl) 5 * Launcher: Support a static background pixmap (mickeyl)
6 * LauncherSettings: Choose whether to have a static background pixmap (mickeyl) 6 * LauncherSettings: Choose whether to have a static background pixmap (mickeyl)
7 7
8 Fixed Bugs 8 Fixed Bugs
9 ---------- 9 ----------
10 * #1236 - VCards contained empty home and work address entries causing Palms to crash (eilers) 10 * #1236 - VCards contained empty home and work address entries causing Palms to crash (eilers)
11 * #1474 - Implement GUI for Scrollbars on the Left in Appearance (zecke) 11 * #1474 - Implement GUI for Scrollbars on the Left in Appearance (zecke)
12 * #1482 - Fix double '/' in paths (zecke) 12 * #1482 - Fix double '/' in paths (zecke)
13 * #1536 - Autosave of custom locations in opie backup (ar) 13 * #1536 - Autosave of custom locations in opie backup (ar)
14 * #1539 - Fixed displaying too long path in the delete dialog in opie-eye (zecke) 14 * #1539 - Fixed displaying too long path in the delete dialog in opie-eye (zecke)
15 * #1540 - Implemented deletion of DocLnks in opie-eye (zecke) 15 * #1540 - Implemented deletion of DocLnks in opie-eye (zecke)
16 * #1542 - Fix Todo crash when priority < 1 or > 5 (drw) 16 * #1542 - Fix Todo crash when priority < 1 or > 5 (drw)
17 * #1554 - Fixed Opie-Console name in .desktop file (mickeyl) 17 * #1554 - Fixed Opie-Console name in .desktop file (mickeyl)
18 * #1556 - Start to look for sound files in /opt/QtPalmtop/sounds (zecke) 18 * #1556 - Start to look for sound files in /opt/QtPalmtop/sounds (zecke)
19 * #1558 - Fixed opie-login breaking opie startup (mickeyl) 19 * #1558 - Fixed opie-login breaking opie startup (mickeyl)
20 * #1570 - Confirmation needed befor Restore a backup and overwrite local data (ar)
20 * n.a. - PackageManager - fixed where last package in status file was not shown as installed when it should be (drw) 21 * n.a. - PackageManager - fixed where last package in status file was not shown as installed when it should be (drw)
21 22
22 Internal 23 Internal
23 -------- 24 --------
24 * Work around bug in Qt/Embedded 2.3.10: qt_version() returns 231 (mickeyl) 25 * Work around bug in Qt/Embedded 2.3.10: qt_version() returns 231 (mickeyl)
25 * Killed the need for weak symbols in QtE (zecke) 26 * Killed the need for weak symbols in QtE (zecke)
26 27
27 2005-02-03Opie 1.1.9 28 2005-02-03Opie 1.1.9
28 29
29 New Features 30 New Features
30 ------------ 31 ------------
31 * Number of icon columns in Launcher is customizable through Launcher.conf (hrw,zecke,mickeyl) 32 * Number of icon columns in Launcher is customizable through Launcher.conf (hrw,zecke,mickeyl)
32 * Number of icon columns in Launcher is customizable through LauncherSettings (mickeyl) 33 * Number of icon columns in Launcher is customizable through LauncherSettings (mickeyl)
33 * Usability enhancements in OpieIRC (skyhusker) 34 * Usability enhancements in OpieIRC (skyhusker)
34 35
35 Fixed Bugs 36 Fixed Bugs
36 ---------- 37 ----------
37 * #1501 - Fixed bug in todo sql backend (eilers) 38 * #1501 - Fixed bug in todo sql backend (eilers)
38 * #1505 - Added more Swap sizes in memoryapplet (mickeyl) 39 * #1505 - Added more Swap sizes in memoryapplet (mickeyl)
39 * #1525 - Hopefully fixed double alarms and not removing alarms set with the Clock application (zecke) 40 * #1525 - Hopefully fixed double alarms and not removing alarms set with the Clock application (zecke)
40 * #1533 - Security Owner Dialog (shown in case of unsuccessfull authentiacation) wasn't able to display information in non latin1 encoding (zecke) 41 * #1533 - Security Owner Dialog (shown in case of unsuccessfull authentiacation) wasn't able to display information in non latin1 encoding (zecke)
41 * n.a. - Removed hard coded font sizes in a couple of inputmethods (mickeyl) 42 * n.a. - Removed hard coded font sizes in a couple of inputmethods (mickeyl)
42 * n.a. - Removed MediumDlg appearing prior to FirstUsage wizard (i.e. calibration) (mickeyl) 43 * n.a. - Removed MediumDlg appearing prior to FirstUsage wizard (i.e. calibration) (mickeyl)
43 * n.a. - Fixed numerous buglets in OpieIRC (skyhusker) 44 * n.a. - Fixed numerous buglets in OpieIRC (skyhusker)
44 45
45 Internal 46 Internal
46 -------- 47 --------
47 * Added the Qtopia 1.7 SDK macros for quick-apps to easa compilation of 3rd party apps against our headers (mickeyl) 48 * Added the Qtopia 1.7 SDK macros for quick-apps to easa compilation of 3rd party apps against our headers (mickeyl)
48 * You can now use the Opie build system in combination with a OpenEmbedded staging area which makes a nice cross development environment (mickeyl) 49 * You can now use the Opie build system in combination with a OpenEmbedded staging area which makes a nice cross development environment (mickeyl)
49 * Made Opie compilable with Qt/Embedded 2.3.10 (ar) 50 * Made Opie compilable with Qt/Embedded 2.3.10 (ar)
50 * Changed Launcher to get default orientation from ODevice w/ QWS_DISPLAY overriding (mickeyl) 51 * Changed Launcher to get default orientation from ODevice w/ QWS_DISPLAY overriding (mickeyl)
51 * Build tree cleanups (mickeyl) 52 * Build tree cleanups (mickeyl)
52 53
53 2004-11-26Opie 1.1.8 54 2004-11-26Opie 1.1.8
54 55
55 New Features 56 New Features
56 ------------ 57 ------------
57 * PackageManager supports installation of local ipkg files (drw) 58 * PackageManager supports installation of local ipkg files (drw)
58 * PackageManager supports linking of applications to root (drw) 59 * PackageManager supports linking of applications to root (drw)
59 * PackageManager supports src/gz feeds (drw,wimpie) 60 * PackageManager supports src/gz feeds (drw,wimpie)
60 * Added a syslog information tab to sysinfo (mickeyl) 61 * Added a syslog information tab to sysinfo (mickeyl)
61 * Added new, more consistent, PIM icons + a GIMP teplate (ar) 62 * Added new, more consistent, PIM icons + a GIMP teplate (ar)
62 63
63 Fixed Bugs 64 Fixed Bugs
64 ---------- 65 ----------
65 * #1017 - Tetrix doesn't display correctly for high resolution screens (drw) 66 * #1017 - Tetrix doesn't display correctly for high resolution screens (drw)
66 * #1269 - VCards were imported into personal area if it was activated (eilers) 67 * #1269 - VCards were imported into personal area if it was activated (eilers)
67 * #1464 - Packagemanager dont set active filter after install a package (drw) 68 * #1464 - Packagemanager dont set active filter after install a package (drw)
68 * #1479 - Improved VCard-Parser to import VCards created by Evolution 2 and Apple Addressbook (eilers) 69 * #1479 - Improved VCard-Parser to import VCards created by Evolution 2 and Apple Addressbook (eilers)
69 * #1493 - Fixed one column layout bug of the launcher (hrw) 70 * #1493 - Fixed one column layout bug of the launcher (hrw)
70 * n.a. - PackageManager - (Minor UI tweak) in filter dialog, when option is enabled, set focus to widget that corresponds to that option (drw) 71 * n.a. - PackageManager - (Minor UI tweak) in filter dialog, when option is enabled, set focus to widget that corresponds to that option (drw)
71 * n.a. - PackageManager - (Minor UI tweak) fix double entry in source feed configuration when adding a new feed (drw) 72 * n.a. - PackageManager - (Minor UI tweak) fix double entry in source feed configuration when adding a new feed (drw)
72 * n.a. - Battery Applet - fix sizing of battery info popup (drw,mickeyl) 73 * n.a. - Battery Applet - fix sizing of battery info popup (drw,mickeyl)
73 74
74 Internal 75 Internal
75 -------- 76 --------
76 * Moved libopie1 to unsupported (mickeyl) 77 * Moved libopie1 to unsupported (mickeyl)
77 * Implemented generic queryByExample() with incremental searching. A lot of internal changes of the Pim2-library (eilers) 78 * Implemented generic queryByExample() with incremental searching. A lot of internal changes of the Pim2-library (eilers)
78 * Added fast and full featured and incremental sorted() for SQL addressbook backend (eilers) 79 * Added fast and full featured and incremental sorted() for SQL addressbook backend (eilers)
79 80
80 2004-11-14Opie 1.1.7 81 2004-11-14Opie 1.1.7
81 82
82 New Features 83 New Features
83 ------------ 84 ------------
84 * libOpieDB now uses SQLite V3 instead V2. Remember to upgrade your database files! (eilers) 85 * libOpieDB now uses SQLite V3 instead V2. Remember to upgrade your database files! (eilers)
85 * Backup now uses the busy indicator when backing up and restore (ar) 86 * Backup now uses the busy indicator when backing up and restore (ar)
86 * OpiePlayer2 gained adding of Directories to the playlist (zecke) 87 * OpiePlayer2 gained adding of Directories to the playlist (zecke)
87 * OpiePlayer2 better error handling (zecke) 88 * OpiePlayer2 better error handling (zecke)
88 * OpiePlayer2 progress indication while streaming (zecke) 89 * OpiePlayer2 progress indication while streaming (zecke)
89 * OpiePlayer2 ported to use libxine 1.0.0-rc6a (brad,zecke) 90 * OpiePlayer2 ported to use libxine 1.0.0-rc6a (brad,zecke)
90 * Ported brightnessapplet from Qtopia 1.7 (mickeyl) 91 * Ported brightnessapplet from Qtopia 1.7 (mickeyl)
91 * Opie-Eye got a Digital Camera File Backend (alwin,zecke) 92 * Opie-Eye got a Digital Camera File Backend (alwin,zecke)
92 * Support for Tuxpad1 of Tradesquare.NL (mickeyl,zecke) 93 * Support for Tuxpad1 of Tradesquare.NL (mickeyl,zecke)
93 * Opie-Console use Custom Font and Size in a Profile (harlekin) 94 * Opie-Console use Custom Font and Size in a Profile (harlekin)
94 * Opie-Console transparently log the Output and Input to a file (harlekin) 95 * Opie-Console transparently log the Output and Input to a file (harlekin)
95 * Added new O-menu icon to lock the PDA immediately: opie-lockapplet (clem) 96 * Added new O-menu icon to lock the PDA immediately: opie-lockapplet (clem)
96 * Opie-Security now hides the plugin-based authentication tabs if no auth. plugin package is installed (clem) 97 * Opie-Security now hides the plugin-based authentication tabs if no auth. plugin package is installed (clem)
97 * Opie-Security gained a 'test authentication' button (clem) 98 * Opie-Security gained a 'test authentication' button (clem)
98 * Opie-Eye got a more unique layout (menubar), a slideshow, user can setup some defaults 99 * Opie-Eye got a more unique layout (menubar), a slideshow, user can setup some defaults
99 * Opie-Mail improve the handling of POP mail boxes (alwin) 100 * Opie-Mail improve the handling of POP mail boxes (alwin)
100 * Both Opie-Eye and Opie-Mail were greatly improved due the hard work of Rajko Albrecht(alwin) 101 * Both Opie-Eye and Opie-Mail were greatly improved due the hard work of Rajko Albrecht(alwin)
101 * Opie IRC - backports of the 'NeIRC fork' (zecke) 102 * Opie IRC - backports of the 'NeIRC fork' (zecke)
102 103
103 Fixed Bugs 104 Fixed Bugs
104 ---------- 105 ----------
105 * #501 - Pickboard is able to show 'Umlaute' (TT,zecke) 106 * #501 - Pickboard is able to show 'Umlaute' (TT,zecke)
106 * #608 - Make Opie usable for left handed users (zecke) 107 * #608 - Make Opie usable for left handed users (zecke)
107 * #957 - Import of VCards/VTodos/VEvents with BASE64 encoding (ljp,zecke) 108 * #957 - Import of VCards/VTodos/VEvents with BASE64 encoding (ljp,zecke)
108 * #1245 - Opie-Go 'paused' (zecke) 109 * #1245 - Opie-Go 'paused' (zecke)
109 * #1358 - DocTab didn't show any MimeTypes (was fixed earlier) (zecke) 110 * #1358 - DocTab didn't show any MimeTypes (was fixed earlier) (zecke)
110 * #1380 - QDateBookAccess::remove() doesn't remove entries (eilers, zecke) 111 * #1380 - QDateBookAccess::remove() doesn't remove entries (eilers, zecke)
111 * #1395 - Build VNC Backend with gcc3.4 112 * #1395 - Build VNC Backend with gcc3.4
112 * #1440 - The icon of opie-mobilemsg is missing (CoreDump) 113 * #1440 - The icon of opie-mobilemsg is missing (CoreDump)
113 * #1426 - Add missing opie-bartender Icon (CoreDump) 114 * #1426 - Add missing opie-bartender Icon (CoreDump)
114 * #1445 - Opie-Sheet Has No Icon (CoreDump) 115 * #1445 - Opie-Sheet Has No Icon (CoreDump)
115 * #1448 - Brightness Applet added (mickeyl) 116 * #1448 - Brightness Applet added (mickeyl)
116 * #1450 - ZSame didn't clear the bonus item after winning a game (zecke) 117 * #1450 - ZSame didn't clear the bonus item after winning a game (zecke)
117 * #1482 - Fix OFileSelector to be able to sort by size (zecke) 118 * #1482 - Fix OFileSelector to be able to sort by size (zecke)
118 * n.a. - Opie-mail: fixed some crasher, some layout-problems 119 * n.a. - Opie-mail: fixed some crasher, some layout-problems
119 * n.a. - Converted applications to not hardcode /opt/QtPalmtop but to use QPEApplication::qpeDir (zecke) 120 * n.a. - Converted applications to not hardcode /opt/QtPalmtop but to use QPEApplication::qpeDir (zecke)
120 * n.a. - Converted usage of qpeDir() not to include a '/' as first charachter of the string (zecke) 121 * n.a. - Converted usage of qpeDir() not to include a '/' as first charachter of the string (zecke)
121 * n.a. - Build system: Enable distcc and ccache when crosscompiling too, and use them everywhere we can (clem) 122 * n.a. - Build system: Enable distcc and ccache when crosscompiling too, and use them everywhere we can (clem)
122 * n.a. - Build system: Fix deps in several config.in (and fix scripts/deps.pl too) to stop breaking builds, especially with make -j highNumber (clem) 123 * n.a. - Build system: Fix deps in several config.in (and fix scripts/deps.pl too) to stop breaking builds, especially with make -j highNumber (clem)
123 * n.a. - Removed hardcoded icon size in a couple of applets (mickeyl) 124 * n.a. - Removed hardcoded icon size in a couple of applets (mickeyl)
124 125
125 Internal 126 Internal
126 -------- 127 --------
127 * Opie-Qashmoney has been moved to unsupported (mickeyl) 128 * Opie-Qashmoney has been moved to unsupported (mickeyl)
128 * Opie-Ubrowser has been moved to unsupported (mickeyl) 129 * Opie-Ubrowser has been moved to unsupported (mickeyl)
129 130
130 2004-09-17Opie 1.1.6 131 2004-09-17Opie 1.1.6
131 132
132 New Features 133 New Features
133 ------------ 134 ------------
134 * Fifteen gained configurable number of items (zecke) 135 * Fifteen gained configurable number of items (zecke)
135 * Fifteen can have custom background images (zecke) 136 * Fifteen can have custom background images (zecke)
136 * Added daemonizing capabilities to QWS Server [via Qt/Embedded] (mickeyl) 137 * Added daemonizing capabilities to QWS Server [via Qt/Embedded] (mickeyl)
137 * Integrated the new security framework into libopie2 (zecke,clem) 138 * Integrated the new security framework into libopie2 (zecke,clem)
138 * Converted the launcher to use the new security framework (zecke) 139 * Converted the launcher to use the new security framework (zecke)
139 * Backup can now handle custom locations for backup and restore (ar) 140 * Backup can now handle custom locations for backup and restore (ar)
140 * Implemented right-on-hold feedback (wimpie,zecke) 141 * Implemented right-on-hold feedback (wimpie,zecke)
141 * Lots of new features in opie-reader (tim,pohly) 142 * Lots of new features in opie-reader (tim,pohly)
142 * Build system cleanups (schurig) 143 * Build system cleanups (schurig)
143 144
144 Fixed Bugs 145 Fixed Bugs
145 -------- 146 --------
146 * #1005 - Fixed backup to CompactFlash (ar) 147 * #1005 - Fixed backup to CompactFlash (ar)
147 * #1167 - Fixed Opie write crashing on more text than one page (ar) 148 * #1167 - Fixed Opie write crashing on more text than one page (ar)
diff --git a/noncore/settings/backup/backuprestore.cpp b/noncore/settings/backup/backuprestore.cpp
index 8928cda..180980a 100644
--- a/noncore/settings/backup/backuprestore.cpp
+++ b/noncore/settings/backup/backuprestore.cpp
@@ -462,256 +462,261 @@ void BackupAndRestore::backupUserData()
462 pErrDialog->m_textarea->setText( s ); 462 pErrDialog->m_textarea->setText( s );
463 } 463 }
464 else 464 else
465 { 465 {
466 pErrDialog->m_textarea->setText( "Unable to open File: /tmp/backup.er" ); 466 pErrDialog->m_textarea->setText( "Unable to open File: /tmp/backup.er" );
467 } 467 }
468 QPEApplication::execDialog( pErrDialog ); 468 QPEApplication::execDialog( pErrDialog );
469 delete pErrDialog; 469 delete pErrDialog;
470 break; 470 break;
471 } 471 }
472 setCaption(tr("Backup and Restore.. Failed !!")); 472 setCaption(tr("Backup and Restore.. Failed !!"));
473 return; 473 return;
474 } 474 }
475 else 475 else
476 { 476 {
477 QMessageBox::information(this, tr( "Message" ), tr( "Backup Successful." ), QString(tr( "Ok" ) ) ); 477 QMessageBox::information(this, tr( "Message" ), tr( "Backup Successful." ), QString(tr( "Ok" ) ) );
478 } 478 }
479 479
480 //write store-location 480 //write store-location
481 Config config( "BackupAndRestore" ); 481 Config config( "BackupAndRestore" );
482 config.setGroup( "LastLocation" ); 482 config.setGroup( "LastLocation" );
483 config.writeEntry( "LastStoreLocation", storeToLocation->currentText() ); 483 config.writeEntry( "LastStoreLocation", storeToLocation->currentText() );
484 484
485 setCaption(tr("Backup and Restore")); 485 setCaption(tr("Backup and Restore"));
486} 486}
487 487
488/*** 488/***
489 * Get a list of all of the files to backup. 489 * Get a list of all of the files to backup.
490 */ 490 */
491int BackupAndRestore::getBackupFiles(QString &backupFiles, QListViewItem *parent) 491int BackupAndRestore::getBackupFiles(QString &backupFiles, QListViewItem *parent)
492{ 492{
493 QListViewItem * currentItem; 493 QListViewItem * currentItem;
494 QString currentHome; 494 QString currentHome;
495 if(!parent) 495 if(!parent)
496 currentItem = backupList->firstChild(); 496 currentItem = backupList->firstChild();
497 else 497 else
498 { 498 {
499 currentItem = parent->firstChild(); 499 currentItem = parent->firstChild();
500 currentHome = parent->text(BACKUP_LOCATION); 500 currentHome = parent->text(BACKUP_LOCATION);
501 } 501 }
502 502
503 uint count = 0; 503 uint count = 0;
504 while( currentItem != 0 ) 504 while( currentItem != 0 )
505 { 505 {
506 if(currentItem->text(HEADER_BACKUP) == "B" ) 506 if(currentItem->text(HEADER_BACKUP) == "B" )
507 { 507 {
508 if(currentItem->childCount() == 0 ) 508 if(currentItem->childCount() == 0 )
509 { 509 {
510 if(parent == NULL) 510 if(parent == NULL)
511 backupFiles += currentItem->text(BACKUP_LOCATION); 511 backupFiles += currentItem->text(BACKUP_LOCATION);
512 else 512 else
513 backupFiles += currentHome + currentItem->text(HEADER_NAME); 513 backupFiles += currentHome + currentItem->text(HEADER_NAME);
514 backupFiles += " "; 514 backupFiles += " ";
515 count++; 515 count++;
516 } 516 }
517 else 517 else
518 { 518 {
519 count += getBackupFiles(backupFiles, currentItem); 519 count += getBackupFiles(backupFiles, currentItem);
520 } 520 }
521 } 521 }
522 currentItem = currentItem->nextSibling(); 522 currentItem = currentItem->nextSibling();
523 } 523 }
524 return count; 524 return count;
525} 525}
526 526
527void BackupAndRestore::sourceDirChanged(int selection) 527void BackupAndRestore::sourceDirChanged(int selection)
528{ 528{
529 restoreList->clear(); 529 restoreList->clear();
530 rescanFolder(backupLocations[restoreSource->text(selection)]); 530 rescanFolder(backupLocations[restoreSource->text(selection)]);
531} 531}
532 532
533void BackupAndRestore::fileListUpdate() 533void BackupAndRestore::fileListUpdate()
534{ 534{
535 owarn << "void BackupAndRestore::fileListUpdate()" << oendl; 535 owarn << "void BackupAndRestore::fileListUpdate()" << oendl;
536 restoreList->clear(); 536 restoreList->clear();
537 rescanFolder( backupLocations[restoreSource->currentText()] ); 537 rescanFolder( backupLocations[restoreSource->currentText()] );
538} 538}
539 539
540/** 540/**
541 * Scans directory for any backup files. Will recursivly go down, 541 * Scans directory for any backup files. Will recursivly go down,
542 * but will not follow symlinks. 542 * but will not follow symlinks.
543 * @param directory - the directory to look in. 543 * @param directory - the directory to look in.
544 */ 544 */
545void BackupAndRestore::rescanFolder(QString directory) 545void BackupAndRestore::rescanFolder(QString directory)
546{ 546{
547 //odebug << QString("rescanFolder: ") + directory.latin1() << oendl; 547 //odebug << QString("rescanFolder: ") + directory.latin1() << oendl;
548 QDir d(directory); 548 QDir d(directory);
549 if(!d.exists()) 549 if(!d.exists())
550 return; 550 return;
551 551
552 d.setFilter( QDir::Files | QDir::Hidden | QDir::Dirs); 552 d.setFilter( QDir::Files | QDir::Hidden | QDir::Dirs);
553 const QFileInfoList *list = d.entryInfoList(); 553 const QFileInfoList *list = d.entryInfoList();
554 QFileInfoListIterator it( *list ); 554 QFileInfoListIterator it( *list );
555 QFileInfo *file; 555 QFileInfo *file;
556 while ( (file=it.current()) ) 556 while ( (file=it.current()) )
557 { // for each file... 557 { // for each file...
558 // If it is a dir and not .. or . then add it as a tab and go down. 558 // If it is a dir and not .. or . then add it as a tab and go down.
559 if(file->isDir()) 559 if(file->isDir())
560 { 560 {
561 if(file->fileName() != ".." && file->fileName() != ".") 561 if(file->fileName() != ".." && file->fileName() != ".")
562 { 562 {
563 rescanFolder(directory + "/" + file->fileName()); 563 rescanFolder(directory + "/" + file->fileName());
564 } 564 }
565 } 565 }
566 else 566 else
567 { 567 {
568 // If it is a backup file add to list. 568 // If it is a backup file add to list.
569 if(file->fileName().contains(EXTENSION)) 569 if(file->fileName().contains(EXTENSION))
570 (void)new QListViewItem(restoreList, file->fileName()); 570 (void)new QListViewItem(restoreList, file->fileName());
571 } 571 }
572 ++it; 572 ++it;
573 } 573 }
574} 574}
575 575
576/** 576/**
577 * Restore a backup file. 577 * Restore a backup file.
578 * Report errors or success 578 * Report errors or success
579 */ 579 */
580void BackupAndRestore::restore() 580void BackupAndRestore::restore()
581{ 581{
582 QListViewItem *restoreItem = restoreList->currentItem(); 582 QListViewItem *restoreItem = restoreList->currentItem();
583 if(!restoreItem) 583 if(!restoreItem)
584 { 584 {
585 QMessageBox::critical(this, tr( "Message" ), 585 QMessageBox::critical(this, tr( "Message" ),
586 tr( "Please select something to restore." ),QString( tr( "Ok") ) ); 586 tr( "Please select something to restore." ),QString( tr( "Ok") ) );
587 return; 587 return;
588 } 588 }
589 589
590 if ( QMessageBox::warning( this, tr( "Restore" ),
591 tr( "Would you really overwrite your local data?" ),
592 tr( "Yes" ), tr( "No" ), "", 1 ) == 1 )
593 return;
594
590 OWait *owait = new OWait(); 595 OWait *owait = new OWait();
591 Global::statusMessage( tr( "Restore Backup..." ) ); 596 Global::statusMessage( tr( "Restore Backup..." ) );
592 owait->show(); 597 owait->show();
593 qApp->processEvents(); 598 qApp->processEvents();
594 599
595 QString restoreFile = backupLocations[restoreSource->currentText()]; 600 QString restoreFile = backupLocations[restoreSource->currentText()];
596 601
597 restoreFile += "/" + restoreItem->text(0); 602 restoreFile += "/" + restoreItem->text(0);
598 603
599 odebug << restoreFile << oendl; 604 odebug << restoreFile << oendl;
600 605
601 //check if backup file come from opie 1.0.x 606 //check if backup file come from opie 1.0.x
602 607
603 QString commandLine = QString( "tar -tzf %1 | grep Applications/backup/exclude" ).arg( restoreFile.latin1() ); 608 QString commandLine = QString( "tar -tzf %1 | grep Applications/backup/exclude" ).arg( restoreFile.latin1() );
604 609
605 int r = system( commandLine ); 610 int r = system( commandLine );
606 611
607 QString startDir; 612 QString startDir;
608 613
609 if( r != 0 ) //Applications/backup/exclude not found - old backup file 614 if( r != 0 ) //Applications/backup/exclude not found - old backup file
610 { 615 {
611 startDir = QString( "/" ); 616 startDir = QString( "/" );
612 } else 617 } else
613 { 618 {
614 startDir = QDir::homeDirPath(); 619 startDir = QDir::homeDirPath();
615 } 620 }
616 621
617 //unpack backup file 622 //unpack backup file
618 commandLine = QString( "cd %1 && tar -zxf %2 2> %3" ).arg( startDir ) 623 commandLine = QString( "cd %1 && tar -zxf %2 2> %3" ).arg( startDir )
619 .arg( restoreFile.latin1() ) 624 .arg( restoreFile.latin1() )
620 .arg( tempFileName.latin1() ); 625 .arg( tempFileName.latin1() );
621 626
622 odebug << commandLine << oendl; 627 odebug << commandLine << oendl;
623 628
624 r = system( commandLine ); 629 r = system( commandLine );
625 630
626 owait->hide(); 631 owait->hide();
627 delete owait; 632 delete owait;
628 633
629 //error handling 634 //error handling
630 if(r != 0) 635 if(r != 0)
631 { 636 {
632 QString errorMsg= tr( "Error from System:\n" ) + (QString)strerror( errno ); 637 QString errorMsg= tr( "Error from System:\n" ) + (QString)strerror( errno );
633 switch( QMessageBox::critical(this, tr( "Message" ), tr( "Restore Failed." ) + "\n" 638 switch( QMessageBox::critical(this, tr( "Message" ), tr( "Restore Failed." ) + "\n"
634 + errorMsg, QString( tr( "Ok") ), QString( tr( "Details" ) ) ) ) 639 + errorMsg, QString( tr( "Ok") ), QString( tr( "Details" ) ) ) )
635 { 640 {
636 case 1: 641 case 1:
637 owarn << "Details pressed !" << oendl; 642 owarn << "Details pressed !" << oendl;
638 ErrorDialog* pErrDialog = new ErrorDialog( this, NULL, true ); 643 ErrorDialog* pErrDialog = new ErrorDialog( this, NULL, true );
639 QFile errorFile( tempFileName ); 644 QFile errorFile( tempFileName );
640 if ( errorFile.open(IO_ReadOnly) ) 645 if ( errorFile.open(IO_ReadOnly) )
641 { 646 {
642 QTextStream t( &errorFile ); 647 QTextStream t( &errorFile );
643 QString s; 648 QString s;
644 while ( !t.eof() ) 649 while ( !t.eof() )
645 { // until end of file... 650 { // until end of file...
646 s += t.readLine(); // line of text excluding '\n' 651 s += t.readLine(); // line of text excluding '\n'
647 } 652 }
648 errorFile.close(); 653 errorFile.close();
649 654
650 pErrDialog->m_textarea->setText( s ); 655 pErrDialog->m_textarea->setText( s );
651 } 656 }
652 else 657 else
653 { 658 {
654 pErrDialog->m_textarea->setText( tr( "Unable to open File: %1" ).arg( "/tmp/backup.er" ) ); 659 pErrDialog->m_textarea->setText( tr( "Unable to open File: %1" ).arg( "/tmp/backup.er" ) );
655 } 660 }
656 QPEApplication::execDialog( pErrDialog ); 661 QPEApplication::execDialog( pErrDialog );
657 delete pErrDialog; 662 delete pErrDialog;
658 663
659 setCaption(tr("Backup and Restore.. Failed !!")); 664 setCaption(tr("Backup and Restore.. Failed !!"));
660 return; 665 return;
661 666
662 break; 667 break;
663 668
664 } 669 }
665 } 670 }
666 else 671 else
667 { 672 {
668 QMessageBox::information(this, tr( "Message" ), tr( "Restore Successful." ), QString( tr( "Ok") ) ); 673 QMessageBox::information(this, tr( "Message" ), tr( "Restore Successful." ), QString( tr( "Ok") ) );
669 } 674 }
670 675
671 //write restore-location 676 //write restore-location
672 Config config( "BackupAndRestore" ); 677 Config config( "BackupAndRestore" );
673 config.setGroup( "LastLocation" ); 678 config.setGroup( "LastLocation" );
674 config.writeEntry( "LastRestoreLocation", restoreSource->currentText() ); 679 config.writeEntry( "LastRestoreLocation", restoreSource->currentText() );
675 680
676 setCaption(tr("Backup and Restore")); 681 setCaption(tr("Backup and Restore"));
677} 682}
678 683
679/** 684/**
680 * Check for exclude in Applications/backup 685 * Check for exclude in Applications/backup
681 * If it does not exist, the function will create the file with *.bck as content 686 * If it does not exist, the function will create the file with *.bck as content
682 * The exclude_files is read by tar and will provide to exclude special files out from backup. 687 * The exclude_files is read by tar and will provide to exclude special files out from backup.
683 * e.g. alle *.bck files (backup-files) will not be backed up by default 688 * e.g. alle *.bck files (backup-files) will not be backed up by default
684 */ 689 */
685 690
686QString BackupAndRestore::getExcludeFile() 691QString BackupAndRestore::getExcludeFile()
687{ 692{
688 QString excludeFileName = Global::applicationFileName( "backup", "exclude" ); 693 QString excludeFileName = Global::applicationFileName( "backup", "exclude" );
689 if ( !QFile::exists( excludeFileName ) ) 694 if ( !QFile::exists( excludeFileName ) )
690 { 695 {
691 QFile excludeFile( excludeFileName); 696 QFile excludeFile( excludeFileName);
692 if ( excludeFile.open( IO_WriteOnly ) == true ) 697 if ( excludeFile.open( IO_WriteOnly ) == true )
693 { 698 {
694 QTextStream writeStream( &excludeFile ); 699 QTextStream writeStream( &excludeFile );
695 writeStream << "*.bck" << "\n"; 700 writeStream << "*.bck" << "\n";
696 excludeFile.close(); 701 excludeFile.close();
697 } 702 }
698 else 703 else
699 { 704 {
700 return QString::null; 705 return QString::null;
701 } 706 }
702 } 707 }
703 708
704 return excludeFileName; 709 return excludeFileName;
705} 710}
706 711
707void BackupAndRestore::refreshLocations() 712void BackupAndRestore::refreshLocations()
708{ 713{
709 locationList->clear(); 714 locationList->clear();
710 715
711 //todo: implement add locations 716 //todo: implement add locations
712 Config config( "BackupAndRestore" ); 717 Config config( "BackupAndRestore" );
713 config.setGroup( "Locations" ); 718 config.setGroup( "Locations" );
714 719
715 QStringList locations( config.readListEntry( "locations", '|' ) ); 720 QStringList locations( config.readListEntry( "locations", '|' ) );
716 721
717 for ( QStringList::Iterator it = locations.begin(); it != locations.end(); ++it ) { 722 for ( QStringList::Iterator it = locations.begin(); it != locations.end(); ++it ) {