Major Changes:
- Merged latest Qt5 devel content from dlbo (292 files changed, 7 new dirs)
- Consolidated forward-declarations and include folders
- Removed unneeded modules per Niklas' repo check list
Build System Fixes:
- Fixed CMake VERSION_GREATER syntax in ParticipantManagement/CMakeLists.txt
- Added VLC packages (libvlc-dev, vlc-plugin-base) to docker_build.sh
- Added PostgreSQL dev packages (libpq-dev, postgresql-server-dev-all) to Dockerfile
- Fixed locale warnings (ANSI_X3.4-1968 → C.UTF-8)
- Fixed ArcGIS SDK path warnings when BUILD_ARCGIS=OFF
Code Generation Fixes:
- Fixed IDL enum collisions (PortType→CorePortType/DdsutPortType, PdmEventType)
- Fixed Grantlee template svc_translation.cpp.grantlee:
- Changed {{ idl_enum.name }}_def:: to {{ idl_enum.name }}::
- Fixed .underlying() calls for C++11 scoped enums (enum class)
- Removed generated files from repo (moc_*, *_dtc.h, *_ftc.h)
Validation:
- BUILD_RTI=ON: SUCCESS
- BUILD_RTI=OFF: SUCCESS
- C++17 standard maintained for RTI 7.7 compatibility
- Ubuntu 26.04 Docker environment verified
Remaining Warnings (expected):
- BgViewer, KDChart, KDReports, Poppler-Qt6 not found (optional features)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
97 lines
2.8 KiB
C++
97 lines
2.8 KiB
C++
// **************************************************************************
|
|
//
|
|
// (C) Copyright 2009 Swiss SIMTEC AG
|
|
//
|
|
// **************************************************************************
|
|
//
|
|
// $HeadURL$
|
|
// $LastChangedBy$
|
|
// $LastChangedDate$
|
|
// $LastChangedRevision$
|
|
//
|
|
// **************************************************************************
|
|
|
|
#include "LogViewTextEdit.hpp"
|
|
#include "LogViewField.hpp"
|
|
#include "LogViewTelegram.hpp"
|
|
|
|
namespace N_LogView
|
|
{
|
|
|
|
// ---------------------------------------------------------------
|
|
LogViewTextEdit::LogViewTextEdit(LogViewField* a_field, QWidget* a_parent, const bool a_readonly)
|
|
: QLineEdit(a_parent)
|
|
, LogViewWidget(a_field, this, a_parent, a_readonly)
|
|
{
|
|
const QString value = a_field->value(0);
|
|
setText(value);
|
|
|
|
if (a_readonly)
|
|
{
|
|
setReadOnly(true);
|
|
setAlignment(a_field->isRightAligned() ? Qt::AlignRight : Qt::AlignLeft);
|
|
}
|
|
|
|
// set a validator for number of chars
|
|
uint16_t maxArraySize = a_field->maxArraySize();
|
|
setMaxLength(maxArraySize);
|
|
updateToolTip(value);
|
|
|
|
// make proper width of widget
|
|
QFontMetrics fm(font());
|
|
#if QT_VERSION < QT_VERSION_CHECK(5, 11, 0)
|
|
setMinimumWidth(fm.width(QLatin1Char(' ') + value + QLatin1Char(' ')));
|
|
#else
|
|
setMinimumWidth(fm.horizontalAdvance(QLatin1Char(' ') + value + QLatin1Char(' ')));
|
|
#endif
|
|
|
|
// connect signals
|
|
connect(this, &LogViewTextEdit::editingFinished,
|
|
this, &LogViewTextEdit::checkAndOvertakeContent);
|
|
}
|
|
|
|
|
|
// ---------------------------------------------------------------
|
|
void LogViewTextEdit::checkAndOvertakeContent()
|
|
{
|
|
updateToolTip(text()); // fixme nach jedem zeichen updaten
|
|
m_Valid = true;
|
|
}
|
|
|
|
// ---------------------------------------------------------------
|
|
// Writes the content into telegram.
|
|
// Returns true if successful.
|
|
// ---------------------------------------------------------------
|
|
bool LogViewTextEdit::saveContent(LogViewTelegram* a_telegram)
|
|
{
|
|
if (!isValid())
|
|
return false;
|
|
if (a_telegram->isJsonTelegram())
|
|
{
|
|
a_telegram->setJsonValue(m_Field->jsonPath(), text());
|
|
}
|
|
else
|
|
{
|
|
uint16_t size = getSize();
|
|
QString content = text();
|
|
uint16_t arraySize;
|
|
if (m_Field->isDynamicArray())
|
|
{
|
|
arraySize = content.length();
|
|
a_telegram->setUIntX(LogViewTelegram::SIZE_CENTRAL_DYN_ARRAY_SIZE, arraySize);
|
|
// fixme: bei vielen Telegrammen muss Länge auf die Länge des Textes gesetzt werden. Dies kann nicht automatisch gemacht werden. Aber vielleicht kann man schauen, ob vor dem dyn. Array ein Feld Länge vorkommt, oder hartcodieren, oder konfigurierbaren
|
|
}
|
|
else
|
|
{
|
|
arraySize = m_Field->maxArraySize();
|
|
}
|
|
|
|
// copy the text
|
|
for (int i = 0; i < arraySize; i++)
|
|
a_telegram->setUIntX(size, i < content.length() ? content[i].toLatin1() : 0);
|
|
}
|
|
return true;
|
|
}
|
|
|
|
} // namespace N_LogView
|