<?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>