You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
206 lines
5.8 KiB
206 lines
5.8 KiB
/*
|
|
This file is part of libtdepim.
|
|
|
|
Copyright (c) 2003 Tobias Koenig <tokoe@kde.org>
|
|
|
|
This library is free software; you can redistribute it and/or
|
|
modify it under the terms of the GNU Library General Public
|
|
License as published by the Free Software Foundation; either
|
|
version 2 of the License, or (at your option) any later version.
|
|
|
|
This library is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
Library General Public License for more details.
|
|
|
|
You should have received a copy of the GNU Library General Public License
|
|
along with this library; see the file COPYING.LIB. If not, write to
|
|
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
|
Boston, MA 02110-1301, USA.
|
|
*/
|
|
|
|
#ifndef KPIM_ADDRESSEEVIEW_H
|
|
#define KPIM_ADDRESSEEVIEW_H
|
|
|
|
#include <tqcstring.h>
|
|
|
|
#include <kabc/addressee.h>
|
|
#include <ktextbrowser.h>
|
|
#include <kimproxy.h>
|
|
#include <tdepimmacros.h>
|
|
|
|
namespace KIO {
|
|
class Job;
|
|
}
|
|
class KToggleAction;
|
|
|
|
class TQPopupMenu;
|
|
|
|
|
|
namespace KPIM {
|
|
|
|
|
|
class KDE_EXPORT AddresseeView : public KTextBrowser
|
|
{
|
|
Q_OBJECT
|
|
|
|
public:
|
|
/**
|
|
Constructor.
|
|
|
|
@param config The config object where the settings are stored
|
|
which fields will be shown.
|
|
*/
|
|
AddresseeView( TQWidget *parent = 0, const char *name = 0,
|
|
KConfig *config = 0 );
|
|
|
|
~AddresseeView();
|
|
|
|
/**
|
|
Sets the addressee object. The addressee is displayed immediately.
|
|
|
|
@param addr The addressee object.
|
|
*/
|
|
void setAddressee( const KABC::Addressee& addr );
|
|
|
|
/**
|
|
Returns the current addressee object.
|
|
*/
|
|
KABC::Addressee addressee() const;
|
|
|
|
|
|
/**
|
|
This enums are used by enableLinks to set which kind of links shall
|
|
be enabled.
|
|
*/
|
|
enum LinkMask {
|
|
NoLinks = 0,
|
|
AddressLinks = 1,
|
|
EmailLinks = 2,
|
|
PhoneLinks = 4,
|
|
URLLinks = 8,
|
|
IMLinks = 16,
|
|
DefaultLinks = AddressLinks | EmailLinks | PhoneLinks | URLLinks | IMLinks
|
|
};
|
|
|
|
/**
|
|
Sets which parts of the contact shall be presented as links.
|
|
The mask can be OR'ed LinkMask. By default all links are enabled.
|
|
*/
|
|
void enableLinks( int linkMask );
|
|
|
|
/**
|
|
This enums are used by vCardAsHTML to decide which fields shall be
|
|
shown.
|
|
*/
|
|
enum FieldMask {
|
|
NoFields = 0,
|
|
BirthdayFields = 1,
|
|
AddressFields = 2,
|
|
EmailFields = 4,
|
|
PhoneFields = 8,
|
|
URLFields = 16,
|
|
IMFields = 32,
|
|
CustomFields = 64,
|
|
DefaultFields = AddressFields | EmailFields | PhoneFields | URLFields
|
|
};
|
|
|
|
/**
|
|
Returns the HTML representation of a contact.
|
|
The HTML code looks like
|
|
<div>
|
|
<table>
|
|
...
|
|
</table>
|
|
</div>
|
|
|
|
@param addr The addressee object.
|
|
@param linkMask The mask for which parts of the contact will
|
|
be displayed as links.
|
|
The links looks like this:
|
|
"addr://<addr id>" for addresses
|
|
"mailto:<email address>" for emails
|
|
"phone://<phone number>" for phone numbers
|
|
"http://<url>" for urls
|
|
"im:<im addrss>" for instant messaging addresses
|
|
"sms://<phone number>" for sending a sms
|
|
@param internalLoading If true, the loading of internal pictures is done automatically.
|
|
@param fieldMask The mask for which fields of the contact will
|
|
be displayed.
|
|
*/
|
|
static TQString vCardAsHTML( const KABC::Addressee& addr, ::KIMProxy *proxy, LinkMask linkMask = DefaultLinks,
|
|
bool internalLoading = true, FieldMask fieldMask = DefaultFields );
|
|
|
|
/**
|
|
* Encodes a TQPixmap as a PNG into a data: URL (rfc2397), readable by the data kio protocol
|
|
* @param pixmap the pixmap to encode
|
|
* @return a data: URL
|
|
*/
|
|
static TQString pixmapAsDataUrl( const TQPixmap& pixmap );
|
|
|
|
signals:
|
|
void urlHighlighted( const TQString &url );
|
|
void emailHighlighted( const TQString &email );
|
|
void phoneNumberHighlighted( const TQString &number );
|
|
void faxNumberHighlighted( const TQString &number );
|
|
|
|
void highlightedMessage( const TQString &message );
|
|
|
|
void addressClicked( const TQString &uid );
|
|
|
|
protected:
|
|
virtual void urlClicked( const TQString &url );
|
|
virtual void emailClicked( const TQString &mail );
|
|
virtual void phoneNumberClicked( const TQString &number );
|
|
virtual void smsTextClicked( const TQString &number );
|
|
virtual void sendSMS( const TQString &number, const TQString &msg );
|
|
virtual void faxNumberClicked( const TQString &number );
|
|
virtual void imAddressClicked();
|
|
|
|
virtual TQPopupMenu *createPopupMenu( const TQPoint& );
|
|
|
|
private slots:
|
|
void slotMailClicked( const TQString&, const TQString& );
|
|
void slotUrlClicked( const TQString& );
|
|
void slotHighlighted( const TQString& );
|
|
void slotPresenceChanged( const TQString & );
|
|
void slotPresenceInfoExpired();
|
|
void configChanged();
|
|
|
|
void data( KIO::Job*, const TQByteArray& );
|
|
void result( KIO::Job* );
|
|
|
|
private:
|
|
void load();
|
|
void save();
|
|
|
|
void updateView();
|
|
|
|
TQString strippedNumber( const TQString &number );
|
|
|
|
KConfig *mConfig;
|
|
bool mDefaultConfig;
|
|
|
|
TQByteArray mImageData;
|
|
KIO::Job *mImageJob;
|
|
|
|
KToggleAction *mActionShowBirthday;
|
|
KToggleAction *mActionShowAddresses;
|
|
KToggleAction *mActionShowEmails;
|
|
KToggleAction *mActionShowPhones;
|
|
KToggleAction *mActionShowURLs;
|
|
KToggleAction *mActionShowIMAddresses;
|
|
KToggleAction *mActionShowCustomFields;
|
|
|
|
KABC::Addressee mAddressee;
|
|
int mLinkMask;
|
|
|
|
class AddresseeViewPrivate;
|
|
AddresseeViewPrivate *d;
|
|
::KIMProxy *mKIMProxy;
|
|
};
|
|
|
|
}
|
|
|
|
#endif
|