summaryrefslogtreecommitdiffabout
path: root/kabc
authorzautrix <zautrix>2005-06-26 10:43:45 (UTC)
committer zautrix <zautrix>2005-06-26 10:43:45 (UTC)
commit98bc92a09eb27fef0efa9c3dc5e963f7faa0319c (patch) (side-by-side diff)
treef80716d3e1239054a0a48bec6e9f67dd57e2156a /kabc
parentf27e8c6cc8abbd27f10167334d608c7e0af7f711 (diff)
downloadkdepimpi-98bc92a09eb27fef0efa9c3dc5e963f7faa0319c.zip
kdepimpi-98bc92a09eb27fef0efa9c3dc5e963f7faa0319c.tar.gz
kdepimpi-98bc92a09eb27fef0efa9c3dc5e963f7faa0319c.tar.bz2
details addressee better
Diffstat (limited to 'kabc') (more/less context) (show whitespace changes)
-rw-r--r--kabc/addresseeview.cpp160
-rw-r--r--kabc/addresseeview.h3
2 files changed, 148 insertions, 15 deletions
diff --git a/kabc/addresseeview.cpp b/kabc/addresseeview.cpp
index 667a5e2..202a718 100644
--- a/kabc/addresseeview.cpp
+++ b/kabc/addresseeview.cpp
@@ -35,115 +35,122 @@
#include <qwidget.h>
#include <qlayout.h>
#include <qapplication.h>
#include <qpushbutton.h>
#ifdef DESKTOP_VERSION
#include <qpaintdevicemetrics.h>
#include <qprinter.h>
#include <qpainter.h>
#endif
#include <qstylesheet.h>
#include "externalapphandler.h"
#include <kabc/addresseeview.h>
//US #ifndef DESKTOP_VERSION
//US #include <qtopia/qcopenvelope_qws.h>
//US #include <qpe/qpeapplication.h>
//US #endif
//US static int kphoneInstalled = 0;
using namespace KABC;
+bool AddresseeView::sFullDetailsMode = false;
AddresseeView::AddresseeView( QWidget *parent, const char *name )
: QTextBrowser( parent, name )
{
//US setWrapPolicy( QTextEdit::AtWordBoundary );
setLinkUnderline( false );
// setVScrollBarMode( QScrollView::AlwaysOff );
//setHScrollBarMode( QScrollView::AlwaysOff );
//US QStyleSheet *sheet = styleSheet();
//US QStyleSheetItem *link = sheet->item( "a" );
//US link->setColor( KGlobalSettings::linkColor() );
}
void AddresseeView::printMe()
{
#ifdef DESKTOP_VERSION
QPrinter printer;
if (!printer.setup() )
return;
QPainter p;
p.begin ( &printer );
QPaintDeviceMetrics m = QPaintDeviceMetrics ( &printer );
float dx, dy;
int wid = (m.width() * 9)/10;
dx = (float) wid/(float)contentsWidth ();
dy = (float)(m.height()) / (float)contentsHeight ();
float scale;
// scale to fit the width or height of the paper
if ( dx < dy )
scale = dx;
else
scale = dy;
p.translate( m.width()/10,0 );
p.scale( scale, scale );
drawContents ( &p, 0,0, contentsWidth (), contentsHeight () );
p.end();
#endif
}
void AddresseeView::setSource(const QString& n)
{
- //qDebug("********AddresseeView::setSource %s", n.latin1());
-
- if ( n.left( 6 ) == "mailto" )
+ qDebug("********AddresseeView::setSource %s", n.latin1());
+
+ if ( n == "allDetails" ) {
+ sFullDetailsMode = true;
+ setAddressee( mCurrentContact );
+ } else if ( n == "notAllDetails" ) {
+ sFullDetailsMode = false;
+ setAddressee( mCurrentContact );
+ } else if ( n.left( 6 ) == "mailto" )
ExternalAppHandler::instance()->mailToOneContact( n.mid(7) );
else if ( n.left( 7 ) == "phoneto" )
ExternalAppHandler::instance()->callByPhone( n.mid(8) );
else if ( n.left( 5 ) == "faxto" )
ExternalAppHandler::instance()->callByFax( n.mid(6) );
else if ( n.left( 5 ) == "smsto" )
ExternalAppHandler::instance()->callBySMS( n.mid(6) );
else if ( n.left( 7 ) == "pagerto" )
ExternalAppHandler::instance()->callByPager( n.mid(8) );
else if ( n.left( 5 ) == "sipto" )
ExternalAppHandler::instance()->callBySIP( n.mid(6) );
}
void AddresseeView::setAddressee( const KABC::Addressee& mAddressee )
{
bool kemailAvail = ExternalAppHandler::instance()->isEmailAppAvailable();
// mAddressee = addr;
// clear view
//setText( QString::null );
-
+ mCurrentContact = mAddressee;
if ( mAddressee.isEmpty() ) {
setText( QString::null);
return;
}
#if 0
QString name = ( mAddressee.assembledName().isEmpty() ?
mAddressee.formattedName() : mAddressee.assembledName() );
#endif
QString name = mAddressee.realName();
QString dynamicPart;
dynamicPart += getPhoneNumbers( mAddressee.phoneNumbers(),true );
QStringList emails = mAddressee.emails();
QStringList::ConstIterator emailIt;
QString type = i18n( "Email" );
emailIt = emails.begin();
if ( emailIt != emails.end() ) {
if ( kemailAvail ) {
dynamicPart += QString(
"<tr><td align=\"right\"><b>%1</b></td>"
"<td align=\"left\"><a href=\"mailto:%2 <%3> \">%4</a></td></tr>" )
.arg( type )
@@ -166,96 +173,221 @@ void AddresseeView::setAddressee( const KABC::Addressee& mAddressee )
"<td align=\"left\">%2</td></tr>" )
.arg( i18n ("Birthday") )
.arg( KGlobal::locale()->formatDate( mAddressee.birthday().date() ,true) );
}
dynamicPart += getPhoneNumbers( mAddressee.phoneNumbers(), false );
for ( ; emailIt != emails.end(); ++emailIt ) {
if ( kemailAvail ) {
dynamicPart += QString(
"<tr><td align=\"right\"><b>%1</b></td>"
"<td align=\"left\"><a href=\"mailto:%2 <%3> \">%4</a></td></tr>" )
.arg( type )
.arg( name )
.arg( *emailIt )
.arg( *emailIt );
} else {
dynamicPart += QString(
"<tr><td align=\"right\"><b>%1</b></td>"
"<td align=\"left\">%2</td></tr>" )
.arg( type )
.arg( *emailIt );
}
}
- if ( !mAddressee.url().url().isEmpty() ) {
- dynamicPart += QString(
- "<tr><td align=\"right\"><b>%1</b></td>"
- "<td align=\"left\">%2</td></tr>" )
- .arg( i18n( "Homepage" ) )
-//US .arg( KStringHandler::tagURLs( mAddressee.url().url() ) );
- .arg( mAddressee.url().url() );
- //qDebug("AddresseeView::setAddressee has to be verified.");
- }
+
KABC::Address::List addresses = mAddressee.addresses();
KABC::Address::List::ConstIterator addrIt;
for ( addrIt = addresses.begin(); addrIt != addresses.end(); ++addrIt ) {
if ( true /*(*addrIt).label().isEmpty()*/ ) {
QString formattedAddress = (*addrIt).formattedAddress().stripWhiteSpace();
//US formattedAddress = formattedAddress.replace( '\n', "<br>" );
//qDebug("adresss %s ",formattedAddress.latin1() );
formattedAddress = formattedAddress.replace( QRegExp("\n"), "<br>" );
//qDebug("AddresseeView::setAddressee has to be verified.");
dynamicPart += QString(
"<tr><td align=\"right\"><b>%1</b></td>"
"<td align=\"left\">%2</td></tr>" )
.arg( KABC::Address::typeLabel( (*addrIt).type() ) )
.arg( formattedAddress );
} else {
dynamicPart += QString(
"<tr><td align=\"right\"><b>%1</b></td>"
"<td align=\"left\">%2</td></tr>" )
.arg( KABC::Address::typeLabel( (*addrIt).type() ) )
//US .arg( (*addrIt).label().replace( '\n', "<br>" ) );
.arg( (*addrIt).label() /*replace( QRegExp("\n"), "<br>" )*/ );
}
}
+
QString notes;
- if ( !mAddressee.note().isEmpty() ) {
+ if ( sFullDetailsMode ) {
notes = QString(
+ "<tr><td align=\"right\"><b>%1</b></td>"
+ "<td align=\"left\"><a href=\"notAllDetails\">%4</a></td></tr>" )
+ .arg( i18n("Details:") )
+ .arg( i18n("Click here to hide!") );
+
+ QString tempX = mAddressee.secrecy().asString();
+
+ notes += QString(
+ "<tr><td align=\"right\"><b>%1</b></td>"
+ "<td align=\"left\">%2</td></tr>" )
+ .arg( "" )
+ .arg( tempX );
+
+
+ tempX = mAddressee.categories().join(" - ");
+ if ( !tempX.isEmpty() ) {
+ notes += QString(
+ "<tr><td align=\"right\"><b>%1</b></td>"
+ "<td align=\"left\">%2</td></tr>" )
+ .arg( i18n( "Category" ) )
+ .arg( tempX );
+ }
+ tempX = mAddressee.custom( "KADDRESSBOOK", "X-Profession" );
+ if ( !tempX.isEmpty() ) {
+ notes += QString(
+ "<tr><td align=\"right\"><b>%1</b></td>"
+ "<td align=\"left\">%2</td></tr>" )
+ .arg( i18n( "Profession" ) )
+ .arg( tempX );
+ }
+ tempX = mAddressee.custom( "KADDRESSBOOK", "X-Office" );
+ if ( !tempX.isEmpty() ) {
+ notes += QString(
+ "<tr><td align=\"right\"><b>%1</b></td>"
+ "<td align=\"left\">%2</td></tr>" )
+ .arg( i18n( "Office" ) )
+ .arg( tempX );
+ }
+ tempX = mAddressee.custom( "KADDRESSBOOK", "X-Department" );
+ if ( !tempX.isEmpty() ) {
+ notes += QString(
+ "<tr><td align=\"right\"><b>%1</b></td>"
+ "<td align=\"left\">%2</td></tr>" )
+ .arg( i18n( "Department" ) )
+ .arg( tempX );
+ }
+
+ tempX = mAddressee.custom( "KADDRESSBOOK", "X-ManagersName" );
+ if ( !tempX.isEmpty() ) {
+ notes += QString(
+ "<tr><td align=\"right\"><b>%1</b></td>"
+ "<td align=\"left\">%2</td></tr>" )
+ .arg( i18n( "Manager" ) )
+ .arg( tempX );
+ }
+ tempX = mAddressee.custom( "KADDRESSBOOK", "X-AssistantsName" );
+ if ( !tempX.isEmpty() ) {
+ notes += QString(
+ "<tr><td align=\"right\"><b>%1</b></td>"
+ "<td align=\"left\">%2</td></tr>" )
+ .arg( i18n( "Assistant" ) )
+ .arg( tempX );
+ }
+ if ( !mAddressee.url().url().isEmpty() ) {
+ notes += QString(
+ "<tr><td align=\"right\"><b>%1</b></td>"
+ "<td align=\"left\">%2</td></tr>" )
+ .arg( i18n( "Homepage" ) )
+ .arg( mAddressee.url().url() );
+ }
+ tempX = mAddressee.nickName();
+ if ( !tempX.isEmpty() ) {
+ notes += QString(
+ "<tr><td align=\"right\"><b>%1</b></td>"
+ "<td align=\"left\">%2</td></tr>" )
+ .arg( i18n( "Nickname" ) )
+ .arg( tempX );
+ }
+ tempX = mAddressee.custom( "KADDRESSBOOK", "X-IMAddress" );
+ if ( !tempX.isEmpty() ) {
+ notes += QString(
+ "<tr><td align=\"right\"><b>%1</b></td>"
+ "<td align=\"left\">%2</td></tr>" )
+ .arg( i18n( "Messanger" ) )
+ .arg( tempX );
+ }
+ tempX = mAddressee.custom( "KADDRESSBOOK", "X-Gender" );
+ if ( !tempX.isEmpty() ) {
+ notes += QString(
+ "<tr><td align=\"right\"><b>%1</b></td>"
+ "<td align=\"left\">%2</td></tr>" )
+ .arg( i18n( "Gender" ) )
+ .arg( i18n(tempX) );
+ }
+ tempX = mAddressee.custom( "KADDRESSBOOK", "X-Anniversary" );
+ if ( !tempX.isEmpty() ) {
+ QDate dt = KGlobal::locale()->readDate( tempX, "%Y-%m-%d");
+ tempX = KGlobal::locale()->formatDate(dt, true);
+ notes += QString(
+ "<tr><td align=\"right\"><b>%1</b></td>"
+ "<td align=\"left\">%2</td></tr>" )
+ .arg( i18n( "Anniversary" ) )
+ .arg( tempX );
+ }
+ tempX = mAddressee.custom( "KADDRESSBOOK", "X-SpousesName" );
+ if ( !tempX.isEmpty() ) {
+ notes += QString(
+ "<tr><td align=\"right\"><b>%1</b></td>"
+ "<td align=\"left\">%2</td></tr>" )
+ .arg( i18n( "Spouse" ) )
+ .arg( tempX );
+ }
+ tempX = mAddressee.custom( "KADDRESSBOOK", "X-Children" );
+ if ( !tempX.isEmpty() ) {
+ notes += QString(
+ "<tr><td align=\"right\"><b>%1</b></td>"
+ "<td align=\"left\">%2</td></tr>" )
+ .arg( i18n( "Children" ) )
+ .arg( tempX );
+ }
+
+ if ( !mAddressee.note().isEmpty() ) {
+ notes += QString(
"<tr>"
"<td align=\"right\" valign=\"top\"><b>%1</b></td>" // note label
"<td align=\"left\">%2</td>" // note
"</tr>" ).arg( i18n( "Notes" ) )
//US .arg( mAddressee.note().replace( '\n', "<br>" ) );
.arg( mAddressee.note().replace( QRegExp("\n"), "<br>" ) );
//qDebug("AddresseeView::setAddressee has to be verified.");
}
+ } else {
+ notes = QString(
+ "<tr><td align=\"right\"><b>%1</b></td>"
+ "<td align=\"left\"><a href=\"allDetails\">%4</a></td></tr>" )
+ .arg( i18n("Details:") )
+ .arg( i18n("Click here to show!") );
+
+
+ }
QString aRole = "";
QString aOrga = "";
if ( true /*!mAddressee.role().isEmpty()*/ ) {
aRole = "<tr>"
"<td align=\"left\">" + mAddressee.role() + "</td>"
"</tr>";
}
if ( true /*!mAddressee.organization().isEmpty()*/ ) {
aOrga = "<tr>"
"<td align=\"left\">" + mAddressee.organization() + "</td>"
"</tr>";
}
mText = "";
QString picString = "";
KABC::Picture picture = mAddressee.photo();
bool picAvailintern = false;
bool picAvailUrl = false;
if (! picture.undefined() ) {
picAvailintern = (picture.isIntern() && !picture.data().isNull());
picAvailUrl = !picture.isIntern() && QFile::exists(picture.url() );
}
if ( picAvailUrl || picAvailintern || QApplication::desktop()->width() > 320 ) {
picString = "<img src=\"myimage\" width=\"50\" height=\"70\">";
diff --git a/kabc/addresseeview.h b/kabc/addresseeview.h
index e977d8f..a4de085 100644
--- a/kabc/addresseeview.h
+++ b/kabc/addresseeview.h
@@ -28,50 +28,51 @@
//US #include <ktextbrowser.h>
#include <qtextbrowser.h>
namespace KABC {
//US class AddresseeView : public KTextBrowser
class AddresseeView : public QTextBrowser
{
public:
AddresseeView( QWidget *parent = 0, const char *name = 0 );
/**
Sets the addressee object. The addressee is displayed immediately.
@param addr The addressee object.
*/
void setAddressee( const KABC::Addressee& addr );
void setSource(const QString& n);
/**
Returns the current addressee object.
*/
//KABC::Addressee addressee() const;
void printMe();
-
+ static bool sFullDetailsMode;
private:
+ Addressee mCurrentContact;
//KABC::Addressee mAddressee;
QString mText;
QString getPhoneNumbers( KABC::PhoneNumber::List phones, bool preferred );
void addTag(const QString & tag,const QString & text);
//class AddresseeViewPrivate;
//AddresseeViewPrivate *d;
};
class AddresseeChooser : public KDialogBase
{
Q_OBJECT
public:
AddresseeChooser( KABC::Addressee loc, KABC::Addressee rem, bool takeloc, QWidget *parent = 0, const char *name = 0 );
int executeD( bool local );
private:
int mSyncResult;
private slots:
void slot_remote();
void slot_local();
};