summaryrefslogtreecommitdiff
authorar <ar>2005-02-01 19:54:57 (UTC)
committer ar <ar>2005-02-01 19:54:57 (UTC)
commit62aad63f824740f15357c28e6bb61fbdf2120585 (patch) (unidiff)
tree079a6f219f8eed3743414b64b68e45d7003a08d7
parent17a8d1d5d2d9ec7a5e09da00e055d566fbd85353 (diff)
downloadopie-62aad63f824740f15357c28e6bb61fbdf2120585.zip
opie-62aad63f824740f15357c28e6bb61fbdf2120585.tar.gz
opie-62aad63f824740f15357c28e6bb61fbdf2120585.tar.bz2
- fix bug #1536
custom locations are stored and removed immadiately after add and remove in location list.
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/settings/backup/backuprestore.cpp3
-rw-r--r--noncore/settings/backup/backuprestorebase.ui308
2 files changed, 142 insertions, 169 deletions
diff --git a/noncore/settings/backup/backuprestore.cpp b/noncore/settings/backup/backuprestore.cpp
index d028379..8928cda 100644
--- a/noncore/settings/backup/backuprestore.cpp
+++ b/noncore/settings/backup/backuprestore.cpp
@@ -42,97 +42,96 @@ using namespace Opie::Core;
42using namespace Opie::Ui; 42using namespace Opie::Ui;
43 43
44/* QT */ 44/* QT */
45#include <qapplication.h> 45#include <qapplication.h>
46#include <qmultilineedit.h> 46#include <qmultilineedit.h>
47#include <qdir.h> 47#include <qdir.h>
48#include <qfile.h> 48#include <qfile.h>
49#include <qfileinfo.h> 49#include <qfileinfo.h>
50#include <qlistview.h> 50#include <qlistview.h>
51#include <qpushbutton.h> 51#include <qpushbutton.h>
52#include <qradiobutton.h> 52#include <qradiobutton.h>
53#include <qheader.h> 53#include <qheader.h>
54#include <qmessagebox.h> 54#include <qmessagebox.h>
55#include <qcombobox.h> 55#include <qcombobox.h>
56#include <qlist.h> 56#include <qlist.h>
57#include <qregexp.h> 57#include <qregexp.h>
58#include <qtextstream.h> 58#include <qtextstream.h>
59#include <qtextview.h> 59#include <qtextview.h>
60#include <qlineedit.h> 60#include <qlineedit.h>
61#include <qstringlist.h> 61#include <qstringlist.h>
62 62
63/* STD */ 63/* STD */
64#include <errno.h> 64#include <errno.h>
65#include <stdlib.h> 65#include <stdlib.h>
66#include <unistd.h> 66#include <unistd.h>
67#include <sys/stat.h> 67#include <sys/stat.h>
68#include <dirent.h> 68#include <dirent.h>
69 69
70#define HEADER_NAME 0 70#define HEADER_NAME 0
71#define HEADER_BACKUP 1 71#define HEADER_BACKUP 1
72#define BACKUP_LOCATION 2 72#define BACKUP_LOCATION 2
73 73
74#define EXTENSION ".bck" 74#define EXTENSION ".bck"
75 75
76const QString tempFileName = "/tmp/backup.err"; 76const QString tempFileName = "/tmp/backup.err";
77 77
78BackupAndRestore::BackupAndRestore( QWidget* parent, const char* name, WFlags fl) 78BackupAndRestore::BackupAndRestore( QWidget* parent, const char* name, WFlags fl)
79 : BackupAndRestoreBase(parent, name, fl) 79 : BackupAndRestoreBase(parent, name, fl)
80{ 80{
81 backupList->header()->hide(); 81 backupList->header()->hide();
82 restoreList->header()->hide(); 82 restoreList->header()->hide();
83 locationList->header()->hide(); 83 locationList->header()->hide();
84 connect( backupButton, SIGNAL( clicked() ), this, SLOT( backup() ) ); 84 connect( backupButton, SIGNAL( clicked() ), this, SLOT( backup() ) );
85 connect( restoreButton, SIGNAL( clicked() ), this, SLOT( restore() ) ); 85 connect( restoreButton, SIGNAL( clicked() ), this, SLOT( restore() ) );
86 connect( backupList, SIGNAL( clicked( QListViewItem* ) ), this, SLOT( selectItem( QListViewItem* ) ) ); 86 connect( backupList, SIGNAL( clicked( QListViewItem* ) ), this, SLOT( selectItem( QListViewItem* ) ) );
87 connect( restoreSource, SIGNAL( activated( int ) ), this, SLOT( sourceDirChanged( int ) ) ); 87 connect( restoreSource, SIGNAL( activated( int ) ), this, SLOT( sourceDirChanged( int ) ) );
88 connect( addLocationButton, SIGNAL( clicked() ), this, SLOT( addLocation() ) ); 88 connect( addLocationButton, SIGNAL( clicked() ), this, SLOT( addLocation() ) );
89 connect( removeLocationButton, SIGNAL( clicked() ), this, SLOT( removeLocation() ) ); 89 connect( removeLocationButton, SIGNAL( clicked() ), this, SLOT( removeLocation() ) );
90 connect( saveLocationsButton, SIGNAL( clicked() ), this, SLOT( saveLocations() ) );
91 connect( selectLocationButton, SIGNAL( clicked() ), this, SLOT( selectLocation() ) ); 90 connect( selectLocationButton, SIGNAL( clicked() ), this, SLOT( selectLocation() ) );
92 91
93 //add directorys for backing up 92 //add directorys for backing up
94 applicationSettings = new QListViewItem(backupList, "Application Settings", "", "Settings/"); 93 applicationSettings = new QListViewItem(backupList, "Application Settings", "", "Settings/");
95 selectItem(applicationSettings); 94 selectItem(applicationSettings);
96 applicationSettings = new QListViewItem(backupList, "Application Data", "", "Applications/"); 95 applicationSettings = new QListViewItem(backupList, "Application Data", "", "Applications/");
97 selectItem(applicationSettings); 96 selectItem(applicationSettings);
98 documents= new QListViewItem(backupList, "Documents", "", "Documents/"); 97 documents= new QListViewItem(backupList, "Documents", "", "Documents/");
99 selectItem(documents); 98 selectItem(documents);
100 99
101 scanForApplicationSettings(); 100 scanForApplicationSettings();
102 refreshLocations(); 101 refreshLocations();
103 refreshBackupLocations(); 102 refreshBackupLocations();
104 103
105 // Read the list of items to ignore. 104 // Read the list of items to ignore.
106 QList<QString> dontBackupList; 105 QList<QString> dontBackupList;
107 dontBackupList.setAutoDelete(true); 106 dontBackupList.setAutoDelete(true);
108 Config config("BackupAndRestore"); 107 Config config("BackupAndRestore");
109 config.setGroup("DontBackup"); 108 config.setGroup("DontBackup");
110 int total = config.readNumEntry("Total", 0); 109 int total = config.readNumEntry("Total", 0);
111 for(int i = 0; i < total; i++) 110 for(int i = 0; i < total; i++)
112 { 111 {
113 dontBackupList.append(new QString(config.readEntry(QString("%1").arg(i), ""))); 112 dontBackupList.append(new QString(config.readEntry(QString("%1").arg(i), "")));
114 } 113 }
115 114
116 QList<QListViewItem> list; 115 QList<QListViewItem> list;
117 getAllItems(backupList->firstChild(), list); 116 getAllItems(backupList->firstChild(), list);
118 117
119 for(uint i = 0; i < list.count(); i++) 118 for(uint i = 0; i < list.count(); i++)
120 { 119 {
121 QString text = list.at(i)->text(HEADER_NAME); 120 QString text = list.at(i)->text(HEADER_NAME);
122 for(uint i2 = 0; i2 < dontBackupList.count(); i2++) 121 for(uint i2 = 0; i2 < dontBackupList.count(); i2++)
123 { 122 {
124 if(*dontBackupList.at(i2) == text) 123 if(*dontBackupList.at(i2) == text)
125 { 124 {
126 selectItem(list.at(i)); 125 selectItem(list.at(i));
127 break; 126 break;
128 } 127 }
129 } 128 }
130 } 129 }
131 QPEApplication::showWidget( this ); 130 QPEApplication::showWidget( this );
132} 131}
133 132
134BackupAndRestore::~BackupAndRestore() 133BackupAndRestore::~BackupAndRestore()
135{ 134{
136 QList<QListViewItem> list; 135 QList<QListViewItem> list;
137 getAllItems(backupList->firstChild(), list); 136 getAllItems(backupList->firstChild(), list);
138 137
@@ -682,85 +681,87 @@ void BackupAndRestore::restore()
682 * If it does not exist, the function will create the file with *.bck as content 681 * If it does not exist, the function will create the file with *.bck as content
683 * The exclude_files is read by tar and will provide to exclude special files out from backup. 682 * The exclude_files is read by tar and will provide to exclude special files out from backup.
684 * e.g. alle *.bck files (backup-files) will not be backed up by default 683 * e.g. alle *.bck files (backup-files) will not be backed up by default
685 */ 684 */
686 685
687QString BackupAndRestore::getExcludeFile() 686QString BackupAndRestore::getExcludeFile()
688{ 687{
689 QString excludeFileName = Global::applicationFileName( "backup", "exclude" ); 688 QString excludeFileName = Global::applicationFileName( "backup", "exclude" );
690 if ( !QFile::exists( excludeFileName ) ) 689 if ( !QFile::exists( excludeFileName ) )
691 { 690 {
692 QFile excludeFile( excludeFileName); 691 QFile excludeFile( excludeFileName);
693 if ( excludeFile.open( IO_WriteOnly ) == true ) 692 if ( excludeFile.open( IO_WriteOnly ) == true )
694 { 693 {
695 QTextStream writeStream( &excludeFile ); 694 QTextStream writeStream( &excludeFile );
696 writeStream << "*.bck" << "\n"; 695 writeStream << "*.bck" << "\n";
697 excludeFile.close(); 696 excludeFile.close();
698 } 697 }
699 else 698 else
700 { 699 {
701 return QString::null; 700 return QString::null;
702 } 701 }
703 } 702 }
704 703
705 return excludeFileName; 704 return excludeFileName;
706} 705}
707 706
708void BackupAndRestore::refreshLocations() 707void BackupAndRestore::refreshLocations()
709{ 708{
710 locationList->clear(); 709 locationList->clear();
711 710
712 //todo: implement add locations 711 //todo: implement add locations
713 Config config( "BackupAndRestore" ); 712 Config config( "BackupAndRestore" );
714 config.setGroup( "Locations" ); 713 config.setGroup( "Locations" );
715 714
716 QStringList locations( config.readListEntry( "locations", '|' ) ); 715 QStringList locations( config.readListEntry( "locations", '|' ) );
717 716
718 for ( QStringList::Iterator it = locations.begin(); it != locations.end(); ++it ) { 717 for ( QStringList::Iterator it = locations.begin(); it != locations.end(); ++it ) {
719 (void) new QListViewItem( locationList, *it ); 718 (void) new QListViewItem( locationList, *it );
720 } 719 }
721} 720}
722 721
723void BackupAndRestore::addLocation() 722void BackupAndRestore::addLocation()
724{ 723{
725 if ( ( !locationEdit->text().isEmpty() ) && 724 if ( ( !locationEdit->text().isEmpty() ) &&
726 ( QDir( locationEdit->text() ).exists() ) ) 725 ( QDir( locationEdit->text() ).exists() ) )
727 { 726 {
728 (void) new QListViewItem( locationList, locationEdit->text() ); 727 (void) new QListViewItem( locationList, locationEdit->text() );
729 locationEdit->setText( "" ); 728 locationEdit->setText( "" );
729 saveLocations();
730 } 730 }
731} 731}
732 732
733void BackupAndRestore::removeLocation() 733void BackupAndRestore::removeLocation()
734{ 734{
735 if ( locationList->selectedItem() ) 735 if ( locationList->selectedItem() )
736 { 736 {
737 delete( locationList->selectedItem() ); 737 delete( locationList->selectedItem() );
738 saveLocations();
738 } 739 }
739} 740}
740 741
741void BackupAndRestore::saveLocations() 742void BackupAndRestore::saveLocations()
742{ 743{
743 Config config("BackupAndRestore"); 744 Config config("BackupAndRestore");
744 config.setGroup("Locations"); 745 config.setGroup("Locations");
745 746
746 QStringList locations; 747 QStringList locations;
747 for ( QListViewItemIterator it( locationList ); it.current(); ++it ) 748 for ( QListViewItemIterator it( locationList ); it.current(); ++it )
748 { 749 {
749 locations.append( it.current()->text( 0 ) ); 750 locations.append( it.current()->text( 0 ) );
750 } 751 }
751 config.writeEntry( "locations", locations, '|' ); 752 config.writeEntry( "locations", locations, '|' );
752 753
753 refreshBackupLocations(); 754 refreshBackupLocations();
754} 755}
755 756
756void BackupAndRestore::selectLocation() 757void BackupAndRestore::selectLocation()
757{ 758{
758 QString location = OFileDialog::getDirectory( OFileSelector::DIRECTORYSELECTOR ); 759 QString location = OFileDialog::getDirectory( OFileSelector::DIRECTORYSELECTOR );
759 if ( !location.isEmpty() ) 760 if ( !location.isEmpty() )
760 { 761 {
761 locationEdit->setText( location ); 762 locationEdit->setText( location );
762 } 763 }
763} 764}
764 765
765// backuprestore.cpp 766// backuprestore.cpp
766 767
diff --git a/noncore/settings/backup/backuprestorebase.ui b/noncore/settings/backup/backuprestorebase.ui
index 6186d68..cca3dee 100644
--- a/noncore/settings/backup/backuprestorebase.ui
+++ b/noncore/settings/backup/backuprestorebase.ui
@@ -1,393 +1,365 @@
1<!DOCTYPE UI><UI> 1<!DOCTYPE UI><UI>
2<class>BackupAndRestoreBase</class> 2<class>BackupAndRestoreBase</class>
3<widget> 3<widget>
4 <class>QWidget</class> 4 <class>QWidget</class>
5 <property stdset="1"> 5 <property stdset="1">
6 <name>name</name> 6 <name>name</name>
7 <cstring>BackupAndRestoreBase</cstring> 7 <cstring>BackupAndRestoreBase</cstring>
8 </property> 8 </property>
9 <property stdset="1"> 9 <property stdset="1">
10 <name>geometry</name> 10 <name>geometry</name>
11 <rect> 11 <rect>
12 <x>0</x> 12 <x>0</x>
13 <y>0</y> 13 <y>0</y>
14 <width>278</width> 14 <width>246</width>
15 <height>298</height> 15 <height>338</height>
16 </rect> 16 </rect>
17 </property> 17 </property>
18 <property stdset="1"> 18 <property stdset="1">
19 <name>caption</name> 19 <name>caption</name>
20 <string>Backup And Restore</string> 20 <string>Backup And Restore</string>
21 </property> 21 </property>
22 <property> 22 <property>
23 <name>layoutMargin</name> 23 <name>layoutMargin</name>
24 </property> 24 </property>
25 <property> 25 <property>
26 <name>layoutSpacing</name> 26 <name>layoutSpacing</name>
27 </property> 27 </property>
28 <vbox> 28 <grid>
29 <property stdset="1"> 29 <property stdset="1">
30 <name>margin</name> 30 <name>margin</name>
31 <number>0</number> 31 <number>2</number>
32 </property> 32 </property>
33 <property stdset="1"> 33 <property stdset="1">
34 <name>spacing</name> 34 <name>spacing</name>
35 <number>0</number> 35 <number>2</number>
36 </property> 36 </property>
37 <widget> 37 <widget row="0" column="0" >
38 <class>QTabWidget</class> 38 <class>QTabWidget</class>
39 <property stdset="1"> 39 <property stdset="1">
40 <name>name</name> 40 <name>name</name>
41 <cstring>tabWidget</cstring> 41 <cstring>tabWidget</cstring>
42 </property> 42 </property>
43 <property> 43 <property>
44 <name>layoutMargin</name> 44 <name>layoutMargin</name>
45 </property> 45 </property>
46 <property> 46 <property>
47 <name>layoutSpacing</name> 47 <name>layoutSpacing</name>
48 </property> 48 </property>
49 <widget> 49 <widget>
50 <class>QWidget</class> 50 <class>QWidget</class>
51 <property stdset="1"> 51 <property stdset="1">
52 <name>name</name> 52 <name>name</name>
53 <cstring>Widget2</cstring> 53 <cstring>Widget2</cstring>
54 </property> 54 </property>
55 <attribute> 55 <attribute>
56 <name>title</name> 56 <name>title</name>
57 <string>Backup</string> 57 <string>Backup</string>
58 </attribute> 58 </attribute>
59 <grid> 59 <grid>
60 <property stdset="1"> 60 <property stdset="1">
61 <name>margin</name> 61 <name>margin</name>
62 <number>4</number> 62 <number>4</number>
63 </property> 63 </property>
64 <property stdset="1"> 64 <property stdset="1">
65 <name>spacing</name> 65 <name>spacing</name>
66 <number>2</number> 66 <number>2</number>
67 </property> 67 </property>
68 <widget row="0" column="0" > 68 <widget row="1" column="1" >
69 <class>QLayoutWidget</class> 69 <class>QComboBox</class>
70 <property stdset="1">
71 <name>name</name>
72 <cstring>storeToLocation</cstring>
73 </property>
74 <property stdset="1">
75 <name>sizePolicy</name>
76 <sizepolicy>
77 <hsizetype>3</hsizetype>
78 <vsizetype>1</vsizetype>
79 </sizepolicy>
80 </property>
81 </widget>
82 <widget row="1" column="0" >
83 <class>QLabel</class>
84 <property stdset="1">
85 <name>name</name>
86 <cstring>labelDestination</cstring>
87 </property>
88 <property stdset="1">
89 <name>text</name>
90 <string>Destination</string>
91 </property>
92 </widget>
93 <widget row="3" column="0" rowspan="1" colspan="2" >
94 <class>QPushButton</class>
95 <property stdset="1">
96 <name>name</name>
97 <cstring>backupButton</cstring>
98 </property>
99 <property stdset="1">
100 <name>text</name>
101 <string>&amp;Backup</string>
102 </property>
103 </widget>
104 <widget row="2" column="0" rowspan="1" colspan="2" >
105 <class>QListView</class>
106 <column>
107 <property>
108 <name>text</name>
109 <string>Applications</string>
110 </property>
111 <property>
112 <name>clickable</name>
113 <bool>true</bool>
114 </property>
115 <property>
116 <name>resizeable</name>
117 <bool>true</bool>
118 </property>
119 </column>
70 <property stdset="1"> 120 <property stdset="1">
71 <name>name</name> 121 <name>name</name>
72 <cstring>Layout1</cstring> 122 <cstring>backupList</cstring>
123 </property>
124 <property stdset="1">
125 <name>allColumnsShowFocus</name>
126 <bool>true</bool>
127 </property>
128 <property stdset="1">
129 <name>rootIsDecorated</name>
130 <bool>true</bool>
131 </property>
132 </widget>
133 <widget row="0" column="0" rowspan="1" colspan="2" >
134 <class>QButtonGroup</class>
135 <property stdset="1">
136 <name>name</name>
137 <cstring>frame_type</cstring>
138 </property>
139 <property stdset="1">
140 <name>title</name>
141 <string>Type</string>
142 </property>
143 <property>
144 <name>layoutMargin</name>
145 </property>
146 <property>
147 <name>layoutSpacing</name>
73 </property> 148 </property>
74 <grid> 149 <grid>
75 <property stdset="1"> 150 <property stdset="1">
76 <name>margin</name> 151 <name>margin</name>
77 <number>0</number> 152 <number>6</number>
78 </property> 153 </property>
79 <property stdset="1"> 154 <property stdset="1">
80 <name>spacing</name> 155 <name>spacing</name>
81 <number>6</number> 156 <number>2</number>
82 </property> 157 </property>
83 <widget row="1" column="1" >
84 <class>QComboBox</class>
85 <property stdset="1">
86 <name>name</name>
87 <cstring>storeToLocation</cstring>
88 </property>
89 <property stdset="1">
90 <name>sizePolicy</name>
91 <sizepolicy>
92 <hsizetype>3</hsizetype>
93 <vsizetype>1</vsizetype>
94 </sizepolicy>
95 </property>
96 </widget>
97 <widget row="1" column="0" > 158 <widget row="1" column="0" >
98 <class>QLabel</class> 159 <class>QRadioButton</class>
99 <property stdset="1"> 160 <property stdset="1">
100 <name>name</name> 161 <name>name</name>
101 <cstring>TextLabel1</cstring> 162 <cstring>cb_type_fullbackup</cstring>
102 </property> 163 </property>
103 <property stdset="1"> 164 <property stdset="1">
104 <name>text</name> 165 <name>text</name>
105 <string>Destination</string> 166 <string>Full Backup (Root File System)</string>
106 </property> 167 </property>
107 </widget> 168 </widget>
108 <widget row="3" column="0" rowspan="1" colspan="2" > 169 <widget row="0" column="0" >
109 <class>QPushButton</class> 170 <class>QRadioButton</class>
110 <property stdset="1"> 171 <property stdset="1">
111 <name>name</name> 172 <name>name</name>
112 <cstring>backupButton</cstring> 173 <cstring>cb_type_userdata</cstring>
113 </property> 174 </property>
114 <property stdset="1"> 175 <property stdset="1">
115 <name>text</name> 176 <name>text</name>
116 <string>&amp;Backup</string> 177 <string>User Data (Configuration + PIM)</string>
117 </property> 178 </property>
118 </widget>
119 <widget row="0" column="0" rowspan="1" colspan="2" >
120 <class>QButtonGroup</class>
121 <property stdset="1"> 179 <property stdset="1">
122 <name>name</name> 180 <name>checked</name>
123 <cstring>frame_type</cstring>
124 </property>
125 <property stdset="1">
126 <name>title</name>
127 <string>Type</string>
128 </property>
129 <property>
130 <name>layoutMargin</name>
131 </property>
132 <property>
133 <name>layoutSpacing</name>
134 </property>
135 <vbox>
136 <property stdset="1">
137 <name>margin</name>
138 <number>4</number>
139 </property>
140 <property stdset="1">
141 <name>spacing</name>
142 <number>2</number>
143 </property>
144 <widget>
145 <class>QRadioButton</class>
146 <property stdset="1">
147 <name>name</name>
148 <cstring>cb_type_userdata</cstring>
149 </property>
150 <property stdset="1">
151 <name>text</name>
152 <string>User Data (Configuration + PIM)</string>
153 </property>
154 <property stdset="1">
155 <name>checked</name>
156 <bool>true</bool>
157 </property>
158 </widget>
159 <widget>
160 <class>QRadioButton</class>
161 <property stdset="1">
162 <name>name</name>
163 <cstring>cb_type_fullbackup</cstring>
164 </property>
165 <property stdset="1">
166 <name>text</name>
167 <string>Full Backup (Root File System)</string>
168 </property>
169 </widget>
170 </vbox>
171 </widget>
172 <widget row="2" column="0" rowspan="1" colspan="2" >
173 <class>QListView</class>
174 <column>
175 <property>
176 <name>text</name>
177 <string>Applications</string>
178 </property>
179 <property>
180 <name>clickable</name>
181 <bool>true</bool>
182 </property>
183 <property>
184 <name>resizeable</name>
185 <bool>true</bool>
186 </property>
187 </column>
188 <property stdset="1">
189 <name>name</name>
190 <cstring>backupList</cstring>
191 </property>
192 <property stdset="1">
193 <name>allColumnsShowFocus</name>
194 <bool>true</bool>
195 </property>
196 <property stdset="1">
197 <name>rootIsDecorated</name>
198 <bool>true</bool> 181 <bool>true</bool>
199 </property> 182 </property>
200 </widget> 183 </widget>
201 </grid> 184 </grid>
202 </widget> 185 </widget>
203 </grid> 186 </grid>
204 </widget> 187 </widget>
205 <widget> 188 <widget>
206 <class>QWidget</class> 189 <class>QWidget</class>
207 <property stdset="1"> 190 <property stdset="1">
208 <name>name</name> 191 <name>name</name>
209 <cstring>Widget3</cstring> 192 <cstring>Widget3</cstring>
210 </property> 193 </property>
211 <attribute> 194 <attribute>
212 <name>title</name> 195 <name>title</name>
213 <string>Restore</string> 196 <string>Restore</string>
214 </attribute> 197 </attribute>
215 <grid> 198 <grid>
216 <property stdset="1"> 199 <property stdset="1">
217 <name>margin</name> 200 <name>margin</name>
218 <number>4</number> 201 <number>4</number>
219 </property> 202 </property>
220 <property stdset="1"> 203 <property stdset="1">
221 <name>spacing</name> 204 <name>spacing</name>
222 <number>4</number> 205 <number>2</number>
223 </property> 206 </property>
224 <widget row="0" column="1" > 207 <widget row="0" column="1" >
225 <class>QComboBox</class> 208 <class>QComboBox</class>
226 <property stdset="1"> 209 <property stdset="1">
227 <name>name</name> 210 <name>name</name>
228 <cstring>restoreSource</cstring> 211 <cstring>restoreSource</cstring>
229 </property> 212 </property>
230 </widget> 213 </widget>
231 <widget row="2" column="0" rowspan="1" colspan="2" > 214 <widget row="2" column="0" rowspan="1" colspan="2" >
232 <class>QPushButton</class> 215 <class>QPushButton</class>
233 <property stdset="1"> 216 <property stdset="1">
234 <name>name</name> 217 <name>name</name>
235 <cstring>restoreButton</cstring> 218 <cstring>restoreButton</cstring>
236 </property> 219 </property>
237 <property stdset="1"> 220 <property stdset="1">
238 <name>text</name> 221 <name>text</name>
239 <string>&amp;Restore</string> 222 <string>&amp;Restore</string>
240 </property> 223 </property>
241 </widget> 224 </widget>
242 <widget row="0" column="0" > 225 <widget row="0" column="0" >
243 <class>QLabel</class> 226 <class>QLabel</class>
244 <property stdset="1"> 227 <property stdset="1">
245 <name>name</name> 228 <name>name</name>
246 <cstring>TextLabel1_2</cstring> 229 <cstring>destinationLabel</cstring>
247 </property> 230 </property>
248 <property stdset="1"> 231 <property stdset="1">
249 <name>text</name> 232 <name>text</name>
250 <string>Select Source</string> 233 <string>Select Source</string>
251 </property> 234 </property>
252 </widget> 235 </widget>
253 <widget row="1" column="0" rowspan="1" colspan="2" > 236 <widget row="1" column="0" rowspan="1" colspan="2" >
254 <class>QListView</class> 237 <class>QListView</class>
255 <column> 238 <column>
256 <property> 239 <property>
257 <name>text</name> 240 <name>text</name>
258 <string>Column 1</string> 241 <string>Column 1</string>
259 </property> 242 </property>
260 <property> 243 <property>
261 <name>clickable</name> 244 <name>clickable</name>
262 <bool>true</bool> 245 <bool>true</bool>
263 </property> 246 </property>
264 <property> 247 <property>
265 <name>resizeable</name> 248 <name>resizeable</name>
266 <bool>true</bool> 249 <bool>true</bool>
267 </property> 250 </property>
268 </column> 251 </column>
269 <property stdset="1"> 252 <property stdset="1">
270 <name>name</name> 253 <name>name</name>
271 <cstring>restoreList</cstring> 254 <cstring>restoreList</cstring>
272 </property> 255 </property>
273 <property stdset="1"> 256 <property stdset="1">
274 <name>minimumSize</name> 257 <name>minimumSize</name>
275 <size> 258 <size>
276 <width>0</width> 259 <width>0</width>
277 <height>100</height> 260 <height>100</height>
278 </size> 261 </size>
279 </property> 262 </property>
280 </widget> 263 </widget>
281 </grid> 264 </grid>
282 </widget> 265 </widget>
283 <widget> 266 <widget>
284 <class>QWidget</class> 267 <class>QWidget</class>
285 <property stdset="1"> 268 <property stdset="1">
286 <name>name</name> 269 <name>name</name>
287 <cstring>tab</cstring> 270 <cstring>tab</cstring>
288 </property> 271 </property>
289 <attribute> 272 <attribute>
290 <name>title</name> 273 <name>title</name>
291 <string>Locations</string> 274 <string>Locations</string>
292 </attribute> 275 </attribute>
293 <grid> 276 <grid>
294 <property stdset="1"> 277 <property stdset="1">
295 <name>margin</name> 278 <name>margin</name>
296 <number>4</number> 279 <number>4</number>
297 </property> 280 </property>
298 <property stdset="1"> 281 <property stdset="1">
299 <name>spacing</name> 282 <name>spacing</name>
300 <number>4</number> 283 <number>2</number>
301 </property> 284 </property>
302 <widget row="1" column="0" rowspan="1" colspan="4" > 285 <widget row="0" column="2" >
303 <class>QListView</class> 286 <class>QPushButton</class>
304 <column>
305 <property>
306 <name>text</name>
307 <string>Locations</string>
308 </property>
309 <property>
310 <name>clickable</name>
311 <bool>true</bool>
312 </property>
313 <property>
314 <name>resizeable</name>
315 <bool>true</bool>
316 </property>
317 </column>
318 <property stdset="1"> 287 <property stdset="1">
319 <name>name</name> 288 <name>name</name>
320 <cstring>locationList</cstring> 289 <cstring>selectLocationButton</cstring>
321 </property> 290 </property>
322 </widget>
323 <widget row="2" column="0" >
324 <class>QPushButton</class>
325 <property stdset="1"> 291 <property stdset="1">
326 <name>name</name> 292 <name>sizePolicy</name>
327 <cstring>addLocationButton</cstring> 293 <sizepolicy>
294 <hsizetype>0</hsizetype>
295 <vsizetype>0</vsizetype>
296 </sizepolicy>
297 </property>
298 <property stdset="1">
299 <name>maximumSize</name>
300 <size>
301 <width>20</width>
302 <height>30</height>
303 </size>
328 </property> 304 </property>
329 <property stdset="1"> 305 <property stdset="1">
330 <name>text</name> 306 <name>text</name>
331 <string>Add</string> 307 <string>...</string>
332 </property> 308 </property>
333 </widget> 309 </widget>
334 <widget row="2" column="1" > 310 <widget row="0" column="0" rowspan="1" colspan="2" >
335 <class>QPushButton</class> 311 <class>QLineEdit</class>
336 <property stdset="1"> 312 <property stdset="1">
337 <name>name</name> 313 <name>name</name>
338 <cstring>removeLocationButton</cstring> 314 <cstring>locationEdit</cstring>
339 </property>
340 <property stdset="1">
341 <name>text</name>
342 <string>Remove</string>
343 </property> 315 </property>
344 </widget> 316 </widget>
345 <widget row="2" column="2" rowspan="1" colspan="2" > 317 <widget row="2" column="0" >
346 <class>QPushButton</class> 318 <class>QPushButton</class>
347 <property stdset="1"> 319 <property stdset="1">
348 <name>name</name> 320 <name>name</name>
349 <cstring>saveLocationsButton</cstring> 321 <cstring>addLocationButton</cstring>
350 </property> 322 </property>
351 <property stdset="1"> 323 <property stdset="1">
352 <name>text</name> 324 <name>text</name>
353 <string>Save</string> 325 <string>Add</string>
354 </property> 326 </property>
355 </widget> 327 </widget>
356 <widget row="0" column="3" > 328 <widget row="2" column="1" rowspan="1" colspan="2" >
357 <class>QPushButton</class> 329 <class>QPushButton</class>
358 <property stdset="1"> 330 <property stdset="1">
359 <name>name</name> 331 <name>name</name>
360 <cstring>selectLocationButton</cstring> 332 <cstring>removeLocationButton</cstring>
361 </property>
362 <property stdset="1">
363 <name>sizePolicy</name>
364 <sizepolicy>
365 <hsizetype>0</hsizetype>
366 <vsizetype>0</vsizetype>
367 </sizepolicy>
368 </property>
369 <property stdset="1">
370 <name>maximumSize</name>
371 <size>
372 <width>20</width>
373 <height>30</height>
374 </size>
375 </property> 333 </property>
376 <property stdset="1"> 334 <property stdset="1">
377 <name>text</name> 335 <name>text</name>
378 <string>...</string> 336 <string>Remove</string>
379 </property> 337 </property>
380 </widget> 338 </widget>
381 <widget row="0" column="0" rowspan="1" colspan="3" > 339 <widget row="1" column="0" rowspan="1" colspan="3" >
382 <class>QLineEdit</class> 340 <class>QListView</class>
341 <column>
342 <property>
343 <name>text</name>
344 <string>Locations</string>
345 </property>
346 <property>
347 <name>clickable</name>
348 <bool>true</bool>
349 </property>
350 <property>
351 <name>resizeable</name>
352 <bool>true</bool>
353 </property>
354 </column>
383 <property stdset="1"> 355 <property stdset="1">
384 <name>name</name> 356 <name>name</name>
385 <cstring>locationEdit</cstring> 357 <cstring>locationList</cstring>
386 </property> 358 </property>
387 </widget> 359 </widget>
388 </grid> 360 </grid>
389 </widget> 361 </widget>
390 </widget> 362 </widget>
391 </vbox> 363 </grid>
392</widget> 364</widget>
393</UI> 365</UI>