-rw-r--r-- | libkdepim/addresseeview.cpp | 119 |
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 | ||
44 | static int kphoneInstalled = 0; | 45 | //US static int kphoneInstalled = 0; |
45 | 46 | ||
46 | using namespace KPIM; | 47 | using 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 | |||
64 | void AddresseeView::setSource(const QString& n) | 66 | void 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 | } |
79 | void AddresseeView::setAddressee( const KABC::Addressee& addr ) | 82 | void 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() ) { |