summaryrefslogtreecommitdiff
path: root/qt4/examples/accounts/account-item.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'qt4/examples/accounts/account-item.cpp')
-rw-r--r--qt4/examples/accounts/account-item.cpp176
1 files changed, 176 insertions, 0 deletions
diff --git a/qt4/examples/accounts/account-item.cpp b/qt4/examples/accounts/account-item.cpp
new file mode 100644
index 000000000..0ad213733
--- /dev/null
+++ b/qt4/examples/accounts/account-item.cpp
@@ -0,0 +1,176 @@
+/**
+ * This file is part of TelepathyQt4
+ *
+ * @copyright Copyright (C) 2009 Collabora Ltd. <http://www.collabora.co.uk/>
+ * @license LGPL 2.1
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#include "account-item.h"
+#include "_gen/account-item.moc.hpp"
+
+#include <TelepathyQt4/AccountManager>
+#include <TelepathyQt4/PendingReady>
+
+#include <QDebug>
+#include <QComboBox>
+#include <QTableWidget>
+
+AccountItem::AccountItem(Tp::AccountPtr acc, QTableWidget *table, int row, QObject *parent)
+ : QObject(parent),
+ mAcc(acc),
+ mTable(table),
+ mRow(row)
+{
+ init();
+}
+
+AccountItem::~AccountItem()
+{
+}
+
+void AccountItem::setupGui()
+{
+ mTable->setItem(mRow, ColumnValid, new QTableWidgetItem(mAcc->isValid() ?
+ QLatin1String("true") : QLatin1String("false")));
+ mTable->setItem(mRow, ColumnEnabled, new QTableWidgetItem(mAcc->isEnabled() ?
+ QLatin1String("true") : QLatin1String("false")));
+ mTable->setItem(mRow, ColumnConnectionManager, new QTableWidgetItem(mAcc->cmName()));
+ mTable->setItem(mRow, ColumnProtocol, new QTableWidgetItem(mAcc->protocolName()));
+ mTable->setItem(mRow, ColumnDisplayName, new QTableWidgetItem(mAcc->displayName()));
+ mTable->setItem(mRow, ColumnNickname, new QTableWidgetItem(mAcc->nickname()));
+ mTable->setItem(mRow, ColumnConnectsAutomatically, new QTableWidgetItem(mAcc->connectsAutomatically() ?
+ QLatin1String("true") : QLatin1String("false")));
+ mTable->setItem(mRow, ColumnAutomaticPresence, new QTableWidgetItem(mAcc->automaticPresence().status()));
+ mTable->setItem(mRow, ColumnCurrentPresence, new QTableWidgetItem(mAcc->currentPresence().status()));
+ mTable->setItem(mRow, ColumnRequestedPresence, new QTableWidgetItem(mAcc->requestedPresence().status()));
+ mTable->setItem(mRow, ColumnChangingPresence, new QTableWidgetItem(mAcc->isChangingPresence() ?
+ QLatin1String("true") : QLatin1String("false")));
+ mTable->setItem(mRow, ColumnConnectionStatus, new QTableWidgetItem(QString::number(mAcc->connectionStatus())));
+ mTable->setItem(mRow, ColumnConnection, new QTableWidgetItem(
+ mAcc->connection().isNull() ? QLatin1String("") : mAcc->connection()->objectPath()));
+}
+
+void AccountItem::init()
+{
+ setupGui();
+
+ Tp::Account *acc = mAcc.data();
+ connect(acc,
+ SIGNAL(validityChanged(bool)),
+ SLOT(onValidityChanged(bool)));
+ connect(acc,
+ SIGNAL(stateChanged(bool)),
+ SLOT(onStateChanged(bool)));
+ connect(acc,
+ SIGNAL(displayNameChanged(const QString &)),
+ SLOT(onDisplayNameChanged(const QString &)));
+ connect(acc,
+ SIGNAL(nicknameChanged(const QString &)),
+ SLOT(onNicknameChanged(const QString &)));
+ connect(acc,
+ SIGNAL(connectsAutomaticallyPropertyChanged(bool)),
+ SLOT(onConnectsAutomaticallyPropertyChanged(bool)));
+ connect(acc,
+ SIGNAL(changingPresence(bool)),
+ SLOT(onChangingPresenceChanged(bool)));
+ connect(acc,
+ SIGNAL(automaticPresenceChanged(const Tp::SimplePresence &)),
+ SLOT(onAutomaticPresenceChanged(const Tp::SimplePresence &)));
+ connect(acc,
+ SIGNAL(currentPresenceChanged(const Tp::SimplePresence &)),
+ SLOT(onCurrentPresenceChanged(const Tp::SimplePresence &)));
+ connect(acc,
+ SIGNAL(requestedPresenceChanged(const Tp::SimplePresence &)),
+ SLOT(onRequestedPresenceChanged(const Tp::SimplePresence &)));
+ connect(acc,
+ SIGNAL(statusChanged(Tp::ConnectionStatus, Tp::ConnectionStatusReason,
+ const QString &, const QVariantMap &)),
+ SLOT(onStatusChanged(Tp::ConnectionStatus, Tp::ConnectionStatusReason,
+ const QString &, const QVariantMap &)));
+ connect(acc,
+ SIGNAL(haveConnectionChanged(bool)),
+ SLOT(onHaveConnectionChanged(bool)));
+}
+
+void AccountItem::onValidityChanged(bool valid)
+{
+ QTableWidgetItem *item = mTable->item(mRow, ColumnValid);
+ item->setText((valid ? QLatin1String("true") : QLatin1String("false")));
+}
+
+void AccountItem::onStateChanged(bool enabled)
+{
+ QTableWidgetItem *item = mTable->item(mRow, ColumnEnabled);
+ item->setText((enabled ? QLatin1String("true") : QLatin1String("false")));
+}
+
+void AccountItem::onDisplayNameChanged(const QString &name)
+{
+ QTableWidgetItem *item = mTable->item(mRow, ColumnDisplayName);
+ item->setText(name);
+}
+
+void AccountItem::onNicknameChanged(const QString &name)
+{
+ QTableWidgetItem *item = mTable->item(mRow, ColumnNickname);
+ item->setText(name);
+}
+
+void AccountItem::onConnectsAutomaticallyPropertyChanged(bool value)
+{
+ QTableWidgetItem *item = mTable->item(mRow, ColumnConnectsAutomatically);
+ item->setText((value ? QLatin1String("true") : QLatin1String("false")));
+}
+
+void AccountItem::onChangingPresenceChanged(bool value)
+{
+ QTableWidgetItem *item = mTable->item(mRow, ColumnChangingPresence);
+ item->setText((value ? QLatin1String("true") : QLatin1String("false")));
+}
+
+void AccountItem::onAutomaticPresenceChanged(const Tp::SimplePresence &presence)
+{
+ QTableWidgetItem *item = mTable->item(mRow, ColumnAutomaticPresence);
+ item->setText(presence.status);
+}
+
+void AccountItem::onCurrentPresenceChanged(const Tp::SimplePresence &presence)
+{
+ QTableWidgetItem *item = mTable->item(mRow, ColumnCurrentPresence);
+ item->setText(presence.status);
+}
+
+void AccountItem::onRequestedPresenceChanged(const Tp::SimplePresence &presence)
+{
+ QTableWidgetItem *item = mTable->item(mRow, ColumnRequestedPresence);
+ item->setText(presence.status);
+}
+
+void AccountItem::onStatusChanged(Tp::ConnectionStatus status,
+ Tp::ConnectionStatusReason reason, const QString &error,
+ const QVariantMap &errorDetails)
+{
+ QTableWidgetItem *item = mTable->item(mRow, ColumnConnectionStatus);
+ item->setText(QString::number(status));
+}
+
+void AccountItem::onHaveConnectionChanged(bool haveConnection)
+{
+ QTableWidgetItem *item = mTable->item(mRow, ColumnConnection);
+ item->setText(mAcc->connection().isNull() ?
+ QLatin1String("") : mAcc->connection()->objectPath());
+}