#include "LogViewTelegramSelectionDialog.hpp" #include #include #include #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) 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(); } }