mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-06-23 10:07:59 +02:00
Qt5 built in qwt (#570)
- qt4->qt5 - in built qt5 6.1.5 because rhel7 is not upto date with qt5, removed findqwt.cmake - made a fix in qwt lib (qwt_plot_layout.h) to work with 5.15 and lower versions for qrect constr. - qt5 forms fixed, qt4 many hard coding forms switched to forms including qtabwidget, scrolls etc, fonts moved to forms - docking option enabled by default, removed option to disable docking feature from "Mode" - added qVersionResolve utility functions to handle compatibility before and after qt5.12 - qtplots (ian's code) takes in gain mode enable to set some settings within the class, with proper gain plot ticks - ensure gain plots have no zooming of z axis in 2d and y axis in 1d - removed placeholder text in qpalette in main window form as its not supportd until 5.12 (so using qt5.9 designer insted of qt5.15 to cope) - tab order Servers: - fixed some error messages that were empty for fail in funcs (mostly minor as if this error, major issues)
This commit is contained in:
@ -1,9 +1,12 @@
|
||||
# SPDX-License-Identifier: LGPL-3.0-or-other
|
||||
# Copyright (C) 2021 Contributors to the SLS Detector Package
|
||||
set(CMAKE_AUTOMOC ON)
|
||||
|
||||
find_package(Qt4 REQUIRED)
|
||||
find_package(Qwt 6.1 REQUIRED)
|
||||
set(CMAKE_AUTOMOC ON)
|
||||
set(CMAKE_AUTORCC ON)
|
||||
|
||||
|
||||
find_package(Qt5 5.9 COMPONENTS Widgets Core Gui REQUIRED)
|
||||
|
||||
find_package(PNG REQUIRED)
|
||||
find_package(ZLIB REQUIRED)
|
||||
|
||||
@ -24,6 +27,7 @@ set(SOURCES
|
||||
src/qTabDeveloper.cpp
|
||||
src/qTabMessages.cpp
|
||||
src/qDacWidget.cpp
|
||||
src/qVersionResolve.cpp
|
||||
)
|
||||
|
||||
set(FORMS
|
||||
@ -41,7 +45,7 @@ set(FORMS
|
||||
forms/form_cloneplot.ui
|
||||
)
|
||||
|
||||
qt4_wrap_ui(FORMS_H ${FORMS})
|
||||
qt5_wrap_ui(FORMS_H ${FORMS})
|
||||
|
||||
set(HEADERS
|
||||
slsDetectorPlotting/include/SlsQt1DPlot.h
|
||||
@ -62,15 +66,16 @@ set(HEADERS
|
||||
include/qTabDeveloper.h
|
||||
include/qTabMessages.h
|
||||
include/qDacWidget.h
|
||||
include/qVersionResolve.h
|
||||
)
|
||||
set(RESOURCES
|
||||
include/icons.qrc
|
||||
)
|
||||
qt4_add_resources(RESOURCES_SRCS ${RESOURCES})
|
||||
qt5_add_resources(RESOURCES_SRCS ${RESOURCES})
|
||||
|
||||
|
||||
add_definitions(
|
||||
-DPRINT_LOG #-DVERBOSE
|
||||
${Qt5Widgets_DEFINITIONS} -DPRINT_LOG #-DVERBOSE
|
||||
)
|
||||
|
||||
add_executable(slsDetectorGui
|
||||
@ -84,23 +89,20 @@ target_include_directories(slsDetectorGui PUBLIC
|
||||
"$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>"
|
||||
"$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/slsDetectorPlotting/include>"
|
||||
"$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>"
|
||||
"$<BUILD_INTERFACE:${QT_INCLUDE_DIR}>"
|
||||
"$<BUILD_INTERFACE:${QT_QTCORE_INCLUDE_DIR}>"
|
||||
"$<BUILD_INTERFACE:${QT_QTGUI_INCLUDE_DIR}>"
|
||||
"$<BUILD_INTERFACE:${QWT_INCLUDE_DIR}>"
|
||||
"$<BUILD_INTERFACE:${QT5Widgets_INCLUDE_DIRS}>"
|
||||
"$<BUILD_INTERFACE:${SLS_INTERNAL_QWT_DIR}/include>"
|
||||
"$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}>"
|
||||
)
|
||||
|
||||
target_link_libraries(slsDetectorGui PUBLIC
|
||||
slsProjectOptions
|
||||
slsDetectorStatic
|
||||
${QT_QTCORE_LIBRARIES}
|
||||
${QT_QTGUI_LIBRARIES}
|
||||
${QWT_LIBRARIES}
|
||||
${SLS_INTERNAL_QWT_DIR}/lib/libqwt.so.6.1.5
|
||||
PNG::PNG
|
||||
ZLIB::ZLIB
|
||||
Qt4::QtOpenGL
|
||||
Qt4::QtSvg
|
||||
Qt5::Widgets
|
||||
Qt5::Gui
|
||||
Qt5::Core
|
||||
expat
|
||||
|
||||
PRIVATE
|
||||
@ -109,6 +111,8 @@ target_link_libraries(slsDetectorGui PUBLIC
|
||||
|
||||
set_target_properties(slsDetectorGui PROPERTIES
|
||||
RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin
|
||||
#Instruct CMake to run moc automatically when needed
|
||||
AUTOMOC ON
|
||||
)
|
||||
if((CMAKE_BUILD_TYPE STREQUAL "Release") AND SLS_LTO_AVAILABLE)
|
||||
set_property(TARGET slsDetectorGui PROPERTY INTERPROCEDURAL_OPTIMIZATION True)
|
||||
|
@ -16,44 +16,17 @@
|
||||
<height>300</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Carlito</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>MainWindow</string>
|
||||
</property>
|
||||
<widget class="QWidget" name="centralwidget">
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<item row="0" column="0">
|
||||
<widget class="QGroupBox" name="boxPlot">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Sans Serif</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>Sample Plot</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
<property name="flat">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="plotLayout">
|
||||
<property name="margin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="spacing">
|
||||
<number>0</number>
|
||||
</property>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="lblCompleteImage">
|
||||
<property name="sizePolicy">
|
||||
@ -218,7 +191,16 @@
|
||||
</size>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_2">
|
||||
<property name="margin">
|
||||
<property name="leftMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="spacing">
|
||||
@ -376,6 +358,48 @@
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0" colspan="3">
|
||||
<widget class="QGroupBox" name="boxPlot">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Carlito</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>Sample Plot</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
<property name="flat">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="plotLayout">
|
||||
<property name="leftMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="spacing">
|
||||
<number>0</number>
|
||||
</property>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QMenuBar" name="menubar">
|
||||
@ -384,7 +408,7 @@
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>376</width>
|
||||
<height>27</height>
|
||||
<height>17</height>
|
||||
</rect>
|
||||
</property>
|
||||
<widget class="QMenu" name="menuSave">
|
||||
|
@ -7,7 +7,7 @@
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>300</width>
|
||||
<height>30</height>
|
||||
<height>28</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="sizePolicy">
|
||||
@ -19,25 +19,102 @@
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>300</width>
|
||||
<height>30</height>
|
||||
<height>28</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>300</width>
|
||||
<height>30</height>
|
||||
<height>28</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Cantarell</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Form</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<property name="leftMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="verticalSpacing">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="margin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="lblDac">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>100</width>
|
||||
<height>25</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>90</width>
|
||||
<height>25</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Cantarell</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>vref_comp_fe:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="3">
|
||||
<widget class="QLabel" name="lblDacmV">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Fixed" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>70</width>
|
||||
<height>25</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>70</width>
|
||||
<height>25</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Cantarell</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>2999 mV</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QDoubleSpinBox" name="spinDac">
|
||||
<property name="minimumSize">
|
||||
@ -52,6 +129,18 @@
|
||||
<height>25</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Cantarell</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string>Set dac in dac units</string>
|
||||
</property>
|
||||
<property name="buttonSymbols">
|
||||
<enum>QAbstractSpinBox::PlusMinus</enum>
|
||||
</property>
|
||||
<property name="keyboardTracking">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
@ -61,57 +150,26 @@
|
||||
<property name="maximum">
|
||||
<double>10000.000000000000000</double>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="lblDac">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>120</width>
|
||||
<height>25</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>120</width>
|
||||
<height>25</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>TextLabel</string>
|
||||
<property name="value">
|
||||
<double>2799.000000000000000</double>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="2">
|
||||
<widget class="QLabel" name="lblDacmV">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Fixed" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
<spacer name="horizontalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<property name="sizeType">
|
||||
<enum>QSizePolicy::Fixed</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>60</width>
|
||||
<height>25</height>
|
||||
<width>5</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>60</width>
|
||||
<height>25</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>---mV</string>
|
||||
</property>
|
||||
</widget>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
|
@ -10,7 +10,7 @@
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>800</width>
|
||||
<height>906</height>
|
||||
<height>882</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="sizePolicy">
|
||||
@ -139,7 +139,8 @@
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<pointsize>9</pointsize>
|
||||
<family>Cantarell</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
@ -149,6 +150,9 @@
|
||||
<iconset resource="../include/icons.qrc">
|
||||
<normaloff>:/icons/images/mountain.png</normaloff>:/icons/images/mountain.png</iconset>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="inputMethodHints">
|
||||
<set>Qt::ImhNone</set>
|
||||
</property>
|
||||
@ -171,84 +175,616 @@
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>0</width>
|
||||
<height>395</height>
|
||||
<height>400</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>524287</width>
|
||||
<height>395</height>
|
||||
</size>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="layoutTabs"/>
|
||||
</widget>
|
||||
<widget class="QMenuBar" name="menubar">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>800</width>
|
||||
<height>25</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="MinimumExpanding" vsizetype="MinimumExpanding">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>0</width>
|
||||
<height>25</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>16777215</width>
|
||||
<height>25</height>
|
||||
<height>400</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<pointsize>9</pointsize>
|
||||
<family>Cantarell</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::StrongFocus</enum>
|
||||
</property>
|
||||
<property name="defaultUp">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="nativeMenuBar">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<widget class="QMenu" name="menuHelp">
|
||||
<property name="title">
|
||||
<string>&Help</string>
|
||||
</property>
|
||||
<addaction name="actionAbout"/>
|
||||
</widget>
|
||||
<widget class="QMenu" name="menuUtilities">
|
||||
<property name="title">
|
||||
<string>Utilities</string>
|
||||
</property>
|
||||
<addaction name="actionLoadConfiguration"/>
|
||||
<addaction name="actionLoadTrimbits"/>
|
||||
<addaction name="actionSaveTrimbits"/>
|
||||
<addaction name="actionLoadParameters"/>
|
||||
</widget>
|
||||
<widget class="QMenu" name="menuModes">
|
||||
<property name="title">
|
||||
<string>Modes</string>
|
||||
</property>
|
||||
<addaction name="actionDebug"/>
|
||||
<addaction name="actionExpert"/>
|
||||
<addaction name="actionDockable"/>
|
||||
</widget>
|
||||
<addaction name="menuUtilities"/>
|
||||
<addaction name="menuModes"/>
|
||||
<addaction name="menuHelp"/>
|
||||
<layout class="QGridLayout" name="layoutTabs">
|
||||
<item row="0" column="0">
|
||||
<widget class="QTabWidget" name="tabs">
|
||||
<property name="palette">
|
||||
<palette>
|
||||
<active>
|
||||
<colorrole role="WindowText">
|
||||
<brush brushstyle="SolidPattern">
|
||||
<color alpha="255">
|
||||
<red>0</red>
|
||||
<green>0</green>
|
||||
<blue>0</blue>
|
||||
</color>
|
||||
</brush>
|
||||
</colorrole>
|
||||
<colorrole role="Button">
|
||||
<brush brushstyle="SolidPattern">
|
||||
<color alpha="255">
|
||||
<red>255</red>
|
||||
<green>255</green>
|
||||
<blue>255</blue>
|
||||
</color>
|
||||
</brush>
|
||||
</colorrole>
|
||||
<colorrole role="Text">
|
||||
<brush brushstyle="SolidPattern">
|
||||
<color alpha="255">
|
||||
<red>0</red>
|
||||
<green>0</green>
|
||||
<blue>0</blue>
|
||||
</color>
|
||||
</brush>
|
||||
</colorrole>
|
||||
<colorrole role="ButtonText">
|
||||
<brush brushstyle="SolidPattern">
|
||||
<color alpha="255">
|
||||
<red>0</red>
|
||||
<green>0</green>
|
||||
<blue>0</blue>
|
||||
</color>
|
||||
</brush>
|
||||
</colorrole>
|
||||
<colorrole role="Base">
|
||||
<brush brushstyle="SolidPattern">
|
||||
<color alpha="255">
|
||||
<red>255</red>
|
||||
<green>255</green>
|
||||
<blue>255</blue>
|
||||
</color>
|
||||
</brush>
|
||||
</colorrole>
|
||||
<colorrole role="Window">
|
||||
<brush brushstyle="SolidPattern">
|
||||
<color alpha="255">
|
||||
<red>255</red>
|
||||
<green>255</green>
|
||||
<blue>255</blue>
|
||||
</color>
|
||||
</brush>
|
||||
</colorrole>
|
||||
</active>
|
||||
<inactive>
|
||||
<colorrole role="WindowText">
|
||||
<brush brushstyle="SolidPattern">
|
||||
<color alpha="255">
|
||||
<red>0</red>
|
||||
<green>0</green>
|
||||
<blue>0</blue>
|
||||
</color>
|
||||
</brush>
|
||||
</colorrole>
|
||||
<colorrole role="Button">
|
||||
<brush brushstyle="SolidPattern">
|
||||
<color alpha="255">
|
||||
<red>255</red>
|
||||
<green>255</green>
|
||||
<blue>255</blue>
|
||||
</color>
|
||||
</brush>
|
||||
</colorrole>
|
||||
<colorrole role="Text">
|
||||
<brush brushstyle="SolidPattern">
|
||||
<color alpha="255">
|
||||
<red>0</red>
|
||||
<green>0</green>
|
||||
<blue>0</blue>
|
||||
</color>
|
||||
</brush>
|
||||
</colorrole>
|
||||
<colorrole role="ButtonText">
|
||||
<brush brushstyle="SolidPattern">
|
||||
<color alpha="255">
|
||||
<red>0</red>
|
||||
<green>0</green>
|
||||
<blue>0</blue>
|
||||
</color>
|
||||
</brush>
|
||||
</colorrole>
|
||||
<colorrole role="Base">
|
||||
<brush brushstyle="SolidPattern">
|
||||
<color alpha="255">
|
||||
<red>255</red>
|
||||
<green>255</green>
|
||||
<blue>255</blue>
|
||||
</color>
|
||||
</brush>
|
||||
</colorrole>
|
||||
<colorrole role="Window">
|
||||
<brush brushstyle="SolidPattern">
|
||||
<color alpha="255">
|
||||
<red>255</red>
|
||||
<green>255</green>
|
||||
<blue>255</blue>
|
||||
</color>
|
||||
</brush>
|
||||
</colorrole>
|
||||
</inactive>
|
||||
<disabled>
|
||||
<colorrole role="WindowText">
|
||||
<brush brushstyle="SolidPattern">
|
||||
<color alpha="255">
|
||||
<red>185</red>
|
||||
<green>185</green>
|
||||
<blue>185</blue>
|
||||
</color>
|
||||
</brush>
|
||||
</colorrole>
|
||||
<colorrole role="Button">
|
||||
<brush brushstyle="SolidPattern">
|
||||
<color alpha="255">
|
||||
<red>255</red>
|
||||
<green>255</green>
|
||||
<blue>255</blue>
|
||||
</color>
|
||||
</brush>
|
||||
</colorrole>
|
||||
<colorrole role="Text">
|
||||
<brush brushstyle="SolidPattern">
|
||||
<color alpha="255">
|
||||
<red>185</red>
|
||||
<green>185</green>
|
||||
<blue>185</blue>
|
||||
</color>
|
||||
</brush>
|
||||
</colorrole>
|
||||
<colorrole role="ButtonText">
|
||||
<brush brushstyle="SolidPattern">
|
||||
<color alpha="255">
|
||||
<red>185</red>
|
||||
<green>185</green>
|
||||
<blue>185</blue>
|
||||
</color>
|
||||
</brush>
|
||||
</colorrole>
|
||||
<colorrole role="Base">
|
||||
<brush brushstyle="SolidPattern">
|
||||
<color alpha="255">
|
||||
<red>255</red>
|
||||
<green>255</green>
|
||||
<blue>255</blue>
|
||||
</color>
|
||||
</brush>
|
||||
</colorrole>
|
||||
<colorrole role="Window">
|
||||
<brush brushstyle="SolidPattern">
|
||||
<color alpha="255">
|
||||
<red>255</red>
|
||||
<green>255</green>
|
||||
<blue>255</blue>
|
||||
</color>
|
||||
</brush>
|
||||
</colorrole>
|
||||
</disabled>
|
||||
</palette>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Cantarell</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::NoFocus</enum>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">background-color: rgb(255, 255, 255);</string>
|
||||
</property>
|
||||
<property name="currentIndex">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<widget class="QWidget" name="tMeasurement">
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Cantarell</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<attribute name="title">
|
||||
<string>Measurement</string>
|
||||
</attribute>
|
||||
<layout class="QGridLayout" name="gridLayout_2">
|
||||
<property name="leftMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="spacing">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item row="0" column="0">
|
||||
<widget class="QScrollArea" name="scrollMeasurement">
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Cantarell</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::NoFocus</enum>
|
||||
</property>
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::NoFrame</enum>
|
||||
</property>
|
||||
<property name="widgetResizable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<widget class="QWidget" name="scrollAreaWidgetContents">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>778</width>
|
||||
<height>351</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Cantarell</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
</widget>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QWidget" name="tSettings">
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Cantarell</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<attribute name="title">
|
||||
<string>Settings</string>
|
||||
</attribute>
|
||||
<layout class="QGridLayout" name="gridLayout_3">
|
||||
<item row="0" column="0">
|
||||
<widget class="QScrollArea" name="scrollSettings">
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Cantarell</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::NoFocus</enum>
|
||||
</property>
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::NoFrame</enum>
|
||||
</property>
|
||||
<property name="widgetResizable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<widget class="QWidget" name="scrollAreaWidgetContents_2">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>760</width>
|
||||
<height>333</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Cantarell</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
</widget>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QWidget" name="tDataOutput">
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Cantarell</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<attribute name="title">
|
||||
<string>Data Output</string>
|
||||
</attribute>
|
||||
<layout class="QGridLayout" name="gridLayout_4">
|
||||
<item row="0" column="0">
|
||||
<widget class="QScrollArea" name="scrollDataOutput">
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Cantarell</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::NoFocus</enum>
|
||||
</property>
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::NoFrame</enum>
|
||||
</property>
|
||||
<property name="widgetResizable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<widget class="QWidget" name="scrollAreaWidgetContents_3">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>760</width>
|
||||
<height>333</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Cantarell</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
</widget>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QWidget" name="tPlot">
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Cantarell</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<attribute name="title">
|
||||
<string>Plot</string>
|
||||
</attribute>
|
||||
<layout class="QGridLayout" name="gridLayout_6">
|
||||
<item row="0" column="0">
|
||||
<widget class="QScrollArea" name="scrollPlot">
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Cantarell</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::NoFocus</enum>
|
||||
</property>
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::NoFrame</enum>
|
||||
</property>
|
||||
<property name="widgetResizable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<widget class="QWidget" name="scrollAreaWidgetContents_4">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>760</width>
|
||||
<height>333</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Cantarell</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
</widget>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QWidget" name="tAdvanced">
|
||||
<property name="enabled">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Cantarell</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<attribute name="title">
|
||||
<string>Advanced</string>
|
||||
</attribute>
|
||||
<layout class="QGridLayout" name="gridLayout_8">
|
||||
<item row="0" column="0">
|
||||
<widget class="QScrollArea" name="scrollAdvanced">
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Cantarell</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::NoFocus</enum>
|
||||
</property>
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::NoFrame</enum>
|
||||
</property>
|
||||
<property name="widgetResizable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<widget class="QWidget" name="scrollAreaWidgetContents_5">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>760</width>
|
||||
<height>333</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Cantarell</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
</widget>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QWidget" name="tDebugging">
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Cantarell</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<attribute name="title">
|
||||
<string>Debugging</string>
|
||||
</attribute>
|
||||
<layout class="QGridLayout" name="gridLayout_10">
|
||||
<item row="0" column="0">
|
||||
<widget class="QScrollArea" name="scrollDebugging">
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Cantarell</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::NoFocus</enum>
|
||||
</property>
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::NoFrame</enum>
|
||||
</property>
|
||||
<property name="widgetResizable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<widget class="QWidget" name="scrollAreaWidgetContents_6">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>760</width>
|
||||
<height>333</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Cantarell</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
</widget>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QWidget" name="tDeveloper">
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Cantarell</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<attribute name="title">
|
||||
<string>Developer</string>
|
||||
</attribute>
|
||||
<layout class="QGridLayout" name="gridLayout_12">
|
||||
<item row="0" column="0">
|
||||
<widget class="QScrollArea" name="scrollDeveloper">
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Cantarell</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::NoFocus</enum>
|
||||
</property>
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::NoFrame</enum>
|
||||
</property>
|
||||
<property name="widgetResizable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<widget class="QWidget" name="scrollAreaWidgetContents_7">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>760</width>
|
||||
<height>333</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Cantarell</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
</widget>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QWidget" name="tTerminal">
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Cantarell</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<attribute name="title">
|
||||
<string>Terminal</string>
|
||||
</attribute>
|
||||
<layout class="QGridLayout" name="gridLayout_14">
|
||||
<item row="0" column="0">
|
||||
<widget class="QScrollArea" name="scrollTerminal">
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Cantarell</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::NoFocus</enum>
|
||||
</property>
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::NoFrame</enum>
|
||||
</property>
|
||||
<property name="widgetResizable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<widget class="QWidget" name="scrollAreaWidgetContents_8">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>760</width>
|
||||
<height>333</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Cantarell</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
</widget>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QDockWidget" name="dockWidgetPlot">
|
||||
<property name="enabled">
|
||||
@ -262,8 +798,8 @@
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>36</width>
|
||||
<height>425</height>
|
||||
<width>50</width>
|
||||
<height>54</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
@ -274,24 +810,15 @@
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Sans Serif</family>
|
||||
<pointsize>11</pointsize>
|
||||
<family>Cantarell</family>
|
||||
<pointsize>10</pointsize>
|
||||
<weight>50</weight>
|
||||
<bold>false</bold>
|
||||
</font>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
||||
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
|
||||
p, li { white-space: pre-wrap; }
|
||||
</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;">
|
||||
<table border="0" style="-qt-table-type: root; margin-top:4px; margin-bottom:4px; margin-left:4px; margin-right:4px;">
|
||||
<tr>
|
||||
<td style="border: none;">
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#00007f;">Left Click :zoom in</span></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#00007f;">Righ</span><span style=" color:#00007f;">t Click </span><span style=" color:#00007f;">: zoom out by 1</span></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#00007f;">Middle Click : panning</span></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#00007f;">Ctrl+Right Click : zoom out to full size</span></p></td></tr></table></body></html></string>
|
||||
<string><html><head/><body>
|
||||
<span style=" font-family:'Sans Serif'; font-size:9pt; color:#00007f;">Left Click :zoom in</span><br><span style=" font-family:'Sans Serif'; font-size:9pt; color:#00007f;">Right Click : zoom out by 1</span><br><span style=" font-family:'Sans Serif'; font-size:9pt; color:#00007f;">Middle Click : panning</span><br><span style=" font-family:'Sans Serif'; font-size:9pt; color:#00007f;">Ctrl+Right Click : zoom out to full size</span></body></html></string>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string/>
|
||||
@ -300,7 +827,7 @@ p, li { white-space: pre-wrap; }
|
||||
<enum>Qt::LeftToRight</enum>
|
||||
</property>
|
||||
<property name="features">
|
||||
<set>QDockWidget::NoDockWidgetFeatures</set>
|
||||
<set>QDockWidget::DockWidgetFloatable</set>
|
||||
</property>
|
||||
<property name="allowedAreas">
|
||||
<set>Qt::BottomDockWidgetArea</set>
|
||||
@ -321,7 +848,7 @@ p, li { white-space: pre-wrap; }
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>0</width>
|
||||
<height>400</height>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
@ -369,27 +896,125 @@ p, li { white-space: pre-wrap; }
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<pointsize>9</pointsize>
|
||||
<family>Cantarell</family>
|
||||
<pointsize>10</pointsize>
|
||||
<weight>50</weight>
|
||||
<bold>false</bold>
|
||||
</font>
|
||||
</property>
|
||||
</widget>
|
||||
</widget>
|
||||
<widget class="QMenuBar" name="menu">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>800</width>
|
||||
<height>22</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>50</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Cantarell</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<widget class="QMenu" name="menuUtilities">
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Cantarell</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>Utilities</string>
|
||||
</property>
|
||||
<addaction name="actionLoadConfiguration"/>
|
||||
<addaction name="actionLoadTrimbits"/>
|
||||
<addaction name="actionSaveTrimbits"/>
|
||||
<addaction name="actionLoadParameters"/>
|
||||
</widget>
|
||||
<widget class="QMenu" name="menuModes">
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Cantarell</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>Modes</string>
|
||||
</property>
|
||||
<addaction name="actionDebug"/>
|
||||
<addaction name="actionExpert"/>
|
||||
</widget>
|
||||
<widget class="QMenu" name="menuHelp">
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Cantarell</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>Help</string>
|
||||
</property>
|
||||
<addaction name="actionAbout"/>
|
||||
</widget>
|
||||
<addaction name="menuUtilities"/>
|
||||
<addaction name="menuModes"/>
|
||||
<addaction name="menuHelp"/>
|
||||
</widget>
|
||||
<action name="actionLoadConfiguration">
|
||||
<property name="text">
|
||||
<string>Load Configuration</string>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Cantarell</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionLoadTrimbits">
|
||||
<property name="enabled">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Load Trimbits</string>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Cantarell</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionSaveTrimbits">
|
||||
<property name="text">
|
||||
<string>Save Trimbits</string>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Cantarell</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionLoadParameters">
|
||||
<property name="text">
|
||||
<string>Load Parameters</string>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Cantarell</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionDebug">
|
||||
<property name="checkable">
|
||||
@ -398,6 +1023,12 @@ p, li { white-space: pre-wrap; }
|
||||
<property name="text">
|
||||
<string>Debug</string>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Cantarell</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionExpert">
|
||||
<property name="checkable">
|
||||
@ -406,23 +1037,36 @@ p, li { white-space: pre-wrap; }
|
||||
<property name="text">
|
||||
<string>Expert</string>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Cantarell</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionDockable">
|
||||
<property name="checkable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Dockable Windows</string>
|
||||
<string>Dockable</string>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Cantarell</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionAbout">
|
||||
<property name="text">
|
||||
<string>&About</string>
|
||||
<string>About</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionSaveTrimbits">
|
||||
<property name="text">
|
||||
<string>Save Trimbits</string>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Cantarell</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
</action>
|
||||
</widget>
|
||||
|
@ -16,6 +16,12 @@
|
||||
<height>425</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Cantarell</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Form</string>
|
||||
</property>
|
||||
@ -77,6 +83,15 @@
|
||||
</disabled>
|
||||
</palette>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Cantarell</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string><html><head/><body><p>ROI enabled at Receiver level (affects only file write)</p><p>#rx_roi#</p></body></html></string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Rx Roi Enabled</string>
|
||||
</property>
|
||||
@ -95,8 +110,10 @@
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Sans Serif</family>
|
||||
<family>Cantarell</family>
|
||||
<pointsize>10</pointsize>
|
||||
<weight>50</weight>
|
||||
<bold>false</bold>
|
||||
</font>
|
||||
</property>
|
||||
<property name="title">
|
||||
@ -109,7 +126,16 @@
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="plotLayout">
|
||||
<property name="margin">
|
||||
<property name="leftMargin">
|
||||
<number>9</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>9</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>9</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>9</number>
|
||||
</property>
|
||||
<property name="spacing">
|
||||
@ -138,8 +164,26 @@
|
||||
<height>16</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Cantarell</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string><html><head/><body><p>Data Statistics</p></body></html></string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_2">
|
||||
<property name="margin">
|
||||
<property name="leftMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="spacing">
|
||||
@ -165,6 +209,12 @@
|
||||
<height>16777215</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Cantarell</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Max: </string>
|
||||
</property>
|
||||
@ -181,6 +231,12 @@
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Cantarell</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>-</string>
|
||||
</property>
|
||||
@ -219,6 +275,12 @@
|
||||
<height>16777215</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Cantarell</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Min: </string>
|
||||
</property>
|
||||
@ -235,6 +297,12 @@
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Cantarell</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>-</string>
|
||||
</property>
|
||||
@ -248,6 +316,12 @@
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Cantarell</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>-</string>
|
||||
</property>
|
||||
@ -286,6 +360,12 @@
|
||||
<height>16777215</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Cantarell</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Sum: </string>
|
||||
</property>
|
||||
@ -367,6 +447,15 @@
|
||||
</disabled>
|
||||
</palette>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Cantarell</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string><html><head/><body><p>If sub images have missing packets</p></body></html></string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Complete Image</string>
|
||||
</property>
|
||||
@ -432,6 +521,14 @@
|
||||
</disabled>
|
||||
</palette>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string><html><head/><body><p>If sub images have missing packets</p></body></html></string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Missing Packets</string>
|
||||
</property>
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -6,8 +6,8 @@
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>775</width>
|
||||
<height>345</height>
|
||||
<width>770</width>
|
||||
<height>364</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="sizePolicy">
|
||||
@ -24,10 +24,16 @@
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>775</width>
|
||||
<height>365</height>
|
||||
<width>770</width>
|
||||
<height>370</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Cantarell</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Form</string>
|
||||
</property>
|
||||
@ -37,6 +43,12 @@
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Cantarell</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>File</string>
|
||||
</property>
|
||||
@ -55,6 +67,18 @@
|
||||
<height>25</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>105</width>
|
||||
<height>25</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Cantarell</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string><html><head/><body><p>The file path can be different depending on the Module chosen.</p></body></html></string>
|
||||
</property>
|
||||
@ -111,8 +135,14 @@
|
||||
</disabled>
|
||||
</palette>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Cantarell</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string><html><head/><body><p>Name of file. Can be modified in Measurement tab.<br/>#fname# <br/></p></body></html></string>
|
||||
<string><html><head/><body><p>Name of data file in receiver. Can be modified in Measurement tab.<br/>#fname# <br/></p></body></html></string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Name Prefix: </string>
|
||||
@ -127,14 +157,20 @@
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>16777215</width>
|
||||
<height>35</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Cantarell</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string><nobr>
|
||||
Directory where one saves the data.
|
||||
</nobr><br>
|
||||
#outdir#
|
||||
<br>
|
||||
Disabled if receiver pc is not same as client pc.
|
||||
</string>
|
||||
<string><html><head/><body><p>Directory where one saves the data in receiver. <br/>#fpath# <br/><br/>Disabled if receiver pc is not same as client pc. </p></body></html></string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Browse</string>
|
||||
@ -196,8 +232,14 @@ Disabled if receiver pc is not same as client pc.
|
||||
</disabled>
|
||||
</palette>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Cantarell</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string><html><head/><body><p>File Format<br/>#fileformat# <br/></p></body></html></string>
|
||||
<string><html><head/><body><p>File Format of data file in receiver<br/>#fformat# <br/></p></body></html></string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Format:</string>
|
||||
@ -218,8 +260,20 @@ Disabled if receiver pc is not same as client pc.
|
||||
<height>25</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>105</width>
|
||||
<height>25</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Cantarell</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string><html><head/><body><p>File Format<br/>#fileformat# <br/></p></body></html></string>
|
||||
<string><html><head/><body><p>File Format of data file in receiver<br/>#fformat# <br/></p></body></html></string>
|
||||
</property>
|
||||
<item>
|
||||
<property name="text">
|
||||
@ -284,13 +338,14 @@ Disabled if receiver pc is not same as client pc.
|
||||
</disabled>
|
||||
</palette>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Cantarell</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string><nobr>
|
||||
Directory where one saves the data.
|
||||
</nobr><br>
|
||||
#outdir#
|
||||
<br>
|
||||
</string>
|
||||
<string><html><head/><body><p>Directory where one saves the data in receiver. <br/>#fpath# <br/></p></body></html></string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Path:</string>
|
||||
@ -314,9 +369,15 @@ Directory where one saves the data.
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>16777215</width>
|
||||
<height>16777215</height>
|
||||
<height>28</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Cantarell</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::NoFocus</enum>
|
||||
</property>
|
||||
@ -348,9 +409,14 @@ Directory where one saves the data.
|
||||
<height>16777215</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Cantarell</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string>Overwrite Enable
|
||||
#overwrite#</string>
|
||||
<string><html><head/><body><p>Overwrite enable of data file in receiver</p><p> #foverwrite#</p></body></html></string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Overwrite</string>
|
||||
@ -397,16 +463,23 @@ Directory where one saves the data.
|
||||
<height>25</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>16777215</width>
|
||||
<height>25</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Cantarell</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::StrongFocus</enum>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string><nobr>
|
||||
Directory where one saves the data.
|
||||
</nobr><br>
|
||||
#outdir#
|
||||
<br>
|
||||
</string>
|
||||
<string><html><head/><body><p>Directory where one saves the data in receiver. <br/>#fpath# <br/></p></body></html></string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
@ -431,6 +504,12 @@ Directory where one saves the data.
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QGroupBox" name="boxCorrection_2">
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Cantarell</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>Options</string>
|
||||
</property>
|
||||
@ -448,6 +527,15 @@ Directory where one saves the data.
|
||||
<height>16777215</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Cantarell</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string><html><head/><body><p>Speed of Detector readout</p><p>#speed#</p></body></html></string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Clock Divider:</string>
|
||||
</property>
|
||||
@ -483,9 +571,18 @@ Directory where one saves the data.
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>200</width>
|
||||
<height>16777215</height>
|
||||
<height>25</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Cantarell</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string><html><head/><body><p>Speed of Detector readout</p><p>#speed#</p></body></html></string>
|
||||
</property>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Full Speed</string>
|
||||
@ -521,6 +618,25 @@ Directory where one saves the data.
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="4" column="0">
|
||||
<widget class="QCheckBox" name="chkTenGiga">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Cantarell</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string><html><head/><body><p>Enable 10GbE</p><p>#tengiga#</p></body></html></string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>10GbE</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<item>
|
||||
@ -528,6 +644,15 @@ Directory where one saves the data.
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Cantarell</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string><html><head/><body><p>Enable Parallel readout</p><p>#parallel#</p></body></html></string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Parallel Readout</string>
|
||||
</property>
|
||||
@ -535,23 +660,6 @@ Directory where one saves the data.
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="4" column="0">
|
||||
<widget class="QCheckBox" name="chkTenGiga">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string><nobr>
|
||||
Compression using Root. Available only for Gotthard in Expert Mode.
|
||||
</nobr><br><nobr>
|
||||
#r_compression#
|
||||
</nobr></string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>10GbE</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_3">
|
||||
<item>
|
||||
@ -559,6 +667,15 @@ Compression using Root. Available only for Gotthard in Expert Mode.
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Cantarell</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string><html><head/><body><p>Enable Rate Correction</p><p>#ratecorr#</p></body></html></string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Rate:</string>
|
||||
</property>
|
||||
@ -569,6 +686,15 @@ Compression using Root. Available only for Gotthard in Expert Mode.
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Cantarell</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string><html><head/><body><p>Default Dead Time for Rate Correction</p><p>#ratecorr#</p></body></html></string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Default Dead Time</string>
|
||||
</property>
|
||||
@ -584,7 +710,7 @@ Compression using Root. Available only for Gotthard in Expert Mode.
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>10</width>
|
||||
<width>20</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
@ -595,6 +721,15 @@ Compression using Root. Available only for Gotthard in Expert Mode.
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Cantarell</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string><html><head/><body><p>Custom Dead Time for Rate Correction</p><p>#ratecorr#</p></body></html></string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Custom Dead Time:</string>
|
||||
</property>
|
||||
@ -617,6 +752,21 @@ Compression using Root. Available only for Gotthard in Expert Mode.
|
||||
<height>25</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>16777215</width>
|
||||
<height>25</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Cantarell</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string><html><head/><body><p>Custom Dead Time for Rate Correction</p><p>#ratecorr#</p></body></html></string>
|
||||
</property>
|
||||
<property name="keyboardTracking">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
@ -652,6 +802,19 @@ Compression using Root. Available only for Gotthard in Expert Mode.
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="5" column="0">
|
||||
<spacer name="verticalSpacer_2">
|
||||
<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>
|
||||
</item>
|
||||
@ -663,6 +826,13 @@ Compression using Root. Available only for Gotthard in Expert Mode.
|
||||
<tabstop>btnOutputBrowse</tabstop>
|
||||
<tabstop>comboFileFormat</tabstop>
|
||||
<tabstop>chkOverwriteEnable</tabstop>
|
||||
<tabstop>chkParallel</tabstop>
|
||||
<tabstop>comboClkDivider</tabstop>
|
||||
<tabstop>chkRate</tabstop>
|
||||
<tabstop>radioDefaultDeadtime</tabstop>
|
||||
<tabstop>radioCustomDeadtime</tabstop>
|
||||
<tabstop>spinCustomDeadTime</tabstop>
|
||||
<tabstop>chkTenGiga</tabstop>
|
||||
</tabstops>
|
||||
<resources>
|
||||
<include location="../include/icons.qrc"/>
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -6,8 +6,8 @@
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>775</width>
|
||||
<height>345</height>
|
||||
<width>740</width>
|
||||
<height>320</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="sizePolicy">
|
||||
@ -24,40 +24,140 @@
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>775</width>
|
||||
<height>400</height>
|
||||
<width>740</width>
|
||||
<height>330</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Cantarell</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Form</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<item row="1" column="0" colspan="3">
|
||||
<property name="leftMargin">
|
||||
<number>9</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>2</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>2</number>
|
||||
</property>
|
||||
<property name="verticalSpacing">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item row="1" column="0" colspan="5">
|
||||
<widget class="QTabWidget" name="tabWidget">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
||||
<horstretch>5</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>16777215</width>
|
||||
<height>330</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Cantarell</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="currentIndex">
|
||||
<number>1</number>
|
||||
<number>0</number>
|
||||
</property>
|
||||
<widget class="QWidget" name="tabDAC">
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>16777215</width>
|
||||
<height>330</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Cantarell</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<attribute name="title">
|
||||
<string>DACs</string>
|
||||
</attribute>
|
||||
<layout class="QGridLayout" name="gridlayoutDac"/>
|
||||
<layout class="QGridLayout" name="gridlayoutDac">
|
||||
<property name="topMargin">
|
||||
<number>2</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>2</number>
|
||||
</property>
|
||||
<property name="horizontalSpacing">
|
||||
<number>10</number>
|
||||
</property>
|
||||
<property name="verticalSpacing">
|
||||
<number>2</number>
|
||||
</property>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QWidget" name="tabADC">
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Cantarell</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<attribute name="title">
|
||||
<string>ADCs</string>
|
||||
</attribute>
|
||||
<layout class="QGridLayout" name="gridlayoutAdc"/>
|
||||
<layout class="QGridLayout" name="gridlayoutAdc">
|
||||
<property name="horizontalSpacing">
|
||||
<number>10</number>
|
||||
</property>
|
||||
</layout>
|
||||
</widget>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<item row="0" column="0" colspan="2">
|
||||
<spacer name="horizontalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeType">
|
||||
<enum>QSizePolicy::Fixed</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>350</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="0" column="2">
|
||||
<widget class="QLabel" name="lblReadout">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Fixed" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Cantarell</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Readout: </string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="3" colspan="2">
|
||||
<widget class="QComboBox" name="comboDetector">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
|
||||
@ -68,42 +168,32 @@
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>0</width>
|
||||
<height>28</height>
|
||||
<height>25</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="2">
|
||||
<spacer name="horizontalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeType">
|
||||
<enum>QSizePolicy::Fixed</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>500</width>
|
||||
<height>20</height>
|
||||
<width>16777215</width>
|
||||
<height>25</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="lblReadout">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Fixed" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Cantarell</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Readout: </string>
|
||||
<property name="toolTip">
|
||||
<string>Select readout to read dac or adc info</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<tabstops>
|
||||
<tabstop>comboDetector</tabstop>
|
||||
<tabstop>tabWidget</tabstop>
|
||||
</tabstops>
|
||||
<resources>
|
||||
<include location="../include/icons.qrc"/>
|
||||
</resources>
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -28,12 +28,24 @@
|
||||
<height>345</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Cantarell</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Form</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<item row="1" column="1" colspan="3">
|
||||
<widget class="QTextEdit" name="dispLog">
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Cantarell</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::NoFocus</enum>
|
||||
</property>
|
||||
@ -47,11 +59,23 @@
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>0</width>
|
||||
<height>25</height>
|
||||
<height>26</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>16777215</width>
|
||||
<height>28</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Cantarell</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string><html><head/><body><p>Up arrow key picks up the previous command.</p><p>Down arrow key clears the current command.</p><p>Return or Enter key executes the current command</p></body></html></string>
|
||||
<string><html><head/><body><p><img src=":/icons/images/upload.png"/> = previous command</p><p><img src=":/icons/images/download.png"/> = clears current command</p><p>[Return or Enter key] = executes current command</p></body></html></string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
@ -63,12 +87,27 @@
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>0</width>
|
||||
<height>35</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>16777215</width>
|
||||
<height>35</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Cantarell</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string>Clear log</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Clear</string>
|
||||
</property>
|
||||
@ -86,12 +125,27 @@
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>0</width>
|
||||
<height>35</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>16777215</width>
|
||||
<height>35</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Cantarell</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string>Save log</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Save</string>
|
||||
</property>
|
||||
@ -109,6 +163,12 @@
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Cantarell</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Command:</string>
|
||||
</property>
|
||||
@ -130,9 +190,9 @@
|
||||
</layout>
|
||||
</widget>
|
||||
<tabstops>
|
||||
<tabstop>dispCommand</tabstop>
|
||||
<tabstop>btnClear</tabstop>
|
||||
<tabstop>btnSave</tabstop>
|
||||
<tabstop>btnClear</tabstop>
|
||||
<tabstop>dispCommand</tabstop>
|
||||
</tabstops>
|
||||
<resources>
|
||||
<include location="../include/icons.qrc"/>
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -41,7 +41,10 @@ class qDefs : public QWidget {
|
||||
*/
|
||||
qDefs(){};
|
||||
|
||||
static const int Q_FONT_SIZE = 9;
|
||||
static QFont GetDefaultFont() {
|
||||
return QFont("Cantarell", 10, QFont::Normal);
|
||||
}
|
||||
|
||||
static const int DATA_GAIN_PLOT_RATIO = 5;
|
||||
static const int MIN_HEIGHT_GAIN_PLOT_1D = 75;
|
||||
static const int GUI_ZMQ_RCV_HWM = 2;
|
||||
|
@ -4,9 +4,6 @@
|
||||
#include "qDefs.h"
|
||||
#include "sls/Detector.h"
|
||||
#include "ui_form_detectormain.h"
|
||||
#include <QTabWidget>
|
||||
|
||||
class QScrollArea;
|
||||
class QResizeEvent;
|
||||
|
||||
namespace sls {
|
||||
@ -21,15 +18,6 @@ class qTabDebugging;
|
||||
class qTabDeveloper;
|
||||
class qTabMessages;
|
||||
|
||||
/** To Over-ride the QTabWidget class to get the tabBar protected
|
||||
* methodTabWidget */
|
||||
class MyTabWidget : public QTabWidget {
|
||||
public:
|
||||
MyTabWidget(QWidget *parent = 0) { setParent(parent); }
|
||||
/** Overridden protected method from QTabWidget */
|
||||
QTabBar *tabBar() { return QTabWidget::tabBar(); }
|
||||
};
|
||||
|
||||
class qDetectorMain : public QMainWindow, private Ui::DetectorMainObject {
|
||||
Q_OBJECT
|
||||
|
||||
@ -75,8 +63,6 @@ class qDetectorMain : public QMainWindow, private Ui::DetectorMainObject {
|
||||
slsDetectorDefs::detectorType detType;
|
||||
std::unique_ptr<Detector> det;
|
||||
qDrawPlot *plot;
|
||||
MyTabWidget *tabs;
|
||||
QScrollArea *scroll[NumberOfTabs];
|
||||
qTabMeasurement *tabMeasurement;
|
||||
qTabDataOutput *tabDataOutput;
|
||||
qTabPlot *tabPlot;
|
||||
@ -85,9 +71,7 @@ class qDetectorMain : public QMainWindow, private Ui::DetectorMainObject {
|
||||
qTabDebugging *tabDebugging;
|
||||
qTabDeveloper *tabDeveloper;
|
||||
qTabMessages *tabMessages;
|
||||
int isDeveloper;
|
||||
int heightPlotWindow;
|
||||
int heightCentralWidget;
|
||||
int isDeveloper{false};
|
||||
QString zoomToolTip;
|
||||
QColor defaultTabColor;
|
||||
};
|
||||
|
@ -4,9 +4,6 @@
|
||||
#include "sls/Detector.h"
|
||||
#include "ui_form_tab_debugging.h"
|
||||
|
||||
class QTreeWidget;
|
||||
class QTreeWidgetItem;
|
||||
|
||||
namespace sls {
|
||||
|
||||
class qTabDebugging : public QWidget, private Ui::TabDebuggingObject {
|
||||
@ -18,22 +15,20 @@ class qTabDebugging : public QWidget, private Ui::TabDebuggingObject {
|
||||
void Refresh();
|
||||
|
||||
private slots:
|
||||
void GetDetectorStatus();
|
||||
void GetInfo();
|
||||
void SetParameters(QTreeWidgetItem *item);
|
||||
void EnableTest();
|
||||
void TestDetector();
|
||||
|
||||
private:
|
||||
void SetupWidgetWindow();
|
||||
void Initialization();
|
||||
void PopulateDetectors();
|
||||
void GetFirmwareVersion();
|
||||
void GetServerSoftwareVersion();
|
||||
void GetReceiverVersion();
|
||||
void GetDetectorStatus();
|
||||
|
||||
Detector *det;
|
||||
/** Tree Widget displaying the detectors, modules */
|
||||
QTreeWidget *treeDet;
|
||||
QLabel *lblDetectorHostname;
|
||||
QLabel *lblDetectorFirmware;
|
||||
QLabel *lblDetectorSoftware;
|
||||
};
|
||||
|
||||
} // namespace sls
|
||||
|
@ -38,8 +38,8 @@ class qTabPlot : public QWidget, private Ui::TabPlotObject {
|
||||
void CheckAspectRatio();
|
||||
void SetZRange();
|
||||
void SetStreamingFrequency();
|
||||
void SetStreamingHwm(int value);
|
||||
void SetReceivingHwm(int value);
|
||||
void SelectHwm(int value);
|
||||
void SetHwm(int value);
|
||||
|
||||
signals:
|
||||
void DisableZoomSignal(bool);
|
||||
@ -50,8 +50,11 @@ class qTabPlot : public QWidget, private Ui::TabPlotObject {
|
||||
void Select1DPlot(bool enable);
|
||||
void GetGapPixels();
|
||||
void GetStreamingFrequency();
|
||||
void GetHwm();
|
||||
void GetStreamingHwm();
|
||||
void SetStreamingHwm(int value);
|
||||
void GetReceivingHwm();
|
||||
void SetReceivingHwm(int value);
|
||||
void SetXYRange();
|
||||
void MaintainAspectRatio(int dimension);
|
||||
|
||||
@ -66,6 +69,8 @@ class qTabPlot : public QWidget, private Ui::TabPlotObject {
|
||||
static QString defaultImageXAxisTitle;
|
||||
static QString defaultImageYAxisTitle;
|
||||
static QString defaultImageZAxisTitle;
|
||||
|
||||
enum { SND_HWM, RX_HWM };
|
||||
};
|
||||
|
||||
} // namespace sls
|
||||
|
13
slsDetectorGui/include/qVersionResolve.h
Normal file
13
slsDetectorGui/include/qVersionResolve.h
Normal file
@ -0,0 +1,13 @@
|
||||
// SPDX-License-Identifier: LGPL-3.0-or-other
|
||||
// Copyright (C) 2021 Contributors to the SLS Detector Package
|
||||
#pragma once
|
||||
|
||||
#include <QFontMetrics>
|
||||
#include <QString>
|
||||
|
||||
namespace sls {
|
||||
|
||||
int qResolve_GetQFontWidth(const QFontMetrics fm, const QString &text,
|
||||
int len = -1);
|
||||
|
||||
} // namespace sls
|
@ -92,7 +92,7 @@ class SlsQt1DPlot : public QwtPlot {
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
SlsQt1DPlot(QWidget * = NULL);
|
||||
SlsQt1DPlot(QWidget * = NULL, bool gain = false);
|
||||
~SlsQt1DPlot();
|
||||
|
||||
void SetTitle(QString title);
|
||||
@ -145,6 +145,8 @@ class SlsQt1DPlot : public QwtPlot {
|
||||
void DisableRoiBox();
|
||||
|
||||
private:
|
||||
bool gainPlot{false};
|
||||
|
||||
SlsQtH1DList *hist_list{nullptr};
|
||||
SlsQt1DZoomer *zoomer{nullptr};
|
||||
QwtPlotPanner *panner{nullptr};
|
||||
|
@ -19,7 +19,7 @@ class SlsQt2DPlot : public QwtPlot {
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
SlsQt2DPlot(QWidget * = NULL);
|
||||
SlsQt2DPlot(QWidget * = NULL, bool gain = false);
|
||||
~SlsQt2DPlot();
|
||||
void SetTitle(QString title);
|
||||
void SetXTitle(QString title);
|
||||
@ -87,6 +87,8 @@ class SlsQt2DPlot : public QwtPlot {
|
||||
private:
|
||||
void SetupZoom();
|
||||
void SetupColorMap();
|
||||
bool gainPlot{false};
|
||||
|
||||
QwtLinearColorMap *myColourMap(QVector<double> colourStops);
|
||||
QwtLinearColorMap *myColourMap(int log = 0);
|
||||
|
||||
|
@ -3,7 +3,10 @@
|
||||
|
||||
/* TODO! short description */
|
||||
#include "SlsQt1DPlot.h"
|
||||
#include "qDefs.h"
|
||||
#include "qVersionResolve.h"
|
||||
#include "sls/logger.h"
|
||||
|
||||
#include <iostream>
|
||||
#include <qwt_legend.h>
|
||||
#include <qwt_math.h>
|
||||
@ -333,7 +336,8 @@ void SlsQtH1DList::Remove(SlsQtH1D *hist) {
|
||||
}
|
||||
|
||||
// 1d plot stuff
|
||||
SlsQt1DPlot::SlsQt1DPlot(QWidget *parent) : QwtPlot(parent) {
|
||||
SlsQt1DPlot::SlsQt1DPlot(QWidget *parent, bool gain)
|
||||
: QwtPlot(parent), gainPlot(gain) {
|
||||
// n_histograms_attached=0;
|
||||
hline = vline = nullptr;
|
||||
hist_list = new SlsQtH1DList();
|
||||
@ -351,6 +355,19 @@ SlsQt1DPlot::SlsQt1DPlot(QWidget *parent) : QwtPlot(parent) {
|
||||
|
||||
axisScaleEngine(QwtPlot::yLeft)->setAttribute(QwtScaleEngine::Floating);
|
||||
axisScaleEngine(QwtPlot::xBottom)->setAttribute(QwtScaleEngine::Floating);
|
||||
setFont(qDefs::GetDefaultFont());
|
||||
SetTitleFont(qDefs::GetDefaultFont());
|
||||
SetXFont(qDefs::GetDefaultFont());
|
||||
SetYFont(qDefs::GetDefaultFont());
|
||||
|
||||
if (gainPlot) {
|
||||
SetTitle("");
|
||||
SetYTitle("Gain");
|
||||
DisableZoom(true);
|
||||
// set only major ticks from 0 to 3
|
||||
auto div = axisScaleEngine(QwtPlot::yLeft)->divideScale(0, 3, 3, 0, 1);
|
||||
setAxisScaleDiv(QwtPlot::yLeft, div);
|
||||
}
|
||||
}
|
||||
|
||||
SlsQt1DPlot::~SlsQt1DPlot() {
|
||||
@ -543,7 +560,7 @@ void SlsQt1DPlot::InsertVLine(double x) {
|
||||
|
||||
void SlsQt1DPlot::SetupZoom() {
|
||||
// LeftButton for the zooming
|
||||
// MidButton for the panning
|
||||
// MiddleButton for the panning
|
||||
// RightButton: zoom out by 1
|
||||
// Ctrl+RighButton: zoom out to full size
|
||||
|
||||
@ -555,15 +572,14 @@ void SlsQt1DPlot::SetupZoom() {
|
||||
|
||||
panner = new QwtPlotPanner((QwtPlotCanvas *)canvas());
|
||||
panner->setAxisEnabled(QwtPlot::yRight, false);
|
||||
panner->setMouseButton(Qt::MidButton);
|
||||
panner->setMouseButton(Qt::MiddleButton);
|
||||
|
||||
// Avoid jumping when labels with more/less digits
|
||||
// appear/disappear when scrolling vertically
|
||||
|
||||
const QFontMetrics fm(axisWidget(QwtPlot::yLeft)->font());
|
||||
QwtScaleDraw *sd = axisScaleDraw(QwtPlot::yLeft);
|
||||
sd->setMinimumExtent(fm.width("100.00"));
|
||||
|
||||
sd->setMinimumExtent(qResolve_GetQFontWidth(fm, "100.00"));
|
||||
const QColor c(Qt::darkBlue);
|
||||
zoomer->setRubberBandPen(c);
|
||||
zoomer->setTrackerPen(c);
|
||||
@ -630,7 +646,7 @@ void SlsQt1DPlot::DisableZoom(bool disable) {
|
||||
Qt::RightButton);
|
||||
}
|
||||
if (panner)
|
||||
panner->setMouseButton(Qt::MidButton);
|
||||
panner->setMouseButton(Qt::MiddleButton);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,10 +1,11 @@
|
||||
// SPDX-License-Identifier: LGPL-3.0-or-other
|
||||
// Copyright (C) 2021 Contributors to the SLS Detector Package
|
||||
#include "SlsQt2DPlot.h"
|
||||
#include "qDefs.h"
|
||||
#include "qVersionResolve.h"
|
||||
#include "sls/logger.h"
|
||||
|
||||
#include <qlist.h>
|
||||
#include <qprinter.h>
|
||||
#include <qtoolbutton.h>
|
||||
#include <qwt_color_map.h>
|
||||
#include <qwt_plot_layout.h>
|
||||
@ -20,7 +21,8 @@
|
||||
|
||||
namespace sls {
|
||||
|
||||
SlsQt2DPlot::SlsQt2DPlot(QWidget *parent) : QwtPlot(parent) {
|
||||
SlsQt2DPlot::SlsQt2DPlot(QWidget *parent, bool gain)
|
||||
: QwtPlot(parent), gainPlot(gain) {
|
||||
isLog = 0;
|
||||
axisScaleEngine(QwtPlot::yLeft)->setAttribute(QwtScaleEngine::Floating);
|
||||
axisScaleEngine(QwtPlot::xBottom)->setAttribute(QwtScaleEngine::Floating);
|
||||
@ -32,7 +34,23 @@ SlsQt2DPlot::SlsQt2DPlot(QWidget *parent) : QwtPlot(parent) {
|
||||
d_spectrogram->attach(this);
|
||||
plotLayout()->setAlignCanvasToScales(true);
|
||||
FillTestPlot();
|
||||
setFont(qDefs::GetDefaultFont());
|
||||
SetTitleFont(qDefs::GetDefaultFont());
|
||||
SetXFont(qDefs::GetDefaultFont());
|
||||
SetYFont(qDefs::GetDefaultFont());
|
||||
SetZFont(qDefs::GetDefaultFont());
|
||||
Update();
|
||||
|
||||
if (gainPlot) {
|
||||
setTitle("Gain");
|
||||
SetZTitle("");
|
||||
enableAxis(QwtPlot::yLeft, false);
|
||||
enableAxis(QwtPlot::xBottom, false);
|
||||
DisableZoom(true);
|
||||
// set only major ticks from 0 to 3
|
||||
auto div = axisScaleEngine(QwtPlot::yRight)->divideScale(0, 3, 3, 0, 1);
|
||||
setAxisScaleDiv(QwtPlot::yRight, div);
|
||||
}
|
||||
}
|
||||
|
||||
SlsQt2DPlot::~SlsQt2DPlot() = default;
|
||||
@ -118,7 +136,7 @@ void SlsQt2DPlot::FillTestPlot(int mode) {
|
||||
|
||||
void SlsQt2DPlot::SetupZoom() {
|
||||
// LeftButton for the zooming
|
||||
// MidButton for the panning
|
||||
// MiddleButton for the panning
|
||||
// RightButton: zoom out by 1
|
||||
// Ctrl+RighButton: zoom out to full size
|
||||
|
||||
@ -129,15 +147,14 @@ void SlsQt2DPlot::SetupZoom() {
|
||||
zoomer->setMousePattern(QwtEventPattern::MouseSelect3, Qt::RightButton);
|
||||
panner = new QwtPlotPanner(canvas());
|
||||
panner->setAxisEnabled(QwtPlot::yRight, false);
|
||||
panner->setMouseButton(Qt::MidButton);
|
||||
panner->setMouseButton(Qt::MiddleButton);
|
||||
|
||||
// Avoid jumping when labels with more/less digits
|
||||
// appear/disappear when scrolling vertically
|
||||
|
||||
const QFontMetrics fm(axisWidget(QwtPlot::yLeft)->font());
|
||||
QwtScaleDraw *sd = axisScaleDraw(QwtPlot::yLeft);
|
||||
sd->setMinimumExtent(fm.width("100.00"));
|
||||
|
||||
sd->setMinimumExtent(qResolve_GetQFontWidth(fm, "100.00"));
|
||||
const QColor c(Qt::darkBlue);
|
||||
zoomer->setRubberBandPen(c);
|
||||
zoomer->setTrackerPen(c);
|
||||
@ -221,7 +238,7 @@ void SlsQt2DPlot::DisableZoom(bool disable) {
|
||||
Qt::RightButton);
|
||||
}
|
||||
if (panner)
|
||||
panner->setMouseButton(Qt::MidButton);
|
||||
panner->setMouseButton(Qt::MiddleButton);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -265,10 +282,12 @@ void SlsQt2DPlot::Update() {
|
||||
hist->SetMinimumToFirstGreaterThanZero();
|
||||
const QwtInterval zInterval = d_spectrogram->data()->interval(Qt::ZAxis);
|
||||
rightAxis->setColorMap(zInterval, myColourMap(isLog));
|
||||
|
||||
if (!zoomer->zoomRectIndex())
|
||||
UnZoom();
|
||||
setAxisScale(QwtPlot::yRight, zInterval.minValue(), zInterval.maxValue());
|
||||
if (!gainPlot) {
|
||||
setAxisScale(QwtPlot::yRight, zInterval.minValue(),
|
||||
zInterval.maxValue());
|
||||
}
|
||||
plotLayout()->setAlignCanvasToScales(true);
|
||||
replot();
|
||||
}
|
||||
|
@ -49,7 +49,6 @@ void qCloneWidget::SetupWidgetWindow(QString title) {
|
||||
std::string(" - ") + Logger::Timestamp();
|
||||
setWindowTitle(QString(winTitle.c_str()));
|
||||
|
||||
boxPlot->setFont(QFont("Sans Serif", qDefs::Q_FONT_SIZE, QFont::Normal));
|
||||
boxPlot->setTitle(title);
|
||||
|
||||
// 1d
|
||||
@ -108,7 +107,7 @@ void qCloneWidget::SavePlot() {
|
||||
QString fName = filePath + QString('/') + fileName + QString("_clone") +
|
||||
QString("%1").arg(id) + QString("_acq") +
|
||||
QString("%1").arg(acqIndex) + QString(".png");
|
||||
LOG(logINFO) << "Saving Clone:" << fName.toAscii().constData();
|
||||
LOG(logINFO) << "Saving Clone:" << fName.toLatin1().constData();
|
||||
// save
|
||||
QImage img(centralwidget->size().width(), centralwidget->size().height(),
|
||||
QImage::Format_RGB32);
|
||||
|
@ -61,7 +61,7 @@ void qDacWidget::GetDac() {
|
||||
|
||||
void qDacWidget::SetDac() {
|
||||
int val = (int)spinDac->value();
|
||||
LOG(logINFO) << "Setting dac:" << lblDac->text().toAscii().data() << " : "
|
||||
LOG(logINFO) << "Setting dac:" << lblDac->text().toLatin1().data() << " : "
|
||||
<< val;
|
||||
|
||||
try {
|
||||
|
@ -16,9 +16,7 @@
|
||||
#include "sls/versionAPI.h"
|
||||
|
||||
#include <QFileDialog>
|
||||
#include <QPlastiqueStyle>
|
||||
#include <QResizeEvent>
|
||||
#include <QScrollArea>
|
||||
#include <QSizePolicy>
|
||||
|
||||
#include "sls/Version.h"
|
||||
@ -102,7 +100,6 @@ int main(int argc, char **argv) {
|
||||
}
|
||||
|
||||
QApplication app(argc, argv);
|
||||
app.setStyle(new QPlastiqueStyle); // style is deleted by QApplication
|
||||
try {
|
||||
sls::qDetectorMain det(multiId, fname, isDeveloper);
|
||||
det.show();
|
||||
@ -120,7 +117,7 @@ namespace sls {
|
||||
qDetectorMain::qDetectorMain(int multiId, const std::string &fname,
|
||||
bool isDevel)
|
||||
: QMainWindow(nullptr), detType(slsDetectorDefs::GENERIC),
|
||||
isDeveloper(isDevel), heightPlotWindow(0), heightCentralWidget(0) {
|
||||
isDeveloper(isDevel) {
|
||||
|
||||
setupUi(this);
|
||||
SetUpDetector(fname, multiId);
|
||||
@ -129,94 +126,45 @@ qDetectorMain::qDetectorMain(int multiId, const std::string &fname,
|
||||
|
||||
qDetectorMain::~qDetectorMain() {
|
||||
disconnect(tabs, SIGNAL(currentChanged(int)), this, SLOT(Refresh(int)));
|
||||
for (int i = 0; i < NumberOfTabs; ++i) {
|
||||
delete scroll[i];
|
||||
}
|
||||
}
|
||||
|
||||
void qDetectorMain::SetUpWidgetWindow() {
|
||||
setFont(QFont("Sans Serif", qDefs::Q_FONT_SIZE, QFont::Normal));
|
||||
|
||||
// plot setup
|
||||
plot = new qDrawPlot(dockWidgetPlot, det.get());
|
||||
LOG(logDEBUG) << "DockPlot ready";
|
||||
dockWidgetPlot->setWidget(plot);
|
||||
|
||||
// tabs setup
|
||||
tabs = new MyTabWidget(this);
|
||||
layoutTabs->addWidget(tabs);
|
||||
dockWidgetPlot->setFloating(false);
|
||||
zoomToolTip = dockWidgetPlot->toolTip();
|
||||
|
||||
// creating all the other tab widgets
|
||||
tabMeasurement = new qTabMeasurement(this, det.get(), plot);
|
||||
tabDataOutput = new qTabDataOutput(this, det.get());
|
||||
tabPlot = new qTabPlot(this, det.get(), plot);
|
||||
tabSettings = new qTabSettings(this, det.get());
|
||||
tabAdvanced = new qTabAdvanced(this, det.get(), plot);
|
||||
tabDebugging = new qTabDebugging(this, det.get());
|
||||
tabDeveloper = new qTabDeveloper(this, det.get());
|
||||
tabMeasurement = new qTabMeasurement(tMeasurement, det.get(), plot);
|
||||
tabDataOutput = new qTabDataOutput(tDataOutput, det.get());
|
||||
tabPlot = new qTabPlot(tPlot, det.get(), plot);
|
||||
tabSettings = new qTabSettings(tSettings, det.get());
|
||||
tabAdvanced = new qTabAdvanced(tAdvanced, det.get(), plot);
|
||||
tabDebugging = new qTabDebugging(tDebugging, det.get());
|
||||
tabDeveloper = new qTabDeveloper(tDeveloper, det.get());
|
||||
|
||||
// creating the scroll area widgets for the tabs
|
||||
for (int i = 0; i < NumberOfTabs; ++i) {
|
||||
scroll[i] = new QScrollArea();
|
||||
scroll[i]->setFrameShape(QFrame::NoFrame);
|
||||
}
|
||||
// setting the tab widgets to the scrollareas
|
||||
scroll[MEASUREMENT]->setWidget(tabMeasurement);
|
||||
scroll[DATAOUTPUT]->setWidget(tabDataOutput);
|
||||
scroll[PLOT]->setWidget(tabPlot);
|
||||
scroll[SETTINGS]->setWidget(tabSettings);
|
||||
scroll[ADVANCED]->setWidget(tabAdvanced);
|
||||
scroll[DEBUGGING]->setWidget(tabDebugging);
|
||||
scroll[DEVELOPER]->setWidget(tabDeveloper);
|
||||
// inserting all the tabs
|
||||
tabs->insertTab(MEASUREMENT, scroll[MEASUREMENT], "Measurement");
|
||||
tabs->insertTab(DATAOUTPUT, scroll[DATAOUTPUT], "Data Output");
|
||||
tabs->insertTab(PLOT, scroll[PLOT], "Plot");
|
||||
tabs->insertTab(SETTINGS, scroll[SETTINGS], "Settings");
|
||||
tabs->insertTab(ADVANCED, scroll[ADVANCED], "Advanced");
|
||||
tabs->insertTab(DEBUGGING, scroll[DEBUGGING], "Debugging");
|
||||
tabs->insertTab(DEVELOPER, scroll[DEVELOPER], "Developer");
|
||||
// no scroll buttons this way
|
||||
tabs->insertTab(MESSAGES, tabMessages, "Terminal");
|
||||
scrollMeasurement->setWidget(tabMeasurement);
|
||||
scrollDataOutput->setWidget(tabDataOutput);
|
||||
scrollPlot->setWidget(tabPlot);
|
||||
scrollSettings->setWidget(tabSettings);
|
||||
scrollAdvanced->setWidget(tabAdvanced);
|
||||
scrollDebugging->setWidget(tabDebugging);
|
||||
scrollDeveloper->setWidget(tabDeveloper);
|
||||
scrollTerminal->setWidget(tabMessages);
|
||||
|
||||
// swap tabs so that messages is last tab
|
||||
tabs->tabBar()->moveTab(tabs->indexOf(tabMeasurement), MEASUREMENT);
|
||||
tabs->tabBar()->moveTab(tabs->indexOf(tabSettings), SETTINGS);
|
||||
tabs->tabBar()->moveTab(tabs->indexOf(tabDataOutput), DATAOUTPUT);
|
||||
tabs->tabBar()->moveTab(tabs->indexOf(tabPlot), PLOT);
|
||||
tabs->tabBar()->moveTab(tabs->indexOf(tabAdvanced), ADVANCED);
|
||||
tabs->tabBar()->moveTab(tabs->indexOf(tabDebugging), DEBUGGING);
|
||||
tabs->tabBar()->moveTab(tabs->indexOf(tabDeveloper), DEVELOPER);
|
||||
tabs->tabBar()->moveTab(tabs->indexOf(tabMessages), MESSAGES);
|
||||
tabs->setCurrentIndex(MEASUREMENT);
|
||||
|
||||
// other tab properties
|
||||
// Default tab color
|
||||
defaultTabColor = tabs->tabBar()->tabTextColor(DATAOUTPUT);
|
||||
// Set the current tab(measurement) to blue as it is the current one
|
||||
// set current tab to blue
|
||||
tabs->tabBar()->setTabTextColor(0, QColor(0, 0, 200, 255));
|
||||
tabs->tabBar()->setExpanding(true);
|
||||
|
||||
// mode setup - to set up the tabs initially as disabled, not in form so
|
||||
// done here
|
||||
LOG(logINFO)
|
||||
<< "Dockable Mode: 0, Debug Mode: 0, Expert Mode: 0, Developer Mode: "
|
||||
<< isDeveloper;
|
||||
tabs->setTabEnabled(DEBUGGING, false);
|
||||
tabs->setTabEnabled(ADVANCED, false);
|
||||
tabs->setTabEnabled(DEVELOPER, isDeveloper);
|
||||
actionLoadTrimbits->setVisible(false);
|
||||
actionSaveTrimbits->setVisible(false);
|
||||
|
||||
dockWidgetPlot->setFloating(false);
|
||||
dockWidgetPlot->setFeatures(QDockWidget::NoDockWidgetFeatures);
|
||||
|
||||
// Other setup
|
||||
// Height of plot and central widget
|
||||
heightPlotWindow = dockWidgetPlot->size().height();
|
||||
heightCentralWidget = centralwidget->size().height();
|
||||
// Default zoom Tool Tip
|
||||
zoomToolTip = dockWidgetPlot->toolTip();
|
||||
LOG(logINFO) << "Debug Mode: 0, Expert Mode: 0, Developer Mode: "
|
||||
<< isDeveloper;
|
||||
|
||||
Initialization();
|
||||
}
|
||||
@ -227,7 +175,7 @@ void qDetectorMain::SetUpDetector(const std::string &config_file, int multiID) {
|
||||
det = make_unique<Detector>(multiID);
|
||||
|
||||
// create messages tab to capture config file loading logs
|
||||
tabMessages = new qTabMessages(this);
|
||||
tabMessages = new qTabMessages(tTerminal);
|
||||
|
||||
// loads the config file at startup
|
||||
if (!config_file.empty())
|
||||
@ -357,18 +305,8 @@ void qDetectorMain::EnableModes(QAction *action) {
|
||||
actionSaveTrimbits->setVisible(visible);
|
||||
tabSettings->SetExportMode(enable);
|
||||
LOG(logINFO) << "Expert Mode: " << qDefs::stringEnable(enable);
|
||||
}
|
||||
|
||||
// Set DockableMode
|
||||
else {
|
||||
enable = actionDockable->isChecked();
|
||||
if (enable) {
|
||||
dockWidgetPlot->setFeatures(QDockWidget::DockWidgetFloatable);
|
||||
} else {
|
||||
dockWidgetPlot->setFloating(false);
|
||||
dockWidgetPlot->setFeatures(QDockWidget::NoDockWidgetFeatures);
|
||||
}
|
||||
LOG(logINFO) << "Dockable Mode: " << qDefs::stringEnable(enable);
|
||||
} else {
|
||||
LOG(logERROR) << "Unknown action";
|
||||
}
|
||||
}
|
||||
|
||||
@ -385,7 +323,7 @@ void qDetectorMain::ExecuteUtilities(QAction *action) {
|
||||
// Gets called when cancelled as well
|
||||
if (!fName.isEmpty()) {
|
||||
refreshTabs = true;
|
||||
det->loadConfig(std::string(fName.toAscii().constData()));
|
||||
det->loadConfig(std::string(fName.toLatin1().constData()));
|
||||
qDefs::Message(qDefs::INFORMATION,
|
||||
"The Configuration Parameters have been "
|
||||
"configured successfully.",
|
||||
@ -403,7 +341,7 @@ void qDetectorMain::ExecuteUtilities(QAction *action) {
|
||||
// Gets called when cancelled as well
|
||||
if (!fName.isEmpty()) {
|
||||
refreshTabs = true;
|
||||
det->loadParameters(std::string(fName.toAscii().constData()));
|
||||
det->loadParameters(std::string(fName.toLatin1().constData()));
|
||||
qDefs::Message(qDefs::INFORMATION,
|
||||
"The Detector Parameters have been "
|
||||
"configured successfully.",
|
||||
@ -423,7 +361,7 @@ void qDetectorMain::ExecuteUtilities(QAction *action) {
|
||||
fileDialog->setFileMode(QFileDialog::AnyFile);
|
||||
if (fileDialog->exec() == QDialog::Accepted) {
|
||||
fName = fileDialog->selectedFiles()[0];
|
||||
det->loadTrimbits(std::string(fName.toAscii().constData()));
|
||||
det->loadTrimbits(std::string(fName.toLatin1().constData()));
|
||||
qDefs::Message(qDefs::INFORMATION,
|
||||
"The Trimbits have been loaded successfully.",
|
||||
"qDetectorMain::ExecuteUtilities");
|
||||
@ -439,7 +377,7 @@ void qDetectorMain::ExecuteUtilities(QAction *action) {
|
||||
this, tr("Save Detector Trimbits"), fPath,
|
||||
tr("Trimbit files (*.trim noise.sn*);;All Files(*)"));
|
||||
if (!fName.isEmpty()) {
|
||||
det->saveTrimbits(std::string(fName.toAscii().constData()));
|
||||
det->saveTrimbits(std::string(fName.toLatin1().constData()));
|
||||
qDefs::Message(qDefs::INFORMATION,
|
||||
"The Trimbits have been saved successfully.",
|
||||
"qDetectorMain::ExecuteUtilities");
|
||||
@ -549,36 +487,17 @@ void qDetectorMain::Refresh(int index) {
|
||||
|
||||
void qDetectorMain::ResizeMainWindow(bool b) {
|
||||
LOG(logDEBUG1) << "Resizing Main Window: height:" << height();
|
||||
|
||||
// undocked from the main window
|
||||
if (b) {
|
||||
// sets the main window height to a smaller maximum to get rid of space
|
||||
setMaximumHeight(height() - heightPlotWindow - 9);
|
||||
dockWidgetPlot->setMinimumHeight(0);
|
||||
LOG(logINFO) << "Undocking from main window";
|
||||
setMaximumHeight(centralwidget->height() + menu->height());
|
||||
LOG(logINFO) << "Plot undocked from main window";
|
||||
} else {
|
||||
setMaximumHeight(QWIDGETSIZE_MAX);
|
||||
// the minimum for plot will be set when the widget gets resized
|
||||
// automatically
|
||||
LOG(logINFO) << "Plot docked back to main window";
|
||||
}
|
||||
}
|
||||
|
||||
void qDetectorMain::resizeEvent(QResizeEvent *event) {
|
||||
if (!dockWidgetPlot->isFloating()) {
|
||||
dockWidgetPlot->setMinimumHeight(height() - centralwidget->height() -
|
||||
50);
|
||||
centralwidget->setMaximumHeight(heightCentralWidget);
|
||||
}
|
||||
|
||||
// adjusting tab width
|
||||
if (width() >= 800) {
|
||||
tabs->tabBar()->setFixedWidth(width() + 61);
|
||||
} else {
|
||||
tabs->tabBar()->setMinimumWidth(0);
|
||||
tabs->tabBar()->setExpanding(true);
|
||||
tabs->tabBar()->setUsesScrollButtons(true);
|
||||
}
|
||||
|
||||
tabs->tabBar()->setFixedWidth(width());
|
||||
event->accept();
|
||||
}
|
||||
|
||||
|
@ -12,7 +12,7 @@
|
||||
#include <QFileDialog>
|
||||
#include <QPainter>
|
||||
#include <QResizeEvent>
|
||||
#include <QtConcurrentRun>
|
||||
#include <QtConcurrent/QtConcurrentRun>
|
||||
#include <qwt_scale_engine.h>
|
||||
|
||||
namespace sls {
|
||||
@ -99,8 +99,6 @@ void qDrawPlot::Initialization() {
|
||||
}
|
||||
|
||||
void qDrawPlot::SetupPlots() {
|
||||
setFont(QFont("Sans Serif", qDefs::Q_FONT_SIZE, QFont::Normal));
|
||||
|
||||
// default image size
|
||||
slsDetectorDefs::xy res = det->getDetectorSize();
|
||||
nPixelsX = res.x;
|
||||
@ -108,10 +106,10 @@ void qDrawPlot::SetupPlots() {
|
||||
LOG(logINFO) << "nPixelsX:" << nPixelsX;
|
||||
LOG(logINFO) << "nPixelsY:" << nPixelsY;
|
||||
|
||||
boxPlot->setFont(QFont("Sans Serif", qDefs::Q_FONT_SIZE, QFont::Normal));
|
||||
widgetStatistics->hide();
|
||||
lblCompleteImage->hide();
|
||||
lblInCompleteImage->hide();
|
||||
lblRxRoiEnabled->hide();
|
||||
|
||||
// setup 1d data
|
||||
|
||||
@ -137,11 +135,6 @@ void qDrawPlot::SetupPlots() {
|
||||
hists1d.append(h);
|
||||
// setup 1d plot
|
||||
plot1d = new SlsQt1DPlot(boxPlot);
|
||||
plot1d->setFont(QFont("Sans Serif", qDefs::Q_FONT_SIZE, QFont::Normal));
|
||||
plot1d->SetTitleFont(
|
||||
QFont("Sans Serif", qDefs::Q_FONT_SIZE, QFont::Normal));
|
||||
plot1d->SetXFont(QFont("Sans Serif", qDefs::Q_FONT_SIZE, QFont::Normal));
|
||||
plot1d->SetYFont(QFont("Sans Serif", qDefs::Q_FONT_SIZE, QFont::Normal));
|
||||
plot1d->SetTitle("");
|
||||
plot1d->SetXTitle(xTitle1d);
|
||||
plot1d->SetYTitle(yTitle1d);
|
||||
@ -159,24 +152,11 @@ void qDrawPlot::SetupPlots() {
|
||||
gainhist1d->SetLineColor(0);
|
||||
gainhist1d->setStyleLinesorDots(isLines);
|
||||
gainhist1d->setSymbolMarkers(isMarkers);
|
||||
// setup 1d gain plot
|
||||
gainplot1d = new SlsQt1DPlot(boxPlot);
|
||||
gainplot1d->SetTitleFont(
|
||||
QFont("Sans Serif", qDefs::Q_FONT_SIZE, QFont::Normal));
|
||||
gainplot1d->SetYFont(
|
||||
QFont("Sans Serif", qDefs::Q_FONT_SIZE, QFont::Normal));
|
||||
gainplot1d->SetTitle("");
|
||||
gainplot1d->SetYTitle("Gain");
|
||||
// set ticks to just 3
|
||||
QList<double> majorTicks({0, 1, 2, 3});
|
||||
QwtScaleDiv div(0, 3, QList<double>(), QList<double>(), majorTicks);
|
||||
gainplot1d->setAxisScaleDiv(QwtPlot::yLeft, div);
|
||||
|
||||
gainhist1d->setItemAttribute(QwtPlotItem::Legend, false);
|
||||
// setup 1d gain plot
|
||||
gainplot1d = new SlsQt1DPlot(boxPlot, true);
|
||||
gainhist1d->Attach(gainplot1d);
|
||||
gainplot1d->DisableZoom(true);
|
||||
gainplot1d->hide();
|
||||
|
||||
connect(plot1d, SIGNAL(PlotZoomedSignal(const QRectF &)), this,
|
||||
SLOT(Zoom1DGainPlot(const QRectF &)));
|
||||
|
||||
@ -205,32 +185,15 @@ void qDrawPlot::SetupPlots() {
|
||||
plot2d = new SlsQt2DPlot(boxPlot);
|
||||
plot2d->SetData(nPixelsX, -0.5, nPixelsX - 0.5, nPixelsY, -0.5,
|
||||
nPixelsY - 0.5, data2d);
|
||||
plot2d->setFont(QFont("Sans Serif", qDefs::Q_FONT_SIZE, QFont::Normal));
|
||||
plot2d->SetTitleFont(
|
||||
QFont("Sans Serif", qDefs::Q_FONT_SIZE, QFont::Normal));
|
||||
plot2d->SetXFont(QFont("Sans Serif", qDefs::Q_FONT_SIZE, QFont::Normal));
|
||||
plot2d->SetYFont(QFont("Sans Serif", qDefs::Q_FONT_SIZE, QFont::Normal));
|
||||
plot2d->SetZFont(QFont("Sans Serif", qDefs::Q_FONT_SIZE, QFont::Normal));
|
||||
plot2d->setTitle("");
|
||||
plot2d->SetXTitle(xTitle2d);
|
||||
plot2d->SetYTitle(yTitle2d);
|
||||
plot2d->SetZTitle(zTitle2d);
|
||||
|
||||
gainplot2d = new SlsQt2DPlot(boxPlot);
|
||||
gainplot2d = new SlsQt2DPlot(boxPlot, true);
|
||||
gainplot2d->SetData(nPixelsX, -0.5, nPixelsX - 0.5, nPixelsY, -0.5,
|
||||
nPixelsY - 0.5, gainData);
|
||||
gainplot2d->SetTitleFont(
|
||||
QFont("Sans Serif", qDefs::Q_FONT_SIZE, QFont::Normal));
|
||||
gainplot2d->setTitle("Gain");
|
||||
gainplot2d->SetZTitle("");
|
||||
gainplot2d->enableAxis(QwtPlot::yLeft, false);
|
||||
// gainplot2d->enableAxis(1, false);
|
||||
gainplot2d->enableAxis(QwtPlot::xBottom, false);
|
||||
// set ticks to just 3
|
||||
gainplot2d->setAxisScaleDiv(QwtPlot::yRight, div);
|
||||
gainplot2d->DisableZoom(true);
|
||||
gainplot2d->hide();
|
||||
|
||||
connect(plot2d, SIGNAL(PlotZoomedSignal(const QRectF &)), this,
|
||||
SLOT(Zoom2DGainPlot(const QRectF &)));
|
||||
|
||||
@ -301,13 +264,13 @@ void qDrawPlot::Select1dPlot(bool enable) {
|
||||
|
||||
void qDrawPlot::SetPlotTitlePrefix(QString title) {
|
||||
std::lock_guard<std::mutex> lock(mPlots);
|
||||
LOG(logINFO) << "Setting Title to " << title.toAscii().constData();
|
||||
LOG(logINFO) << "Setting Title to " << title.toLatin1().constData();
|
||||
plotTitlePrefix = title;
|
||||
}
|
||||
|
||||
void qDrawPlot::SetXAxisTitle(QString title) {
|
||||
std::lock_guard<std::mutex> lock(mPlots);
|
||||
LOG(logINFO) << "Setting X Axis Title to " << title.toAscii().constData();
|
||||
LOG(logINFO) << "Setting X Axis Title to " << title.toLatin1().constData();
|
||||
if (is1d) {
|
||||
xTitle1d = title;
|
||||
} else {
|
||||
@ -317,7 +280,7 @@ void qDrawPlot::SetXAxisTitle(QString title) {
|
||||
|
||||
void qDrawPlot::SetYAxisTitle(QString title) {
|
||||
std::lock_guard<std::mutex> lock(mPlots);
|
||||
LOG(logINFO) << "Setting Y Axis Title to " << title.toAscii().constData();
|
||||
LOG(logINFO) << "Setting Y Axis Title to " << title.toLatin1().constData();
|
||||
if (is1d) {
|
||||
yTitle1d = title;
|
||||
} else {
|
||||
@ -327,7 +290,7 @@ void qDrawPlot::SetYAxisTitle(QString title) {
|
||||
|
||||
void qDrawPlot::SetZAxisTitle(QString title) {
|
||||
std::lock_guard<std::mutex> lock(mPlots);
|
||||
LOG(logINFO) << "Setting Z Axis Title to " << title.toAscii().constData();
|
||||
LOG(logINFO) << "Setting Z Axis Title to " << title.toLatin1().constData();
|
||||
zTitle2d = title;
|
||||
}
|
||||
|
||||
@ -509,7 +472,7 @@ void qDrawPlot::EnableGainPlot(bool enable) {
|
||||
void qDrawPlot::SetSaveFileName(QString val) {
|
||||
std::lock_guard<std::mutex> lock(mPlots);
|
||||
LOG(logDEBUG) << "Setting Clone/Save File Name to "
|
||||
<< val.toAscii().constData();
|
||||
<< val.toLatin1().constData();
|
||||
fileSaveName = val;
|
||||
}
|
||||
|
||||
@ -524,14 +487,6 @@ void qDrawPlot::ClonePlot() {
|
||||
if (is1d) {
|
||||
LOG(logDEBUG) << "Cloning 1D Image";
|
||||
cloneplot1D = new SlsQt1DPlot();
|
||||
cloneplot1D->setFont(
|
||||
QFont("Sans Serif", qDefs::Q_FONT_SIZE, QFont::Normal));
|
||||
cloneplot1D->SetTitleFont(
|
||||
QFont("Sans Serif", qDefs::Q_FONT_SIZE, QFont::Normal));
|
||||
cloneplot1D->SetXFont(
|
||||
QFont("Sans Serif", qDefs::Q_FONT_SIZE, QFont::Normal));
|
||||
cloneplot1D->SetYFont(
|
||||
QFont("Sans Serif", qDefs::Q_FONT_SIZE, QFont::Normal));
|
||||
cloneplot1D->SetTitle(plot1d->title().text());
|
||||
cloneplot1D->SetXTitle(xTitle1d);
|
||||
cloneplot1D->SetYTitle(yTitle1d);
|
||||
@ -551,36 +506,14 @@ void qDrawPlot::ClonePlot() {
|
||||
h->setStyleLinesorDots(isLines);
|
||||
h->setSymbolMarkers(isMarkers);
|
||||
h->setItemAttribute(QwtPlotItem::Legend, false);
|
||||
clonegainplot1D = new SlsQt1DPlot();
|
||||
clonegainplot1D->SetTitleFont(
|
||||
QFont("Sans Serif", qDefs::Q_FONT_SIZE, QFont::Normal));
|
||||
clonegainplot1D->SetYFont(
|
||||
QFont("Sans Serif", qDefs::Q_FONT_SIZE, QFont::Normal));
|
||||
clonegainplot1D->SetTitle("");
|
||||
clonegainplot1D->SetYTitle("Gain");
|
||||
// set ticks to just 3
|
||||
QList<double> majorTicks({0, 1, 2, 3});
|
||||
QwtScaleDiv div(0, 3, QList<double>(), QList<double>(), majorTicks);
|
||||
clonegainplot1D->setAxisScaleDiv(QwtPlot::yLeft, div);
|
||||
clonegainplot1D->DisableZoom(true);
|
||||
clonegainplot1D = new SlsQt1DPlot(NULL, true);
|
||||
h->Attach(clonegainplot1D);
|
||||
|
||||
connect(cloneplot1D, SIGNAL(PlotZoomedSignal(const QRectF &)),
|
||||
clonegainplot1D, SLOT(SetZoomX(const QRectF &)));
|
||||
}
|
||||
} else {
|
||||
LOG(logDEBUG) << "Cloning 2D Image";
|
||||
cloneplot2D = new SlsQt2DPlot();
|
||||
cloneplot2D->setFont(
|
||||
QFont("Sans Serif", qDefs::Q_FONT_SIZE, QFont::Normal));
|
||||
cloneplot2D->SetTitleFont(
|
||||
QFont("Sans Serif", qDefs::Q_FONT_SIZE, QFont::Normal));
|
||||
cloneplot2D->SetXFont(
|
||||
QFont("Sans Serif", qDefs::Q_FONT_SIZE, QFont::Normal));
|
||||
cloneplot2D->SetYFont(
|
||||
QFont("Sans Serif", qDefs::Q_FONT_SIZE, QFont::Normal));
|
||||
cloneplot2D->SetZFont(
|
||||
QFont("Sans Serif", qDefs::Q_FONT_SIZE, QFont::Normal));
|
||||
cloneplot2D->setTitle(plot2d->title().text());
|
||||
cloneplot2D->SetXTitle(xTitle2d);
|
||||
cloneplot2D->SetYTitle(yTitle2d);
|
||||
@ -590,25 +523,9 @@ void qDrawPlot::ClonePlot() {
|
||||
cloneplot2D->SetZRange(isZRange[0], isZRange[1], zRange[0], zRange[1]);
|
||||
|
||||
if (isGainDataExtracted) {
|
||||
clonegainplot2D = new SlsQt2DPlot();
|
||||
clonegainplot2D->SetTitleFont(
|
||||
QFont("Sans Serif", qDefs::Q_FONT_SIZE, QFont::Normal));
|
||||
clonegainplot2D->SetTitle("Gain");
|
||||
clonegainplot2D->SetZTitle("");
|
||||
clonegainplot2D->enableAxis(QwtPlot::yLeft, false);
|
||||
clonegainplot2D->enableAxis(QwtPlot::xBottom, false);
|
||||
// set ticks to just 3
|
||||
QList<double> majorTicks({0, 1, 2, 3});
|
||||
QwtScaleDiv div(0, 3, QList<double>(), QList<double>(), majorTicks);
|
||||
clonegainplot2D->setAxisScaleDiv(QwtPlot::yRight, div);
|
||||
|
||||
clonegainplot2D->enableAxis(0, false);
|
||||
clonegainplot2D->enableAxis(1, false);
|
||||
clonegainplot2D->enableAxis(2, false);
|
||||
clonegainplot2D = new SlsQt2DPlot(NULL, true);
|
||||
clonegainplot2D->SetData(nPixelsX, -0.5, nPixelsX - 0.5, nPixelsY,
|
||||
-0.5, nPixelsY - 0.5, gainData);
|
||||
clonegainplot2D->DisableZoom(true);
|
||||
|
||||
connect(cloneplot2D, SIGNAL(PlotZoomedSignal(const QRectF &)),
|
||||
clonegainplot2D, SLOT(SetZoom(const QRectF &)));
|
||||
}
|
||||
@ -1141,14 +1058,12 @@ void qDrawPlot::Update1dXYRange() {
|
||||
|
||||
if (!isXYRange[qDefs::YMIN] && !isXYRange[qDefs::YMAX]) {
|
||||
plot1d->EnableYAutoScaling();
|
||||
gainplot1d->EnableYAutoScaling();
|
||||
} else {
|
||||
double ymin = (isXYRange[qDefs::YMIN] ? xyRange[qDefs::YMIN]
|
||||
: plot1d->GetYMinimum());
|
||||
double ymax = (isXYRange[qDefs::YMAX] ? xyRange[qDefs::YMAX]
|
||||
: plot1d->GetYMaximum());
|
||||
plot1d->SetYMinMax(ymin, ymax);
|
||||
gainplot1d->SetYMinMax(ymin, ymax);
|
||||
}
|
||||
plot1d->Update();
|
||||
gainplot1d->Update();
|
||||
|
@ -400,7 +400,7 @@ void qTabAdvanced::GetRxrZMQIP() {
|
||||
|
||||
void qTabAdvanced::SetDetector() {
|
||||
LOG(logDEBUG) << "Set Detector: "
|
||||
<< comboDetector->currentText().toAscii().data();
|
||||
<< comboDetector->currentText().toLatin1().data();
|
||||
|
||||
GetControlPort();
|
||||
GetStopPort();
|
||||
@ -441,7 +441,7 @@ void qTabAdvanced::SetDetectorUDPIP(bool force) {
|
||||
// return forces modification (inconsistency from command line)
|
||||
if (dispDetectorUDPIP->isModified() || force) {
|
||||
dispDetectorUDPIP->setModified(false);
|
||||
std::string s = dispDetectorUDPIP->text().toAscii().constData();
|
||||
std::string s = dispDetectorUDPIP->text().toLatin1().constData();
|
||||
LOG(logINFO) << "Setting Detector UDP IP:" << s;
|
||||
try {
|
||||
det->setSourceUDPIP(IpAddr{s}, {comboDetector->currentIndex()});
|
||||
@ -458,7 +458,7 @@ void qTabAdvanced::SetDetectorUDPMAC(bool force) {
|
||||
// return forces modification (inconsistency from command line)
|
||||
if (dispDetectorUDPMAC->isModified() || force) {
|
||||
dispDetectorUDPMAC->setModified(false);
|
||||
std::string s = dispDetectorUDPMAC->text().toAscii().constData();
|
||||
std::string s = dispDetectorUDPMAC->text().toLatin1().constData();
|
||||
LOG(logINFO) << "Setting Detector UDP MAC:" << s;
|
||||
try {
|
||||
det->setSourceUDPMAC(MacAddr{s}, {comboDetector->currentIndex()});
|
||||
@ -485,7 +485,7 @@ void qTabAdvanced::SetCltZMQIP(bool force) {
|
||||
// return forces modification (inconsistency from command line)
|
||||
if (dispZMQIP->isModified() || force) {
|
||||
dispZMQIP->setModified(false);
|
||||
std::string s = dispZMQIP->text().toAscii().constData();
|
||||
std::string s = dispZMQIP->text().toLatin1().constData();
|
||||
LOG(logINFO) << "Setting Client ZMQ IP:" << s;
|
||||
try {
|
||||
det->setClientZmqIp(IpAddr{s}, {comboDetector->currentIndex()});
|
||||
@ -502,7 +502,7 @@ void qTabAdvanced::SetRxrHostname(bool force) {
|
||||
// return forces modification (inconsistency from command line)
|
||||
if (dispRxrHostname->isModified() || force) {
|
||||
dispRxrHostname->setModified(false);
|
||||
std::string s = dispRxrHostname->text().toAscii().constData();
|
||||
std::string s = dispRxrHostname->text().toLatin1().constData();
|
||||
LOG(logINFO) << "Setting Receiver Hostname:" << s;
|
||||
try {
|
||||
det->setRxHostname(s, {comboDetector->currentIndex()});
|
||||
@ -542,7 +542,7 @@ void qTabAdvanced::SetRxrUDPIP(bool force) {
|
||||
// return forces modification (inconsistency from command line)
|
||||
if (dispRxrUDPIP->isModified() || force) {
|
||||
dispRxrUDPIP->setModified(false);
|
||||
std::string s = dispRxrUDPIP->text().toAscii().constData();
|
||||
std::string s = dispRxrUDPIP->text().toLatin1().constData();
|
||||
LOG(logINFO) << "Setting Receiver UDP IP:" << s;
|
||||
try {
|
||||
det->setDestinationUDPIP(IpAddr{s},
|
||||
@ -560,7 +560,7 @@ void qTabAdvanced::SetRxrUDPMAC(bool force) {
|
||||
// return forces modification (inconsistency from command line)
|
||||
if (dispRxrUDPMAC->isModified() || force) {
|
||||
dispRxrUDPMAC->setModified(false);
|
||||
std::string s = dispRxrUDPMAC->text().toAscii().constData();
|
||||
std::string s = dispRxrUDPMAC->text().toLatin1().constData();
|
||||
LOG(logINFO) << "Setting Receiver UDP MAC:" << s;
|
||||
try {
|
||||
det->setDestinationUDPMAC(MacAddr{s},
|
||||
@ -588,7 +588,7 @@ void qTabAdvanced::SetRxrZMQIP(bool force) {
|
||||
// return forces modification (inconsistency from command line)
|
||||
if (dispRxrZMQIP->isModified() || force) {
|
||||
dispRxrZMQIP->setModified(false);
|
||||
std::string s = dispRxrZMQIP->text().toAscii().constData();
|
||||
std::string s = dispRxrZMQIP->text().toLatin1().constData();
|
||||
LOG(logINFO) << "Setting Receiver ZMQ IP:" << s;
|
||||
try {
|
||||
det->setRxZmqIP(IpAddr{s}, {comboDetector->currentIndex()});
|
||||
|
@ -192,7 +192,7 @@ void qTabDataOutput::SetOutputDir(bool force) {
|
||||
dispOutputDir->setModified(false);
|
||||
QString path = dispOutputDir->text();
|
||||
LOG(logDEBUG) << "Setting output directory to "
|
||||
<< path.toAscii().constData();
|
||||
<< path.toLatin1().constData();
|
||||
|
||||
// empty
|
||||
if (path.isEmpty()) {
|
||||
@ -208,7 +208,7 @@ void qTabDataOutput::SetOutputDir(bool force) {
|
||||
path.chop(1);
|
||||
}
|
||||
}
|
||||
std::string spath = std::string(path.toAscii().constData());
|
||||
std::string spath = std::string(path.toLatin1().constData());
|
||||
try {
|
||||
det->setFilePath(spath, {comboDetector->currentIndex() - 1});
|
||||
}
|
||||
@ -245,7 +245,7 @@ void qTabDataOutput::GetFileFormat() {
|
||||
|
||||
void qTabDataOutput::SetFileFormat(int format) {
|
||||
LOG(logINFO) << "Setting File Format to "
|
||||
<< comboFileFormat->currentText().toAscii().data();
|
||||
<< comboFileFormat->currentText().toLatin1().data();
|
||||
try {
|
||||
det->setFileFormat(static_cast<slsDetectorDefs::fileFormat>(
|
||||
comboFileFormat->currentIndex()));
|
||||
@ -388,7 +388,7 @@ void qTabDataOutput::GetSpeed() {
|
||||
|
||||
void qTabDataOutput::SetSpeed(int speed) {
|
||||
LOG(logINFO) << "Setting Readout Speed to "
|
||||
<< comboClkDivider->currentText().toAscii().data();
|
||||
<< comboClkDivider->currentText().toLatin1().data();
|
||||
try {
|
||||
det->setReadoutSpeed(static_cast<slsDetectorDefs::speedLevel>(speed));
|
||||
}
|
||||
|
@ -3,49 +3,36 @@
|
||||
#include "qTabDebugging.h"
|
||||
#include "qDefs.h"
|
||||
#include "sls/ToString.h"
|
||||
#include <QDesktopWidget>
|
||||
#include <QGridLayout>
|
||||
#include <QTreeWidget>
|
||||
|
||||
namespace sls {
|
||||
|
||||
qTabDebugging::qTabDebugging(QWidget *parent, Detector *detector)
|
||||
: QWidget(parent), det(detector), treeDet(nullptr),
|
||||
lblDetectorHostname(nullptr), lblDetectorFirmware(nullptr),
|
||||
lblDetectorSoftware(nullptr) {
|
||||
: QWidget(parent), det(detector) {
|
||||
setupUi(this);
|
||||
SetupWidgetWindow();
|
||||
LOG(logDEBUG) << "Debugging ready";
|
||||
}
|
||||
|
||||
qTabDebugging::~qTabDebugging() {
|
||||
delete treeDet;
|
||||
delete lblDetectorHostname;
|
||||
delete lblDetectorFirmware;
|
||||
delete lblDetectorSoftware;
|
||||
}
|
||||
qTabDebugging::~qTabDebugging() {}
|
||||
|
||||
void qTabDebugging::SetupWidgetWindow() {
|
||||
// enabling according to det type
|
||||
if (det->getDetectorType().squash() == slsDetectorDefs::EIGER) {
|
||||
lblDetector->setText("Half Module:");
|
||||
chkDetectorFirmware->setEnabled(false);
|
||||
chkDetectorBus->setEnabled(false);
|
||||
btnTest->setEnabled(false);
|
||||
groupTest->setEnabled(false);
|
||||
} else {
|
||||
EnableTest();
|
||||
}
|
||||
|
||||
PopulateDetectors();
|
||||
|
||||
Initialization();
|
||||
|
||||
Refresh();
|
||||
}
|
||||
|
||||
void qTabDebugging::Initialization() {
|
||||
connect(comboDetector, SIGNAL(currentIndexChanged(int)), this,
|
||||
SLOT(GetDetectorStatus()));
|
||||
connect(btnGetInfo, SIGNAL(clicked()), this, SLOT(GetInfo()));
|
||||
if (btnTest->isEnabled()) {
|
||||
SLOT(GetInfo()));
|
||||
connect(chkDetectorFirmware, SIGNAL(toggled(bool)), this,
|
||||
SLOT(EnableTest()));
|
||||
connect(chkDetectorBus, SIGNAL(toggled(bool)), this, SLOT(EnableTest()));
|
||||
if (groupTest->isEnabled()) {
|
||||
connect(btnTest, SIGNAL(clicked()), this, SLOT(TestDetector()));
|
||||
}
|
||||
}
|
||||
@ -53,20 +40,73 @@ void qTabDebugging::Initialization() {
|
||||
void qTabDebugging::PopulateDetectors() {
|
||||
LOG(logDEBUG) << "Populating detectors";
|
||||
|
||||
comboDetector->clear();
|
||||
auto res = det->getHostname();
|
||||
for (auto &it : res) {
|
||||
comboDetector->addItem(QString(it.c_str()));
|
||||
try {
|
||||
comboDetector->clear();
|
||||
comboDetector->addItem("All");
|
||||
auto res = det->getHostname();
|
||||
if (det->size() > 1) {
|
||||
for (auto &it : res) {
|
||||
comboDetector->addItem(QString(it.c_str()));
|
||||
}
|
||||
}
|
||||
comboDetector->setCurrentIndex(0);
|
||||
}
|
||||
CATCH_DISPLAY("Could not populate readouts for debugging",
|
||||
"qTabDebugging::PopulateDetectors")
|
||||
}
|
||||
|
||||
void qTabDebugging::GetFirmwareVersion() {
|
||||
LOG(logDEBUG) << "Firmware Version";
|
||||
try {
|
||||
auto retval =
|
||||
det->getFirmwareVersion({comboDetector->currentIndex() - 1})
|
||||
.squash(-1);
|
||||
std::string s = "inconsistent";
|
||||
if (retval != -1) {
|
||||
if (det->getDetectorType().squash() == slsDetectorDefs::EIGER) {
|
||||
s = ToString(retval);
|
||||
} else {
|
||||
s = ToStringHex(retval);
|
||||
}
|
||||
}
|
||||
dispFirmwareVersion->setText(s.c_str());
|
||||
}
|
||||
CATCH_DISPLAY("Could not get firmware version.",
|
||||
"qTabDebugging::GetFirmwareVersion")
|
||||
}
|
||||
|
||||
void qTabDebugging::GetServerSoftwareVersion() {
|
||||
LOG(logDEBUG) << "Server Software Version";
|
||||
try {
|
||||
std::string s =
|
||||
det->getDetectorServerVersion({comboDetector->currentIndex() - 1})
|
||||
.squash("inconsistent");
|
||||
dispSoftwareVersion->setText(s.c_str());
|
||||
}
|
||||
CATCH_DISPLAY("Could not get on-board software version.",
|
||||
"qTabDebugging::GetServerSoftwareVersion")
|
||||
}
|
||||
|
||||
void qTabDebugging::GetReceiverVersion() {
|
||||
LOG(logDEBUG) << "Server Receiver Version";
|
||||
try {
|
||||
std::string s =
|
||||
det->getReceiverVersion({comboDetector->currentIndex() - 1})
|
||||
.squash("inconsistent");
|
||||
dispReceiverVersion->setText(s.c_str());
|
||||
}
|
||||
CATCH_DISPLAY("Could not receiver version.",
|
||||
"qTabDebugging::GetReceiverVersion")
|
||||
}
|
||||
|
||||
void qTabDebugging::GetDetectorStatus() {
|
||||
LOG(logDEBUG) << "Getting Status";
|
||||
|
||||
try {
|
||||
std::string status = ToString(
|
||||
det->getDetectorStatus({comboDetector->currentIndex()})[0]);
|
||||
lblStatus->setText(QString(status.c_str()).toUpper());
|
||||
std::string s =
|
||||
ToString(det->getDetectorStatus({comboDetector->currentIndex() - 1})
|
||||
.squash(defs::runStatus::ERROR));
|
||||
lblStatus->setText(QString(s.c_str()).toUpper());
|
||||
}
|
||||
CATCH_DISPLAY("Could not get detector status.",
|
||||
"qTabDebugging::GetDetectorStatus")
|
||||
@ -74,172 +114,53 @@ void qTabDebugging::GetDetectorStatus() {
|
||||
|
||||
void qTabDebugging::GetInfo() {
|
||||
LOG(logDEBUG) << "Getting Readout Info";
|
||||
|
||||
// open info in a new popup
|
||||
QFrame *popup1 = new QFrame(this, Qt::Popup | Qt::SubWindow);
|
||||
QList<QTreeWidgetItem *> items;
|
||||
QGridLayout *layout = new QGridLayout(popup1);
|
||||
treeDet = new QTreeWidget(popup1);
|
||||
layout->addWidget(treeDet, 0, 0);
|
||||
QFrame *dispFrame = new QFrame(popup1);
|
||||
QGridLayout *formLayout = new QGridLayout(dispFrame);
|
||||
lblDetectorHostname = new QLabel("");
|
||||
lblDetectorFirmware = new QLabel("");
|
||||
lblDetectorSoftware = new QLabel("");
|
||||
// to make sure the size is constant
|
||||
lblDetectorFirmware->setFixedWidth(100);
|
||||
layout->addWidget(dispFrame, 0, 1);
|
||||
QString detName =
|
||||
QString(ToString(det->getDetectorType().squash()).c_str());
|
||||
|
||||
switch (det->getDetectorType().squash()) {
|
||||
|
||||
case slsDetectorDefs::EIGER:
|
||||
formLayout->addWidget(new QLabel("Half Module:"), 0, 0);
|
||||
formLayout->addItem(
|
||||
new QSpacerItem(15, 20, QSizePolicy::Fixed, QSizePolicy::Fixed), 0,
|
||||
1);
|
||||
formLayout->addWidget(lblDetectorHostname, 0, 2);
|
||||
formLayout->addWidget(new QLabel("Half Module Firmware Version:"), 1,
|
||||
0);
|
||||
formLayout->addWidget(lblDetectorFirmware, 1, 2);
|
||||
formLayout->addWidget(new QLabel("Half Module Software Version:"), 2,
|
||||
0);
|
||||
formLayout->addWidget(lblDetectorSoftware, 2, 2);
|
||||
treeDet->setHeaderLabel("Eiger Detector");
|
||||
// get num modules
|
||||
for (int i = 0; i < comboDetector->count() / 2; ++i)
|
||||
items.append(
|
||||
new QTreeWidgetItem((QTreeWidget *)nullptr,
|
||||
QStringList(QString("Module %1").arg(i))));
|
||||
treeDet->insertTopLevelItems(0, items);
|
||||
// gets det names
|
||||
for (int i = 0; i < comboDetector->count(); ++i) {
|
||||
QList<QTreeWidgetItem *> childItems;
|
||||
childItems.append(new QTreeWidgetItem(
|
||||
(QTreeWidget *)nullptr,
|
||||
QStringList(QString("Half Module (%1)")
|
||||
.arg(comboDetector->itemText(i)))));
|
||||
treeDet->topLevelItem(i * 2)->insertChildren(0, childItems);
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
formLayout->addWidget(new QLabel("Module:"), 0, 0);
|
||||
formLayout->addItem(
|
||||
new QSpacerItem(15, 20, QSizePolicy::Fixed, QSizePolicy::Fixed), 0,
|
||||
1);
|
||||
formLayout->addWidget(lblDetectorHostname, 0, 2);
|
||||
formLayout->addWidget(new QLabel("Module Firmware Version:"), 1, 0);
|
||||
formLayout->addWidget(lblDetectorFirmware, 1, 2);
|
||||
formLayout->addWidget(new QLabel("Module Software Version:"), 2, 0);
|
||||
formLayout->addWidget(lblDetectorSoftware, 2, 2);
|
||||
treeDet->setHeaderLabel(QString(detName + " Detector"));
|
||||
// gets det names
|
||||
for (int i = 0; i < comboDetector->count(); ++i)
|
||||
items.append(new QTreeWidgetItem(
|
||||
(QTreeWidget *)nullptr,
|
||||
QStringList(
|
||||
QString("Module (%1)").arg(comboDetector->itemText(i)))));
|
||||
treeDet->insertTopLevelItems(0, items);
|
||||
break;
|
||||
}
|
||||
|
||||
// show and center widget
|
||||
int x = ((parentWidget()->width()) - (popup1->frameGeometry().width())) / 2;
|
||||
int y =
|
||||
((parentWidget()->height()) - (popup1->frameGeometry().height())) / 2;
|
||||
QDesktopWidget *desktop = QApplication::desktop();
|
||||
int screen = desktop->screenNumber(this);
|
||||
popup1->setWindowModality(Qt::WindowModal);
|
||||
popup1->move((desktop->screenGeometry(screen).x()) + x,
|
||||
(desktop->screenGeometry(screen).y()) + y);
|
||||
popup1->show();
|
||||
|
||||
// put the first parameters
|
||||
SetParameters(treeDet->topLevelItem(0));
|
||||
|
||||
// connect to slots
|
||||
connect(treeDet, SIGNAL(itemDoubleClicked(QTreeWidgetItem *, int)), this,
|
||||
SLOT(SetParameters(QTreeWidgetItem *)));
|
||||
GetFirmwareVersion();
|
||||
GetServerSoftwareVersion();
|
||||
GetReceiverVersion();
|
||||
GetDetectorStatus();
|
||||
}
|
||||
|
||||
void qTabDebugging::SetParameters(QTreeWidgetItem *item) {
|
||||
// eiger: if half module clicked, others: true always
|
||||
bool ignoreOrHalfModuleClicked = true;
|
||||
if (det->getDetectorType().squash() == slsDetectorDefs::EIGER) {
|
||||
if (!(item->text(0).contains("Half Module"))) {
|
||||
ignoreOrHalfModuleClicked = false;
|
||||
}
|
||||
}
|
||||
|
||||
if (ignoreOrHalfModuleClicked) {
|
||||
// find index
|
||||
for (int i = 0; i < comboDetector->count(); ++i) {
|
||||
if (item == treeDet->topLevelItem(i))
|
||||
break;
|
||||
}
|
||||
try {
|
||||
auto retval = std::string("0x") +
|
||||
std::to_string((unsigned long)det->getFirmwareVersion(
|
||||
{comboDetector->currentIndex()})[0]);
|
||||
lblDetectorFirmware->setText(QString(retval.c_str()));
|
||||
retval = det->getDetectorServerVersion(
|
||||
{comboDetector->currentIndex()})[0];
|
||||
lblDetectorSoftware->setText(QString(retval.c_str()));
|
||||
}
|
||||
CATCH_DISPLAY("Could not get versions.", "qTabDebugging::SetParameters")
|
||||
}
|
||||
void qTabDebugging::EnableTest() {
|
||||
btnTest->setEnabled(chkDetectorFirmware->isChecked() ||
|
||||
chkDetectorBus->isChecked());
|
||||
lblBusTestOk->hide();
|
||||
lblBusTestFail->hide();
|
||||
lblFwTestOk->hide();
|
||||
lblFwTestFail->hide();
|
||||
}
|
||||
|
||||
void qTabDebugging::TestDetector() {
|
||||
LOG(logINFO) << "Testing Readout";
|
||||
|
||||
try {
|
||||
QString moduleName = "Module";
|
||||
if (det->getDetectorType().squash() == slsDetectorDefs::EIGER) {
|
||||
moduleName = "Half Module";
|
||||
// hide results if clicking button again
|
||||
EnableTest();
|
||||
|
||||
// detector firmware
|
||||
if (chkDetectorFirmware->isChecked()) {
|
||||
try {
|
||||
det->executeFirmwareTest({comboDetector->currentIndex() - 1});
|
||||
LOG(logINFO) << "Detector Firmware Test: Pass";
|
||||
lblFwTestOk->show();
|
||||
} catch (std::exception &e) {
|
||||
LOG(logWARNING)
|
||||
<< "Detector Firmware Test: Fail (" << e.what() << ")";
|
||||
lblFwTestFail->show();
|
||||
}
|
||||
}
|
||||
|
||||
// detector CPU-FPGA bus
|
||||
if (chkDetectorBus->isChecked()) {
|
||||
try {
|
||||
det->executeBusTest({comboDetector->currentIndex() - 1});
|
||||
LOG(logINFO) << "Detector Bus Test: Pass";
|
||||
lblBusTestOk->show();
|
||||
} catch (std::exception &e) {
|
||||
LOG(logWARNING) << "Detector Bus Test: Fail (" << e.what() << ")";
|
||||
lblBusTestFail->show();
|
||||
}
|
||||
|
||||
// construct message
|
||||
QString message = QString("<nobr>Test Results for %1:</nobr><br><br>")
|
||||
.arg(comboDetector->currentText());
|
||||
|
||||
// detector firmware
|
||||
if (chkDetectorFirmware->isChecked()) {
|
||||
try {
|
||||
det->executeFirmwareTest({comboDetector->currentIndex()});
|
||||
message.append(QString("<nobr>%1 Firmware: PASS</nobr><br>")
|
||||
.arg(moduleName));
|
||||
LOG(logINFO) << "Detector Firmware Test: Pass";
|
||||
}
|
||||
CATCH_DISPLAY("Firmware test failed.",
|
||||
"qTabDebugging::TestDetector")
|
||||
}
|
||||
|
||||
// detector CPU-FPGA bus
|
||||
if (chkDetectorBus->isChecked()) {
|
||||
try {
|
||||
det->executeBusTest({comboDetector->currentIndex()});
|
||||
message.append(
|
||||
QString("<nobr>%1 Bus: PASS</nobr><br>").arg(moduleName));
|
||||
LOG(logINFO) << "Detector Bus Test: Pass";
|
||||
}
|
||||
CATCH_DISPLAY("Bus test failed.", "qTabDebugging::TestDetector")
|
||||
}
|
||||
|
||||
// display message
|
||||
qDefs::Message(qDefs::INFORMATION, message.toAscii().constData(),
|
||||
"qTabDebugging::TestDetector");
|
||||
}
|
||||
CATCH_DISPLAY("Could not execute digital test.",
|
||||
"qTabDebugging::TestDetector")
|
||||
}
|
||||
|
||||
void qTabDebugging::Refresh() {
|
||||
LOG(logDEBUG) << "**Updating Debugging Tab";
|
||||
GetDetectorStatus();
|
||||
LOG(logDEBUG) << "**Updated Debugging Tab";
|
||||
}
|
||||
void qTabDebugging::Refresh() { GetInfo(); }
|
||||
|
||||
} // namespace sls
|
||||
|
@ -279,15 +279,19 @@ void qTabDeveloper::Initialization() {
|
||||
void qTabDeveloper::PopulateDetectors() {
|
||||
LOG(logDEBUG) << "Populating detectors";
|
||||
|
||||
comboDetector->clear();
|
||||
comboDetector->addItem("All");
|
||||
auto res = det->getHostname();
|
||||
if (det->size() > 1) {
|
||||
for (auto &it : res) {
|
||||
comboDetector->addItem(QString(it.c_str()));
|
||||
try {
|
||||
comboDetector->clear();
|
||||
comboDetector->addItem("All");
|
||||
auto res = det->getHostname();
|
||||
if (det->size() > 1) {
|
||||
for (auto &it : res) {
|
||||
comboDetector->addItem(QString(it.c_str()));
|
||||
}
|
||||
}
|
||||
comboDetector->setCurrentIndex(0);
|
||||
}
|
||||
comboDetector->setCurrentIndex(0);
|
||||
CATCH_DISPLAY("Could not populate readouts for dacs/adcs",
|
||||
"qTabDeveloper::PopulateDetectors")
|
||||
}
|
||||
|
||||
slsDetectorDefs::dacIndex
|
||||
|
@ -20,6 +20,7 @@ qTabMeasurement::qTabMeasurement(QWidget *parent, Detector *detector,
|
||||
qTabMeasurement::~qTabMeasurement() { delete progressTimer; }
|
||||
|
||||
void qTabMeasurement::SetupWidgetWindow() {
|
||||
setFont(QFont("Carlito", 9, QFont::Normal));
|
||||
// palette
|
||||
red = QPalette();
|
||||
red.setColor(QPalette::Active, QPalette::WindowText, Qt::red);
|
||||
@ -384,7 +385,7 @@ void qTabMeasurement::GetTimingMode() {
|
||||
|
||||
void qTabMeasurement::SetTimingMode(int val) {
|
||||
LOG(logINFO) << "Setting timing mode:"
|
||||
<< comboTimingMode->currentText().toAscii().data();
|
||||
<< comboTimingMode->currentText().toLatin1().data();
|
||||
try {
|
||||
det->setTimingMode(static_cast<slsDetectorDefs::timingMode>(val));
|
||||
EnableWidgetsforTimingMode();
|
||||
@ -420,7 +421,7 @@ void qTabMeasurement::GetBurstMode() {
|
||||
|
||||
void qTabMeasurement::SetBurstMode(int val) {
|
||||
LOG(logINFO) << "Setting burst mode:"
|
||||
<< comboBurstMode->currentText().toAscii().data();
|
||||
<< comboBurstMode->currentText().toLatin1().data();
|
||||
try {
|
||||
det->setBurstMode(static_cast<slsDetectorDefs::burstMode>(val));
|
||||
ShowTriggerDelay();
|
||||
@ -800,7 +801,7 @@ void qTabMeasurement::SetFileName(bool force) {
|
||||
if (dispFileName->isModified() || force) {
|
||||
dispFileName->setModified(false);
|
||||
std::string val =
|
||||
std::string(dispFileName->text().toAscii().constData());
|
||||
std::string(dispFileName->text().toLatin1().constData());
|
||||
LOG(logINFO) << "Setting File Name Prefix:" << val;
|
||||
try {
|
||||
det->setFileNamePrefix(val);
|
||||
@ -966,7 +967,7 @@ void qTabMeasurement::AcquireFinished() {
|
||||
void qTabMeasurement::AbortAcquire(QString exmsg) {
|
||||
LOG(logINFORED) << "Abort Acquire";
|
||||
qDefs::ExceptionMessage("Acquire unsuccessful.",
|
||||
exmsg.toAscii().constData(),
|
||||
exmsg.toLatin1().constData(),
|
||||
"qDrawPlot::AcquireFinished");
|
||||
isAcquisitionStopped = true;
|
||||
AcquireFinished();
|
||||
@ -978,8 +979,7 @@ void qTabMeasurement::Enable(bool enable) {
|
||||
|
||||
// shortcut each time, else it doesnt work a second time
|
||||
btnStart->setShortcut(QApplication::translate("TabMeasurementObject",
|
||||
"Shift+Space", nullptr,
|
||||
QApplication::UnicodeUTF8));
|
||||
"Shift+Space", nullptr));
|
||||
}
|
||||
|
||||
void qTabMeasurement::Refresh() {
|
||||
|
@ -78,9 +78,9 @@ void qTabMessages::ExecuteCommand() {
|
||||
|
||||
QString command = param.at(0);
|
||||
param.removeFirst();
|
||||
LOG(logINFO) << "Executing Command:[" << command.toAscii().constData()
|
||||
LOG(logINFO) << "Executing Command:[" << command.toLatin1().constData()
|
||||
<< "] with Arguments:["
|
||||
<< param.join(" ").toAscii().constData() << "]";
|
||||
<< param.join(" ").toLatin1().constData() << "]";
|
||||
|
||||
process->setProcessChannelMode(QProcess::MergedChannels);
|
||||
process->start(command, param);
|
||||
@ -117,15 +117,15 @@ void qTabMessages::SaveLog() {
|
||||
outfile.setFileName(fName);
|
||||
if (outfile.open(QIODevice::WriteOnly | QIODevice::Text)) {
|
||||
QTextStream out(&outfile);
|
||||
out << dispLog->toPlainText() << endl;
|
||||
out << dispLog->toPlainText() << '\n';
|
||||
std::string mess =
|
||||
std::string("The Log has been successfully saved to ") +
|
||||
fName.toAscii().constData();
|
||||
fName.toLatin1().constData();
|
||||
qDefs::Message(qDefs::INFORMATION, mess, "TabMessages::SaveLog");
|
||||
LOG(logINFO) << mess;
|
||||
} else {
|
||||
LOG(logWARNING) << "Attempt to save log file failed: "
|
||||
<< fName.toAscii().constData();
|
||||
<< fName.toLatin1().constData();
|
||||
qDefs::Message(qDefs::WARNING, "Attempt to save log file failed.",
|
||||
"qTabMessages::SaveLog");
|
||||
}
|
||||
|
@ -29,6 +29,7 @@ void qTabPlot::SetupWidgetWindow() {
|
||||
stackedWidget1D->setCurrentIndex(0);
|
||||
stackedWidget2D->setCurrentIndex(0);
|
||||
// Plot Axis
|
||||
// its not spinboxes to not take value when checkbox checked
|
||||
dispXMin->setValidator(new QDoubleValidator(dispXMin));
|
||||
dispYMin->setValidator(new QDoubleValidator(dispYMin));
|
||||
dispZMin->setValidator(new QDoubleValidator(dispZMin));
|
||||
@ -73,9 +74,11 @@ void qTabPlot::SetupWidgetWindow() {
|
||||
Initialization();
|
||||
Refresh();
|
||||
|
||||
// set zmq high water mark to GUI_ZMQ_RCV_HWM (2)
|
||||
spinSndHwm->setValue(qDefs::GUI_ZMQ_RCV_HWM);
|
||||
spinRcvHwm->setValue(qDefs::GUI_ZMQ_RCV_HWM);
|
||||
// update both zmq high water mark to GUI_ZMQ_RCV_HWM (2)
|
||||
comboHwm->setCurrentIndex(SND_HWM);
|
||||
spinHwm->setValue(qDefs::GUI_ZMQ_RCV_HWM);
|
||||
comboHwm->setCurrentIndex(RX_HWM);
|
||||
spinHwm->setValue(qDefs::GUI_ZMQ_RCV_HWM);
|
||||
|
||||
if (chkGapPixels->isEnabled()) {
|
||||
chkGapPixels->setChecked(true);
|
||||
@ -85,10 +88,9 @@ void qTabPlot::SetupWidgetWindow() {
|
||||
void qTabPlot::Initialization() {
|
||||
// Plotting frequency box
|
||||
connect(chkNoPlot, SIGNAL(toggled(bool)), this, SLOT(SetPlot()));
|
||||
connect(spinSndHwm, SIGNAL(valueChanged(int)), this,
|
||||
SLOT(SetStreamingHwm(int)));
|
||||
connect(spinRcvHwm, SIGNAL(valueChanged(int)), this,
|
||||
SLOT(SetReceivingHwm(int)));
|
||||
connect(comboHwm, SIGNAL(currentIndexChanged(int)), this,
|
||||
SLOT(SelectHwm(int)));
|
||||
connect(spinHwm, SIGNAL(valueChanged(int)), this, SLOT(SetHwm(int)));
|
||||
connect(comboFrequency, SIGNAL(currentIndexChanged(int)), this,
|
||||
SLOT(SetStreamingFrequency()));
|
||||
connect(comboTimeGapUnit, SIGNAL(currentIndexChanged(int)), this,
|
||||
@ -196,15 +198,14 @@ void qTabPlot::Initialization() {
|
||||
void qTabPlot::Select1DPlot(bool enable) {
|
||||
LOG(logDEBUG) << "Selecting " << (enable ? "1" : "2") << "D Plot";
|
||||
is1d = enable;
|
||||
box1D->setEnabled(enable);
|
||||
box2D->setEnabled(!enable);
|
||||
chkZAxis->setEnabled(!enable);
|
||||
dispZAxis->setEnabled(!enable);
|
||||
chkZMin->setEnabled(!enable);
|
||||
chkZMax->setEnabled(!enable);
|
||||
dispZMin->setEnabled(!enable);
|
||||
dispZMax->setEnabled(!enable);
|
||||
plot->Select1dPlot(enable);
|
||||
stackedPlotOptions->setCurrentIndex(is1d ? 0 : 1);
|
||||
chkZAxis->setEnabled(!is1d);
|
||||
dispZAxis->setEnabled(!is1d);
|
||||
chkZMin->setEnabled(!is1d);
|
||||
chkZMax->setEnabled(!is1d);
|
||||
dispZMin->setEnabled(!is1d);
|
||||
dispZMax->setEnabled(!is1d);
|
||||
plot->Select1dPlot(is1d);
|
||||
SetTitles();
|
||||
SetXYRange();
|
||||
if (!is1d) {
|
||||
@ -221,14 +222,12 @@ void qTabPlot::SetPlot() {
|
||||
plotEnable = true;
|
||||
}
|
||||
comboFrequency->setEnabled(plotEnable);
|
||||
lblSndHwm->setEnabled(plotEnable);
|
||||
spinSndHwm->setEnabled(plotEnable);
|
||||
lblRcvHwm->setEnabled(plotEnable);
|
||||
spinRcvHwm->setEnabled(plotEnable);
|
||||
comboHwm->setEnabled(plotEnable);
|
||||
spinHwm->setEnabled(plotEnable);
|
||||
stackedTimeInterval->setEnabled(plotEnable);
|
||||
box1D->setEnabled(plotEnable);
|
||||
box2D->setEnabled(plotEnable);
|
||||
boxSave->setEnabled(plotEnable);
|
||||
stackedPlotOptions->setEnabled(plotEnable);
|
||||
btnSave->setEnabled(plotEnable);
|
||||
btnClone->setEnabled(plotEnable);
|
||||
boxPlotAxis->setEnabled(plotEnable);
|
||||
|
||||
if (plotEnable) {
|
||||
@ -249,8 +248,6 @@ void qTabPlot::Set1DPlotOptionsRight() {
|
||||
stackedWidget1D->setCurrentIndex(0);
|
||||
else
|
||||
stackedWidget1D->setCurrentIndex(i + 1);
|
||||
box1D->setTitle(
|
||||
QString("1D Plot Options %1").arg(stackedWidget1D->currentIndex() + 1));
|
||||
}
|
||||
|
||||
void qTabPlot::Set1DPlotOptionsLeft() {
|
||||
@ -260,8 +257,6 @@ void qTabPlot::Set1DPlotOptionsLeft() {
|
||||
stackedWidget1D->setCurrentIndex(stackedWidget1D->count() - 1);
|
||||
else
|
||||
stackedWidget1D->setCurrentIndex(i - 1);
|
||||
box1D->setTitle(
|
||||
QString("1D Plot Options %1").arg(stackedWidget1D->currentIndex() + 1));
|
||||
}
|
||||
|
||||
void qTabPlot::Set2DPlotOptionsRight() {
|
||||
@ -271,8 +266,6 @@ void qTabPlot::Set2DPlotOptionsRight() {
|
||||
stackedWidget2D->setCurrentIndex(0);
|
||||
else
|
||||
stackedWidget2D->setCurrentIndex(i + 1);
|
||||
box2D->setTitle(
|
||||
QString("2D Plot Options %1").arg(stackedWidget2D->currentIndex() + 1));
|
||||
}
|
||||
|
||||
void qTabPlot::Set2DPlotOptionsLeft() {
|
||||
@ -282,8 +275,6 @@ void qTabPlot::Set2DPlotOptionsLeft() {
|
||||
stackedWidget2D->setCurrentIndex(stackedWidget2D->count() - 1);
|
||||
else
|
||||
stackedWidget2D->setCurrentIndex(i - 1);
|
||||
box2D->setTitle(
|
||||
QString("2D Plot Options %1").arg(stackedWidget2D->currentIndex() + 1));
|
||||
}
|
||||
|
||||
void qTabPlot::EnablePersistency(bool enable) {
|
||||
@ -711,20 +702,34 @@ void qTabPlot::SetStreamingFrequency() {
|
||||
&qTabPlot::GetStreamingFrequency)
|
||||
}
|
||||
|
||||
void qTabPlot::SelectHwm(int value) { GetHwm(); }
|
||||
|
||||
void qTabPlot::GetHwm() {
|
||||
if (comboHwm->currentIndex() == SND_HWM)
|
||||
GetStreamingHwm();
|
||||
else
|
||||
GetReceivingHwm();
|
||||
}
|
||||
|
||||
void qTabPlot::SetHwm(int value) {
|
||||
if (comboHwm->currentIndex() == SND_HWM)
|
||||
SetStreamingHwm(value);
|
||||
else
|
||||
SetReceivingHwm(value);
|
||||
}
|
||||
|
||||
void qTabPlot::GetStreamingHwm() {
|
||||
LOG(logDEBUG) << "Getting Streaming Hwm for receiver";
|
||||
disconnect(spinSndHwm, SIGNAL(valueChanged(int)), this,
|
||||
SLOT(SetStreamingHwm(int)));
|
||||
disconnect(spinHwm, SIGNAL(valueChanged(int)), this, SLOT(SetHwm(int)));
|
||||
try {
|
||||
int value = det->getRxZmqHwm().tsquash(
|
||||
"Inconsistent streaming hwm for all receivers.");
|
||||
LOG(logDEBUG) << "Got streaming hwm for receiver " << value;
|
||||
spinSndHwm->setValue(value);
|
||||
spinHwm->setValue(value);
|
||||
}
|
||||
CATCH_DISPLAY("Could not get streaming hwm for receiver.",
|
||||
"qTabPlot::GetStreamingHwm")
|
||||
connect(spinSndHwm, SIGNAL(valueChanged(int)), this,
|
||||
SLOT(SetStreamingHwm(int)));
|
||||
connect(spinHwm, SIGNAL(valueChanged(int)), this, SLOT(SetHwm(int)));
|
||||
}
|
||||
|
||||
void qTabPlot::SetStreamingHwm(int value) {
|
||||
@ -733,17 +738,20 @@ void qTabPlot::SetStreamingHwm(int value) {
|
||||
det->setRxZmqHwm(value);
|
||||
}
|
||||
CATCH_HANDLE("Could not set streaming hwm for receiver.",
|
||||
"qTabPlot::SetStreamingHwm", this, &qTabPlot::GetStreamingHwm)
|
||||
"qTabPlot::SetStreamingHwm", this, &qTabPlot::GetHwm)
|
||||
}
|
||||
|
||||
void qTabPlot::GetReceivingHwm() {
|
||||
LOG(logDEBUG) << "Getting Receiving Hwm for client";
|
||||
disconnect(spinHwm, SIGNAL(valueChanged(int)), this, SLOT(SetHwm(int)));
|
||||
try {
|
||||
int value = det->getClientZmqHwm();
|
||||
LOG(logDEBUG) << "Got receiving hwm for client " << value;
|
||||
spinHwm->setValue(value);
|
||||
}
|
||||
CATCH_DISPLAY("Could not get receiving hwm for client.",
|
||||
"qTabPlot::GetReceivingHwm")
|
||||
connect(spinHwm, SIGNAL(valueChanged(int)), this, SLOT(SetHwm(int)));
|
||||
}
|
||||
|
||||
void qTabPlot::SetReceivingHwm(int value) {
|
||||
@ -752,7 +760,7 @@ void qTabPlot::SetReceivingHwm(int value) {
|
||||
det->setClientZmqHwm(value);
|
||||
}
|
||||
CATCH_HANDLE("Could not set receiving hwm from client.",
|
||||
"qTabPlot::SetReceivingHwm", this, &qTabPlot::GetReceivingHwm)
|
||||
"qTabPlot::SetReceivingHwm", this, &qTabPlot::GetHwm)
|
||||
}
|
||||
|
||||
void qTabPlot::Refresh() {
|
||||
@ -760,19 +768,8 @@ void qTabPlot::Refresh() {
|
||||
|
||||
if (!plot->GetIsRunning()) {
|
||||
boxFrequency->setEnabled(true);
|
||||
|
||||
// streaming frequency
|
||||
if (!chkNoPlot->isChecked()) {
|
||||
comboFrequency->setEnabled(true);
|
||||
stackedTimeInterval->setEnabled(true);
|
||||
lblSndHwm->setEnabled(true);
|
||||
spinSndHwm->setEnabled(true);
|
||||
lblRcvHwm->setEnabled(true);
|
||||
spinRcvHwm->setEnabled(true);
|
||||
}
|
||||
GetStreamingFrequency();
|
||||
GetStreamingHwm();
|
||||
GetReceivingHwm();
|
||||
GetHwm();
|
||||
// gain plot, gap pixels enable
|
||||
switch (det->getDetectorType().squash()) {
|
||||
case slsDetectorDefs::EIGER:
|
||||
|
@ -18,7 +18,6 @@ qTabSettings::qTabSettings(QWidget *parent, Detector *detector)
|
||||
qTabSettings::~qTabSettings() {}
|
||||
|
||||
void qTabSettings::SetupWidgetWindow() {
|
||||
|
||||
comboHV->hide();
|
||||
lblComboHV->hide();
|
||||
lblSpinHV->hide();
|
||||
@ -402,7 +401,7 @@ void qTabSettings::SetGainMode(int index) {
|
||||
}
|
||||
|
||||
LOG(logINFO) << "Setting Gain Mode to "
|
||||
<< comboGainMode->currentText().toAscii().data();
|
||||
<< comboGainMode->currentText().toLatin1().data();
|
||||
auto val = static_cast<slsDetectorDefs::gainMode>(index);
|
||||
try {
|
||||
|
||||
@ -449,7 +448,7 @@ void qTabSettings::GetDynamicRange() {
|
||||
|
||||
void qTabSettings::SetDynamicRange(int index) {
|
||||
LOG(logINFO) << "Setting dynamic range to "
|
||||
<< comboDynamicRange->currentText().toAscii().data();
|
||||
<< comboDynamicRange->currentText().toLatin1().data();
|
||||
try {
|
||||
switch (index) {
|
||||
case DYNAMICRANGE_32:
|
||||
|
17
slsDetectorGui/src/qVersionResolve.cpp
Normal file
17
slsDetectorGui/src/qVersionResolve.cpp
Normal file
@ -0,0 +1,17 @@
|
||||
// SPDX-License-Identifier: LGPL-3.0-or-other
|
||||
// Copyright (C) 2021 Contributors to the SLS Detector Package
|
||||
#include "qVersionResolve.h"
|
||||
#include <iostream>
|
||||
|
||||
namespace sls {
|
||||
|
||||
int qResolve_GetQFontWidth(const QFontMetrics fm, const QString &text,
|
||||
int len) {
|
||||
#if QT_VERSION >= QT_VERSION_CHECK(5, 11, 0)
|
||||
return fm.horizontalAdvance(text, len);
|
||||
#else
|
||||
return fm.width(text, len);
|
||||
#endif
|
||||
};
|
||||
|
||||
} // namespace sls
|
Reference in New Issue
Block a user