summaryrefslogtreecommitdiffabout
Unidiff
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--libkdepim/addresseeview.cpp119
1 files changed, 80 insertions, 39 deletions
diff --git a/libkdepim/addresseeview.cpp b/libkdepim/addresseeview.cpp
index 83aba48..8fecaf8 100644
--- a/libkdepim/addresseeview.cpp
+++ b/libkdepim/addresseeview.cpp
@@ -33,15 +33,16 @@
33#include <qapplication.h> 33#include <qapplication.h>
34 34
35 35
36#include "externalapphandler.h"
36#include "addresseeview.h" 37#include "addresseeview.h"
37 38
38 39
39#ifndef DESKTOP_VERSION 40//US #ifndef DESKTOP_VERSION
40#include <qtopia/qcopenvelope_qws.h> 41//US #include <qtopia/qcopenvelope_qws.h>
41#include <qpe/qpeapplication.h> 42//US #include <qpe/qpeapplication.h>
42#endif 43//US #endif
43 44
44static int kphoneInstalled = 0; 45//US static int kphoneInstalled = 0;
45 46
46using namespace KPIM; 47using namespace KPIM;
47 48
@@ -61,42 +62,33 @@ AddresseeView::AddresseeView( QWidget *parent, const char *name )
61//US link->setColor( KGlobalSettings::linkColor() ); 62//US link->setColor( KGlobalSettings::linkColor() );
62 63
63} 64}
65
64void AddresseeView::setSource(const QString& n) 66void AddresseeView::setSource(const QString& n)
65{ 67{
66 qDebug("********AddresseeView::setSource %s", n.latin1()); 68 qDebug("********AddresseeView::setSource %s", n.latin1());
67#ifndef DESKTOP_VERSION 69
68 if ( n.left( 6 ) == "mailto" ) { 70 if ( n.left( 6 ) == "mailto" )
69 QCopEnvelope e("QPE/Application/ompi", "newMail(QString)"); 71 ExternalAppHandler::instance()->mailToContacts( n.mid(7) );
70 e << n.mid(7); 72 else if ( n.left( 7 ) == "phoneto" )
71 } 73 ExternalAppHandler::instance()->callByPhone( n.mid(8) );
72 if ( n.left( 7 ) == "phoneto" ) { 74 else if ( n.left( 5 ) == "faxto" )
73 QString mess = "-ring:" + n.mid(8); 75 ExternalAppHandler::instance()->callByFax( n.mid(6) );
74 QCopEnvelope e("QPE/Application/kppi", mess.latin1()); 76 else if ( n.left( 5 ) == "smsto" )
75 } 77 ExternalAppHandler::instance()->callBySMS( n.mid(6) );
76#endif 78 else if ( n.left( 7 ) == "pagerto" )
79 ExternalAppHandler::instance()->callByPager( n.mid(8) );
77 80
78} 81}
79void AddresseeView::setAddressee( const KABC::Addressee& addr ) 82void AddresseeView::setAddressee( const KABC::Addressee& addr )
80{ 83{
81 bool kphoneAvail = false; 84 ExternalAppHandler* eah = ExternalAppHandler::instance();
85 bool kemailAvail = eah->isEmailAppAvailable();
86 bool kphoneAvail = eah->isPhoneAppAvailable();
87 bool kfaxAvail = eah->isFaxAppAvailable();
88 bool ksmsAvail = eah->isSMSAppAvailable();
89 bool kpagerAvail = eah->isPagerAppAvailable();
82 90
83#ifndef DESKTOP_VERSION
84 if ( ! kphoneInstalled ) {
85 if ( QFile::exists( QPEApplication::qpeDir() + "/bin/kppi" ) )
86 kphoneInstalled = 1;
87 else
88 kphoneInstalled = -1;
89 }
90 if ( kphoneInstalled > 0 )
91 kphoneAvail = true;
92#if 0
93 if ( kphoneAvail )
94 qDebug("KPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPone avail ");
95 else
96 qDebug("NOOOOOOOOOOOo KPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPone avail ");
97#endif
98 91
99#endif
100 mAddressee = addr; 92 mAddressee = addr;
101 // clear view 93 // clear view
102 setText( QString::null ); 94 setText( QString::null );
@@ -114,6 +106,7 @@ void AddresseeView::setAddressee( const KABC::Addressee& addr )
114 QString type = i18n( "Email" ); 106 QString type = i18n( "Email" );
115 emailIt = emails.begin(); 107 emailIt = emails.begin();
116 if ( emailIt != emails.end() ) { 108 if ( emailIt != emails.end() ) {
109 if ( kemailAvail ) {
117 dynamicPart += QString( 110 dynamicPart += QString(
118 "<tr><td align=\"right\"><b>%1</b></td>" 111 "<tr><td align=\"right\"><b>%1</b></td>"
119 "<td align=\"left\"><a href=\"mailto:%2 <%3> \">%4</a></td></tr>" ) 112 "<td align=\"left\"><a href=\"mailto:%2 <%3> \">%4</a></td></tr>" )
@@ -122,30 +115,71 @@ void AddresseeView::setAddressee( const KABC::Addressee& addr )
122 .arg( *emailIt ) 115 .arg( *emailIt )
123 .arg( *emailIt ); 116 .arg( *emailIt );
124 ++emailIt; 117 ++emailIt;
118 } else {
119 dynamicPart += QString(
120 "<tr><td align=\"right\"><b>%1</b></td>"
121 "<td align=\"left\">%2</td></tr>" )
122 .arg( type )
123 .arg( *emailIt );
124 ++emailIt;
125 }
125 } 126 }
126 127
127 KABC::PhoneNumber::List phones = mAddressee.phoneNumbers(); 128 KABC::PhoneNumber::List phones = mAddressee.phoneNumbers();
128 KABC::PhoneNumber::List::ConstIterator phoneIt; 129 KABC::PhoneNumber::List::ConstIterator phoneIt;
130 QString extension;
131 int phonetype;
132 QString sms;
129 for ( phoneIt = phones.begin(); phoneIt != phones.end(); ++phoneIt ) { 133 for ( phoneIt = phones.begin(); phoneIt != phones.end(); ++phoneIt ) {
130 if ( kphoneAvail ) { 134 phonetype = (*phoneIt).type();
135 if (ksmsAvail &&
136 (
137 ((phonetype & KABC::PhoneNumber::Car) == KABC::PhoneNumber::Car) ||
138 ((phonetype & KABC::PhoneNumber::Cell) == KABC::PhoneNumber::Cell)
139 )
140 )
141 {
142 sms = QString("<a href=\"smsto:%1 \">(sms)</a>" )
143 .arg( (*phoneIt).number() );
144
145 }
146 else
147 sms = "";
148
149 extension = QString::null;
150 if ((phonetype & KABC::PhoneNumber::Fax) == KABC::PhoneNumber::Fax)
151 if (kfaxAvail) extension = "faxto:";
152 else if ((phonetype & KABC::PhoneNumber::Pager) == KABC::PhoneNumber::Pager)
153 if (kpagerAvail) extension = "pagerto:";
154 else if (kphoneAvail)
155 extension = "phoneto:";
156 else
157 extension = QString::null;
158
159
160 if ( !extension.isEmpty() ) {
131 dynamicPart += QString( 161 dynamicPart += QString(
132 "<tr><td align=\"right\"><b>%1</b></td>" 162 "<tr><td align=\"right\"><b>%1</b></td>"
133 "<td align=\"left\"><a href=\"phoneto:%2 \">%3</a></td></tr>" ) 163 "<td align=\"left\"><a href=\"%2%3 \">%4</a> %5</td></tr>" )
134 .arg( KABC::PhoneNumber::typeLabel( (*phoneIt).type() ) ) 164 .arg( KABC::PhoneNumber::typeLabel( phonetype ) )
165 .arg( extension )
135 .arg( (*phoneIt).number() ) 166 .arg( (*phoneIt).number() )
136 .arg( (*phoneIt).number() ); 167 .arg( (*phoneIt).number() )
168 .arg( sms );
137 169
138 } else { 170 } else {
139 dynamicPart += QString( 171 dynamicPart += QString(
140 "<tr><td align=\"right\"><b>%1</b></td>" 172 "<tr><td align=\"right\"><b>%1</b></td>"
141 "<td align=\"left\">%2</td></tr>" ) 173 "<td align=\"left\">%2 %3</td></tr>" )
142 .arg( KABC::PhoneNumber::typeLabel( (*phoneIt).type() ) ) 174 .arg( KABC::PhoneNumber::typeLabel( phonetype ) )
143 .arg( (*phoneIt).number() ); 175 .arg( (*phoneIt).number() )
176 .arg( sms );
144 } 177 }
145 } 178 }
146 179
147 180
148 for ( ; emailIt != emails.end(); ++emailIt ) { 181 for ( ; emailIt != emails.end(); ++emailIt ) {
182 if ( kemailAvail ) {
149 dynamicPart += QString( 183 dynamicPart += QString(
150 "<tr><td align=\"right\"><b>%1</b></td>" 184 "<tr><td align=\"right\"><b>%1</b></td>"
151 "<td align=\"left\"><a href=\"mailto:%2 <%3> \">%4</a></td></tr>" ) 185 "<td align=\"left\"><a href=\"mailto:%2 <%3> \">%4</a></td></tr>" )
@@ -153,6 +187,13 @@ void AddresseeView::setAddressee( const KABC::Addressee& addr )
153 .arg( name ) 187 .arg( name )
154 .arg( *emailIt ) 188 .arg( *emailIt )
155 .arg( *emailIt ); 189 .arg( *emailIt );
190 } else {
191 dynamicPart += QString(
192 "<tr><td align=\"right\"><b>%1</b></td>"
193 "<td align=\"left\">%2</td></tr>" )
194 .arg( type )
195 .arg( *emailIt );
196 }
156 } 197 }
157 198
158 if ( !mAddressee.url().url().isEmpty() ) { 199 if ( !mAddressee.url().url().isEmpty() ) {