summaryrefslogtreecommitdiffstats
path: root/src/libcommuni/examples/client/ircclient.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/libcommuni/examples/client/ircclient.h')
-rw-r--r--src/libcommuni/examples/client/ircclient.h78
1 files changed, 78 insertions, 0 deletions
diff --git a/src/libcommuni/examples/client/ircclient.h b/src/libcommuni/examples/client/ircclient.h
new file mode 100644
index 0000000..9d6ee3c
--- /dev/null
+++ b/src/libcommuni/examples/client/ircclient.h
@@ -0,0 +1,78 @@
+/*
+ * Copyright (C) 2008-2014 The Communi Project
+ *
+ * This example is free, and not covered by the BSD license. There is no
+ * restriction applied to their modification, redistribution, using and so on.
+ * You can study them, modify them, use them in your own program - either
+ * completely or partially.
+ */
+
+#ifndef IRCCLIENT_H
+#define IRCCLIENT_H
+
+#include <QSplitter>
+#include <QHash>
+
+class IrcBuffer;
+class IrcMessage;
+class IrcUserModel;
+class IrcCompleter;
+class IrcConnection;
+class IrcBufferModel;
+class IrcCommandParser;
+
+QT_FORWARD_DECLARE_CLASS(QLineEdit)
+QT_FORWARD_DECLARE_CLASS(QListView)
+QT_FORWARD_DECLARE_CLASS(QTextEdit)
+QT_FORWARD_DECLARE_CLASS(QModelIndex)
+QT_FORWARD_DECLARE_CLASS(QTextDocument)
+
+class IrcClient : public QSplitter
+{
+ Q_OBJECT
+
+public:
+ IrcClient(QWidget* parent = 0);
+ ~IrcClient();
+
+private slots:
+ void onConnected();
+ void onConnecting();
+ void onDisconnected();
+
+ void onTextEdited();
+ void onTextEntered();
+
+ void onCompletion();
+ void onCompleted(const QString& text, int cursor);
+
+ void onBufferAdded(IrcBuffer* buffer);
+ void onBufferRemoved(IrcBuffer* buffer);
+
+ void onBufferActivated(const QModelIndex& index);
+ void onUserActivated(const QModelIndex& index);
+
+ void receiveMessage(IrcMessage* message);
+
+private:
+ void createLayout();
+ void createCompleter();
+ void createParser();
+ void createUserList();
+ void createBufferList();
+ void createConnection();
+
+ QLineEdit* lineEdit;
+ QTextEdit* textEdit;
+ QListView* userList;
+ QListView* bufferList;
+
+ IrcCompleter* completer;
+ IrcCommandParser* parser;
+ IrcConnection* connection;
+ IrcBufferModel* bufferModel;
+ QHash<IrcBuffer*, IrcUserModel*> userModels;
+ QHash<IrcBuffer*, QTextDocument*> documents;
+};
+
+#endif // IRCCLIENT_H