Expose accepted sends and define history follow policy

This commit is contained in:
evgeny committed 2026-11-03 00:16:21 +01:00
1 parent 3c40294d08
commit 39a9fe01a3
3 files changed
+6 -1

No files matched your search

+1
View File
@@ -516,6 +516,7 @@ void InputBar::submissionResult(quint64 request, bool success) {
if (!pending.source.isEmpty() && pending.attachmentRevision == m_attachmentRevision) clearPendingAttachment();
if (!submissionPending() && !m_submissionFailed && !m_clipboardPreparing &&
m_input->toPlainText().isEmpty() && m_pendingAttachSrc.isEmpty()) clearReply();
emit messageAccepted();
}
/* Черновик и выбранный ответ восстанавливаются после сохранения/отмены. Вложения остаются в composer. */
+1
View File
@@ -68,6 +68,7 @@ public:
void cancelEdit(); // Восстановить обычный черновик/reply/preview; late result edit игнорируется, запрос ядра не отменяется.
signals:
void messageAccepted(); // Новая отправка текущего composer подтверждена ядром; правки/отказы/старый target не уведомляют.
/* Текст текущего контекста; справа удалены только пробелы/табуляции. replyTo пуст либо ключ 32 байта.
* request ненулевой для канала (включая обычный текст), 0 для PM; обработчик фиксирует текущую цель синхронно. */
void sendMessage(const QString &text, const QByteArray& replyTo, quint64 request);
+4 -1
View File
@@ -44,7 +44,7 @@ public:
// Сохранить канал, сменить target; для dm:<id> зафиксировать generation и запросить снимок.
void loadChannel(const QString& channelId);
// Добавить отсутствующие сообщения (до 200); не вытеснять историческое окно цитаты.
void refresh();
void refresh(bool outgoing = false); // Новое своё сообщение возвращает к последним; входящее — только из близкой к низу позиции.
// Перечитать имена, обновить авторов и превью цитат.
void reloadLocalNicks();
// Для CHAT поставить read/верхнюю позицию в ui_state; окно старой цитаты сохраняет свежий watermark. PM пропускается.
@@ -176,6 +176,9 @@ private:
void restoreScrollPosition(const QString& channelId);
// Максимальный rowid полностью видимых строк; watermark меняется после принятия записи.
void updateReadPosition();
bool nearHistoryBottom() const; // До изменения модели: осталось не больше десяти строк текущего шрифта.
void scrollHistoryToBottom(); // Синхронный layout и bottom, повтор после Qt layout с проверкой канала/поколения/окна.
void showLatestMessages(); // Покинуть окно старой цитаты и прокрутить последние сообщения вниз.
// Persistent index/QPointer защищают menu от замены модели/уничтожения UI.
void onMessageContextMenu(const QPoint& pos);
// Запросить выбранное поколение PM; ожидающее удаление блокирует запрос.