summaryrefslogtreecommitdiff
path: root/qt4/examples/roster/roster-widget.h
diff options
context:
space:
mode:
Diffstat (limited to 'qt4/examples/roster/roster-widget.h')
-rw-r--r--qt4/examples/roster/roster-widget.h91
1 files changed, 91 insertions, 0 deletions
diff --git a/qt4/examples/roster/roster-widget.h b/qt4/examples/roster/roster-widget.h
new file mode 100644
index 000000000..d485ec50f
--- /dev/null
+++ b/qt4/examples/roster/roster-widget.h
@@ -0,0 +1,91 @@
+/**
+ * This file is part of TelepathyQt4
+ *
+ * @copyright Copyright (C) 2009-2011 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
+ */
+
+#ifndef _TelepathyQt4_examples_roster_roster_widget_h_HEADER_GUARD_
+#define _TelepathyQt4_examples_roster_roster_widget_h_HEADER_GUARD_
+
+#include <QWidget>
+
+#include <TelepathyQt4/Contact>
+#include <TelepathyQt4/Connection>
+
+namespace Tp {
+class Connection;
+class PendingOperation;
+}
+
+class QAction;
+class QDialog;
+class QLineEdit;
+class QListWidget;
+class QListWidgetItem;
+class QPushButton;
+
+class RosterItem;
+
+class RosterWidget : public QWidget
+{
+ Q_OBJECT
+
+public:
+ RosterWidget(QWidget *parent = 0);
+ virtual ~RosterWidget();
+
+ Tp::ConnectionPtr connection() const { return mConn; }
+ void setConnection(const Tp::ConnectionPtr &conn);
+ void unsetConnection();
+
+ QListWidget *listWidget() const { return mList; }
+
+protected:
+ virtual RosterItem *createItemForContact(
+ const Tp::ContactPtr &contact,
+ bool &exists);
+ virtual void updateActions(RosterItem *item) { }
+
+private Q_SLOTS:
+ void onContactManagerStateChanged(Tp::ContactListState state);
+ void onPresencePublicationRequested(const Tp::Contacts &);
+ void onItemSelectionChanged();
+ void onAddButtonClicked();
+ void onAuthActionTriggered(bool);
+ void onDenyActionTriggered(bool);
+ void onRemoveActionTriggered(bool);
+ void onBlockActionTriggered(bool);
+ void onContactRetrieved(Tp::PendingOperation *op);
+ void updateActions();
+
+private:
+ void createActions();
+ void setupGui();
+
+ Tp::ConnectionPtr mConn;
+ QAction *mAuthAction;
+ QAction *mRemoveAction;
+ QAction *mDenyAction;
+ QAction *mBlockAction;
+ QListWidget *mList;
+ QPushButton *mAddBtn;
+ QDialog *mAddDlg;
+ QLineEdit *mAddDlgEdt;
+};
+
+#endif