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.
tdenetwork/kopete/protocols/gadu/gaduaccount.h

174 lines
4.5 KiB

// -*- Mode: c++-mode; c-basic-offset: 2; indent-tabs-mode: t; tab-width: 2; -*-
//
// Copyright (C) 2003-2004 Grzegorz Jaskiewicz <gj at pointblue.com.pl>
// Copyright (C) 2003 Zack Rusin <zack@kde.org>
//
// gaduaccount.h
//
// 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.
//
// This program 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 General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
// 02110-1301, USA.
#ifndef GADUACCOUNT_H
#define GADUACCOUNT_H
#include "kopetepasswordedaccount.h"
#include "kopeteonlinestatus.h"
#include "kopetecontact.h"
#include "gaducontactlist.h"
#include "gadusession.h"
#include <libgadu.h>
#include <tqhostaddress.h>
#include <tqmap.h>
#include <tqstring.h>
#include <tqptrlist.h>
#include <kaction.h>
#include <kfiledialog.h>
class GaduAccountPrivate;
class GaduContact;
class GaduProtocol;
namespace Kopete { class Protocol; }
namespace Kopete { class Message; }
class GaduCommand;
class TQTimer;
class KActionMenu;
class GaduDCC;
class GaduDCCTransaction;
class GaduAccount : public Kopete::PasswordedAccount
{
Q_OBJECT
public:
GaduAccount( Kopete::Protocol*, const TQString& accountID, const char* name = 0L );
~GaduAccount();
//{
void setAway( bool isAway, const TQString& awayMessage = TQString::null );
KActionMenu* actionMenu();
void dccRequest( GaduContact* );
void sendFile( GaduContact* , TQString& );
//}
enum tlsConnection{ TLS_ifAvaliable = 0, TLS_only, TLS_no };
unsigned int getPersonalInformation();
bool publishPersonalInformation( ResLine& d );
public slots:
//{
void connectWithPassword(const TQString &password);
void disconnect( DisconnectReason );
void disconnect();
void setOnlineStatus( const Kopete::OnlineStatus& status , const TQString &reason = TQString::null);
//}
void changeStatus( const Kopete::OnlineStatus& status, const TQString& descr = TQString::null );
void slotLogin( int status = GG_STATUS_AVAIL, const TQString& dscr = TQString::null );
void slotLogoff();
void slotGoOnline();
void slotGoOffline();
void slotGoInvisible();
void slotGoBusy();
void slotDescription();
void slotSearch( int uin = 0);
void removeContact( const GaduContact* );
void addNotify( uin_t );
void notify( uin_t*, int );
void sendMessage( uin_t recipient, const Kopete::Message& msg,
int msgClass = GG_CLASS_CHAT );
void error( const TQString& title, const TQString& message );
void pong();
void pingServer();
// those two functions are connected straight to gadusession ones
// with the same names/params. This was the easiest way to
// make this interface public
unsigned int pubDirSearch( ResLine& query, int ageFrom, int ageTo, bool onlyAlive );
void pubDirSearchClose();
// tls
tlsConnection useTls();
void setUseTls( tlsConnection );
// dcc
bool dccEnabled();
bool setDcc( bool );
// anons
bool ignoreAnons();
void setIgnoreAnons( bool );
// forFriends
bool loadFriendsMode();
void saveFriendsMode( bool );
signals:
void pubDirSearchResult( const SearchResult&, unsigned int );
protected:
//{
bool createContact( const TQString& contactId,
Kopete::MetaContact* parentContact );
//}
private slots:
void startNotify();
void messageReceived( KGaduMessage* );
void ackReceived( unsigned int );
void contactStatusChanged( KGaduNotify* );
void slotSessionDisconnect( Kopete::Account::DisconnectReason );
void slotExportContactsList();
void slotExportContactsListToFile();
void slotImportContactsFromFile();
void slotFriendsMode();
void userlist( const TQString& contacts );
GaduContactsList* userlist();
void slotUserlistSynch();
void connectionFailed( gg_failure_t failure );
void connectionSucceed( );
void slotChangePassword();
void slotCommandDone( const TQString&, const TQString& );
void slotCommandError( const TQString&, const TQString& );
void slotSearchResult( const SearchResult& result, unsigned int seq );
void userListExportDone();
void slotIncomingDcc( unsigned int );
private:
void initConnections();
void initActions();
void dccOn();
void dccOff();
void userlistChanged();
GaduAccountPrivate* p;
};
#endif