diff options
Diffstat (limited to 'qt/examples/chat.cpp')
-rw-r--r-- | qt/examples/chat.cpp | 136 |
1 files changed, 0 insertions, 136 deletions
diff --git a/qt/examples/chat.cpp b/qt/examples/chat.cpp deleted file mode 100644 index 86ff873b..00000000 --- a/qt/examples/chat.cpp +++ /dev/null @@ -1,136 +0,0 @@ -/* -*- C++ -*- - * - * Copyright (C) 2006 Trolltech AS. All rights reserved. - * Author: Thiago Macieira <thiago.macieira@trolltech.com> - * - * 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. - * - */ - -#include "chat.h" -#include <QtGui/QApplication> -#include <QtGui/QMessageBox> - -#include "chatadaptor.h" -#include "chatinterface.h" - -ChatMainWindow::ChatMainWindow() - : m_nickname(QLatin1String("nickname")) -{ - setupUi(this); - sendButton->setEnabled(false); - - connect(messageLineEdit, SIGNAL(textChanged(QString)), - this, SLOT(textChangedSlot(QString))); - connect(sendButton, SIGNAL(clicked(bool)), this, SLOT(sendClickedSlot())); - connect(actionChangeNickname, SIGNAL(triggered(bool)), this, SLOT(changeNickname())); - connect(actionAboutQt, SIGNAL(triggered(bool)), this, SLOT(aboutQt())); - connect(qApp, SIGNAL(lastWindowClosed()), this, SLOT(exiting())); - - // add our D-Bus interface and connect to D-Bus - new ChatInterfaceAdaptor(this); - QDBus::systemBus().registerObject("/", this); - - com::trolltech::ChatInterface *iface; - iface = QDBus::systemBus().findInterface<com::trolltech::ChatInterface>(QString(), QString()); - connect(iface, SIGNAL(message(QString,QString)), this, SLOT(messageSlot(QString,QString))); - connect(iface, SIGNAL(action(QString,QString)), this, SLOT(actionSlot(QString,QString))); - - NicknameDialog dialog; - dialog.cancelButton->setVisible(false); - dialog.exec(); - m_nickname = dialog.nickname->text().trimmed(); - emit action(m_nickname, QLatin1String("joins the chat")); -} - -ChatMainWindow::~ChatMainWindow() -{ -} - -void ChatMainWindow::rebuildHistory() -{ - QString history = m_messages.join( QLatin1String("\n" ) ); - chatHistory->setPlainText(history); -} - -void ChatMainWindow::messageSlot(const QString &nickname, const QString &text) -{ - QString msg( QLatin1String("<%1> %2") ); - msg = msg.arg(nickname, text); - m_messages.append(msg); - - if (m_messages.count() > 100) - m_messages.removeFirst(); - rebuildHistory(); -} - -void ChatMainWindow::actionSlot(const QString &nickname, const QString &text) -{ - QString msg( QLatin1String("* %1 %2") ); - msg = msg.arg(nickname, text); - m_messages.append(msg); - - if (m_messages.count() > 100) - m_messages.removeFirst(); - rebuildHistory(); -} - -void ChatMainWindow::textChangedSlot(const QString &newText) -{ - sendButton->setEnabled(!newText.isEmpty()); -} - -void ChatMainWindow::sendClickedSlot() -{ - emit message(m_nickname, messageLineEdit->text()); - messageLineEdit->setText(QString()); -} - -void ChatMainWindow::changeNickname() -{ - NicknameDialog dialog(this); - if (dialog.exec() == QDialog::Accepted) { - QString old = m_nickname; - m_nickname = dialog.nickname->text().trimmed(); - emit action(old, QString("is now known as %1").arg(m_nickname)); - } -} - -void ChatMainWindow::aboutQt() -{ - QMessageBox::aboutQt(this); -} - -void ChatMainWindow::exiting() -{ - emit action(m_nickname, QLatin1String("leaves the chat")); -} - -NicknameDialog::NicknameDialog(QWidget *parent) - : QDialog(parent) -{ - setupUi(this); -} - -int main(int argc, char **argv) -{ - QApplication app(argc, argv); - - ChatMainWindow chat; - chat.show(); - return app.exec(); -} - -#include "chat.moc" |