Initial implementation for local echo
Each HistoryView maintains a list of pending events. Each pending
message is validated from the homeserver with either the returned
EventId or the body of the message.
Currently there is no support to remove invalid messages.
Also some small refactoring:
- ChatPage doesn't know about the message being sent. The message
delivery is solely handled by HistoryViewManager.
- Nick coloring function moved to HistoryViewManager.
This commit is contained in:
parent
718562737c
commit
27f7142cd8
10 changed files with 245 additions and 49 deletions
|
|
@ -19,10 +19,12 @@
|
|||
#define HISTORY_VIEW_MANAGER_H
|
||||
|
||||
#include <QDebug>
|
||||
#include <QSharedPointer>
|
||||
#include <QStackedWidget>
|
||||
#include <QWidget>
|
||||
|
||||
#include "HistoryView.h"
|
||||
#include "MatrixClient.h"
|
||||
#include "RoomInfo.h"
|
||||
#include "Sync.h"
|
||||
|
||||
|
|
@ -31,7 +33,7 @@ class HistoryViewManager : public QStackedWidget
|
|||
Q_OBJECT
|
||||
|
||||
public:
|
||||
HistoryViewManager(QWidget *parent);
|
||||
HistoryViewManager(QSharedPointer<MatrixClient> client, QWidget *parent);
|
||||
~HistoryViewManager();
|
||||
|
||||
void initialize(const Rooms &rooms);
|
||||
|
|
@ -39,14 +41,21 @@ public:
|
|||
void clearAll();
|
||||
|
||||
static QString chooseRandomColor();
|
||||
static QString getUserColor(const QString &userid);
|
||||
static QMap<QString, QString> NICK_COLORS;
|
||||
static const QList<QString> COLORS;
|
||||
|
||||
public slots:
|
||||
void setHistoryView(const RoomInfo &info);
|
||||
void sendTextMessage(const QString &msg);
|
||||
|
||||
private slots:
|
||||
void messageSent(const QString &eventid, const QString &roomid, int txnid);
|
||||
|
||||
private:
|
||||
RoomInfo active_room_;
|
||||
QMap<QString, HistoryView *> views_;
|
||||
QSharedPointer<MatrixClient> client_;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue