summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--libopie2/opiecore/ostorageinfo.cpp8
-rw-r--r--libopie2/opiecore/ostorageinfo.h6
-rw-r--r--noncore/settings/backup/backuprestore.cpp12
3 files changed, 12 insertions, 14 deletions
diff --git a/libopie2/opiecore/ostorageinfo.cpp b/libopie2/opiecore/ostorageinfo.cpp
index cf9dc6c..6712282 100644
--- a/libopie2/opiecore/ostorageinfo.cpp
+++ b/libopie2/opiecore/ostorageinfo.cpp
@@ -1,94 +1,92 @@
1/* 1/*
2                 This file is part of the Opie Project 2                 This file is part of the Opie Project
3              Copyright (C) 2004 Andreas 'ar' Richter <ar@oszine.de> 3              Copyright (C) 2004 Andreas 'ar' Richter <ar@oszine.de>
4 =. 4 =.
5 .=l. 5 .=l.
6           .>+-= 6           .>+-=
7 _;:,     .>    :=|. This program is free software; you can 7 _;:,     .>    :=|. This program is free software; you can
8.> <`_,   >  .   <= redistribute it and/or modify it under 8.> <`_,   >  .   <= redistribute it and/or modify it under
9:`=1 )Y*s>-.--   : the terms of the GNU Library General Public 9:`=1 )Y*s>-.--   : the terms of the GNU Library General Public
10.="- .-=="i,     .._ License as published by the Free Software 10.="- .-=="i,     .._ License as published by the Free Software
11 - .   .-<_>     .<> Foundation; either version 2 of the License, 11 - .   .-<_>     .<> Foundation; either version 2 of the License,
12     ._= =}       : or (at your option) any later version. 12     ._= =}       : or (at your option) any later version.
13    .%`+i>       _;_. 13    .%`+i>       _;_.
14    .i_,=:_.      -<s. This program is distributed in the hope that 14    .i_,=:_.      -<s. This program is distributed in the hope that
15     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY; 15     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY;
16    : ..    .:,     . . . without even the implied warranty of 16    : ..    .:,     . . . without even the implied warranty of
17    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A 17    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A
18  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU 18  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU
19..}^=.=       =       ; Library General Public License for more 19..}^=.=       =       ; Library General Public License for more
20++=   -.     .`     .: details. 20++=   -.     .`     .: details.
21 :     =  ...= . :.=- 21 :     =  ...= . :.=-
22 -.   .:....=;==+<; You should have received a copy of the GNU 22 -.   .:....=;==+<; You should have received a copy of the GNU
23  -_. . .   )=.  = Library General Public License along with 23  -_. . .   )=.  = Library General Public License along with
24    --        :-=` this library; see the file COPYING.LIB. 24    --        :-=` this library; see the file COPYING.LIB.
25 If not, write to the Free Software Foundation, 25 If not, write to the Free Software Foundation,
26 Inc., 59 Temple Place - Suite 330, 26 Inc., 59 Temple Place - Suite 330,
27 Boston, MA 02111-1307, USA. 27 Boston, MA 02111-1307, USA.
28*/ 28*/
29 29
30#include <opie2/ostorage.h> 30#include <opie2/ostorage.h>
31 31
32OStorageInfo::OStorageInfo( QObject *parent ) 32OStorageInfo::OStorageInfo( QObject *parent )
33 : StorageInfo( parent ) 33 : StorageInfo( parent )
34{ 34{
35} 35}
36 36
37OStorageInfo::~OStorageInfo() 37OStorageInfo::~OStorageInfo()
38{ 38{
39} 39}
40 40
41QString OStorageInfo::getCfPath() 41QString OStorageInfo::cfPath()const
42{ 42{
43 QString r = ""; 43 QString r = "";
44 44
45 for (QListIterator<FileSystem> i( fileSystems() ); i.current(); ++i) 45 for (QListIterator<FileSystem> i( fileSystems() ); i.current(); ++i)
46 { 46 {
47 if ( (*i)->disk().left( 8 ) == "/dev/hda" ) 47 if ( (*i)->disk().left( 8 ) == "/dev/hda" )
48 { 48 {
49 r = (*i)->path(); 49 r = (*i)->path();
50 break; 50 break;
51 } 51 }
52 } 52 }
53 return r; 53 return r;
54} 54}
55 55
56/*! 56/*!
57* @fn QString StorageInfo::getSdPath()
58* @brief returns the Mount-Path of Sd Card 57* @brief returns the Mount-Path of Sd Card
59* 58*
60*/ 59*/
61QString OStorageInfo::getSdPath() 60QString OStorageInfo::sdPath()const
62{ 61{
63 QString r = ""; 62 QString r = "";
64 63
65 for (QListIterator<FileSystem> i( fileSystems() ); i.current(); ++i) 64 for (QListIterator<FileSystem> i( fileSystems() ); i.current(); ++i)
66 { 65 {
67 if ( (*i)->disk().left( 9 ) == "/dev/mmcd" ) 66 if ( (*i)->disk().left( 9 ) == "/dev/mmcd" )
68 { 67 {
69 r = (*i)->path(); 68 r = (*i)->path();
70 break; 69 break;
71 } 70 }
72 } 71 }
73 return r; 72 return r;
74} 73}
75 74
76/*! 75/*!
77* @fn QString StorageInfo::getMmcPath()
78* @brief returns the Mount-Path of Mmc Card 76* @brief returns the Mount-Path of Mmc Card
79* 77*
80*/ 78*/
81QString OStorageInfo::getMmcPath() 79QString OStorageInfo::mmcPath()const
82{ 80{
83 QString r = ""; 81 QString r = "";
84 82
85 for (QListIterator<FileSystem> i( fileSystems() ); i.current(); ++i) 83 for (QListIterator<FileSystem> i( fileSystems() ); i.current(); ++i)
86 { 84 {
87 if ( (*i)->disk().left( 14 ) == "/dev/mmc/part1" ) 85 if ( (*i)->disk().left( 14 ) == "/dev/mmc/part1" )
88 { 86 {
89 r = (*i)->path(); 87 r = (*i)->path();
90 break; 88 break;
91 } 89 }
92 } 90 }
93 return r; 91 return r;
94} 92}
diff --git a/libopie2/opiecore/ostorageinfo.h b/libopie2/opiecore/ostorageinfo.h
index ba87ff4..9b61a2e 100644
--- a/libopie2/opiecore/ostorageinfo.h
+++ b/libopie2/opiecore/ostorageinfo.h
@@ -1,49 +1,49 @@
1/* 1/*
2                 This file is part of the Opie Project 2                 This file is part of the Opie Project
3              Copyright (C) 2004 Andreas 'ar' Richter <ar@oszine.de> 3              Copyright (C) 2004 Andreas 'ar' Richter <ar@oszine.de>
4 =. 4 =.
5 .=l. 5 .=l.
6           .>+-= 6           .>+-=
7 _;:,     .>    :=|. This program is free software; you can 7 _;:,     .>    :=|. This program is free software; you can
8.> <`_,   >  .   <= redistribute it and/or modify it under 8.> <`_,   >  .   <= redistribute it and/or modify it under
9:`=1 )Y*s>-.--   : the terms of the GNU Library General Public 9:`=1 )Y*s>-.--   : the terms of the GNU Library General Public
10.="- .-=="i,     .._ License as published by the Free Software 10.="- .-=="i,     .._ License as published by the Free Software
11 - .   .-<_>     .<> Foundation; either version 2 of the License, 11 - .   .-<_>     .<> Foundation; either version 2 of the License,
12     ._= =}       : or (at your option) any later version. 12     ._= =}       : or (at your option) any later version.
13    .%`+i>       _;_. 13    .%`+i>       _;_.
14    .i_,=:_.      -<s. This program is distributed in the hope that 14    .i_,=:_.      -<s. This program is distributed in the hope that
15     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY; 15     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY;
16    : ..    .:,     . . . without even the implied warranty of 16    : ..    .:,     . . . without even the implied warranty of
17    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A 17    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A
18  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU 18  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU
19..}^=.=       =       ; Library General Public License for more 19..}^=.=       =       ; Library General Public License for more
20++=   -.     .`     .: details. 20++=   -.     .`     .: details.
21 :     =  ...= . :.=- 21 :     =  ...= . :.=-
22 -.   .:....=;==+<; You should have received a copy of the GNU 22 -.   .:....=;==+<; You should have received a copy of the GNU
23  -_. . .   )=.  = Library General Public License along with 23  -_. . .   )=.  = Library General Public License along with
24    --        :-=` this library; see the file COPYING.LIB. 24    --        :-=` this library; see the file COPYING.LIB.
25 If not, write to the Free Software Foundation, 25 If not, write to the Free Software Foundation,
26 Inc., 59 Temple Place - Suite 330, 26 Inc., 59 Temple Place - Suite 330,
27 Boston, MA 02111-1307, USA. 27 Boston, MA 02111-1307, USA.
28*/ 28*/
29 29
30#ifndef OSTORAGE_H 30#ifndef OSTORAGE_H
31#define OSTORAGE_H 31#define OSTORAGE_H
32 32
33#include <qpe/storage.h> 33#include <qpe/storage.h>
34 34
35class OStorageInfo : public StorageInfo 35class OStorageInfo : public StorageInfo
36{ 36{
37 Q_OBJECT 37 Q_OBJECT
38 38
39 public: 39 public:
40public: 40public:
41 OStorageInfo( QObject *parent=0 ); 41 OStorageInfo( QObject *parent=0 );
42 ~OStorageInfo(); 42 ~OStorageInfo();
43 43
44 QString getCfPath(); 44 QString cfPath()const;
45 QString getSdPath(); 45 QString sdPath()const;
46 QString getMmcPath(); 46 QString mmcPath()const;
47}; 47};
48 48
49#endif // OSTORAGE_H 49#endif // OSTORAGE_H
diff --git a/noncore/settings/backup/backuprestore.cpp b/noncore/settings/backup/backuprestore.cpp
index eb69a70..2d79384 100644
--- a/noncore/settings/backup/backuprestore.cpp
+++ b/noncore/settings/backup/backuprestore.cpp
@@ -1,276 +1,276 @@
1 1
2#include "backuprestore.h" 2#include "backuprestore.h"
3//#include "output.h" 3//#include "output.h"
4#include "errordialog.h" 4#include "errordialog.h"
5 5
6#include <qapplication.h> 6#include <qapplication.h>
7#include <qmultilineedit.h> 7#include <qmultilineedit.h>
8 8
9#include <qdir.h> 9#include <qdir.h>
10#include <qfile.h> 10#include <qfile.h>
11#include <qfileinfo.h> 11#include <qfileinfo.h>
12#include <qlistview.h> 12#include <qlistview.h>
13#include <qpushbutton.h> 13#include <qpushbutton.h>
14#include <qheader.h> 14#include <qheader.h>
15#include <qpe/resource.h> 15#include <qpe/resource.h>
16#include <qpe/config.h> 16#include <qpe/config.h>
17#include <qmessagebox.h> 17#include <qmessagebox.h>
18#include <qcombobox.h> 18#include <qcombobox.h>
19#include <qlist.h> 19#include <qlist.h>
20#include <stdlib.h> 20#include <stdlib.h>
21#include <qregexp.h> 21#include <qregexp.h>
22#include <qtextstream.h> 22#include <qtextstream.h>
23#include <qtextview.h> 23#include <qtextview.h>
24#include <opie2/ostorage.h> 24#include <opie2/ostorage.h>
25 25
26#include <errno.h> 26#include <errno.h>
27#include <stdlib.h> 27#include <stdlib.h>
28#include <unistd.h> 28#include <unistd.h>
29#include <sys/stat.h> 29#include <sys/stat.h>
30#include <dirent.h> 30#include <dirent.h>
31 31
32#define HEADER_NAME 0 32#define HEADER_NAME 0
33#define HEADER_BACKUP 1 33#define HEADER_BACKUP 1
34#define BACKUP_LOCATION 2 34#define BACKUP_LOCATION 2
35 35
36#define EXTENSION ".bck" 36#define EXTENSION ".bck"
37 37
38const QString tempFileName = "/tmp/backup.err"; 38const QString tempFileName = "/tmp/backup.err";
39 39
40 40
41BackupAndRestore::BackupAndRestore( QWidget* parent, const char* name, WFlags fl) 41BackupAndRestore::BackupAndRestore( QWidget* parent, const char* name, WFlags fl)
42 : BackupAndRestoreBase(parent, name, fl) 42 : BackupAndRestoreBase(parent, name, fl)
43{ 43{
44 this->showMaximized(); 44 this->showMaximized();
45 backupList->header()->hide(); 45 backupList->header()->hide();
46 restoreList->header()->hide(); 46 restoreList->header()->hide();
47 connect(backupButton, SIGNAL(clicked()), 47 connect(backupButton, SIGNAL(clicked()),
48 this, SLOT(backup())); 48 this, SLOT(backup()));
49 connect(restoreButton, SIGNAL(clicked()), 49 connect(restoreButton, SIGNAL(clicked()),
50 this, SLOT(restore())); 50 this, SLOT(restore()));
51 connect(backupList, SIGNAL(clicked( QListViewItem * )), 51 connect(backupList, SIGNAL(clicked( QListViewItem * )),
52 this, SLOT(selectItem(QListViewItem*))); 52 this, SLOT(selectItem(QListViewItem*)));
53 connect(restoreSource, SIGNAL(activated( int )), 53 connect(restoreSource, SIGNAL(activated( int )),
54 this, SLOT(sourceDirChanged(int))); 54 this, SLOT(sourceDirChanged(int)));
55 connect(updateList, SIGNAL(clicked()), 55 connect(updateList, SIGNAL(clicked()),
56 this, SLOT( fileListUpdate())); 56 this, SLOT( fileListUpdate()));
57 57
58 //add directorys for backing up 58 //add directorys for backing up
59 applicationSettings = new QListViewItem(backupList, "Application Settings", "", "Settings/"); 59 applicationSettings = new QListViewItem(backupList, "Application Settings", "", "Settings/");
60 selectItem(applicationSettings); 60 selectItem(applicationSettings);
61 applicationSettings = new QListViewItem(backupList, "Application Data", "", "Applications/"); 61 applicationSettings = new QListViewItem(backupList, "Application Data", "", "Applications/");
62 selectItem(applicationSettings); 62 selectItem(applicationSettings);
63 documents= new QListViewItem(backupList, "Documents", "", "Documents/"); 63 documents= new QListViewItem(backupList, "Documents", "", "Documents/");
64 selectItem(documents); 64 selectItem(documents);
65 65
66 scanForApplicationSettings(); 66 scanForApplicationSettings();
67 67
68 OStorageInfo storage; 68 OStorageInfo storage;
69 69
70 backupLocations.insert( "Documents", QDir::homeDirPath() + "/Documents" ); 70 backupLocations.insert( "Documents", QDir::homeDirPath() + "/Documents" );
71 if ( storage.hasCf() ) 71 if ( storage.hasCf() )
72 { 72 {
73 backupLocations.insert( "CF", storage.getCfPath() ); 73 backupLocations.insert( "CF", storage.cfPath() );
74 qDebug( "Cf Path: " + storage.getCfPath() ); 74 qDebug( "Cf Path: " + storage.cfPath() );
75 } 75 }
76 if ( storage.hasSd() ) 76 if ( storage.hasSd() )
77 { 77 {
78 backupLocations.insert( "SD", storage.getSdPath() ); 78 backupLocations.insert( "SD", storage.sdPath() );
79 qDebug( " Sd Path: " + storage.getSdPath() ); 79 qDebug( " Sd Path: " + storage.sdPath() );
80 } 80 }
81 if ( storage.hasMmc() ) 81 if ( storage.hasMmc() )
82 { 82 {
83 backupLocations.insert( "MMC", storage.getMmcPath() ); 83 backupLocations.insert( "MMC", storage.mmcPath() );
84 qDebug( "Mmc Path: " + storage.getMmcPath() ); 84 qDebug( "Mmc Path: " + storage.mmcPath() );
85 } 85 }
86 86
87 Config config("BackupAndRestore"); 87 Config config("BackupAndRestore");
88 //read last locations 88 //read last locations
89 config.setGroup("LastLocation"); 89 config.setGroup("LastLocation");
90 QString lastStoreLocation = config.readEntry( "LastStoreLocation", "" ); 90 QString lastStoreLocation = config.readEntry( "LastStoreLocation", "" );
91 QString lastRestoreLocation = config.readEntry( "LastRestoreLocation", "" ); 91 QString lastRestoreLocation = config.readEntry( "LastRestoreLocation", "" );
92 int locationIndex = 0; 92 int locationIndex = 0;
93 93
94 QMap<QString, QString>::Iterator it; 94 QMap<QString, QString>::Iterator it;
95 for( it = backupLocations.begin(); it != backupLocations.end(); ++it ) 95 for( it = backupLocations.begin(); it != backupLocations.end(); ++it )
96 { 96 {
97 storeToLocation->insertItem(it.key()); 97 storeToLocation->insertItem(it.key());
98 restoreSource->insertItem(it.key()); 98 restoreSource->insertItem(it.key());
99 99
100 //check for last locations 100 //check for last locations
101 if ( it.key() == lastStoreLocation ) 101 if ( it.key() == lastStoreLocation )
102 storeToLocation->setCurrentItem( locationIndex ); 102 storeToLocation->setCurrentItem( locationIndex );
103 if ( it.key() == lastRestoreLocation ) 103 if ( it.key() == lastRestoreLocation )
104 restoreSource->setCurrentItem( locationIndex ); 104 restoreSource->setCurrentItem( locationIndex );
105 locationIndex++; 105 locationIndex++;
106 } 106 }
107 107
108 // Read the list of items to ignore. 108 // Read the list of items to ignore.
109 QList<QString> dontBackupList; 109 QList<QString> dontBackupList;
110 dontBackupList.setAutoDelete(true); 110 dontBackupList.setAutoDelete(true);
111 config.setGroup("DontBackup"); 111 config.setGroup("DontBackup");
112 int total = config.readNumEntry("Total", 0); 112 int total = config.readNumEntry("Total", 0);
113 for(int i = 0; i < total; i++) 113 for(int i = 0; i < total; i++)
114 { 114 {
115 dontBackupList.append(new QString(config.readEntry(QString("%1").arg(i), ""))); 115 dontBackupList.append(new QString(config.readEntry(QString("%1").arg(i), "")));
116 } 116 }
117 117
118 QList<QListViewItem> list; 118 QList<QListViewItem> list;
119 getAllItems(backupList->firstChild(), list); 119 getAllItems(backupList->firstChild(), list);
120 120
121 for(uint i = 0; i < list.count(); i++) 121 for(uint i = 0; i < list.count(); i++)
122 { 122 {
123 QString text = list.at(i)->text(HEADER_NAME); 123 QString text = list.at(i)->text(HEADER_NAME);
124 for(uint i2 = 0; i2 < dontBackupList.count(); i2++) 124 for(uint i2 = 0; i2 < dontBackupList.count(); i2++)
125 { 125 {
126 if(*dontBackupList.at(i2) == text) 126 if(*dontBackupList.at(i2) == text)
127 { 127 {
128 selectItem(list.at(i)); 128 selectItem(list.at(i));
129 break; 129 break;
130 } 130 }
131 } 131 }
132 } 132 }
133} 133}
134 134
135BackupAndRestore::~BackupAndRestore() 135BackupAndRestore::~BackupAndRestore()
136{ 136{
137 QList<QListViewItem> list; 137 QList<QListViewItem> list;
138 getAllItems(backupList->firstChild(), list); 138 getAllItems(backupList->firstChild(), list);
139 139
140 Config config("BackupAndRestore"); 140 Config config("BackupAndRestore");
141 config.setGroup("DontBackup"); 141 config.setGroup("DontBackup");
142 config.clearGroup(); 142 config.clearGroup();
143 143
144 int count = 0; 144 int count = 0;
145 for(uint i = 0; i < list.count(); i++) 145 for(uint i = 0; i < list.count(); i++)
146 { 146 {
147 if(list.at(i)->text(HEADER_BACKUP) == "") 147 if(list.at(i)->text(HEADER_BACKUP) == "")
148 { 148 {
149 config.writeEntry(QString("%1").arg(count), list.at(i)->text(HEADER_NAME)); 149 config.writeEntry(QString("%1").arg(count), list.at(i)->text(HEADER_NAME));
150 count++; 150 count++;
151 } 151 }
152 } 152 }
153 config.writeEntry("Total", count); 153 config.writeEntry("Total", count);
154 154
155 // Remove Temp File 155 // Remove Temp File
156 if ( QFile::exists( tempFileName ) ) 156 if ( QFile::exists( tempFileName ) )
157 QFile::remove( tempFileName ); 157 QFile::remove( tempFileName );
158} 158}
159 159
160QList<QListViewItem> BackupAndRestore::getAllItems(QListViewItem *item, QList<QListViewItem> &list) 160QList<QListViewItem> BackupAndRestore::getAllItems(QListViewItem *item, QList<QListViewItem> &list)
161{ 161{
162 while(item) 162 while(item)
163 { 163 {
164 if(item->childCount() > 0) 164 if(item->childCount() > 0)
165 getAllItems(item->firstChild(), list); 165 getAllItems(item->firstChild(), list);
166 list.append(item); 166 list.append(item);
167 item = item->nextSibling(); 167 item = item->nextSibling();
168 } 168 }
169 return list; 169 return list;
170} 170}
171 171
172/** 172/**
173 * Selects and unselects the item by setting the HEADER_BACKUP to B or !. 173 * Selects and unselects the item by setting the HEADER_BACKUP to B or !.
174 * and changing the icon to match 174 * and changing the icon to match
175 * @param currentItem the item to swich the selection choice. 175 * @param currentItem the item to swich the selection choice.
176 */ 176 */
177void BackupAndRestore::selectItem(QListViewItem *currentItem) 177void BackupAndRestore::selectItem(QListViewItem *currentItem)
178{ 178{
179 if(!currentItem) 179 if(!currentItem)
180 return; 180 return;
181 181
182 if(currentItem->text(HEADER_BACKUP) == "B") 182 if(currentItem->text(HEADER_BACKUP) == "B")
183 { 183 {
184 currentItem->setPixmap(HEADER_NAME, Resource::loadPixmap("backup/null")); 184 currentItem->setPixmap(HEADER_NAME, Resource::loadPixmap("backup/null"));
185 currentItem->setText(HEADER_BACKUP, ""); 185 currentItem->setText(HEADER_BACKUP, "");
186 } 186 }
187 else 187 else
188 { 188 {
189 currentItem->setPixmap(HEADER_NAME, Resource::loadPixmap("backup/check")); 189 currentItem->setPixmap(HEADER_NAME, Resource::loadPixmap("backup/check"));
190 currentItem->setText(HEADER_BACKUP, "B"); 190 currentItem->setText(HEADER_BACKUP, "B");
191 } 191 }
192} 192}
193 193
194void BackupAndRestore::scanForApplicationSettings() 194void BackupAndRestore::scanForApplicationSettings()
195{ 195{
196 QDir d( QDir::homeDirPath() + "/" + QString( applicationSettings->text(BACKUP_LOCATION) ) ); 196 QDir d( QDir::homeDirPath() + "/" + QString( applicationSettings->text(BACKUP_LOCATION) ) );
197 d.setFilter( QDir::Dirs | QDir::Files | QDir::NoSymLinks ); 197 d.setFilter( QDir::Dirs | QDir::Files | QDir::NoSymLinks );
198 const QFileInfoList *list = d.entryInfoList(); 198 const QFileInfoList *list = d.entryInfoList();
199 QFileInfoListIterator it( *list ); 199 QFileInfoListIterator it( *list );
200 QFileInfo *fi; 200 QFileInfo *fi;
201 while ( (fi=it.current()) ) 201 while ( (fi=it.current()) )
202 { 202 {
203 //qDebug((d.path()+"/"+fi->fileName()).latin1()); 203 //qDebug((d.path()+"/"+fi->fileName()).latin1());
204 if ( ( fi->fileName() != "." ) && ( fi->fileName() != ".." ) ) 204 if ( ( fi->fileName() != "." ) && ( fi->fileName() != ".." ) )
205 { 205 {
206 QListViewItem *newItem = new QListViewItem(applicationSettings, fi->fileName()); 206 QListViewItem *newItem = new QListViewItem(applicationSettings, fi->fileName());
207 selectItem(newItem); 207 selectItem(newItem);
208 } 208 }
209 ++it; 209 ++it;
210 } 210 }
211} 211}
212 212
213/** 213/**
214 * The "Backup" button has been pressed. Get a list of all of the files that 214 * The "Backup" button has been pressed. Get a list of all of the files that
215 * should be backed up. If there are no files, emit and error and exit. 215 * should be backed up. If there are no files, emit and error and exit.
216 * Determine the file name to store the backup in. Backup the file(s) using 216 * Determine the file name to store the backup in. Backup the file(s) using
217 * tar and gzip --best. Report failure or success 217 * tar and gzip --best. Report failure or success
218 */ 218 */
219void BackupAndRestore::backup() 219void BackupAndRestore::backup()
220{ 220{
221 QString backupFiles; 221 QString backupFiles;
222 if(getBackupFiles(backupFiles, NULL) == 0) 222 if(getBackupFiles(backupFiles, NULL) == 0)
223 { 223 {
224 QMessageBox::critical(this, "Message", 224 QMessageBox::critical(this, "Message",
225 "No items selected.",QString("Ok") ); 225 "No items selected.",QString("Ok") );
226 return; 226 return;
227 } 227 }
228 228
229 setCaption(tr("Backup and Restore... working...")); 229 setCaption(tr("Backup and Restore... working..."));
230 QString outputFile = backupLocations[storeToLocation->currentText()]; 230 QString outputFile = backupLocations[storeToLocation->currentText()];
231 231
232 QDateTime datetime = QDateTime::currentDateTime(); 232 QDateTime datetime = QDateTime::currentDateTime();
233 QString dateString = QString::number( datetime.date().year() ) + QString::number( datetime.date().month() ).rightJustify(2, '0') + 233 QString dateString = QString::number( datetime.date().year() ) + QString::number( datetime.date().month() ).rightJustify(2, '0') +
234 QString::number( datetime.date().day() ).rightJustify(2, '0'); 234 QString::number( datetime.date().day() ).rightJustify(2, '0');
235 235
236 outputFile += "/" + dateString; 236 outputFile += "/" + dateString;
237 237
238 QString t = outputFile; 238 QString t = outputFile;
239 int c = 1; 239 int c = 1;
240 while(QFile::exists(outputFile + EXTENSION)) 240 while(QFile::exists(outputFile + EXTENSION))
241 { 241 {
242 outputFile = t + QString("%1").arg(c); 242 outputFile = t + QString("%1").arg(c);
243 c++; 243 c++;
244 } 244 }
245 245
246 // We execute tar and compressing its output with gzip.. 246 // We execute tar and compressing its output with gzip..
247 // The error output will be written into a temp-file which could be provided 247 // The error output will be written into a temp-file which could be provided
248 // for debugging.. 248 // for debugging..
249 qDebug( "Storing file: %s", outputFile.latin1() ); 249 qDebug( "Storing file: %s", outputFile.latin1() );
250 outputFile += EXTENSION; 250 outputFile += EXTENSION;
251 251
252 QString commandLine = QString( "(tar -C %1 -c %2 | gzip > %3 ) 2> %4" ).arg( QDir::homeDirPath() ) 252 QString commandLine = QString( "(tar -C %1 -c %2 | gzip > %3 ) 2> %4" ).arg( QDir::homeDirPath() )
253 .arg( backupFiles ) 253 .arg( backupFiles )
254 .arg( outputFile.latin1() ) 254 .arg( outputFile.latin1() )
255 .arg( tempFileName.latin1() ); 255 .arg( tempFileName.latin1() );
256 256
257 qDebug( commandLine ); 257 qDebug( commandLine );
258 258
259 int r = system( commandLine ); 259 int r = system( commandLine );
260 260
261 if(r != 0) 261 if(r != 0)
262 { 262 {
263 perror("Error: "); 263 perror("Error: ");
264 QString errorMsg= tr( "Error from System:\n" ) + (QString)strerror( errno ); 264 QString errorMsg= tr( "Error from System:\n" ) + (QString)strerror( errno );
265 265
266 switch( QMessageBox::critical(this, tr( "Message" ), tr( "Backup Failed!" ) + "\n" 266 switch( QMessageBox::critical(this, tr( "Message" ), tr( "Backup Failed!" ) + "\n"
267 + errorMsg, QString( tr( "Ok" ) ), QString( tr( "Details" ) ) ) ) 267 + errorMsg, QString( tr( "Ok" ) ), QString( tr( "Details" ) ) ) )
268 { 268 {
269 269
270 case 1: 270 case 1:
271 qWarning("Details pressed !"); 271 qWarning("Details pressed !");
272 ErrorDialog* pErrDialog = new ErrorDialog( this, NULL, true ); 272 ErrorDialog* pErrDialog = new ErrorDialog( this, NULL, true );
273 QFile errorFile( tempFileName ); 273 QFile errorFile( tempFileName );
274 if ( errorFile.open(IO_ReadOnly) ) 274 if ( errorFile.open(IO_ReadOnly) )
275 { 275 {
276 QTextStream t( &errorFile ); 276 QTextStream t( &errorFile );