Continues migration with DDS, Common

This commit is contained in:
torsten committed 2026-07-17 12:41:42 +02:00
1 parent 9b15cee841
commit fa48db111e
668 files changed
+111841 -2

No files matched your search

@@ -0,0 +1,102 @@
#include "lts_plugin_manager_dialog.h"
#include "lts_plugin_manager_widget.h"
#include "ui_lts_plugin_manager_dialog.h"
#include "../lts_plugin_manager.h"
#include <QCoreApplication>
#include <QString>
#include <QDebug>
namespace LtsPluginManager
{
LtsPluginManagerDialog::LtsPluginManagerDialog(QWidget *parent)
: QDialog(parent)
, m_ui(new Ui::LtsPluginManagerDialog)
{
m_ui->setupUi(this);
m_ui->masterSplitter->setStretchFactor(m_ui->masterSplitter->indexOf(m_ui->pluginsWidget), 20);
m_ui->masterSplitter->setStretchFactor(m_ui->masterSplitter->indexOf(m_ui->lwErrorLog), 0);
}
LtsPluginManagerDialog::~LtsPluginManagerDialog()
{
delete m_ui;
}
void LtsPluginManagerDialog::setServiceMissing(const QString &newPluginFilename, const QString &missingPluginName)
{
m_ui->lwErrorLog->addItem(tr("ERROR: Plugin '%1' needs the plugin '%2', which is not available!").arg(newPluginFilename, missingPluginName));
getPluginWidget(newPluginFilename)->setStatus(LtsPluginWidget::MISSING_SERVICE);
if (!isVisible())
show();
QCoreApplication::processEvents();
}
void LtsPluginManagerDialog::setOptionalServiceMissing(const QString &newPluginFilename, const QString &missingPluginName)
{
m_ui->lwErrorLog->addItem(tr("INFO: Plugin %1 asked for plugin %2, which is not available!").arg(newPluginFilename, missingPluginName));
if (!isVisible())
show();
QCoreApplication::processEvents();
}
void LtsPluginManagerDialog::setInvalidPlugin(const QString &newPluginFilename)
{
m_ui->lwErrorLog->addItem(tr("INFO: Invalid plugin '%1'").arg(newPluginFilename));
}
LtsPluginWidget *LtsPluginManagerDialog::getPluginWidget(const QString &filename)
{
LtsPluginWidget *pluginWidget = findChild<LtsPluginWidget *>(filename);
if (!pluginWidget)
{
pluginWidget = new LtsPluginWidget(filename);
pluginWidget->setObjectName(filename);
qobject_cast<QHBoxLayout *>(m_ui->pluginsWidget->layout())->insertWidget(0, pluginWidget);
}
return pluginWidget;
}
void LtsPluginManagerDialog::setPluginLogStatus(const QString &filename, const LtsPluginWidget::Status &status)
{
getPluginWidget(filename)->setStatus(status);
QCoreApplication::processEvents();
}
void LtsPluginManagerDialog::setPluginLogType(const QString &filename, const QString &type)
{
getPluginWidget(filename)->setType(type);
QCoreApplication::processEvents();
}
void LtsPluginManagerDialog::setPluginLogIdent(const QString &filename, const QString &ident)
{
getPluginWidget(filename)->setIdent(ident);
QCoreApplication::processEvents();
}
}
+38
View File
@@ -0,0 +1,38 @@
#pragma once
#include <LtsPluginManager/lts_plugin_manager_export.h>
#include "lts_plugin_manager_widget.h"
#include <QDialog>
namespace Ui
{
class LtsPluginManagerDialog;
}
namespace LtsPluginManager
{
class LTSPLUGINMANAGER_EXPORT LtsPluginManagerDialog : public QDialog
{
Q_OBJECT
public:
explicit LtsPluginManagerDialog(QWidget *parent = nullptr);
~LtsPluginManagerDialog();
void setServiceMissing(const QString &newPluginFilename, const QString &missingPluginName);
void setOptionalServiceMissing(const QString &newPluginFilename, const QString &missingPluginName);
void setInvalidPlugin(const QString &newPluginFilename);
void setPluginLogStatus(const QString &filename, const LtsPluginWidget::Status &status);
void setPluginLogType(const QString &filename, const QString &type);
void setPluginLogIdent(const QString &filename, const QString &ident);
private:
Ui::LtsPluginManagerDialog *m_ui;
LtsPluginWidget *getPluginWidget(const QString &filename);
};
}
@@ -0,0 +1,71 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>LtsPluginManagerDialog</class>
<widget class="QWidget" name="LtsPluginManagerDialog">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>492</width>
<height>342</height>
</rect>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="autoFillBackground">
<bool>true</bool>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QSplitter" name="masterSplitter">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<widget class="QWidget" name="pluginsWidget" native="true">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="MinimumExpanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>250</height>
</size>
</property>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>493</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
<widget class="QListWidget" name="lwErrorLog">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Maximum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</widget>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>
@@ -0,0 +1,130 @@
#include "lts_plugin_manager_widget.h"
#include "ui_lts_plugin_manager_widget.h"
using namespace LtsPluginManager;
LtsPluginWidget::LtsPluginWidget(const QString &filename, QWidget *parent)
: QWidget(parent)
, m_ui(new Ui::LtsPluginWidget)
{
m_ui->setupUi(this);
m_ui->leFilename->setText(filename);
setStatus(UNKNOWN);
setType();
setIdent();
m_ui->lbGuiPlugins->hide();
m_ui->lbDtc->hide();
m_ui->lwDtcs->hide();
m_ui->lbFtc->hide();
m_ui->lwFtcs->hide();
}
LtsPluginWidget::~LtsPluginWidget()
{
delete m_ui;
}
void LtsPluginWidget::setStatus(Status status)
{
QString statusText;
switch (status)
{
case INVALID:
{
m_ui->frStatus->setStyleSheet(QLatin1String("background-color: rgb(189, 106, 98);"));
statusText = tr("Invalid");
break;
}
case LOADED:
{
m_ui->frStatus->setStyleSheet(QLatin1String("background-color: rgb(124, 189, 124);"));
statusText = tr("Loaded");
break;
}
case CONFLICT:
{
m_ui->frStatus->setStyleSheet(QLatin1String("background-color: rgb(189, 106, 98);"));
statusText = tr("CONFLICT!");
break;
}
case UNLOADED:
{
m_ui->frStatus->setStyleSheet(QLatin1String("background-color: rgb(100, 100, 100);"));
statusText = tr("Unloaded");
break;
}
case INIT_FAILED:
{
m_ui->frStatus->setStyleSheet(QLatin1String("background-color: rgb(189, 106, 98);"));
statusText = tr("INIT FAILED!");
break;
}
case MISSING_SERVICE:
{
m_ui->frStatus->setStyleSheet(QLatin1String("background-color: rgb(189, 106, 98);"));
statusText = tr("MISSING SERVICE!");
break;
}
case OBLIBATORY_INTERFACES_MISSING:
{
m_ui->frStatus->setStyleSheet(QLatin1String("background-color: rgb(189, 106, 98);"));
statusText = tr("OBLIGATORY INTERFACES MISSING!");
break;
}
case INVALID_PLUGIN_VERSION:
{
m_ui->frStatus->setStyleSheet(QLatin1String("background-color: rgb(189, 106, 98);"));
statusText = tr("INVALID PLUGIN VERSION!");
break;
}
default:
{
m_ui->frStatus->setStyleSheet(QLatin1String("background-color: rgb(100, 100, 100);"));
statusText = tr("Unknown (%1)").arg(status);
break;
}
}
m_ui->leStatus->setText(statusText);
}
void LtsPluginWidget::setType(const QString &type)
{
if (type.isEmpty())
{
m_ui->leType->hide();
m_ui->lbType->hide();
}
else
{
m_ui->leType->show();
m_ui->lbType->show();
m_ui->leType->setText(type);
}
}
void LtsPluginWidget::setIdent(const QString &ident)
{
if (ident.isEmpty())
{
m_ui->leIdent->hide();
m_ui->lbIdent->hide();
}
else
{
m_ui->leIdent->show();
m_ui->lbIdent->show();
m_ui->leIdent->setText(ident);
}
}
+45
View File
@@ -0,0 +1,45 @@
#pragma once
#include <lts_plugin_manager.h>
#include <QWidget>
namespace Ui
{
class LtsPluginWidget;
}
namespace LtsPluginManager
{
class LtsPluginWidget : public QWidget
{
Q_OBJECT
public:
enum Status
{
UNKNOWN = 0,
INVALID,
LOADED,
CONFLICT,
UNLOADED,
INIT_FAILED,
MISSING_SERVICE,
OBLIBATORY_INTERFACES_MISSING,
INVALID_PLUGIN_VERSION,
};
explicit LtsPluginWidget(const QString &filename, QWidget *parent = nullptr);
~LtsPluginWidget();
void setStatus(Status status);
void setType(const QString &type = QString());
void setIdent(const QString &ident = QString());
private:
Ui::LtsPluginWidget *m_ui;
};
}
+196
View File
@@ -0,0 +1,196 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>LtsPluginWidget</class>
<widget class="QWidget" name="LtsPluginWidget">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>481</width>
<height>580</height>
</rect>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Minimum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="autoFillBackground">
<bool>true</bool>
</property>
<layout class="QHBoxLayout" name="horizontalLayout" stretch="0,1">
<item>
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<widget class="QFrame" name="frStatus">
<property name="minimumSize">
<size>
<width>15</width>
<height>60</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>15</width>
<height>60</height>
</size>
</property>
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
</widget>
</item>
<item>
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item>
<layout class="QFormLayout" name="formLayout">
<item row="0" column="1">
<widget class="QLineEdit" name="leFilename">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>200</width>
<height>0</height>
</size>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QLabel" name="lbFilename">
<property name="text">
<string>Name:</string>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="lbType">
<property name="text">
<string>Type:</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="lbStatus">
<property name="text">
<string>Status:</string>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QLabel" name="lbIdent">
<property name="text">
<string>Ident:</string>
</property>
</widget>
</item>
<item row="6" column="0">
<widget class="QLabel" name="lbGuiPlugins">
<property name="text">
<string>Gui Plugins:</string>
</property>
</widget>
</item>
<item row="6" column="1">
<widget class="QWidget" name="guiPluginsWidget" native="true">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Maximum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<layout class="QVBoxLayout" name="verticalLayout"/>
</widget>
</item>
<item row="1" column="1">
<widget class="QLineEdit" name="leStatus">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QLineEdit" name="leType">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QLineEdit" name="leIdent">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</item>
<item row="4" column="0">
<widget class="QLabel" name="lbDtc">
<property name="text">
<string>Foreign Data Topic Clients:</string>
</property>
</widget>
</item>
<item row="5" column="0">
<widget class="QLabel" name="lbFtc">
<property name="text">
<string>Foreign Function Topic Clients:</string>
</property>
</widget>
</item>
<item row="4" column="1">
<widget class="QListWidget" name="lwDtcs">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Maximum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</item>
<item row="5" column="1">
<widget class="QListWidget" name="lwFtcs">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Maximum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>