summaryrefslogtreecommitdiffabout
path: root/kabc/addresseeview.cpp
Unidiff
Diffstat (limited to 'kabc/addresseeview.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--kabc/addresseeview.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/kabc/addresseeview.cpp b/kabc/addresseeview.cpp
index 9118c3d..667a5e2 100644
--- a/kabc/addresseeview.cpp
+++ b/kabc/addresseeview.cpp
@@ -1,225 +1,231 @@
1/* 1/*
2 This file is part of libkdepim. 2 This file is part of libkdepim.
3 3
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#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 "externalapphandler.h" 47#include "externalapphandler.h"
47#include <kabc/addresseeview.h> 48#include <kabc/addresseeview.h>
48 49
49 50
50//US #ifndef DESKTOP_VERSION 51//US #ifndef DESKTOP_VERSION
51//US #include <qtopia/qcopenvelope_qws.h> 52//US #include <qtopia/qcopenvelope_qws.h>
52//US #include <qpe/qpeapplication.h> 53//US #include <qpe/qpeapplication.h>
53//US #endif 54//US #endif
54 55
55//US static int kphoneInstalled = 0; 56//US static int kphoneInstalled = 0;
56 57
57using namespace KABC; 58using namespace KABC;
58 59
59AddresseeView::AddresseeView( QWidget *parent, const char *name ) 60AddresseeView::AddresseeView( QWidget *parent, const char *name )
60 : QTextBrowser( parent, name ) 61 : QTextBrowser( parent, name )
61 62
62 63
63{ 64{
64//US setWrapPolicy( QTextEdit::AtWordBoundary ); 65//US setWrapPolicy( QTextEdit::AtWordBoundary );
65 setLinkUnderline( false ); 66 setLinkUnderline( false );
66 // setVScrollBarMode( QScrollView::AlwaysOff ); 67 // setVScrollBarMode( QScrollView::AlwaysOff );
67 //setHScrollBarMode( QScrollView::AlwaysOff ); 68 //setHScrollBarMode( QScrollView::AlwaysOff );
68 69
69//US QStyleSheet *sheet = styleSheet(); 70//US QStyleSheet *sheet = styleSheet();
70//US QStyleSheetItem *link = sheet->item( "a" ); 71//US QStyleSheetItem *link = sheet->item( "a" );
71//US link->setColor( KGlobalSettings::linkColor() ); 72//US link->setColor( KGlobalSettings::linkColor() );
72 73
74
73} 75}
74void AddresseeView::printMe() 76void AddresseeView::printMe()
75{ 77{
76#ifdef DESKTOP_VERSION 78#ifdef DESKTOP_VERSION
77 QPrinter printer; 79 QPrinter printer;
78 if (!printer.setup() ) 80 if (!printer.setup() )
79 return; 81 return;
80 QPainter p; 82 QPainter p;
81 p.begin ( &printer ); 83 p.begin ( &printer );
82 QPaintDeviceMetrics m = QPaintDeviceMetrics ( &printer ); 84 QPaintDeviceMetrics m = QPaintDeviceMetrics ( &printer );
83 float dx, dy; 85 float dx, dy;
84 int wid = (m.width() * 9)/10; 86 int wid = (m.width() * 9)/10;
85 dx = (float) wid/(float)contentsWidth (); 87 dx = (float) wid/(float)contentsWidth ();
86 dy = (float)(m.height()) / (float)contentsHeight (); 88 dy = (float)(m.height()) / (float)contentsHeight ();
87 float scale; 89 float scale;
88 // scale to fit the width or height of the paper 90 // scale to fit the width or height of the paper
89 if ( dx < dy ) 91 if ( dx < dy )
90 scale = dx; 92 scale = dx;
91 else 93 else
92 scale = dy; 94 scale = dy;
93 p.translate( m.width()/10,0 ); 95 p.translate( m.width()/10,0 );
94 p.scale( scale, scale ); 96 p.scale( scale, scale );
95 drawContents ( &p, 0,0, contentsWidth (), contentsHeight () ); 97 drawContents ( &p, 0,0, contentsWidth (), contentsHeight () );
96 p.end(); 98 p.end();
97#endif 99#endif
98} 100}
99void AddresseeView::setSource(const QString& n) 101void AddresseeView::setSource(const QString& n)
100{ 102{
101 //qDebug("********AddresseeView::setSource %s", n.latin1()); 103 //qDebug("********AddresseeView::setSource %s", n.latin1());
102 104
103 if ( n.left( 6 ) == "mailto" ) 105 if ( n.left( 6 ) == "mailto" )
104 ExternalAppHandler::instance()->mailToOneContact( n.mid(7) ); 106 ExternalAppHandler::instance()->mailToOneContact( n.mid(7) );
105 else if ( n.left( 7 ) == "phoneto" ) 107 else if ( n.left( 7 ) == "phoneto" )
106 ExternalAppHandler::instance()->callByPhone( n.mid(8) ); 108 ExternalAppHandler::instance()->callByPhone( n.mid(8) );
107 else if ( n.left( 5 ) == "faxto" ) 109 else if ( n.left( 5 ) == "faxto" )
108 ExternalAppHandler::instance()->callByFax( n.mid(6) ); 110 ExternalAppHandler::instance()->callByFax( n.mid(6) );
109 else if ( n.left( 5 ) == "smsto" ) 111 else if ( n.left( 5 ) == "smsto" )
110 ExternalAppHandler::instance()->callBySMS( n.mid(6) ); 112 ExternalAppHandler::instance()->callBySMS( n.mid(6) );
111 else if ( n.left( 7 ) == "pagerto" ) 113 else if ( n.left( 7 ) == "pagerto" )
112 ExternalAppHandler::instance()->callByPager( n.mid(8) ); 114 ExternalAppHandler::instance()->callByPager( n.mid(8) );
113 else if ( n.left( 5 ) == "sipto" ) 115 else if ( n.left( 5 ) == "sipto" )
114 ExternalAppHandler::instance()->callBySIP( n.mid(6) ); 116 ExternalAppHandler::instance()->callBySIP( n.mid(6) );
115 117
116} 118}
117void AddresseeView::setAddressee( const KABC::Addressee& mAddressee ) 119void AddresseeView::setAddressee( const KABC::Addressee& mAddressee )
118{ 120{
119 bool kemailAvail = ExternalAppHandler::instance()->isEmailAppAvailable(); 121 bool kemailAvail = ExternalAppHandler::instance()->isEmailAppAvailable();
120 // mAddressee = addr; 122 // mAddressee = addr;
121 // clear view 123 // clear view
122 //setText( QString::null ); 124 //setText( QString::null );
123 125
124 if ( mAddressee.isEmpty() ) { 126 if ( mAddressee.isEmpty() ) {
125 setText( QString::null); 127 setText( QString::null);
126 return; 128 return;
127 } 129 }
130#if 0
128 QString name = ( mAddressee.assembledName().isEmpty() ? 131 QString name = ( mAddressee.assembledName().isEmpty() ?
129 mAddressee.formattedName() : mAddressee.assembledName() ); 132 mAddressee.formattedName() : mAddressee.assembledName() );
133#endif
134
135 QString name = mAddressee.realName();
130 136
131 QString dynamicPart; 137 QString dynamicPart;
132 138
133 dynamicPart += getPhoneNumbers( mAddressee.phoneNumbers(),true ); 139 dynamicPart += getPhoneNumbers( mAddressee.phoneNumbers(),true );
134 QStringList emails = mAddressee.emails(); 140 QStringList emails = mAddressee.emails();
135 QStringList::ConstIterator emailIt; 141 QStringList::ConstIterator emailIt;
136 QString type = i18n( "Email" ); 142 QString type = i18n( "Email" );
137 emailIt = emails.begin(); 143 emailIt = emails.begin();
138 if ( emailIt != emails.end() ) { 144 if ( emailIt != emails.end() ) {
139 if ( kemailAvail ) { 145 if ( kemailAvail ) {
140 dynamicPart += QString( 146 dynamicPart += QString(
141 "<tr><td align=\"right\"><b>%1</b></td>" 147 "<tr><td align=\"right\"><b>%1</b></td>"
142 "<td align=\"left\"><a href=\"mailto:%2 <%3> \">%4</a></td></tr>" ) 148 "<td align=\"left\"><a href=\"mailto:%2 <%3> \">%4</a></td></tr>" )
143 .arg( type ) 149 .arg( type )
144 .arg( name ) 150 .arg( name )
145 .arg( *emailIt ) 151 .arg( *emailIt )
146 .arg( *emailIt ); 152 .arg( *emailIt );
147 ++emailIt; 153 ++emailIt;
148 } else { 154 } else {
149 dynamicPart += QString( 155 dynamicPart += QString(
150 "<tr><td align=\"right\"><b>%1</b></td>" 156 "<tr><td align=\"right\"><b>%1</b></td>"
151 "<td align=\"left\">%2</td></tr>" ) 157 "<td align=\"left\">%2</td></tr>" )
152 .arg( type ) 158 .arg( type )
153 .arg( *emailIt ); 159 .arg( *emailIt );
154 ++emailIt; 160 ++emailIt;
155 } 161 }
156 } 162 }
157 if ( mAddressee.birthday().date().isValid() ) { 163 if ( mAddressee.birthday().date().isValid() ) {
158 dynamicPart += QString( 164 dynamicPart += QString(
159 "<tr><td align=\"right\"><b>%1</b></td>" 165 "<tr><td align=\"right\"><b>%1</b></td>"
160 "<td align=\"left\">%2</td></tr>" ) 166 "<td align=\"left\">%2</td></tr>" )
161 .arg( i18n ("Birthday") ) 167 .arg( i18n ("Birthday") )
162 .arg( KGlobal::locale()->formatDate( mAddressee.birthday().date() ,true) ); 168 .arg( KGlobal::locale()->formatDate( mAddressee.birthday().date() ,true) );
163 } 169 }
164 dynamicPart += getPhoneNumbers( mAddressee.phoneNumbers(), false ); 170 dynamicPart += getPhoneNumbers( mAddressee.phoneNumbers(), false );
165 171
166 for ( ; emailIt != emails.end(); ++emailIt ) { 172 for ( ; emailIt != emails.end(); ++emailIt ) {
167 if ( kemailAvail ) { 173 if ( kemailAvail ) {
168 dynamicPart += QString( 174 dynamicPart += QString(
169 "<tr><td align=\"right\"><b>%1</b></td>" 175 "<tr><td align=\"right\"><b>%1</b></td>"
170 "<td align=\"left\"><a href=\"mailto:%2 <%3> \">%4</a></td></tr>" ) 176 "<td align=\"left\"><a href=\"mailto:%2 <%3> \">%4</a></td></tr>" )
171 .arg( type ) 177 .arg( type )
172 .arg( name ) 178 .arg( name )
173 .arg( *emailIt ) 179 .arg( *emailIt )
174 .arg( *emailIt ); 180 .arg( *emailIt );
175 } else { 181 } else {
176 dynamicPart += QString( 182 dynamicPart += QString(
177 "<tr><td align=\"right\"><b>%1</b></td>" 183 "<tr><td align=\"right\"><b>%1</b></td>"
178 "<td align=\"left\">%2</td></tr>" ) 184 "<td align=\"left\">%2</td></tr>" )
179 .arg( type ) 185 .arg( type )
180 .arg( *emailIt ); 186 .arg( *emailIt );
181 } 187 }
182 } 188 }
183 189
184 if ( !mAddressee.url().url().isEmpty() ) { 190 if ( !mAddressee.url().url().isEmpty() ) {
185 dynamicPart += QString( 191 dynamicPart += QString(
186 "<tr><td align=\"right\"><b>%1</b></td>" 192 "<tr><td align=\"right\"><b>%1</b></td>"
187 "<td align=\"left\">%2</td></tr>" ) 193 "<td align=\"left\">%2</td></tr>" )
188 .arg( i18n( "Homepage" ) ) 194 .arg( i18n( "Homepage" ) )
189//US .arg( KStringHandler::tagURLs( mAddressee.url().url() ) ); 195//US .arg( KStringHandler::tagURLs( mAddressee.url().url() ) );
190 .arg( mAddressee.url().url() ); 196 .arg( mAddressee.url().url() );
191 //qDebug("AddresseeView::setAddressee has to be verified."); 197 //qDebug("AddresseeView::setAddressee has to be verified.");
192 } 198 }
193 199
194 KABC::Address::List addresses = mAddressee.addresses(); 200 KABC::Address::List addresses = mAddressee.addresses();
195 KABC::Address::List::ConstIterator addrIt; 201 KABC::Address::List::ConstIterator addrIt;
196 for ( addrIt = addresses.begin(); addrIt != addresses.end(); ++addrIt ) { 202 for ( addrIt = addresses.begin(); addrIt != addresses.end(); ++addrIt ) {
197 if ( true /*(*addrIt).label().isEmpty()*/ ) { 203 if ( true /*(*addrIt).label().isEmpty()*/ ) {
198 QString formattedAddress = (*addrIt).formattedAddress().stripWhiteSpace(); 204 QString formattedAddress = (*addrIt).formattedAddress().stripWhiteSpace();
199//US formattedAddress = formattedAddress.replace( '\n', "<br>" ); 205//US formattedAddress = formattedAddress.replace( '\n', "<br>" );
200 //qDebug("adresss %s ",formattedAddress.latin1() ); 206 //qDebug("adresss %s ",formattedAddress.latin1() );
201 formattedAddress = formattedAddress.replace( QRegExp("\n"), "<br>" ); 207 formattedAddress = formattedAddress.replace( QRegExp("\n"), "<br>" );
202 //qDebug("AddresseeView::setAddressee has to be verified."); 208 //qDebug("AddresseeView::setAddressee has to be verified.");
203 209
204 dynamicPart += QString( 210 dynamicPart += QString(
205 "<tr><td align=\"right\"><b>%1</b></td>" 211 "<tr><td align=\"right\"><b>%1</b></td>"
206 "<td align=\"left\">%2</td></tr>" ) 212 "<td align=\"left\">%2</td></tr>" )
207 .arg( KABC::Address::typeLabel( (*addrIt).type() ) ) 213 .arg( KABC::Address::typeLabel( (*addrIt).type() ) )
208 .arg( formattedAddress ); 214 .arg( formattedAddress );
209 } else { 215 } else {
210 216
211 dynamicPart += QString( 217 dynamicPart += QString(
212 "<tr><td align=\"right\"><b>%1</b></td>" 218 "<tr><td align=\"right\"><b>%1</b></td>"
213 "<td align=\"left\">%2</td></tr>" ) 219 "<td align=\"left\">%2</td></tr>" )
214 .arg( KABC::Address::typeLabel( (*addrIt).type() ) ) 220 .arg( KABC::Address::typeLabel( (*addrIt).type() ) )
215//US .arg( (*addrIt).label().replace( '\n', "<br>" ) ); 221//US .arg( (*addrIt).label().replace( '\n', "<br>" ) );
216 .arg( (*addrIt).label() /*replace( QRegExp("\n"), "<br>" )*/ ); 222 .arg( (*addrIt).label() /*replace( QRegExp("\n"), "<br>" )*/ );
217 223
218 } 224 }
219 } 225 }
220 226
221 QString notes; 227 QString notes;
222 if ( !mAddressee.note().isEmpty() ) { 228 if ( !mAddressee.note().isEmpty() ) {
223 notes = QString( 229 notes = QString(
224 "<tr>" 230 "<tr>"
225 "<td align=\"right\" valign=\"top\"><b>%1</b></td>" // note label 231 "<td align=\"right\" valign=\"top\"><b>%1</b></td>" // note label