summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/pim/addressbook/TODO7
-rw-r--r--core/pim/addressbook/abtable.cpp76
-rw-r--r--core/pim/addressbook/addressbook.cpp47
-rw-r--r--core/pim/addressbook/addressbook.h3
-rw-r--r--core/pim/addressbook/configdlg.cpp16
-rw-r--r--core/pim/addressbook/configdlg.h4
-rw-r--r--core/pim/addressbook/configdlg_base.ui105
-rw-r--r--core/pim/addressbook/opie-addressbook.control2
-rw-r--r--core/pim/addressbook/picker.cpp12
9 files changed, 227 insertions, 45 deletions
diff --git a/core/pim/addressbook/TODO b/core/pim/addressbook/TODO
index 796dc49..80ec2d9 100644
--- a/core/pim/addressbook/TODO
+++ b/core/pim/addressbook/TODO
@@ -1,17 +1,18 @@
1Stuff todo until OPIE 1.0 : 1Stuff todo until OPIE 1.0 :
2 2
3Pending bugfixes from previous work:
4
3Urgent: 5Urgent:
4 6
5- Font menu is invisible using german translation 7- Font menu is invisible using german translation
6 8
7Important: 9Important:
8 10
11- Overview window cleanup needed..
9- Cursor keys should work in detail-view (ablabel) 12- Cursor keys should work in detail-view (ablabel)
10- "What's this" should be added 13- "What's this" should be added
11- Store last settings of combo-boxes 14- Store last settings of combo-boxes
12- Mail-Icon is missing
13- Overview window cleanup needed..
14- Finishing of new View functions (List, Phonebook...) 15- Finishing of new View functions (List, Phonebook...)
15- The names of the countries are sorted by there english names, only.. 16- The names of the countries are sorted by there english names, only..
16 Even if they are translated.. :S 17 Even if they are translated.. :S
17- Reload if contacts were changed externally 18- Reload if contacts were changed externally
@@ -33,4 +34,6 @@ Fixed:
33 qpdf has. 34 qpdf has.
34- Adding a configuration dialog 35- Adding a configuration dialog
35- Picker: Activated letter schould be more visible 36- Picker: Activated letter schould be more visible
36- Advanced handling of cursor keys (search..) 37- Advanced handling of cursor keys (search..)
38- Mail-Icon is missing
39- Use opie-mail insted of qt-mail if possible.
diff --git a/core/pim/addressbook/abtable.cpp b/core/pim/addressbook/abtable.cpp
index 97b26db..4feadeb 100644
--- a/core/pim/addressbook/abtable.cpp
+++ b/core/pim/addressbook/abtable.cpp
@@ -685,43 +685,55 @@ void AbTable::slotDoFind( const QString &findString, bool caseSensitive, bool us
685 r.setCaseSensitive( caseSensitive ); 685 r.setCaseSensitive( caseSensitive );
686 r.setWildcard( !useRegExp ); 686 r.setWildcard( !useRegExp );
687 rows = numRows(); 687 rows = numRows();
688 static bool wrapAround = true; 688 static bool wrapAround = true;
689 bool try_again = false;
689 690
690 if ( !backwards ) { 691 // We will loop until we found an entry or found nothing.
691 for ( row = currFindRow + 1; row < rows; row++ ) { 692 do {
692 ati = static_cast<AbTableItem*>( item(row, 0) ); 693 if ( !backwards ) {
693 if ( contactCompare( contactList[ati], r, category ) ) 694 for ( row = currFindRow + 1; row < rows; row++ ) {
694 break; 695 ati = static_cast<AbTableItem*>( item(row, 0) );
696 if ( contactCompare( contactList[ati], r, category ) ){
697 try_again = false;
698 break;
699 }
700 }
701 } else {
702 for ( row = currFindRow - 1; row > -1; row-- ) {
703 ati = static_cast<AbTableItem*>( item(row, 0) );
704 if ( contactCompare( contactList[ati], r, category ) ){
705 try_again = false;
706 break;
707 }
708 }
695 } 709 }
696 } else { 710 if ( row >= rows || row < 0 ) {
697 for ( row = currFindRow - 1; row > -1; row-- ) { 711 if ( row < 0 )
698 ati = static_cast<AbTableItem*>( item(row, 0) ); 712 currFindRow = rows;
699 if ( contactCompare( contactList[ati], r, category ) ) 713 else
700 break; 714 currFindRow = -1;
715
716 if ( wrapAround ){
717 emit signalWrapAround();
718 try_again = true;
719 }else{
720 emit signalNotFound();
721 try_again = false;
722 }
723
724 wrapAround = !wrapAround;
725 } else {
726 currFindRow = row;
727 QTableSelection foundSelection;
728 foundSelection.init( currFindRow, 0 );
729 foundSelection.expandTo( currFindRow, numCols() - 1 );
730 addSelection( foundSelection );
731 setCurrentCell( currFindRow, 0 /* numCols() - 1 */ );
732 wrapAround = true;
733 try_again = false;
701 } 734 }
702 } 735 } while ( try_again );
703 if ( row >= rows || row < 0 ) {
704 if ( row < 0 )
705 currFindRow = rows;
706 else
707 currFindRow = -1;
708
709 if ( wrapAround )
710 emit signalWrapAround();
711 else
712 emit signalNotFound();
713
714 wrapAround = !wrapAround;
715 } else {
716 currFindRow = row;
717 QTableSelection foundSelection;
718 foundSelection.init( currFindRow, 0 );
719 foundSelection.expandTo( currFindRow, numCols() - 1 );
720 addSelection( foundSelection );
721 setCurrentCell( currFindRow, 0 /* numCols() - 1 */ );
722 wrapAround = true;
723 }
724} 736}
725 737
726static bool contactCompare( const OContact &cnt, const QRegExp &r, int category ) 738static bool contactCompare( const OContact &cnt, const QRegExp &r, int category )
727{ 739{
diff --git a/core/pim/addressbook/addressbook.cpp b/core/pim/addressbook/addressbook.cpp
index 3466801..39d8321 100644
--- a/core/pim/addressbook/addressbook.cpp
+++ b/core/pim/addressbook/addressbook.cpp
@@ -79,8 +79,10 @@ AddressbookWindow::AddressbookWindow( QWidget *parent, const char *name,
79 abEditor(0), 79 abEditor(0),
80 useRegExp(false), 80 useRegExp(false),
81 doNotifyWrapAround(true), 81 doNotifyWrapAround(true),
82 caseSensitive(false), 82 caseSensitive(false),
83 m_useQtMail(true),
84 m_useOpieMail(false),
83 bAbEditFirstTime(TRUE), 85 bAbEditFirstTime(TRUE),
84 syncing(FALSE) 86 syncing(FALSE)
85{ 87{
86 isLoading = true; 88 isLoading = true;
@@ -90,8 +92,12 @@ AddressbookWindow::AddressbookWindow( QWidget *parent, const char *name,
90 cfg.setGroup("Search"); 92 cfg.setGroup("Search");
91 useRegExp = cfg.readBoolEntry( "useRegExp" ); 93 useRegExp = cfg.readBoolEntry( "useRegExp" );
92 caseSensitive = cfg.readBoolEntry( "caseSensitive" ); 94 caseSensitive = cfg.readBoolEntry( "caseSensitive" );
93 doNotifyWrapAround = cfg.readBoolEntry( "doNotifyWrapAround" ); 95 doNotifyWrapAround = cfg.readBoolEntry( "doNotifyWrapAround" );
96 cfg.setGroup("Mail");
97 m_useQtMail = cfg.readBoolEntry( "useQtMail" );
98 m_useOpieMail=cfg.readBoolEntry( "useOpieMail" );
99
94 100
95 initFields(); 101 initFields();
96 102
97 setCaption( tr("Contacts") ); 103 setCaption( tr("Contacts") );
@@ -168,9 +174,9 @@ AddressbookWindow::AddressbookWindow( QWidget *parent, const char *name,
168 a = new QAction( tr( "Close Find" ), Resource::loadPixmap( "close" ), QString::null, 0, this, 0 ); 174 a = new QAction( tr( "Close Find" ), Resource::loadPixmap( "close" ), QString::null, 0, this, 0 );
169 connect( a, SIGNAL( activated() ), this, SLOT( slotFindClose() ) ); 175 connect( a, SIGNAL( activated() ), this, SLOT( slotFindClose() ) );
170 a->addTo( searchBar ); 176 a->addTo( searchBar );
171 177
172 a = new QAction( tr( "Write Mail To" ), Resource::loadPixmap( "qtmail/reply" ), 178 a = new QAction( tr( "Write Mail To" ), Resource::loadPixmap( "mail/sendmail" ),
173 QString::null, 0, this, 0 ); 179 QString::null, 0, this, 0 );
174 //a->setEnabled( FALSE ); we got support for it now :) zecke 180 //a->setEnabled( FALSE ); we got support for it now :) zecke
175 actionMail = a; 181 actionMail = a;
176 connect( a, SIGNAL( activated() ), this, SLOT( writeMail() ) ); 182 connect( a, SIGNAL( activated() ), this, SLOT( writeMail() ) );
@@ -281,14 +287,18 @@ void AddressbookWindow::slotConfig()
281 ConfigDlg* dlg = new ConfigDlg( this, "Config" ); 287 ConfigDlg* dlg = new ConfigDlg( this, "Config" );
282 dlg -> setUseRegExp ( useRegExp ); 288 dlg -> setUseRegExp ( useRegExp );
283 dlg -> setBeCaseSensitive( caseSensitive ); 289 dlg -> setBeCaseSensitive( caseSensitive );
284 dlg -> setSignalWrapAround( doNotifyWrapAround ); 290 dlg -> setSignalWrapAround( doNotifyWrapAround );
291 dlg -> setQtMail ( m_useQtMail );
292 dlg -> setOpieMail ( m_useOpieMail );
285 dlg -> showMaximized(); 293 dlg -> showMaximized();
286 if ( dlg -> exec() ) { 294 if ( dlg -> exec() ) {
287 qWarning ("Config Dialog accepted !"); 295 qWarning ("Config Dialog accepted !");
288 useRegExp = dlg -> useRegExp(); 296 useRegExp = dlg -> useRegExp();
289 caseSensitive = dlg -> beCaseSensitive(); 297 caseSensitive = dlg -> beCaseSensitive();
290 doNotifyWrapAround = dlg -> signalWrapAround(); 298 doNotifyWrapAround = dlg -> signalWrapAround();
299 m_useQtMail = dlg -> useQtMail();
300 m_useOpieMail= dlg -> useOpieMail();
291 } 301 }
292 302
293 delete dlg; 303 delete dlg;
294} 304}
@@ -379,8 +389,11 @@ AddressbookWindow::~AddressbookWindow()
379 cfg.setGroup("Search"); 389 cfg.setGroup("Search");
380 cfg.writeEntry("useRegExp", useRegExp); 390 cfg.writeEntry("useRegExp", useRegExp);
381 cfg.writeEntry("caseSensitive", caseSensitive); 391 cfg.writeEntry("caseSensitive", caseSensitive);
382 cfg.writeEntry("doNotifyWrapAround", doNotifyWrapAround); 392 cfg.writeEntry("doNotifyWrapAround", doNotifyWrapAround);
393 cfg.setGroup("Mail");
394 cfg.writeEntry( "useQtMail", m_useQtMail );
395 cfg.writeEntry( "useOpieMail", m_useOpieMail);
383} 396}
384 397
385void AddressbookWindow::slotUpdateToolbar() 398void AddressbookWindow::slotUpdateToolbar()
386{ 399{
@@ -493,10 +506,38 @@ void AddressbookWindow::writeMail()
493{ 506{
494 OContact c = abList->currentEntry(); 507 OContact c = abList->currentEntry();
495 QString name = c.fileAs(); 508 QString name = c.fileAs();
496 QString email = c.defaultEmail(); 509 QString email = c.defaultEmail();
497 QCopEnvelope e("QPE/Application/qtmail", "writeMail(QString,QString)"); 510
498 e << name << email; 511 // I prefer the OPIE-Environment variable before the
512 // QPE-one..
513 QString basepath = QString::fromLatin1( getenv("OPIEDIR") );
514 if ( basepath.isEmpty() )
515 basepath = QString::fromLatin1( getenv("QPEDIR") );
516
517 // Try to access the preferred. If not possible, try to
518 // switch to the other one..
519 if ( m_useQtMail ){
520 qWarning ("Accessing: %s", (basepath + "/bin/qtmail").latin1());
521 if ( QFile::exists( basepath + "/bin/qtmail" ) ){
522 qWarning ("QCop");
523 QCopEnvelope e("QPE/Application/qtmail", "writeMail(QString,QString)");
524 e << name << email;
525 return;
526 } else
527 m_useOpieMail = true;
528 }
529 if ( m_useOpieMail ){
530 qWarning ("Accessing: %s", (basepath + "/bin/mail").latin1());
531 if ( QFile::exists( basepath + "/bin/mail" ) ){
532 qWarning ("QCop");
533 QCopEnvelope e("QPE/Application/mail", "writeMail(QString,QString)");
534 e << name << email;
535 return;
536 } else
537 m_useQtMail = true;
538 }
539
499} 540}
500 541
501static const char * beamfile = "/tmp/obex/contact.vcf"; 542static const char * beamfile = "/tmp/obex/contact.vcf";
502 543
diff --git a/core/pim/addressbook/addressbook.h b/core/pim/addressbook/addressbook.h
index 299ed70..8027ccf 100644
--- a/core/pim/addressbook/addressbook.h
+++ b/core/pim/addressbook/addressbook.h
@@ -117,8 +117,11 @@ private:
117 bool useRegExp; 117 bool useRegExp;
118 bool doNotifyWrapAround; 118 bool doNotifyWrapAround;
119 bool caseSensitive; 119 bool caseSensitive;
120 120
121 bool m_useQtMail;
122 bool m_useOpieMail;
123
121 QAction *actionNew, *actionEdit, *actionTrash, *actionFind, *actionBeam, *actionPersonal, *actionMail; 124 QAction *actionNew, *actionEdit, *actionTrash, *actionFind, *actionBeam, *actionPersonal, *actionMail;
122 125
123 bool bAbEditFirstTime; 126 bool bAbEditFirstTime;
124 int viewMargin; 127 int viewMargin;
diff --git a/core/pim/addressbook/configdlg.cpp b/core/pim/addressbook/configdlg.cpp
index b7c3b77..c0195d1 100644
--- a/core/pim/addressbook/configdlg.cpp
+++ b/core/pim/addressbook/configdlg.cpp
@@ -14,8 +14,16 @@ bool ConfigDlg::useRegExp() const
14bool ConfigDlg::useWildCards() const 14bool ConfigDlg::useWildCards() const
15{ 15{
16 return m_useWildCard->isOn(); 16 return m_useWildCard->isOn();
17} 17}
18bool ConfigDlg::useQtMail() const
19{
20 return m_useQtMail->isOn();
21}
22bool ConfigDlg::useOpieMail() const
23{
24 return m_useOpieMail->isOn();
25}
18bool ConfigDlg::beCaseSensitive() const 26bool ConfigDlg::beCaseSensitive() const
19{ 27{
20 return m_useCaseSensitive->isChecked(); 28 return m_useCaseSensitive->isChecked();
21} 29}
@@ -38,8 +46,16 @@ void ConfigDlg::setBeCaseSensitive( bool v )
38void ConfigDlg::setSignalWrapAround( bool v ) 46void ConfigDlg::setSignalWrapAround( bool v )
39{ 47{
40 m_signalWrapAround->setChecked( v ); 48 m_signalWrapAround->setChecked( v );
41} 49}
50void ConfigDlg::setQtMail( bool v )
51{
52 m_useQtMail->setChecked( v );
53}
54void ConfigDlg::setOpieMail( bool v )
55{
56 m_useOpieMail->setChecked( v );
57}
42 58
43 59
44 60
45 61
diff --git a/core/pim/addressbook/configdlg.h b/core/pim/addressbook/configdlg.h
index 8be469b..34e9718 100644
--- a/core/pim/addressbook/configdlg.h
+++ b/core/pim/addressbook/configdlg.h
@@ -13,13 +13,17 @@ public:
13 bool useRegExp() const; 13 bool useRegExp() const;
14 bool useWildCards() const; 14 bool useWildCards() const;
15 bool beCaseSensitive() const; 15 bool beCaseSensitive() const;
16 bool signalWrapAround() const; 16 bool signalWrapAround() const;
17 bool useQtMail() const;
18 bool useOpieMail() const;
17 19
18 void setUseRegExp( bool v ); 20 void setUseRegExp( bool v );
19 void setUseWildCards( bool v ); 21 void setUseWildCards( bool v );
20 void setBeCaseSensitive( bool v ); 22 void setBeCaseSensitive( bool v );
21 void setSignalWrapAround( bool v ); 23 void setSignalWrapAround( bool v );
24 void setQtMail( bool v );
25 void setOpieMail( bool v );
22}; 26};
23 27
24 28
25#endif 29#endif
diff --git a/core/pim/addressbook/configdlg_base.ui b/core/pim/addressbook/configdlg_base.ui
index e082702..d3ea12e 100644
--- a/core/pim/addressbook/configdlg_base.ui
+++ b/core/pim/addressbook/configdlg_base.ui
@@ -11,9 +11,9 @@
11 <name>geometry</name> 11 <name>geometry</name>
12 <rect> 12 <rect>
13 <x>0</x> 13 <x>0</x>
14 <y>0</y> 14 <y>0</y>
15 <width>227</width> 15 <width>217</width>
16 <height>287</height> 16 <height>287</height>
17 </rect> 17 </rect>
18 </property> 18 </property>
19 <property stdset="1"> 19 <property stdset="1">
@@ -152,8 +152,111 @@
152 </property> 152 </property>
153 </spacer> 153 </spacer>
154 </vbox> 154 </vbox>
155 </widget> 155 </widget>
156 <widget>
157 <class>QWidget</class>
158 <property stdset="1">
159 <name>name</name>
160 <cstring>tab</cstring>
161 </property>
162 <attribute>
163 <name>title</name>
164 <string>Mail</string>
165 </attribute>
166 <vbox>
167 <property stdset="1">
168 <name>margin</name>
169 <number>5</number>
170 </property>
171 <property stdset="1">
172 <name>spacing</name>
173 <number>6</number>
174 </property>
175 <widget>
176 <class>QButtonGroup</class>
177 <property stdset="1">
178 <name>name</name>
179 <cstring>ButtonGroup2</cstring>
180 </property>
181 <property stdset="1">
182 <name>title</name>
183 <string>Mail</string>
184 </property>
185 <vbox>
186 <property stdset="1">
187 <name>margin</name>
188 <number>11</number>
189 </property>
190 <property stdset="1">
191 <name>spacing</name>
192 <number>6</number>
193 </property>
194 <widget>
195 <class>QRadioButton</class>
196 <property stdset="1">
197 <name>name</name>
198 <cstring>m_useQtMail</cstring>
199 </property>
200 <property stdset="1">
201 <name>text</name>
202 <string>Prefer QT-Mail </string>
203 </property>
204 <property stdset="1">
205 <name>checked</name>
206 <bool>true</bool>
207 </property>
208 </widget>
209 <widget>
210 <class>QRadioButton</class>
211 <property stdset="1">
212 <name>name</name>
213 <cstring>m_useOpieMail</cstring>
214 </property>
215 <property stdset="1">
216 <name>text</name>
217 <string>Prefer Opie-Mail</string>
218 </property>
219 </widget>
220 <widget>
221 <class>QLabel</class>
222 <property stdset="1">
223 <name>name</name>
224 <cstring>TextLabel1</cstring>
225 </property>
226 <property stdset="1">
227 <name>text</name>
228 <string>Notice: QT-Mail is just
229provided in the SHARP
230default ROM. Opie-Mail
231is provided free !</string>
232 </property>
233 </widget>
234 </vbox>
235 </widget>
236 <spacer>
237 <property>
238 <name>name</name>
239 <cstring>Spacer2</cstring>
240 </property>
241 <property stdset="1">
242 <name>orientation</name>
243 <enum>Vertical</enum>
244 </property>
245 <property stdset="1">
246 <name>sizeType</name>
247 <enum>Expanding</enum>
248 </property>
249 <property>
250 <name>sizeHint</name>
251 <size>
252 <width>20</width>
253 <height>20</height>
254 </size>
255 </property>
256 </spacer>
257 </vbox>
258 </widget>
156 </widget> 259 </widget>
157 <widget> 260 <widget>
158 <class>QLayoutWidget</class> 261 <class>QLayoutWidget</class>
159 <property stdset="1"> 262 <property stdset="1">
diff --git a/core/pim/addressbook/opie-addressbook.control b/core/pim/addressbook/opie-addressbook.control
index 14b0770..0a04ee6 100644
--- a/core/pim/addressbook/opie-addressbook.control
+++ b/core/pim/addressbook/opie-addressbook.control
@@ -1,8 +1,8 @@
1Files: bin/addressbook apps/1Pim/addressbook.desktop 1Files: bin/addressbook apps/1Pim/addressbook.desktop
2Priority: optional 2Priority: optional
3Section: opie/applications 3Section: opie/applications
4Maintainer: Warwick Allison <warwick@trolltech.com> 4Maintainer: Stefan Eilers <eilers.stefan@epost.de>
5Architecture: arm 5Architecture: arm
6Version: $QPE_VERSION-$SUB_VERSION 6Version: $QPE_VERSION-$SUB_VERSION
7Depends: opie-base ($QPE_VERSION) libopie 7Depends: opie-base ($QPE_VERSION) libopie
8Description: Contacts 8Description: Contacts
diff --git a/core/pim/addressbook/picker.cpp b/core/pim/addressbook/picker.cpp
index 7f4acb0..2c7dd71 100644
--- a/core/pim/addressbook/picker.cpp
+++ b/core/pim/addressbook/picker.cpp
@@ -92,11 +92,11 @@ void PickerLabel::mouseReleaseEvent( QMouseEvent* /* e */ )
92 QTimer::singleShot( 0, this, SLOT(emitClearSignal()) ); 92 QTimer::singleShot( 0, this, SLOT(emitClearSignal()) );
93 93
94 switch (currentLetter) { 94 switch (currentLetter) {
95 case 0: 95 case 0:
96 tmpStr = "<qt><u><font color=\"#7F0000\">"; 96 tmpStr = "<qt><u><b><font color=\"#FF00FF\">";
97 tmpStr += letter1; 97 tmpStr += letter1;
98 tmpStr += "</font></u>"; 98 tmpStr += "</font></b></u>";
99 tmpStr += letter2; 99 tmpStr += letter2;
100 tmpStr += letter3; 100 tmpStr += letter3;
101 tmpStr += "</qt>"; 101 tmpStr += "</qt>";
102 102
@@ -109,11 +109,11 @@ void PickerLabel::mouseReleaseEvent( QMouseEvent* /* e */ )
109 109
110 case 1: 110 case 1:
111 tmpStr = "<qt>"; 111 tmpStr = "<qt>";
112 tmpStr += letter1; 112 tmpStr += letter1;
113 tmpStr += "<u><font color=\"#7F0000\">"; 113 tmpStr += "<u><b><font color=\"#FF00FF\">";
114 tmpStr += letter2; 114 tmpStr += letter2;
115 tmpStr += "</font></u>"; 115 tmpStr += "</font></b></u>";
116 tmpStr += letter3; 116 tmpStr += letter3;
117 tmpStr += "</qt>"; 117 tmpStr += "</qt>";
118 118
119 setText(tmpStr); 119 setText(tmpStr);
@@ -126,11 +126,11 @@ void PickerLabel::mouseReleaseEvent( QMouseEvent* /* e */ )
126 case 2: 126 case 2:
127 tmpStr = "<qt>"; 127 tmpStr = "<qt>";
128 tmpStr += letter1; 128 tmpStr += letter1;
129 tmpStr += letter2; 129 tmpStr += letter2;
130 tmpStr += "<u><font color=\"#7F0000\">"; 130 tmpStr += "<u><b><font color=\"#FF00FF\">";
131 tmpStr += letter3; 131 tmpStr += letter3;
132 tmpStr += "</font></u></qt>"; 132 tmpStr += "</font></b></u></qt>";
133 133
134 setText(tmpStr); 134 setText(tmpStr);
135 135
136 currentLetter++; 136 currentLetter++;