From 72e7b5e26afc0aaf5d68f13d60e5371c1c0362e9 Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Thu, 4 Dec 2014 17:27:36 +0100 Subject: [PATCH] refs #355, fixed voice room override * missing connection for url/checkbox 2 * missing updates when values were changed --- src/blackcore/context_ownaircraft_impl.cpp | 8 +++--- .../components/voiceroomscomponent.cpp | 28 ++++++++++++------- src/blackgui/components/voiceroomscomponent.h | 6 ++-- 3 files changed, 25 insertions(+), 17 deletions(-) diff --git a/src/blackcore/context_ownaircraft_impl.cpp b/src/blackcore/context_ownaircraft_impl.cpp index a35823b94..926933f11 100644 --- a/src/blackcore/context_ownaircraft_impl.cpp +++ b/src/blackcore/context_ownaircraft_impl.cpp @@ -77,10 +77,10 @@ namespace BlackCore void CContextOwnAircraft::resolveVoiceRooms() { CLogMessage(this, CLogCategory::contextSlot()).debug() << Q_FUNC_INFO; - if (this->m_voiceRoom1UrlOverride.isEmpty() && this->m_voiceRoom2UrlOverride.isEmpty() && !this->m_automaticVoiceRoomResolution) return; - if (!this->getIContextNetwork()) return; // no chance to resolve rooms - if (!this->getIContextAudio()) return; // no place to set rooms - if (!this->m_automaticVoiceRoomResolution) return; // not responsible + if (this->m_voiceRoom1UrlOverride.isEmpty() && this->m_voiceRoom2UrlOverride.isEmpty() && !this->m_automaticVoiceRoomResolution) { return; } + if (!this->getIContextNetwork()) { return; } // no chance to resolve rooms + if (!this->getIContextAudio()) { return; } // no place to set rooms + if (!this->m_automaticVoiceRoomResolution) { return; } // not responsible // requires correct frequencies set // but local network uses exactly this object here, so if frequencies are set here, diff --git a/src/blackgui/components/voiceroomscomponent.cpp b/src/blackgui/components/voiceroomscomponent.cpp index 28ef431e7..0626695f6 100644 --- a/src/blackgui/components/voiceroomscomponent.cpp +++ b/src/blackgui/components/voiceroomscomponent.cpp @@ -10,13 +10,13 @@ #include "voiceroomscomponent.h" #include "ui_voiceroomscomponent.h" #include "blackcore/context_audio.h" +#include "blackcore/context_ownaircraft.h" #include "blackmisc/notificationsounds.h" using namespace BlackCore; using namespace BlackSound; using namespace BlackMisc::Audio; - namespace BlackGui { namespace Components @@ -27,9 +27,11 @@ namespace BlackGui ui(new Ui::CVoiceRoomsComponent) { ui->setupUi(this); - this->setVoiceRoomUrlFields(); - connect(ui->cb_CockpitVoiceRoom1Override, &QCheckBox::toggled, this, &CVoiceRoomsComponent::ps_voiceRoomOverrideChanged); - connect(ui->le_CockpitVoiceRoomCom1, &QLineEdit::returnPressed, this, &CVoiceRoomsComponent::ps_voiceRoomUrlsReturnPressed); + this->setVoiceRoomUrlFieldsReadOnlyState(); + connect(ui->cb_CockpitVoiceRoom1Override, &QCheckBox::toggled, this, &CVoiceRoomsComponent::ps_onVoiceRoomOverrideChanged); + connect(ui->cb_CockpitVoiceRoom2Override, &QCheckBox::toggled, this, &CVoiceRoomsComponent::ps_onVoiceRoomOverrideChanged); + connect(ui->le_CockpitVoiceRoomCom1, &QLineEdit::returnPressed, this, &CVoiceRoomsComponent::ps_onVoiceRoomUrlsReturnPressed); + connect(ui->le_CockpitVoiceRoomCom2, &QLineEdit::returnPressed, this, &CVoiceRoomsComponent::ps_onVoiceRoomUrlsReturnPressed); } CVoiceRoomsComponent::~CVoiceRoomsComponent() @@ -40,18 +42,24 @@ namespace BlackGui this->connect(this->getIContextAudio(), &IContextAudio::changedVoiceRooms, this, &CVoiceRoomsComponent::ps_updateAudioVoiceRoomsFromContext); } - void CVoiceRoomsComponent::ps_voiceRoomOverrideChanged(bool checked) + void CVoiceRoomsComponent::ps_onVoiceRoomOverrideChanged(bool checked) { Q_UNUSED(checked); - this->setVoiceRoomUrlFields(); + this->setVoiceRoomUrlFieldsReadOnlyState(); + this->ps_onVoiceRoomUrlsReturnPressed(); // use this function to update voicerooms } - void CVoiceRoomsComponent::ps_voiceRoomUrlsReturnPressed() + void CVoiceRoomsComponent::ps_onVoiceRoomUrlsReturnPressed() { - + Q_ASSERT(this->getIContextOwnAircraft()); // voice room resolution is part of own aircraft + QString url1; + QString url2; + if (this->ui->cb_CockpitVoiceRoom1Override->isChecked()) { url1 = this->ui->le_CockpitVoiceRoomCom1->text().trimmed(); } + if (this->ui->cb_CockpitVoiceRoom2Override->isChecked()) { url2 = this->ui->le_CockpitVoiceRoomCom2->text().trimmed(); } + this->getIContextOwnAircraft()->setAudioVoiceRoomOverrideUrls(url1, url2); } - void CVoiceRoomsComponent::setVoiceRoomUrlFields() + void CVoiceRoomsComponent::setVoiceRoomUrlFieldsReadOnlyState() { bool c1 = ui->cb_CockpitVoiceRoom1Override->isChecked(); bool c2 = ui->cb_CockpitVoiceRoom2Override->isChecked(); @@ -109,7 +117,7 @@ namespace BlackGui void CVoiceRoomsComponent::updateVoiceRoomMembers() { - if (!this->getIContextAudio()) return; + if (!this->getIContextAudio()) { return; } if (!this->ui->le_CockpitVoiceRoomCom1->text().trimmed().isEmpty()) { this->ui->tvp_CockpitVoiceRoom1->updateContainer(this->getIContextAudio()->getCom1RoomUsers()); diff --git a/src/blackgui/components/voiceroomscomponent.h b/src/blackgui/components/voiceroomscomponent.h index 6355c6514..b94c04d52 100644 --- a/src/blackgui/components/voiceroomscomponent.h +++ b/src/blackgui/components/voiceroomscomponent.h @@ -43,17 +43,17 @@ namespace BlackGui private slots: //! Override for voice was changed - void ps_voiceRoomOverrideChanged(bool checked); + void ps_onVoiceRoomOverrideChanged(bool checked); //! Return pressed - void ps_voiceRoomUrlsReturnPressed(); + void ps_onVoiceRoomUrlsReturnPressed(); //! Set the voice room url fields (checkboxes, line edits) void ps_updateAudioVoiceRoomsFromContext(const BlackMisc::Audio::CVoiceRoomList &selectedVoiceRooms, bool connected); private: //! Set the URL fields - void setVoiceRoomUrlFields(); + void setVoiceRoomUrlFieldsReadOnlyState(); //! Update voice room views void updateVoiceRoomMembers();