Complete call window header contracts and align test data rows

This commit is contained in:
evgeny committed 2026-10-28 00:59:00 +01:00
1 parent fd4f092c9a
commit 95e59df5c7
2 files changed
+10 -10

No files matched your search

+9 -9
View File
@@ -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, затем общая раскладка видео.
+1 -1
View File
@@ -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);