|
- #ifndef RECVTEXTEDIT_H
- #define RECVTEXTEDIT_H
-
- #include "feiqlib/content.h"
- #include "feiqlib/fellow.h"
- #include <QObject>
- #include <unordered_map>
- #include <QTextEdit>
-
- using namespace std;
-
- class RecvTextEdit: public QTextEdit
- {
- Q_OBJECT
- public:
- RecvTextEdit(QWidget* parent = 0);
-
- protected:
- virtual void mousePressEvent(QMouseEvent *e) override;
- virtual void mouseReleaseEvent(QMouseEvent *e) override;
-
- public:
- void addFellowContent(const Content* content, long long msSinceEpoch);
- void addMyContent(const Content* content, long long msSinceEpoch);
- void setCurFellow(const Fellow* fellow);
- void addWarning(const QString& warning);
- const Fellow* curFellow();
-
- signals:
- void navigateToFileTask(IdType packetNo, IdType fileId, bool upload);
-
- private:
- QString timeStr(long long msSinceEpoch);
- void addContent(const Content* content, long long msSinceEpoch, bool mySelf);
- void showHint(long long msSinceEpoch, bool mySelf);
- void showContent(const Content* content, bool mySelf);
- void showFile(const FileContent* content, bool fromMySelf);
- void showImage(const ImageContent* content);
- void showText(const TextContent* content);
- void showKnock(const KnockContent* content, bool mySelf);
- void showUnSupport(const QString &text = "");
- void drawDaySeperatorIfNewDay(long long sinceEpoch);
- QString textHtmlStr(const TextContent* content);
- void parseLink(const QString& link);
-
- private:
- const Fellow* mFellow = nullptr;
- unordered_map<const Fellow*, QTextDocument*> mDocs;
- long long mLastEdit=0;
- QString mPressedAnchor;
-
- };
-
- #endif // RECVTEXTEDIT_H
|