From 95e59df5c7e6d7ef472b99b8703c92001fa37823 Mon Sep 17 00:00:00 2001 From: evgeny Date: Tue, 27 Oct 2026 22:09:45 +0100 Subject: [PATCH] Complete call window header contracts and align test data rows --- tools/chatgui/src/callwindow.h | 18 +++++++++--------- tools/chatgui/tests/test_call_commands.cpp | 2 +- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/tools/chatgui/src/callwindow.h b/tools/chatgui/src/callwindow.h index 4dc746b4..52ed3ae3 100644 --- a/tools/chatgui/src/callwindow.h +++ b/tools/chatgui/src/callwindow.h @@ -28,8 +28,8 @@ class CallWindow : public QWidget { public: enum State { Outgoing, Ringing, Incoming, Active, Ended, WaitDecision }; - explicit CallWindow(QWidget* parent = nullptr); - ~CallWindow() override; + explicit CallWindow(QWidget* parent = nullptr); // Создаёт UI и дочерний видеодвижок, но не native-звонок. + ~CallWindow() override; // Снимает video callbacks и останавливает движок; native-команда отправляется только через closeEvent/кнопки. void setCallId(quint64 id) { m_callId = id; } // Ненулевой ID до действий пользователя; setter сам не запускает сессию. quint64 callId() const { return m_callId; } // ID для команд моста и сигнала closed. @@ -40,7 +40,7 @@ public: // rtt/buffer/minimum/maximum/reserve — мс; tempo=100 для 1x, dropped/underruns — счётчики; min/max за 10с. void setAudioStats(int rtt, int buffer, int tempo, int dropped, int underruns, int minimum, int maximum, int reserve); void setState(State s); // Локальное GUI-состояние; каждый Active сбрасывает длительность/mute, Ended останавливает видео/таймер. - State state() const { return m_state; } + State state() const { return m_state; } // Текущее локальное состояние представления. signals: void closed(quint64 callId); // После локальной очистки/постановки команды; удаления QWidget и ожидания native-ответа здесь нет. @@ -49,12 +49,12 @@ protected: void closeEvent(QCloseEvent* event) override; private slots: - void onAccept(); - void onDecline(); - void onHangup(); - void updateDuration(); - void onMuteToggled(bool checked); - void onDeviceChanged(int index); + void onAccept(); // После принятия команды мостом прекращает гудок и переводит GUI в Active. + void onDecline(); // Ставит Decline; закрытие по native-результату выполняет MainWindow. + void onHangup(); // Ставит Hangup; при отказе сохраняет окно и показывает ошибку. + void updateDuration(); // Только Active: прошедшее wall-clock время в минуты:секунды. + void onMuteToggled(bool checked); // Меняет mute общего аудиодвижка, иконку и подпись. + void onDeviceChanged(int index); // Применяет backend ID выбранного выхода m_deviceCombo. private: void updateButtons(); // Видимость действий по State, затем общая раскладка видео. diff --git a/tools/chatgui/tests/test_call_commands.cpp b/tools/chatgui/tests/test_call_commands.cpp index 275cb191..c1501585 100644 --- a/tools/chatgui/tests/test_call_commands.cpp +++ b/tools/chatgui/tests/test_call_commands.cpp @@ -162,7 +162,7 @@ private slots: #endif for (const auto& failure : failures) for (const char* action : {"onAccept", "onDecline", "onHangup", "continue", "close", "closeIncoming"}) - QTest::newRow(qPrintable(failure + '-' + action)) << failure << QString(action); + QTest::newRow(qPrintable(failure + '-' + action)) << failure << QString(action); } void windowAction() { QFETCH(QString, scenario); QFETCH(QString, action);