Reinserts original comments
This commit is contained in:
112 files changed
+7113
-5131
No files matched your search
@@ -1,15 +1,15 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// **************************************************************************
|
||||
//
|
||||
// (C) Copyright 2009 Swiss SIMTEC AG
|
||||
//
|
||||
// **************************************************************************
|
||||
//
|
||||
// $HeadURL$
|
||||
// $LastChangedBy$
|
||||
// $LastChangedDate$
|
||||
// $LastChangedRevision$
|
||||
//
|
||||
// **************************************************************************
|
||||
|
||||
#include "LogViewTelegramDialog.hpp"
|
||||
#include <utility>
|
||||
@@ -42,6 +42,9 @@
|
||||
namespace N_LogView
|
||||
{
|
||||
|
||||
// todo:
|
||||
// - feld einfärben wenn geändert, wenn falsch
|
||||
// - mache hartcodierte oder konfigurierbare ranges für spezielle Werte wie GPS-Position: signed 24-bit
|
||||
|
||||
|
||||
|
||||
@@ -55,7 +58,7 @@ LogViewTelegramDialog::LogViewTelegramDialog(QWidget *a_parent, const bool a_rea
|
||||
setAttribute(Qt::WA_DeleteOnClose);
|
||||
}
|
||||
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
void LogViewTelegramDialog::showDialog(const QSharedPointer<LogViewTelegram> &a_telegram)
|
||||
{
|
||||
delete layout();
|
||||
@@ -71,13 +74,13 @@ void LogViewTelegramDialog::showDialog(const QSharedPointer<LogViewTelegram> &a_
|
||||
QGridLayout *dialogLayout = new QGridLayout;
|
||||
if (!m_ReadOnly)
|
||||
{
|
||||
|
||||
// edit wait-time
|
||||
QLabel *waitTimeLabel = new QLabel(tr("Wartezeit [ms]"), this);
|
||||
dialogLayout->addWidget(waitTimeLabel, dialogLayout->rowCount(), 0);
|
||||
m_WaitTimeEdit = new QLineEdit(QString::number(a_telegram->getWaitTime()), this);
|
||||
dialogLayout->addWidget(m_WaitTimeEdit, dialogLayout->rowCount() - 1, 1);
|
||||
|
||||
|
||||
// edit name
|
||||
QLabel *nameLabel = new QLabel(tr("Name"), this);
|
||||
dialogLayout->addWidget(nameLabel, dialogLayout->rowCount(), 0);
|
||||
m_NameEdit = new QLineEdit(a_telegram->getName(), this);
|
||||
@@ -89,16 +92,16 @@ void LogViewTelegramDialog::showDialog(const QSharedPointer<LogViewTelegram> &a_
|
||||
dialogLayout->addWidget(f, dialogLayout->rowCount(), 0, 1, 2);
|
||||
}
|
||||
|
||||
|
||||
|
||||
//INFO_LOG(m_logger) << "--------------- create dialog " << fieldTree->getName().toStdString() << "--------------";
|
||||
//m_fieldTree->dump();
|
||||
showTree(m_fieldTree.data(), dialogLayout);
|
||||
if (this->findChild<LogViewTableWidget *>() == nullptr)
|
||||
dialogLayout->setRowStretch(dialogLayout->rowCount(), 1);
|
||||
|
||||
|
||||
// build the dialog
|
||||
QVBoxLayout *mainLayout = new QVBoxLayout(this);
|
||||
|
||||
|
||||
// make dialog scrollable
|
||||
m_contentsWidget = new QWidget;
|
||||
m_contentsWidget->setLayout(dialogLayout);
|
||||
|
||||
@@ -108,7 +111,7 @@ void LogViewTelegramDialog::showDialog(const QSharedPointer<LogViewTelegram> &a_
|
||||
|
||||
mainLayout->addWidget(m_ScrollArea);
|
||||
|
||||
|
||||
// buttons
|
||||
QHBoxLayout *btnLayout = new QHBoxLayout;
|
||||
btnLayout->addStretch();
|
||||
showButtons(btnLayout);
|
||||
@@ -127,19 +130,19 @@ void LogViewTelegramDialog::showDialog(const QSharedPointer<LogViewTelegram> &a_
|
||||
}
|
||||
|
||||
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
void LogViewTelegramDialog::showDataDump(const QSharedPointer<LogViewTelegram> &a_telegram, bool showErrorMessage)
|
||||
{
|
||||
QVBoxLayout *layout = new QVBoxLayout;
|
||||
layout->addWidget(new QLabel(tr("Telegramm-Dump")));
|
||||
|
||||
if (showErrorMessage)
|
||||
|
||||
// show error-message in dialog
|
||||
layout->addWidget(new QLabel(tr("Konnte Dialog basierend auf Struktur \'%1\' nicht generieren!").arg(a_telegram->getStructName())));
|
||||
else
|
||||
layout->addWidget(new QLabel(tr("HexData from \'%1\' - telegram:").arg(a_telegram->getName())));
|
||||
|
||||
|
||||
// generate the telegram-dump
|
||||
QString theDump = QLatin1String("<code>");
|
||||
const QByteArray &data = a_telegram->getData();
|
||||
for (int i = 0; i < data.size(); i++)
|
||||
@@ -167,11 +170,11 @@ void LogViewTelegramDialog::showDataDump(const QSharedPointer<LogViewTelegram> &
|
||||
}
|
||||
|
||||
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
void LogViewTelegramDialog::makePretty()
|
||||
{
|
||||
return;
|
||||
|
||||
// set the size and position of dialog
|
||||
int sbWidth = m_ScrollArea->width() - m_ScrollArea->viewport()->width();
|
||||
int wDiff = m_contentsWidget->width() - m_ScrollArea->width();
|
||||
int hDiff = m_contentsWidget->height() - m_ScrollArea->viewport()->height();
|
||||
@@ -179,15 +182,15 @@ void LogViewTelegramDialog::makePretty()
|
||||
|
||||
int newWidth = std::min(width() + wDiff + sbWidth, screenSize.width() * 9 / 10);
|
||||
int newHeight = std::min(height() + hDiff, screenSize.height() * 9 / 10);
|
||||
|
||||
|
||||
//setGeometry(winGeo);
|
||||
//QSize size = settings.value(SIZE, sizeHint()).toSize();
|
||||
resize(QSize(newWidth, newHeight));
|
||||
|
||||
|
||||
//move(settings.value(POS, QPoint(0, 0)).toPoint());
|
||||
// --------------------------------------------------------------------
|
||||
}
|
||||
|
||||
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
void LogViewTelegramDialog::showTree(LogViewField *a_fieldTree, QGridLayout *a_box)
|
||||
{
|
||||
int i = 0;
|
||||
@@ -227,7 +230,7 @@ void LogViewTelegramDialog::showTree(LogViewField *a_fieldTree, QGridLayout *a_b
|
||||
}
|
||||
|
||||
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
void LogViewTelegramDialog::fillTelegram(LogViewTelegram *a_telegram)
|
||||
{
|
||||
INFO_LOG(m_logger) << "******************************************";
|
||||
@@ -239,12 +242,12 @@ void LogViewTelegramDialog::fillTelegram(LogViewTelegram *a_telegram)
|
||||
if (!ptr->isValid())
|
||||
{
|
||||
INFO_LOG(m_logger) << ptr->field()->name() << " is invalid";
|
||||
return;
|
||||
return; // abort when a value is not vaild
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
// now save the values
|
||||
// -------------------
|
||||
a_telegram->resetOffset();
|
||||
a_telegram->clearJsonData();
|
||||
for (auto ptr : std::as_const(m_EditInfoList))
|
||||
@@ -258,12 +261,12 @@ void LogViewTelegramDialog::fillTelegram(LogViewTelegram *a_telegram)
|
||||
}
|
||||
|
||||
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
void LogViewTelegramDialog::saveTelegram()
|
||||
{
|
||||
fillTelegram(m_Telegram.data());
|
||||
|
||||
|
||||
// save wait-time and name
|
||||
N_SST::IntegerCalculator calculator;
|
||||
N_SST::IntegerCalculator::E_Error error;
|
||||
m_Telegram->setWaitTime(calculator.calc(m_WaitTimeEdit->text().toStdString(), error));
|
||||
@@ -272,19 +275,19 @@ void LogViewTelegramDialog::saveTelegram()
|
||||
accept();
|
||||
}
|
||||
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
void LogViewTelegramDialog::sendCurrentTelegram()
|
||||
{
|
||||
emit sendTelegram(m_Telegram);
|
||||
}
|
||||
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
void LogViewTelegramDialog::showButtons(QLayout *a_layout)
|
||||
{
|
||||
if (N_CoPrtCnv::CoPrtCnvLogHeader::e_DestProtocolCentral == m_Telegram->getProtocol())
|
||||
{
|
||||
QPushButton *btnSend = new QPushButton(QIcon(QLatin1String(":icons/16x16/mail-send.png")), tr("&Send"));
|
||||
btnSend->setEnabled(true);
|
||||
btnSend->setEnabled(true); // TODO: Status ob wirklich möglich ggf. überprüfen
|
||||
connect(btnSend, &QPushButton::clicked, this, &LogViewTelegramDialog::sendCurrentTelegram);
|
||||
a_layout->addWidget(btnSend);
|
||||
}
|
||||
@@ -304,48 +307,48 @@ void LogViewTelegramDialog::showButtons(QLayout *a_layout)
|
||||
|
||||
QPushButton *btnOk = new QPushButton(QIcon(QLatin1String(":icons/16x16/dialog-ok-apply.png")), tr("&OK"));
|
||||
btnOk->setDefault(true);
|
||||
|
||||
// fixme: absturz, wenn feld ungültiger wert enthält und ok gedrückt wird
|
||||
connect(btnOk, &QPushButton::clicked, this, &LogViewTelegramDialog::saveTelegram);
|
||||
a_layout->addWidget(btnOk);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
void LogViewTelegramDialog::showEditField(LogViewField *a_logViewField, QGridLayout *a_box)
|
||||
{
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// INFO_LOG(m_logger) << a_logViewField->getName() <<
|
||||
// << " a_logViewField->getValueListSize()=" << a_logViewField->getValueListSize()
|
||||
// << " a_logViewField->isIsDynamicArray()=" << a_logViewField->isIsDynamicArray()
|
||||
// << " a_logViewField->getValue(0)=" << a_logViewField->getValue(0).toStdString()
|
||||
// << " a_logViewField->getXdrElement())->getValueKind()=" << (int)(static_cast<const LogViewXdrStandardType*>(a_logViewField->getXdrElement())->getValueKind())
|
||||
// ;
|
||||
switch (a_logViewField->valueListSize())
|
||||
{
|
||||
case 1:
|
||||
|
||||
// 1 field (single or multi-line)
|
||||
if (m_ReadOnly || !a_logViewField->isDynamicArray() || (LogViewXdrStandardType::e_Character == static_cast<const LogViewXdrStandardType *>(a_logViewField->xdrElement())->getValueKind()))
|
||||
{
|
||||
QLabel *label = new QLabel(a_logViewField->cleanName());
|
||||
a_box->addWidget(label, a_box->rowCount(), 0);
|
||||
LogViewWidget *valueWidget = nullptr;
|
||||
|
||||
|
||||
//QString value = a_logViewField->getValue(0);
|
||||
// if (-1 == value.indexOf("<br>") && value.length() < 80)
|
||||
{
|
||||
|
||||
|
||||
// single line
|
||||
// -----------
|
||||
if (LogViewXdrElement::e_KindEnum == a_logViewField->xdrElement()->getKind())
|
||||
{
|
||||
|
||||
|
||||
// enum => combobox
|
||||
// ----------------
|
||||
valueWidget = new LogViewEnumEdit(a_logViewField, this, m_ReadOnly, 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (a_logViewField->isDateTimeField() || a_logViewField->isMSecsField())
|
||||
{
|
||||
|
||||
|
||||
// date-time-field
|
||||
// ---------------
|
||||
valueWidget = new LogViewDateTimeEdit(a_logViewField, this, m_ReadOnly);
|
||||
}
|
||||
else
|
||||
@@ -361,7 +364,7 @@ void LogViewTelegramDialog::showEditField(LogViewField *a_logViewField, QGridLay
|
||||
case LogViewXdrStandardType::e_Data:
|
||||
valueWidget = new LogViewValueEdit(a_logViewField, this, m_ReadOnly);
|
||||
break;
|
||||
case LogViewXdrStandardType::e_Character:
|
||||
case LogViewXdrStandardType::e_Character: // Text
|
||||
valueWidget = new LogViewTextEdit(a_logViewField, this, m_ReadOnly);
|
||||
break;
|
||||
}
|
||||
@@ -370,21 +373,21 @@ void LogViewTelegramDialog::showEditField(LogViewField *a_logViewField, QGridLay
|
||||
if (valueWidget)
|
||||
m_EditInfoList.push_back(valueWidget);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// else
|
||||
// {
|
||||
// // ----------------------------------------------------------------
|
||||
// // fixme: not used => take away
|
||||
// // multi-line
|
||||
// valueWidget = new QTextEdit(value);
|
||||
// static_cast<QTextEdit*>(valueWidget)->setReadOnly(true);
|
||||
// // make proper width of widget
|
||||
// QFontMetrics fm(valueWidget->font());
|
||||
// // the 0 (at end) are here, because QFontMetrics does not understand the <code> and <b> tags.
|
||||
// // So not the correct font will be used for calculating the width.
|
||||
// // The solution here is suboptimal, but will hopefully work with a lot of fonts...
|
||||
// valueWidget->setMinimumWidth(fm.width("0000: 00 00 00 00 00 00 00")*1.7);
|
||||
// // ----------------------------------------------------------------
|
||||
// }
|
||||
QWidget *w = dynamic_cast<QWidget *>(valueWidget);
|
||||
if (w)
|
||||
a_box->addWidget(w, a_box->rowCount() - 1, 1);
|
||||
@@ -392,24 +395,24 @@ void LogViewTelegramDialog::showEditField(LogViewField *a_logViewField, QGridLay
|
||||
WARNING_LOG(m_logger) << "Internal error - LogViewWidget is not derived from QWidget... !?";
|
||||
break;
|
||||
}
|
||||
|
||||
// fall through for not read-only and dyn. array
|
||||
Q_FALLTHROUGH();
|
||||
case 0:
|
||||
if (m_ReadOnly)
|
||||
{
|
||||
|
||||
// no field
|
||||
a_box->addWidget(new QLabel(tr("Keine %1").arg(a_logViewField->cleanName())));
|
||||
break;
|
||||
}
|
||||
|
||||
// fall through for not read-only
|
||||
Q_FALLTHROUGH();
|
||||
default:
|
||||
{
|
||||
|
||||
// show the title of table
|
||||
QLabel *label = new QLabel(a_logViewField->cleanName());
|
||||
a_box->addWidget(label, a_box->rowCount(), 0);
|
||||
|
||||
|
||||
// show the spin-box for changing the dyn. array-size
|
||||
LogViewSpinBox *spinBox = nullptr;
|
||||
if (!m_ReadOnly && a_logViewField->isDynamicArray())
|
||||
{
|
||||
@@ -422,7 +425,7 @@ void LogViewTelegramDialog::showEditField(LogViewField *a_logViewField, QGridLay
|
||||
m_EditInfoList.push_back(tableWidget);
|
||||
a_box->addWidget(tableWidget, a_box->rowCount(), 0, 1, 2);
|
||||
|
||||
|
||||
// connect signals
|
||||
if (spinBox)
|
||||
{
|
||||
connect(spinBox, &LogViewSpinBox::valueEditingFinished,
|
||||
@@ -434,13 +437,13 @@ void LogViewTelegramDialog::showEditField(LogViewField *a_logViewField, QGridLay
|
||||
}
|
||||
|
||||
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
void LogViewTelegramDialog::showTab(LogViewField *a_logViewField, QGridLayout *a_box)
|
||||
{
|
||||
LogViewSpinBox *spinBox = nullptr;
|
||||
if (!m_ReadOnly && a_logViewField->isDynamicArray())
|
||||
{
|
||||
|
||||
// show the spin-box for changing the dyn. array-size
|
||||
QLabel *label = new QLabel(a_logViewField->cleanName());
|
||||
a_box->addWidget(label, a_box->rowCount(), 0);
|
||||
spinBox = new LogViewSpinBox(a_logViewField, this, 0);
|
||||
@@ -451,14 +454,14 @@ void LogViewTelegramDialog::showTab(LogViewField *a_logViewField, QGridLayout *a
|
||||
m_EditInfoList.push_back(dynamic_cast<LogViewWidget *>(a_tabWidget));
|
||||
a_box->addWidget(a_tabWidget, a_box->rowCount(), 0, 1, 2);
|
||||
|
||||
|
||||
// connect signals
|
||||
if (spinBox)
|
||||
{
|
||||
connect(spinBox, &LogViewSpinBox::valueEditingFinished,
|
||||
a_tabWidget, &LogViewTabWidget::changeSize);
|
||||
}
|
||||
|
||||
|
||||
// add the tab
|
||||
if (a_logViewField->hasContent())
|
||||
{
|
||||
for (int i = 0; i < a_logViewField->childCount(); ++i)
|
||||
@@ -466,7 +469,7 @@ void LogViewTelegramDialog::showTab(LogViewField *a_logViewField, QGridLayout *a
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
bool LogViewTelegramDialog::removeItemsFromEditInfoList(const QStringList &jsonPath)
|
||||
{
|
||||
if (m_EditInfoList.empty())
|
||||
@@ -496,4 +499,4 @@ bool LogViewTelegramDialog::removeItemsFromEditInfoList(const QStringList &jsonP
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
} // namespace N_LogView
|
||||
Reference in new issue
Block a user