mirror of
https://github.com/mumble-voip/mumble.git
synced 2025-10-26 11:19:16 +00:00
Merge PR #4948: REFAC(client): Transmission mode change events
Previously handling the change of transmission mode was done in many different places causing code duplication. This commit factors the common functionality out into its own function and creates a new event for when the transmission mode is changed.
This commit is contained in:
commit
260215ade9
@ -171,6 +171,8 @@ MainWindow::MainWindow(QWidget *p) : QMainWindow(p) {
|
||||
connect(qstiIcon, SIGNAL(messageClicked()), this, SLOT(showRaiseWindow()));
|
||||
connect(qaShow, SIGNAL(triggered()), this, SLOT(showRaiseWindow()));
|
||||
|
||||
QObject::connect(this, &MainWindow::transmissionModeChanged, this, &MainWindow::updateTransmitModeComboBox);
|
||||
|
||||
// Explicitely add actions to mainwindow so their shortcuts are available
|
||||
// if only the main window is visible (e.Global::get(). minimal mode)
|
||||
addActions(findChildren< QAction * >());
|
||||
@ -392,7 +394,7 @@ void MainWindow::setupGui() {
|
||||
|
||||
connect(qcbTransmitMode, SIGNAL(activated(int)), this, SLOT(qcbTransmitMode_activated(int)));
|
||||
|
||||
updateTransmitModeComboBox();
|
||||
updateTransmitModeComboBox(Global::get().s.atTransmit);
|
||||
|
||||
#ifdef Q_OS_WIN
|
||||
setupView(false);
|
||||
@ -669,8 +671,8 @@ void MainWindow::updateUserModel() {
|
||||
um->toggleChannelFiltered(nullptr); // Force a UI refresh
|
||||
}
|
||||
|
||||
void MainWindow::updateTransmitModeComboBox() {
|
||||
switch (Global::get().s.atTransmit) {
|
||||
void MainWindow::updateTransmitModeComboBox(Settings::AudioTransmit newMode) {
|
||||
switch (newMode) {
|
||||
case Settings::Continuous:
|
||||
qcbTransmitMode->setCurrentIndex(0);
|
||||
return;
|
||||
@ -887,6 +889,26 @@ void MainWindow::updateImagePath(QString filepath) const {
|
||||
Global::get().s.qsImagePath = fi.absolutePath();
|
||||
}
|
||||
|
||||
void MainWindow::setTransmissionMode(Settings::AudioTransmit mode) {
|
||||
if (Global::get().s.atTransmit != mode) {
|
||||
Global::get().s.atTransmit = mode;
|
||||
|
||||
switch (mode) {
|
||||
case Settings::Continuous:
|
||||
Global::get().l->log(Log::Information, tr("Transmit Mode set to Continuous"));
|
||||
break;
|
||||
case Settings::VAD:
|
||||
Global::get().l->log(Log::Information, tr("Transmit Mode set to Voice Activity"));
|
||||
break;
|
||||
case Settings::PushToTalk:
|
||||
Global::get().l->log(Log::Information, tr("Transmit Mode set to Push-to-Talk"));
|
||||
break;
|
||||
}
|
||||
|
||||
emit transmissionModeChanged(mode);
|
||||
}
|
||||
}
|
||||
|
||||
static void recreateServerHandler() {
|
||||
// New server connection, so the sync has not happened yet
|
||||
ChannelListener::setInitialServerSyncDone(false);
|
||||
@ -1355,19 +1377,14 @@ void MainWindow::on_qaSelfRegister_triggered() {
|
||||
void MainWindow::qcbTransmitMode_activated(int index) {
|
||||
switch (index) {
|
||||
case 0: // Continuous
|
||||
Global::get().s.atTransmit = Settings::Continuous;
|
||||
Global::get().l->log(Log::Information, tr("Transmit Mode set to Continuous"));
|
||||
return;
|
||||
|
||||
setTransmissionMode(Settings::Continuous);
|
||||
break;
|
||||
case 1: // Voice Activity
|
||||
Global::get().s.atTransmit = Settings::VAD;
|
||||
Global::get().l->log(Log::Information, tr("Transmit Mode set to Voice Activity"));
|
||||
return;
|
||||
|
||||
setTransmissionMode(Settings::VAD);
|
||||
break;
|
||||
case 2: // Push-to-Talk
|
||||
Global::get().s.atTransmit = Settings::PushToTalk;
|
||||
Global::get().l->log(Log::Information, tr("Transmit Mode set to Push-to-Talk"));
|
||||
return;
|
||||
setTransmissionMode(Settings::PushToTalk);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@ -2604,7 +2621,7 @@ void MainWindow::on_qaConfigDialog_triggered() {
|
||||
|
||||
if (dlg->exec() == QDialog::Accepted) {
|
||||
setupView(false);
|
||||
updateTransmitModeComboBox();
|
||||
updateTransmitModeComboBox(Global::get().s.atTransmit);
|
||||
updateTrayIcon();
|
||||
updateUserModel();
|
||||
|
||||
@ -2973,21 +2990,16 @@ void MainWindow::on_gsCycleTransmitMode_triggered(bool down, QVariant) {
|
||||
|
||||
switch (Global::get().s.atTransmit) {
|
||||
case Settings::Continuous:
|
||||
Global::get().s.atTransmit = Settings::VAD;
|
||||
Global::get().l->log(Log::Information, tr("Transmit Mode set to Voice Activity"));
|
||||
setTransmissionMode(Settings::VAD);
|
||||
break;
|
||||
case Settings::VAD:
|
||||
Global::get().s.atTransmit = Settings::PushToTalk;
|
||||
Global::get().l->log(Log::Information, tr("Transmit Mode set to Push-to-Talk"));
|
||||
setTransmissionMode(Settings::PushToTalk);
|
||||
break;
|
||||
case Settings::PushToTalk:
|
||||
Global::get().s.atTransmit = Settings::Continuous;
|
||||
Global::get().l->log(Log::Information, tr("Transmit Mode set to Continuous"));
|
||||
setTransmissionMode(Settings::Continuous);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
updateTransmitModeComboBox();
|
||||
}
|
||||
|
||||
void MainWindow::on_gsToggleMainWindowVisibility_triggered(bool down, QVariant) {
|
||||
@ -3002,29 +3014,20 @@ void MainWindow::on_gsToggleMainWindowVisibility_triggered(bool down, QVariant)
|
||||
|
||||
void MainWindow::on_gsTransmitModePushToTalk_triggered(bool down, QVariant) {
|
||||
if (down) {
|
||||
Global::get().s.atTransmit = Settings::PushToTalk;
|
||||
Global::get().l->log(Log::Information, tr("Transmit Mode set to Push-to-Talk"));
|
||||
setTransmissionMode(Settings::PushToTalk);
|
||||
}
|
||||
|
||||
updateTransmitModeComboBox();
|
||||
}
|
||||
|
||||
void MainWindow::on_gsTransmitModeContinuous_triggered(bool down, QVariant) {
|
||||
if (down) {
|
||||
Global::get().s.atTransmit = Settings::Continuous;
|
||||
Global::get().l->log(Log::Information, tr("Transmit Mode set to Continuous"));
|
||||
setTransmissionMode(Settings::Continuous);
|
||||
}
|
||||
|
||||
updateTransmitModeComboBox();
|
||||
}
|
||||
|
||||
void MainWindow::on_gsTransmitModeVAD_triggered(bool down, QVariant) {
|
||||
if (down) {
|
||||
Global::get().s.atTransmit = Settings::VAD;
|
||||
Global::get().l->log(Log::Information, tr("Transmit Mode set to Voice Activity"));
|
||||
setTransmissionMode(Settings::VAD);
|
||||
}
|
||||
|
||||
updateTransmitModeComboBox();
|
||||
}
|
||||
|
||||
void MainWindow::on_gsSendTextMessage_triggered(bool down, QVariant scdata) {
|
||||
|
||||
@ -199,7 +199,7 @@ public slots:
|
||||
void on_qaSelfComment_triggered();
|
||||
void on_qaSelfRegister_triggered();
|
||||
void qcbTransmitMode_activated(int index);
|
||||
void updateTransmitModeComboBox();
|
||||
void updateTransmitModeComboBox(Settings::AudioTransmit newMode);
|
||||
void qmUser_aboutToShow();
|
||||
void qmListener_aboutToShow();
|
||||
void on_qaUserCommentReset_triggered();
|
||||
@ -312,6 +312,7 @@ public slots:
|
||||
/// Updates the user's image directory to the given path (any included
|
||||
/// filename is discarded).
|
||||
void updateImagePath(QString filepath) const;
|
||||
void setTransmissionMode(Settings::AudioTransmit mode);
|
||||
/// Sets the local user's mute state
|
||||
///
|
||||
/// @param mute Whether to mute the user
|
||||
@ -328,6 +329,7 @@ signals:
|
||||
void userAddedChannelListener(ClientUser *user, Channel *channel);
|
||||
/// Signal emitted whenever a user removes a ChannelListener
|
||||
void userRemovedChannelListener(ClientUser *user, Channel *channel);
|
||||
void transmissionModeChanged(Settings::AudioTransmit newMode);
|
||||
|
||||
public:
|
||||
MainWindow(QWidget *parent);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user