63 lines
1.9 KiB
C++
63 lines
1.9 KiB
C++
// **************************************************************************
|
|
//
|
|
// (C) Copyright 2009 Swiss SIMTEC AG
|
|
//
|
|
// **************************************************************************
|
|
//
|
|
// $HeadURL$
|
|
// $LastChangedBy$
|
|
// $LastChangedDate$
|
|
// $LastChangedRevision$
|
|
//
|
|
// **************************************************************************
|
|
|
|
#include "LogViewTelegramSelectionDialog.hpp"
|
|
#include <QLabel>
|
|
#include <QListWidget>
|
|
#include <QVBoxLayout>
|
|
#include "LogViewXdrType.hpp"
|
|
#include "LogViewXdrParser.hpp"
|
|
#include "LogViewTelegram.hpp"
|
|
#include "LogViewTetraTelegramsParser.hpp"
|
|
|
|
namespace N_LogView
|
|
{
|
|
static int s_currentRow = 0;
|
|
// ---------------------------------------------------------------
|
|
LogViewTelegramSelectionDialog::LogViewTelegramSelectionDialog(QWidget* a_parent)
|
|
: QDialog(a_parent)
|
|
{
|
|
setMinimumSize(QSize(600, 500));
|
|
QVBoxLayout* layout = new QVBoxLayout;
|
|
layout->addWidget(new QLabel(tr("Select a telegram:")));
|
|
m_TelegramList = new QListWidget(this);
|
|
const auto telegramMap = LogViewTelegram::jsonParser()->telegramsToCreate();
|
|
for (auto it = telegramMap.cbegin(); it != telegramMap.cend(); ++it)
|
|
{
|
|
if (it.key() == 0) // ACK
|
|
continue;
|
|
auto lwi = new QListWidgetItem(it.value() + QStringLiteral(" (%1)").arg(it.key()));
|
|
lwi->setData(Qt::UserRole, it.key());
|
|
m_TelegramList->addItem(lwi);
|
|
}
|
|
|
|
m_TelegramList->sortItems();
|
|
m_TelegramList->setCurrentRow(s_currentRow);
|
|
connect(m_TelegramList, &QListWidget::itemActivated,
|
|
this, &LogViewTelegramSelectionDialog::selectTelegram);
|
|
layout->addWidget(m_TelegramList);
|
|
|
|
setLayout(layout);
|
|
}
|
|
|
|
|
|
// ---------------------------------------------------------------
|
|
void LogViewTelegramSelectionDialog::selectTelegram(QListWidgetItem* a_telegramItem)
|
|
{
|
|
s_currentRow = m_TelegramList->currentRow();
|
|
m_SelectedTelegramId = a_telegramItem->data(Qt::UserRole).toInt();
|
|
accept();
|
|
}
|
|
|
|
} // namespace N_LogView
|