// -*- Mode: c++-mode; c-basic-offset: 2; indent-tabs-mode: t; tab-width: 2; -*- // // Copyright (C) 2003-2004 Grzegorz Jaskiewicz // Copyright (C) 2003 Zack Rusin // // 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 #include #include #include #include #include #include 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() ); 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()); //} void changeStatus( const Kopete::OnlineStatus& status, const TQString& descr = TQString() ); void slotLogin( int status = GG_STATUS_AVAIL, const TQString& dscr = TQString() ); 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