479 lines
16 KiB
XML
479 lines
16 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<ui version="4.0">
|
|
<class>PortsWindow</class>
|
|
<widget class="QWidget" name="PortsWindow">
|
|
<property name="geometry">
|
|
<rect>
|
|
<x>0</x>
|
|
<y>0</y>
|
|
<width>663</width>
|
|
<height>352</height>
|
|
</rect>
|
|
</property>
|
|
<property name="windowTitle">
|
|
<string>Form</string>
|
|
</property>
|
|
<layout class="QGridLayout">
|
|
<item row="0" column="0">
|
|
<widget class="QSplitter" name="splitter">
|
|
<property name="orientation">
|
|
<enum>Qt::Horizontal</enum>
|
|
</property>
|
|
<property name="childrenCollapsible">
|
|
<bool>false</bool>
|
|
</property>
|
|
<widget class="XTreeView" name="tvPortList">
|
|
<property name="sizePolicy">
|
|
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
|
|
<horstretch>1</horstretch>
|
|
<verstretch>0</verstretch>
|
|
</sizepolicy>
|
|
</property>
|
|
<property name="contextMenuPolicy">
|
|
<enum>Qt::ActionsContextMenu</enum>
|
|
</property>
|
|
<property name="selectionMode">
|
|
<enum>QAbstractItemView::SingleSelection</enum>
|
|
</property>
|
|
</widget>
|
|
<widget class="QStackedWidget" name="swDetail">
|
|
<property name="sizePolicy">
|
|
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
|
<horstretch>2</horstretch>
|
|
<verstretch>0</verstretch>
|
|
</sizepolicy>
|
|
</property>
|
|
<property name="currentIndex">
|
|
<number>2</number>
|
|
</property>
|
|
<widget class="QWidget" name="blankPage">
|
|
<layout class="QVBoxLayout" name="verticalLayout">
|
|
<item>
|
|
<widget class="QLabel" name="label">
|
|
<property name="text">
|
|
<string><p><b>Welcome to Ostinato!</b></p>
|
|
<p>The port list on the left contains all the ports on which you can transmit packets.</p>
|
|
<p>Ports belong to a port group. Make sure the Port Group has a <img src=":/icons/bullet_green.png"/> next to it, then double click the port group to show or hide the ports in the port group.</p>
|
|
<p>To generate packets, you need to create and configure packet streams. A stream is a sequence of one or more packets.</p>
|
|
<p>To create a stream, select the port on which you want to send packets.</p>
|
|
<hr/>
|
|
<p>Don't see the port that you want (or any ports at all) inside the port group? <a href="https://jump.ostinato.org/noports">Get Help!</a></p></string>
|
|
</property>
|
|
<property name="alignment">
|
|
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
|
|
</property>
|
|
<property name="wordWrap">
|
|
<bool>true</bool>
|
|
</property>
|
|
<property name="openExternalLinks">
|
|
<bool>true</bool>
|
|
</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>
|
|
</widget>
|
|
<widget class="QWidget" name="portGroupDetail">
|
|
<layout class="QVBoxLayout" name="verticalLayout_2">
|
|
<item>
|
|
<widget class="QLabel" name="label_5">
|
|
<property name="text">
|
|
<string><p>You have selected a port group in the port list on the left.</p>
|
|
<p>You can transmit packets on any of the ports within the port group.</p>
|
|
<p>Make sure the port group has a <img src=":/icons/bullet_green.png"/> next to it and then double click the port group to show or hide the ports in the port group.</p>
|
|
<p>To generate packets, you need to create and configure packet streams. A stream is a sequence of one or more packets.</p>
|
|
<p>To create a stream, select the port on which you want to send packets. </p>
|
|
<hr/>
|
|
<p>Don't see the port that you want (or any ports at all) inside the port group? <a href="https://jump.ostinato.org/noports">Get Help!</a></p></string>
|
|
</property>
|
|
<property name="alignment">
|
|
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
|
|
</property>
|
|
<property name="wordWrap">
|
|
<bool>true</bool>
|
|
</property>
|
|
<property name="openExternalLinks">
|
|
<bool>true</bool>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item>
|
|
<spacer name="verticalSpacer_2">
|
|
<property name="orientation">
|
|
<enum>Qt::Vertical</enum>
|
|
</property>
|
|
<property name="sizeHint" stdset="0">
|
|
<size>
|
|
<width>20</width>
|
|
<height>177</height>
|
|
</size>
|
|
</property>
|
|
</spacer>
|
|
</item>
|
|
</layout>
|
|
</widget>
|
|
<widget class="QWidget" name="portDetail">
|
|
<layout class="QVBoxLayout">
|
|
<property name="margin">
|
|
<number>0</number>
|
|
</property>
|
|
<item>
|
|
<widget class="QFrame" name="frame">
|
|
<property name="frameShape">
|
|
<enum>QFrame::Panel</enum>
|
|
</property>
|
|
<property name="frameShadow">
|
|
<enum>QFrame::Raised</enum>
|
|
</property>
|
|
<layout class="QHBoxLayout">
|
|
<property name="margin">
|
|
<number>3</number>
|
|
</property>
|
|
<item>
|
|
<spacer>
|
|
<property name="orientation">
|
|
<enum>Qt::Horizontal</enum>
|
|
</property>
|
|
<property name="sizeHint" stdset="0">
|
|
<size>
|
|
<width>40</width>
|
|
<height>20</height>
|
|
</size>
|
|
</property>
|
|
</spacer>
|
|
</item>
|
|
<item>
|
|
<widget class="QLabel" name="applyHint">
|
|
<property name="text">
|
|
<string>Apply Hint</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item>
|
|
<spacer name="horizontalSpacer">
|
|
<property name="orientation">
|
|
<enum>Qt::Horizontal</enum>
|
|
</property>
|
|
<property name="sizeHint" stdset="0">
|
|
<size>
|
|
<width>40</width>
|
|
<height>20</height>
|
|
</size>
|
|
</property>
|
|
</spacer>
|
|
</item>
|
|
<item>
|
|
<widget class="QPushButton" name="pbApply">
|
|
<property name="text">
|
|
<string>Apply</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
</layout>
|
|
</widget>
|
|
</item>
|
|
<item>
|
|
<widget class="QTabWidget" name="portConfig">
|
|
<property name="currentIndex">
|
|
<number>0</number>
|
|
</property>
|
|
<widget class="QWidget" name="streamsTab">
|
|
<attribute name="title">
|
|
<string>Streams</string>
|
|
</attribute>
|
|
<layout class="QVBoxLayout">
|
|
<item>
|
|
<layout class="QHBoxLayout">
|
|
<item>
|
|
<widget class="QToolButton" name="startTx">
|
|
<property name="toolTip">
|
|
<string>Start Transmit</string>
|
|
</property>
|
|
<property name="statusTip">
|
|
<string>Start transmit on selected port</string>
|
|
</property>
|
|
<property name="text">
|
|
<string/>
|
|
</property>
|
|
<property name="icon">
|
|
<iconset resource="ostinato.qrc">
|
|
<normaloff>:/icons/control_play.png</normaloff>:/icons/control_play.png</iconset>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item>
|
|
<widget class="QToolButton" name="stopTx">
|
|
<property name="toolTip">
|
|
<string>Stop Transmit</string>
|
|
</property>
|
|
<property name="statusTip">
|
|
<string>Stop transmit on selected port</string>
|
|
</property>
|
|
<property name="text">
|
|
<string/>
|
|
</property>
|
|
<property name="icon">
|
|
<iconset resource="ostinato.qrc">
|
|
<normaloff>:/icons/control_stop.png</normaloff>:/icons/control_stop.png</iconset>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item>
|
|
<spacer>
|
|
<property name="orientation">
|
|
<enum>Qt::Horizontal</enum>
|
|
</property>
|
|
<property name="sizeHint" stdset="0">
|
|
<size>
|
|
<width>40</width>
|
|
<height>20</height>
|
|
</size>
|
|
</property>
|
|
</spacer>
|
|
</item>
|
|
<item>
|
|
<widget class="QRadioButton" name="radioButton">
|
|
<property name="text">
|
|
<string>Avg pps</string>
|
|
</property>
|
|
<property name="checked">
|
|
<bool>true</bool>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item>
|
|
<widget class="QLineEdit" name="averagePacketsPerSec"/>
|
|
</item>
|
|
<item>
|
|
<widget class="QRadioButton" name="radioButton_2">
|
|
<property name="text">
|
|
<string>Avg bps</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item>
|
|
<widget class="QLineEdit" name="averageBitsPerSec">
|
|
<property name="enabled">
|
|
<bool>false</bool>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
</layout>
|
|
</item>
|
|
<item>
|
|
<widget class="XTableView" name="tvStreamList">
|
|
<property name="sizePolicy">
|
|
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
|
|
<horstretch>0</horstretch>
|
|
<verstretch>1</verstretch>
|
|
</sizepolicy>
|
|
</property>
|
|
<property name="contextMenuPolicy">
|
|
<enum>Qt::ActionsContextMenu</enum>
|
|
</property>
|
|
<property name="whatsThis">
|
|
<string>This is the stream list for the selected port
|
|
|
|
A stream is a sequence of one or more packets
|
|
|
|
Right-click to create a stream</string>
|
|
</property>
|
|
<property name="frameShape">
|
|
<enum>QFrame::StyledPanel</enum>
|
|
</property>
|
|
<property name="lineWidth">
|
|
<number>1</number>
|
|
</property>
|
|
<property name="selectionMode">
|
|
<enum>QAbstractItemView::ExtendedSelection</enum>
|
|
</property>
|
|
<property name="selectionBehavior">
|
|
<enum>QAbstractItemView::SelectRows</enum>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
</layout>
|
|
</widget>
|
|
<widget class="QWidget" name="devicesTab">
|
|
<attribute name="title">
|
|
<string>Devices</string>
|
|
</attribute>
|
|
<layout class="QVBoxLayout">
|
|
<item>
|
|
<widget class="DevicesWidget" name="devicesWidget" native="true"/>
|
|
</item>
|
|
</layout>
|
|
</widget>
|
|
</widget>
|
|
</item>
|
|
</layout>
|
|
</widget>
|
|
</widget>
|
|
</widget>
|
|
</item>
|
|
</layout>
|
|
<action name="actionNew_Port_Group">
|
|
<property name="icon">
|
|
<iconset resource="ostinato.qrc">
|
|
<normaloff>:/icons/portgroup_add.png</normaloff>:/icons/portgroup_add.png</iconset>
|
|
</property>
|
|
<property name="text">
|
|
<string>New Port Group</string>
|
|
</property>
|
|
</action>
|
|
<action name="actionDelete_Port_Group">
|
|
<property name="icon">
|
|
<iconset resource="ostinato.qrc">
|
|
<normaloff>:/icons/portgroup_delete.png</normaloff>:/icons/portgroup_delete.png</iconset>
|
|
</property>
|
|
<property name="text">
|
|
<string>Delete Port Group</string>
|
|
</property>
|
|
</action>
|
|
<action name="actionConnect_Port_Group">
|
|
<property name="icon">
|
|
<iconset resource="ostinato.qrc">
|
|
<normaloff>:/icons/portgroup_connect.png</normaloff>:/icons/portgroup_connect.png</iconset>
|
|
</property>
|
|
<property name="text">
|
|
<string>Connect Port Group</string>
|
|
</property>
|
|
</action>
|
|
<action name="actionDisconnect_Port_Group">
|
|
<property name="icon">
|
|
<iconset resource="ostinato.qrc">
|
|
<normaloff>:/icons/portgroup_disconnect.png</normaloff>:/icons/portgroup_disconnect.png</iconset>
|
|
</property>
|
|
<property name="text">
|
|
<string>Disconnect Port Group</string>
|
|
</property>
|
|
</action>
|
|
<action name="actionNew_Stream">
|
|
<property name="icon">
|
|
<iconset resource="ostinato.qrc">
|
|
<normaloff>:/icons/stream_add.png</normaloff>:/icons/stream_add.png</iconset>
|
|
</property>
|
|
<property name="text">
|
|
<string>New Stream</string>
|
|
</property>
|
|
</action>
|
|
<action name="actionDelete_Stream">
|
|
<property name="icon">
|
|
<iconset resource="ostinato.qrc">
|
|
<normaloff>:/icons/stream_delete.png</normaloff>:/icons/stream_delete.png</iconset>
|
|
</property>
|
|
<property name="text">
|
|
<string>Delete Stream</string>
|
|
</property>
|
|
</action>
|
|
<action name="actionEdit_Stream">
|
|
<property name="icon">
|
|
<iconset resource="ostinato.qrc">
|
|
<normaloff>:/icons/stream_edit.png</normaloff>:/icons/stream_edit.png</iconset>
|
|
</property>
|
|
<property name="text">
|
|
<string>Edit Stream</string>
|
|
</property>
|
|
</action>
|
|
<action name="actionExclusive_Control">
|
|
<property name="checkable">
|
|
<bool>true</bool>
|
|
</property>
|
|
<property name="text">
|
|
<string>Exclusive Port Control (EXPERIMENTAL)</string>
|
|
</property>
|
|
</action>
|
|
<action name="actionOpen_Streams">
|
|
<property name="text">
|
|
<string>Open Streams ...</string>
|
|
</property>
|
|
</action>
|
|
<action name="actionSave_Streams">
|
|
<property name="text">
|
|
<string>Save Streams ...</string>
|
|
</property>
|
|
</action>
|
|
<action name="actionPort_Configuration">
|
|
<property name="text">
|
|
<string>Port Configuration ...</string>
|
|
</property>
|
|
</action>
|
|
<action name="actionDuplicate_Stream">
|
|
<property name="icon">
|
|
<iconset resource="ostinato.qrc">
|
|
<normaloff>:/icons/stream_duplicate.png</normaloff>:/icons/stream_duplicate.png</iconset>
|
|
</property>
|
|
<property name="text">
|
|
<string>Duplicate Stream</string>
|
|
</property>
|
|
</action>
|
|
</widget>
|
|
<customwidgets>
|
|
<customwidget>
|
|
<class>DevicesWidget</class>
|
|
<extends>QWidget</extends>
|
|
<header>deviceswidget.h</header>
|
|
<container>1</container>
|
|
</customwidget>
|
|
<customwidget>
|
|
<class>XTreeView</class>
|
|
<extends>QTreeView</extends>
|
|
<header>xtreeview.h</header>
|
|
</customwidget>
|
|
<customwidget>
|
|
<class>XTableView</class>
|
|
<extends>QTableView</extends>
|
|
<header>xtableview.h</header>
|
|
</customwidget>
|
|
</customwidgets>
|
|
<resources>
|
|
<include location="ostinato.qrc"/>
|
|
</resources>
|
|
<connections>
|
|
<connection>
|
|
<sender>radioButton</sender>
|
|
<signal>toggled(bool)</signal>
|
|
<receiver>averagePacketsPerSec</receiver>
|
|
<slot>setEnabled(bool)</slot>
|
|
<hints>
|
|
<hint type="sourcelabel">
|
|
<x>326</x>
|
|
<y>80</y>
|
|
</hint>
|
|
<hint type="destinationlabel">
|
|
<x>454</x>
|
|
<y>79</y>
|
|
</hint>
|
|
</hints>
|
|
</connection>
|
|
<connection>
|
|
<sender>radioButton_2</sender>
|
|
<signal>toggled(bool)</signal>
|
|
<receiver>averageBitsPerSec</receiver>
|
|
<slot>setEnabled(bool)</slot>
|
|
<hints>
|
|
<hint type="sourcelabel">
|
|
<x>523</x>
|
|
<y>80</y>
|
|
</hint>
|
|
<hint type="destinationlabel">
|
|
<x>651</x>
|
|
<y>88</y>
|
|
</hint>
|
|
</hints>
|
|
</connection>
|
|
</connections>
|
|
</ui>
|