129 lines
3.1 KiB
C++
Executable File
129 lines
3.1 KiB
C++
Executable File
/**
|
|
* @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 <AudioVideoManagement/avm_dtc.h>
|
|
#include <AudioVideoManagement/avm.hpp>
|
|
#include <AudioVideoManagement/avs_menus.h>
|
|
#include <LtsUtilsCore/data_modification_enum.h>
|
|
#include <LtsSession/lts_session.h>
|
|
|
|
|
|
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
|