#ifndef IRCCLIENT_H
#define IRCCLIENT_H
#include <QSplitter>
#include <QHash>
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 = nullptr);
~IrcClient() override;
private slots:
void onConnected();
void onConnecting();
void onDisconnected();
void onTextEdited();
void onTextEntered();
void onCompletion();
void onCompleted(const QString& text, int cursor);
void onBufferActivated(const QModelIndex& index);
void onUserActivated(const QModelIndex& index);
private:
void createLayout();
void createCompleter();
void createParser();
void createUserList();
void createBufferList();
void createConnection();
QLineEdit* lineEdit;
QTextEdit* textEdit;
QListView* userList;
QListView* bufferList;
QHash<IrcBuffer*, IrcUserModel*> userModels;
QHash<IrcBuffer*, QTextDocument*> documents;
};
#endif
Keeps track of buffers.
Definition ircbuffermodel.h:48
Keeps track of buffer status.
Definition ircbuffer.h:50
Parses commands from user input.
Definition irccommandparser.h:43
Provides command and name completion.
Definition irccompleter.h:44
Provides means to establish a connection to an IRC server.
Definition ircconnection.h:49
The base class of all messages.
Definition ircmessage.h:48
Keeps track of channel users.
Definition ircusermodel.h:46