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.
130 lines
6.0 KiB
130 lines
6.0 KiB
/*
|
|
This program is free software; you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License as published by
|
|
the Free Software Foundation; either version 2 of the License, or
|
|
(at your option) any later version.
|
|
*/
|
|
|
|
/*
|
|
addressbook.cpp - This class contains functions that interact with kaddressbook.
|
|
begin: Fri 2004-07-23
|
|
copyright: (C) 2004 by John Tapsell
|
|
email: john@geola.co.uk
|
|
*/
|
|
|
|
#ifndef ADDRESSBOOKBASE_H
|
|
#define ADDRESSBOOKBASE_H
|
|
|
|
#include "../images.h"
|
|
#include "../nickinfo.h"
|
|
#include "../channelnick.h"
|
|
|
|
#include <kstaticdeleter.h>
|
|
#include <tqobject.h>
|
|
#include <tqregexp.h>
|
|
#include <config.h>
|
|
|
|
|
|
#include <tdeabc/addressbook.h>
|
|
#include <tdeabc/stdaddressbook.h>
|
|
|
|
|
|
namespace Konversation
|
|
{
|
|
class AddressbookBase : public TQObject, public KIMIface
|
|
{
|
|
Q_OBJECT
|
|
|
|
public:
|
|
virtual ~AddressbookBase(); // This needs to be public so it can be deleted by our static pointer
|
|
TDEABC::Addressee getKABCAddresseeFromNick(const TQString &ircnick, const TQString &servername, const TQString &servergroup);
|
|
TDEABC::Addressee getKABCAddresseeFromNick(const TQString &nick_server);
|
|
bool hasNick(const TDEABC::Addressee &addressee, const TQString &ircnick, const TQString &servername, const TQString &servergroup);
|
|
bool hasNick(const TDEABC::Addressee &addressee, const TQString &nick_server);
|
|
|
|
/** For a given contact, remove the ircnick if they have it. If you
|
|
* pass an addressBook, the contact is inserted if it has changed.
|
|
*/
|
|
void unassociateNick(TDEABC::Addressee &addressee, const TQString &ircnick, const TQString &servername, const TQString &servergroup);
|
|
void associateNick(TDEABC::Addressee &addressee, const TQString &ircnick, const TQString &servername, const TQString &servergroup);
|
|
bool associateNickAndUnassociateFromEveryoneElse(TDEABC::Addressee &addressee, const TQString &ircnick, const TQString &servername, const TQString &servergroup);
|
|
/** If this user is online, return one of the nicks that they are
|
|
* using. Otherwise return the first nick listed.
|
|
* If there are multiple matches, it will prefer ones that are not set to away.
|
|
* @return online nick, first nick, or TQString() if they aren't known at all.
|
|
*/
|
|
TQString getBestNick(const TDEABC::Addressee &addressee);
|
|
bool hasAnyNicks(const TDEABC::Addressee &addresse);
|
|
int presenceStatusByAddressee(const TDEABC::Addressee &addressee);
|
|
bool isOnline(TDEABC::Addressee &addressee);
|
|
bool getAndCheckTicket();
|
|
bool saveTicket();
|
|
void releaseTicket();
|
|
bool saveAddressee(TDEABC::Addressee &addressee);
|
|
bool saveAddressbook();
|
|
|
|
TQStringList allContactsNicksForServer(const TQString &servername, const TQString &servergroup);
|
|
TQStringList getNicks(const TDEABC::Addressee &addressee, const TQString &servername, const TQString &servergroup);
|
|
|
|
TDEABC::AddressBook *getAddressBook();
|
|
|
|
/** Return an online NickInfo for this addressee.
|
|
* If there are multiple matches, it tries to pick one that is not away.
|
|
* Note: No NickInfo is returned if the addressee is offline.
|
|
* NickInfo's are for online and away nicks only.
|
|
* @param addressee The addressee to get a nickInfo for
|
|
* @return A nickInfo. It tries hard to return a nickInfo that is not away if one exists.
|
|
*/
|
|
static NickInfoPtr getNickInfo(const TDEABC::Addressee &addressee);
|
|
/**
|
|
* Lets outsiders tell us to emit presenceChanged signal.
|
|
*/
|
|
virtual void emitContactPresenceChanged(const TQString &uid, int presence) = 0;
|
|
/**
|
|
* Lets outsiders tell us to emit presenceChanged signal.
|
|
*/
|
|
virtual void emitContactPresenceChanged(const TQString &uid) = 0;
|
|
|
|
/**
|
|
* Run kmail (or whatever the users email client is)
|
|
* to create a single email addressed to all of the nicks passed in.
|
|
* Gives an error dialog to the user if any of the contacts don't have an
|
|
* email address associated, and gives the user the option to continue
|
|
* with the contacts that did have email addresses.
|
|
*/
|
|
bool sendEmail(const ChannelNickList &nicklist);
|
|
/**
|
|
* Run kmail (or whatever the users email client is)
|
|
* to create a single email addressed to the addressee passed in.
|
|
* Gives an error dialog to the user if the addressee doesn't have an email address associated.
|
|
*/
|
|
bool sendEmail(const TDEABC::Addressee &addressee);
|
|
/**
|
|
* Run kaddressbook to edit the addressee passed in.
|
|
*/
|
|
bool editAddressee(const TQString &uid);
|
|
/**
|
|
* Run the users email program (e.g. kmail) passing "mailto:" + mailtoaddress.
|
|
* Note that mailto: will be prepended for you.
|
|
* @param mailtoaddress A comma delimited set of email address topass as "mailto:"
|
|
* @return True if there were no problems running the email program. An error will be shown to the user if there was.
|
|
*/
|
|
bool runEmailProgram(const TQString &mailtoaddress);
|
|
|
|
/** Just calls KonversationMainWindow::focusAndShowErrorMessage(const TQString *errorMsg)
|
|
*
|
|
* @see KonversationMainWindow::focusAndShowErrorMessage(const TQString *errorMsg)
|
|
*/
|
|
void focusAndShowErrorMessage(const TQString &errorMsg);
|
|
signals:
|
|
void addresseesChanged();
|
|
|
|
protected:
|
|
AddressbookBase();
|
|
TDEABC::AddressBook* addressBook;
|
|
TDEABC::Ticket *m_ticket;
|
|
};
|
|
|
|
} //NAMESPACE
|
|
#endif
|