summaryrefslogtreecommitdiffabout
authorzautrix <zautrix>2005-06-26 10:43:45 (UTC)
committer zautrix <zautrix>2005-06-26 10:43:45 (UTC)
commit98bc92a09eb27fef0efa9c3dc5e963f7faa0319c (patch) (unidiff)
treef80716d3e1239054a0a48bec6e9f67dd57e2156a
parentf27e8c6cc8abbd27f10167334d608c7e0af7f711 (diff)
downloadkdepimpi-98bc92a09eb27fef0efa9c3dc5e963f7faa0319c.zip
kdepimpi-98bc92a09eb27fef0efa9c3dc5e963f7faa0319c.tar.gz
kdepimpi-98bc92a09eb27fef0efa9c3dc5e963f7faa0319c.tar.bz2
details addressee better
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--bin/kdepim/kaddressbook/germantranslation.txt12
-rw-r--r--kabc/addresseeview.cpp200
-rw-r--r--kabc/addresseeview.h5
3 files changed, 181 insertions, 36 deletions
diff --git a/bin/kdepim/kaddressbook/germantranslation.txt b/bin/kdepim/kaddressbook/germantranslation.txt
index 5e5ed4c..473aa0e 100644
--- a/bin/kdepim/kaddressbook/germantranslation.txt
+++ b/bin/kdepim/kaddressbook/germantranslation.txt
@@ -729,53 +729,65 @@
729{ "Local from: ","Lokal von: " }, 729{ "Local from: ","Lokal von: " },
730{ "Synchronization summary:\n\n %d items added to local\n %d items added to remote\n %d items updated on local\n %d items updated on remote\n %d items deleted on local\n %d items deleted on remote\n %d incoming filtered out\n %d outgoing filtered out\n","Synchronisationsübersicht:\n\n %d lokal hinzugefügt\n %d fern hinzugefügt\n %d lokal geändert\n %d fern geändert\n %d lokal gelöscht\n %d fern gelöscht\n %d eingehende ausgefiltert\n %d ausgehende ausgefiltert\n" }, 730{ "Synchronization summary:\n\n %d items added to local\n %d items added to remote\n %d items updated on local\n %d items updated on remote\n %d items deleted on local\n %d items deleted on remote\n %d incoming filtered out\n %d outgoing filtered out\n","Synchronisationsübersicht:\n\n %d lokal hinzugefügt\n %d fern hinzugefügt\n %d lokal geändert\n %d fern geändert\n %d lokal gelöscht\n %d fern gelöscht\n %d eingehende ausgefiltert\n %d ausgehende ausgefiltert\n" },
731{ "Local calendar changed!\n","Lokaler Kalender geändert!\n" }, 731{ "Local calendar changed!\n","Lokaler Kalender geändert!\n" },
732{ "Write back","Schreibe zurück" }, 732{ "Write back","Schreibe zurück" },
733{ "Pi-Sync succesful!","Pi-Sync erfolgreich!" }, 733{ "Pi-Sync succesful!","Pi-Sync erfolgreich!" },
734{ "Received sync request","Sync Anfrage erhalten" }, 734{ "Received sync request","Sync Anfrage erhalten" },
735{ "Synchronizing from remote ...\n\nDo not use this application!\n\nIf syncing fails\nyou can close this dialog.","Ferne Synchronisation ...\n\nBenutze diese Anwendung nicht!\n\nWenn das Syncen fehlschlägt kann\ndieser Dialog geschlossen werden." }, 735{ "Synchronizing from remote ...\n\nDo not use this application!\n\nIf syncing fails\nyou can close this dialog.","Ferne Synchronisation ...\n\nBenutze diese Anwendung nicht!\n\nWenn das Syncen fehlschlägt kann\ndieser Dialog geschlossen werden." },
736{ "Saving Data to temp file ...","Speichere Daten in temp Datei..." }, 736{ "Saving Data to temp file ...","Speichere Daten in temp Datei..." },
737{ "Data saved to temp file!","Daten in temp Datei gespeichert!" }, 737{ "Data saved to temp file!","Daten in temp Datei gespeichert!" },
738{ "Sending file...","Sende Datei..." }, 738{ "Sending file...","Sende Datei..." },
739{ "Waiting for synced file...","Warte auf gesyncte Daten..." }, 739{ "Waiting for synced file...","Warte auf gesyncte Daten..." },
740{ "Receiving synced file...","Gesyncte Daten erhalten..." }, 740{ "Receiving synced file...","Gesyncte Daten erhalten..." },
741{ "Received %1 bytes","%1 Bytes erhalten" }, 741{ "Received %1 bytes","%1 Bytes erhalten" },
742{ "Writing file to disk...","Speichere Datei..." }, 742{ "Writing file to disk...","Speichere Datei..." },
743{ "Pi-Sync successful!","Pi-Sync erfolgreich!" }, 743{ "Pi-Sync successful!","Pi-Sync erfolgreich!" },
744{ "Clock skew of\nsyncing devices\nis %1 seconds!","Uhrzeitunterschied der\nsyncenden Geräte\nist %1 Sekunden!" }, 744{ "Clock skew of\nsyncing devices\nis %1 seconds!","Uhrzeitunterschied der\nsyncenden Geräte\nist %1 Sekunden!" },
745{ "Synchronize!","Synchronisiere!" }, 745{ "Synchronize!","Synchronisiere!" },
746{ "High clock skew!","Großer Uhrzeitunterschied!" }, 746{ "High clock skew!","Großer Uhrzeitunterschied!" },
747{ "ADJUST\nYOUR\nCLOCKS!","JUSTIERE\nDIE\nUHREN!" }, 747{ "ADJUST\nYOUR\nCLOCKS!","JUSTIERE\nDIE\nUHREN!" },
748{ "The clocks of the syncing\ndevices have a difference\nof more than 5 minutes.\nPlease adjust your clocks.\nYou may get wrong syncing results!\nPlease confirm synchronization!","Die Uhren der syncenden Geräte\nhaben einen Unterschied von\nmehr als 5 Minuten. Bitte die\nUhrzeiten anpassen. Sie können\nfalsche Sync-Resultate erhalten!\nBitte das Syncen bestätigen!" }, 748{ "The clocks of the syncing\ndevices have a difference\nof more than 5 minutes.\nPlease adjust your clocks.\nYou may get wrong syncing results!\nPlease confirm synchronization!","Die Uhren der syncenden Geräte\nhaben einen Unterschied von\nmehr als 5 Minuten. Bitte die\nUhrzeiten anpassen. Sie können\nfalsche Sync-Resultate erhalten!\nBitte das Syncen bestätigen!" },
749{ "Change search field enable jump bar","Ändere Suchfeld um Jumpbar anzuzeigen" }, 749{ "Change search field enable jump bar","Ändere Suchfeld um Jumpbar anzuzeigen" },
750{ "Search with '*' prefix (wildcard)","Suche mit '*' Prefix (Wildcard)" }, 750{ "Search with '*' prefix (wildcard)","Suche mit '*' Prefix (Wildcard)" },
751{ "Shrink searchfield in portrait view","Verkleinere Suchfeld im Portraitmodus" }, 751{ "Shrink searchfield in portrait view","Verkleinere Suchfeld im Portraitmodus" },
752{ "Edit new contact","Bearbeite neuen Kontakt" }, 752{ "Edit new contact","Bearbeite neuen Kontakt" },
753{ "Edit ","Bearbeite " }, 753{ "Edit ","Bearbeite " },
754{ "No contact changed!","Kein Kontakt verändert" }, 754{ "No contact changed!","Kein Kontakt verändert" },
755{ "%1 contacts changed!","%1 Kontakte geändert!" }, 755{ "%1 contacts changed!","%1 Kontakte geändert!" },
756{ "Mobile (home)","Handy (Arbeit)" }, 756{ "Mobile (home)","Handy (Arbeit)" },
757{ "Mobile (work)","Handy (Privat)" }, 757{ "Mobile (work)","Handy (Privat)" },
758{ "Def.Formatted Name","Def. Format. Name" }, 758{ "Def.Formatted Name","Def. Format. Name" },
759{ "Colors","Farben" }, 759{ "Colors","Farben" },
760{ "Alternating background of list views","Abwechselnder Hintergrund für Listen" }, 760{ "Alternating background of list views","Abwechselnder Hintergrund für Listen" },
761{ "Backup enabled","Backup angeschaltet" }, 761{ "Backup enabled","Backup angeschaltet" },
762{ "Use standard backup dir","Standard Backupverzeichnis" }, 762{ "Use standard backup dir","Standard Backupverzeichnis" },
763{ "Number of Backups:","Anzahl der Backups" }, 763{ "Number of Backups:","Anzahl der Backups" },
764{ "Make backup every ","Mache ein Backup alle " }, 764{ "Make backup every ","Mache ein Backup alle " },
765{ " days"," Tage" }, 765{ " days"," Tage" },
766{ "Creating backup ... please wait ...","Erzeuge Backup ... bitte warten ..." }, 766{ "Creating backup ... please wait ...","Erzeuge Backup ... bitte warten ..." },
767{ "Backup Failed!","Backup Problem!" }, 767{ "Backup Failed!","Backup Problem!" },
768{ "Try again now","Versuche jetzt nochmal" }, 768{ "Try again now","Versuche jetzt nochmal" },
769{ "Try again later","Versuche später nochmal" }, 769{ "Try again later","Versuche später nochmal" },
770{ "Try again tomorrow","Versuche morgen nochmal" }, 770{ "Try again tomorrow","Versuche morgen nochmal" },
771{ "Disable backup","Schalte Backup ab" }, 771{ "Disable backup","Schalte Backup ab" },
772{ "<b>Backup directory does not exist: </b>","<b>Backup Verzeichnis existiert nicht: </b>" }, 772{ "<b>Backup directory does not exist: </b>","<b>Backup Verzeichnis existiert nicht: </b>" },
773{ "<b>The backup copy command failed!</b>","<b>Das Backup Kopierkommando is fehlgeschlagen!</b>" }, 773{ "<b>The backup copy command failed!</b>","<b>Das Backup Kopierkommando is fehlgeschlagen!</b>" },
774{ "Choose action","Wähle Aktion" }, 774{ "Choose action","Wähle Aktion" },
775{ "&Configure KA/Pi...","Konfiguriere KA/Pi..." }, 775{ "&Configure KA/Pi...","Konfiguriere KA/Pi..." },
776{ "Global Settings...","Globale Einstellungen..." }, 776{ "Global Settings...","Globale Einstellungen..." },
777{ "Spouse","Ehegatte" },
778{ "Notes","Notizen" },
779{ "Messanger","Messanger" },
780{ "Assistant","Assistent" },
781{ "Manager","Manager" },
782{ "Secrecy","Sichtbar" },
783{ "male","männlich" },
784{ "female","weiblich" },
785{ "","" },
786{ "","" },
787{ "","" },
788{ "","" },
777{ "","" }, 789{ "","" },
778{ "","" }, 790{ "","" },
779{ "","" }, 791{ "","" },
780{ "","" }, 792{ "","" },
781{ "","" }, \ No newline at end of file 793{ "","" }, \ No newline at end of file
diff --git a/kabc/addresseeview.cpp b/kabc/addresseeview.cpp
index 667a5e2..202a718 100644
--- a/kabc/addresseeview.cpp
+++ b/kabc/addresseeview.cpp
@@ -11,274 +11,406 @@
11 This library is distributed in the hope that it will be useful, 11 This library is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of 12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 Library General Public License for more details. 14 Library General Public License for more details.
15 15
16 You should have received a copy of the GNU Library General Public License 16 You should have received a copy of the GNU Library General Public License
17 along with this library; see the file COPYING.LIB. If not, write to 17 along with this library; see the file COPYING.LIB. If not, write to
18 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 18 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
19 Boston, MA 02111-1307, USA. 19 Boston, MA 02111-1307, USA.
20*/ 20*/
21 21
22#include <kabc/address.h> 22#include <kabc/address.h>
23#include <kabc/addressee.h> 23#include <kabc/addressee.h>
24#include <kabc/phonenumber.h> 24#include <kabc/phonenumber.h>
25#include <kglobal.h> 25#include <kglobal.h>
26//US#include <kglobalsettings.h> 26//US#include <kglobalsettings.h>
27#include <kiconloader.h> 27#include <kiconloader.h>
28#include <klocale.h> 28#include <klocale.h>
29//US #include <kstringhandler.h> 29//US #include <kstringhandler.h>
30#include <qscrollview.h> 30#include <qscrollview.h>
31#include <qregexp.h> 31#include <qregexp.h>
32#include <qfile.h> 32#include <qfile.h>
33#include <qvbox.h> 33#include <qvbox.h>
34#include <qlabel.h> 34#include <qlabel.h>
35#include <qwidget.h> 35#include <qwidget.h>
36#include <qlayout.h> 36#include <qlayout.h>
37#include <qapplication.h> 37#include <qapplication.h>
38#include <qpushbutton.h> 38#include <qpushbutton.h>
39#ifdef DESKTOP_VERSION 39#ifdef DESKTOP_VERSION
40#include <qpaintdevicemetrics.h> 40#include <qpaintdevicemetrics.h>
41#include <qprinter.h> 41#include <qprinter.h>
42#include <qpainter.h> 42#include <qpainter.h>
43#endif 43#endif
44 44
45 45
46#include <qstylesheet.h> 46#include <qstylesheet.h>
47#include "externalapphandler.h" 47#include "externalapphandler.h"
48#include <kabc/addresseeview.h> 48#include <kabc/addresseeview.h>
49 49
50 50
51//US #ifndef DESKTOP_VERSION 51//US #ifndef DESKTOP_VERSION
52//US #include <qtopia/qcopenvelope_qws.h> 52//US #include <qtopia/qcopenvelope_qws.h>
53//US #include <qpe/qpeapplication.h> 53//US #include <qpe/qpeapplication.h>
54//US #endif 54//US #endif
55 55
56//US static int kphoneInstalled = 0; 56//US static int kphoneInstalled = 0;
57 57
58using namespace KABC; 58using namespace KABC;
59bool AddresseeView::sFullDetailsMode = false;
59 60
60AddresseeView::AddresseeView( QWidget *parent, const char *name ) 61AddresseeView::AddresseeView( QWidget *parent, const char *name )
61 : QTextBrowser( parent, name ) 62 : QTextBrowser( parent, name )
62 63
63 64
64{ 65{
65//US setWrapPolicy( QTextEdit::AtWordBoundary ); 66//US setWrapPolicy( QTextEdit::AtWordBoundary );
66 setLinkUnderline( false ); 67 setLinkUnderline( false );
67 // setVScrollBarMode( QScrollView::AlwaysOff ); 68 // setVScrollBarMode( QScrollView::AlwaysOff );
68 //setHScrollBarMode( QScrollView::AlwaysOff ); 69 //setHScrollBarMode( QScrollView::AlwaysOff );
69 70
70//US QStyleSheet *sheet = styleSheet(); 71//US QStyleSheet *sheet = styleSheet();
71//US QStyleSheetItem *link = sheet->item( "a" ); 72//US QStyleSheetItem *link = sheet->item( "a" );
72//US link->setColor( KGlobalSettings::linkColor() ); 73//US link->setColor( KGlobalSettings::linkColor() );
73 74
74 75
75} 76}
76void AddresseeView::printMe() 77void AddresseeView::printMe()
77{ 78{
78#ifdef DESKTOP_VERSION 79#ifdef DESKTOP_VERSION
79 QPrinter printer; 80 QPrinter printer;
80 if (!printer.setup() ) 81 if (!printer.setup() )
81 return; 82 return;
82 QPainter p; 83 QPainter p;
83 p.begin ( &printer ); 84 p.begin ( &printer );
84 QPaintDeviceMetrics m = QPaintDeviceMetrics ( &printer ); 85 QPaintDeviceMetrics m = QPaintDeviceMetrics ( &printer );
85 float dx, dy; 86 float dx, dy;
86 int wid = (m.width() * 9)/10; 87 int wid = (m.width() * 9)/10;
87 dx = (float) wid/(float)contentsWidth (); 88 dx = (float) wid/(float)contentsWidth ();
88 dy = (float)(m.height()) / (float)contentsHeight (); 89 dy = (float)(m.height()) / (float)contentsHeight ();
89 float scale; 90 float scale;
90 // scale to fit the width or height of the paper 91 // scale to fit the width or height of the paper
91 if ( dx < dy ) 92 if ( dx < dy )
92 scale = dx; 93 scale = dx;
93 else 94 else
94 scale = dy; 95 scale = dy;
95 p.translate( m.width()/10,0 ); 96 p.translate( m.width()/10,0 );
96 p.scale( scale, scale ); 97 p.scale( scale, scale );
97 drawContents ( &p, 0,0, contentsWidth (), contentsHeight () ); 98 drawContents ( &p, 0,0, contentsWidth (), contentsHeight () );
98 p.end(); 99 p.end();
99#endif 100#endif
100} 101}
101void AddresseeView::setSource(const QString& n) 102void AddresseeView::setSource(const QString& n)
102{ 103{
103 //qDebug("********AddresseeView::setSource %s", n.latin1()); 104 qDebug("********AddresseeView::setSource %s", n.latin1());
104 105
105 if ( n.left( 6 ) == "mailto" ) 106 if ( n == "allDetails" ) {
106 ExternalAppHandler::instance()->mailToOneContact( n.mid(7) ); 107 sFullDetailsMode = true;
107 else if ( n.left( 7 ) == "phoneto" ) 108 setAddressee( mCurrentContact );
108 ExternalAppHandler::instance()->callByPhone( n.mid(8) ); 109 } else if ( n == "notAllDetails" ) {
109 else if ( n.left( 5 ) == "faxto" ) 110 sFullDetailsMode = false;
110 ExternalAppHandler::instance()->callByFax( n.mid(6) ); 111 setAddressee( mCurrentContact );
111 else if ( n.left( 5 ) == "smsto" ) 112 } else if ( n.left( 6 ) == "mailto" )
112 ExternalAppHandler::instance()->callBySMS( n.mid(6) ); 113 ExternalAppHandler::instance()->mailToOneContact( n.mid(7) );
113 else if ( n.left( 7 ) == "pagerto" ) 114 else if ( n.left( 7 ) == "phoneto" )
114 ExternalAppHandler::instance()->callByPager( n.mid(8) ); 115 ExternalAppHandler::instance()->callByPhone( n.mid(8) );
115 else if ( n.left( 5 ) == "sipto" ) 116 else if ( n.left( 5 ) == "faxto" )
116 ExternalAppHandler::instance()->callBySIP( n.mid(6) ); 117 ExternalAppHandler::instance()->callByFax( n.mid(6) );
118 else if ( n.left( 5 ) == "smsto" )
119 ExternalAppHandler::instance()->callBySMS( n.mid(6) );
120 else if ( n.left( 7 ) == "pagerto" )
121 ExternalAppHandler::instance()->callByPager( n.mid(8) );
122 else if ( n.left( 5 ) == "sipto" )
123 ExternalAppHandler::instance()->callBySIP( n.mid(6) );
117 124
118} 125}
119void AddresseeView::setAddressee( const KABC::Addressee& mAddressee ) 126void AddresseeView::setAddressee( const KABC::Addressee& mAddressee )
120{ 127{
121 bool kemailAvail = ExternalAppHandler::instance()->isEmailAppAvailable(); 128 bool kemailAvail = ExternalAppHandler::instance()->isEmailAppAvailable();
122 // mAddressee = addr; 129 // mAddressee = addr;
123 // clear view 130 // clear view
124 //setText( QString::null ); 131 //setText( QString::null );
125 132 mCurrentContact = mAddressee;
126 if ( mAddressee.isEmpty() ) { 133 if ( mAddressee.isEmpty() ) {
127 setText( QString::null); 134 setText( QString::null);
128 return; 135 return;
129 } 136 }
130#if 0 137#if 0
131 QString name = ( mAddressee.assembledName().isEmpty() ? 138 QString name = ( mAddressee.assembledName().isEmpty() ?
132 mAddressee.formattedName() : mAddressee.assembledName() ); 139 mAddressee.formattedName() : mAddressee.assembledName() );
133#endif 140#endif
134 141
135 QString name = mAddressee.realName(); 142 QString name = mAddressee.realName();
136 143
137 QString dynamicPart; 144 QString dynamicPart;
138 145
139 dynamicPart += getPhoneNumbers( mAddressee.phoneNumbers(),true ); 146 dynamicPart += getPhoneNumbers( mAddressee.phoneNumbers(),true );
140 QStringList emails = mAddressee.emails(); 147 QStringList emails = mAddressee.emails();
141 QStringList::ConstIterator emailIt; 148 QStringList::ConstIterator emailIt;
142 QString type = i18n( "Email" ); 149 QString type = i18n( "Email" );
143 emailIt = emails.begin(); 150 emailIt = emails.begin();
144 if ( emailIt != emails.end() ) { 151 if ( emailIt != emails.end() ) {
145 if ( kemailAvail ) { 152 if ( kemailAvail ) {
146 dynamicPart += QString( 153 dynamicPart += QString(
147 "<tr><td align=\"right\"><b>%1</b></td>" 154 "<tr><td align=\"right\"><b>%1</b></td>"
148 "<td align=\"left\"><a href=\"mailto:%2 <%3> \">%4</a></td></tr>" ) 155 "<td align=\"left\"><a href=\"mailto:%2 <%3> \">%4</a></td></tr>" )
149 .arg( type ) 156 .arg( type )
150 .arg( name ) 157 .arg( name )
151 .arg( *emailIt ) 158 .arg( *emailIt )
152 .arg( *emailIt ); 159 .arg( *emailIt );
153 ++emailIt; 160 ++emailIt;
154 } else { 161 } else {
155 dynamicPart += QString( 162 dynamicPart += QString(
156 "<tr><td align=\"right\"><b>%1</b></td>" 163 "<tr><td align=\"right\"><b>%1</b></td>"
157 "<td align=\"left\">%2</td></tr>" ) 164 "<td align=\"left\">%2</td></tr>" )
158 .arg( type ) 165 .arg( type )
159 .arg( *emailIt ); 166 .arg( *emailIt );
160 ++emailIt; 167 ++emailIt;
161 } 168 }
162 } 169 }
163 if ( mAddressee.birthday().date().isValid() ) { 170 if ( mAddressee.birthday().date().isValid() ) {
164 dynamicPart += QString( 171 dynamicPart += QString(
165 "<tr><td align=\"right\"><b>%1</b></td>" 172 "<tr><td align=\"right\"><b>%1</b></td>"
166 "<td align=\"left\">%2</td></tr>" ) 173 "<td align=\"left\">%2</td></tr>" )
167 .arg( i18n ("Birthday") ) 174 .arg( i18n ("Birthday") )
168 .arg( KGlobal::locale()->formatDate( mAddressee.birthday().date() ,true) ); 175 .arg( KGlobal::locale()->formatDate( mAddressee.birthday().date() ,true) );
169 } 176 }
170 dynamicPart += getPhoneNumbers( mAddressee.phoneNumbers(), false ); 177 dynamicPart += getPhoneNumbers( mAddressee.phoneNumbers(), false );
171 178
172 for ( ; emailIt != emails.end(); ++emailIt ) { 179 for ( ; emailIt != emails.end(); ++emailIt ) {
173 if ( kemailAvail ) { 180 if ( kemailAvail ) {
174 dynamicPart += QString( 181 dynamicPart += QString(
175 "<tr><td align=\"right\"><b>%1</b></td>" 182 "<tr><td align=\"right\"><b>%1</b></td>"
176 "<td align=\"left\"><a href=\"mailto:%2 <%3> \">%4</a></td></tr>" ) 183 "<td align=\"left\"><a href=\"mailto:%2 <%3> \">%4</a></td></tr>" )
177 .arg( type ) 184 .arg( type )
178 .arg( name ) 185 .arg( name )
179 .arg( *emailIt ) 186 .arg( *emailIt )
180 .arg( *emailIt ); 187 .arg( *emailIt );
181 } else { 188 } else {
182 dynamicPart += QString( 189 dynamicPart += QString(
183 "<tr><td align=\"right\"><b>%1</b></td>" 190 "<tr><td align=\"right\"><b>%1</b></td>"
184 "<td align=\"left\">%2</td></tr>" ) 191 "<td align=\"left\">%2</td></tr>" )
185 .arg( type ) 192 .arg( type )
186 .arg( *emailIt ); 193 .arg( *emailIt );
187 } 194 }
188 } 195 }
189 196
190 if ( !mAddressee.url().url().isEmpty() ) { 197
191 dynamicPart += QString(
192 "<tr><td align=\"right\"><b>%1</b></td>"
193 "<td align=\"left\">%2</td></tr>" )
194 .arg( i18n( "Homepage" ) )
195//US .arg( KStringHandler::tagURLs( mAddressee.url().url() ) );
196 .arg( mAddressee.url().url() );
197 //qDebug("AddresseeView::setAddressee has to be verified.");
198 }
199 198
200 KABC::Address::List addresses = mAddressee.addresses(); 199 KABC::Address::List addresses = mAddressee.addresses();
201 KABC::Address::List::ConstIterator addrIt; 200 KABC::Address::List::ConstIterator addrIt;
202 for ( addrIt = addresses.begin(); addrIt != addresses.end(); ++addrIt ) { 201 for ( addrIt = addresses.begin(); addrIt != addresses.end(); ++addrIt ) {
203 if ( true /*(*addrIt).label().isEmpty()*/ ) { 202 if ( true /*(*addrIt).label().isEmpty()*/ ) {
204 QString formattedAddress = (*addrIt).formattedAddress().stripWhiteSpace(); 203 QString formattedAddress = (*addrIt).formattedAddress().stripWhiteSpace();
205//US formattedAddress = formattedAddress.replace( '\n', "<br>" ); 204//US formattedAddress = formattedAddress.replace( '\n', "<br>" );
206 //qDebug("adresss %s ",formattedAddress.latin1() ); 205 //qDebug("adresss %s ",formattedAddress.latin1() );
207 formattedAddress = formattedAddress.replace( QRegExp("\n"), "<br>" ); 206 formattedAddress = formattedAddress.replace( QRegExp("\n"), "<br>" );
208 //qDebug("AddresseeView::setAddressee has to be verified."); 207 //qDebug("AddresseeView::setAddressee has to be verified.");
209 208
210 dynamicPart += QString( 209 dynamicPart += QString(
211 "<tr><td align=\"right\"><b>%1</b></td>" 210 "<tr><td align=\"right\"><b>%1</b></td>"
212 "<td align=\"left\">%2</td></tr>" ) 211 "<td align=\"left\">%2</td></tr>" )
213 .arg( KABC::Address::typeLabel( (*addrIt).type() ) ) 212 .arg( KABC::Address::typeLabel( (*addrIt).type() ) )
214 .arg( formattedAddress ); 213 .arg( formattedAddress );
215 } else { 214 } else {
216 215
217 dynamicPart += QString( 216 dynamicPart += QString(
218 "<tr><td align=\"right\"><b>%1</b></td>" 217 "<tr><td align=\"right\"><b>%1</b></td>"
219 "<td align=\"left\">%2</td></tr>" ) 218 "<td align=\"left\">%2</td></tr>" )
220 .arg( KABC::Address::typeLabel( (*addrIt).type() ) ) 219 .arg( KABC::Address::typeLabel( (*addrIt).type() ) )
221//US .arg( (*addrIt).label().replace( '\n', "<br>" ) ); 220//US .arg( (*addrIt).label().replace( '\n', "<br>" ) );
222 .arg( (*addrIt).label() /*replace( QRegExp("\n"), "<br>" )*/ ); 221 .arg( (*addrIt).label() /*replace( QRegExp("\n"), "<br>" )*/ );
223 222
224 } 223 }
225 } 224 }
225
226
227 QString notes;
228 if ( sFullDetailsMode ) {
229 notes = QString(
230 "<tr><td align=\"right\"><b>%1</b></td>"
231 "<td align=\"left\"><a href=\"notAllDetails\">%4</a></td></tr>" )
232 .arg( i18n("Details:") )
233 .arg( i18n("Click here to hide!") );
234
235 QString tempX = mAddressee.secrecy().asString();
236
237 notes += QString(
238 "<tr><td align=\"right\"><b>%1</b></td>"
239 "<td align=\"left\">%2</td></tr>" )
240 .arg( "" )
241 .arg( tempX );
242
243
244 tempX = mAddressee.categories().join(" - ");
245 if ( !tempX.isEmpty() ) {
246 notes += QString(
247 "<tr><td align=\"right\"><b>%1</b></td>"
248 "<td align=\"left\">%2</td></tr>" )
249 .arg( i18n( "Category" ) )
250 .arg( tempX );
251 }
252 tempX = mAddressee.custom( "KADDRESSBOOK", "X-Profession" );
253 if ( !tempX.isEmpty() ) {
254 notes += QString(
255 "<tr><td align=\"right\"><b>%1</b></td>"
256 "<td align=\"left\">%2</td></tr>" )
257 .arg( i18n( "Profession" ) )
258 .arg( tempX );
259 }
260 tempX = mAddressee.custom( "KADDRESSBOOK", "X-Office" );
261 if ( !tempX.isEmpty() ) {
262 notes += QString(
263 "<tr><td align=\"right\"><b>%1</b></td>"
264 "<td align=\"left\">%2</td></tr>" )
265 .arg( i18n( "Office" ) )
266 .arg( tempX );
267 }
268 tempX = mAddressee.custom( "KADDRESSBOOK", "X-Department" );
269 if ( !tempX.isEmpty() ) {
270 notes += QString(
271 "<tr><td align=\"right\"><b>%1</b></td>"
272 "<td align=\"left\">%2</td></tr>" )
273 .arg( i18n( "Department" ) )
274 .arg( tempX );
275 }
276
277 tempX = mAddressee.custom( "KADDRESSBOOK", "X-ManagersName" );
278 if ( !tempX.isEmpty() ) {
279 notes += QString(
280 "<tr><td align=\"right\"><b>%1</b></td>"
281 "<td align=\"left\">%2</td></tr>" )
282 .arg( i18n( "Manager" ) )
283 .arg( tempX );
284 }
285 tempX = mAddressee.custom( "KADDRESSBOOK", "X-AssistantsName" );
286 if ( !tempX.isEmpty() ) {
287 notes += QString(
288 "<tr><td align=\"right\"><b>%1</b></td>"
289 "<td align=\"left\">%2</td></tr>" )
290 .arg( i18n( "Assistant" ) )
291 .arg( tempX );
292 }
293 if ( !mAddressee.url().url().isEmpty() ) {
294 notes += QString(
295 "<tr><td align=\"right\"><b>%1</b></td>"
296 "<td align=\"left\">%2</td></tr>" )
297 .arg( i18n( "Homepage" ) )
298 .arg( mAddressee.url().url() );
299 }
300 tempX = mAddressee.nickName();
301 if ( !tempX.isEmpty() ) {
302 notes += QString(
303 "<tr><td align=\"right\"><b>%1</b></td>"
304 "<td align=\"left\">%2</td></tr>" )
305 .arg( i18n( "Nickname" ) )
306 .arg( tempX );
307 }
308 tempX = mAddressee.custom( "KADDRESSBOOK", "X-IMAddress" );
309 if ( !tempX.isEmpty() ) {
310 notes += QString(
311 "<tr><td align=\"right\"><b>%1</b></td>"
312 "<td align=\"left\">%2</td></tr>" )
313 .arg( i18n( "Messanger" ) )
314 .arg( tempX );
315 }
316 tempX = mAddressee.custom( "KADDRESSBOOK", "X-Gender" );
317 if ( !tempX.isEmpty() ) {
318 notes += QString(
319 "<tr><td align=\"right\"><b>%1</b></td>"
320 "<td align=\"left\">%2</td></tr>" )
321 .arg( i18n( "Gender" ) )
322 .arg( i18n(tempX) );
323 }
324 tempX = mAddressee.custom( "KADDRESSBOOK", "X-Anniversary" );
325 if ( !tempX.isEmpty() ) {
326 QDate dt = KGlobal::locale()->readDate( tempX, "%Y-%m-%d");
327 tempX = KGlobal::locale()->formatDate(dt, true);
328 notes += QString(
329 "<tr><td align=\"right\"><b>%1</b></td>"
330 "<td align=\"left\">%2</td></tr>" )
331 .arg( i18n( "Anniversary" ) )
332 .arg( tempX );
333 }
334 tempX = mAddressee.custom( "KADDRESSBOOK", "X-SpousesName" );
335 if ( !tempX.isEmpty() ) {
336 notes += QString(
337 "<tr><td align=\"right\"><b>%1</b></td>"
338 "<td align=\"left\">%2</td></tr>" )
339 .arg( i18n( "Spouse" ) )
340 .arg( tempX );
341 }
342 tempX = mAddressee.custom( "KADDRESSBOOK", "X-Children" );
343 if ( !tempX.isEmpty() ) {
344 notes += QString(
345 "<tr><td align=\"right\"><b>%1</b></td>"
346 "<td align=\"left\">%2</td></tr>" )
347 .arg( i18n( "Children" ) )
348 .arg( tempX );
349 }
350
351 if ( !mAddressee.note().isEmpty() ) {
352 notes += QString(
353 "<tr>"
354 "<td align=\"right\" valign=\"top\"><b>%1</b></td>" // note label
355 "<td align=\"left\">%2</td>" // note
356 "</tr>" ).arg( i18n( "Notes" ) )
357 //US .arg( mAddressee.note().replace( '\n', "<br>" ) );
358 .arg( mAddressee.note().replace( QRegExp("\n"), "<br>" ) );
359 //qDebug("AddresseeView::setAddressee has to be verified.");
360 }
361 } else {
362 notes = QString(
363 "<tr><td align=\"right\"><b>%1</b></td>"
364 "<td align=\"left\"><a href=\"allDetails\">%4</a></td></tr>" )
365 .arg( i18n("Details:") )
366 .arg( i18n("Click here to show!") );
367
226 368
227 QString notes;
228 if ( !mAddressee.note().isEmpty() ) {
229 notes = QString(
230 "<tr>"
231 "<td align=\"right\" valign=\"top\"><b>%1</b></td>" // note label
232 "<td align=\"left\">%2</td>" // note
233 "</tr>" ).arg( i18n( "Notes" ) )
234//US .arg( mAddressee.note().replace( '\n', "<br>" ) );
235 .arg( mAddressee.note().replace( QRegExp("\n"), "<br>" ) );
236 //qDebug("AddresseeView::setAddressee has to be verified.");
237 } 369 }
238 370
239 QString aRole = ""; 371 QString aRole = "";
240 QString aOrga = ""; 372 QString aOrga = "";
241 if ( true /*!mAddressee.role().isEmpty()*/ ) { 373 if ( true /*!mAddressee.role().isEmpty()*/ ) {
242 aRole = "<tr>" 374 aRole = "<tr>"
243 "<td align=\"left\">" + mAddressee.role() + "</td>" 375 "<td align=\"left\">" + mAddressee.role() + "</td>"
244 "</tr>"; 376 "</tr>";
245 } 377 }
246 if ( true /*!mAddressee.organization().isEmpty()*/ ) { 378 if ( true /*!mAddressee.organization().isEmpty()*/ ) {
247 aOrga = "<tr>" 379 aOrga = "<tr>"
248 "<td align=\"left\">" + mAddressee.organization() + "</td>" 380 "<td align=\"left\">" + mAddressee.organization() + "</td>"
249 "</tr>"; 381 "</tr>";
250 } 382 }
251 mText = ""; 383 mText = "";
252 QString picString = ""; 384 QString picString = "";
253 KABC::Picture picture = mAddressee.photo(); 385 KABC::Picture picture = mAddressee.photo();
254 bool picAvailintern = false; 386 bool picAvailintern = false;
255 bool picAvailUrl = false; 387 bool picAvailUrl = false;
256 if (! picture.undefined() ) { 388 if (! picture.undefined() ) {
257 picAvailintern = (picture.isIntern() && !picture.data().isNull()); 389 picAvailintern = (picture.isIntern() && !picture.data().isNull());
258 picAvailUrl = !picture.isIntern() && QFile::exists(picture.url() ); 390 picAvailUrl = !picture.isIntern() && QFile::exists(picture.url() );
259 } 391 }
260 if ( picAvailUrl || picAvailintern || QApplication::desktop()->width() > 320 ) { 392 if ( picAvailUrl || picAvailintern || QApplication::desktop()->width() > 320 ) {
261 picString = "<img src=\"myimage\" width=\"50\" height=\"70\">"; 393 picString = "<img src=\"myimage\" width=\"50\" height=\"70\">";
262 if ( picAvailintern ) { 394 if ( picAvailintern ) {
263 QMimeSourceFactory::defaultFactory()->setImage( "myimage", picture.data() ); 395 QMimeSourceFactory::defaultFactory()->setImage( "myimage", picture.data() );
264 } else { 396 } else {
265 if ( picAvailUrl ) { 397 if ( picAvailUrl ) {
266 QMimeSourceFactory::defaultFactory()->setPixmap( "myimage", QPixmap( picture.url() )); 398 QMimeSourceFactory::defaultFactory()->setPixmap( "myimage", QPixmap( picture.url() ));
267 } else { 399 } else {
268 if ( !mAddressee.custom( "KADDRESSBOOK", "X-Children" ).isEmpty() ) { 400 if ( !mAddressee.custom( "KADDRESSBOOK", "X-Children" ).isEmpty() ) {
269 static bool setDefaultImageChildren = false; 401 static bool setDefaultImageChildren = false;
270 if ( !setDefaultImageChildren ) { 402 if ( !setDefaultImageChildren ) {
271 QMimeSourceFactory::defaultFactory()->setPixmap( "familyIcon", KGlobal::iconLoader()->loadIcon( "ic_kids", KIcon::Desktop, 128 ) ); 403 QMimeSourceFactory::defaultFactory()->setPixmap( "familyIcon", KGlobal::iconLoader()->loadIcon( "ic_kids", KIcon::Desktop, 128 ) );
272 setDefaultImageChildren = true; 404 setDefaultImageChildren = true;
273 } 405 }
274 picString = "<img src=\"familyIcon\" width=\"64\" height=\"64\">"; 406 picString = "<img src=\"familyIcon\" width=\"64\" height=\"64\">";
275 407
276 } else if ( !mAddressee.custom( "KADDRESSBOOK", "X-SpousesName" ).isEmpty() ) { 408 } else if ( !mAddressee.custom( "KADDRESSBOOK", "X-SpousesName" ).isEmpty() ) {
277 static bool setDefaultImagepouses = false; 409 static bool setDefaultImagepouses = false;
278 if ( !setDefaultImagepouses ) { 410 if ( !setDefaultImagepouses ) {
279 QMimeSourceFactory::defaultFactory()->setPixmap( "SpousesIcon", KGlobal::iconLoader()->loadIcon( "ic_family", KIcon::Desktop, 128 ) ); 411 QMimeSourceFactory::defaultFactory()->setPixmap( "SpousesIcon", KGlobal::iconLoader()->loadIcon( "ic_family", KIcon::Desktop, 128 ) );
280 setDefaultImagepouses = true; 412 setDefaultImagepouses = true;
281 } 413 }
282 picString = "<img src=\"SpousesIcon\" width=\"64\" height=\"64\">"; 414 picString = "<img src=\"SpousesIcon\" width=\"64\" height=\"64\">";
283 } else { 415 } else {
284 QString gen = mAddressee.custom( "KADDRESSBOOK", "X-Gender" ); 416 QString gen = mAddressee.custom( "KADDRESSBOOK", "X-Gender" );
diff --git a/kabc/addresseeview.h b/kabc/addresseeview.h
index e977d8f..a4de085 100644
--- a/kabc/addresseeview.h
+++ b/kabc/addresseeview.h
@@ -4,78 +4,79 @@
4 Copyright (c) 2003 Tobias Koenig <tokoe@kde.org> 4 Copyright (c) 2003 Tobias Koenig <tokoe@kde.org>
5 5
6 This library is free software; you can redistribute it and/or 6 This library is free software; you can redistribute it and/or
7 modify it under the terms of the GNU Library General Public 7 modify it under the terms of the GNU Library General Public
8 License as published by the Free Software Foundation; either 8 License as published by the Free Software Foundation; either
9 version 2 of the License, or (at your option) any later version. 9 version 2 of the License, or (at your option) any later version.
10 10
11 This library is distributed in the hope that it will be useful, 11 This library is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of 12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 Library General Public License for more details. 14 Library General Public License for more details.
15 15
16 You should have received a copy of the GNU Library General Public License 16 You should have received a copy of the GNU Library General Public License
17 along with this library; see the file COPYING.LIB. If not, write to 17 along with this library; see the file COPYING.LIB. If not, write to
18 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 18 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
19 Boston, MA 02111-1307, USA. 19 Boston, MA 02111-1307, USA.
20*/ 20*/
21 21
22#ifndef KPIM_ADDRESSEEVIEW_H 22#ifndef KPIM_ADDRESSEEVIEW_H
23#define KPIM_ADDRESSEEVIEW_H 23#define KPIM_ADDRESSEEVIEW_H
24 24
25#include <kabc/addressee.h> 25#include <kabc/addressee.h>
26#include <kdialogbase.h> 26#include <kdialogbase.h>
27 27
28//US #include <ktextbrowser.h> 28//US #include <ktextbrowser.h>
29#include <qtextbrowser.h> 29#include <qtextbrowser.h>
30 30
31namespace KABC { 31namespace KABC {
32 32
33//US class AddresseeView : public KTextBrowser 33//US class AddresseeView : public KTextBrowser
34class AddresseeView : public QTextBrowser 34class AddresseeView : public QTextBrowser
35{ 35{
36 36
37 public: 37 public:
38 AddresseeView( QWidget *parent = 0, const char *name = 0 ); 38 AddresseeView( QWidget *parent = 0, const char *name = 0 );
39 39
40 /** 40 /**
41 Sets the addressee object. The addressee is displayed immediately. 41 Sets the addressee object. The addressee is displayed immediately.
42 42
43 @param addr The addressee object. 43 @param addr The addressee object.
44 */ 44 */
45 void setAddressee( const KABC::Addressee& addr ); 45 void setAddressee( const KABC::Addressee& addr );
46 void setSource(const QString& n); 46 void setSource(const QString& n);
47 /** 47 /**
48 Returns the current addressee object. 48 Returns the current addressee object.
49 */ 49 */
50 //KABC::Addressee addressee() const; 50 //KABC::Addressee addressee() const;
51 void printMe(); 51 void printMe();
52 52 static bool sFullDetailsMode;
53 private: 53 private:
54 Addressee mCurrentContact;
54 //KABC::Addressee mAddressee; 55 //KABC::Addressee mAddressee;
55 QString mText; 56 QString mText;
56 QString getPhoneNumbers( KABC::PhoneNumber::List phones, bool preferred ); 57 QString getPhoneNumbers( KABC::PhoneNumber::List phones, bool preferred );
57 void addTag(const QString & tag,const QString & text); 58 void addTag(const QString & tag,const QString & text);
58 //class AddresseeViewPrivate; 59 //class AddresseeViewPrivate;
59 //AddresseeViewPrivate *d; 60 //AddresseeViewPrivate *d;
60}; 61};
61class AddresseeChooser : public KDialogBase 62class AddresseeChooser : public KDialogBase
62{ 63{
63 Q_OBJECT 64 Q_OBJECT
64 65
65 public: 66 public:
66 AddresseeChooser( KABC::Addressee loc, KABC::Addressee rem, bool takeloc, QWidget *parent = 0, const char *name = 0 ); 67 AddresseeChooser( KABC::Addressee loc, KABC::Addressee rem, bool takeloc, QWidget *parent = 0, const char *name = 0 );
67 68
68 int executeD( bool local ); 69 int executeD( bool local );
69 70
70 private: 71 private:
71 int mSyncResult; 72 int mSyncResult;
72 73
73 private slots: 74 private slots:
74 void slot_remote(); 75 void slot_remote();
75 void slot_local(); 76 void slot_local();
76 77
77}; 78};
78 79
79} 80}
80 81
81#endif 82#endif