/** * @RDE_HEADER@ * AudioVideoManagement - Menu Struct Edit Dialog * $Id$ * $HeadURL$ * $Author$ * Created by hjl, SLSE, 2016-10-17 */ #include "avm_choose_menu.h" #include "ui_avm_choose_menu.h" #include #include #include #include #include namespace AudioVideoManagement { ChooseMenu::ChooseMenu(Interface::Dtc *dtc, AvsMenus *avsMenus, QWidget *parent) : LtsWidgets::LtsDialog(parent, LtsWidgets::ButtonCombination::OkApplyCancel) , m_dtc(dtc) , m_avsMenus(avsMenus) , m_ui(new Ui::ChooseMenuStruct) , m_logger(getLogger("ChooseMenu")) { Q_ASSERT(dtc); Q_ASSERT(avsMenus); m_ui->setupUi(this); connect(dtc, &Interface::Dtc::menuStructChanged, this, &ChooseMenu::onMenuStructChanged); m_dtc->menuStructs([this](const MenuStruct & menu) { onMenuStructChanged(menu, DataModification::eAdded);}); selectCurrent(); connect(m_ui->cbAudio, &QComboBox::currentTextChanged, this, &ChooseMenu::slotChangesMade); connect(m_ui->cbVideo, &QComboBox::currentTextChanged, this, &ChooseMenu::slotChangesMade); setOnlineHelpFilename(QStringLiteral("Situation-Choose_AV_Menu")); } //----------------------------------------------------------------------------- ChooseMenu::~ChooseMenu() { delete m_ui; } void ChooseMenu::retranslate() { translate(m_ui, tr("Choose AV Menu")); } //----------------------------------------------------------------------------- void ChooseMenu::onMenuStructChanged(const MenuStruct &data, DataModification modType) { switch (modType) { case DataModification::eAdded: { if (data.isAudio()) m_ui->cbAudio->addItem(QString::fromStdString(data.name()), data.id()); else m_ui->cbVideo->addItem(QString::fromStdString(data.name()), data.id()); break; } case DataModification::eRemoved: { if (data.isAudio()) { int index = m_ui->cbAudio->findData(data.id()); m_ui->cbAudio->removeItem(index); } else { int index = m_ui->cbVideo->findData(data.id()); m_ui->cbVideo->removeItem(index); } break; } case DataModification::eModified: break; } } //----------------------------------------------------------------------------- bool ChooseMenu::apply() { int menuId = m_ui->cbAudio->currentData().toInt(); INFO_LOG(m_logger) << "MenuId Audio: " << menuId; m_avsMenus->setAnnouncementMenu(menuId); menuId = m_ui->cbVideo->currentData().toInt(); INFO_LOG(m_logger) << "MenuId Video: " << menuId; m_avsMenus->setVideoMenu(menuId); return true; } void ChooseMenu::selectCurrent() { selectMenu(m_avsMenus->currentAnnouncementMenu(), m_ui->cbAudio); selectMenu(m_avsMenus->currentVideoMenu(), m_ui->cbVideo); } void ChooseMenu::selectMenu(int menuId, QComboBox *cb) { Q_ASSERT(cb); if (menuId < 0) return; int index = cb->findData(menuId); if (index < 0) return; cb->setCurrentIndex(index); } //----------------------------------------------------------------------------- } // namespace AudioVideoManagement