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.cpp107
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>
8using namespace Opie::Core; 8using 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
42const QString tempFileName = "/tmp/backup.err"; 44const QString tempFileName = "/tmp/backup.err";
43 45
44BackupAndRestore::BackupAndRestore( QWidget* parent, const char* name, WFlags fl) 46BackupAndRestore::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
146void 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
163QList<QListViewItem> BackupAndRestore::getAllItems(QListViewItem *item, QList<QListViewItem> &list) 172QList<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
536void BackupAndRestore::refreshLocations()
537{
538 locationList->clear();
539 //todo: implement add locations
540 odebug << "not implemented yet" << oendl;
541}
542
543void 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
553void BackupAndRestore::removeLocation()
554{
555 if ( locationList->selectedItem() )
556 {
557 delete( locationList->selectedItem() );
558 }
559}
560
561void BackupAndRestore::saveLocation()
562{
563 //todo: implement
564 odebug << "not implemented yet" << oendl;
565}
566
567
527// backuprestore.cpp 568// backuprestore.cpp
528 569