CanConFactory::create() returns nullptr for a type the platform does not support, and loadConnections() handed that straight to the model, which appends it to the connection list unguarded. Every later iteration over that list then dereferences it. Reachable by carrying a settings file holding a gs_usb connection from Windows to another platform, and by any saved type id the factory does not recognise. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XZnuZJ7zc3e8hk6C8bGDZN
202 lines
5.3 KiB
XML
202 lines
5.3 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<ui version="4.0">
|
|
<class>NewConnectionDialog</class>
|
|
<widget class="QDialog" name="NewConnectionDialog">
|
|
<property name="geometry">
|
|
<rect>
|
|
<x>0</x>
|
|
<y>0</y>
|
|
<width>426</width>
|
|
<height>540</height>
|
|
</rect>
|
|
</property>
|
|
<property name="windowTitle">
|
|
<string>New Connection</string>
|
|
</property>
|
|
<layout class="QVBoxLayout" name="verticalLayout">
|
|
<item>
|
|
<widget class="QGroupBox" name="gbType">
|
|
<property name="title">
|
|
<string>Connection Type</string>
|
|
</property>
|
|
<property name="alignment">
|
|
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
|
|
</property>
|
|
<layout class="QGridLayout" name="gridLayout">
|
|
<item row="4" column="0">
|
|
<widget class="QRadioButton" name="rbKayak">
|
|
<property name="text">
|
|
<string>socketcand (SocketCAN over Ethernet)</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item row="3" column="0">
|
|
<widget class="QRadioButton" name="rbSocketCAN">
|
|
<property name="enabled">
|
|
<bool>false</bool>
|
|
</property>
|
|
<property name="text">
|
|
<string>QT SerialBus Devices (SocketCAN, PeakCAN, etc)</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item row="5" column="0">
|
|
<widget class="QRadioButton" name="rbMQTT">
|
|
<property name="text">
|
|
<string>MQTT Connection</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item row="0" column="0">
|
|
<widget class="QRadioButton" name="rbGVRET">
|
|
<property name="text">
|
|
<string>Serial Connection (GVRET)</string>
|
|
</property>
|
|
<property name="checked">
|
|
<bool>true</bool>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item row="1" column="0">
|
|
<widget class="QRadioButton" name="rbRemote">
|
|
<property name="text">
|
|
<string>Network connection (GVRET)</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item row="2" column="0">
|
|
<widget class="QRadioButton" name="rbLawicel">
|
|
<property name="text">
|
|
<string>LAWICEL / SLCAN Serial</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item row="6" column="0">
|
|
<widget class="QRadioButton" name="rbCANserver">
|
|
<property name="text">
|
|
<string>CANserver</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item row="7" column="0">
|
|
<widget class="QRadioButton" name="rbCanlogserver">
|
|
<property name="text">
|
|
<string>CANlogserver</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item row="8" column="0">
|
|
<widget class="QRadioButton" name="rbGSUSB">
|
|
<property name="text">
|
|
<string>gs_usb (over WinUSB)</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
</layout>
|
|
</widget>
|
|
</item>
|
|
<item>
|
|
<widget class="QLabel" name="lblDeviceType">
|
|
<property name="text">
|
|
<string>SerialBus Device Type:</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item>
|
|
<widget class="QComboBox" name="cbDeviceType"/>
|
|
</item>
|
|
<item>
|
|
<widget class="QLabel" name="lPort">
|
|
<property name="sizePolicy">
|
|
<sizepolicy hsizetype="Minimum" vsizetype="Minimum">
|
|
<horstretch>0</horstretch>
|
|
<verstretch>0</verstretch>
|
|
</sizepolicy>
|
|
</property>
|
|
<property name="text">
|
|
<string>Serial Port:</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item>
|
|
<widget class="QComboBox" name="cbPort">
|
|
<property name="sizePolicy">
|
|
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
|
|
<horstretch>0</horstretch>
|
|
<verstretch>0</verstretch>
|
|
</sizepolicy>
|
|
</property>
|
|
<property name="maximumSize">
|
|
<size>
|
|
<width>341</width>
|
|
<height>16777215</height>
|
|
</size>
|
|
</property>
|
|
<property name="editable">
|
|
<bool>true</bool>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item>
|
|
<widget class="QLabel" name="lblSerialSpeed">
|
|
<property name="text">
|
|
<string>Serial Port Speed:</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item>
|
|
<widget class="QComboBox" name="cbSerialSpeed"/>
|
|
</item>
|
|
<item>
|
|
<widget class="QLabel" name="lblCANSpeed">
|
|
<property name="text">
|
|
<string>CAN Bus Speed:</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item>
|
|
<widget class="QComboBox" name="cbCANSpeed"/>
|
|
</item>
|
|
<item>
|
|
<widget class="QCheckBox" name="cbCanFd">
|
|
<property name="text">
|
|
<string>CAN-FD</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item>
|
|
<widget class="QLabel" name="lblDataRate">
|
|
<property name="text">
|
|
<string>CAN-FD data rate</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item>
|
|
<widget class="QComboBox" name="cbDataRate"/>
|
|
</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>
|
|
<item>
|
|
<widget class="QPushButton" name="btnOK">
|
|
<property name="text">
|
|
<string>Create New Connection</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
</layout>
|
|
</widget>
|
|
<resources/>
|
|
<connections/>
|
|
</ui>
|