author | tux_mike <tux_mike> | 2002-04-02 02:19:00 (UTC) |
---|---|---|
committer | tux_mike <tux_mike> | 2002-04-02 02:19:00 (UTC) |
commit | 623ce8225b7f75755146601e2c8d7f1e7e9a65d0 (patch) (unidiff) | |
tree | 093fdf38af46e9c8c1090d32a0e81c45e2032c92 | |
parent | 44bfa84cc6d9bcd828f0b08c7bf59dde58dd5288 (diff) | |
download | opie-623ce8225b7f75755146601e2c8d7f1e7e9a65d0.zip opie-623ce8225b7f75755146601e2c8d7f1e7e9a65d0.tar.gz opie-623ce8225b7f75755146601e2c8d7f1e7e9a65d0.tar.bz2 |
Added a copyright notice... completley forgot... I gotta stop updating like this ;)
-rw-r--r-- | core/pim/addressbook/contacteditor.cpp | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/core/pim/addressbook/contacteditor.cpp b/core/pim/addressbook/contacteditor.cpp index 0e752ca..6edab2c 100644 --- a/core/pim/addressbook/contacteditor.cpp +++ b/core/pim/addressbook/contacteditor.cpp | |||
@@ -1,512 +1,531 @@ | |||
1 | /* | ||
2 | * Copyright (c) 2002 Michael R. Crawford <mike@tuxnami.org> | ||
3 | * | ||
4 | * This file is an add-on for the OPIE Palmtop Environment | ||
5 | * | ||
6 | * This file may be distributed and/or modified under the terms of the | ||
7 | * GNU General Public License version 2 as published by the Free Software | ||
8 | * Foundation and appearing in the file LICENSE.GPL included in the pacakaging | ||
9 | * of this file. | ||
10 | * | ||
11 | * This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE | ||
12 | * WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. | ||
13 | * | ||
14 | * | ||
15 | * This is a rewrite of the abeditor.h file, modified to provide a more | ||
16 | * intuitive interface to TrollTech's original Address Book editor. This | ||
17 | * is made to operate exactly in interface with the exception of name. | ||
18 | * | ||
19 | */ | ||
1 | 20 | ||
2 | #include "contacteditor.h" | 21 | #include "contacteditor.h" |
3 | #include "addresspicker.h" | 22 | #include "addresspicker.h" |
4 | 23 | ||
5 | #include <qpe/categoryselect.h> | 24 | #include <qpe/categoryselect.h> |
6 | #include <qpe/qpeapplication.h> | 25 | #include <qpe/qpeapplication.h> |
7 | #include <qpe/qpedialog.h> | 26 | #include <qpe/qpedialog.h> |
8 | 27 | ||
9 | #include <qcombobox.h> | 28 | #include <qcombobox.h> |
10 | #include <qlabel.h> | 29 | #include <qlabel.h> |
11 | #include <qtabwidget.h> | 30 | #include <qtabwidget.h> |
12 | #include <qlayout.h> | 31 | #include <qlayout.h> |
13 | #include <qlineedit.h> | 32 | #include <qlineedit.h> |
14 | #include <qmultilineedit.h> | 33 | #include <qmultilineedit.h> |
15 | #include <qscrollview.h> | 34 | #include <qscrollview.h> |
16 | #include <qtoolbutton.h> | 35 | #include <qtoolbutton.h> |
17 | #include <qpushbutton.h> | 36 | #include <qpushbutton.h> |
18 | #include <qmainwindow.h> | 37 | #include <qmainwindow.h> |
19 | #include <qvaluelist.h> | 38 | #include <qvaluelist.h> |
20 | 39 | ||
21 | static inline bool containsAlphaNum( const QString &str ); | 40 | static inline bool containsAlphaNum( const QString &str ); |
22 | static inline bool constainsWhiteSpace( const QString &str ); | 41 | static inline bool constainsWhiteSpace( const QString &str ); |
23 | 42 | ||
24 | // helper functions, convert our comma delimited list to proper | 43 | // helper functions, convert our comma delimited list to proper |
25 | // file format... | 44 | // file format... |
26 | void parseEmailFrom( const QString &txt, QString &strDefaultEmail, | 45 | void parseEmailFrom( const QString &txt, QString &strDefaultEmail, |
27 | QString &strAll ); | 46 | QString &strAll ); |
28 | 47 | ||
29 | // helper convert from file format to comma delimited... | 48 | // helper convert from file format to comma delimited... |
30 | void parseEmailTo( const QString &strDefaultEmail, | 49 | void parseEmailTo( const QString &strDefaultEmail, |
31 | const QString &strOtherEmail, QString &strBack ); | 50 | const QString &strOtherEmail, QString &strBack ); |
32 | 51 | ||
33 | ContactEditor::ContactEditor(const Contact &entry, | 52 | ContactEditor::ContactEditor(const Contact &entry, |
34 | const QValueList<int> *newOrderedValues, | 53 | const QValueList<int> *newOrderedValues, |
35 | QStringList *slNewOrdered, | 54 | QStringList *slNewOrdered, |
36 | QWidget *parent = 0, | 55 | QWidget *parent = 0, |
37 | const char *name = 0, | 56 | const char *name = 0, |
38 | WFlags fl = 0 ) | 57 | WFlags fl = 0 ) |
39 | : QDialog( parent, name, TRUE, fl ), | 58 | : QDialog( parent, name, TRUE, fl ), |
40 | orderedValues( newOrderedValues ), | 59 | orderedValues( newOrderedValues ), |
41 | slOrdered( slNewOrdered ) | 60 | slOrdered( slNewOrdered ) |
42 | { | 61 | { |
43 | 62 | ||
44 | init(); | 63 | init(); |
45 | initMap(); | 64 | initMap(); |
46 | setEntry( entry ); | 65 | setEntry( entry ); |
47 | qDebug("finish"); | 66 | qDebug("finish"); |
48 | } | 67 | } |
49 | 68 | ||
50 | ContactEditor::~ContactEditor() { | 69 | ContactEditor::~ContactEditor() { |
51 | } | 70 | } |
52 | 71 | ||
53 | void ContactEditor::init() { | 72 | void ContactEditor::init() { |
54 | 73 | ||
55 | useFullName = TRUE; | 74 | useFullName = TRUE; |
56 | 75 | ||
57 | int i = 0; | 76 | int i = 0; |
58 | 77 | ||
59 | slHomeAddress = new QStringList; | 78 | slHomeAddress = new QStringList; |
60 | slBusinessAddress = new QStringList; | 79 | slBusinessAddress = new QStringList; |
61 | slChooserNames = new QStringList; | 80 | slChooserNames = new QStringList; |
62 | slChooserValues = new QStringList; | 81 | slChooserValues = new QStringList; |
63 | 82 | ||
64 | slDynamicEntries = new QStringList; | 83 | slDynamicEntries = new QStringList; |
65 | 84 | ||
66 | //*slDynamicEntries = *slOrdered; | 85 | //*slDynamicEntries = *slOrdered; |
67 | 86 | ||
68 | for (i = 0; i <= 6; i++) { | 87 | for (i = 0; i <= 6; i++) { |
69 | slHomeAddress->append( "" ); | 88 | slHomeAddress->append( "" ); |
70 | slBusinessAddress->append( "" ); | 89 | slBusinessAddress->append( "" ); |
71 | } | 90 | } |
72 | 91 | ||
73 | { | 92 | { |
74 | hasGender = FALSE; | 93 | hasGender = FALSE; |
75 | hasTitle = FALSE; | 94 | hasTitle = FALSE; |
76 | hasCompany = FALSE; | 95 | hasCompany = FALSE; |
77 | hasNotes = FALSE; | 96 | hasNotes = FALSE; |
78 | hasStreet = FALSE; | 97 | hasStreet = FALSE; |
79 | hasStreet2 = FALSE; | 98 | hasStreet2 = FALSE; |
80 | hasPOBox = FALSE; | 99 | hasPOBox = FALSE; |
81 | hasCity = FALSE; | 100 | hasCity = FALSE; |
82 | hasState = FALSE; | 101 | hasState = FALSE; |
83 | hasZip = FALSE; | 102 | hasZip = FALSE; |
84 | hasCountry = FALSE; | 103 | hasCountry = FALSE; |
85 | 104 | ||
86 | QStringList::ConstIterator it = slOrdered->begin(); | 105 | QStringList::ConstIterator it = slOrdered->begin(); |
87 | for ( i = 0; it != slOrdered->end(); i++, ++it ) { | 106 | for ( i = 0; it != slOrdered->end(); i++, ++it ) { |
88 | 107 | ||
89 | if ( (*it).right( 3 ) == tr( "Fax" ) ) { | 108 | if ( (*it).right( 3 ) == tr( "Fax" ) ) { |
90 | slChooserNames->append( *it ); | 109 | slChooserNames->append( *it ); |
91 | slChooserValues->append( tr( "" ) ); | 110 | slChooserValues->append( tr( "" ) ); |
92 | //slDynamicEntries->remove( it ); | 111 | //slDynamicEntries->remove( it ); |
93 | continue; | 112 | continue; |
94 | } | 113 | } |
95 | 114 | ||
96 | if ( (*it).right( 5 ) == tr( "Phone" ) ) { | 115 | if ( (*it).right( 5 ) == tr( "Phone" ) ) { |
97 | slChooserNames->append( *it ); | 116 | slChooserNames->append( *it ); |
98 | slChooserValues->append( "" ); | 117 | slChooserValues->append( "" ); |
99 | //slDynamicEntries->remove( it ); | 118 | //slDynamicEntries->remove( it ); |
100 | continue; | 119 | continue; |
101 | } | 120 | } |
102 | 121 | ||
103 | if ( (*it).right( 2 ) == tr( "IM" ) ) { | 122 | if ( (*it).right( 2 ) == tr( "IM" ) ) { |
104 | slChooserNames->append( *it ); | 123 | slChooserNames->append( *it ); |
105 | slChooserValues->append( "" ); | 124 | slChooserValues->append( "" ); |
106 | //slDynamicEntries->remove( it ); | 125 | //slDynamicEntries->remove( it ); |
107 | continue; | 126 | continue; |
108 | } | 127 | } |
109 | 128 | ||
110 | if ( (*it).right( 6 ) == tr( "Mobile" ) ) { | 129 | if ( (*it).right( 6 ) == tr( "Mobile" ) ) { |
111 | slChooserNames->append( *it ); | 130 | slChooserNames->append( *it ); |
112 | slChooserValues->append( "" ); | 131 | slChooserValues->append( "" ); |
113 | //slDynamicEntries->remove( it ); | 132 | //slDynamicEntries->remove( it ); |
114 | continue; | 133 | continue; |
115 | } | 134 | } |
116 | 135 | ||
117 | if ( (*it).right( 4 ) == tr( "Page" ) ) { | 136 | if ( (*it).right( 4 ) == tr( "Page" ) ) { |
118 | slChooserNames->append( *it ); | 137 | slChooserNames->append( *it ); |
119 | slChooserValues->append( "" ); | 138 | slChooserValues->append( "" ); |
120 | //slDynamicEntries->remove( it ); | 139 | //slDynamicEntries->remove( it ); |
121 | continue; | 140 | continue; |
122 | } | 141 | } |
123 | 142 | ||
124 | if ( (*it).right( 5 ) == tr( "Pager" ) ) { | 143 | if ( (*it).right( 5 ) == tr( "Pager" ) ) { |
125 | slChooserNames->append( *it ); | 144 | slChooserNames->append( *it ); |
126 | slChooserValues->append( "" ); | 145 | slChooserValues->append( "" ); |
127 | //slDynamicEntries->remove( it ); | 146 | //slDynamicEntries->remove( it ); |
128 | continue; | 147 | continue; |
129 | } | 148 | } |
130 | 149 | ||
131 | if ( *it == tr( "Default Email" ) ) { | 150 | if ( *it == tr( "Default Email" ) ) { |
132 | slChooserNames->append( *it ); | 151 | slChooserNames->append( *it ); |
133 | slChooserValues->append( "" ); | 152 | slChooserValues->append( "" ); |
134 | //slDynamicEntries->remove( it ); | 153 | //slDynamicEntries->remove( it ); |
135 | continue; | 154 | continue; |
136 | } | 155 | } |
137 | 156 | ||
138 | if ( *it == tr( "Emails" ) ) { | 157 | if ( *it == tr( "Emails" ) ) { |
139 | slChooserNames->append( *it ); | 158 | slChooserNames->append( *it ); |
140 | slChooserValues->append( "" ); | 159 | slChooserValues->append( "" ); |
141 | //slDynamicEntries->remove( it ); | 160 | //slDynamicEntries->remove( it ); |
142 | continue; | 161 | continue; |
143 | } | 162 | } |
144 | 163 | ||
145 | if ( *it == tr( "Name Title" ) ) { | 164 | if ( *it == tr( "Name Title" ) ) { |
146 | //slDynamicEntries->remove( it ); | 165 | //slDynamicEntries->remove( it ); |
147 | continue; | 166 | continue; |
148 | } | 167 | } |
149 | 168 | ||
150 | if ( *it == tr( "First Name" ) ) { | 169 | if ( *it == tr( "First Name" ) ) { |
151 | //slDynamicEntries->remove( it ); | 170 | //slDynamicEntries->remove( it ); |
152 | continue; | 171 | continue; |
153 | } | 172 | } |
154 | 173 | ||
155 | if ( *it == tr( "Middle Name" ) ) { | 174 | if ( *it == tr( "Middle Name" ) ) { |
156 | //slDynamicEntries->remove( it ); | 175 | //slDynamicEntries->remove( it ); |
157 | continue; | 176 | continue; |
158 | } | 177 | } |
159 | 178 | ||
160 | if ( *it == tr( "Last Name" ) ) { | 179 | if ( *it == tr( "Last Name" ) ) { |
161 | //slDynamicEntries->remove( it ); | 180 | //slDynamicEntries->remove( it ); |
162 | continue; | 181 | continue; |
163 | } | 182 | } |
164 | 183 | ||
165 | if ( *it == tr( "Suffix" ) ) { | 184 | if ( *it == tr( "Suffix" ) ) { |
166 | //slDynamicEntries->remove( it ); | 185 | //slDynamicEntries->remove( it ); |
167 | continue; | 186 | continue; |
168 | } | 187 | } |
169 | 188 | ||
170 | if ( *it == tr( "File As" ) ) { | 189 | if ( *it == tr( "File As" ) ) { |
171 | //slDynamicEntries->remove( it ); | 190 | //slDynamicEntries->remove( it ); |
172 | continue; | 191 | continue; |
173 | } | 192 | } |
174 | 193 | ||
175 | if ( *it == tr( "Gender" ) ) { | 194 | if ( *it == tr( "Gender" ) ) { |
176 | hasGender = TRUE; | 195 | hasGender = TRUE; |
177 | //slDynamicEntries->remove( it ); | 196 | //slDynamicEntries->remove( it ); |
178 | continue; | 197 | continue; |
179 | } | 198 | } |
180 | 199 | ||
181 | if ( *it == tr( "Job Title" ) ) { | 200 | if ( *it == tr( "Job Title" ) ) { |
182 | hasTitle = TRUE; | 201 | hasTitle = TRUE; |
183 | //slDynamicEntries->remove( it ); | 202 | //slDynamicEntries->remove( it ); |
184 | continue; | 203 | continue; |
185 | } | 204 | } |
186 | 205 | ||
187 | if ( *it == tr( "Company" ) ) { | 206 | if ( *it == tr( "Company" ) ) { |
188 | hasCompany = TRUE; | 207 | hasCompany = TRUE; |
189 | //slDynamicEntries->remove( it ); | 208 | //slDynamicEntries->remove( it ); |
190 | continue; | 209 | continue; |
191 | } | 210 | } |
192 | 211 | ||
193 | if ( *it == tr( "Notes" ) ) { | 212 | if ( *it == tr( "Notes" ) ) { |
194 | hasNotes = TRUE; | 213 | hasNotes = TRUE; |
195 | //slDynamicEntries->remove( it ); | 214 | //slDynamicEntries->remove( it ); |
196 | continue; | 215 | continue; |
197 | } | 216 | } |
198 | 217 | ||
199 | if ( *it == tr( "Groups" ) ) { | 218 | if ( *it == tr( "Groups" ) ) { |
200 | //slDynamicEntries->remove( it ); | 219 | //slDynamicEntries->remove( it ); |
201 | continue; | 220 | continue; |
202 | } | 221 | } |
203 | 222 | ||
204 | if ( (*it).right( 6 ) == tr( "Street" ) ) { | 223 | if ( (*it).right( 6 ) == tr( "Street" ) ) { |
205 | hasStreet = TRUE; | 224 | hasStreet = TRUE; |
206 | //slDynamicEntries->remove( it ); | 225 | //slDynamicEntries->remove( it ); |
207 | continue; | 226 | continue; |
208 | } | 227 | } |
209 | 228 | ||
210 | if ( (*it).right( 8 ) == tr( "Street 2" ) ) { | 229 | if ( (*it).right( 8 ) == tr( "Street 2" ) ) { |
211 | hasStreet2 = TRUE; | 230 | hasStreet2 = TRUE; |
212 | //slDynamicEntries->remove( it ); | 231 | //slDynamicEntries->remove( it ); |
213 | continue; | 232 | continue; |
214 | } | 233 | } |
215 | 234 | ||
216 | if ( (*it).right( 8 ) == tr( "P.O. Box" ) ) { | 235 | if ( (*it).right( 8 ) == tr( "P.O. Box" ) ) { |
217 | hasPOBox = TRUE; | 236 | hasPOBox = TRUE; |
218 | //slDynamicEntries->remove( it ); | 237 | //slDynamicEntries->remove( it ); |
219 | continue; | 238 | continue; |
220 | } | 239 | } |
221 | 240 | ||
222 | if ( (*it).right( 4 ) == tr( "City" ) ) { | 241 | if ( (*it).right( 4 ) == tr( "City" ) ) { |
223 | hasCity = TRUE; | 242 | hasCity = TRUE; |
224 | //slDynamicEntries->remove( it ); | 243 | //slDynamicEntries->remove( it ); |
225 | continue; | 244 | continue; |
226 | } | 245 | } |
227 | 246 | ||
228 | if ( (*it).right( 5 ) == tr( "State" ) ) { | 247 | if ( (*it).right( 5 ) == tr( "State" ) ) { |
229 | hasState = TRUE; | 248 | hasState = TRUE; |
230 | //slDynamicEntries->remove( it ); | 249 | //slDynamicEntries->remove( it ); |
231 | continue; | 250 | continue; |
232 | } | 251 | } |
233 | 252 | ||
234 | if ( (*it).right( 3 ) == tr( "Zip" ) ) { | 253 | if ( (*it).right( 3 ) == tr( "Zip" ) ) { |
235 | hasZip = TRUE; | 254 | hasZip = TRUE; |
236 | //slDynamicEntries->remove( it ); | 255 | //slDynamicEntries->remove( it ); |
237 | continue; | 256 | continue; |
238 | } | 257 | } |
239 | 258 | ||
240 | if ( (*it).right( 7 ) == tr( "Country" ) ) { | 259 | if ( (*it).right( 7 ) == tr( "Country" ) ) { |
241 | hasCountry = TRUE; | 260 | hasCountry = TRUE; |
242 | //slDynamicEntries->remove( it ); | 261 | //slDynamicEntries->remove( it ); |
243 | continue; | 262 | continue; |
244 | } | 263 | } |
245 | 264 | ||
246 | slDynamicEntries->append( *it ); | 265 | slDynamicEntries->append( *it ); |
247 | } | 266 | } |
248 | } | 267 | } |
249 | 268 | ||
250 | QVBoxLayout *vb = new QVBoxLayout( this ); | 269 | QVBoxLayout *vb = new QVBoxLayout( this ); |
251 | 270 | ||
252 | tabMain = new QTabWidget( this ); | 271 | tabMain = new QTabWidget( this ); |
253 | vb->addWidget( tabMain ); | 272 | vb->addWidget( tabMain ); |
254 | 273 | ||
255 | QWidget *tabViewport = new QWidget ( tabMain ); | 274 | QWidget *tabViewport = new QWidget ( tabMain ); |
256 | 275 | ||
257 | vb = new QVBoxLayout( tabViewport ); | 276 | vb = new QVBoxLayout( tabViewport ); |
258 | 277 | ||
259 | svGeneral = new QScrollView( tabViewport ); | 278 | svGeneral = new QScrollView( tabViewport ); |
260 | vb->addWidget( svGeneral, 0, 0 ); | 279 | vb->addWidget( svGeneral, 0, 0 ); |
261 | svGeneral->setResizePolicy( QScrollView::AutoOneFit ); | 280 | svGeneral->setResizePolicy( QScrollView::AutoOneFit ); |
262 | svGeneral->setFrameStyle( QFrame::NoFrame ); | 281 | svGeneral->setFrameStyle( QFrame::NoFrame ); |
263 | 282 | ||
264 | QWidget *container = new QWidget( svGeneral->viewport() ); | 283 | QWidget *container = new QWidget( svGeneral->viewport() ); |
265 | svGeneral->addChild( container ); | 284 | svGeneral->addChild( container ); |
266 | 285 | ||
267 | QGridLayout *gl = new QGridLayout( container, 1, 1, 2, 3 ); | 286 | QGridLayout *gl = new QGridLayout( container, 1, 1, 2, 3 ); |
268 | gl->setResizeMode( QLayout::FreeResize ); | 287 | gl->setResizeMode( QLayout::FreeResize ); |
269 | 288 | ||
270 | btnFullName = new QPushButton( tr( "Full Name..." ), container ); | 289 | btnFullName = new QPushButton( tr( "Full Name..." ), container ); |
271 | gl->addWidget( btnFullName, 0, 0 ); | 290 | gl->addWidget( btnFullName, 0, 0 ); |
272 | txtFullName = new QLineEdit( container ); | 291 | txtFullName = new QLineEdit( container ); |
273 | gl->addWidget( txtFullName, 0, 1 ); | 292 | gl->addWidget( txtFullName, 0, 1 ); |
274 | 293 | ||
275 | QLabel *l = new QLabel( tr( "Job Title" ), container ); | 294 | QLabel *l = new QLabel( tr( "Job Title" ), container ); |
276 | gl->addWidget( l, 1, 0 ); | 295 | gl->addWidget( l, 1, 0 ); |
277 | txtJobTitle = new QLineEdit( container ); | 296 | txtJobTitle = new QLineEdit( container ); |
278 | gl->addWidget( txtJobTitle, 1, 1 ); | 297 | gl->addWidget( txtJobTitle, 1, 1 ); |
279 | 298 | ||
280 | l = new QLabel( tr( "Organization" ), container ); | 299 | l = new QLabel( tr( "Organization" ), container ); |
281 | gl->addWidget( l, 2, 0 ); | 300 | gl->addWidget( l, 2, 0 ); |
282 | txtOrganization = new QLineEdit( container ); | 301 | txtOrganization = new QLineEdit( container ); |
283 | gl->addWidget( txtOrganization, 2, 1 ); | 302 | gl->addWidget( txtOrganization, 2, 1 ); |
284 | 303 | ||
285 | cmbChooserField1 = new QComboBox( FALSE, container ); | 304 | cmbChooserField1 = new QComboBox( FALSE, container ); |
286 | cmbChooserField1->setMaximumWidth( 100 ); | 305 | cmbChooserField1->setMaximumWidth( 100 ); |
287 | gl->addWidget( cmbChooserField1, 3, 0 ); | 306 | gl->addWidget( cmbChooserField1, 3, 0 ); |
288 | txtChooserField1 = new QLineEdit( container ); | 307 | txtChooserField1 = new QLineEdit( container ); |
289 | gl->addWidget( txtChooserField1, 3, 1 ); | 308 | gl->addWidget( txtChooserField1, 3, 1 ); |
290 | 309 | ||
291 | cmbChooserField2 = new QComboBox( FALSE, container ); | 310 | cmbChooserField2 = new QComboBox( FALSE, container ); |
292 | cmbChooserField2->setMaximumWidth( 100 ); | 311 | cmbChooserField2->setMaximumWidth( 100 ); |
293 | gl->addWidget( cmbChooserField2, 4, 0 ); | 312 | gl->addWidget( cmbChooserField2, 4, 0 ); |
294 | txtChooserField2 = new QLineEdit( container ); | 313 | txtChooserField2 = new QLineEdit( container ); |
295 | gl->addWidget( txtChooserField2, 4, 1 ); | 314 | gl->addWidget( txtChooserField2, 4, 1 ); |
296 | 315 | ||
297 | cmbChooserField3 = new QComboBox( FALSE, container ); | 316 | cmbChooserField3 = new QComboBox( FALSE, container ); |
298 | cmbChooserField3->setMaximumWidth( 100 ); | 317 | cmbChooserField3->setMaximumWidth( 100 ); |
299 | gl->addWidget( cmbChooserField3, 5, 0 ); | 318 | gl->addWidget( cmbChooserField3, 5, 0 ); |
300 | txtChooserField3 = new QLineEdit( container ); | 319 | txtChooserField3 = new QLineEdit( container ); |
301 | gl->addWidget( txtChooserField3, 5, 1 ); | 320 | gl->addWidget( txtChooserField3, 5, 1 ); |
302 | 321 | ||
303 | l = new QLabel( tr( "File As" ), container ); | 322 | l = new QLabel( tr( "File As" ), container ); |
304 | gl->addWidget( l, 6, 0 ); | 323 | gl->addWidget( l, 6, 0 ); |
305 | cmbFileAs = new QComboBox( TRUE, container ); | 324 | cmbFileAs = new QComboBox( TRUE, container ); |
306 | gl->addWidget( cmbFileAs, 6, 1 ); | 325 | gl->addWidget( cmbFileAs, 6, 1 ); |
307 | 326 | ||
308 | l = new QLabel( tr( "Category" ), container ); | 327 | l = new QLabel( tr( "Category" ), container ); |
309 | gl->addWidget( l, 7, 0 ); | 328 | gl->addWidget( l, 7, 0 ); |
310 | cmbCat = new CategorySelect( container ); | 329 | cmbCat = new CategorySelect( container ); |
311 | gl->addWidget( cmbCat, 7, 1 ); | 330 | gl->addWidget( cmbCat, 7, 1 ); |
312 | 331 | ||
313 | btnNote = new QPushButton( tr( "Notes..." ), container ); | 332 | btnNote = new QPushButton( tr( "Notes..." ), container ); |
314 | gl->addWidget( btnNote, 8, 1 ); | 333 | gl->addWidget( btnNote, 8, 1 ); |
315 | 334 | ||
316 | tabMain->insertTab( tabViewport, tr( "General" ) ); | 335 | tabMain->insertTab( tabViewport, tr( "General" ) ); |
317 | 336 | ||
318 | tabViewport = new QWidget ( tabMain ); | 337 | tabViewport = new QWidget ( tabMain ); |
319 | 338 | ||
320 | vb = new QVBoxLayout( tabViewport ); | 339 | vb = new QVBoxLayout( tabViewport ); |
321 | 340 | ||
322 | svAddress = new QScrollView( tabViewport ); | 341 | svAddress = new QScrollView( tabViewport ); |
323 | vb->addWidget( svAddress, 0, 0 ); | 342 | vb->addWidget( svAddress, 0, 0 ); |
324 | svAddress->setResizePolicy( QScrollView::AutoOneFit ); | 343 | svAddress->setResizePolicy( QScrollView::AutoOneFit ); |
325 | svAddress->setFrameStyle( QFrame::NoFrame ); | 344 | svAddress->setFrameStyle( QFrame::NoFrame ); |
326 | 345 | ||
327 | container = new QWidget( svAddress->viewport() ); | 346 | container = new QWidget( svAddress->viewport() ); |
328 | svAddress->addChild( container ); | 347 | svAddress->addChild( container ); |
329 | 348 | ||
330 | gl = new QGridLayout( container, 5, 3, 2, 3 ); | 349 | gl = new QGridLayout( container, 5, 3, 2, 3 ); |
331 | 350 | ||
332 | cmbAddress = new QComboBox( FALSE, container ); | 351 | cmbAddress = new QComboBox( FALSE, container ); |
333 | cmbAddress->insertItem( tr( "Business" ) ); | 352 | cmbAddress->insertItem( tr( "Business" ) ); |
334 | cmbAddress->insertItem( tr( "Home" ) ); | 353 | cmbAddress->insertItem( tr( "Home" ) ); |
335 | gl->addMultiCellWidget( cmbAddress, 0, 0, 0, 1 ); | 354 | gl->addMultiCellWidget( cmbAddress, 0, 0, 0, 1 ); |
336 | 355 | ||
337 | l = new QLabel( tr( "Address" ), container ); | 356 | l = new QLabel( tr( "Address" ), container ); |
338 | gl->addWidget( l, 1, 0 ); | 357 | gl->addWidget( l, 1, 0 ); |
339 | txtAddress = new QLineEdit( container ); | 358 | txtAddress = new QLineEdit( container ); |
340 | gl->addMultiCellWidget( txtAddress, 1, 1, 1, 2 ); | 359 | gl->addMultiCellWidget( txtAddress, 1, 1, 1, 2 ); |
341 | /* | 360 | /* |
342 | l = new QLabel( tr( "Address 2" ), container ); | 361 | l = new QLabel( tr( "Address 2" ), container ); |
343 | gl->addWidget( l, 2, 0 ); | 362 | gl->addWidget( l, 2, 0 ); |
344 | txtAddress2 = new QLineEdit( container ); | 363 | txtAddress2 = new QLineEdit( container ); |
345 | gl->addMultiCellWidget( txtAddress2, 2, 2, 1, 2 ); | 364 | gl->addMultiCellWidget( txtAddress2, 2, 2, 1, 2 ); |
346 | 365 | ||
347 | l = new QLabel( tr( "P.O. Box" ), container ); | 366 | l = new QLabel( tr( "P.O. Box" ), container ); |
348 | gl->addWidget( l, 3, 0 ); | 367 | gl->addWidget( l, 3, 0 ); |
349 | txtPOBox = new QLineEdit( container ); | 368 | txtPOBox = new QLineEdit( container ); |
350 | gl->addMultiCellWidget( txtPOBox, 3, 3, 1, 2 ); | 369 | gl->addMultiCellWidget( txtPOBox, 3, 3, 1, 2 ); |
351 | */ | 370 | */ |
352 | l = new QLabel( tr( "City" ), container ); | 371 | l = new QLabel( tr( "City" ), container ); |
353 | gl->addWidget( l, 2, 0 ); | 372 | gl->addWidget( l, 2, 0 ); |
354 | txtCity = new QLineEdit( container ); | 373 | txtCity = new QLineEdit( container ); |
355 | gl->addMultiCellWidget( txtCity, 2, 2, 1, 2 ); | 374 | gl->addMultiCellWidget( txtCity, 2, 2, 1, 2 ); |
356 | 375 | ||
357 | l = new QLabel( tr( "State" ), container ); | 376 | l = new QLabel( tr( "State" ), container ); |
358 | gl->addWidget( l, 3, 0 ); | 377 | gl->addWidget( l, 3, 0 ); |
359 | txtState = new QLineEdit( container ); | 378 | txtState = new QLineEdit( container ); |
360 | gl->addMultiCellWidget( txtState, 3, 3, 1, 2 ); | 379 | gl->addMultiCellWidget( txtState, 3, 3, 1, 2 ); |
361 | 380 | ||
362 | l = new QLabel( tr( "Zip Code" ), container ); | 381 | l = new QLabel( tr( "Zip Code" ), container ); |
363 | gl->addWidget( l, 4, 0 ); | 382 | gl->addWidget( l, 4, 0 ); |
364 | txtZip = new QLineEdit( container ); | 383 | txtZip = new QLineEdit( container ); |
365 | gl->addMultiCellWidget( txtZip, 4, 4, 1, 2 ); | 384 | gl->addMultiCellWidget( txtZip, 4, 4, 1, 2 ); |
366 | 385 | ||
367 | l = new QLabel( tr( "Country" ), container ); | 386 | l = new QLabel( tr( "Country" ), container ); |
368 | gl->addWidget( l, 5, 0 ); | 387 | gl->addWidget( l, 5, 0 ); |
369 | cmbCountry = new QComboBox( TRUE, container ); | 388 | cmbCountry = new QComboBox( TRUE, container ); |
370 | cmbCountry->insertItem( tr( "" ) ); | 389 | cmbCountry->insertItem( tr( "" ) ); |
371 | cmbCountry->insertItem( tr( "United States" ) ); | 390 | cmbCountry->insertItem( tr( "United States" ) ); |
372 | cmbCountry->insertItem( tr( "United Kingdom" ) ); | 391 | cmbCountry->insertItem( tr( "United Kingdom" ) ); |
373 | cmbCountry->insertItem( tr( "Japan" ) ); | 392 | cmbCountry->insertItem( tr( "Japan" ) ); |
374 | cmbCountry->insertItem( tr( "France" ) ); | 393 | cmbCountry->insertItem( tr( "France" ) ); |
375 | cmbCountry->insertItem( tr( "Germany" ) ); | 394 | cmbCountry->insertItem( tr( "Germany" ) ); |
376 | cmbCountry->insertItem( tr( "Norway" ) ); | 395 | cmbCountry->insertItem( tr( "Norway" ) ); |
377 | cmbCountry->insertItem( tr( "Canada" ) ); | 396 | cmbCountry->insertItem( tr( "Canada" ) ); |
378 | 397 | ||
379 | gl->addMultiCellWidget( cmbCountry, 5, 5, 1, 2 ); | 398 | gl->addMultiCellWidget( cmbCountry, 5, 5, 1, 2 ); |
380 | 399 | ||
381 | tabMain->insertTab( tabViewport, tr( "Address" ) ); | 400 | tabMain->insertTab( tabViewport, tr( "Address" ) ); |
382 | 401 | ||
383 | tabViewport = new QWidget ( tabMain ); | 402 | tabViewport = new QWidget ( tabMain ); |
384 | 403 | ||
385 | vb = new QVBoxLayout( tabViewport ); | 404 | vb = new QVBoxLayout( tabViewport ); |
386 | 405 | ||
387 | svDetails = new QScrollView( tabViewport ); | 406 | svDetails = new QScrollView( tabViewport ); |
388 | vb->addWidget( svDetails, 0, 0 ); | 407 | vb->addWidget( svDetails, 0, 0 ); |
389 | svDetails->setResizePolicy( QScrollView::AutoOneFit ); | 408 | svDetails->setResizePolicy( QScrollView::AutoOneFit ); |
390 | svDetails->setFrameStyle( QFrame::NoFrame ); | 409 | svDetails->setFrameStyle( QFrame::NoFrame ); |
391 | 410 | ||
392 | container = new QWidget( svDetails->viewport() ); | 411 | container = new QWidget( svDetails->viewport() ); |
393 | svDetails->addChild( container ); | 412 | svDetails->addChild( container ); |
394 | 413 | ||
395 | gl = new QGridLayout( container, 1, 2, 2, 3 ); | 414 | gl = new QGridLayout( container, 1, 2, 2, 3 ); |
396 | 415 | ||
397 | QStringList::ConstIterator it = slDynamicEntries->begin(); | 416 | QStringList::ConstIterator it = slDynamicEntries->begin(); |
398 | for (i = 0; it != slDynamicEntries->end(); i++, ++it) { | 417 | for (i = 0; it != slDynamicEntries->end(); i++, ++it) { |
399 | l = new QLabel( *it, container ); | 418 | l = new QLabel( *it, container ); |
400 | listName.append( l ); | 419 | listName.append( l ); |
401 | gl->addWidget( l, i, 0 ); | 420 | gl->addWidget( l, i, 0 ); |
402 | QLineEdit *e = new QLineEdit( container ); | 421 | QLineEdit *e = new QLineEdit( container ); |
403 | listValue.append( e ); | 422 | listValue.append( e ); |
404 | gl->addWidget( e, i, 1); | 423 | gl->addWidget( e, i, 1); |
405 | } | 424 | } |
406 | 425 | ||
407 | l = new QLabel( tr("Gender"), container ); | 426 | l = new QLabel( tr("Gender"), container ); |
408 | gl->addWidget( l, slDynamicEntries->count(), 0 ); | 427 | gl->addWidget( l, slDynamicEntries->count(), 0 ); |
409 | cmbGender = new QComboBox( container ); | 428 | cmbGender = new QComboBox( container ); |
410 | cmbGender->insertItem( "", 0 ); | 429 | cmbGender->insertItem( "", 0 ); |
411 | cmbGender->insertItem( tr("Male"), 1); | 430 | cmbGender->insertItem( tr("Male"), 1); |
412 | cmbGender->insertItem( tr("Female"), 2); | 431 | cmbGender->insertItem( tr("Female"), 2); |
413 | gl->addWidget( cmbGender, slDynamicEntries->count(), 1 ); | 432 | gl->addWidget( cmbGender, slDynamicEntries->count(), 1 ); |
414 | 433 | ||
415 | tabMain->insertTab( tabViewport, tr( "Details" ) ); | 434 | tabMain->insertTab( tabViewport, tr( "Details" ) ); |
416 | 435 | ||
417 | dlgNote = new QDialog( this, "Note Dialog", TRUE ); | 436 | dlgNote = new QDialog( this, "Note Dialog", TRUE ); |
418 | dlgNote->setCaption( tr("Enter Note") ); | 437 | dlgNote->setCaption( tr("Enter Note") ); |
419 | QVBoxLayout *vbNote = new QVBoxLayout( dlgNote ); | 438 | QVBoxLayout *vbNote = new QVBoxLayout( dlgNote ); |
420 | txtNote = new QMultiLineEdit( dlgNote ); | 439 | txtNote = new QMultiLineEdit( dlgNote ); |
421 | vbNote->addWidget( txtNote ); | 440 | vbNote->addWidget( txtNote ); |
422 | connect( btnNote, SIGNAL(clicked()), this, SLOT(slotNote()) ); | 441 | connect( btnNote, SIGNAL(clicked()), this, SLOT(slotNote()) ); |
423 | 442 | ||
424 | dlgName = new QDialog( this, "Name Dialog", TRUE ); | 443 | dlgName = new QDialog( this, "Name Dialog", TRUE ); |
425 | dlgName->setCaption( tr("Edit Name") ); | 444 | dlgName->setCaption( tr("Edit Name") ); |
426 | gl = new QGridLayout( dlgName, 4, 2, 2, 3 ); | 445 | gl = new QGridLayout( dlgName, 4, 2, 2, 3 ); |
427 | 446 | ||
428 | l = new QLabel( tr("First Name"), dlgName ); | 447 | l = new QLabel( tr("First Name"), dlgName ); |
429 | gl->addWidget( l, 0, 0 ); | 448 | gl->addWidget( l, 0, 0 ); |
430 | txtFirstName = new QLineEdit( dlgName ); | 449 | txtFirstName = new QLineEdit( dlgName ); |
431 | gl->addWidget( txtFirstName, 0, 1 ); | 450 | gl->addWidget( txtFirstName, 0, 1 ); |
432 | 451 | ||
433 | l = new QLabel( tr("Middle Name"), dlgName ); | 452 | l = new QLabel( tr("Middle Name"), dlgName ); |
434 | gl->addWidget( l, 1, 0 ); | 453 | gl->addWidget( l, 1, 0 ); |
435 | txtMiddleName = new QLineEdit( dlgName ); | 454 | txtMiddleName = new QLineEdit( dlgName ); |
436 | gl->addWidget( txtMiddleName, 1, 1 ); | 455 | gl->addWidget( txtMiddleName, 1, 1 ); |
437 | 456 | ||
438 | l = new QLabel( tr("Last Name"), dlgName ); | 457 | l = new QLabel( tr("Last Name"), dlgName ); |
439 | gl->addWidget( l, 2, 0 ); | 458 | gl->addWidget( l, 2, 0 ); |
440 | txtLastName = new QLineEdit( dlgName ); | 459 | txtLastName = new QLineEdit( dlgName ); |
441 | gl->addWidget( txtLastName, 2, 1 ); | 460 | gl->addWidget( txtLastName, 2, 1 ); |
442 | 461 | ||
443 | l = new QLabel( tr("Suffix"), dlgName ); | 462 | l = new QLabel( tr("Suffix"), dlgName ); |
444 | gl->addWidget( l, 3, 0 ); | 463 | gl->addWidget( l, 3, 0 ); |
445 | txtSuffix = new QLineEdit( dlgName ); | 464 | txtSuffix = new QLineEdit( dlgName ); |
446 | gl->addWidget( txtSuffix, 3, 1 ); | 465 | gl->addWidget( txtSuffix, 3, 1 ); |
447 | 466 | ||
448 | cmbChooserField1->insertStringList( *slChooserNames ); | 467 | cmbChooserField1->insertStringList( *slChooserNames ); |
449 | cmbChooserField2->insertStringList( *slChooserNames ); | 468 | cmbChooserField2->insertStringList( *slChooserNames ); |
450 | cmbChooserField3->insertStringList( *slChooserNames ); | 469 | cmbChooserField3->insertStringList( *slChooserNames ); |
451 | 470 | ||
452 | cmbChooserField1->setCurrentItem( 0 ); | 471 | cmbChooserField1->setCurrentItem( 0 ); |
453 | cmbChooserField2->setCurrentItem( 1 ); | 472 | cmbChooserField2->setCurrentItem( 1 ); |
454 | cmbChooserField3->setCurrentItem( 2 ); | 473 | cmbChooserField3->setCurrentItem( 2 ); |
455 | 474 | ||
456 | connect( btnFullName, SIGNAL(clicked()), this, SLOT(slotName()) ); | 475 | connect( btnFullName, SIGNAL(clicked()), this, SLOT(slotName()) ); |
457 | 476 | ||
458 | connect( txtFullName, SIGNAL(textChanged(const QString &)), this, SLOT(slotFullNameChange(const QString &)) ); | 477 | connect( txtFullName, SIGNAL(textChanged(const QString &)), this, SLOT(slotFullNameChange(const QString &)) ); |
459 | 478 | ||
460 | connect( txtChooserField1, SIGNAL(textChanged(const QString &)), this, SLOT(slotChooser1Change(const QString &)) ); | 479 | connect( txtChooserField1, SIGNAL(textChanged(const QString &)), this, SLOT(slotChooser1Change(const QString &)) ); |
461 | connect( txtChooserField2, SIGNAL(textChanged(const QString &)), this, SLOT(slotChooser2Change(const QString &)) ); | 480 | connect( txtChooserField2, SIGNAL(textChanged(const QString &)), this, SLOT(slotChooser2Change(const QString &)) ); |
462 | connect( txtChooserField3, SIGNAL(textChanged(const QString &)), this, SLOT(slotChooser3Change(const QString &)) ); | 481 | connect( txtChooserField3, SIGNAL(textChanged(const QString &)), this, SLOT(slotChooser3Change(const QString &)) ); |
463 | connect( txtAddress, SIGNAL(textChanged(const QString &)), this, SLOT(slotAddressChange(const QString &)) ); | 482 | connect( txtAddress, SIGNAL(textChanged(const QString &)), this, SLOT(slotAddressChange(const QString &)) ); |
464 | //connect( txtAddress2, SIGNAL(textChanged(const QString &)), this, SLOT(slotAddress2Change(const QString &)) ); | 483 | //connect( txtAddress2, SIGNAL(textChanged(const QString &)), this, SLOT(slotAddress2Change(const QString &)) ); |
465 | //connect( txtPOBox, SIGNAL(textChanged(const QString &)), this, SLOT(slotPOBoxChange(const QString &)) ); | 484 | //connect( txtPOBox, SIGNAL(textChanged(const QString &)), this, SLOT(slotPOBoxChange(const QString &)) ); |
466 | connect( txtCity, SIGNAL(textChanged(const QString &)), this, SLOT(slotCityChange(const QString &)) ); | 485 | connect( txtCity, SIGNAL(textChanged(const QString &)), this, SLOT(slotCityChange(const QString &)) ); |
467 | connect( txtState, SIGNAL(textChanged(const QString &)), this, SLOT(slotStateChange(const QString &)) ); | 486 | connect( txtState, SIGNAL(textChanged(const QString &)), this, SLOT(slotStateChange(const QString &)) ); |
468 | connect( txtZip, SIGNAL(textChanged(const QString &)), this, SLOT(slotZipChange(const QString &)) ); | 487 | connect( txtZip, SIGNAL(textChanged(const QString &)), this, SLOT(slotZipChange(const QString &)) ); |
469 | connect( cmbCountry, SIGNAL(textChanged(const QString &)), this, SLOT(slotCountryChange(const QString &)) ); | 488 | connect( cmbCountry, SIGNAL(textChanged(const QString &)), this, SLOT(slotCountryChange(const QString &)) ); |
470 | connect( cmbCountry, SIGNAL(activated(const QString &)), this, SLOT(slotCountryChange(const QString &)) ); | 489 | connect( cmbCountry, SIGNAL(activated(const QString &)), this, SLOT(slotCountryChange(const QString &)) ); |
471 | connect( cmbChooserField1, SIGNAL(activated(int)), this, SLOT(slotCmbChooser1Change(int)) ); | 490 | connect( cmbChooserField1, SIGNAL(activated(int)), this, SLOT(slotCmbChooser1Change(int)) ); |
472 | connect( cmbChooserField2, SIGNAL(activated(int)), this, SLOT(slotCmbChooser2Change(int)) ); | 491 | connect( cmbChooserField2, SIGNAL(activated(int)), this, SLOT(slotCmbChooser2Change(int)) ); |
473 | connect( cmbChooserField3, SIGNAL(activated(int)), this, SLOT(slotCmbChooser3Change(int)) ); | 492 | connect( cmbChooserField3, SIGNAL(activated(int)), this, SLOT(slotCmbChooser3Change(int)) ); |
474 | connect( cmbAddress, SIGNAL(activated(int)), this, SLOT(slotAddressTypeChange(int)) ); | 493 | connect( cmbAddress, SIGNAL(activated(int)), this, SLOT(slotAddressTypeChange(int)) ); |
475 | new QPEDialogListener(this); | 494 | new QPEDialogListener(this); |
476 | } | 495 | } |
477 | 496 | ||
478 | void ContactEditor::initMap() | 497 | void ContactEditor::initMap() |
479 | { | 498 | { |
480 | /* | 499 | /* |
481 | // since the fields and the XML fields exist, create a map | 500 | // since the fields and the XML fields exist, create a map |
482 | // between them... | 501 | // between them... |
483 | Config cfg1( "AddressBook" ); | 502 | Config cfg1( "AddressBook" ); |
484 | Config cfg2( "AddressBook" ); | 503 | Config cfg2( "AddressBook" ); |
485 | QString strCfg1, | 504 | QString strCfg1, |
486 | strCfg2; | 505 | strCfg2; |
487 | int i; | 506 | int i; |
488 | 507 | ||
489 | // This stuff better exist... | 508 | // This stuff better exist... |
490 | cfg1.setGroup( "AddressFields" ); | 509 | cfg1.setGroup( "AddressFields" ); |
491 | o cfg2.setGroup( "XMLFields" ); | 510 | o cfg2.setGroup( "XMLFields" ); |
492 | i = 0; | 511 | i = 0; |
493 | strCfg1 = cfg1.readEntry( "Field" + QString::number(i), QString::null ); | 512 | strCfg1 = cfg1.readEntry( "Field" + QString::number(i), QString::null ); |
494 | strCfg2 = cfg2.readEntry( "XMLField" + QString::number(i++), | 513 | strCfg2 = cfg2.readEntry( "XMLField" + QString::number(i++), |
495 | QString::null ); | 514 | QString::null ); |
496 | while ( !strCfg1.isNull() && !strCfg2.isNull() ) { | 515 | while ( !strCfg1.isNull() && !strCfg2.isNull() ) { |
497 | mapField.insert( strCfg1, strCfg2 ); | 516 | mapField.insert( strCfg1, strCfg2 ); |
498 | strCfg1 = cfg1.readEntry( "Field" + QString::number(i), | 517 | strCfg1 = cfg1.readEntry( "Field" + QString::number(i), |
499 | QString::null ); | 518 | QString::null ); |
500 | strCfg2 = cfg2.readEntry( "XMLField" + QString::number(i++), | 519 | strCfg2 = cfg2.readEntry( "XMLField" + QString::number(i++), |
501 | QString::null ); | 520 | QString::null ); |
502 | } | 521 | } |
503 | */ | 522 | */ |
504 | } | 523 | } |
505 | 524 | ||
506 | void ContactEditor::slotChooser1Change( const QString &textChanged ) { | 525 | void ContactEditor::slotChooser1Change( const QString &textChanged ) { |
507 | 526 | ||
508 | int index = cmbChooserField1->currentItem(); | 527 | int index = cmbChooserField1->currentItem(); |
509 | 528 | ||
510 | (*slChooserValues)[index] = textChanged; | 529 | (*slChooserValues)[index] = textChanged; |
511 | 530 | ||
512 | } | 531 | } |