Пример #1
0
void TabSupervisor::start(const ServerInfo_User &_userInfo) {
    isLocalGame = false;
    userInfo = new ServerInfo_User(_userInfo);

    tabServer = new TabServer(this, client);
    connect(tabServer, SIGNAL(roomJoined(
                                      const ServerInfo_Room &, bool)), this, SLOT(addRoomTab(
                                                                                          const ServerInfo_Room &, bool)));
    myAddTab(tabServer);

    tabUserLists = new TabUserLists(this, client, *userInfo);
    connect(tabUserLists, SIGNAL(openMessageDialog(
                                         const QString &, bool)), this, SLOT(addMessageTab(
                                                                                     const QString &, bool)));
    connect(tabUserLists, SIGNAL(userJoined(ServerInfo_User)), this, SLOT(processUserJoined(ServerInfo_User)));
    connect(tabUserLists, SIGNAL(userLeft(
                                         const QString &)), this, SLOT(processUserLeft(
                                                                               const QString &)));
    myAddTab(tabUserLists);

    updatePingTime(0, -1);

    if (userInfo->user_level() & ServerInfo_User::IsRegistered) {
        tabDeckStorage = new TabDeckStorage(this, client);
        connect(tabDeckStorage, SIGNAL(openDeckEditor(
                                               const DeckLoader *)), this, SLOT(addDeckEditorTab(
                                                                                        const DeckLoader *)));
        myAddTab(tabDeckStorage);

        tabReplays = new TabReplays(this, client);
        connect(tabReplays, SIGNAL(openReplay(GameReplay * )), this, SLOT(openReplay(GameReplay * )));
        myAddTab(tabReplays);
    } else {
Пример #2
0
void client_message::readMessagefromServer(QString messageFromServer)
{
    QStringList server_message = messageFromServer.split("|");
    if(server_message[0] == "message")
    {
        qDebug() << "Message:";
        qDebug() << " chatroom name:" << server_message[1] << " user ID:"
                 << server_message[2] << " message text:" << server_message[3];
        m_signal = true;
        emit(sendMessageToChatGui(messageFromServer));
    }
    else if(server_message[1] == "list")
    {
        qDebug() << "Chat Room Update:";

        for(int i = 2; i < server_message.size(); i++)
        {
            qDebug() << " " << server_message[i];
            if( !(m_chatroomList.contains(server_message[i]) ) )
            {
                (*m_dialog).addChatroom(server_message[i]);
                m_chatroomList.append(server_message[i]);
            }
        }
    }
    else if(server_message[1] == "joined")
    {
        qDebug() << "Userjoined:";
        qDebug() << "  chatroom ID:" <<server_message[2] << " name:" << server_message[3];
        m_signal = true;
        emit(userJoined(server_message[2], server_message[3]));
    }
    else if(server_message[1] == "userleft")
    {
        qDebug() << "Userleft:";
        qDebug() << "  chatroom ID:" <<server_message[2] << " name:" << server_message[3];
        m_signal = true;
        emit(userJoined(server_message[2], server_message[3]));
    }
    else
    {
        qDebug() << "invalid message";
    }

}
Пример #3
0
void ConferenceTask::parseUserJoined( YMSGTransfer *t )
{
	kdDebug(YAHOO_RAW_DEBUG) ;

	QString room = t->firstParam( 57 );
	QString who = t->firstParam( 53 );

	if( !who.isEmpty() && !room.isEmpty() )
		emit userJoined( who, room );
}
Пример #4
0
ChatWidget::ChatWidget(QSharedPointer<Session> session,
                       QSharedPointer<Chat> chat, QWidget *parent) :
    QWidget(parent),
    ui(new Ui::ChatWidget)
{
    setAttribute(Qt::WA_DeleteOnClose, true);
    ui->setupUi(this);


    qRegisterMetaType<QSharedPointer<const User> >("QSharedPointer<const User>");
    qRegisterMetaType<QObject *>("QObject *");

    d_chat = chat;
    d_session = session;
    pList = new UserModel(d_session);

    ui->lvParticipants->setModel(pList);

    QListIterator<QSharedPointer<const User> > it(d_chat->getUserList());
    while (it.hasNext()) {
        userJoined(it.next());
    }

    connect(ui->leMessage, SIGNAL(returnPressed()), this, SLOT(returnPressed()));
    connect(d_chat.data(), SIGNAL(messageReceived(QSharedPointer<const User>, QString)), this,
            SLOT(messageReceived(QSharedPointer<const User>, QString)));
    connect(d_chat.data(), SIGNAL(userJoined(QSharedPointer<const User>)),
            this, SLOT(userJoined(QSharedPointer<const User>)));
    connect(d_chat.data(), SIGNAL(userLeft(QSharedPointer<const User>)),
            this, SLOT(userLeft(QSharedPointer<const User>)));
    connect(d_chat.data(), SIGNAL(leaveChatCompleted(bool, QString)),
            this, SLOT(leaveChatCompleted(bool, QString)));
    connect(d_chat.data(), SIGNAL(inviteCompleted(bool, QString)),
            this, SLOT(inviteCompleted(bool, QString)));
    connect(d_chat.data(), SIGNAL(sendCompleted(bool, QString)),
            this, SLOT(sendCompleted(bool, QString)));
    connect(d_session.data(), SIGNAL(retrieveUserCompleted(QSharedPointer<const User>,
                                     const QObject *, bool, QString)),
            this, SLOT(invite(QSharedPointer<const User>, const QObject *, bool, QString)));
}
Пример #5
0
void ChatTests::testInvite()
{
    QVERIFY(chat);

    QSignalSpy spy2(chat.data(), SIGNAL(inviteCompleted(bool, QString)));
    QVERIFY(spy2.isValid());
    QVERIFY(spy2.isEmpty());

    QSignalSpy spy3(session2.data(), SIGNAL(invitationReceived(QSharedPointer<Chat>)));
    QVERIFY(spy3.isValid());
    QVERIFY(spy3.isEmpty());

    QSignalSpy spy4(chat.data(), SIGNAL(userJoined(QSharedPointer<const User>)));
    QVERIFY(spy4.isValid());
    QVERIFY(spy4.isEmpty());

    QSharedPointer<const User> u(new User(TEMP_SESSION_USER2,
                                          WORKING_DIR "public.pem"));
    chat->invite(u);
    waitForResult(spy2);

    QCOMPARE(spy2.count(), 1);
    QList<QVariant> arguments2 = spy2.takeFirst();
    QVERIFY2(arguments2.at(0) == true, arguments2.at(1).toString().toStdString().c_str());

    waitForResult(spy3);

    QCOMPARE(spy3.count(), 1);
    QList<QVariant> arguments3 = spy3.takeFirst();
    QSharedPointer<Chat> chat2 = arguments3.at(0).value<QSharedPointer<Chat> >();

    waitForResult(spy4);

    QCOMPARE(spy4.count(), 1);
    QList<QVariant> arguments4 = spy4.takeFirst();
    QSharedPointer<const User> u2 = arguments4.at(0).value<QSharedPointer<const User> >();
    QCOMPARE(u2->getName(), QString(TEMP_SESSION_USER2));

    QList<QSharedPointer<const User> > chat1Usr = chat->getUserList();
    QList<QSharedPointer<const User> > chat2Usr = chat2->getUserList();

    QCOMPARE(chat1Usr.size(), 2);
    QCOMPARE(chat2Usr.size(), 2);

    QCOMPARE(chat1Usr[0]->getName(), QString(TEMP_SESSION_USER2));
    QCOMPARE(chat1Usr[1]->getName(), QString(TEMP_SESSION_USER3));

    QCOMPARE(chat2Usr[0]->getName(), QString(TEMP_SESSION_USER2));
    QCOMPARE(chat2Usr[1]->getName(), QString(TEMP_SESSION_USER3));
}
Пример #6
0
void TabUserLists::processUserJoinedEvent(const Event_UserJoined &event)
{
    const ServerInfo_User &info = event.user_info();
    const QString userName = QString::fromStdString(info.name());

    allUsersList->processUserInfo(info, true);
    ignoreList->setUserOnline(userName, true);
    buddyList->setUserOnline(userName, true);

    allUsersList->sortItems();
    ignoreList->sortItems();
    buddyList->sortItems();

    if (buddyList->getUsers().keys().contains(userName))
        soundEngine->playSound("buddy_join");

    emit userJoined(info);
}
Пример #7
0
void SessionState::updateUser(const QStringList& tokens) {
    User user(this, tokens);
    bool newuser=true;
    if(users_.contains(user.id())) {
        // Existing user changed
        newuser = false;
        User olduser = users_.value(user.id());
        users_[user.id()] = user;
        if(olduser.locked() != user.locked())
            emit userLocked(user.id(), user.locked());
    } else {
        users_[user.id()] = user;
    }
    // The session joining is complete when we get our own user ID
    // for the first time.
    if(host_->localuser_<0 && user.name() == host_->username_)
        host_->sessionJoinDone(user.id());

    if(newuser) {
        emit userJoined(user.id());
        if(user.locked())
            emit userLocked(user.id(), true);
    }
}
Пример #8
0
void ChatTests::testTransmitMessage()
{
    QVERIFY(chat);

    QSignalSpy spy(session2.data(), SIGNAL(invitationReceived(QSharedPointer<Chat>)));
    QVERIFY(spy.isValid());
    QVERIFY(spy.isEmpty());

    QSignalSpy spy2(chat.data(), SIGNAL(userJoined(QSharedPointer<const User>)));
    QVERIFY(spy2.isValid());
    QVERIFY(spy2.isEmpty());

    QSharedPointer<const User> u(new User(TEMP_SESSION_USER2,
                                          WORKING_DIR "public.pem"));
    chat->invite(u);
    waitForResult(spy);

    QList<QVariant> arguments = spy.takeFirst();
    QSharedPointer<Chat> chat2 = arguments.at(0).value<QSharedPointer<Chat> >();

    waitForResult(spy2);

    QSignalSpy spy3(chat2.data(), SIGNAL(sendCompleted(bool, const QString &)));
    QVERIFY(spy3.isValid());
    QVERIFY(spy3.isEmpty());

    QSignalSpy spy4(chat.data(), SIGNAL(messageReceived(QSharedPointer<const User>, const QString &)));
    QVERIFY(spy4.isValid());
    QVERIFY(spy4.isEmpty());

    QSignalSpy spy5(chat2.data(), SIGNAL(messageReceived(QSharedPointer<const User>, const QString &)));
    QVERIFY(spy5.isValid());
    QVERIFY(spy5.isEmpty());

    chat2->send("Cupcakes!!!");

    waitForResult(spy3);

    QList<QVariant> arguments2 = spy3.takeFirst();
    QVERIFY(arguments2.at(0) == true);

    waitForResult(spy4);

    QList<QVariant> arguments3 = spy4.takeFirst();
    QCOMPARE(arguments3.at(1).toString(), QString("Cupcakes!!!"));
    QSharedPointer<const User> u2 = arguments3.at(0).value<QSharedPointer<const User> >();
    QCOMPARE(u2->getName(), u->getName());

    waitForResult(spy5);

    QList<QVariant> arguments4 = spy5.takeFirst();
    QCOMPARE(arguments4.at(1).toString(), QString("Cupcakes!!!"));
    QSharedPointer<const User> u3 = arguments4.at(0).value<QSharedPointer<const User> >();
    QCOMPARE(u3->getName(), u->getName());

    QSignalSpy spy6(chat.data(), SIGNAL(sendCompleted(bool, const QString &)));
    QVERIFY(spy6.isValid());
    QVERIFY(spy6.isEmpty());

    QSignalSpy spy7(chat2.data(), SIGNAL(messageReceived(QSharedPointer<const User>, const QString &)));
    QVERIFY(spy7.isValid());
    QVERIFY(spy7.isEmpty());

    QSignalSpy spy8(chat.data(), SIGNAL(messageReceived(QSharedPointer<const User>, const QString &)));
    QVERIFY(spy8.isValid());
    QVERIFY(spy8.isEmpty());

    chat->send("Khaaan!!!");

    waitForResult(spy6);

    QList<QVariant> arguments5 = spy6.takeFirst();
    QVERIFY(arguments5.at(0) == true);

    waitForResult(spy7);

    QList<QVariant> arguments6 = spy7.takeFirst();
    QCOMPARE(arguments6.at(1).toString(), QString("Khaaan!!!"));
    QSharedPointer<const User> u4 = arguments6.at(0).value<QSharedPointer<const User> >();
    QCOMPARE(u4->getName(), QString(TEMP_SESSION_USER3));

    waitForResult(spy8);

    QList<QVariant> arguments7 = spy8.takeFirst();
    QCOMPARE(arguments7.at(1).toString(), QString("Khaaan!!!"));
    QSharedPointer<const User> u5 = arguments7.at(0).value<QSharedPointer<const User> >();
    QCOMPARE(u5->getName(), QString(TEMP_SESSION_USER3));
}
Пример #9
0
void Chat::addChatParticipant(QSharedPointer<const User> participant)
{
    QMutexLocker locker(&usersMutex);
    users[participant->getName()] = participant;
    emit userJoined(participant);
}