blob: 344293004f51872be9ec4dc0dab83ae346378803 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
|
/*
testbedaccount.h - Kopete Testbed Protocol
Copyright (c) 2003 by Will Stephenson <will@stevello.free-online.co.uk>
Kopete (c) 2002-2003 by the Kopete developers <kopete-devel@kde.org>
*************************************************************************
* *
* This library 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. *
* *
*************************************************************************
*/
#ifndef TESTBEDACCOUNT_H
#define TESTBEDACCOUNT_H
#include <kopeteaccount.h>
#include "testbedwebcamdialog.h"
class KActionMenu;
namespace Kopete { class Contact; }
namespace Kopete { class MetaContact; }
class TestbedContact;
class TestbedProtocol;
class TestbedFakeServer;
/**
* This represents an account connected to the testbed
* @author Will Stephenson
*/
class TestbedAccount : public Kopete::Account
{
Q_OBJECT
public:
TestbedAccount( TestbedProtocol *parent, const QString& accountID, const char *name = 0 );
~TestbedAccount();
/**
* Construct the context menu used for the status bar icon
*/
virtual KActionMenu* actionMenu();
/**
* Creates a protocol specific Kopete::Contact subclass and adds it to the supplie
* Kopete::MetaContact
*/
virtual bool createContact(const QString& contactId, Kopete::MetaContact* parentContact);
/**
* Called when Kopete is set globally away
*/
virtual void setAway(bool away, const QString& reason);
/**
* Called when Kopete status is changed globally
*/
virtual void setOnlineStatus(const Kopete::OnlineStatus& status , const QString &reason = QString::null);
/**
* 'Connect' to the testbed server. Only sets myself() online.
*/
virtual void connect( const Kopete::OnlineStatus& initialStatus = Kopete::OnlineStatus::OnlineStatus() );
/**
* Disconnect from the server. Only sets myself() offline.
*/
virtual void disconnect();
/**
* Return a reference to the server stub
*/
TestbedFakeServer* server();
public slots:
/**
* Called by the server when it has a message for us.
* This identifies the sending Kopete::Contact and passes it a Kopete::Message
*/
void receivedMessage( const QString &message );
protected:
/**
* This simulates contacts going on and offline in sync with the account's status changes
*/
void updateContactStatus();
TestbedFakeServer* m_server;
protected slots:
/**
* Change the account's status. Called by KActions and internally.
*/
void slotGoOnline();
/**
* Change the account's status. Called by KActions and internally.
*/
void slotGoAway();
/**
* Change the account's status. Called by KActions and internally.
*/
void slotGoOffline();
/**
* Show webcam. Called by KActions and internally.
*/
void slotShowVideo();
};
#endif
|