/** * @RDE_HEADER@ * * Abstract Dialog with ButtonBox and some pass-throughs * * $Id$ * $HeadURL$ * $Author$ */ #include "detailviewdlg.h" #include "ui_detailviewdlg.h" #include "detailview.h" #include DetailViewDlg::DetailViewDlg(QWidget *parent) : NGLDialog(parent) , m_ui(new Ui::DetailViewDlg) , m_bConnected(false) , m_logger(DdsView::getLogger("DetailView")) { m_ui->setupUi(this); connect(m_ui->nglDialogButtonBox, &NGLDialogButtonBox::onClose, this, &DetailViewDlg::accept); connect(m_ui->nglDialogButtonBox, &NGLDialogButtonBox::onSend, this, &DetailViewDlg::onSend); connect(m_ui->nglDialogButtonBox, &NGLDialogButtonBox::onOk, this, &DetailViewDlg::onOk); connect(m_ui->nglDialogButtonBox, &NGLDialogButtonBox::onCancel, this, &DetailViewDlg::reject); } DetailViewDlg::~DetailViewDlg() { delete m_ui; } void DetailViewDlg::setBtnsOkCancel() { m_ui->nglDialogButtonBox->setStandardButtons(NGLStandardButton::Ok | NGLStandardButton::Cancel); } void DetailViewDlg::setBtnsSendOkCancel() { m_ui->nglDialogButtonBox->setStandardButtons(NGLStandardButton::Send | NGLStandardButton::Ok | NGLStandardButton::Cancel); setConnected(m_bConnected); } void DetailViewDlg::setBtnsSendClose() { m_ui->nglDialogButtonBox->setStandardButtons(NGLStandardButton::Close | NGLStandardButton::Send); setConnected(m_bConnected); } void DetailViewDlg::setConnected(bool bConnected) { m_bConnected = bConnected; m_ui->nglDialogButtonBox->setEnabled(NGLStandardButton::Send, m_bConnected); } bool DetailViewDlg::init(const dds::core::xtypes::DynamicData &data, const QString &topicName, RwMode mode) { bool retVal = m_ui->detailView->init(data, topicName, mode); setWindowTitle(m_ui->detailView->windowTitle()); return retVal; } bool DetailViewDlg::init(const dds::core::xtypes::DynamicType &type, const QString &topicName, RwMode mode) { bool retVal = m_ui->detailView->init(type, topicName, mode); setWindowTitle(m_ui->detailView->windowTitle()); QTimer::singleShot(0, this, [this]() { resize(sizeHint());}); return retVal; } bool DetailViewDlg::fill(const dds::core::xtypes::DynamicData &data) { bool retVal = m_ui->detailView->setData(data); m_ui->scrollArea->resize(m_ui->detailView->size()); return retVal; } void DetailViewDlg::onSend() { const QString topicName = m_ui->detailView->getTopicName(); auto val = m_ui->detailView->getData(); if (val) emit send(val, topicName); } void DetailViewDlg::onOk() { auto val = m_ui->detailView->getData(); if (val) { const QString topicName = m_ui->detailView->getTopicName(); emit dataChanged(val, topicName); accept(); } else reject(); }