Added initial code for text chat with telepathy framework, classes TpTextClientHandler
[miniature:miniature.git] / src / telepathy / tpgame.cc
1 /* Miniature - A chess board that goes always with you, ready to let
2  * you play and learn wherever you go.
3  *
4  * Copyright (C) 2010 Collabora Ltd. <http://www.collabora.co.uk/>
5  *              Dariusz Mikulski <dariusz.mikulski@collabora.co.uk>
6  *
7  *
8  * Miniature is free software: you can redistribute it and/or modify
9  * it under the terms of the GNU General Public License as published by
10  * the Free Software Foundation, either version 2 of the License, or
11  * (at your option) any later version.
12  *
13  * Miniature is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16  * GNU General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License
19  * along with Miniature. If not, see <http://www.gnu.org/licenses/>.
20  */
21
22 #include "tpgame.h"
23 #include "tpapprovermanager.h"
24 #include "tptubesclienthandler.h"
25 #include "tptextclienthandler.h"
26
27 namespace Miniature
28 {
29
30 TpGame::TpGame(QObject *parent) : QObject(parent)
31 {
32     mTpAccountManager = new TpAccountManager(this);
33     mAccountsDialog = new AccountSelectionDlg(mTpAccountManager);
34
35     qDebug() << "Registering client handler.";
36     mClientRegistrar = Tp::ClientRegistrar::create();
37     
38     Tp::SharedPtr<TpTubesClientHandler> client = Tp::SharedPtr<TpTubesClientHandler>(new TpTubesClientHandler(0));
39     mClientRegistrar->registerClient(Tp::AbstractClientPtr::dynamicCast(client), "miniature_handler");
40
41     Tp::SharedPtr<TpTextClientHandler> textClient = Tp::SharedPtr<TpTextClientHandler>(new TpTextClientHandler(0));
42     mClientRegistrar->registerClient(Tp::AbstractClientPtr::dynamicCast(textClient), "miniature_text_handler");
43
44 //    Tp::SharedPtr<TpApproverManager> approverManager;
45 //    approverManager = Tp::SharedPtr<TpApproverManager>(new TpApproverManager(0));
46 //    mClientRegistrar->registerClient(Tp::AbstractClientPtr::dynamicCast(approverManager), "miniature_approver");
47 }
48
49 void TpGame::hostGame()
50 {
51     qDebug() << "TpGame::hostGame()";
52     mTpAccountManager->disconnect();
53     QObject::connect(mTpAccountManager, SIGNAL(onAccountNameListChanged(const QList<QString>)), this, SLOT(onAccountNameListChanged(const QList<QString>)));
54 }
55
56 void TpGame::onAccountNameListChanged(const QList<QString> accounts)
57 {
58     qDebug() << "TpGame::onAccountNameListChanged()";
59     
60     Q_FOREACH(QString accountName, accounts)
61     {
62         mTpAccountManager->ensureContactListForAccount(accountName);
63     }
64
65     Q_EMIT initialized();
66 }
67
68 void TpGame::joinGame()
69 {
70     qDebug() << "TpGame::joingGame()";
71     mAccountsDialog->show();
72
73     Q_EMIT initialized();
74 }
75
76 };