chatgui: rlottie animated emoji with hover-to-animate, drag-to-select
- Add LottieIcon class (TGS gzip decompress + rlottie C API render) - Add AnimTimer singleton (33ms tick, activate/deactivate refcount) - Add EmojiButton (hover-triggered animation in emoji picker) - Add AnimatedEmoji support to EmojiData (5 TGS mappings) - MessageDelegate: QTextLayout-based animated emoji overlay (text + reactions) - ChatView: drag-to-select (click deselects, 5px drag starts selection) - ChatView: hoveredIndexChanged signal for hover-triggered animations - MessageList: wire AnimTimer tick to viewport update, hover → activate - CMake: AUTORCC, rlottie, zlib dependencies - Add 5 TGS animations as Qt resources
This commit is contained in:
1 parent
0e2b0e28d8
commit
62b3695a77
42 files changed
+286658
-73
No files matched your search
@@ -1,10 +1,11 @@
|
||||
#include "inputbar.h"
|
||||
#include "emojipanel.h"
|
||||
#include "debug_ui.h"
|
||||
#include <QDebug>
|
||||
#include <QTextEdit>
|
||||
#include <QPushButton>
|
||||
#include <QHBoxLayout>
|
||||
#include <QFileDialog>
|
||||
#include <QDebug>
|
||||
#include <QKeyEvent>
|
||||
#include <QFontMetrics>
|
||||
#include <QScrollBar>
|
||||
@@ -117,7 +118,11 @@ void InputBar::adjustInputHeight() {
|
||||
}
|
||||
|
||||
void InputBar::onSendClicked() {
|
||||
QString text = m_input->toPlainText().trimmed();
|
||||
QString text = m_input->toPlainText();
|
||||
GUI_INFO("send: len=%d hasLF=%d text='%s'",
|
||||
text.length(), text.contains('\n'), qPrintable(text));
|
||||
while (!text.isEmpty() && (text.back() == ' ' || text.back() == '\t'))
|
||||
text.chop(1);
|
||||
if (text.isEmpty()) return;
|
||||
emit sendMessage(text);
|
||||
m_input->clear();
|
||||
|
||||
Reference in new issue
Block a user