summaryrefslogtreecommitdiffstats
path: root/libcommuni/examples/client/ircclient.h
diff options
context:
space:
mode:
authorMarkus Mittendrein <git@maxmitti.tk>2014-10-06 15:03:54 +0200
committerMarkus Mittendrein <git@maxmitti.tk>2014-10-06 15:03:54 +0200
commit529f38bd8878b6b1bea2b5457031ce936aab8d80 (patch)
tree1193caefcad12f6a36f818048e4547e60add4398 /libcommuni/examples/client/ircclient.h
parent3b58b5536935adff242928ed9f30e1c0262fbd7c (diff)
downloadmanager-529f38bd8878b6b1bea2b5457031ce936aab8d80.tar.gz
manager-529f38bd8878b6b1bea2b5457031ce936aab8d80.zip
addedd communi
Diffstat (limited to 'libcommuni/examples/client/ircclient.h')
-rw-r--r--libcommuni/examples/client/ircclient.h78
1 files changed, 78 insertions, 0 deletions
diff --git a/libcommuni/examples/client/ircclient.h b/libcommuni/examples/client/ircclient.h
new file mode 100644
index 0000000..9d6ee3c
--- /dev/null
+++ b/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