├── configure ├── RULES.ioc ├── RULES_DIRS ├── RULES_TOP ├── RULES ├── Makefile ├── CONFIG └── CONFIG_SITE ├── qepluginApp └── project │ ├── qeplugin │ ├── qeplugin.json │ ├── QEForm.png │ ├── QELink.png │ ├── QELog.png │ ├── QEPlot.png │ ├── QEFrame.png │ ├── QEImage.png │ ├── QELabel.png │ ├── QELogin.png │ ├── QERecipe.png │ ├── QEScript.png │ ├── QEShape.png │ ├── QESlider.png │ ├── QETable.png │ ├── QBitStatus.png │ ├── QEBitStatus.png │ ├── QECalcout.png │ ├── QECheckBox.png │ ├── QEComboBox.png │ ├── QEComment.png │ ├── QEDateTime.png │ ├── QEFileImage.png │ ├── QEFormGrid.png │ ├── QEGroupBox.png │ ├── QEHistogram.png │ ├── QELCDNumber.png │ ├── QELineEdit.png │ ├── QENTTable.png │ ├── QEPeriodic.png │ ├── QEPlotter.png │ ├── QEPvFrame.png │ ├── QESelector.png │ ├── QESpinBox.png │ ├── QESurface.png │ ├── QEWaterfall.png │ ├── QRadioGroup.png │ ├── QAnalogSlider.png │ ├── QECorrelation.png │ ├── QEExitButton.png │ ├── QEFileBrowser.png │ ├── QEGeneralEdit.png │ ├── QEMenuButton.png │ ├── QENumericEdit.png │ ├── QEPushButton.png │ ├── QEPvLoadSave.png │ ├── QERadioButton.png │ ├── QERadioGroup.png │ ├── QEScratchPad.png │ ├── QESimpleShape.png │ ├── QESpectrogram.png │ ├── QEStripChart.png │ ├── QNumericEdit.png │ ├── QSimpleShape.png │ ├── QEAnalogSlider.png │ ├── QEArchiveStatus.png │ ├── QEDistribution.png │ ├── QEFormGroupBox.png │ ├── QEPvProperties.png │ ├── QEAnalogIndicator.png │ ├── QEConfiguredLayout.png │ ├── QEDescriptionLabel.png │ ├── QEDynamicFormGrid.png │ ├── QEFormStateChange.png │ ├── QEPvLoadSaveButton.png │ ├── QEResizeableFrame.png │ ├── QEScalarHistogram.png │ ├── QESubstitutedLabel.png │ ├── QEAnalogProgressBar.png │ ├── QEArchiveNameSearch.png │ ├── QEWaveformHistogram.png │ ├── QEAlarmColourSelection.png │ ├── QEDesignerPluginGroupNames.h │ ├── QEPluginLibrary_global.h │ └── QEDesignerPlugin.h │ ├── QEMenuButton │ ├── value_reset.png │ ├── menu_button_up_enabled.png │ ├── menu_button_del_disabled.png │ ├── menu_button_del_enabled.png │ ├── menu_button_down_enabled.png │ ├── menu_button_new_disabled.png │ ├── menu_button_new_enabled.png │ ├── menu_button_up_disabled.png │ ├── menu_button_down_disabled.png │ ├── QEMenuButton.qrc │ └── QEMenuButton.pri │ ├── QEComment │ ├── QEComment.pri │ └── QECommentSetupDialog.h │ └── QEPeriodic │ ├── QEPeriodic.pri │ ├── PeriodicElementSetupForm.h │ ├── PeriodicSetupDialog.h │ ├── QEPeriodicManager.h │ ├── PeriodicSetupDialog.ui │ ├── QEPeriodicTaskMenu.h │ └── QEPeriodicTaskMenu.cpp ├── qeframeworkSup └── project │ ├── widgets │ ├── QEWidget │ │ ├── qeplugin.json │ │ ├── QEGlobalStyle.h │ │ ├── QEFrameworkLibraryGlobal.h │ │ └── QEWidget.pri │ ├── QEImage │ │ ├── pause.png │ │ ├── play.png │ │ ├── record.png │ │ ├── save.png │ │ ├── select.png │ │ ├── stop.png │ │ ├── target.png │ │ ├── zoom.png │ │ ├── cameraROI.png │ │ ├── flipRotate.png │ │ ├── hLineCursor.png │ │ ├── lineCursor.png │ │ ├── vLineCursor.png │ │ ├── circleCursor.png │ │ ├── markupDisplay.png │ │ ├── regionCursor.png │ │ ├── targetCursor.png │ │ ├── cameraROIreset.png │ │ ├── inttypes.h │ │ ├── fullScreenWindow.cpp │ │ ├── QEImage.qrc │ │ ├── zoomMenu.h │ │ ├── fullScreenWindow.h │ │ ├── imageDataFormats.h │ │ ├── QEImageMarkupThickness.h │ │ ├── imageMarkupLegendSetText.h │ │ ├── QEImageMarkupThickness.cpp │ │ ├── flipRotateMenu.h │ │ ├── QEImageCustomisationDefault.xml │ │ ├── imageMarkupLegendSetText.cpp │ │ ├── markupDisplayMenu.h │ │ ├── screenSelectDialog.h │ │ ├── selectMenu.h │ │ ├── markupText.h │ │ ├── QEImageMarkupThickness.ui │ │ ├── markupTarget.h │ │ ├── markupBeam.h │ │ └── screenSelectDialog.ui │ ├── QEStripChart │ │ ├── go_fwd.png │ │ ├── pause.png │ │ ├── play.png │ │ ├── archive.png │ │ ├── go_back.png │ │ ├── log_scale.png │ │ ├── open_file.png │ │ ├── save_file.png │ │ ├── select_time.png │ │ ├── write_all.png │ │ ├── linear_scale.png │ │ ├── normal_video.png │ │ ├── page_backward.png │ │ ├── page_forward.png │ │ ├── reverse_video.png │ │ ├── powered_by_asp.png │ │ ├── select_date_times.png │ │ ├── QEStripChart.qrc │ │ ├── QEStripChartDurationDialog.h │ │ ├── QEStripChartRangeDialog.h │ │ ├── QEStripChartNames.cpp │ │ ├── QEStripChartStatistics.h │ │ └── QEStripChartState.h │ ├── QEPvLoadSave │ │ ├── copy_all.png │ │ ├── read_all.png │ │ ├── ypoc_all.png │ │ ├── copy_subset.png │ │ ├── read_subset.png │ │ ├── write_all.png │ │ ├── ypoc_subset.png │ │ ├── archive_time.png │ │ ├── write_subset.png │ │ ├── QEPvLoadSave.qrc │ │ ├── QEPvLoadSaveGroupNameDialog.h │ │ ├── QEPvLoadSaveAccessFail.h │ │ ├── QEPvLoadSaveAccessFail.ui │ │ ├── QEPvLoadSaveTimeDialog.h │ │ ├── QEPvLoadSaveValueEditDialog.h │ │ ├── QEPvLoadSaveCommon.cpp │ │ └── QEPvLoadSaveAccessFail.cpp │ ├── QEPvProperties │ │ ├── QEPvProperties.qrc │ │ └── QEPvProperties.pri │ ├── QECorrelation │ │ └── QECorrelation.pri │ ├── QEComment │ │ ├── QEComment.pri │ │ └── QEComment.h │ ├── QESelector │ │ └── QESelector.pri │ ├── QEPlot │ │ └── QEPlot.pri │ ├── QEExitButton │ │ ├── QEExitButton.pri │ │ └── QEExitButton.h │ ├── QELog │ │ └── QELog.pri │ ├── QEForm │ │ └── QEForm.pri │ ├── QELink │ │ └── QELink.pri │ ├── QELogin │ │ └── QELogin.pri │ ├── QEShape │ │ └── QEShape.pri │ ├── QERecipe │ │ └── QERecipe.pri │ ├── QEScript │ │ └── QEScript.pri │ ├── QESlider │ │ └── QESlider.pri │ ├── QECalcout │ │ └── QECalcout.pri │ ├── QESpinBox │ │ └── QESpinBox.pri │ ├── QEDateTime │ │ ├── QEDateTime.pri │ │ └── QEDateTime.h │ ├── QEDistribution │ │ └── QEDistribution.pri │ ├── QEComboBox │ │ └── QEComboBox.pri │ ├── QEFileImage │ │ └── QEFileImage.pri │ ├── QELCDNumber │ │ └── QELCDNumber.pri │ ├── QEFormStateChange │ │ └── QEFormStateChange.pri │ ├── QEFileBrowser │ │ └── QEFileBrowser.pri │ ├── QEAlarmColourSelection │ │ ├── QEAlarmColourSelection.pri │ │ └── QEAlarmColourSelection.h │ ├── QEAnalogIndicator │ │ └── QEAnalogIndicator.pri │ ├── QEFrame │ │ └── QEFrame.pri │ ├── QEResizeableFrame │ │ └── QEResizeableFrame.pri │ ├── QETable │ │ └── QETable.pri │ ├── QEConfiguredLayout │ │ └── QEConfiguredLayout.pri │ ├── QEPvLoadSaveButton │ │ └── QEPvLoadSaveButton.pri │ ├── QESubstitutedLabel │ │ └── QESubstitutedLabel.pri │ ├── QEAnalogProgressBar │ │ └── QEAnalogProgressBar.pri │ ├── QELabel │ │ └── QELabel.pri │ ├── QEGroupBox │ │ └── QEGroupBox.pri │ ├── QEGeneralEdit │ │ └── QEGeneralEdit.pri │ ├── QELineEdit │ │ └── QELineEdit.pri │ ├── QEBitStatus │ │ └── QEBitStatus.pri │ ├── QERadioGroup │ │ └── QERadioGroup.pri │ ├── QEHistogram │ │ └── QEHistogram.pri │ ├── QENumericEdit │ │ └── QENumericEdit.pri │ ├── QESimpleShape │ │ └── QESimpleShape.pri │ ├── QEAnalogSlider │ │ └── QEAnalogSlider.pri │ ├── QEPeriodic │ │ ├── QEPeriodic.pri │ │ └── PeriodicDialog.h │ ├── QEButton │ │ └── QEButton.pri │ ├── QEAbstractWidget │ │ ├── QEAbstractWidget.pri │ │ └── QEAbstractWidget.cpp │ ├── QEFormGrid │ │ └── QEFormGrid.pri │ ├── QE2DDataVisualisation │ │ └── QE2DDataVisualisation.pri │ ├── QEScratchPad │ │ └── QEScratchPad.pri │ ├── QEMenuButton │ │ └── QEMenuButton.pri │ └── QEPlotter │ │ ├── QEPlotter.pri │ │ ├── QEPlotterItemDialog.h │ │ ├── QEPlotterState.h │ │ └── QEPlotterToolBar.h │ ├── archive │ ├── drag_icon.png │ ├── archive.qrc │ ├── archive.pri │ └── maiaFault.h │ ├── threads │ └── threads.pri │ ├── adaptation_parameters │ └── adaptation_parameters.pri │ ├── common │ ├── PasswordDialog.h │ ├── QEDelayedText.h │ ├── PasswordDialog.cpp │ ├── QEPVNameSelectDialog.h │ ├── QEDelayedText.cpp │ ├── QEScanTimers.h │ ├── QETwinScaleSelectDialog.h │ ├── QEPvWriteOnce.h │ └── QEQuickSort.h │ ├── protocol │ ├── protocol.pri │ ├── QEPvaCheck.h │ └── QEBaseClient.cpp │ └── data │ ├── QCaConnectionInfo.h │ ├── QEIntegerArray.h │ ├── QEByteArray.h │ ├── QCaDateTime.h │ ├── QCaConnectionInfo.cpp │ ├── QCaVariableNamePropertyManager.h │ └── data.pri ├── documentation └── we_have_moved.txt ├── archapplDataSup ├── Makefile └── src │ └── archapplData.h ├── .gitignore ├── README.md └── Makefile /configure/RULES.ioc: -------------------------------------------------------------------------------- 1 | #RULES.ioc 2 | include $(CONFIG)/RULES.ioc 3 | -------------------------------------------------------------------------------- /configure/RULES_DIRS: -------------------------------------------------------------------------------- 1 | #RULES_DIRS 2 | include $(CONFIG)/RULES_DIRS 3 | -------------------------------------------------------------------------------- /configure/RULES_TOP: -------------------------------------------------------------------------------- 1 | #RULES_TOP 2 | include $(CONFIG)/RULES_TOP 3 | 4 | -------------------------------------------------------------------------------- /qepluginApp/project/qeplugin/qeplugin.json: -------------------------------------------------------------------------------- 1 | { "Keys": [ "qeplugin" ] } 2 | -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEWidget/qeplugin.json: -------------------------------------------------------------------------------- 1 | { "Keys": [ "qeplugin" ] } 2 | -------------------------------------------------------------------------------- /qepluginApp/project/qeplugin/QEForm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qepluginApp/project/qeplugin/QEForm.png -------------------------------------------------------------------------------- /qepluginApp/project/qeplugin/QELink.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qepluginApp/project/qeplugin/QELink.png -------------------------------------------------------------------------------- /qepluginApp/project/qeplugin/QELog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qepluginApp/project/qeplugin/QELog.png -------------------------------------------------------------------------------- /qepluginApp/project/qeplugin/QEPlot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qepluginApp/project/qeplugin/QEPlot.png -------------------------------------------------------------------------------- /qepluginApp/project/qeplugin/QEFrame.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qepluginApp/project/qeplugin/QEFrame.png -------------------------------------------------------------------------------- /qepluginApp/project/qeplugin/QEImage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qepluginApp/project/qeplugin/QEImage.png -------------------------------------------------------------------------------- /qepluginApp/project/qeplugin/QELabel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qepluginApp/project/qeplugin/QELabel.png -------------------------------------------------------------------------------- /qepluginApp/project/qeplugin/QELogin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qepluginApp/project/qeplugin/QELogin.png -------------------------------------------------------------------------------- /qepluginApp/project/qeplugin/QERecipe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qepluginApp/project/qeplugin/QERecipe.png -------------------------------------------------------------------------------- /qepluginApp/project/qeplugin/QEScript.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qepluginApp/project/qeplugin/QEScript.png -------------------------------------------------------------------------------- /qepluginApp/project/qeplugin/QEShape.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qepluginApp/project/qeplugin/QEShape.png -------------------------------------------------------------------------------- /qepluginApp/project/qeplugin/QESlider.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qepluginApp/project/qeplugin/QESlider.png -------------------------------------------------------------------------------- /qepluginApp/project/qeplugin/QETable.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qepluginApp/project/qeplugin/QETable.png -------------------------------------------------------------------------------- /qeframeworkSup/project/archive/drag_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qeframeworkSup/project/archive/drag_icon.png -------------------------------------------------------------------------------- /qepluginApp/project/qeplugin/QBitStatus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qepluginApp/project/qeplugin/QBitStatus.png -------------------------------------------------------------------------------- /qepluginApp/project/qeplugin/QEBitStatus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qepluginApp/project/qeplugin/QEBitStatus.png -------------------------------------------------------------------------------- /qepluginApp/project/qeplugin/QECalcout.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qepluginApp/project/qeplugin/QECalcout.png -------------------------------------------------------------------------------- /qepluginApp/project/qeplugin/QECheckBox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qepluginApp/project/qeplugin/QECheckBox.png -------------------------------------------------------------------------------- /qepluginApp/project/qeplugin/QEComboBox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qepluginApp/project/qeplugin/QEComboBox.png -------------------------------------------------------------------------------- /qepluginApp/project/qeplugin/QEComment.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qepluginApp/project/qeplugin/QEComment.png -------------------------------------------------------------------------------- /qepluginApp/project/qeplugin/QEDateTime.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qepluginApp/project/qeplugin/QEDateTime.png -------------------------------------------------------------------------------- /qepluginApp/project/qeplugin/QEFileImage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qepluginApp/project/qeplugin/QEFileImage.png -------------------------------------------------------------------------------- /qepluginApp/project/qeplugin/QEFormGrid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qepluginApp/project/qeplugin/QEFormGrid.png -------------------------------------------------------------------------------- /qepluginApp/project/qeplugin/QEGroupBox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qepluginApp/project/qeplugin/QEGroupBox.png -------------------------------------------------------------------------------- /qepluginApp/project/qeplugin/QEHistogram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qepluginApp/project/qeplugin/QEHistogram.png -------------------------------------------------------------------------------- /qepluginApp/project/qeplugin/QELCDNumber.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qepluginApp/project/qeplugin/QELCDNumber.png -------------------------------------------------------------------------------- /qepluginApp/project/qeplugin/QELineEdit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qepluginApp/project/qeplugin/QELineEdit.png -------------------------------------------------------------------------------- /qepluginApp/project/qeplugin/QENTTable.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qepluginApp/project/qeplugin/QENTTable.png -------------------------------------------------------------------------------- /qepluginApp/project/qeplugin/QEPeriodic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qepluginApp/project/qeplugin/QEPeriodic.png -------------------------------------------------------------------------------- /qepluginApp/project/qeplugin/QEPlotter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qepluginApp/project/qeplugin/QEPlotter.png -------------------------------------------------------------------------------- /qepluginApp/project/qeplugin/QEPvFrame.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qepluginApp/project/qeplugin/QEPvFrame.png -------------------------------------------------------------------------------- /qepluginApp/project/qeplugin/QESelector.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qepluginApp/project/qeplugin/QESelector.png -------------------------------------------------------------------------------- /qepluginApp/project/qeplugin/QESpinBox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qepluginApp/project/qeplugin/QESpinBox.png -------------------------------------------------------------------------------- /qepluginApp/project/qeplugin/QESurface.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qepluginApp/project/qeplugin/QESurface.png -------------------------------------------------------------------------------- /qepluginApp/project/qeplugin/QEWaterfall.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qepluginApp/project/qeplugin/QEWaterfall.png -------------------------------------------------------------------------------- /qepluginApp/project/qeplugin/QRadioGroup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qepluginApp/project/qeplugin/QRadioGroup.png -------------------------------------------------------------------------------- /qepluginApp/project/qeplugin/QAnalogSlider.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qepluginApp/project/qeplugin/QAnalogSlider.png -------------------------------------------------------------------------------- /qepluginApp/project/qeplugin/QECorrelation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qepluginApp/project/qeplugin/QECorrelation.png -------------------------------------------------------------------------------- /qepluginApp/project/qeplugin/QEExitButton.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qepluginApp/project/qeplugin/QEExitButton.png -------------------------------------------------------------------------------- /qepluginApp/project/qeplugin/QEFileBrowser.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qepluginApp/project/qeplugin/QEFileBrowser.png -------------------------------------------------------------------------------- /qepluginApp/project/qeplugin/QEGeneralEdit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qepluginApp/project/qeplugin/QEGeneralEdit.png -------------------------------------------------------------------------------- /qepluginApp/project/qeplugin/QEMenuButton.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qepluginApp/project/qeplugin/QEMenuButton.png -------------------------------------------------------------------------------- /qepluginApp/project/qeplugin/QENumericEdit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qepluginApp/project/qeplugin/QENumericEdit.png -------------------------------------------------------------------------------- /qepluginApp/project/qeplugin/QEPushButton.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qepluginApp/project/qeplugin/QEPushButton.png -------------------------------------------------------------------------------- /qepluginApp/project/qeplugin/QEPvLoadSave.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qepluginApp/project/qeplugin/QEPvLoadSave.png -------------------------------------------------------------------------------- /qepluginApp/project/qeplugin/QERadioButton.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qepluginApp/project/qeplugin/QERadioButton.png -------------------------------------------------------------------------------- /qepluginApp/project/qeplugin/QERadioGroup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qepluginApp/project/qeplugin/QERadioGroup.png -------------------------------------------------------------------------------- /qepluginApp/project/qeplugin/QEScratchPad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qepluginApp/project/qeplugin/QEScratchPad.png -------------------------------------------------------------------------------- /qepluginApp/project/qeplugin/QESimpleShape.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qepluginApp/project/qeplugin/QESimpleShape.png -------------------------------------------------------------------------------- /qepluginApp/project/qeplugin/QESpectrogram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qepluginApp/project/qeplugin/QESpectrogram.png -------------------------------------------------------------------------------- /qepluginApp/project/qeplugin/QEStripChart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qepluginApp/project/qeplugin/QEStripChart.png -------------------------------------------------------------------------------- /qepluginApp/project/qeplugin/QNumericEdit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qepluginApp/project/qeplugin/QNumericEdit.png -------------------------------------------------------------------------------- /qepluginApp/project/qeplugin/QSimpleShape.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qepluginApp/project/qeplugin/QSimpleShape.png -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEImage/pause.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qeframeworkSup/project/widgets/QEImage/pause.png -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEImage/play.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qeframeworkSup/project/widgets/QEImage/play.png -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEImage/record.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qeframeworkSup/project/widgets/QEImage/record.png -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEImage/save.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qeframeworkSup/project/widgets/QEImage/save.png -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEImage/select.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qeframeworkSup/project/widgets/QEImage/select.png -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEImage/stop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qeframeworkSup/project/widgets/QEImage/stop.png -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEImage/target.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qeframeworkSup/project/widgets/QEImage/target.png -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEImage/zoom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qeframeworkSup/project/widgets/QEImage/zoom.png -------------------------------------------------------------------------------- /qepluginApp/project/QEMenuButton/value_reset.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qepluginApp/project/QEMenuButton/value_reset.png -------------------------------------------------------------------------------- /qepluginApp/project/qeplugin/QEAnalogSlider.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qepluginApp/project/qeplugin/QEAnalogSlider.png -------------------------------------------------------------------------------- /qepluginApp/project/qeplugin/QEArchiveStatus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qepluginApp/project/qeplugin/QEArchiveStatus.png -------------------------------------------------------------------------------- /qepluginApp/project/qeplugin/QEDistribution.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qepluginApp/project/qeplugin/QEDistribution.png -------------------------------------------------------------------------------- /qepluginApp/project/qeplugin/QEFormGroupBox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qepluginApp/project/qeplugin/QEFormGroupBox.png -------------------------------------------------------------------------------- /qepluginApp/project/qeplugin/QEPvProperties.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qepluginApp/project/qeplugin/QEPvProperties.png -------------------------------------------------------------------------------- /qepluginApp/project/qeplugin/QEAnalogIndicator.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qepluginApp/project/qeplugin/QEAnalogIndicator.png -------------------------------------------------------------------------------- /qepluginApp/project/qeplugin/QEConfiguredLayout.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qepluginApp/project/qeplugin/QEConfiguredLayout.png -------------------------------------------------------------------------------- /qepluginApp/project/qeplugin/QEDescriptionLabel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qepluginApp/project/qeplugin/QEDescriptionLabel.png -------------------------------------------------------------------------------- /qepluginApp/project/qeplugin/QEDynamicFormGrid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qepluginApp/project/qeplugin/QEDynamicFormGrid.png -------------------------------------------------------------------------------- /qepluginApp/project/qeplugin/QEFormStateChange.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qepluginApp/project/qeplugin/QEFormStateChange.png -------------------------------------------------------------------------------- /qepluginApp/project/qeplugin/QEPvLoadSaveButton.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qepluginApp/project/qeplugin/QEPvLoadSaveButton.png -------------------------------------------------------------------------------- /qepluginApp/project/qeplugin/QEResizeableFrame.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qepluginApp/project/qeplugin/QEResizeableFrame.png -------------------------------------------------------------------------------- /qepluginApp/project/qeplugin/QEScalarHistogram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qepluginApp/project/qeplugin/QEScalarHistogram.png -------------------------------------------------------------------------------- /qepluginApp/project/qeplugin/QESubstitutedLabel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qepluginApp/project/qeplugin/QESubstitutedLabel.png -------------------------------------------------------------------------------- /configure/RULES: -------------------------------------------------------------------------------- 1 | # RULES 2 | 3 | include $(CONFIG)/RULES 4 | 5 | # Library should be rebuilt because LIBOBJS may have changed. 6 | $(LIBNAME): ../Makefile 7 | -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEImage/cameraROI.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qeframeworkSup/project/widgets/QEImage/cameraROI.png -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEImage/flipRotate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qeframeworkSup/project/widgets/QEImage/flipRotate.png -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEImage/hLineCursor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qeframeworkSup/project/widgets/QEImage/hLineCursor.png -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEImage/lineCursor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qeframeworkSup/project/widgets/QEImage/lineCursor.png -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEImage/vLineCursor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qeframeworkSup/project/widgets/QEImage/vLineCursor.png -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEStripChart/go_fwd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qeframeworkSup/project/widgets/QEStripChart/go_fwd.png -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEStripChart/pause.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qeframeworkSup/project/widgets/QEStripChart/pause.png -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEStripChart/play.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qeframeworkSup/project/widgets/QEStripChart/play.png -------------------------------------------------------------------------------- /qepluginApp/project/qeplugin/QEAnalogProgressBar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qepluginApp/project/qeplugin/QEAnalogProgressBar.png -------------------------------------------------------------------------------- /qepluginApp/project/qeplugin/QEArchiveNameSearch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qepluginApp/project/qeplugin/QEArchiveNameSearch.png -------------------------------------------------------------------------------- /qepluginApp/project/qeplugin/QEWaveformHistogram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qepluginApp/project/qeplugin/QEWaveformHistogram.png -------------------------------------------------------------------------------- /qeframeworkSup/project/archive/archive.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | drag_icon.png 4 | 5 | 6 | -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEImage/circleCursor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qeframeworkSup/project/widgets/QEImage/circleCursor.png -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEImage/markupDisplay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qeframeworkSup/project/widgets/QEImage/markupDisplay.png -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEImage/regionCursor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qeframeworkSup/project/widgets/QEImage/regionCursor.png -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEImage/targetCursor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qeframeworkSup/project/widgets/QEImage/targetCursor.png -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEPvLoadSave/copy_all.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qeframeworkSup/project/widgets/QEPvLoadSave/copy_all.png -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEPvLoadSave/read_all.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qeframeworkSup/project/widgets/QEPvLoadSave/read_all.png -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEPvLoadSave/ypoc_all.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qeframeworkSup/project/widgets/QEPvLoadSave/ypoc_all.png -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEStripChart/archive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qeframeworkSup/project/widgets/QEStripChart/archive.png -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEStripChart/go_back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qeframeworkSup/project/widgets/QEStripChart/go_back.png -------------------------------------------------------------------------------- /qepluginApp/project/qeplugin/QEAlarmColourSelection.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qepluginApp/project/qeplugin/QEAlarmColourSelection.png -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEImage/cameraROIreset.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qeframeworkSup/project/widgets/QEImage/cameraROIreset.png -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEPvLoadSave/copy_subset.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qeframeworkSup/project/widgets/QEPvLoadSave/copy_subset.png -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEPvLoadSave/read_subset.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qeframeworkSup/project/widgets/QEPvLoadSave/read_subset.png -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEPvLoadSave/write_all.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qeframeworkSup/project/widgets/QEPvLoadSave/write_all.png -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEPvLoadSave/ypoc_subset.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qeframeworkSup/project/widgets/QEPvLoadSave/ypoc_subset.png -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEStripChart/log_scale.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qeframeworkSup/project/widgets/QEStripChart/log_scale.png -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEStripChart/open_file.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qeframeworkSup/project/widgets/QEStripChart/open_file.png -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEStripChart/save_file.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qeframeworkSup/project/widgets/QEStripChart/save_file.png -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEStripChart/select_time.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qeframeworkSup/project/widgets/QEStripChart/select_time.png -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEStripChart/write_all.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qeframeworkSup/project/widgets/QEStripChart/write_all.png -------------------------------------------------------------------------------- /qepluginApp/project/QEMenuButton/menu_button_up_enabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qepluginApp/project/QEMenuButton/menu_button_up_enabled.png -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEPvLoadSave/archive_time.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qeframeworkSup/project/widgets/QEPvLoadSave/archive_time.png -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEPvLoadSave/write_subset.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qeframeworkSup/project/widgets/QEPvLoadSave/write_subset.png -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEStripChart/linear_scale.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qeframeworkSup/project/widgets/QEStripChart/linear_scale.png -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEStripChart/normal_video.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qeframeworkSup/project/widgets/QEStripChart/normal_video.png -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEStripChart/page_backward.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qeframeworkSup/project/widgets/QEStripChart/page_backward.png -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEStripChart/page_forward.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qeframeworkSup/project/widgets/QEStripChart/page_forward.png -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEStripChart/reverse_video.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qeframeworkSup/project/widgets/QEStripChart/reverse_video.png -------------------------------------------------------------------------------- /qepluginApp/project/QEMenuButton/menu_button_del_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qepluginApp/project/QEMenuButton/menu_button_del_disabled.png -------------------------------------------------------------------------------- /qepluginApp/project/QEMenuButton/menu_button_del_enabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qepluginApp/project/QEMenuButton/menu_button_del_enabled.png -------------------------------------------------------------------------------- /qepluginApp/project/QEMenuButton/menu_button_down_enabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qepluginApp/project/QEMenuButton/menu_button_down_enabled.png -------------------------------------------------------------------------------- /qepluginApp/project/QEMenuButton/menu_button_new_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qepluginApp/project/QEMenuButton/menu_button_new_disabled.png -------------------------------------------------------------------------------- /qepluginApp/project/QEMenuButton/menu_button_new_enabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qepluginApp/project/QEMenuButton/menu_button_new_enabled.png -------------------------------------------------------------------------------- /qepluginApp/project/QEMenuButton/menu_button_up_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qepluginApp/project/QEMenuButton/menu_button_up_disabled.png -------------------------------------------------------------------------------- /documentation/we_have_moved.txt: -------------------------------------------------------------------------------- 1 | The documentation has been reloacted to the qtepics.github.io repo, 2 | and in perforce to: //ASP/tec/gui/qtepics.github.io/trunk/documentation 3 | -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEStripChart/powered_by_asp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qeframeworkSup/project/widgets/QEStripChart/powered_by_asp.png -------------------------------------------------------------------------------- /qepluginApp/project/QEMenuButton/menu_button_down_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qepluginApp/project/QEMenuButton/menu_button_down_disabled.png -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEStripChart/select_date_times.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qtepics/qeframework/HEAD/qeframeworkSup/project/widgets/QEStripChart/select_date_times.png -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEPvProperties/QEPvProperties.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | record_field_list.txt 4 | 5 | 6 | -------------------------------------------------------------------------------- /configure/Makefile: -------------------------------------------------------------------------------- 1 | TOP=.. 2 | 3 | include $(TOP)/configure/CONFIG 4 | 5 | TARGETS = $(CONFIG_TARGETS) 6 | CONFIGS += $(subst ../,,$(wildcard $(CONFIG_INSTALLS))) 7 | 8 | include $(TOP)/configure/RULES 9 | -------------------------------------------------------------------------------- /archapplDataSup/Makefile: -------------------------------------------------------------------------------- 1 | TOP = .. 2 | include $(TOP)/configure/CONFIG 3 | DIRS := $(DIRS) $(filter-out $(DIRS), $(wildcard *src*)) 4 | DIRS := $(DIRS) $(filter-out $(DIRS), $(wildcard *Src*)) 5 | DIRS := $(DIRS) $(filter-out $(DIRS), $(wildcard *db*)) 6 | DIRS := $(DIRS) $(filter-out $(DIRS), $(wildcard *Db*)) 7 | include $(TOP)/configure/RULES_DIRS 8 | -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEPvLoadSave/QEPvLoadSave.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | archive_time.png 4 | copy_all.png 5 | copy_subset.png 6 | read_all.png 7 | read_subset.png 8 | write_all.png 9 | write_subset.png 10 | ypoc_all.png 11 | ypoc_subset.png 12 | 13 | 14 | -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QECorrelation/QECorrelation.pri: -------------------------------------------------------------------------------- 1 | # QECorrelation.pri 2 | # 3 | # This file is part of the EPICS QT Framework, and included into 4 | # and as part of the overall framework plugins.pro project file. 5 | # 6 | 7 | INCLUDEPATH += \ 8 | widgets/QECorrelation 9 | 10 | HEADERS += \ 11 | widgets/QECorrelation/QECorrelation.h 12 | 13 | SOURCES += \ 14 | widgets/QECorrelation/QECorrelation.cpp 15 | 16 | FORMS += \ 17 | widgets/QECorrelation/QECorrelation.ui 18 | 19 | # end 20 | 21 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # qeframework .gitignore 2 | # 3 | O.Common/ 4 | O.linux-x86_64/ 5 | O.linux-x86/ 6 | O.windows-x64/ 7 | O.win32-x86/ 8 | O.win32-x86-mingw/ 9 | O.windows-x64-mingw/ 10 | bin/ 11 | lib/ 12 | include/ 13 | *.o 14 | *.exe 15 | *.linux-x86_64 16 | *.linux-x86 17 | *.local 18 | *.creator.user 19 | *.pro.user 20 | Makefile.* 21 | object_script.* 22 | *.backup 23 | *.qmake.stash 24 | # created by protoc 25 | archapplDataSup/src/archapplProto.pb.h 26 | 27 | # work in progress 28 | */wip/ 29 | *-wip/ 30 | *-wip.h 31 | *-wip.cpp 32 | *~ 33 | *.kate-swp 34 | 35 | # end 36 | -------------------------------------------------------------------------------- /qepluginApp/project/QEMenuButton/QEMenuButton.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | menu_button_del_disabled.png 4 | menu_button_del_enabled.png 5 | menu_button_down_disabled.png 6 | menu_button_down_enabled.png 7 | menu_button_new_disabled.png 8 | menu_button_new_enabled.png 9 | menu_button_up_disabled.png 10 | menu_button_up_enabled.png 11 | value_reset.png 12 | 13 | 14 | -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEComment/QEComment.pri: -------------------------------------------------------------------------------- 1 | # QEComment.pri 2 | # 3 | # This file is part of the EPICS QT Framework, initially developed at 4 | # the Australian Synchrotron. This file is included into and as part 5 | # of the overall framework.pro project file. 6 | # 7 | # SPDX-FileCopyrightText: 2025-2025 Australian Synchrotron 8 | # SPDX-License-Identifier: LGPL-3.0-only 9 | # 10 | # Author: Andrew Starritt 11 | # Maintainer: Andrew Starritt 12 | # Contact: andrews@ansto.gov.au 13 | # 14 | 15 | INCLUDEPATH += $$PWD 16 | 17 | HEADERS += $$PWD/QEComment.h 18 | SOURCES += $$PWD/QEComment.cpp 19 | 20 | # end 21 | -------------------------------------------------------------------------------- /qeframeworkSup/project/threads/threads.pri: -------------------------------------------------------------------------------- 1 | # threads.pri 2 | # 3 | # This file is part of the EPICS QT Framework, initially developed at 4 | # the Australian Synchrotron. This file is included into and as part 5 | # of the overall framework.pro project file. 6 | # 7 | # SPDX-FileCopyrightText: 2017-2025 Australian Synchrotron 8 | # SPDX-License-Identifier: LGPL-3.0-only 9 | # 10 | # Author: Andrew Starritt 11 | # Maintainer: Andrew Starritt 12 | # Contact: andrews@ansto.gov.au 13 | # 14 | 15 | INCLUDEPATH += threads 16 | 17 | HEADERS += threads/QEWorkers.h 18 | 19 | SOURCES += threads/QEWorkers.cpp 20 | 21 | # end 22 | -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QESelector/QESelector.pri: -------------------------------------------------------------------------------- 1 | # QESelector.pri 2 | # 3 | # This file is part of the EPICS QT Framework, initially developed at 4 | # the Australian Synchrotron. This file is included into and as part 5 | # of the overall framework.pro project file. 6 | # 7 | # SPDX-FileCopyrightText: 2021-2025 Australian Synchrotron 8 | # SPDX-License-Identifier: LGPL-3.0-only 9 | # 10 | # Author: Andrew Starritt 11 | # Maintainer: Andrew Starritt 12 | # Contact: andrews@ansto.gov.au 13 | # 14 | 15 | INCLUDEPATH += $$PWD 16 | 17 | HEADERS += $$PWD/QESelector.h 18 | SOURCES += $$PWD/QESelector.cpp 19 | 20 | # end 21 | -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEPlot/QEPlot.pri: -------------------------------------------------------------------------------- 1 | # QEPlot.pri 2 | # 3 | # This file is part of the EPICS QT Framework, initially developed at 4 | # the Australian Synchrotron. This file is included into and as part 5 | # of the overall framework.pro project file. 6 | # 7 | # SPDX-FileCopyrightText: 2017-2025 Australian Synchrotron 8 | # SPDX-License-Identifier: LGPL-3.0-only 9 | # 10 | # Author: Andrew Starritt 11 | # Maintainer: Andrew Starritt 12 | # Contact: andrews@ansto.gov.au 13 | # 14 | 15 | INCLUDEPATH += widgets/QEPlot 16 | HEADERS += widgets/QEPlot/QEPlot.h 17 | SOURCES += widgets/QEPlot/QEPlot.cpp 18 | 19 | # end 20 | -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEExitButton/QEExitButton.pri: -------------------------------------------------------------------------------- 1 | # QEExitButton.pri 2 | # 3 | # This file is part of the EPICS QT Framework, initially developed at 4 | # the Australian Synchrotron. This file is included into and as part 5 | # of the overall framework.pro project file. 6 | # 7 | # SPDX-FileCopyrightText: 2025-2025 Australian Synchrotron 8 | # SPDX-License-Identifier: LGPL-3.0-only 9 | # 10 | # Author: Andrew Starritt 11 | # Maintainer: Andrew Starritt 12 | # Contact: andrews@ansto.gov.au 13 | # 14 | 15 | INCLUDEPATH += $$PWD 16 | 17 | HEADERS += $$PWD/QEExitButton.h 18 | SOURCES += $$PWD/QEExitButton.cpp 19 | 20 | # end 21 | -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QELog/QELog.pri: -------------------------------------------------------------------------------- 1 | # QELog.pri 2 | # 3 | # This file is part of the EPICS QT Framework, initially developed at 4 | # the Australian Synchrotron. This file is included into and as part 5 | # of the overall framework.pro project file. 6 | # 7 | # SPDX-FileCopyrightText: 2017-2025 Australian Synchrotron 8 | # SPDX-License-Identifier: LGPL-3.0-only 9 | # 10 | # Author: Andrew Starritt 11 | # Maintainer: Andrew Starritt 12 | # Contact: andrews@ansto.gov.au 13 | # 14 | 15 | HEADERS += \ 16 | widgets/QELog/QELog.h 17 | 18 | SOURCES += \ 19 | widgets/QELog/QELog.cpp 20 | 21 | INCLUDEPATH += \ 22 | widgets/QELog 23 | 24 | # end 25 | -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEForm/QEForm.pri: -------------------------------------------------------------------------------- 1 | # QEForm.pri 2 | # 3 | # This file is part of the EPICS QT Framework, initially developed at 4 | # the Australian Synchrotron. This file is included into and as part 5 | # of the overall framework.pro project file. 6 | # 7 | # SPDX-FileCopyrightText: 2017-2025 Australian Synchrotron 8 | # SPDX-License-Identifier: LGPL-3.0-only 9 | # 10 | # Author: Andrew Starritt 11 | # Maintainer: Andrew Starritt 12 | # Contact: andrews@ansto.gov.au 13 | # 14 | 15 | HEADERS += \ 16 | widgets/QEForm/QEForm.h 17 | 18 | SOURCES += \ 19 | widgets/QEForm/QEForm.cpp 20 | 21 | INCLUDEPATH += \ 22 | widgets/QEForm 23 | 24 | # end 25 | -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QELink/QELink.pri: -------------------------------------------------------------------------------- 1 | # QELink.pri 2 | # 3 | # This file is part of the EPICS QT Framework, initially developed at 4 | # the Australian Synchrotron. This file is included into and as part 5 | # of the overall framework.pro project file. 6 | # 7 | # SPDX-FileCopyrightText: 2017-2025 Australian Synchrotron 8 | # SPDX-License-Identifier: LGPL-3.0-only 9 | # 10 | # Author: Andrew Starritt 11 | # Maintainer: Andrew Starritt 12 | # Contact: andrews@ansto.gov.au 13 | # 14 | 15 | HEADERS += \ 16 | widgets/QELink/QELink.h 17 | 18 | SOURCES += \ 19 | widgets/QELink/QELink.cpp 20 | 21 | INCLUDEPATH += \ 22 | widgets/QELink 23 | 24 | # end 25 | -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QELogin/QELogin.pri: -------------------------------------------------------------------------------- 1 | # QELogin.pri 2 | # 3 | # This file is part of the EPICS QT Framework, initially developed at 4 | # the Australian Synchrotron. This file is included into and as part 5 | # of the overall framework.pro project file. 6 | # 7 | # SPDX-FileCopyrightText: 2017-2025 Australian Synchrotron 8 | # SPDX-License-Identifier: LGPL-3.0-only 9 | # 10 | # Author: Andrew Starritt 11 | # Maintainer: Andrew Starritt 12 | # Contact: andrews@ansto.gov.au 13 | # 14 | 15 | HEADERS += \ 16 | widgets/QELogin/QELogin.h 17 | 18 | SOURCES += \ 19 | widgets/QELogin/QELogin.cpp 20 | 21 | INCLUDEPATH += \ 22 | widgets/QELogin 23 | 24 | # end 25 | -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEShape/QEShape.pri: -------------------------------------------------------------------------------- 1 | # QEShape.pri 2 | # 3 | # This file is part of the EPICS QT Framework, initially developed at 4 | # the Australian Synchrotron. This file is included into and as part 5 | # of the overall framework.pro project file. 6 | # 7 | # SPDX-FileCopyrightText: 2017-2025 Australian Synchrotron 8 | # SPDX-License-Identifier: LGPL-3.0-only 9 | # 10 | # Author: Andrew Starritt 11 | # Maintainer: Andrew Starritt 12 | # Contact: andrews@ansto.gov.au 13 | # 14 | 15 | HEADERS += \ 16 | widgets/QEShape/QEShape.h 17 | 18 | SOURCES += \ 19 | widgets/QEShape/QEShape.cpp 20 | 21 | INCLUDEPATH += \ 22 | widgets/QEShape 23 | 24 | # end 25 | -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QERecipe/QERecipe.pri: -------------------------------------------------------------------------------- 1 | # QERecipe.pri 2 | # 3 | # This file is part of the EPICS QT Framework, initially developed at 4 | # the Australian Synchrotron. This file is included into and as part 5 | # of the overall framework.pro project file. 6 | # 7 | # SPDX-FileCopyrightText: 2017-2025 Australian Synchrotron 8 | # SPDX-License-Identifier: LGPL-3.0-only 9 | # 10 | # Author: Andrew Starritt 11 | # Maintainer: Andrew Starritt 12 | # Contact: andrews@ansto.gov.au 13 | # 14 | 15 | HEADERS += \ 16 | widgets/QERecipe/QERecipe.h 17 | 18 | SOURCES += \ 19 | widgets/QERecipe/QERecipe.cpp 20 | 21 | INCLUDEPATH += \ 22 | widgets/QERecipe 23 | 24 | # end 25 | -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEScript/QEScript.pri: -------------------------------------------------------------------------------- 1 | # QEScript.pri 2 | # 3 | # This file is part of the EPICS QT Framework, initially developed at 4 | # the Australian Synchrotron. This file is included into and as part 5 | # of the overall framework.pro project file. 6 | # 7 | # SPDX-FileCopyrightText: 2017-2025 Australian Synchrotron 8 | # SPDX-License-Identifier: LGPL-3.0-only 9 | # 10 | # Author: Andrew Starritt 11 | # Maintainer: Andrew Starritt 12 | # Contact: andrews@ansto.gov.au 13 | # 14 | 15 | HEADERS += \ 16 | widgets/QEScript/QEScript.h 17 | 18 | SOURCES += \ 19 | widgets/QEScript/QEScript.cpp 20 | 21 | INCLUDEPATH += \ 22 | widgets/QEScript 23 | 24 | # end 25 | -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QESlider/QESlider.pri: -------------------------------------------------------------------------------- 1 | # QESlider.pri 2 | # 3 | # This file is part of the EPICS QT Framework, initially developed at 4 | # the Australian Synchrotron. This file is included into and as part 5 | # of the overall framework.pro project file. 6 | # 7 | # SPDX-FileCopyrightText: 2017-2025 Australian Synchrotron 8 | # SPDX-License-Identifier: LGPL-3.0-only 9 | # 10 | # Author: Andrew Starritt 11 | # Maintainer: Andrew Starritt 12 | # Contact: andrews@ansto.gov.au 13 | # 14 | 15 | HEADERS += \ 16 | widgets/QESlider/QESlider.h 17 | 18 | SOURCES += \ 19 | widgets/QESlider/QESlider.cpp 20 | 21 | INCLUDEPATH += \ 22 | widgets/QESlider 23 | 24 | # end 25 | -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QECalcout/QECalcout.pri: -------------------------------------------------------------------------------- 1 | # QECalcout.pri 2 | # 3 | # This file is part of the EPICS QT Framework, initially developed at 4 | # the Australian Synchrotron. This file is included into and as part 5 | # of the overall framework.pro project file. 6 | # 7 | # SPDX-FileCopyrightText: 2018-2025 Australian Synchrotron 8 | # SPDX-License-Identifier: LGPL-3.0-only 9 | # 10 | # Author: Andrew Starritt 11 | # Maintainer: Andrew Starritt 12 | # Contact: andrews@ansto.gov.au 13 | # 14 | 15 | HEADERS += \ 16 | widgets/QECalcout/QECalcout.h 17 | 18 | SOURCES += \ 19 | widgets/QECalcout/QECalcout.cpp 20 | 21 | INCLUDEPATH += \ 22 | widgets/QECalcout 23 | 24 | # end 25 | -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QESpinBox/QESpinBox.pri: -------------------------------------------------------------------------------- 1 | # QESpinBox.pri 2 | # 3 | # This file is part of the EPICS QT Framework, initially developed at 4 | # the Australian Synchrotron. This file is included into and as part 5 | # of the overall framework.pro project file. 6 | # 7 | # SPDX-FileCopyrightText: 2017-2025 Australian Synchrotron 8 | # SPDX-License-Identifier: LGPL-3.0-only 9 | # 10 | # Author: Andrew Starritt 11 | # Maintainer: Andrew Starritt 12 | # Contact: andrews@ansto.gov.au 13 | # 14 | 15 | HEADERS += \ 16 | widgets/QESpinBox/QESpinBox.h 17 | 18 | SOURCES += \ 19 | widgets/QESpinBox/QESpinBox.cpp 20 | 21 | INCLUDEPATH += \ 22 | widgets/QESpinBox 23 | 24 | # end 25 | -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEDateTime/QEDateTime.pri: -------------------------------------------------------------------------------- 1 | # QEDateTime.pri 2 | # 3 | # This file is part of the EPICS QT Framework, initially developed at 4 | # the Australian Synchrotron. This file is included into and as part 5 | # of the overall framework.pro project file. 6 | # 7 | # SPDX-FileCopyrightText: 2019-2025 Australian Synchrotron 8 | # SPDX-License-Identifier: LGPL-3.0-only 9 | # 10 | # Author: Zai Wang 11 | # Maintainer: Andrew Starritt 12 | # Contact: andrews@ansto.gov.au 13 | # 14 | 15 | HEADERS += \ 16 | widgets/QEDateTime/QEDateTime.h 17 | 18 | SOURCES += \ 19 | widgets/QEDateTime/QEDateTime.cpp 20 | 21 | INCLUDEPATH += \ 22 | widgets/QEDateTime 23 | 24 | # end 25 | -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEDistribution/QEDistribution.pri: -------------------------------------------------------------------------------- 1 | # QEDistribution.pri 2 | # 3 | # This file is part of the EPICS QT Framework, initially developed at 4 | # the Australian Synchrotron. This file is included into and as part 5 | # of the overall framework.pro project file. 6 | # 7 | # SPDX-FileCopyrightText: 2019-2025 Australian Synchrotron 8 | # SPDX-License-Identifier: LGPL-3.0-only 9 | # 10 | # Author: Andrew Starritt 11 | # Maintainer: Andrew Starritt 12 | # Contact: andrews@ansto.gov.au 13 | # 14 | 15 | INCLUDEPATH += widgets/QEDistribution 16 | 17 | HEADERS += widgets/QEDistribution/QEDistribution.h 18 | SOURCES += widgets/QEDistribution/QEDistribution.cpp 19 | 20 | # end 21 | -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEComboBox/QEComboBox.pri: -------------------------------------------------------------------------------- 1 | # QEComboBox.pri 2 | # 3 | # This file is part of the EPICS QT Framework, initially developed at 4 | # the Australian Synchrotron. This file is included into and as part 5 | # of the overall framework.pro project file. 6 | # 7 | # SPDX-FileCopyrightText: 2017-2025 Australian Synchrotron 8 | # SPDX-License-Identifier: LGPL-3.0-only 9 | # 10 | # Author: Andrew Starritt 11 | # Maintainer: Andrew Starritt 12 | # Contact: andrews@ansto.gov.au 13 | # 14 | 15 | HEADERS += \ 16 | widgets/QEComboBox/QEComboBox.h 17 | 18 | SOURCES += \ 19 | widgets/QEComboBox/QEComboBox.cpp 20 | 21 | INCLUDEPATH += \ 22 | widgets/QEComboBox 23 | 24 | # end 25 | -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEFileImage/QEFileImage.pri: -------------------------------------------------------------------------------- 1 | # QEFileImage.pri 2 | # 3 | # This file is part of the EPICS QT Framework, initially developed at 4 | # the Australian Synchrotron. This file is included into and as part 5 | # of the overall framework.pro project file. 6 | # 7 | # SPDX-FileCopyrightText: 2017-2025 Australian Synchrotron 8 | # SPDX-License-Identifier: LGPL-3.0-only 9 | # 10 | # Author: Andrew Starritt 11 | # Maintainer: Andrew Starritt 12 | # Contact: andrews@ansto.gov.au 13 | # 14 | 15 | HEADERS += \ 16 | widgets/QEFileImage/QEFileImage.h 17 | 18 | SOURCES += \ 19 | widgets/QEFileImage/QEFileImage.cpp 20 | 21 | INCLUDEPATH += \ 22 | widgets/QEFileImage 23 | 24 | # end 25 | -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QELCDNumber/QELCDNumber.pri: -------------------------------------------------------------------------------- 1 | # QELCDNumber.pri 2 | # 3 | # This file is part of the EPICS QT Framework, initially developed at 4 | # the Australian Synchrotron. This file is included into and as part 5 | # of the overall framework.pro project file. 6 | # 7 | # SPDX-FileCopyrightText: 2018-2025 Australian Synchrotron 8 | # SPDX-License-Identifier: LGPL-3.0-only 9 | # 10 | # Author: Andrew Starritt 11 | # Maintainer: Andrew Starritt 12 | # Contact: andrews@ansto.gov.au 13 | # 14 | 15 | HEADERS += \ 16 | widgets/QELCDNumber/QELCDNumber.h 17 | 18 | SOURCES += \ 19 | widgets/QELCDNumber/QELCDNumber.cpp 20 | 21 | INCLUDEPATH += \ 22 | widgets/QELCDNumber 23 | 24 | # end 25 | -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEFormStateChange/QEFormStateChange.pri: -------------------------------------------------------------------------------- 1 | # QEFormStateChange.pri 2 | # 3 | # This file is part of the EPICS QT Framework, initially developed at 4 | # the Australian Synchrotron. This file is included into and as part 5 | # of the overall framework.pro project file. 6 | # 7 | # SPDX-FileCopyrightText: 2019-2025 Australian Synchrotron 8 | # SPDX-License-Identifier: LGPL-3.0-only 9 | # 10 | # Author: Andrew Starritt 11 | # Maintainer: Andrew Starritt 12 | # Contact: andrews@ansto.gov.au 13 | # 14 | 15 | INCLUDEPATH += widgets/QEFormStateChange 16 | 17 | HEADERS += widgets/QEFormStateChange/QEFormStateChange.h 18 | SOURCES += widgets/QEFormStateChange/QEFormStateChange.cpp 19 | 20 | # end 21 | -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEFileBrowser/QEFileBrowser.pri: -------------------------------------------------------------------------------- 1 | # QEFileBrowser.pri 2 | # 3 | # This file is part of the EPICS QT Framework, initially developed at 4 | # the Australian Synchrotron. This file is included into and as part 5 | # of the overall framework.pro project file. 6 | # 7 | # SPDX-FileCopyrightText: 2017-2025 Australian Synchrotron 8 | # SPDX-License-Identifier: LGPL-3.0-only 9 | # 10 | # Author: Andrew Starritt 11 | # Maintainer: Andrew Starritt 12 | # Contact: andrews@ansto.gov.au 13 | # 14 | 15 | HEADERS += \ 16 | widgets/QEFileBrowser/QEFileBrowser.h 17 | 18 | SOURCES += \ 19 | widgets/QEFileBrowser/QEFileBrowser.cpp\ 20 | 21 | INCLUDEPATH += \ 22 | widgets/QEFileBrowser 23 | 24 | # end 25 | -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEAlarmColourSelection/QEAlarmColourSelection.pri: -------------------------------------------------------------------------------- 1 | # QEAlarmColourSelection.pri 2 | # 3 | # This file is part of the EPICS QT Framework, initially developed at 4 | # the Australian Synchrotron. This file is included into and as part 5 | # of the overall framework.pro project file. 6 | # 7 | # SPDX-FileCopyrightText: 2017-2025 Australian Synchrotron 8 | # SPDX-License-Identifier: LGPL-3.0-only 9 | # 10 | # Author: Andrew Starritt 11 | # Maintainer: Andrew Starritt 12 | # Contact: andrews@ansto.gov.au 13 | # 14 | 15 | INCLUDEPATH += $$PWD 16 | 17 | HEADERS += $$PWD/QEAlarmColourSelection.h 18 | SOURCES += $$PWD/QEAlarmColourSelection.cpp 19 | FORMS += $$PWD/QEAlarmColourSelection.ui 20 | 21 | # end 22 | -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEAnalogIndicator/QEAnalogIndicator.pri: -------------------------------------------------------------------------------- 1 | # QEAnalogIndicator.pri 2 | # 3 | # This file is part of the EPICS QT Framework, initially developed at 4 | # the Australian Synchrotron. This file is included into and as part 5 | # of the overall framework.pro project file. 6 | # 7 | # SPDX-FileCopyrightText: 2017-2025 Australian Synchrotron 8 | # SPDX-License-Identifier: LGPL-3.0-only 9 | # 10 | # Author: Andrew Starritt 11 | # Maintainer: Andrew Starritt 12 | # Contact: andrews@ansto.gov.au 13 | # 14 | 15 | HEADERS += \ 16 | widgets/QEAnalogIndicator/QEAnalogIndicator.h 17 | 18 | SOURCES += \ 19 | widgets/QEAnalogIndicator/QEAnalogIndicator.cpp 20 | 21 | INCLUDEPATH += \ 22 | widgets/QEAnalogIndicator 23 | 24 | # end 25 | -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEFrame/QEFrame.pri: -------------------------------------------------------------------------------- 1 | # QEFrame.pri 2 | # 3 | # This file is part of the EPICS QT Framework, initially developed at 4 | # the Australian Synchrotron. This file is included into and as part 5 | # of the overall framework.pro project file. 6 | # 7 | # SPDX-FileCopyrightText: 2017-2025 Australian Synchrotron 8 | # SPDX-License-Identifier: LGPL-3.0-only 9 | # 10 | # Author: Andrew Starritt 11 | # Maintainer: Andrew Starritt 12 | # Contact: andrews@ansto.gov.au 13 | # 14 | 15 | HEADERS += \ 16 | widgets/QEFrame/QEFrame.h \ 17 | widgets/QEFrame/QEPvFrame.h 18 | 19 | SOURCES += \ 20 | widgets/QEFrame/QEFrame.cpp \ 21 | widgets/QEFrame/QEPvFrame.cpp 22 | 23 | INCLUDEPATH += \ 24 | widgets/QEFrame 25 | 26 | # end 27 | -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEResizeableFrame/QEResizeableFrame.pri: -------------------------------------------------------------------------------- 1 | # QEResizeableFrame.pri 2 | # 3 | # This file is part of the EPICS QT Framework, initially developed at 4 | # the Australian Synchrotron. This file is included into and as part 5 | # of the overall framework.pro project file. 6 | # 7 | # SPDX-FileCopyrightText: 2017-2025 Australian Synchrotron 8 | # SPDX-License-Identifier: LGPL-3.0-only 9 | # 10 | # Author: Andrew Starritt 11 | # Maintainer: Andrew Starritt 12 | # Contact: andrews@ansto.gov.au 13 | # 14 | 15 | HEADERS += \ 16 | widgets/QEResizeableFrame/QEResizeableFrame.h 17 | 18 | SOURCES += \ 19 | widgets/QEResizeableFrame/QEResizeableFrame.cpp 20 | 21 | INCLUDEPATH += \ 22 | widgets/QEResizeableFrame 23 | 24 | # end 25 | -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QETable/QETable.pri: -------------------------------------------------------------------------------- 1 | # QETable.pri 2 | # 3 | # This file is part of the EPICS QT Framework, initially developed at 4 | # the Australian Synchrotron. This file is included into and as part 5 | # of the overall framework.pro project file. 6 | # 7 | # SPDX-FileCopyrightText: 2017-2025 Australian Synchrotron 8 | # SPDX-License-Identifier: LGPL-3.0-only 9 | # 10 | # Author: Andrew Starritt 11 | # Maintainer: Andrew Starritt 12 | # Contact: andrews@ansto.gov.au 13 | # 14 | 15 | HEADERS += \ 16 | widgets/QETable/QETable.h \ 17 | widgets/QETable/QENTTable.h 18 | 19 | SOURCES += \ 20 | widgets/QETable/QETable.cpp \ 21 | widgets/QETable/QENTTable.cpp 22 | 23 | INCLUDEPATH += \ 24 | widgets/QETable 25 | 26 | # end 27 | -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEConfiguredLayout/QEConfiguredLayout.pri: -------------------------------------------------------------------------------- 1 | # QEConfiguredLayout.pri 2 | # 3 | # This file is part of the EPICS QT Framework, initially developed at 4 | # the Australian Synchrotron. This file is included into and as part 5 | # of the overall framework.pro project file. 6 | # 7 | # SPDX-FileCopyrightText: 2017-2025 Australian Synchrotron 8 | # SPDX-License-Identifier: LGPL-3.0-only 9 | # 10 | # Author: Andrew Starritt 11 | # Maintainer: Andrew Starritt 12 | # Contact: andrews@ansto.gov.au 13 | # 14 | 15 | HEADERS += \ 16 | widgets/QEConfiguredLayout/QEConfiguredLayout.h 17 | 18 | SOURCES += \ 19 | widgets/QEConfiguredLayout/QEConfiguredLayout.cpp 20 | 21 | INCLUDEPATH += \ 22 | widgets/QEConfiguredLayout 23 | 24 | # end 25 | -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEPvLoadSaveButton/QEPvLoadSaveButton.pri: -------------------------------------------------------------------------------- 1 | # QEPvLoadSaveButton.pri 2 | # 3 | # This file is part of the EPICS QT Framework, initially developed at 4 | # the Australian Synchrotron. This file is included into and as part 5 | # of the overall framework.pro project file. 6 | # 7 | # SPDX-FileCopyrightText: 2020-2025 Australian Synchrotron 8 | # SPDX-License-Identifier: LGPL-3.0-only 9 | # 10 | # Author: Andraz Pozar 11 | # Maintainer: Andrew Starritt 12 | # Contact: andrews@ansto.gov.au 13 | # 14 | HEADERS += \ 15 | widgets/QEPvLoadSaveButton/QEPvLoadSaveButton.h 16 | 17 | 18 | SOURCES += \ 19 | widgets/QEPvLoadSaveButton/QEPvLoadSaveButton.cpp 20 | 21 | INCLUDEPATH += \ 22 | widgets/QEPvLoadSaveButton 23 | 24 | 25 | # end 26 | -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QESubstitutedLabel/QESubstitutedLabel.pri: -------------------------------------------------------------------------------- 1 | # QESubstitutedLabel.pri 2 | # 3 | # This file is part of the EPICS QT Framework, initially developed at 4 | # the Australian Synchrotron. This file is included into and as part 5 | # of the overall framework.pro project file. 6 | # 7 | # SPDX-FileCopyrightText: 2017-2025 Australian Synchrotron 8 | # SPDX-License-Identifier: LGPL-3.0-only 9 | # 10 | # Author: Andrew Starritt 11 | # Maintainer: Andrew Starritt 12 | # Contact: andrews@ansto.gov.au 13 | # 14 | 15 | HEADERS += \ 16 | widgets/QESubstitutedLabel/QESubstitutedLabel.h 17 | 18 | SOURCES += \ 19 | widgets/QESubstitutedLabel/QESubstitutedLabel.cpp 20 | 21 | INCLUDEPATH += \ 22 | widgets/QESubstitutedLabel 23 | 24 | # end 25 | -------------------------------------------------------------------------------- /qepluginApp/project/QEComment/QEComment.pri: -------------------------------------------------------------------------------- 1 | # QEComment.pri 2 | # 3 | # This file is part of the EPICS QT Framework, initially developed at 4 | # the Australian Synchrotron. This file is included into and as part 5 | # of the overall framework.pro project file. 6 | # 7 | # SPDX-FileCopyrightText: 2025-2025 Australian Synchrotron 8 | # SPDX-License-Identifier: LGPL-3.0-only 9 | # 10 | # Author: Andrew Starritt 11 | # Maintainer: Andrew Starritt 12 | # Contact: andrews@ansto.gov.au 13 | # 14 | 15 | INCLUDEPATH += $$PWD 16 | 17 | HEADERS += $$PWD/QECommentManager.h 18 | SOURCES += $$PWD/QECommentManager.cpp 19 | 20 | HEADERS += $$PWD/QECommentSetupDialog.h 21 | SOURCES += $$PWD/QECommentSetupDialog.cpp 22 | FORMS += $$PWD/QECommentSetupDialog.ui 23 | 24 | # end 25 | -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEAnalogProgressBar/QEAnalogProgressBar.pri: -------------------------------------------------------------------------------- 1 | # QEAnalogProgressBar.pri 2 | # 3 | # This file is part of the EPICS QT Framework, initially developed at 4 | # the Australian Synchrotron. This file is included into and as part 5 | # of the overall framework.pro project file. 6 | # 7 | # SPDX-FileCopyrightText: 2017-2025 Australian Synchrotron 8 | # SPDX-License-Identifier: LGPL-3.0-only 9 | # 10 | # Author: Andrew Starritt 11 | # Maintainer: Andrew Starritt 12 | # Contact: andrews@ansto.gov.au 13 | # 14 | 15 | HEADERS += \ 16 | widgets/QEAnalogProgressBar/QEAnalogProgressBar.h 17 | 18 | SOURCES += \ 19 | widgets/QEAnalogProgressBar/QEAnalogProgressBar.cpp 20 | 21 | INCLUDEPATH += \ 22 | widgets/QEAnalogProgressBar 23 | 24 | # end 25 | -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QELabel/QELabel.pri: -------------------------------------------------------------------------------- 1 | # QELabel.pri 2 | # 3 | # This file is part of the EPICS QT Framework, initially developed at 4 | # the Australian Synchrotron. This file is included into and as part 5 | # of the overall framework.pro project file. 6 | # 7 | # SPDX-FileCopyrightText: 2017-2025 Australian Synchrotron 8 | # SPDX-License-Identifier: LGPL-3.0-only 9 | # 10 | # Author: Andrew Starritt 11 | # Maintainer: Andrew Starritt 12 | # Contact: andrews@ansto.gov.au 13 | # 14 | 15 | HEADERS += \ 16 | widgets/QELabel/QELabel.h \ 17 | widgets/QELabel/QEDescriptionLabel.h 18 | 19 | SOURCES += \ 20 | widgets/QELabel/QELabel.cpp \ 21 | widgets/QELabel/QEDescriptionLabel.cpp 22 | 23 | INCLUDEPATH += \ 24 | widgets/QELabel 25 | 26 | # end 27 | -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEGroupBox/QEGroupBox.pri: -------------------------------------------------------------------------------- 1 | # QEGroupBox.pri 2 | # 3 | # This file is part of the EPICS QT Framework, initially developed at 4 | # the Australian Synchrotron. This file is included into and as part 5 | # of the overall framework.pro project file. 6 | # 7 | # SPDX-FileCopyrightText: 2017-2025 Australian Synchrotron 8 | # SPDX-License-Identifier: LGPL-3.0-only 9 | # 10 | # Author: Andrew Starritt 11 | # Maintainer: Andrew Starritt 12 | # Contact: andrews@ansto.gov.au 13 | # 14 | 15 | QEGROUPBOX = widgets/QEGroupBox 16 | 17 | INCLUDEPATH += $$QEGROUPBOX 18 | 19 | HEADERS += $$QEGROUPBOX/QEFormGroupBox.h 20 | SOURCES += $$QEGROUPBOX/QEFormGroupBox.cpp 21 | 22 | HEADERS += $$QEGROUPBOX/QEGroupBox.h 23 | SOURCES += $$QEGROUPBOX/QEGroupBox.cpp 24 | 25 | # end 26 | -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEGeneralEdit/QEGeneralEdit.pri: -------------------------------------------------------------------------------- 1 | # QEGeneralEdit.pri 2 | # 3 | # This file is part of the EPICS QT Framework, initially developed at 4 | # the Australian Synchrotron. This file is included into and as part 5 | # of the overall framework.pro project file. 6 | # 7 | # SPDX-FileCopyrightText: 2017-2025 Australian Synchrotron 8 | # SPDX-License-Identifier: LGPL-3.0-only 9 | # 10 | # Author: Andrew Starritt 11 | # Maintainer: Andrew Starritt 12 | # Contact: andrews@ansto.gov.au 13 | # 14 | 15 | HEADERS += \ 16 | widgets/QEGeneralEdit/QEGeneralEdit.h 17 | 18 | SOURCES += \ 19 | widgets/QEGeneralEdit/QEGeneralEdit.cpp 20 | 21 | FORMS += \ 22 | widgets/QEGeneralEdit/QEGeneralEdit.ui 23 | 24 | INCLUDEPATH += \ 25 | widgets/QEGeneralEdit 26 | 27 | # end 28 | -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QELineEdit/QELineEdit.pri: -------------------------------------------------------------------------------- 1 | # QELineEdit.pri 2 | # 3 | # This file is part of the EPICS QT Framework, initially developed at 4 | # the Australian Synchrotron. This file is included into and as part 5 | # of the overall framework.pro project file. 6 | # 7 | # SPDX-FileCopyrightText: 2017-2025 Australian Synchrotron 8 | # SPDX-License-Identifier: LGPL-3.0-only 9 | # 10 | # Author: Andrew Starritt 11 | # Maintainer: Andrew Starritt 12 | # Contact: andrews@ansto.gov.au 13 | # 14 | 15 | HEADERS += \ 16 | widgets/QELineEdit/QEGenericEdit.h \ 17 | widgets/QELineEdit/QELineEdit.h 18 | 19 | SOURCES += \ 20 | widgets/QELineEdit/QEGenericEdit.cpp \ 21 | widgets/QELineEdit/QELineEdit.cpp 22 | 23 | INCLUDEPATH += \ 24 | widgets/QELineEdit 25 | 26 | # end 27 | -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEBitStatus/QEBitStatus.pri: -------------------------------------------------------------------------------- 1 | # QEBitStatus.pri 2 | # 3 | # This file is part of the EPICS QT Framework, initially developed at 4 | # the Australian Synchrotron. This file is included into and as part 5 | # of the overall framework.pro project file. 6 | # 7 | # SPDX-FileCopyrightText: 2017-2025 Australian Synchrotron 8 | # SPDX-License-Identifier: LGPL-3.0-only 9 | # 10 | # Author: Andrew Starritt 11 | # Maintainer: Andrew Starritt 12 | # Contact: andrews@ansto.gov.au 13 | # 14 | 15 | HEADERS += \ 16 | widgets/QEBitStatus/QBitStatus.h \ 17 | widgets/QEBitStatus/QEBitStatus.h 18 | 19 | SOURCES += \ 20 | widgets/QEBitStatus/QBitStatus.cpp \ 21 | widgets/QEBitStatus/QEBitStatus.cpp 22 | 23 | INCLUDEPATH += \ 24 | widgets/QEBitStatus 25 | 26 | # end 27 | -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QERadioGroup/QERadioGroup.pri: -------------------------------------------------------------------------------- 1 | # QERadioGroup.pri 2 | # 3 | # This file is part of the EPICS QT Framework, initially developed at 4 | # the Australian Synchrotron. This file is included into and as part 5 | # of the overall framework.pro project file. 6 | # 7 | # SPDX-FileCopyrightText: 2017-2025 Australian Synchrotron 8 | # SPDX-License-Identifier: LGPL-3.0-only 9 | # 10 | # Author: Andrew Starritt 11 | # Maintainer: Andrew Starritt 12 | # Contact: andrews@ansto.gov.au 13 | # 14 | 15 | HEADERS += \ 16 | widgets/QERadioGroup/QRadioGroup.h \ 17 | widgets/QERadioGroup/QERadioGroup.h 18 | 19 | SOURCES += \ 20 | widgets/QERadioGroup/QRadioGroup.cpp \ 21 | widgets/QERadioGroup/QERadioGroup.cpp 22 | 23 | INCLUDEPATH += \ 24 | widgets/QERadioGroup 25 | 26 | # end 27 | -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEHistogram/QEHistogram.pri: -------------------------------------------------------------------------------- 1 | # QEHistogram.pri 2 | # 3 | # This file is part of the EPICS QT Framework, initially developed at 4 | # the Australian Synchrotron. This file is included into and as part 5 | # of the overall framework.pro project file. 6 | # 7 | # SPDX-FileCopyrightText: 2017-2025 Australian Synchrotron 8 | # SPDX-License-Identifier: LGPL-3.0-only 9 | # 10 | # Author: Andrew Starritt 11 | # Maintainer: Andrew Starritt 12 | # Contact: andrews@ansto.gov.au 13 | # 14 | 15 | INCLUDEPATH += $$PWD 16 | 17 | HEADERS += $$PWD/QEHistogram.h 18 | SOURCES += $$PWD/QEHistogram.cpp 19 | 20 | HEADERS += $$PWD/QEScalarHistogram.h 21 | SOURCES += $$PWD/QEScalarHistogram.cpp 22 | 23 | HEADERS += $$PWD/QEWaveformHistogram.h 24 | SOURCES += $$PWD/QEWaveformHistogram.cpp 25 | 26 | # end 27 | -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEStripChart/QEStripChart.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | archive.png 4 | go_back.png 5 | go_fwd.png 6 | linear_scale.png 7 | log_scale.png 8 | normal_video.png 9 | open_file.png 10 | page_backward.png 11 | page_forward.png 12 | pause.png 13 | play.png 14 | powered_by_asp.png 15 | reverse_video.png 16 | save_file.png 17 | select_date_times.png 18 | select_time.png 19 | write_all.png 20 | 21 | 22 | -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QENumericEdit/QENumericEdit.pri: -------------------------------------------------------------------------------- 1 | # QENumericEdit.pri 2 | # 3 | # This file is part of the EPICS QT Framework, initially developed at 4 | # the Australian Synchrotron. This file is included into and as part 5 | # of the overall framework.pro project file. 6 | # 7 | # SPDX-FileCopyrightText: 2017-2025 Australian Synchrotron 8 | # SPDX-License-Identifier: LGPL-3.0-only 9 | # 10 | # Author: Andrew Starritt 11 | # Maintainer: Andrew Starritt 12 | # Contact: andrews@ansto.gov.au 13 | # 14 | 15 | INCLUDEPATH += \ 16 | widgets/QENumericEdit 17 | 18 | HEADERS += \ 19 | widgets/QENumericEdit/QNumericEdit.h \ 20 | widgets/QENumericEdit/QENumericEdit.h 21 | 22 | SOURCES += \ 23 | widgets/QENumericEdit/QNumericEdit.cpp \ 24 | widgets/QENumericEdit/QENumericEdit.cpp 25 | 26 | # end 27 | -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QESimpleShape/QESimpleShape.pri: -------------------------------------------------------------------------------- 1 | # QESimpleShape.pri 2 | # 3 | # This file is part of the EPICS QT Framework, initially developed at 4 | # the Australian Synchrotron. This file is included into and as part 5 | # of the overall framework.pro project file. 6 | # 7 | # SPDX-FileCopyrightText: 2017-2025 Australian Synchrotron 8 | # SPDX-License-Identifier: LGPL-3.0-only 9 | # 10 | # Author: Andrew Starritt 11 | # Maintainer: Andrew Starritt 12 | # Contact: andrews@ansto.gov.au 13 | # 14 | 15 | HEADERS += \ 16 | widgets/QESimpleShape/QSimpleShape.h \ 17 | widgets/QESimpleShape/QESimpleShape.h 18 | 19 | SOURCES += \ 20 | widgets/QESimpleShape/QSimpleShape.cpp \ 21 | widgets/QESimpleShape/QESimpleShape.cpp 22 | 23 | INCLUDEPATH += \ 24 | widgets/QESimpleShape 25 | 26 | # end 27 | -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEAnalogSlider/QEAnalogSlider.pri: -------------------------------------------------------------------------------- 1 | # QEAnalogSlider.pri 2 | # 3 | # This file is part of the EPICS QT Framework, initially developed at 4 | # the Australian Synchrotron. This file is included into and as part 5 | # of the overall framework.pro project file. 6 | # 7 | # SPDX-FileCopyrightText: 2017-2025 Australian Synchrotron 8 | # SPDX-License-Identifier: LGPL-3.0-only 9 | # 10 | # Author: Andrew Starritt 11 | # Maintainer: Andrew Starritt 12 | # Contact: andrews@ansto.gov.au 13 | # 14 | 15 | HEADERS += \ 16 | widgets/QEAnalogSlider/QAnalogSlider.h \ 17 | widgets/QEAnalogSlider/QEAnalogSlider.h 18 | 19 | SOURCES += \ 20 | widgets/QEAnalogSlider/QAnalogSlider.cpp \ 21 | widgets/QEAnalogSlider/QEAnalogSlider.cpp 22 | 23 | INCLUDEPATH += \ 24 | widgets/QEAnalogSlider 25 | 26 | # end 27 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # qeframework 2 | EPICS Qt has been spilt into a number of components, each placed in its own 3 | github repository. 4 | The qeframework repository provides the framework link/load libraries together with 5 | the plugin library. 6 | 7 | This repository also containes the detailed wigget and display manager (QEGui) documentation. 8 | 9 | Please visit https://qtepics.github.io/index.html for more information. 10 | 11 | ## Documentation links 12 | 13 | ### Getting Started 14 | https://qtepics.github.io/getting_started.html 15 | 16 | ### Release Notes 17 | https://qtepics.github.io/release_notes.html 18 | 19 | ### Evironment Variables 20 | https://qtepics.github.io/environment_variables.html 21 | 22 | ### Archiver Appliance 23 | https://qtepics.github.io/archiver_appliance.html 24 | 25 | ### PV Access 26 | https://qtepics.github.io/pv_access.html 27 | -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEPeriodic/QEPeriodic.pri: -------------------------------------------------------------------------------- 1 | # QEPeriodic.pri 2 | # 3 | # This file is part of the EPICS QT Framework, initially developed at 4 | # the Australian Synchrotron. This file is included into and as part 5 | # of the overall framework.pro project file. 6 | # 7 | # SPDX-FileCopyrightText: 2017-2025 Australian Synchrotron 8 | # SPDX-License-Identifier: LGPL-3.0-only 9 | # 10 | # Author: Andrew Starritt 11 | # Maintainer: Andrew Starritt 12 | # Contact: andrews@ansto.gov.au 13 | # 14 | 15 | HEADERS += \ 16 | widgets/QEPeriodic/QEPeriodic.h \ 17 | widgets/QEPeriodic/PeriodicDialog.h 18 | 19 | SOURCES += \ 20 | widgets/QEPeriodic/QEPeriodic.cpp \ 21 | widgets/QEPeriodic/PeriodicDialog.cpp 22 | 23 | INCLUDEPATH += \ 24 | widgets/QEPeriodic 25 | 26 | FORMS += \ 27 | widgets/QEPeriodic/PeriodicDialog.ui 28 | 29 | # end 30 | -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEButton/QEButton.pri: -------------------------------------------------------------------------------- 1 | # QEButton.pri 2 | # 3 | # This file is part of the EPICS QT Framework, initially developed at 4 | # the Australian Synchrotron. This file is included into and as part 5 | # of the overall framework.pro project file. 6 | # 7 | # SPDX-FileCopyrightText: 2017-2025 Australian Synchrotron 8 | # SPDX-License-Identifier: LGPL-3.0-only 9 | # 10 | # Author: Andrew Starritt 11 | # Maintainer: Andrew Starritt 12 | # Contact: andrews@ansto.gov.au 13 | # 14 | 15 | INCLUDEPATH += $$PWD 16 | 17 | HEADERS += $$PWD/QECheckBox.h 18 | SOURCES += $$PWD/QECheckBox.cpp 19 | 20 | HEADERS += $$PWD/QEGenericButton.h 21 | SOURCES += $$PWD/QEGenericButton.cpp 22 | 23 | HEADERS += $$PWD/QEPushButton.h 24 | SOURCES += $$PWD/QEPushButton.cpp 25 | 26 | HEADERS += $$PWD/QERadioButton.h 27 | SOURCES += $$PWD/QERadioButton.cpp 28 | 29 | # end 30 | -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEAbstractWidget/QEAbstractWidget.pri: -------------------------------------------------------------------------------- 1 | # QEAbstractWidget.pri 2 | # 3 | # This file is part of the EPICS QT Framework, initially developed at 4 | # the Australian Synchrotron. This file is included into and as part 5 | # of the overall framework.pro project file. 6 | # 7 | # SPDX-FileCopyrightText: 2017-2025 Australian Synchrotron 8 | # SPDX-License-Identifier: LGPL-3.0-only 9 | # 10 | # Author: Andrew Starritt 11 | # Maintainer: Andrew Starritt 12 | # Contact: andrews@ansto.gov.au 13 | # 14 | 15 | HEADERS += \ 16 | widgets/QEAbstractWidget/QEAbstractWidget.h \ 17 | widgets/QEAbstractWidget/QEAbstractDynamicWidget.h 18 | 19 | SOURCES += \ 20 | widgets/QEAbstractWidget/QEAbstractWidget.cpp \ 21 | widgets/QEAbstractWidget/QEAbstractDynamicWidget.cpp 22 | 23 | INCLUDEPATH += \ 24 | widgets/QEAbstractWidget 25 | 26 | # end 27 | -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEFormGrid/QEFormGrid.pri: -------------------------------------------------------------------------------- 1 | # QEFormGrid.pri 2 | # 3 | # This file is part of the EPICS QT Framework, initially developed at 4 | # the Australian Synchrotron. This file is included into and as part 5 | # of the overall framework.pro project file. 6 | # 7 | # SPDX-FileCopyrightText: 2019-2025 Australian Synchrotron 8 | # SPDX-License-Identifier: LGPL-3.0-only 9 | # 10 | # Author: Andrew Starritt 11 | # Maintainer: Andrew Starritt 12 | # Contact: andrews@ansto.gov.au 13 | # 14 | 15 | HEADERS += \ 16 | widgets/QEFormGrid/QEDynamicFormGrid.h \ 17 | widgets/QEFormGrid/QEFormGrid.h 18 | 19 | SOURCES += \ 20 | widgets/QEFormGrid/QEDynamicFormGrid.cpp \ 21 | widgets/QEFormGrid/QEFormGrid.cpp 22 | 23 | INCLUDEPATH += \ 24 | widgets/QEFormGrid 25 | 26 | FORMS += \ 27 | widgets/QEFormGrid/QEDynamicFormGrid.ui 28 | 29 | # end 30 | -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QE2DDataVisualisation/QE2DDataVisualisation.pri: -------------------------------------------------------------------------------- 1 | # QE2DDataVisualisation.pri 2 | # 3 | # This file is part of the EPICS QT Framework, initially developed at 4 | # the Australian Synchrotron. This file is included into and as part 5 | # of the overall framework.pro project file. 6 | # 7 | # SPDX-FileCopyrightText: 2020-2025 Australian Synchrotron 8 | # SPDX-License-Identifier: LGPL-3.0-only 9 | # 10 | # Author: Andrew Starritt 11 | # Maintainer: Andrew Starritt 12 | # Contact: andrews@ansto.gov.au 13 | # 14 | 15 | INCLUDEPATH += $$PWD 16 | 17 | HEADERS += $$PWD/QEAbstract2DData.h 18 | SOURCES += $$PWD/QEAbstract2DData.cpp 19 | 20 | HEADERS += $$PWD/QESpectrogram.h 21 | SOURCES += $$PWD/QESpectrogram.cpp 22 | 23 | HEADERS += $$PWD/QESurface.h 24 | SOURCES += $$PWD/QESurface.cpp 25 | 26 | HEADERS += $$PWD/QEWaterfall.h 27 | SOURCES += $$PWD/QEWaterfall.cpp 28 | 29 | # end 30 | -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEScratchPad/QEScratchPad.pri: -------------------------------------------------------------------------------- 1 | # QEScratchPad.pri 2 | # 3 | # This file is part of the EPICS QT Framework, initially developed at 4 | # the Australian Synchrotron. This file is included into and as part 5 | # of the overall framework.pro project file. 6 | # 7 | # SPDX-FileCopyrightText: 2017-2025 Australian Synchrotron 8 | # SPDX-License-Identifier: LGPL-3.0-only 9 | # 10 | # Author: Andrew Starritt 11 | # Maintainer: Andrew Starritt 12 | # Contact: andrews@ansto.gov.au 13 | # 14 | 15 | HEADERS += \ 16 | widgets/QEScratchPad/QEScratchPad.h \ 17 | widgets/QEScratchPad/QEScratchPadMenu.h 18 | 19 | SOURCES += \ 20 | widgets/QEScratchPad/QEScratchPad.cpp \ 21 | widgets/QEScratchPad/QEScratchPadMenu.cpp 22 | 23 | INCLUDEPATH += \ 24 | widgets/QEScratchPad 25 | 26 | #FORMS += \ 27 | # widgets/QEScratchPad/QEScratchPadItemDialog.ui 28 | 29 | 30 | # end 31 | -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEImage/inttypes.h: -------------------------------------------------------------------------------- 1 | /* inttypes.h 2 | * 3 | * This file is part of the EPICS QT Framework, initially developed at the 4 | * Australian Synchrotron. 5 | * 6 | * SPDX-FileCopyrightText: 2014-2025 Australian Synchrotron 7 | * SPDX-License-Identifier: LGPL-3.0-only 8 | * 9 | * Author: Andrew Rhyder 10 | * Maintainer: Andrew Starritt 11 | * Contact: andrews@ansto.gov.au 12 | */ 13 | 14 | /* 15 | This file contains definitions missing when including ffmpeg components and building under Visual Studio 16 | */ 17 | #ifdef _MSC_VER 18 | 19 | typedef signed char int8_t; 20 | typedef signed short int16_t; 21 | typedef signed int int32_t; 22 | typedef unsigned char uint8_t; 23 | typedef unsigned short uint16_t; 24 | typedef unsigned int uint32_t; 25 | typedef signed long long int64_t; 26 | typedef unsigned long long uint64_t; 27 | 28 | #endif 29 | -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEImage/fullScreenWindow.cpp: -------------------------------------------------------------------------------- 1 | /* fullScreenWindow.cpp 2 | * 3 | * This file is part of the EPICS QT Framework, initially developed at the 4 | * Australian Synchrotron. 5 | * 6 | * SPDX-FileCopyrightText: 2014-2025 Australian Synchrotron 7 | * SPDX-License-Identifier: LGPL-3.0-only 8 | * 9 | * Author: Andrew Rhyder 10 | * Maintainer: Andrew Starritt 11 | * Contact: andrews@ansto.gov.au 12 | */ 13 | 14 | /* 15 | This class is a light wrapper around a QMainwindow to allow resize events to be caught and emitted as a resize signal 16 | */ 17 | 18 | #include "fullScreenWindow.h" 19 | 20 | fullScreenWindow::fullScreenWindow(QWidget *parent) : 21 | QMainWindow(parent,Qt::Window) 22 | { 23 | } 24 | 25 | // The mouse has been pressed over the image 26 | void fullScreenWindow::resizeEvent( QResizeEvent* /*event*/ ) 27 | { 28 | emit fullScreenResize(); 29 | } 30 | -------------------------------------------------------------------------------- /qeframeworkSup/project/adaptation_parameters/adaptation_parameters.pri: -------------------------------------------------------------------------------- 1 | # adaptation_parameters.pri 2 | # 3 | # This file is part of the EPICS QT Framework, initially developed at 4 | # the Australian Synchrotron. This file is included into and as part 5 | # of the overall framework.pro project file. 6 | # 7 | # SPDX-FileCopyrightText: 2017-2025 Australian Synchrotron 8 | # SPDX-License-Identifier: LGPL-3.0-only 9 | # 10 | # Author: Andrew Starritt 11 | # Maintainer: Andrew Starritt 12 | # Contact: andrews@ansto.gov.au 13 | # 14 | 15 | AP=adaptation_parameters 16 | 17 | INCLUDEPATH += \ 18 | $$AP 19 | 20 | HEADERS += \ 21 | $$AP/QEEnvironmentVariables.h \ 22 | $$AP/QEOptions.h \ 23 | $$AP/QESettings.h \ 24 | $$AP/QEAdaptationParameters.h 25 | 26 | SOURCES += \ 27 | $$AP/QEEnvironmentVariables.cpp \ 28 | $$AP/QEOptions.cpp \ 29 | $$AP/QESettings.cpp \ 30 | $$AP/QEAdaptationParameters.cpp 31 | 32 | # end 33 | -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEImage/QEImage.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | save.png 4 | zoom.png 5 | select.png 6 | pause.png 7 | play.png 8 | flipRotate.png 9 | cameraROI.png 10 | cameraROIreset.png 11 | target.png 12 | circleCursor.png 13 | targetCursor.png 14 | regionCursor.png 15 | vLineCursor.png 16 | hLineCursor.png 17 | lineCursor.png 18 | markupDisplay.png 19 | record.png 20 | stop.png 21 | 22 | 23 | QEImageCustomisationDefault.xml 24 | 25 | 26 | -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEAlarmColourSelection/QEAlarmColourSelection.h: -------------------------------------------------------------------------------- 1 | /* qecolourselection.h 2 | */ 3 | 4 | #ifndef QE_COLOUR_SELECTION_H 5 | #define QE_COLOUR_SELECTION_H 6 | 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | 14 | namespace Ui { 15 | class QEAlarmColourSelection; 16 | } 17 | 18 | class QE_FRAMEWORK_LIBRARY_SHARED_EXPORT QEAlarmColourSelection : public QFrame 19 | { 20 | Q_OBJECT 21 | public: 22 | explicit QEAlarmColourSelection (QWidget* parent = 0); 23 | ~QEAlarmColourSelection (); 24 | 25 | private: 26 | Ui::QEAlarmColourSelection* ui; 27 | QColorDialog* colourDialog; 28 | QPushButton* buttons [2][5]; 29 | 30 | void setAllButtonStyles (); 31 | 32 | private slots: 33 | void postConstruction (); 34 | void onSelectionClicked (bool); 35 | }; 36 | 37 | #endif // QE_COLOUR_SELECTION_H 38 | -------------------------------------------------------------------------------- /qepluginApp/project/qeplugin/QEDesignerPluginGroupNames.h: -------------------------------------------------------------------------------- 1 | /* QEDesignerPluginGroupNames.h 2 | * 3 | * This file is part of the EPICS QT Framework, initially developed at the 4 | * Australian Synchrotron. 5 | * 6 | * SPDX-FileCopyrightText: 2017-2025 Australian Synchrotron 7 | * SPDX-License-Identifier: LGPL-3.0-only 8 | * 9 | * Author: Andrew Starritt 10 | * Maintainer: Andrew Starritt 11 | * Contact: andrews@ansto.gov.au 12 | */ 13 | 14 | #ifndef QE_DESIGNER_PLUGIN_GROUP_NAMES_H 15 | #define QE_DESIGNER_PLUGIN_GROUP_NAMES_H 16 | 17 | // These define the QE Plugin designer group names. 18 | // 19 | #define QETOOL "EPICS Qt Tools" 20 | #define QEMONITOR "EPICS Qt Monitors" 21 | #define QECONTROL "EPICS Qt Controls" 22 | #define QESUPPORT "EPICS Qt Application Support Widgets" 23 | #define QEGRAPHIC "EPICS Qt Graphics" 24 | #define QEARCHIVE "EPICS Qt Infrastructure Widgets" 25 | 26 | #endif // QE_DESIGNER_PLUGIN_GROUP_NAMES_H 27 | -------------------------------------------------------------------------------- /configure/CONFIG: -------------------------------------------------------------------------------- 1 | # CONFIG - Load build configuration data 2 | # 3 | # Do not make changes to this file! 4 | 5 | # Allow user to override where the build rules come from 6 | RULES = $(EPICS_BASE) 7 | 8 | # RELEASE files point to other application tops 9 | include $(TOP)/configure/RELEASE 10 | -include $(TOP)/configure/RELEASE.$(EPICS_HOST_ARCH).Common 11 | ifdef T_A 12 | -include $(TOP)/configure/RELEASE.Common.$(T_A) 13 | -include $(TOP)/configure/RELEASE.$(EPICS_HOST_ARCH).$(T_A) 14 | endif 15 | 16 | CONFIG = $(RULES)/configure 17 | include $(CONFIG)/CONFIG 18 | 19 | # Override the Base definition: 20 | INSTALL_LOCATION = $(TOP) 21 | 22 | # CONFIG_SITE files contain other build configuration settings 23 | include $(TOP)/configure/CONFIG_SITE 24 | -include $(TOP)/configure/CONFIG_SITE.$(EPICS_HOST_ARCH).Common 25 | ifdef T_A 26 | -include $(TOP)/configure/CONFIG_SITE.Common.$(T_A) 27 | -include $(TOP)/configure/CONFIG_SITE.$(EPICS_HOST_ARCH).$(T_A) 28 | endif 29 | 30 | -------------------------------------------------------------------------------- /qeframeworkSup/project/common/PasswordDialog.h: -------------------------------------------------------------------------------- 1 | /* PasswordDialog.h 2 | * 3 | * This file is part of the EPICS QT Framework, initially developed at the 4 | * Australian Synchrotron. 5 | * 6 | * SPDX-FileCopyrightText: 2013-2025 Australian Synchrotron 7 | * SPDX-License-Identifier: LGPL-3.0-only 8 | * 9 | * Author: Andrew Rhyder 10 | * Maintainer: Andrew Starritt 11 | * Contact: andrews@ansto.gov.au 12 | */ 13 | 14 | #ifndef PASSWORDDIALOG_H 15 | #define PASSWORDDIALOG_H 16 | 17 | #include 18 | #include 19 | 20 | namespace Ui { 21 | class PasswordDialog; 22 | } 23 | 24 | class QE_FRAMEWORK_LIBRARY_SHARED_EXPORT PasswordDialog : public QDialog 25 | { 26 | Q_OBJECT 27 | 28 | public: 29 | explicit PasswordDialog(QWidget *parent = 0); 30 | ~PasswordDialog(); 31 | 32 | private slots: 33 | void on_buttonBox_accepted(); 34 | 35 | private: 36 | Ui::PasswordDialog *ui; 37 | }; 38 | 39 | #endif // PASSWORDDIALOG_H 40 | -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEPvProperties/QEPvProperties.pri: -------------------------------------------------------------------------------- 1 | # QEPvProperties.pri 2 | # 3 | # This file is part of the EPICS QT Framework, initially developed at 4 | # the Australian Synchrotron. This file is included into and as part 5 | # of the overall framework.pro project file. 6 | # 7 | # SPDX-FileCopyrightText: 2017-2025 Australian Synchrotron 8 | # SPDX-License-Identifier: LGPL-3.0-only 9 | # 10 | # Author: Andrew Starritt 11 | # Maintainer: Andrew Starritt 12 | # Contact: andrews@ansto.gov.au 13 | # 14 | 15 | OTHER_FILES += \ 16 | widgets/QEPvProperties/record_field_list.txt 17 | 18 | RESOURCES += \ 19 | widgets/QEPvProperties/QEPvProperties.qrc 20 | 21 | HEADERS += \ 22 | widgets/QEPvProperties/QEPvProperties.h \ 23 | widgets/QEPvProperties/QEPvPropertiesUtilities.h 24 | 25 | SOURCES += \ 26 | widgets/QEPvProperties/QEPvProperties.cpp \ 27 | widgets/QEPvProperties/QEPvPropertiesUtilities.cpp 28 | 29 | INCLUDEPATH += \ 30 | widgets/QEPvProperties 31 | 32 | # end 33 | -------------------------------------------------------------------------------- /qepluginApp/project/qeplugin/QEPluginLibrary_global.h: -------------------------------------------------------------------------------- 1 | /* QEPluginLibrary_global.h 2 | * 3 | * This file is part of the EPICS QT Framework, initially developed at the 4 | * Australian Synchrotron. 5 | * 6 | * SPDX-FileCopyrightText: 2009-2025 Australian Synchrotron 7 | * SPDX-License-Identifier: LGPL-3.0-only 8 | * 9 | * Author: Andrew Rhyder 10 | * Maintainer: Andrew Starritt 11 | * Contact: andrews@ansto.gov.au 12 | */ 13 | 14 | /* Description: 15 | * 16 | * Manage the declaration of library public functions as either exported functions 17 | * when building the plugin library, or imported functions when using the library. 18 | * 19 | */ 20 | 21 | #ifndef QE_PLUGIN_LIBRARY_GLOBAL_H 22 | #define QE_PLUGIN_LIBRARY_GLOBAL_H 23 | 24 | #include 25 | 26 | #if defined(QEPLUGIN_LIBRARY) 27 | # define QEPLUGINLIBRARYSHARED_EXPORT Q_DECL_EXPORT 28 | #else 29 | # define QEPLUGINLIBRARYSHARED_EXPORT Q_DECL_IMPORT 30 | #endif 31 | 32 | #endif // QE_PLUGIN_LIBRARY_GLOBAL_H 33 | -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEImage/zoomMenu.h: -------------------------------------------------------------------------------- 1 | /* zoomMenu.h 2 | * 3 | * This file is part of the EPICS QT Framework, initially developed at the 4 | * Australian Synchrotron. 5 | * 6 | * SPDX-FileCopyrightText: 2012-2025 Australian Synchrotron 7 | * SPDX-License-Identifier: LGPL-3.0-only 8 | * 9 | * Author: Andrew Rhyder 10 | * Maintainer: Andrew Starritt 11 | * Contact: andrews@ansto.gov.au 12 | */ 13 | 14 | /* 15 | This class manages the zoom menu for the QEImage widget 16 | */ 17 | 18 | #ifndef ZOOMMENU_H 19 | #define ZOOMMENU_H 20 | 21 | #include 22 | #include 23 | 24 | class zoomMenu : public QMenu 25 | { 26 | Q_OBJECT 27 | public: 28 | 29 | explicit zoomMenu( QWidget *parent = 0 ); 30 | 31 | void enableAreaSelected( bool enable ); 32 | imageContextMenu::imageContextMenuOptions getZoom( const QPoint& pos ); 33 | 34 | signals: 35 | 36 | public slots: 37 | 38 | private: 39 | QAction* areaSelectedAction; 40 | 41 | }; 42 | 43 | #endif // ZOOMMENU_H 44 | -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEImage/fullScreenWindow.h: -------------------------------------------------------------------------------- 1 | /* fullScreenWindow.h 2 | * 3 | * This file is part of the EPICS QT Framework, initially developed at the 4 | * Australian Synchrotron. 5 | * 6 | * SPDX-FileCopyrightText: 2014-2025 Australian Synchrotron 7 | * SPDX-License-Identifier: LGPL-3.0-only 8 | * 9 | * Author: Andrew Rhyder 10 | * Maintainer: Andrew Starritt 11 | * Contact: andrews@ansto.gov.au 12 | */ 13 | 14 | /* 15 | This class is a light wrapper around a QMainwindow to allow resize events to be caught and emitted as a resize signal 16 | */ 17 | 18 | #ifndef FULLSCREENWINDOW_H 19 | #define FULLSCREENWINDOW_H 20 | 21 | #include 22 | 23 | class fullScreenWindow : public QMainWindow 24 | { 25 | Q_OBJECT 26 | public: 27 | explicit fullScreenWindow(QWidget *parent = 0); 28 | 29 | protected: 30 | void resizeEvent( QResizeEvent * event ); 31 | 32 | signals: 33 | void fullScreenResize(); 34 | 35 | public slots: 36 | 37 | }; 38 | 39 | #endif // FULLSCREENWINDOW_H 40 | -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEMenuButton/QEMenuButton.pri: -------------------------------------------------------------------------------- 1 | # QEMenuButton.pri 2 | # 3 | # This file is part of the EPICS QT Framework, initially developed at 4 | # the Australian Synchrotron. This file is included into and as part 5 | # of the overall framework.pro project file. 6 | # 7 | # SPDX-FileCopyrightText: 2017-2025 Australian Synchrotron 8 | # SPDX-License-Identifier: LGPL-3.0-only 9 | # 10 | # Author: Andrew Starritt 11 | # Maintainer: Andrew Starritt 12 | # Contact: andrews@ansto.gov.au 13 | # 14 | 15 | HEADERS += \ 16 | widgets/QEMenuButton/QEMenuButton.h \ 17 | widgets/QEMenuButton/QEMenuButtonData.h \ 18 | widgets/QEMenuButton/QEMenuButtonItem.h \ 19 | widgets/QEMenuButton/QEMenuButtonModel.h 20 | 21 | 22 | SOURCES += \ 23 | widgets/QEMenuButton/QEMenuButton.cpp \ 24 | widgets/QEMenuButton/QEMenuButtonData.cpp \ 25 | widgets/QEMenuButton/QEMenuButtonItem.cpp \ 26 | widgets/QEMenuButton/QEMenuButtonModel.cpp 27 | 28 | 29 | INCLUDEPATH += \ 30 | widgets/QEMenuButton 31 | 32 | # end 33 | -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEImage/imageDataFormats.h: -------------------------------------------------------------------------------- 1 | /* imageDataFormats.h 2 | * 3 | * This file is part of the EPICS QT Framework, initially developed at the 4 | * Australian Synchrotron. 5 | * 6 | * SPDX-FileCopyrightText: 2014-2025 Australian Synchrotron 7 | * SPDX-License-Identifier: LGPL-3.0-only 8 | * 9 | * Author: Andrew Rhyder 10 | * Maintainer: Andrew Starritt 11 | * Contact: andrews@ansto.gov.au 12 | */ 13 | 14 | #ifndef QE_IMAGE_DATA_FORMATS_H 15 | #define QE_IMAGE_DATA_FORMATS_H 16 | 17 | #include 18 | #include 19 | 20 | /// The formats are now defined in QEEnums 21 | /// 22 | class imageDataFormats 23 | { 24 | public: 25 | // Returns false if given text does not match one of the expected formats 26 | // 27 | static bool convertToFormatOption (const QString& text, 28 | QE::ImageFormatOptions& format); 29 | 30 | static QString getFormatInformation (const QE::ImageFormatOptions format); 31 | }; 32 | 33 | #endif // QE_IMAGE_DATA_FORMATS_H 34 | -------------------------------------------------------------------------------- /qepluginApp/project/QEPeriodic/QEPeriodic.pri: -------------------------------------------------------------------------------- 1 | # QEPeriodic.pri 2 | # 3 | # This file is part of the EPICS QT Framework, initially developed at 4 | # the Australian Synchrotron. This file is included into and as part 5 | # of the overall framework.pro project file. 6 | # 7 | # SPDX-FileCopyrightText: 2017-2025 Australian Synchrotron 8 | # SPDX-License-Identifier: LGPL-3.0-only 9 | # 10 | # Author: Andrew Starritt 11 | # Maintainer: Andrew Starritt 12 | # Contact: andrews@ansto.gov.au 13 | # 14 | 15 | INCLUDEPATH += QEPeriodic 16 | 17 | HEADERS += QEPeriodic/QEPeriodicManager.h 18 | SOURCES += QEPeriodic/QEPeriodicManager.cpp 19 | 20 | HEADERS += QEPeriodic/QEPeriodicTaskMenu.h 21 | SOURCES += QEPeriodic/QEPeriodicTaskMenu.cpp 22 | 23 | HEADERS += QEPeriodic/PeriodicSetupDialog.h 24 | SOURCES += QEPeriodic/PeriodicSetupDialog.cpp 25 | FORMS += QEPeriodic/PeriodicSetupDialog.ui 26 | 27 | HEADERS += QEPeriodic/PeriodicElementSetupForm.h 28 | SOURCES += QEPeriodic/PeriodicElementSetupForm.cpp 29 | FORMS += QEPeriodic/PeriodicElementSetupForm.ui 30 | 31 | # end 32 | -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEImage/QEImageMarkupThickness.h: -------------------------------------------------------------------------------- 1 | /* QEImageMarkupThickness.h 2 | * 3 | * This file is part of the EPICS QT Framework, initially developed at the 4 | * Australian Synchrotron. 5 | * 6 | * SPDX-FileCopyrightText: 2014-2025 Australian Synchrotron 7 | * SPDX-License-Identifier: LGPL-3.0-only 8 | * 9 | * Author: Andrew Rhyder 10 | * Maintainer: Andrew Starritt 11 | * Contact: andrews@ansto.gov.au 12 | */ 13 | 14 | #ifndef QEIMAGEMARKUPTHICKNESS_H 15 | #define QEIMAGEMARKUPTHICKNESS_H 16 | 17 | #include 18 | 19 | namespace Ui { 20 | class QEImageMarkupThickness; 21 | } 22 | 23 | class QEImageMarkupThickness : public QDialog 24 | { 25 | Q_OBJECT 26 | 27 | public: 28 | explicit QEImageMarkupThickness(QWidget *parent = 0); 29 | ~QEImageMarkupThickness(); 30 | void setThickness(unsigned int thicknessIn ); 31 | unsigned int getThickness(); 32 | 33 | private: 34 | Ui::QEImageMarkupThickness *ui; 35 | unsigned int thickness; 36 | 37 | private slots: 38 | void on_buttonBox_accepted(); 39 | }; 40 | 41 | #endif // QEIMAGEMARKUPTHICKNESS_H 42 | -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEPlotter/QEPlotter.pri: -------------------------------------------------------------------------------- 1 | # QEPlotter.pri 2 | # 3 | # This file is part of the EPICS QT Framework, initially developed at 4 | # the Australian Synchrotron. This file is included into and as part 5 | # of the overall framework.pro project file. 6 | # 7 | # SPDX-FileCopyrightText: 2017-2025 Australian Synchrotron 8 | # SPDX-License-Identifier: LGPL-3.0-only 9 | # 10 | # Author: Andrew Starritt 11 | # Maintainer: Andrew Starritt 12 | # Contact: andrews@ansto.gov.au 13 | # 14 | 15 | HEADERS += \ 16 | widgets/QEPlotter/QEPlotter.h \ 17 | widgets/QEPlotter/QEPlotterNames.h \ 18 | widgets/QEPlotter/QEPlotterItemDialog.h \ 19 | widgets/QEPlotter/QEPlotterMenu.h \ 20 | widgets/QEPlotter/QEPlotterState.h \ 21 | widgets/QEPlotter/QEPlotterToolBar.h 22 | 23 | SOURCES += \ 24 | widgets/QEPlotter/QEPlotter.cpp \ 25 | widgets/QEPlotter/QEPlotterItemDialog.cpp \ 26 | widgets/QEPlotter/QEPlotterMenu.cpp \ 27 | widgets/QEPlotter/QEPlotterState.cpp \ 28 | widgets/QEPlotter/QEPlotterToolBar.cpp 29 | 30 | INCLUDEPATH += \ 31 | widgets/QEPlotter 32 | 33 | FORMS += \ 34 | widgets/QEPlotter/QEPlotterItemDialog.ui 35 | 36 | # end 37 | -------------------------------------------------------------------------------- /qepluginApp/project/QEPeriodic/PeriodicElementSetupForm.h: -------------------------------------------------------------------------------- 1 | /* PeriodicElementSetupForm.h 2 | * 3 | * This file is part of the EPICS QT Framework, initially developed at the 4 | * Australian Synchrotron. 5 | * 6 | * SPDX-FileCopyrightText: 2011-2025 Australian Synchrotron 7 | * SPDX-License-Identifier: LGPL-3.0-only 8 | * 9 | * Author: Andrew Rhyder 10 | * Maintainer: Andrew Starritt 11 | * Contact: andrews@ansto.gov.au 12 | */ 13 | 14 | #ifndef QE_PERIODIC_ELEMENT_SETUP_FORM_H 15 | #define QE_PERIODIC_ELEMENT_SETUP_FORM_H 16 | 17 | #include 18 | #include 19 | 20 | namespace Ui { 21 | class PeriodicElementSetupForm; 22 | } 23 | 24 | class userInfoStruct; 25 | 26 | class QEPLUGINLIBRARYSHARED_EXPORT PeriodicElementSetupForm : public QWidget 27 | { 28 | Q_OBJECT 29 | 30 | public: 31 | explicit PeriodicElementSetupForm(const int element, 32 | userInfoStruct* userInfo, 33 | QWidget *parent = 0); 34 | ~PeriodicElementSetupForm(); 35 | 36 | private: 37 | Ui::PeriodicElementSetupForm *ui; 38 | }; 39 | 40 | #endif // QE_PERIODIC_ELEMENT_SETUP_FORM_H 41 | -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEImage/imageMarkupLegendSetText.h: -------------------------------------------------------------------------------- 1 | /* imageMarkupLegendSetText.h 2 | * 3 | * This file is part of the EPICS QT Framework, initially developed at the 4 | * Australian Synchrotron. 5 | * 6 | * SPDX-FileCopyrightText: 2015-2025 Australian Synchrotron 7 | * SPDX-License-Identifier: LGPL-3.0-only 8 | * 9 | * Author: Andrew Rhyder 10 | * Maintainer: Andrew Starritt 11 | * Contact: andrews@ansto.gov.au 12 | */ 13 | 14 | // This dialog is used to prompt a user for a new legend for a markup being shown over an 15 | // image in a QEImage widget. 16 | // This dialog is accessed from the markup context menu. 17 | 18 | #ifndef IMAGEMARKUPLEGENDSETTEXT_H 19 | #define IMAGEMARKUPLEGENDSETTEXT_H 20 | 21 | #include 22 | 23 | namespace Ui { 24 | class imageMarkupLegendSetText; 25 | } 26 | 27 | class imageMarkupLegendSetText : public QDialog 28 | { 29 | Q_OBJECT 30 | 31 | public: 32 | explicit imageMarkupLegendSetText( QString existingLegend, QWidget *parent = 0); 33 | ~imageMarkupLegendSetText(); 34 | QString getLegend(); 35 | 36 | private: 37 | Ui::imageMarkupLegendSetText *ui; 38 | }; 39 | 40 | #endif // IMAGEMARKUPLEGENDSETTEXT_H 41 | -------------------------------------------------------------------------------- /qepluginApp/project/QEComment/QECommentSetupDialog.h: -------------------------------------------------------------------------------- 1 | /* QECommentSetupDialog.h 2 | * 3 | * This file is part of the EPICS QT Framework, initially developed at the 4 | * Australian Synchrotron. 5 | * 6 | * SPDX-FileCopyrightText: 2025-2025 Australian Synchrotron 7 | * SPDX-License-Identifier: LGPL-3.0-only 8 | * 9 | * Author: Andrew Starritt 10 | * Maintainer: Andrew Starritt 11 | * Contact: andrews@ansto.gov.au 12 | */ 13 | 14 | #ifndef QE_COMMENT_SETUP_DIALOG_H 15 | #define QE_COMMENT_SETUP_DIALOG_H 16 | 17 | #include 18 | #include 19 | #include 20 | 21 | // Differed declaration. 22 | // 23 | namespace Ui { 24 | class QECommentSetupDialog; 25 | } 26 | 27 | class QEComment; 28 | 29 | class QEPLUGINLIBRARYSHARED_EXPORT QECommentSetupDialog : public QDialog 30 | { 31 | Q_OBJECT 32 | 33 | public: 34 | explicit QECommentSetupDialog (QEComment* owner, QWidget* parent); 35 | ~QECommentSetupDialog (); 36 | 37 | private: 38 | Ui::QECommentSetupDialog* ui; 39 | QEComment* owner; 40 | 41 | private slots: 42 | void on_buttonBox_accepted (); 43 | void on_buttonBox_rejected (); 44 | }; 45 | 46 | #endif // QE_COMMENT_SETUP_DIALOG_H 47 | -------------------------------------------------------------------------------- /qepluginApp/project/QEPeriodic/PeriodicSetupDialog.h: -------------------------------------------------------------------------------- 1 | /* PeriodicSetupDialog.h 2 | * 3 | * This file is part of the EPICS QT Framework, initially developed at the 4 | * Australian Synchrotron. 5 | * 6 | * SPDX-FileCopyrightText: 2011-2025 Australian Synchrotron 7 | * SPDX-License-Identifier: LGPL-3.0-only 8 | * 9 | * Author: Andrew Rhyder 10 | * Maintainer: Andrew Starritt 11 | * Contact: andrews@ansto.gov.au 12 | */ 13 | 14 | #ifndef QE_PERIODIC_SETUP_DIALOG_H 15 | #define QE_PERIODIC_SETUP_DIALOG_H 16 | 17 | #include 18 | #include "PeriodicElementSetupForm.h" 19 | #include 20 | #include 21 | 22 | namespace Ui { 23 | class PeriodicSetupDialog; 24 | } 25 | 26 | class QEPLUGINLIBRARYSHARED_EXPORT PeriodicSetupDialog : public QDialog 27 | { 28 | Q_OBJECT 29 | 30 | public: 31 | explicit PeriodicSetupDialog(QWidget *parent = 0); 32 | ~PeriodicSetupDialog(); 33 | 34 | private: 35 | Ui::PeriodicSetupDialog *ui; 36 | 37 | PeriodicElementSetupForm* elements[NUM_ELEMENTS]; 38 | 39 | private slots: 40 | void on_buttonBox_rejected(); 41 | void on_buttonBox_accepted(); 42 | }; 43 | 44 | #endif // QE_PERIODIC_SETUP_DIALOG_H 45 | -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEImage/QEImageMarkupThickness.cpp: -------------------------------------------------------------------------------- 1 | /* QEImageMarkupThickness.cpp 2 | * 3 | * This file is part of the EPICS QT Framework, initially developed at the 4 | * Australian Synchrotron. 5 | * 6 | * SPDX-FileCopyrightText: 2014-2025 Australian Synchrotron 7 | * SPDX-License-Identifier: LGPL-3.0-only 8 | * 9 | * Author: Andrew Rhyder 10 | * Maintainer: Andrew Starritt 11 | * Contact: andrews@ansto.gov.au 12 | */ 13 | 14 | #include "QEImageMarkupThickness.h" 15 | #include "ui_QEImageMarkupThickness.h" 16 | 17 | QEImageMarkupThickness::QEImageMarkupThickness(QWidget *parent) : 18 | QDialog(parent), 19 | ui(new Ui::QEImageMarkupThickness) 20 | { 21 | ui->setupUi(this); 22 | } 23 | 24 | QEImageMarkupThickness::~QEImageMarkupThickness() 25 | { 26 | delete ui; 27 | } 28 | 29 | void QEImageMarkupThickness::on_buttonBox_accepted() 30 | { 31 | int value = ui->spinBox->value(); 32 | thickness = (unsigned int)((value<1)?1:value); 33 | } 34 | 35 | void QEImageMarkupThickness::setThickness(unsigned int thicknessIn ) 36 | { 37 | thickness = thicknessIn; 38 | ui->spinBox->setValue( thickness ); 39 | } 40 | 41 | unsigned int QEImageMarkupThickness::getThickness() 42 | { 43 | return thickness; 44 | } 45 | -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEImage/flipRotateMenu.h: -------------------------------------------------------------------------------- 1 | /* flipRotateMenu.h 2 | * 3 | * This file is part of the EPICS QT Framework, initially developed at the 4 | * Australian Synchrotron. 5 | * 6 | * SPDX-FileCopyrightText: 2015-2025 Australian Synchrotron 7 | * SPDX-License-Identifier: LGPL-3.0-only 8 | * 9 | * Author: Andrew Rhyder 10 | * Maintainer: Andrew Starritt 11 | * Contact: andrews@ansto.gov.au 12 | */ 13 | 14 | #ifndef QE_FLIP_ROTATE_MENU_H 15 | #define QE_FLIP_ROTATE_MENU_H 16 | 17 | #include 18 | #include "imageContextMenu.h" 19 | 20 | class flipRotateMenu : public QMenu 21 | { 22 | Q_OBJECT 23 | public: 24 | 25 | explicit flipRotateMenu( QWidget *parent = 0 ); 26 | 27 | imageContextMenu::imageContextMenuOptions getFlipRotate( const QPoint& pos ); 28 | 29 | // Set the initial state of the menu to reflect the current state of the image. 30 | // 31 | void setChecked( const int rotation, const bool flipH, const bool flipV ); 32 | 33 | signals: 34 | 35 | public slots: 36 | 37 | private: 38 | QAction* rotationNoneAction; 39 | QAction* rotation90RAction; 40 | QAction* rotation90LAction; 41 | QAction* rotation180Action; 42 | QAction* flipHAction; 43 | QAction* flipVAction; 44 | }; 45 | 46 | #endif // QE_FLIP_ROTATE_MENU_H 47 | -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEImage/QEImageCustomisationDefault.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | BeamImage 9 | 10 | 11 | 12 | 13 | BeamImage 14 | 15 | 16 | 17 | 18 | BeamImage 19 | 20 | 21 | 22 | 23 | BeamImage 24 | 25 | 26 | 27 | 28 | BeamImage 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEPvLoadSave/QEPvLoadSaveGroupNameDialog.h: -------------------------------------------------------------------------------- 1 | /* QEPvLoadSaveGroupNameDialog.h 2 | * 3 | * This file is part of the EPICS QT Framework, initially developed at the 4 | * Australian Synchrotron. 5 | * 6 | * SPDX-FileCopyrightText: 2013-2025 Australian Synchrotron 7 | * SPDX-License-Identifier: LGPL-3.0-only 8 | * 9 | * Author: Andrew Starritt 10 | * Maintainer: Andrew Starritt 11 | * Contact: andrews@ansto.gov.au 12 | */ 13 | 14 | #ifndef QEPV_LOAD_SAVE_GROUP_NAME_DIALOG_H 15 | #define QEPV_LOAD_SAVE_GROUP_NAME_DIALOG_H 16 | 17 | #include 18 | #include 19 | 20 | namespace Ui { 21 | class QEPvLoadSaveGroupNameDialog; 22 | } 23 | 24 | /* 25 | * Manager class for the QEPvLoadSaveGroupNameDialog.ui compiled form. 26 | */ 27 | class QEPvLoadSaveGroupNameDialog : public QEDialog 28 | { 29 | Q_OBJECT 30 | 31 | public: 32 | explicit QEPvLoadSaveGroupNameDialog (QWidget *parent = 0); 33 | ~QEPvLoadSaveGroupNameDialog (); 34 | 35 | void setGroupName (QString pvNameIn); 36 | QString getGroupName (); 37 | 38 | bool isClear (); 39 | 40 | private: 41 | Ui::QEPvLoadSaveGroupNameDialog *ui; 42 | 43 | private slots: 44 | void on_buttonBox_rejected (); 45 | void on_buttonBox_accepted (); 46 | }; 47 | 48 | #endif // QEPV_LOAD_SAVE_GROUP_NAME_DIALOG_H 49 | -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEImage/imageMarkupLegendSetText.cpp: -------------------------------------------------------------------------------- 1 | /* imageMarkupLegendSetText.cpp 2 | * 3 | * This file is part of the EPICS QT Framework, initially developed at the 4 | * Australian Synchrotron. 5 | * 6 | * SPDX-FileCopyrightText: 2015-2025 Australian Synchrotron 7 | * SPDX-License-Identifier: LGPL-3.0-only 8 | * 9 | * Author: Andrew Rhyder 10 | * Maintainer: Andrew Starritt 11 | * Contact: andrews@ansto.gov.au 12 | */ 13 | 14 | // This dialog is used to prompt a user for a new legend for a markup being shown over an 15 | // image in a QEImage widget. 16 | // This dialog is accessed from the markup context menu. 17 | 18 | #include "imageMarkupLegendSetText.h" 19 | #include "ui_imageMarkupLegendSetText.h" 20 | 21 | // Create the "Set legend" dialog displaying the existing legend 22 | imageMarkupLegendSetText::imageMarkupLegendSetText( QString existingLegend, QWidget *parent) : 23 | QDialog(parent), 24 | ui(new Ui::imageMarkupLegendSetText) 25 | { 26 | ui->setupUi(this); 27 | ui->lineEditLegend->setText( existingLegend ); 28 | } 29 | 30 | // Destructor 31 | imageMarkupLegendSetText::~imageMarkupLegendSetText() 32 | { 33 | delete ui; 34 | } 35 | 36 | // Return the new legend text 37 | QString imageMarkupLegendSetText::getLegend() 38 | { 39 | return ui->lineEditLegend->text(); 40 | } 41 | -------------------------------------------------------------------------------- /qepluginApp/project/qeplugin/QEDesignerPlugin.h: -------------------------------------------------------------------------------- 1 | /* QEDesignerPlugin.h 2 | * 3 | * This file is part of the EPICS QT Framework, initially developed at the 4 | * Australian Synchrotron. 5 | * 6 | * SPDX-FileCopyrightText: 2009-2025 Australian Synchrotron 7 | * SPDX-License-Identifier: LGPL-3.0-only 8 | * 9 | * Author: Andrew Rhyder 10 | * Maintainer: Andrew Starritt 11 | * Contact: andrews@ansto.gov.au 12 | */ 13 | 14 | #ifndef QE_DESIGNER_PLUGIN_H 15 | #define QE_DESIGNER_PLUGIN_H 16 | 17 | #include 18 | #include 19 | #if QT_VERSION >= 0x050500 20 | #include 21 | #else 22 | #include 23 | #endif 24 | 25 | class QEWidgets: public QObject, public QDesignerCustomWidgetCollectionInterface { 26 | Q_OBJECT 27 | #if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)) 28 | Q_PLUGIN_METADATA(IID "au.org.synchrotron.qeframework" FILE "qeplugin.json") 29 | #endif 30 | Q_INTERFACES(QDesignerCustomWidgetCollectionInterface) 31 | 32 | public: 33 | QEWidgets(QObject *parent = 0); 34 | virtual ~QEWidgets(){} 35 | 36 | virtual QList customWidgets() const; 37 | 38 | private: 39 | QList widgets; 40 | }; 41 | 42 | #endif // QE_DESIGNER_PLUGIN_H 43 | -------------------------------------------------------------------------------- /qepluginApp/project/QEPeriodic/QEPeriodicManager.h: -------------------------------------------------------------------------------- 1 | /* QEPeriodicManager.h 2 | * 3 | * This file is part of the EPICS QT Framework, initially developed at the 4 | * Australian Synchrotron. 5 | * 6 | * SPDX-FileCopyrightText: 2011-2025 Australian Synchrotron 7 | * SPDX-License-Identifier: LGPL-3.0-only 8 | * 9 | * Author: Andrew Rhyder 10 | * Maintainer: Andrew Starritt 11 | * Contact: andrews@ansto.gov.au 12 | */ 13 | 14 | #ifndef QE_PERIODIC_MANAGER_H 15 | #define QE_PERIODIC_MANAGER_H 16 | 17 | #include 18 | 19 | // The QT_VERSION check is in QEDesignerPluginCommon.h, but does not 20 | // work with moc unless restated here. Possibly relevant: 21 | // https://stackoverflow.com/questions/4119688/macro-expansion-in-moc 22 | // Provide Qt version independent plugin-related includes. 23 | // 24 | #if (QT_VERSION >= 0x050500) 25 | #include 26 | #else 27 | #include 28 | #endif 29 | 30 | #include 31 | #include 32 | 33 | class QEPLUGINLIBRARYSHARED_EXPORT QEPeriodicManager 34 | : public QObject, public QDesignerCustomWidgetInterface 35 | { 36 | Q_OBJECT 37 | Q_INTERFACES (QDesignerCustomWidgetInterface) 38 | QE_DECLARE_PLUGIN_MANAGER (QEPeriodic) 39 | }; 40 | 41 | #endif // QE_PERIODIC_MANAGER_H 42 | -------------------------------------------------------------------------------- /qeframeworkSup/project/protocol/protocol.pri: -------------------------------------------------------------------------------- 1 | # protocol.pri 2 | # 3 | # This file is part of the EPICS QT Framework, initially developed at 4 | # the Australian Synchrotron. This file is included into and as part 5 | # of the overall framework.pro project file. 6 | # 7 | # SPDX-FileCopyrightText: 2017-2025 Australian Synchrotron 8 | # SPDX-License-Identifier: LGPL-3.0-only 9 | # 10 | # Author: Andrew Starritt 11 | # Maintainer: Andrew Starritt 12 | # Contact: andrews@ansto.gov.au 13 | # 14 | 15 | INCLUDEPATH += $$PWD 16 | 17 | HEADERS += $$PWD/QEBaseClient.h 18 | SOURCES += $$PWD/QEBaseClient.cpp 19 | 20 | HEADERS += $$PWD/QECaClient.h 21 | SOURCES += $$PWD/QECaClient.cpp 22 | 23 | HEADERS += $$PWD/QENTNDArrayData.h 24 | SOURCES += $$PWD/QENTNDArrayData.cpp 25 | 26 | HEADERS += $$PWD/QENTTableData.h 27 | SOURCES += $$PWD/QENTTableData.cpp 28 | 29 | HEADERS += $$PWD/QENullClient.h 30 | SOURCES += $$PWD/QENullClient.cpp 31 | 32 | HEADERS += $$PWD/QEOpaqueData.h 33 | SOURCES += $$PWD/QEOpaqueData.cpp 34 | 35 | HEADERS += $$PWD/QEPvNameUri.h 36 | SOURCES += $$PWD/QEPvNameUri.cpp 37 | 38 | HEADERS += $$PWD/QEPvaCheck.h 39 | 40 | HEADERS += $$PWD/QEPvaClient.h 41 | SOURCES += $$PWD/QEPvaClient.cpp 42 | 43 | HEADERS += $$PWD/QEPvaData.h 44 | SOURCES += $$PWD/QEPvaData.cpp 45 | 46 | HEADERS += $$PWD/QEVectorVariants.h 47 | SOURCES += $$PWD/QEVectorVariants.cpp 48 | 49 | # end 50 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | # File: Makefile 2 | # DateTime: Mon Apr 21 18:59:50 2025 3 | # Last checked in by: starritt 4 | # 5 | # Makefile at top of application tree for QE Framework 6 | 7 | TOP = . 8 | include $(TOP)/configure/CONFIG 9 | 10 | # Directories to build, any order 11 | DIRS += configure 12 | ifeq ($(QE_ARCHAPPL_SUPPORT),YES) 13 | DIRS += archapplDataSup 14 | endif 15 | DIRS += qeframeworkSup 16 | DIRS += $(wildcard *App) 17 | DIRS += $(wildcard *Top) 18 | DIRS += $(wildcard iocBoot) 19 | 20 | # The build order is controlled by these dependency rules: 21 | 22 | # All dirs except configure depend on configure 23 | $(foreach dir, $(filter-out configure, $(DIRS)), \ 24 | $(eval $(dir)_DEPEND_DIRS += configure)) 25 | 26 | # Any *App dirs depend on all *Sup dirs 27 | $(foreach dir, $(filter %App, $(DIRS)), \ 28 | $(eval $(dir)_DEPEND_DIRS += $(filter %Sup, $(DIRS)))) 29 | 30 | # Any *Top dirs depend on all *Sup and *App dirs 31 | $(foreach dir, $(filter %Top, $(DIRS)), \ 32 | $(eval $(dir)_DEPEND_DIRS += $(filter %Sup %App, $(DIRS)))) 33 | 34 | # If we're using archiver appliance qeframeworkSup depends on archapplDataSup 35 | # 36 | ifeq ($(QE_ARCHAPPL_SUPPORT),YES) 37 | qeframeworkSup_DEPEND_DIRS += archapplDataSup 38 | endif 39 | 40 | # iocBoot depends on all *App dirs 41 | iocBoot_DEPEND_DIRS += $(filter %App,$(DIRS)) 42 | 43 | # Add any additional dependency rules here: 44 | 45 | include $(TOP)/configure/RULES_TOP 46 | 47 | # end 48 | -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEImage/markupDisplayMenu.h: -------------------------------------------------------------------------------- 1 | #ifndef MARKUPDISPLAYMENU_H 2 | #define MARKUPDISPLAYMENU_H 3 | 4 | #include 5 | #include "imageContextMenu.h" 6 | 7 | class markupDisplayMenu : public QMenu 8 | { 9 | Q_OBJECT 10 | public: 11 | 12 | explicit markupDisplayMenu( QWidget *parent = 0 ); 13 | 14 | void setDisplayed( imageContextMenu::imageContextMenuOptions option, bool state ); 15 | void setItemText( imageContextMenu::imageContextMenuOptions option, QString title ); 16 | bool isDisplayed( imageContextMenu::imageContextMenuOptions option ); 17 | void enable( imageContextMenu::imageContextMenuOptions option, bool state ); 18 | 19 | signals: 20 | 21 | private: 22 | 23 | QAction* getAction( imageContextMenu::imageContextMenuOptions option ); 24 | 25 | QAction* hSlice1Action; 26 | QAction* hSlice2Action; 27 | QAction* hSlice3Action; 28 | QAction* hSlice4Action; 29 | QAction* hSlice5Action; 30 | QAction* vSlice1Action; 31 | QAction* vSlice2Action; 32 | QAction* vSlice3Action; 33 | QAction* vSlice4Action; 34 | QAction* vSlice5Action; 35 | QAction* area1Action; 36 | QAction* area2Action; 37 | QAction* area3Action; 38 | QAction* area4Action; 39 | QAction* profileAction; 40 | QAction* targetAction; 41 | QAction* beamAction; 42 | QAction* timestampAction; 43 | QAction* ellipseAction; 44 | }; 45 | 46 | #endif // MARKUPDISPLAYMENU_H 47 | -------------------------------------------------------------------------------- /qeframeworkSup/project/data/QCaConnectionInfo.h: -------------------------------------------------------------------------------- 1 | /* QCaConnectionInfo.h 2 | * 3 | * This file is part of the EPICS QT Framework, initially developed at the 4 | * Australian Synchrotron. 5 | * 6 | * SPDX-FileCopyrightText: 2009-2025 Australian Synchrotron 7 | * SPDX-License-Identifier: LGPL-3.0-only 8 | * 9 | * Author: Andrew Rhyder 10 | * Maintainer: Andrew Starritt 11 | * Contact: andrews@ansto.gov.au 12 | */ 13 | 14 | // Manage CA/PVA connection information 15 | 16 | #ifndef QCA_CONNECTION_INFO_H 17 | #define QCA_CONNECTION_INFO_H 18 | 19 | #include 20 | #include 21 | 22 | class QE_FRAMEWORK_LIBRARY_SHARED_EXPORT QCaConnectionInfo 23 | { 24 | public: 25 | enum channel_states { 26 | NEVER_CONNECTED, 27 | CONNECTED, 28 | CLOSED, 29 | CHANNEL_UNKNOWN 30 | }; 31 | 32 | explicit QCaConnectionInfo(); 33 | explicit QCaConnectionInfo( const channel_states channelStateIn, 34 | const QString& pvName ); 35 | ~QCaConnectionInfo(); 36 | 37 | bool isChannelConnected() const; // Return true if the channel is connected 38 | 39 | QString variable() const; // Return the variable name. Usefull if same slot is used for reporting multiple connections 40 | 41 | private: 42 | channel_states channelState; // Channel status 43 | QString variableName; // Process variable name 44 | }; 45 | 46 | #endif // QCA_CONNECTION_INFO_H 47 | -------------------------------------------------------------------------------- /qepluginApp/project/QEMenuButton/QEMenuButton.pri: -------------------------------------------------------------------------------- 1 | # QEMenuButton.pri 2 | # 3 | # This file is part of the EPICS QT Framework, initially developed at 4 | # the Australian Synchrotron. This file is included into and as part 5 | # of the overall framework.pro project file. 6 | # 7 | # SPDX-FileCopyrightText: 2017-2025 Australian Synchrotron 8 | # SPDX-License-Identifier: LGPL-3.0-only 9 | # 10 | # Author: Andrew Starritt 11 | # Maintainer: Andrew Starritt 12 | # Contact: andrews@ansto.gov.au 13 | # 14 | 15 | INCLUDEPATH += $$PWD 16 | 17 | HEADERS += $$PWD/QEMenuButtonArgumentsDialog.h 18 | SOURCES += $$PWD/QEMenuButtonArgumentsDialog.cpp 19 | FORMS += $$PWD/QEMenuButtonArgumentsDialog.ui 20 | 21 | HEADERS += $$PWD/QEMenuButtonManager.h 22 | SOURCES += $$PWD/QEMenuButtonManager.cpp 23 | 24 | HEADERS += $$PWD/QEMenuButtonSetupDialog.h 25 | SOURCES += $$PWD/QEMenuButtonSetupDialog.cpp 26 | FORMS += $$PWD/QEMenuButtonSetupDialog.ui 27 | 28 | OTHER_FILES += $$PWD/menu_button_del_disabled.png 29 | OTHER_FILES += $$PWD/menu_button_del_enabled.png 30 | OTHER_FILES += $$PWD/menu_button_down_disabled.png 31 | OTHER_FILES += $$PWD/menu_button_down_enabled.png 32 | OTHER_FILES += $$PWD/menu_button_new_disabled.png 33 | OTHER_FILES += $$PWD/menu_button_new_enabled.png 34 | OTHER_FILES += $$PWD/menu_button_up_disabled.png 35 | OTHER_FILES += $$PWD/menu_button_up_enabled.png 36 | OTHER_FILES += $$PWD/value_reset.png 37 | 38 | RESOURCES += $$PWD/QEMenuButton.qrc 39 | 40 | # end 41 | -------------------------------------------------------------------------------- /qeframeworkSup/project/data/QEIntegerArray.h: -------------------------------------------------------------------------------- 1 | /* QEIntegerArray.h 2 | * 3 | * This file is part of the EPICS QT Framework, initially developed at the 4 | * Australian Synchrotron. 5 | * 6 | * SPDX-FileCopyrightText: 2013-2025 Australian Synchrotron 7 | * SPDX-License-Identifier: LGPL-3.0-only 8 | * 9 | * Author: Andrew Starritt 10 | * Maintainer: Andrew Starritt 11 | * Contact: andrews@ansto.gov.au 12 | */ 13 | 14 | #ifndef QEINTEGER_ARRAY_H 15 | #define QEINTEGER_ARRAY_H 16 | 17 | #include 18 | #include 19 | 20 | /// This class provides short hand for QVector together with some 21 | /// basic long vector operations. 22 | /// 23 | class QE_FRAMEWORK_LIBRARY_SHARED_EXPORT QEIntegerArray : public QVector { 24 | public: 25 | // Various constructors that replicate those provided by QVector 26 | // 27 | explicit QEIntegerArray (); 28 | explicit QEIntegerArray (int size); 29 | explicit QEIntegerArray (int size, const long& t); 30 | explicit QEIntegerArray (const QVector& other); 31 | 32 | // Allow assignment 33 | // 34 | QEIntegerArray& operator=(const QVector& other); 35 | 36 | // Find min/max values of the array. If array has zero elements then 37 | // the returned value is the defaultValue. 38 | // 39 | long minimumValue (const long& defaultValue = 0); 40 | long maximumValue (const long& defaultValue = 0); 41 | }; 42 | 43 | #endif // QEINTEGER_ARRAY_H 44 | -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEExitButton/QEExitButton.h: -------------------------------------------------------------------------------- 1 | /* QEExitButton.h 2 | * 3 | * This file is part of the EPICS QT Framework, initially developed at the 4 | * Australian Synchrotron. 5 | * 6 | * SPDX-FileCopyrightText: 2025-2025 Australian Synchrotron 7 | * SPDX-License-Identifier: LGPL-3.0-only 8 | * 9 | * Author: Andrew Starritt 10 | * Maintainer: Andrew Starritt 11 | * Contact: andrews@ansto.gov.au 12 | */ 13 | 14 | #ifndef QE_EXIT_BUTTON_H 15 | #define QE_EXIT_BUTTON_H 16 | 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | 23 | /// This class provides an an exit button. 24 | /// 25 | class QE_FRAMEWORK_LIBRARY_SHARED_EXPORT QEExitButton : 26 | public QPushButton 27 | { 28 | Q_OBJECT 29 | 30 | /// This property controls the behaviour of the widget. 31 | /// When exitProgram is false (default), it will cloese the current window. 32 | /// When exitProgram is true, it will close the entire application. 33 | /// 34 | Q_PROPERTY (bool exitProgram READ getExitProgram WRITE setExitProgram) 35 | 36 | public: 37 | explicit QEExitButton (QWidget* parent = 0); 38 | virtual ~QEExitButton(); 39 | 40 | QSize sizeHint () const; 41 | 42 | void setExitProgram (const bool exitProgram); 43 | bool getExitProgram () const; 44 | 45 | private: 46 | bool mExitProgram; 47 | 48 | private slots: 49 | void onClick (bool); 50 | }; 51 | 52 | #endif // QE_EXIT_BUTTON_H 53 | -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEPvLoadSave/QEPvLoadSaveAccessFail.h: -------------------------------------------------------------------------------- 1 | /* QEPvLoadSaveAccessFail.h 2 | * 3 | * This file is part of the EPICS QT Framework, initially developed at the 4 | * Australian Synchrotron. 5 | * 6 | * SPDX-FileCopyrightText: 2017-2025 Australian Synchrotron 7 | * SPDX-License-Identifier: LGPL-3.0-only 8 | * 9 | * Author: Andrew Starritt 10 | * Maintainer: Andrew Starritt 11 | * Contact: andrews@ansto.gov.au 12 | */ 13 | 14 | #ifndef QE_PV_LOAD_SAVE_ACCESS_FAIL_H 15 | #define QE_PV_LOAD_SAVE_ACCESS_FAIL_H 16 | 17 | #include 18 | #include 19 | #include 20 | #include 21 | 22 | namespace Ui { 23 | class QEPvLoadSaveAccessFail; 24 | } 25 | 26 | class QEPvLoadSave; // differed. 27 | 28 | /// This widget displays a list of PVs that failed to extracted, applied or read from the archive, 29 | /// 30 | class QE_FRAMEWORK_LIBRARY_SHARED_EXPORT QEPvLoadSaveAccessFail : public QWidget 31 | { 32 | Q_OBJECT 33 | public: 34 | // constructor. 35 | explicit QEPvLoadSaveAccessFail (QEPvLoadSave* owner, 36 | QWidget* parent = 0); 37 | ~QEPvLoadSaveAccessFail (); 38 | 39 | void clear (); 40 | void addPVName (const QString& pvName); 41 | void addPVNames (const QStringList& pvNameList); 42 | 43 | protected: 44 | 45 | private: 46 | QEPvLoadSave* owner; 47 | Ui::QEPvLoadSaveAccessFail* ui; 48 | 49 | 50 | private slots: 51 | }; 52 | 53 | #endif // QE_PV_LOAD_SAVE_ACCESS_FAIL_H 54 | -------------------------------------------------------------------------------- /qeframeworkSup/project/common/QEDelayedText.h: -------------------------------------------------------------------------------- 1 | /* QEDelayedText.h 2 | * 3 | * This file is part of the EPICS QT Framework, initially developed at the 4 | * Australian Synchrotron. 5 | * 6 | * SPDX-FileCopyrightText: 2014-2025 Australian Synchrotron 7 | * SPDX-License-Identifier: LGPL-3.0-only 8 | * 9 | * Author: Andrew Starritt 10 | * Maintainer: Andrew Starritt 11 | * Contact: andrews@ansto.gov.au 12 | */ 13 | 14 | #ifndef QE_DELAYED_TEXT_H 15 | #define QE_DELAYED_TEXT_H 16 | 17 | #include 18 | #include 19 | #include 20 | #include 21 | 22 | /// Provides a delayed text signal, noy unlike that employed by QCaVariableNamePropertyManager 23 | /// 24 | class QE_FRAMEWORK_LIBRARY_SHARED_EXPORT QEDelayedText : public QObject { 25 | Q_OBJECT 26 | 27 | public: 28 | explicit QEDelayedText (const double delay, QObject* parent = 0); 29 | virtual ~QEDelayedText (); 30 | 31 | // Performs connect sender/signal to this setText and connects this textChanged 32 | // to receiver/member. 33 | // 34 | bool doubleConnect (const QObject* sender, const char* signal, 35 | const QObject* receiver, const char* member) const; 36 | 37 | signals: 38 | void textChanged (const QString &); 39 | 40 | public slots: 41 | void setText (const QString &); 42 | 43 | private: 44 | QTimer* timer; 45 | double delay; 46 | QString text; 47 | 48 | private slots: 49 | void timeout (); 50 | }; 51 | 52 | #endif // QE_DELAYED_TEXT_H 53 | -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEAbstractWidget/QEAbstractWidget.cpp: -------------------------------------------------------------------------------- 1 | /* QEAbstractWidget.cpp 2 | * 3 | * This file is part of the EPICS QT Framework, initially developed at the 4 | * Australian Synchrotron. 5 | * 6 | * SPDX-FileCopyrightText: 2014-2025 Australian Synchrotron 7 | * SPDX-License-Identifier: LGPL-3.0-only 8 | * 9 | * Author: Andrew Starritt 10 | * Maintainer: Andrew Starritt 11 | * Contact: andrews@ansto.gov.au 12 | */ 13 | 14 | #include "QEAbstractWidget.h" 15 | #include 16 | 17 | #define DEBUG qDebug () << "QEAbstractWidget" << __LINE__ << __FUNCTION__ << " " 18 | 19 | 20 | //------------------------------------------------------------------------------ 21 | // 22 | QEAbstractWidget::QEAbstractWidget (QWidget* parent) : 23 | QFrame (parent), QEWidget (this) 24 | { 25 | // The default is as if just a plain widget container. 26 | // 27 | this->setFrameShape (QFrame::NoFrame); 28 | this->setFrameShadow (QFrame::Plain); 29 | 30 | // This is not an EPICS aware widget. 31 | // 32 | this->setVariableAsToolTip (false); 33 | this->setAllowDrop (false); 34 | this->setNumVariables (0); 35 | } 36 | 37 | //------------------------------------------------------------------------------ 38 | // 39 | QEAbstractWidget::~QEAbstractWidget () { 40 | } 41 | 42 | //------------------------------------------------------------------------------ 43 | // 44 | void QEAbstractWidget::setManagedVisible (bool visibleIn) 45 | { 46 | this->setRunVisible (visibleIn); 47 | } 48 | 49 | // end 50 | -------------------------------------------------------------------------------- /qepluginApp/project/QEPeriodic/PeriodicSetupDialog.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | PeriodicSetupDialog 4 | 5 | 6 | 7 | 0 8 | 0 9 | 1300 10 | 950 11 | 12 | 13 | 14 | 15 | 0 16 | 0 17 | 18 | 19 | 20 | 21 | 1300 22 | 950 23 | 24 | 25 | 26 | QEPeriodic - Element configuration 27 | 28 | 29 | Element configuration 30 | 31 | 32 | 33 | 34 | 35 | QLayout::SetNoConstraint 36 | 37 | 38 | 39 | 40 | 41 | 42 | QDialogButtonBox::Cancel|QDialogButtonBox::Ok 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEPlotter/QEPlotterItemDialog.h: -------------------------------------------------------------------------------- 1 | /* QEPlotterItemDialog.h 2 | * 3 | * This file is part of the EPICS QT Framework, initially developed at the 4 | * Australian Synchrotron. 5 | * 6 | * SPDX-FileCopyrightText: 2013-2025 Australian Synchrotron 7 | * SPDX-License-Identifier: LGPL-3.0-only 8 | * 9 | * Author: Andrew Starritt 10 | * Maintainer: Andrew Starritt 11 | * Contact: andrews@ansto.gov.au 12 | */ 13 | 14 | #ifndef QEPLOTTERITEMDIALOG_H 15 | #define QEPLOTTERITEMDIALOG_H 16 | 17 | #include 18 | #include 19 | 20 | namespace Ui { 21 | class QEPlotterItemDialog; 22 | } 23 | 24 | /* 25 | * Manager class for the QEPlotterItemDialog.ui compiled form. 26 | */ 27 | class QEPlotterItemDialog : public QEDialog 28 | { 29 | Q_OBJECT 30 | 31 | public: 32 | explicit QEPlotterItemDialog (QWidget *parent = 0); 33 | ~QEPlotterItemDialog (); 34 | 35 | void setFieldInformation (const QString dataIn, const QString aliasIn, const QString sizeIn); 36 | void getFieldInformation (QString& dataOut, QString& aliasOut, QString& sizeOut); 37 | 38 | private: 39 | Ui::QEPlotterItemDialog *ui; 40 | bool returnIsMasked; 41 | 42 | private slots: 43 | void dataEditReturnPressed (); 44 | void aliasEditReturnPressed (); 45 | void sizeEditReturnPressed (); 46 | 47 | void on_buttonBox_rejected (); 48 | void on_buttonBox_accepted (); 49 | void clearButtonClicked (bool checked = false); 50 | void colourButtonClicked (bool checked = false); 51 | }; 52 | 53 | #endif // QEPLOTTERITEMDIALOG_H 54 | -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEImage/screenSelectDialog.h: -------------------------------------------------------------------------------- 1 | /* screenSelectDialog.h 2 | * 3 | * This file is part of the EPICS QT Framework, initially developed at the 4 | * Australian Synchrotron. 5 | * 6 | * SPDX-FileCopyrightText: 2014-2025 Australian Synchrotron 7 | * SPDX-License-Identifier: LGPL-3.0-only 8 | * 9 | * Author: Andrew Rhyder 10 | * Maintainer: Andrew Starritt 11 | * Contact: andrews@ansto.gov.au 12 | */ 13 | 14 | /* 15 | * This class is used to present the user with full screen options 16 | * After creating and executing the dialog, getScreenNum() can be called which will return 17 | * a number from zero up if a particular screen was selected, or -1 if all screens 18 | */ 19 | 20 | #ifndef SCREENSELECTDIALOG_H 21 | #define SCREENSELECTDIALOG_H 22 | 23 | #include 24 | #include 25 | 26 | namespace Ui { 27 | class screenSelectDialog; 28 | } 29 | 30 | class screenSelectDialog : public QDialog 31 | { 32 | Q_OBJECT 33 | 34 | public: 35 | explicit screenSelectDialog( int numScreens, QWidget *parent = 0); 36 | ~screenSelectDialog(); 37 | 38 | static bool getFullscreenGeometry( QWidget* target, QRect& geom ); // Get the geometry of the selected screen or screens 39 | 40 | int getScreenNum(); // Screen number selected by user (negative if one of the enum options) 41 | enum screens{ PRIMARY_SCREEN = -3, THIS_SCREEN = -2, ALL_SCREENS = -1 }; // Descriptive options (non negative numbers are screen IDs) 42 | 43 | private: 44 | Ui::screenSelectDialog *ui; 45 | }; 46 | 47 | #endif // SCREENSELECTDIALOG_H 48 | -------------------------------------------------------------------------------- /qeframeworkSup/project/protocol/QEPvaCheck.h: -------------------------------------------------------------------------------- 1 | /* QEPvaCheck.h 2 | * 3 | * This file is part of the EPICS QT Framework, initially developed at the 4 | * Australian Synchrotron. 5 | * 6 | * SPDX-FileCopyrightText: 2018-2025 Australian Synchrotron 7 | * SPDX-License-Identifier: LGPL-3.0-only 8 | * 9 | * Author: Andrew Starritt 10 | * Maintainer: Andrew Starritt 11 | * Contact: andrews@ansto.gov.au 12 | */ 13 | 14 | #ifndef QE_PVA_CHECK_H 15 | #define QE_PVA_CHECK_H 16 | 17 | #include 18 | 19 | // This header file should be included in any file that conditionally includes 20 | // pv/pvAccess.h, pv/Data.h, etc. This will force a compilation warning if PVA 21 | // support requested but not available in the version of EPICS base being used. 22 | // 23 | // The QE_PVACCESS_SUPPORT macro is set in framework.pro which itself is derived 24 | // from the QE_PVACCESS_SUPPORT environment variable. 25 | // 26 | #ifdef QE_PVACCESS_SUPPORT 27 | 28 | // TODO modifiy to allow EPICS 4 with 3.15/3.16 29 | // 30 | #if EPICS_VERSION >= 7 31 | #define QE_INCLUDE_PV_ACCESS 32 | #else 33 | // We error as opposed to issuing a warning, as we will fail when cannot find 34 | // pvData etc. libraries at link time anyways. 35 | // 36 | #error Including PV ACCESS support requires EPICS base 7 or later. If PV ACCESS support not required then unset QE_PVACCESS_SUPPORT environment variable. 37 | #undef QE_INCLUDE_PV_ACCESS 38 | #endif 39 | 40 | #else 41 | 42 | // Belts 'n' braces 43 | #undef QE_INCLUDE_PV_ACCESS 44 | 45 | #endif // QE_PVACCESS_SUPPORT 46 | 47 | #endif // QE_PVA_CHECK_H 48 | -------------------------------------------------------------------------------- /qeframeworkSup/project/data/QEByteArray.h: -------------------------------------------------------------------------------- 1 | /* QEByteArray.h 2 | * 3 | * This file is part of the EPICS QT Framework, initially developed at the 4 | * Australian Synchrotron. 5 | * 6 | * SPDX-FileCopyrightText: 2009-2025 Australian Synchrotron 7 | * SPDX-License-Identifier: LGPL-3.0-only 8 | * 9 | * Author: Andrew Rhyder 10 | * Maintainer: Andrew Starritt 11 | * Contact: andrews@ansto.gov.au 12 | */ 13 | 14 | #ifndef QE_BYTE_ARRAY_H 15 | #define QE_BYTE_ARRAY_H 16 | 17 | #include 18 | #include 19 | #include 20 | #include 21 | 22 | class QE_FRAMEWORK_LIBRARY_SHARED_EXPORT QEByteArray : public qcaobject::QCaObject { 23 | Q_OBJECT 24 | 25 | public: 26 | QEByteArray (QString pvName, QObject* eventObject, unsigned int variableIndexIn); 27 | QEByteArray (QString pvName, QObject* eventObject, unsigned int variableIndexIn, 28 | UserMessage* userMessageIn); 29 | 30 | signals: 31 | void byteArrayChanged (const QByteArray& value, unsigned long dataSize, 32 | QCaAlarmInfo& alarmInfo, QCaDateTime& timeStamp, 33 | const unsigned int& variableIndex); 34 | 35 | public slots: 36 | void writeByteArray (const QByteArray& data); 37 | 38 | private: 39 | void initialise(); 40 | 41 | private slots: 42 | void forwardDataChanged (const QByteArray &value, unsigned long dataSize, 43 | QCaAlarmInfo& alarmInfo, QCaDateTime& timeStamp, 44 | const unsigned int& variableIndex); 45 | }; 46 | 47 | #endif // QE_BYTE_ARRAY_H 48 | -------------------------------------------------------------------------------- /qeframeworkSup/project/archive/archive.pri: -------------------------------------------------------------------------------- 1 | # archive.pri 2 | # 3 | # This file is part of the EPICS QT Framework, initially developed at 4 | # the Australian Synchrotron. This file is included into and as part 5 | # of the overall framework.pro project file. 6 | # 7 | # SPDX-FileCopyrightText: 2017-2025 Australian Synchrotron 8 | # SPDX-License-Identifier: LGPL-3.0-only 9 | # 10 | # Author: Andrew Starritt 11 | # Maintainer: Andrew Starritt 12 | # Contact: andrews@ansto.gov.au 13 | # 14 | 15 | QT += xml network 16 | 17 | INCLUDEPATH += $$PWD 18 | 19 | HEADERS += $$PWD/QEArchapplInterface.h 20 | SOURCES += $$PWD/QEArchapplInterface.cpp 21 | 22 | HEADERS += $$PWD/QEArchiveAccess.h 23 | SOURCES += $$PWD/QEArchiveAccess.cpp 24 | 25 | HEADERS += $$PWD/QEArchiveInterface.h 26 | SOURCES += $$PWD/QEArchiveInterface.cpp 27 | 28 | HEADERS += $$PWD/QEArchiveInterfaceManager.h 29 | SOURCES += $$PWD/QEArchiveInterfaceManager.cpp 30 | 31 | HEADERS += $$PWD/QEArchiveManager.h 32 | SOURCES += $$PWD/QEArchiveManager.cpp 33 | 34 | HEADERS += $$PWD/QEArchiveNameSearch.h 35 | SOURCES += $$PWD/QEArchiveNameSearch.cpp 36 | 37 | HEADERS += $$PWD/QEArchiveStatus.h 38 | SOURCES += $$PWD/QEArchiveStatus.cpp 39 | 40 | HEADERS += $$PWD/QEChannelArchiveInterface.h 41 | SOURCES += $$PWD/QEChannelArchiveInterface.cpp 42 | 43 | HEADERS += $$PWD/maiaFault.h 44 | SOURCES += $$PWD/maiaFault.cpp 45 | 46 | HEADERS += $$PWD/maiaObject.h 47 | SOURCES += $$PWD/maiaObject.cpp 48 | 49 | HEADERS += $$PWD/maiaXmlRpcClient.h 50 | SOURCES += $$PWD/maiaXmlRpcClient.cpp 51 | 52 | OTHER_FILES += $$PWD/drag_icon.png 53 | 54 | RESOURCES += $$PWD/archive.qrc 55 | 56 | # end 57 | -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEStripChart/QEStripChartDurationDialog.h: -------------------------------------------------------------------------------- 1 | /* QEStripChartDurationDialog.h 2 | * 3 | * This file is part of the EPICS QT Framework, initially developed at the 4 | * Australian Synchrotron. 5 | * 6 | * SPDX-FileCopyrightText: 2012-2025 Australian Synchrotron 7 | * SPDX-License-Identifier: LGPL-3.0-only 8 | * 9 | * Author: Andrew Starritt 10 | * Maintainer: Andrew Starritt 11 | * Contact: andrews@ansto.gov.au 12 | */ 13 | 14 | #ifndef QE_STRIP_CHART_DURATION_DIALOG_H 15 | #define QE_STRIP_CHART_DURATION_DIALOG_H 16 | 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | 23 | namespace Ui { 24 | class QEStripChartDurationDialog; 25 | } 26 | 27 | /* 28 | * Manager class for the QEStripChartDurationDialog.ui compiled form. 29 | * 30 | * This dialog form allows the user to select an arbitary duration. 31 | */ 32 | class QE_FRAMEWORK_LIBRARY_SHARED_EXPORT QEStripChartDurationDialog : public QEDialog 33 | { 34 | Q_OBJECT 35 | 36 | public: 37 | explicit QEStripChartDurationDialog (QWidget *parent = 0); 38 | ~QEStripChartDurationDialog (); 39 | 40 | void setDuration (int secs); 41 | int getDuration () const; 42 | 43 | private: 44 | Ui::QEStripChartDurationDialog* ui; 45 | int duration; 46 | 47 | void calcShowDuration (); 48 | 49 | private slots: 50 | void daysChanged (const int days); 51 | void timeChanged (const QTime &time); 52 | 53 | void on_buttonBox_rejected (); 54 | void on_buttonBox_accepted (); 55 | }; 56 | 57 | #endif // QE_STRIP_CHART_DURATION_DIALOG_H 58 | -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEWidget/QEGlobalStyle.h: -------------------------------------------------------------------------------- 1 | /* QEGlobalStyle.h 2 | * 3 | * This file is part of the EPICS QT Framework, initially developed at the 4 | * Australian Synchrotron. 5 | * 6 | * SPDX-FileCopyrightText: 2017-2025 Australian Synchrotron 7 | * SPDX-License-Identifier: LGPL-3.0-only 8 | * 9 | * Author: Andrew Starritt 10 | * Maintainer: Andrew Starritt 11 | * Contact: andrews@ansto.gov.au 12 | */ 13 | 14 | #ifndef QE_GLOBAL_STYLE_H 15 | #define QE_GLOBAL_STYLE_H 16 | 17 | #include 18 | 19 | /// This class sets the QApplication instancse style sheet, and hence is a 20 | /// global style that is applicable to all widgets. As this functionality is 21 | /// invoked from the QEWidget constructor, this style applies equally within 22 | /// designer, qegui or any other display mangers using at least one QEWidget. 23 | /// 24 | class QE_FRAMEWORK_LIBRARY_SHARED_EXPORT QEGlobalStyle 25 | { 26 | public: 27 | /// Constructor 28 | /// 29 | QEGlobalStyle (); 30 | 31 | /// Destructor 32 | /// 33 | ~QEGlobalStyle (); 34 | 35 | /// Checks for the existance of the QE_GLOBAL_STYLE_SHEET environment variable 36 | /// and if defined appends the specified style to the application style sheet. 37 | /// If the (trimmed) value of the environment variable starts with "file://" 38 | /// then the rest of the environment variable will be interpreted as file 39 | /// name path. 40 | /// 41 | void apply (); 42 | 43 | private: 44 | static bool styleAlreadyApplied; /// Ensures style appended to the global style once only. 45 | }; 46 | 47 | #endif // QE_GLOBAL_STYLE_H 48 | -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEPvLoadSave/QEPvLoadSaveAccessFail.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | QEPvLoadSaveAccessFail 4 | 5 | 6 | 7 | 0 8 | 0 9 | 480 10 | 180 11 | 12 | 13 | 14 | 15 | 480 16 | 180 17 | 18 | 19 | 20 | Form 21 | 22 | 23 | 24 | 0 25 | 26 | 27 | 28 | 29 | 30 | 4 31 | 32 | 33 | 2 34 | 35 | 36 | 37 | 38 | Qt::ScrollBarAlwaysOn 39 | 40 | 41 | Qt::ScrollBarAlwaysOff 42 | 43 | 44 | false 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEPvLoadSave/QEPvLoadSaveTimeDialog.h: -------------------------------------------------------------------------------- 1 | /* QEPvLoadSaveTimeDialog.h 2 | * 3 | * This file is part of the EPICS QT Framework, initially developed at the 4 | * Australian Synchrotron. 5 | * 6 | * SPDX-FileCopyrightText: 2016-2025 Australian Synchrotron 7 | * SPDX-License-Identifier: LGPL-3.0-only 8 | * 9 | * Author: Andrew Starritt 10 | * Maintainer: Andrew Starritt 11 | * Contact: andrews@ansto.gov.au 12 | */ 13 | 14 | #ifndef QE_PV_LOAD_SAVE_TIME_DIALOG_H 15 | #define QE_PV_LOAD_SAVE_TIME_DIALOG_H 16 | 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | 23 | namespace Ui { 24 | class QEPvLoadSaveTimeDialog; 25 | } 26 | 27 | /* 28 | * Manager class for the QEPvLoadSaveTimeDialog.ui compiled form. 29 | * 30 | * This dialog form allows the user to select a datetime. 31 | */ 32 | class QE_FRAMEWORK_LIBRARY_SHARED_EXPORT QEPvLoadSaveTimeDialog : public QEDialog 33 | { 34 | Q_OBJECT 35 | 36 | public: 37 | explicit QEPvLoadSaveTimeDialog (QWidget* parent = 0); 38 | ~QEPvLoadSaveTimeDialog (); 39 | 40 | void setMaximumDateTime (const QDateTime& datetime); 41 | 42 | void setDateTime (const QDateTime& datetime); 43 | QDateTime getDateTime (); 44 | 45 | private: 46 | Ui::QEPvLoadSaveTimeDialog* ui; 47 | 48 | QDateTime savedDateTime; 49 | 50 | private slots: 51 | void dateClicked (const QDate & date); 52 | void timeChanged (const QTime &time); 53 | void sliderValueChanged (int value); 54 | 55 | void on_buttonBox_rejected (); 56 | void on_buttonBox_accepted (); 57 | }; 58 | 59 | #endif // QE_PV_LOAD_SAVE_TIME_DIALOG_H 60 | -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEStripChart/QEStripChartRangeDialog.h: -------------------------------------------------------------------------------- 1 | /* QEStripChartRangeDialog.h 2 | * 3 | * This file is part of the EPICS QT Framework, initially developed at the 4 | * Australian Synchrotron. 5 | * 6 | * SPDX-FileCopyrightText: 2012-2025 Australian Synchrotron 7 | * SPDX-License-Identifier: LGPL-3.0-only 8 | * 9 | * Author: Andrew Starritt 10 | * Maintainer: Andrew Starritt 11 | * Contact: andrews@ansto.gov.au 12 | */ 13 | 14 | #ifndef QE_STRIP_CHART_RANGE_DIALOG_H 15 | #define QE_STRIP_CHART_RANGE_DIALOG_H 16 | 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | 23 | namespace Ui { 24 | class QEStripChartRangeDialog; 25 | } 26 | 27 | /* 28 | * Manager class for the QEStripChartRangeDialog.ui compiled form. 29 | * 30 | * This dialog form allows the user to select a start datetime and 31 | * end datetime pair for the strip chart. 32 | */ 33 | class QE_FRAMEWORK_LIBRARY_SHARED_EXPORT QEStripChartRangeDialog : public QEDialog 34 | { 35 | Q_OBJECT 36 | 37 | public: 38 | explicit QEStripChartRangeDialog (QWidget *parent = 0); 39 | ~QEStripChartRangeDialog (); 40 | 41 | void setRange (const double min, const double max); 42 | double getMinimum (); 43 | double getMaximum (); 44 | 45 | private: 46 | Ui::QEStripChartRangeDialog *ui; 47 | double minimum; 48 | double maximum; 49 | bool returnIsMasked; 50 | 51 | private slots: 52 | void minReturnPressed (); 53 | void maxReturnPressed (); 54 | 55 | // These conection are made by QDialog and associates. 56 | // 57 | void on_buttonBox_rejected (); 58 | void on_buttonBox_accepted (); 59 | }; 60 | 61 | #endif // QE_STRIP_CHART_RANGE_DIALOG_H 62 | -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEPvLoadSave/QEPvLoadSaveValueEditDialog.h: -------------------------------------------------------------------------------- 1 | /* QEPvLoadSaveValueEditDialog.h 2 | * 3 | * This file is part of the EPICS QT Framework, initially developed at the 4 | * Australian Synchrotron. 5 | * 6 | * SPDX-FileCopyrightText: 2013-2025 Australian Synchrotron 7 | * SPDX-License-Identifier: LGPL-3.0-only 8 | * 9 | * Author: Andrew Starritt 10 | * Maintainer: Andrew Starritt 11 | * Contact: andrews@ansto.gov.au 12 | */ 13 | 14 | #ifndef QEPV_LOAD_SAVE_VALUE_EDIT_DIALOG_H 15 | #define QEPV_LOAD_SAVE_VALUE_EDIT_DIALOG_H 16 | 17 | #include 18 | #include 19 | 20 | #include 21 | 22 | namespace Ui { 23 | class QEPvLoadSaveValueEditDialog; 24 | } 25 | 26 | /* 27 | * Manager class for the QEPvLoadSaveValueEditDialog.ui compiled form. 28 | */ 29 | class QEPvLoadSaveValueEditDialog : public QEDialog 30 | { 31 | Q_OBJECT 32 | 33 | public: 34 | explicit QEPvLoadSaveValueEditDialog (QWidget *parent = 0); 35 | ~QEPvLoadSaveValueEditDialog (); 36 | 37 | void setPvName (const QString& pvName); 38 | 39 | void setValue (const QVariant& valueList); 40 | 41 | QVariant getValue () const; 42 | 43 | private: 44 | void captureText (); // copy edit widget text into selected valueList element. 45 | void outputText (); // copy selected valueList element to edit widget text. 46 | 47 | QVariantList valueList; // we work with a list, even for scaler values. 48 | int currentIndex; 49 | Ui::QEPvLoadSaveValueEditDialog *ui; 50 | 51 | private slots: 52 | void elementIndexChanged (int newIndex); 53 | void numberElementsChanged (int numberOfElements); 54 | void on_buttonBox_rejected (); 55 | void on_buttonBox_accepted (); 56 | }; 57 | 58 | #endif // QEPV_LOAD_SAVE_VALUE_EDIT_DIALOG_H 59 | -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEComment/QEComment.h: -------------------------------------------------------------------------------- 1 | /* QEComment.h 2 | * 3 | * This file is part of the EPICS QT Framework, initially developed at the 4 | * Australian Synchrotron. 5 | * 6 | * SPDX-FileCopyrightText: 2025-2025 Australian Synchrotron 7 | * SPDX-License-Identifier: LGPL-3.0-only 8 | * 9 | * Author: Andrew Starritt 10 | * Maintainer: Andrew Starritt 11 | * Contact: andrews@ansto.gov.au 12 | */ 13 | 14 | #ifndef QE_COMMENT_H 15 | #define QE_COMMENT_H 16 | 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | 23 | /// This widget does nothing per say, save hold a comment string available within 24 | /// designer. 25 | /// Note: the widget itself non-visible by default. 26 | /// 27 | /// 28 | class QE_FRAMEWORK_LIBRARY_SHARED_EXPORT QEComment : 29 | public QWidget 30 | { 31 | Q_OBJECT 32 | 33 | public: 34 | Q_PROPERTY (QString comment READ getComment WRITE setComment) 35 | 36 | /// Not sure how usefull it would be to have this widget visible at run time, 37 | /// but let's not second guess the users' needs and desires. 38 | Q_PROPERTY (bool runVisible READ getRunVisible WRITE setRunVisible) 39 | 40 | public: 41 | explicit QEComment (QWidget* parent = 0); 42 | ~QEComment(); 43 | 44 | // Property access functions. 45 | // 46 | void setComment(const QString& text); 47 | QString getComment() const; 48 | 49 | void setRunVisible (const bool flag); 50 | bool getRunVisible() const; 51 | 52 | protected: 53 | QSize sizeHint (); 54 | void paintEvent (QPaintEvent* event); // draw something as design time 55 | 56 | private: 57 | QString commentText; 58 | bool isRunVisible; 59 | }; 60 | 61 | #endif // QE_COMMENT_H 62 | -------------------------------------------------------------------------------- /qepluginApp/project/QEPeriodic/QEPeriodicTaskMenu.h: -------------------------------------------------------------------------------- 1 | /* QEPeriodicTaskMenu.h 2 | * 3 | * This file is part of the EPICS QT Framework, initially developed at the 4 | * Australian Synchrotron. 5 | * 6 | * SPDX-FileCopyrightText: 2011-2025 Australian Synchrotron 7 | * SPDX-License-Identifier: LGPL-3.0-only 8 | * 9 | * Author: Andrew Rhyder 10 | * Maintainer: Andrew Starritt 11 | * Contact: andrews@ansto.gov.au 12 | */ 13 | 14 | #ifndef QE_PERIODIC_TASK_MENU_H 15 | #define QE_PERIODIC_TASK_MENU_H 16 | 17 | #include 18 | #include 19 | #include 20 | 21 | QT_BEGIN_NAMESPACE 22 | class QAction; 23 | class QExtensionManager; 24 | QT_END_NAMESPACE 25 | class QEPeriodic; 26 | 27 | //------------------------------------------------------------------------------ 28 | // 29 | class QEPLUGINLIBRARYSHARED_EXPORT QEPeriodicTaskMenu : 30 | public QObject, public QDesignerTaskMenuExtension 31 | { 32 | Q_OBJECT 33 | Q_INTERFACES(QDesignerTaskMenuExtension) 34 | 35 | public: 36 | QEPeriodicTaskMenu(QEPeriodic *periodic, QObject *parent); 37 | 38 | QAction *preferredEditAction() const; 39 | QList taskActions() const; 40 | 41 | private slots: 42 | void editUserInfo(); 43 | 44 | private: 45 | QAction *editUserInfoAction; 46 | QEPeriodic *periodic; 47 | }; 48 | 49 | //------------------------------------------------------------------------------ 50 | // 51 | class QEPeriodicTaskMenuFactory : public QExtensionFactory 52 | { 53 | Q_OBJECT 54 | 55 | public: 56 | QEPeriodicTaskMenuFactory(QExtensionManager *parent = 0); 57 | 58 | protected: 59 | QObject *createExtension(QObject *object, const QString &iid, QObject *parent) const; 60 | }; 61 | 62 | #endif // QE_PERIODIC_TASK_MENU_H 63 | -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEPlotter/QEPlotterState.h: -------------------------------------------------------------------------------- 1 | /* QEPlotterState.h 2 | * 3 | * This file is part of the EPICS QT Framework, initially developed at the 4 | * Australian Synchrotron. 5 | * 6 | * SPDX-FileCopyrightText: 2013-2025 Australian Synchrotron 7 | * SPDX-License-Identifier: LGPL-3.0-only 8 | * 9 | * Author: Andrew Starritt 10 | * Maintainer: Andrew Starritt 11 | * Contact: andrews@ansto.gov.au 12 | */ 13 | 14 | #ifndef QEPLOTTERSTATE_H 15 | #define QEPLOTTERSTATE_H 16 | 17 | #include 18 | #include 19 | 20 | #include 21 | #include 22 | #include 23 | 24 | class QE_FRAMEWORK_LIBRARY_SHARED_EXPORT QEPlotterState { 25 | public: 26 | QEPlotterState (); 27 | void saveConfiguration (PMElement& parentElement); 28 | void restoreConfiguration (PMElement& parentElement); 29 | 30 | bool isXLogarithmic; // vs. Linear 31 | bool isYLogarithmic; // vs. Linear 32 | bool isReverse; // vs. Normal 33 | bool isPaused; // vs. Updating 34 | double xMinimum; 35 | double xMaximum; 36 | double yMinimum; 37 | double yMaximum; 38 | QEPlotterNames::ScaleModes xScaleMode; 39 | QEPlotterNames::ScaleModes yScaleMode; 40 | }; 41 | 42 | // This class uses a QList in order to implement a stack. 43 | // 44 | class QE_FRAMEWORK_LIBRARY_SHARED_EXPORT QEPlotterStateList { 45 | public: 46 | QEPlotterStateList (); 47 | 48 | void clear (); 49 | void push (const QEPlotterState& state); 50 | bool prev (QEPlotterState& state); 51 | bool next (QEPlotterState& state); 52 | 53 | bool prevAvailable (); 54 | bool nextAvailable (); 55 | 56 | private: 57 | int chartStatePointer; 58 | QList stateList; 59 | }; 60 | 61 | #endif // QEPLOTTERSTATE_H 62 | -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEPlotter/QEPlotterToolBar.h: -------------------------------------------------------------------------------- 1 | /* QEPlotterToolBar.h 2 | * 3 | * This file is part of the EPICS QT Framework, initially developed at the 4 | * Australian Synchrotron. 5 | * 6 | * SPDX-FileCopyrightText: 2013-2025 Australian Synchrotron 7 | * SPDX-License-Identifier: LGPL-3.0-only 8 | * 9 | * Author: Andrew Starritt 10 | * Maintainer: Andrew Starritt 11 | * Contact: andrews@ansto.gov.au 12 | */ 13 | 14 | #ifndef QE_PLOTTER_TOOLBAR_H 15 | #define QE_PLOTTER_TOOLBAR_H 16 | 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | 24 | #include "QEPlotterNames.h" 25 | 26 | /// This class holds all the QEPlotter tool bar widget. 27 | /// 28 | class QE_FRAMEWORK_LIBRARY_SHARED_EXPORT QEPlotterToolBar : public QFrame { 29 | Q_OBJECT 30 | public: 31 | explicit QEPlotterToolBar (QWidget *parent = 0); 32 | virtual ~QEPlotterToolBar (); 33 | 34 | static const int designHeight = 32; 35 | 36 | void setEnabled (const QEPlotterNames::MenuActions action, const bool enabled); 37 | 38 | signals: 39 | // Note: this is the same signature as the QEPlotterMenu signal. 40 | // For the toolbar slot is always 0. 41 | // 42 | void selected (const QEPlotterNames::MenuActions action, const int slot); 43 | 44 | protected: 45 | void resizeEvent (QResizeEvent * event); 46 | 47 | private: 48 | // Map actions <==> QPushButtons 49 | // 50 | typedef QEOneToOne ButtonActionMaps; 51 | ButtonActionMaps buttonActionMap; 52 | 53 | private slots: 54 | // Send from the various buttons on the toolbar. 55 | // 56 | void buttonClicked (bool checked = false); 57 | }; 58 | 59 | #endif // QE_PLOTTER_TOOLBAR_H 60 | -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEStripChart/QEStripChartNames.cpp: -------------------------------------------------------------------------------- 1 | /* QEStripChartNames.cpp 2 | * 3 | * This file is part of the EPICS QT Framework, initially developed at the 4 | * Australian Synchrotron. 5 | * 6 | * SPDX-FileCopyrightText: 2016-2025 Australian Synchrotron 7 | * SPDX-License-Identifier: LGPL-3.0-only 8 | * 9 | * Author: Andrew Starritt 10 | * Maintainer: Andrew Starritt 11 | * Contact: andrews@ansto.gov.au 12 | */ 13 | 14 | #include 15 | 16 | 17 | //------------------------------------------------------------------------------ 18 | // static 19 | QString QEStripChartNames::chartTimeModeStatus (const ChartTimeModes mode) 20 | { 21 | QString result; 22 | 23 | switch (mode) { 24 | case tmRealTime: 25 | result = "Real Time"; 26 | break; 27 | case tmPaused: 28 | result = "Paused"; 29 | break; 30 | case tmHistorical: 31 | result = "Historical"; 32 | break; 33 | } 34 | return result; 35 | } 36 | 37 | //------------------------------------------------------------------------------ 38 | // static 39 | QString QEStripChartNames::chartYRangeStatus (const ChartYRanges yRange) 40 | { 41 | QString result; 42 | 43 | switch (yRange) { 44 | case manual: 45 | result = "manual scale"; 46 | break; 47 | case operatingRange: 48 | result = "operating range scale"; 49 | break; 50 | case plotted: 51 | result = "plotted scale"; 52 | break; 53 | case buffered: 54 | result = "buffered scale"; 55 | break; 56 | case dynamic: 57 | result = "dynamic scale"; 58 | break; 59 | case normalised: 60 | result = "normalised scale"; 61 | break; 62 | } 63 | return result; 64 | } 65 | 66 | // end 67 | -------------------------------------------------------------------------------- /qeframeworkSup/project/protocol/QEBaseClient.cpp: -------------------------------------------------------------------------------- 1 | /* QEBaseClient.cpp 2 | * 3 | * This file is part of the EPICS QT Framework, initially developed at the 4 | * Australian Synchrotron. 5 | * 6 | * SPDX-FileCopyrightText: 2018-2025 Australian Synchrotron 7 | * SPDX-License-Identifier: LGPL-3.0-only 8 | * 9 | * Author: Andrew Starritt 10 | * Maintainer: Andrew Starritt 11 | * Contact: andrews@ansto.gov.au 12 | */ 13 | 14 | #include "QEBaseClient.h" 15 | #include 16 | 17 | #define DEBUG qDebug () << "QEBaseClient" << __LINE__ << __FUNCTION__ << " " 18 | 19 | //------------------------------------------------------------------------------ 20 | // 21 | QEBaseClient::QEBaseClient (const Type type, const QString& pvName, 22 | QObject* parent) : 23 | QObject(parent), 24 | clientType(type), 25 | clientPvName(pvName) 26 | { 27 | this->userMessage = NULL; 28 | } 29 | 30 | //------------------------------------------------------------------------------ 31 | // 32 | QEBaseClient::~QEBaseClient () {} 33 | 34 | //------------------------------------------------------------------------------ 35 | // 36 | void QEBaseClient::setUserMessage (UserMessage* userMessageIn) 37 | { 38 | this->userMessage = userMessageIn; 39 | } 40 | 41 | //------------------------------------------------------------------------------ 42 | // 43 | UserMessage* QEBaseClient::getUserMessage () const 44 | { 45 | return this->userMessage; 46 | } 47 | 48 | //------------------------------------------------------------------------------ 49 | // 50 | QEBaseClient::Type QEBaseClient::getType () const 51 | { 52 | return this->clientType; 53 | } 54 | 55 | //------------------------------------------------------------------------------ 56 | // 57 | QString QEBaseClient::getPvName () const 58 | { 59 | return this->clientPvName; 60 | } 61 | 62 | // end 63 | -------------------------------------------------------------------------------- /qeframeworkSup/project/data/QCaDateTime.h: -------------------------------------------------------------------------------- 1 | /* QCaDateTime.h 2 | * 3 | * This file is part of the EPICS QT Framework, initially developed at the 4 | * Australian Synchrotron. 5 | * 6 | * SPDX-FileCopyrightText: 2009-2025 Australian Synchrotron 7 | * SPDX-License-Identifier: LGPL-3.0-only 8 | * 9 | * Author: Andrew Rhyder 10 | * Maintainer: Andrew Starritt 11 | * Contact: andrews@ansto.gov.au 12 | */ 13 | 14 | // QE Date Time manager 15 | 16 | #ifndef QE_DATE_TIME_H 17 | #define QE_DATE_TIME_H 18 | 19 | #include 20 | #include 21 | 22 | /// Extends the Qt datatime object in irder to provide nSec precision 23 | /// 24 | class QE_FRAMEWORK_LIBRARY_SHARED_EXPORT QCaDateTime : public QDateTime 25 | { 26 | public: 27 | explicit QCaDateTime(); 28 | QCaDateTime( const QCaDateTime& other ); 29 | 30 | QCaDateTime( const QDateTime& dt ); 31 | 32 | QCaDateTime( const unsigned long seconds, 33 | const unsigned long nanoseconds, 34 | const int userTag = 0 ); 35 | ~QCaDateTime(); 36 | 37 | QCaDateTime& operator=(const QCaDateTime& other); 38 | 39 | QString text() const; 40 | QString ISOText() const; 41 | 42 | /// Equivilent of addSecs and secsTo in base class, save that we specify the 43 | /// seconds as a floating point number, i.e. take into account fractions of a 44 | /// second (i.e. mSec but not nano sec). 45 | /// 46 | QCaDateTime addSeconds( const double seconds ) const; 47 | double secondsTo( const QDateTime& target ) const; 48 | 49 | /// Recover original EPICS time constructor parameters. 50 | // 51 | unsigned long getSeconds() const; 52 | unsigned long getNanoSeconds() const; 53 | int getUserTag() const; 54 | 55 | private: 56 | unsigned long nSec; 57 | int userTag; 58 | }; 59 | 60 | #endif // QE_DATE_TIME_H 61 | -------------------------------------------------------------------------------- /archapplDataSup/src/archapplData.h: -------------------------------------------------------------------------------- 1 | /* archapplData.h 2 | * 3 | * This file is part of the EPICS QT Framework, initially developed at the 4 | * Australian Synchrotron. 5 | * 6 | * SPDX-FileCopyrightText: 2018-2025 Australian Synchrotron 7 | * SPDX-License-Identifier: LGPL-3.0-only 8 | * 9 | * Author: Andraz Pozar 10 | * Maintainer: Andrew Starritt 11 | * Contact: andrews@ansto.gov.au 12 | */ 13 | 14 | #ifndef ARCHAPPLDATA_H 15 | #define ARCHAPPLDATA_H 16 | 17 | #include 18 | #include 19 | #include 20 | 21 | #include 22 | 23 | namespace ArchapplData { 24 | 25 | // Data structure holding all available information of one data point 26 | // 27 | struct PBData { 28 | double value; 29 | int year; 30 | int seconds; 31 | int nanos; 32 | std::map fieldValues; 33 | int severity; 34 | int status; 35 | }; 36 | 37 | 38 | /** 39 | * Google Protcol Buffers processing 40 | * 41 | * params: 42 | * - std::vector *pbData [in] pointer to char vector recieved from AA containint PB data for one PV 43 | * - int &precision [out] 44 | * - std::string &pvName [out] 45 | * - std::string &units [out] 46 | * - double &displayHigh [out] 47 | * - double &displayLow [out] 48 | * - std::vector &pvData [out] Vector of data points 49 | */ 50 | epicsShareFunc void processProtoBuffers(std::vector *pbData, 51 | int &precision, 52 | std::string &pvName, 53 | std::string &units, 54 | double &displayHigh, 55 | double &displayLow, 56 | std::vector &pvData); 57 | 58 | } 59 | 60 | #endif // ARCHAPPLDATA_H 61 | -------------------------------------------------------------------------------- /qepluginApp/project/QEPeriodic/QEPeriodicTaskMenu.cpp: -------------------------------------------------------------------------------- 1 | /* QEPeriodicTaskMenu.cpp 2 | * 3 | * This file is part of the EPICS QT Framework, initially developed at the 4 | * Australian Synchrotron. 5 | * 6 | * SPDX-FileCopyrightText: 2011-2025 Australian Synchrotron 7 | * SPDX-License-Identifier: LGPL-3.0-only 8 | * 9 | * Author: Andrew Rhyder 10 | * Maintainer: Andrew Starritt 11 | * Contact: andrews@ansto.gov.au 12 | */ 13 | 14 | 15 | #include "QEPeriodic.h" 16 | #include "PeriodicSetupDialog.h" 17 | #include "QEPeriodicTaskMenu.h" 18 | 19 | QEPeriodicTaskMenu::QEPeriodicTaskMenu(QEPeriodic *periodicIn, QObject *parent) 20 | : QObject(parent) 21 | { 22 | periodic = periodicIn; 23 | 24 | editUserInfoAction = new QAction(tr("Edit User Info..."), this); 25 | connect(editUserInfoAction, SIGNAL(triggered()), this, SLOT(editUserInfo())); 26 | } 27 | 28 | void QEPeriodicTaskMenu::editUserInfo() 29 | { 30 | PeriodicSetupDialog dialog(periodic); 31 | dialog.exec(); 32 | } 33 | 34 | QAction *QEPeriodicTaskMenu::preferredEditAction() const 35 | { 36 | return editUserInfoAction; 37 | } 38 | 39 | QList QEPeriodicTaskMenu::taskActions() const 40 | { 41 | QList list; 42 | list.append(editUserInfoAction); 43 | return list; 44 | } 45 | 46 | QEPeriodicTaskMenuFactory::QEPeriodicTaskMenuFactory(QExtensionManager *parent) 47 | : QExtensionFactory(parent) 48 | { 49 | } 50 | 51 | QObject *QEPeriodicTaskMenuFactory::createExtension(QObject *object, 52 | const QString &iid, 53 | QObject *parent) const 54 | { 55 | if (iid != Q_TYPEID(QDesignerTaskMenuExtension)) 56 | return 0; 57 | 58 | if (QEPeriodic *pp = qobject_cast(object)) 59 | return new QEPeriodicTaskMenu(pp, parent); 60 | 61 | return 0; 62 | } 63 | -------------------------------------------------------------------------------- /qeframeworkSup/project/archive/maiaFault.h: -------------------------------------------------------------------------------- 1 | /* 2 | * libMaia - maiaFault.h 3 | * Copyright (c) 2007 Sebastian Wiedenroth 4 | * 5 | * Redistribution and use in source and binary forms, with or without 6 | * modification, are permitted provided that the following conditions 7 | * are met: 8 | * 9 | * 1. Redistributions of source code must retain the above copyright 10 | * notice, this list of conditions and the following disclaimer. 11 | * 2. Redistributions in binary form must reproduce the above copyright 12 | * notice, this list of conditions and the following disclaimer in the 13 | * documentation and/or other materials provided with the distribution. 14 | * 15 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 16 | * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 17 | * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 18 | * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 19 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 20 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 21 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 22 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 23 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 24 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 25 | */ 26 | 27 | #ifndef MAIAFAULT_H 28 | #define MAIAFAULT_H 29 | 30 | #include 31 | #include 32 | 33 | class MaiaFault : public QObject { 34 | Q_OBJECT 35 | 36 | public: 37 | MaiaFault(int faultCode = 0, QString faultString = QString(), QObject *parent = 0); 38 | MaiaFault(const MaiaFault &other); 39 | QString toString(); 40 | QMap fault; 41 | }; 42 | 43 | Q_DECLARE_METATYPE(MaiaFault) 44 | 45 | 46 | #endif 47 | -------------------------------------------------------------------------------- /qeframeworkSup/project/data/QCaConnectionInfo.cpp: -------------------------------------------------------------------------------- 1 | /* QCaConnectionInfo.cpp 2 | * 3 | * This file is part of the EPICS QT Framework, initially developed at the 4 | * Australian Synchrotron. 5 | * 6 | * SPDX-FileCopyrightText: 2009-2025 Australian Synchrotron 7 | * SPDX-License-Identifier: LGPL-3.0-only 8 | * 9 | * Author: Andrew Rhyder 10 | * Maintainer: Andrew Starritt 11 | * Contact: andrews@ansto.gov.au 12 | */ 13 | 14 | // CA connection info manager 15 | 16 | #include "QCaConnectionInfo.h" 17 | 18 | /* 19 | Construct an empty instance. 20 | By default the channel and link states are unknown 21 | */ 22 | QCaConnectionInfo::QCaConnectionInfo() 23 | { 24 | this->channelState = CHANNEL_UNKNOWN; 25 | this->variableName = ""; 26 | } 27 | 28 | /* 29 | Construct an instance given a channel and link state 30 | */ 31 | QCaConnectionInfo::QCaConnectionInfo( const channel_states channelStateIn, 32 | const QString& variableNameIn ) 33 | { 34 | this->channelState = channelStateIn; 35 | this->variableName = variableNameIn; 36 | } 37 | 38 | /* 39 | Destruct - place holder 40 | */ 41 | QCaConnectionInfo::~QCaConnectionInfo() { } 42 | 43 | /* 44 | Return true if the channel is connected 45 | */ 46 | bool QCaConnectionInfo::isChannelConnected() const 47 | { 48 | return( this->channelState == CONNECTED ); 49 | } 50 | 51 | /* 52 | Return the variable name 53 | Usefull if same slot is used for reporting multiple QCa connections 54 | */ 55 | QString QCaConnectionInfo::variable() const 56 | { 57 | return this->variableName; 58 | } 59 | 60 | //------------------------------------------------------------------------------ 61 | // 62 | static bool registerMetaTypes() 63 | { 64 | qRegisterMetaType ("QCaConnectionInfo"); 65 | return true; 66 | } 67 | 68 | static const bool elaborate = registerMetaTypes(); 69 | 70 | // end 71 | -------------------------------------------------------------------------------- /qeframeworkSup/project/data/QCaVariableNamePropertyManager.h: -------------------------------------------------------------------------------- 1 | /* QCaVariableNamePropertyManager.h 2 | * 3 | * This file is part of the EPICS QT Framework, initially developed at the 4 | * Australian Synchrotron. 5 | * 6 | * SPDX-FileCopyrightText: 2009-2025 Australian Synchrotron 7 | * SPDX-License-Identifier: LGPL-3.0-only 8 | * 9 | * Author: Andrew Rhyder 10 | * Maintainer: Andrew Starritt 11 | * Contact: andrews@ansto.gov.au 12 | */ 13 | 14 | // Handles variable name sets. 15 | 16 | #ifndef QCA_VARIABLE_NAME_PROPERTY_MANAGER_H 17 | #define QCA_VARIABLE_NAME_PROPERTY_MANAGER_H 18 | 19 | #include 20 | #include 21 | #include 22 | 23 | class QE_FRAMEWORK_LIBRARY_SHARED_EXPORT QCaVariableNamePropertyManager : public QTimer { 24 | Q_OBJECT 25 | 26 | public: 27 | QCaVariableNamePropertyManager(); 28 | 29 | QString getVariableNameProperty() const; 30 | void setVariableNameProperty( QString variableNamePropertyIn ); 31 | 32 | QString getSubstitutionsProperty() const; 33 | void setSubstitutionsProperty( QString substitutionsPropertyIn ); 34 | 35 | void setVariableIndex( unsigned int variableIndexIn ); 36 | unsigned int getVariableIndex() const; 37 | 38 | signals: 39 | void newVariableNameProperty( QString variable, QString Substitutions, unsigned int variableIndex ); 40 | 41 | private slots: 42 | void subscribeDelayExpired(); // Called a short time after a user stops typing in 'designer' 43 | 44 | 45 | private: 46 | QString variableNameProperty; 47 | QString substitutionsProperty; 48 | 49 | unsigned int variableIndex; // Index into the list of variable names maintained by a QE widgets 50 | bool interactive; // If set, there is a user typing new variable names and macro substitutions. Use timers to wait for typing to finish. 51 | }; 52 | 53 | #endif // QCA_VARIABLE_NAME_PROPERTY_MANAGER_H 54 | -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEImage/selectMenu.h: -------------------------------------------------------------------------------- 1 | /* selectMenu.h 2 | * 3 | * This file is part of the EPICS QT Framework, initially developed at the 4 | * Australian Synchrotron. 5 | * 6 | * SPDX-FileCopyrightText: 2012-2025 Australian Synchrotron 7 | * SPDX-License-Identifier: LGPL-3.0-only 8 | * 9 | * Author: Andrew Rhyder 10 | * Maintainer: Andrew Starritt 11 | * Contact: andrews@ansto.gov.au 12 | */ 13 | 14 | /* 15 | This class manages the selection mode menu for the QEImage widget 16 | */ 17 | 18 | #ifndef SELECTMENU_H 19 | #define SELECTMENU_H 20 | 21 | #include 22 | #include 23 | 24 | class selectMenu : public QMenu 25 | { 26 | Q_OBJECT 27 | public: 28 | 29 | explicit selectMenu( QWidget *parent = 0 ); 30 | 31 | imageContextMenu::imageContextMenuOptions getSelectOption( const QPoint& pos ); 32 | 33 | void enable( imageContextMenu::imageContextMenuOptions option, bool state ); 34 | bool isEnabled( imageContextMenu::imageContextMenuOptions option ); 35 | void setChecked( const int mode ); 36 | void setItemText( imageContextMenu::imageContextMenuOptions option, QString title ); 37 | 38 | 39 | signals: 40 | 41 | public slots: 42 | 43 | private: 44 | QAction* getAction( imageContextMenu::imageContextMenuOptions option ); 45 | 46 | QAction* actionPan; 47 | QAction* actionHSlice1; 48 | QAction* actionHSlice2; 49 | QAction* actionHSlice3; 50 | QAction* actionHSlice4; 51 | QAction* actionHSlice5; 52 | QAction* actionVSlice1; 53 | QAction* actionVSlice2; 54 | QAction* actionVSlice3; 55 | QAction* actionVSlice4; 56 | QAction* actionVSlice5; 57 | QAction* actionArea1; 58 | QAction* actionArea2; 59 | QAction* actionArea3; 60 | QAction* actionArea4; 61 | QAction* actionProfile; 62 | QAction* actionTarget; 63 | QAction* actionBeam; 64 | }; 65 | 66 | #endif // SELECTMENU_H 67 | -------------------------------------------------------------------------------- /qeframeworkSup/project/data/data.pri: -------------------------------------------------------------------------------- 1 | # data.pri 2 | # 3 | # This file is part of the EPICS QT Framework, initially developed at 4 | # the Australian Synchrotron. This file is included into and as part 5 | # of the overall framework.pro project file. 6 | # 7 | # SPDX-FileCopyrightText: 2017-2025 Australian Synchrotron 8 | # SPDX-License-Identifier: LGPL-3.0-only 9 | # 10 | # Author: Andrew Starritt 11 | # Maintainer: Andrew Starritt 12 | # Contact: andrews@ansto.gov.au 13 | # 14 | 15 | INCLUDEPATH += $$PWD 16 | 17 | HEADERS += $$PWD/QCaAlarmInfo.h 18 | SOURCES += $$PWD/QCaAlarmInfo.cpp 19 | 20 | HEADERS += $$PWD/QCaConnectionInfo.h 21 | SOURCES += $$PWD/QCaConnectionInfo.cpp 22 | 23 | HEADERS += $$PWD/QCaDataPoint.h 24 | SOURCES += $$PWD/QCaDataPoint.cpp 25 | 26 | HEADERS += $$PWD/QCaDateTime.h 27 | SOURCES += $$PWD/QCaDateTime.cpp 28 | 29 | HEADERS += $$PWD/QCaObject.h 30 | SOURCES += $$PWD/QCaObject.cpp 31 | 32 | HEADERS += $$PWD/QCaVariableNamePropertyManager.h 33 | SOURCES += $$PWD/QCaVariableNamePropertyManager.cpp 34 | 35 | HEADERS += $$PWD/QEByteArray.h 36 | SOURCES += $$PWD/QEByteArray.cpp 37 | 38 | HEADERS += $$PWD/QEFloating.h 39 | SOURCES += $$PWD/QEFloating.cpp 40 | 41 | HEADERS += $$PWD/QEFloatingArray.h 42 | SOURCES += $$PWD/QEFloatingArray.cpp 43 | 44 | HEADERS += $$PWD/QEFloatingFormatting.h 45 | SOURCES += $$PWD/QEFloatingFormatting.cpp 46 | 47 | HEADERS += $$PWD/QEInteger.h 48 | SOURCES += $$PWD/QEInteger.cpp 49 | 50 | HEADERS += $$PWD/QEIntegerArray.h 51 | SOURCES += $$PWD/QEIntegerArray.cpp 52 | 53 | HEADERS += $$PWD/QEIntegerFormatting.h 54 | SOURCES += $$PWD/QEIntegerFormatting.cpp 55 | 56 | HEADERS += $$PWD/QELocalEnumeration.h 57 | SOURCES += $$PWD/QELocalEnumeration.cpp 58 | 59 | HEADERS += $$PWD/QEString.h 60 | SOURCES += $$PWD/QEString.cpp 61 | 62 | HEADERS += $$PWD/QEStringFormatting.h 63 | SOURCES += $$PWD/QEStringFormatting.cpp 64 | 65 | HEADERS += $$PWD/qepicspv.h 66 | SOURCES += $$PWD/qepicspv.cpp 67 | 68 | # end 69 | -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEPvLoadSave/QEPvLoadSaveCommon.cpp: -------------------------------------------------------------------------------- 1 | /* QEPvLoadSaveCommon.cpp 2 | * 3 | * This file is part of the EPICS QT Framework, initially developed at the 4 | * Australian Synchrotron. 5 | * 6 | * SPDX-FileCopyrightText: 2015-2025 Australian Synchrotron 7 | * SPDX-License-Identifier: LGPL-3.0-only 8 | * 9 | * Author: Andrew Starritt 10 | * Maintainer: Andrew Starritt 11 | * Contact: andrews@ansto.gov.au 12 | */ 13 | 14 | #include "QEPvLoadSaveCommon.h" 15 | 16 | //------------------------------------------------------------------------------ 17 | // static 18 | void QEPvLoadSaveCommon::clear (StatusSummary& item) 19 | { 20 | item.isEqualCount = 0; 21 | item.isNotEqualCount = 0; 22 | item.isNotAplicableCount = 0; 23 | } 24 | 25 | //------------------------------------------------------------------------------ 26 | // static 27 | QEPvLoadSaveCommon::StatusSummary QEPvLoadSaveCommon::merge 28 | (const StatusSummary& a, 29 | const StatusSummary& b) 30 | { 31 | StatusSummary result; 32 | result.isEqualCount = a.isEqualCount + b.isEqualCount; 33 | result.isNotEqualCount = a.isNotEqualCount + b.isNotEqualCount; 34 | result.isNotAplicableCount = a.isNotAplicableCount + b.isNotAplicableCount; 35 | return result; 36 | } 37 | 38 | //------------------------------------------------------------------------------ 39 | // 40 | QEPvLoadSaveCommon::PvNameValueMaps QEPvLoadSaveCommon::merge 41 | (const PvNameValueMaps& a, 42 | const PvNameValueMaps& b) 43 | { 44 | PvNameValueMaps result (a); 45 | 46 | QList bKeys = b.keys (); 47 | int n = bKeys.count(); 48 | for (int j = 0; j < n; j++) { 49 | QString pvName = bKeys.value (j, ""); 50 | if (!pvName.isEmpty () && !a.contains (pvName)) { 51 | double value = b.value (pvName); 52 | result.insert (pvName, value); 53 | } 54 | } 55 | 56 | return result; 57 | } 58 | 59 | // end 60 | -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEImage/markupText.h: -------------------------------------------------------------------------------- 1 | /* markupText.h 2 | * 3 | * This file is part of the EPICS QT Framework, initially developed at the 4 | * Australian Synchrotron. 5 | * 6 | * SPDX-FileCopyrightText: 2012-2025 Australian Synchrotron 7 | * SPDX-License-Identifier: LGPL-3.0-only 8 | * 9 | * Author: Andrew Rhyder 10 | * Maintainer: Andrew Starritt 11 | * Contact: andrews@ansto.gov.au 12 | */ 13 | 14 | /* 15 | This class manages a 'test' markup. 16 | The markup simply contains some text. The user cannot interact with it. 17 | It is used to present a time stamp, but could be used for any text markups. 18 | */ 19 | 20 | #ifndef MARKUPTEXT_H 21 | #define MARKUPTEXT_H 22 | 23 | #include 24 | 25 | #include 26 | 27 | class imageMarkup; 28 | 29 | // Text markup. Used to add some text to an image, such as a timestamp 30 | class markupText : public markupItem 31 | { 32 | public: 33 | 34 | markupText( imageMarkup* ownerIn, const bool interactiveIn, const bool reportOnMoveIn, const QString legendIn ); 35 | 36 | void setText( QString textIn ); 37 | 38 | //================================================================== 39 | // Implement base class functions - see markupItem class defition for a description of each of these methods 40 | void startDrawing( const QPoint pos ); 41 | void setArea(); 42 | void drawMarkup( QPainter& p ); 43 | void moveTo( const QPoint pos ); // Move an item (always make it visible and highlighed) 44 | bool isOver( const QPoint point, QCursor* cursor ); 45 | QPoint origin(); 46 | QCursor cursorForHandle( const markupItem::markupHandles handle ); 47 | QPoint getPoint1(); 48 | QPoint getPoint2(); 49 | QCursor defaultCursor(); 50 | //================================================================== 51 | 52 | private: 53 | QString text; // Text displayed 54 | QRect rect; // Area of the text 55 | }; 56 | 57 | #endif // MARKUPTEXT_H 58 | -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEPeriodic/PeriodicDialog.h: -------------------------------------------------------------------------------- 1 | /* PeriodicDialog.h 2 | * 3 | * This file is part of the EPICS QT Framework, initially developed at the 4 | * Australian Synchrotron. 5 | * 6 | * SPDX-FileCopyrightText: 2011-2025 Australian Synchrotron 7 | * SPDX-License-Identifier: LGPL-3.0-only 8 | * 9 | * Author: Andrew Rhyder 10 | * Maintainer: Andrew Starritt 11 | * Contact: andrews@ansto.gov.au 12 | */ 13 | 14 | #ifndef QE_PERIODIC_DIALOG_H 15 | #define QE_PERIODIC_DIALOG_H 16 | 17 | #include 18 | #include 19 | #include 20 | #include 21 | 22 | namespace Ui { 23 | class PeriodicDialog; 24 | } 25 | 26 | class QE_FRAMEWORK_LIBRARY_SHARED_EXPORT PeriodicDialog : public QEDialog 27 | { 28 | Q_OBJECT 29 | public: 30 | PeriodicDialog( QWidget *parent = 0 ); 31 | ~PeriodicDialog(); 32 | 33 | // Colourise run-time element selection dialog 34 | void setColourised( const bool colouriseIn ); 35 | bool isColourised() const; 36 | 37 | void setElement( QString elementIn, 38 | QList& enabledList ); 39 | 40 | QString getElementName() const; // selected element name 41 | QString getElement() const; // selected element symbol 42 | int getAtomicNumber() const; // selected element by atomic number 1 .. 118 43 | 44 | public slots: 45 | // Re-postion dialog to the centre of the specified widget. 46 | // 47 | int exec( QWidget* targetWidget ); 48 | 49 | protected: 50 | void changeEvent( QEvent *e ); 51 | 52 | private: 53 | Ui::PeriodicDialog *m_ui; 54 | int selectedAtomicNumber; 55 | QString selectedElementSymbol; 56 | QString selectedElementName; 57 | bool colourise; 58 | 59 | typedef QEOneToOne ElementSlotButtonMap; 60 | ElementSlotButtonMap map; 61 | 62 | private slots: 63 | void noteElementSelected(); 64 | }; 65 | 66 | #endif // QE_PERIODIC_DIALOG_H 67 | -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEImage/QEImageMarkupThickness.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | QEImageMarkupThickness 4 | 5 | 6 | 7 | 0 8 | 0 9 | 205 10 | 83 11 | 12 | 13 | 14 | Line thickness 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | Line thickness in pixels (minimum is 1) 24 | 25 | 26 | Qt::Horizontal 27 | 28 | 29 | QDialogButtonBox::Cancel|QDialogButtonBox::Ok 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | buttonBox 39 | accepted() 40 | QEImageMarkupThickness 41 | accept() 42 | 43 | 44 | 248 45 | 254 46 | 47 | 48 | 157 49 | 274 50 | 51 | 52 | 53 | 54 | buttonBox 55 | rejected() 56 | QEImageMarkupThickness 57 | reject() 58 | 59 | 60 | 316 61 | 260 62 | 63 | 64 | 286 65 | 274 66 | 67 | 68 | 69 | 70 | 71 | -------------------------------------------------------------------------------- /qeframeworkSup/project/common/PasswordDialog.cpp: -------------------------------------------------------------------------------- 1 | /* PasswordDialog.cpp 2 | * 3 | * This file is part of the EPICS QT Framework, initially developed at the 4 | * Australian Synchrotron. 5 | * 6 | * SPDX-FileCopyrightText: 2013-2025 Australian Synchrotron 7 | * SPDX-License-Identifier: LGPL-3.0-only 8 | * 9 | * Author: Andrew Rhyder 10 | * Maintainer: Andrew Starritt 11 | * Contact: andrews@ansto.gov.au 12 | */ 13 | 14 | /* 15 | * Description: 16 | * 17 | * This class provides a dialog for altering the user level passwords. 18 | * On instantiation, it reads the current passwords from the profile and on 'OK' updates the passwords. 19 | */ 20 | 21 | #include "PasswordDialog.h" 22 | #include "ui_PasswordDialog.h" 23 | #include 24 | #include 25 | 26 | //------------------------------------------------------------------------------ 27 | // 28 | PasswordDialog::PasswordDialog(QWidget *parent) : 29 | QDialog(parent), 30 | ui(new Ui::PasswordDialog) 31 | { 32 | ContainerProfile profile; 33 | 34 | this->ui->setupUi(this); 35 | 36 | this->ui->lineEditUser->setText( profile.getUserLevelPassword( QE::User ) ); 37 | this->ui->lineEditScientist->setText( profile.getUserLevelPassword( QE::Scientist ) ); 38 | this->ui->lineEditEngineer->setText( profile.getUserLevelPassword( QE::Engineer ) ); 39 | } 40 | 41 | //------------------------------------------------------------------------------ 42 | // 43 | PasswordDialog::~PasswordDialog() 44 | { 45 | delete this->ui; 46 | } 47 | 48 | //------------------------------------------------------------------------------ 49 | // 50 | void PasswordDialog::on_buttonBox_accepted() 51 | { 52 | ContainerProfile profile; 53 | 54 | profile.setUserLevelPassword( QE::User, this->ui->lineEditUser->text() ); 55 | profile.setUserLevelPassword( QE::Scientist, this->ui->lineEditScientist->text() ); 56 | profile.setUserLevelPassword( QE::Engineer, this->ui->lineEditEngineer->text() ); 57 | } 58 | 59 | // end 60 | -------------------------------------------------------------------------------- /qeframeworkSup/project/common/QEPVNameSelectDialog.h: -------------------------------------------------------------------------------- 1 | /* QEPVNameSelectDialog.h 2 | * 3 | * This file is part of the EPICS QT Framework, initially developed at the 4 | * Australian Synchrotron. 5 | * 6 | * SPDX-FileCopyrightText: 2013-2025 Australian Synchrotron 7 | * SPDX-License-Identifier: LGPL-3.0-only 8 | * 9 | * Author: Andrew Starritt 10 | * Maintainer: Andrew Starritt 11 | * Contact: andrews@ansto.gov.au 12 | */ 13 | 14 | #ifndef QE_PVNAME_SELECT_DIALOG_H 15 | #define QE_PVNAME_SELECT_DIALOG_H 16 | 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | 23 | namespace Ui { 24 | class QEPVNameSelectDialog; 25 | } 26 | 27 | /* 28 | * Manager class for the QEPVNameSelectDialog.ui compiled form. 29 | */ 30 | class QE_FRAMEWORK_LIBRARY_SHARED_EXPORT QEPVNameSelectDialog : public QEDialog 31 | { 32 | Q_OBJECT 33 | 34 | public: 35 | explicit QEPVNameSelectDialog (QWidget *parent = 0); 36 | ~QEPVNameSelectDialog (); 37 | 38 | void setPvName (QString pvNameIn); 39 | QString getPvName (); 40 | 41 | // Set and get a global arbitary PV names list to augment the PV names 42 | // extracted from the archiver. 43 | // 44 | static void setPvNameList (const QStringList& pvNameList); 45 | static QStringList getPvNameList (); 46 | 47 | protected: 48 | void closeEvent (QCloseEvent * e); 49 | 50 | private: 51 | void applyFilter (); 52 | 53 | Ui::QEPVNameSelectDialog *ui; 54 | QString originalPvName; 55 | bool returnIsMasked; 56 | QStringList filteredNames; 57 | static QStringList pvNameList; 58 | 59 | private slots: 60 | void filterEditReturnPressed (); 61 | void filterEditingFinished (); 62 | void editTextChanged (const QString &); 63 | void helpClicked (bool checked); 64 | void clearClicked (bool checked); 65 | 66 | void on_buttonBox_rejected (); 67 | void on_buttonBox_accepted (); 68 | }; 69 | 70 | #endif // QE_PVNAME_SELECT_DIALOG_H 71 | -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEStripChart/QEStripChartStatistics.h: -------------------------------------------------------------------------------- 1 | /* QEStripChartStatistics.h 2 | * 3 | * This file is part of the EPICS QT Framework, initially developed at the 4 | * Australian Synchrotron. 5 | * 6 | * SPDX-FileCopyrightText: 2013-2025 Australian Synchrotron 7 | * SPDX-License-Identifier: LGPL-3.0-only 8 | * 9 | * Author: Andrew Starritt 10 | * Maintainer: Andrew Starritt 11 | * Contact: andrews@ansto.gov.au 12 | */ 13 | 14 | #ifndef QE_STRIP_CHART_STATISTICS_H 15 | #define QE_STRIP_CHART_STATISTICS_H 16 | 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | 23 | namespace Ui { 24 | class QEStripChartStatistics; 25 | } 26 | 27 | class QEStripChartItem; 28 | 29 | class QE_FRAMEWORK_LIBRARY_SHARED_EXPORT QEStripChartStatistics : public QWidget 30 | { 31 | Q_OBJECT 32 | 33 | public: 34 | explicit QEStripChartStatistics (const QString& pvName, 35 | const QString& egu, 36 | const QCaDataPointList& dataList, 37 | QEStripChartItem* owner, 38 | QWidget *parent = 0); 39 | ~QEStripChartStatistics(); 40 | 41 | protected: 42 | bool eventFilter (QObject* watched, QEvent* event); 43 | 44 | private: 45 | void processDataList (const QCaDataPointList& dataList); 46 | void clearLabels (); 47 | void paintDistribution (); 48 | 49 | Ui::QEStripChartStatistics *ui; 50 | QEStripChartItem* owner; 51 | QString pvName; 52 | QString egu; 53 | 54 | QEAxisPainter* xAxis; 55 | QEAxisPainter* yAxis; 56 | 57 | double valueMean; 58 | double valueStdDev; 59 | double valueTotal; 60 | 61 | double distributionData [200]; 62 | int distributionCount; 63 | double distributionIncrement; 64 | 65 | private slots: 66 | void updateClicked (bool); 67 | 68 | }; 69 | 70 | #endif // QE_STRIP_CHART_STATISTICS_H 71 | -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEImage/markupTarget.h: -------------------------------------------------------------------------------- 1 | /* markupTarget.h 2 | * 3 | * This file is part of the EPICS QT Framework, initially developed at the 4 | * Australian Synchrotron. 5 | * 6 | * SPDX-FileCopyrightText: 2012-2025 Australian Synchrotron 7 | * SPDX-License-Identifier: LGPL-3.0-only 8 | * 9 | * Author: Andrew Rhyder 10 | * Maintainer: Andrew Starritt 11 | * Contact: andrews@ansto.gov.au 12 | */ 13 | 14 | /* 15 | This class manages a 'target' markup. 16 | The markup looks like a target (but different to the 'beam' markup. It can be dragged to any location in the image. 17 | This markup is used in the QEImage widget to interactivly mark where a sample is. 18 | */ 19 | 20 | #ifndef MARKUPTARGET_H 21 | #define MARKUPTARGET_H 22 | 23 | #include 24 | 25 | #include 26 | 27 | class imageMarkup; 28 | 29 | // Target markup used to identify a target point on a sample 30 | class markupCrosshair1 : public markupItem 31 | { 32 | public: 33 | markupCrosshair1( imageMarkup* ownerIn, const bool interactiveIn, const bool reportOnMoveIn, const QString legendIn ); 34 | 35 | //================================================================== 36 | // Implement base class functions - see markupItem class defition for a description of each of these methods 37 | void startDrawing( const QPoint pos ); 38 | void setArea(); 39 | void drawMarkup( QPainter& p ); 40 | void moveTo( const QPoint pos ); // Move an item (always make it visible and highlighed) 41 | bool isOver( const QPoint point, QCursor* cursor ); 42 | QPoint origin(); 43 | QCursor cursorForHandle( const markupItem::markupHandles handle ); 44 | QPoint getPoint1(); 45 | QPoint getPoint2(); 46 | QCursor defaultCursor(); 47 | 48 | void nonInteractiveUpdate( QPoint p1, QPoint p2, double rotation ); 49 | //================================================================== 50 | 51 | private: 52 | QPoint pos; // Center of target 53 | }; 54 | 55 | #endif // MARKUPTARGET_H 56 | -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEWidget/QEFrameworkLibraryGlobal.h: -------------------------------------------------------------------------------- 1 | /* QEFrameworkLibraryGlobal.h 2 | * 3 | * This file is part of the EPICS QT Framework, initially developed at the 4 | * Australian Synchrotron. 5 | * 6 | * SPDX-FileCopyrightText: 2009-2025 Australian Synchrotron 7 | * SPDX-License-Identifier: LGPL-3.0-only 8 | * 9 | * Author: Andrew Rhyder 10 | * Maintainer: Andrew Starritt 11 | * Contact: andrews@ansto.gov.au 12 | */ 13 | 14 | /* Description: 15 | * 16 | * Manage the declaration of library public functions as either exported functions 17 | * when building the library, or imported functions when using the library. 18 | * 19 | */ 20 | 21 | #ifndef QE_FRAMEWORK_LIBRARY_GLOBAL_H 22 | #define QE_FRAMEWORK_LIBRARY_GLOBAL_H 23 | 24 | #include 25 | #include 26 | 27 | #if defined(QE_FRAMEWORK_LIBRARY) 28 | # define QE_FRAMEWORK_LIBRARY_SHARED_EXPORT Q_DECL_EXPORT 29 | #else 30 | # define QE_FRAMEWORK_LIBRARY_SHARED_EXPORT Q_DECL_IMPORT 31 | #endif 32 | 33 | 34 | // With Qt5.6 on windows using mingw 32 bit, found that widget defined enum properties 35 | // types must be declared as a meta type if the uic auto generated ui_xxx.h file is to 36 | // be compiled successfully; but doing this breaks Qt4.8 on Linux. 37 | // 38 | // TODO: The rules need to be clarified and refined. 39 | // Is this version related, OS related, and/or import/export related? 40 | // Whatever, do logic here once, as opposed to each header file. 41 | // 42 | // Rules that appear to work are that meta data declarations are required 43 | // when bulding against the QE library, but not when building the plugin itself. 44 | // 45 | #if !defined(QE_FRAMEWORK_LIBRARY) 46 | # define QE_DECLARE_METATYPE_IS_REQUIRED 47 | #else 48 | # undef QE_DECLARE_METATYPE_IS_REQUIRED 49 | #endif 50 | 51 | // Example 52 | // #ifdef QE_DECLARE_METATYPE_IS_REQUIRED 53 | // Q_DECLARE_METATYPE (QSimpleShape::Shapes) 54 | // Q_DECLARE_METATYPE (QSimpleShape::TextFormats) 55 | // #endif 56 | 57 | #endif // QE_FRAMEWORK_LIBRARY_GLOBAL_H 58 | -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEImage/markupBeam.h: -------------------------------------------------------------------------------- 1 | /* markupBeam.h 2 | * 3 | * This file is part of the EPICS QT Framework, initially developed at the 4 | * Australian Synchrotron. 5 | * 6 | * SPDX-FileCopyrightText: 2012-2025 Australian Synchrotron 7 | * SPDX-License-Identifier: LGPL-3.0-only 8 | * 9 | * Author: Andrew Rhyder 10 | * Maintainer: Andrew Starritt 11 | * Contact: andrews@ansto.gov.au 12 | */ 13 | 14 | /* 15 | This class manages a 'beam' markup. 16 | The markup looks like a target (but different to the 'target' markup. It can be dragged to any location in the image. 17 | This markup is used in the QEImage widget to interactivly mark where beam is. 18 | */ 19 | 20 | #ifndef MARKUPBEAM_H 21 | #define MARKUPBEAM_H 22 | 23 | #include 24 | 25 | #include 26 | 27 | class imageMarkup; 28 | 29 | // Beam markup used to identify beam center in an image 30 | class markupCrosshair2 : public markupItem 31 | { 32 | public: 33 | 34 | markupCrosshair2( imageMarkup* ownerIn, const bool interactiveIn, const bool reportOnMoveIn, const QString legendIn ); 35 | 36 | //================================================================== 37 | // Implement base class functions - see markupItem class defition for a description of each of these methods 38 | void startDrawing( const QPoint pos ); 39 | void setArea(); 40 | void drawMarkup( QPainter& p ); 41 | void moveTo( const QPoint pos ); // Move an item (always make it visible and highlighed) 42 | bool isOver( const QPoint point, QCursor* cursor ); 43 | QPoint origin(); 44 | QCursor cursorForHandle( const markupItem::markupHandles handle ); 45 | QPoint getPoint1(); 46 | QPoint getPoint2(); 47 | QCursor defaultCursor(); 48 | 49 | void nonInteractiveUpdate( QPoint p1, QPoint p2, double rotation ); 50 | //================================================================== 51 | 52 | private: 53 | QPoint pos; 54 | int armSize; // Length of arms in cross hair 55 | }; 56 | 57 | #endif // MARKUPBEAM_H 58 | -------------------------------------------------------------------------------- /configure/CONFIG_SITE: -------------------------------------------------------------------------------- 1 | # CONFIG_SITE 2 | 3 | # Make any application-specific changes to the EPICS build 4 | # configuration variables in this file. 5 | # 6 | # Host/target specific settings can be specified in files named 7 | # CONFIG_SITE.$(EPICS_HOST_ARCH).Common 8 | # CONFIG_SITE.Common.$(T_A) 9 | # CONFIG_SITE.$(EPICS_HOST_ARCH).$(T_A) 10 | 11 | # CHECK_RELEASE controls the consistency checking of the support 12 | # applications pointed to by the RELEASE* files. 13 | # Normally CHECK_RELEASE should be set to YES. 14 | # Set CHECK_RELEASE to NO to disable checking completely. 15 | # Set CHECK_RELEASE to WARN to perform consistency checking but 16 | # continue building even if conflicts are found. 17 | CHECK_RELEASE = YES 18 | 19 | # Set this when you only want to compile this application 20 | # for a subset of the cross-compiled target architectures 21 | # that Base is built for. 22 | #CROSS_COMPILER_TARGET_ARCHS = vxWorks-ppc32 23 | 24 | # To install files into a location other than $(TOP) define 25 | # INSTALL_LOCATION here. 26 | #INSTALL_LOCATION= 27 | 28 | # Set this when the IOC and build host use different paths 29 | # to the install location. This may be needed to boot from 30 | # a Microsoft FTP server say, or on some NFS configurations. 31 | #IOCS_APPL_TOP = 32 | 33 | # Protocol Buffers libraries version 3.6.0 or higher require C++ 11. 34 | # archapplDataSup therefore has to be built with the --std=c++11 35 | # flag if newer versions of Protocol Buffers are used. 36 | # Use this configuration variable to control if archapplDataSup is 37 | # built with C++ 11 or not. If you don't wish the archapplDataSup 38 | # to be built with C++ 11 flag, that means you have to use Protocol Buffers 39 | # versions older than 3.6.0. 40 | # 41 | ARCHAPPL_USE_CPP11 = YES 42 | 43 | # Define as environment variables or define here if needed. 44 | # 45 | # PROTOBUF_INCLUDE_PATH=... 46 | # PROTOBUF_LIB_DIR=/usr/lib64 47 | 48 | -include $(TOP)/configure/CONFIG_SITE.local 49 | 50 | # end 51 | -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEPvLoadSave/QEPvLoadSaveAccessFail.cpp: -------------------------------------------------------------------------------- 1 | /* QEPvLoadSaveAccessFail.cpp 2 | * 3 | * This file is part of the EPICS QT Framework, initially developed at the 4 | * Australian Synchrotron. 5 | * 6 | * SPDX-FileCopyrightText: 2017-2025 Australian Synchrotron 7 | * SPDX-License-Identifier: LGPL-3.0-only 8 | * 9 | * Author: Andrew Starritt 10 | * Maintainer: Andrew Starritt 11 | * Contact: andrews@ansto.gov.au 12 | */ 13 | 14 | #include "QEPvLoadSaveAccessFail.h" 15 | #include 16 | #include 17 | 18 | #define DEBUG qDebug () << "QEPvLoadSaveAccessFail" << __LINE__ << __FUNCTION__ << " " 19 | 20 | //------------------------------------------------------------------------------ 21 | // 22 | QEPvLoadSaveAccessFail::QEPvLoadSaveAccessFail (QEPvLoadSave* ownerIn, 23 | QWidget* parent) : 24 | QWidget (parent), 25 | owner (ownerIn), 26 | ui (new Ui::QEPvLoadSaveAccessFail) 27 | { 28 | this->ui->setupUi (this); 29 | } 30 | 31 | //------------------------------------------------------------------------------ 32 | // 33 | QEPvLoadSaveAccessFail::~QEPvLoadSaveAccessFail () 34 | { 35 | delete this->ui; 36 | } 37 | 38 | //------------------------------------------------------------------------------ 39 | // 40 | void QEPvLoadSaveAccessFail::clear () 41 | { 42 | this->ui->textEdit->clear (); 43 | } 44 | 45 | //------------------------------------------------------------------------------ 46 | // 47 | void QEPvLoadSaveAccessFail::addPVName (const QString& pvName) 48 | { 49 | if (!pvName.isEmpty ()) { 50 | this->ui->textEdit->append (pvName); 51 | } 52 | } 53 | 54 | //------------------------------------------------------------------------------ 55 | // 56 | void QEPvLoadSaveAccessFail::addPVNames (const QStringList& pvNameList) 57 | { 58 | const int n = pvNameList.count (); 59 | for (int j = 0; j < n; j++) { 60 | QString pvName = pvNameList.value (j, ""); 61 | this->addPVName (pvName); 62 | } 63 | } 64 | 65 | // end 66 | -------------------------------------------------------------------------------- /qeframeworkSup/project/common/QEDelayedText.cpp: -------------------------------------------------------------------------------- 1 | /* QEDelayedText.cpp 2 | * 3 | * This file is part of the EPICS QT Framework, initially developed at the 4 | * Australian Synchrotron. 5 | * 6 | * SPDX-FileCopyrightText: 2014-2025 Australian Synchrotron 7 | * SPDX-License-Identifier: LGPL-3.0-only 8 | * 9 | * Author: Andrew Starritt 10 | * Maintainer: Andrew Starritt 11 | * Contact: andrews@ansto.gov.au 12 | */ 13 | 14 | #include 15 | 16 | //------------------------------------------------------------------------------ 17 | // 18 | QEDelayedText::QEDelayedText (const double delayIn, QObject* parent) : QObject (parent) 19 | { 20 | this->delay = delayIn; 21 | this->text = ""; 22 | this->timer = new QTimer (this); 23 | 24 | this->timer->setSingleShot (true); 25 | QObject::connect (this->timer, SIGNAL (timeout ()), 26 | this, SLOT (timeout ())); 27 | } 28 | 29 | //------------------------------------------------------------------------------ 30 | // 31 | QEDelayedText::~QEDelayedText () 32 | { 33 | // place holder 34 | } 35 | 36 | //------------------------------------------------------------------------------ 37 | // 38 | bool QEDelayedText::doubleConnect (const QObject* sender, const char* signal, 39 | const QObject* receiver, const char* member) const 40 | { 41 | bool result; 42 | 43 | result = QObject::connect (sender, signal, this, SLOT (setText (const QString&))) && 44 | QObject::connect (this, SIGNAL (textChanged(const QString&)), receiver, member); 45 | 46 | 47 | return result; 48 | } 49 | 50 | //------------------------------------------------------------------------------ 51 | // 52 | void QEDelayedText::setText (const QString& textIn) 53 | { 54 | this->text = textIn; 55 | this->timer->start (int (this->delay * 1000.0)); // convert to mSec 56 | } 57 | 58 | //------------------------------------------------------------------------------ 59 | // 60 | void QEDelayedText::timeout () { 61 | emit textChanged (this->text); 62 | } 63 | 64 | // end 65 | -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEWidget/QEWidget.pri: -------------------------------------------------------------------------------- 1 | # QEWidget.pri 2 | # 3 | # This file is part of the EPICS QT Framework, initially developed at 4 | # the Australian Synchrotron. This file is included into and as part 5 | # of the overall framework.pro project file. 6 | # 7 | # SPDX-FileCopyrightText: 2017-2025 Australian Synchrotron 8 | # SPDX-License-Identifier: LGPL-3.0-only 9 | # 10 | # Author: Andrew Starritt 11 | # Maintainer: Andrew Starritt 12 | # Contact: andrews@ansto.gov.au 13 | # 14 | 15 | INCLUDEPATH += $$PWD 16 | 17 | HEADERS += $$PWD/ContainerProfile.h 18 | SOURCES += $$PWD/ContainerProfile.cpp 19 | 20 | HEADERS += $$PWD/QEDesignerPluginCommon.h 21 | 22 | HEADERS += $$PWD/QEDragDrop.h 23 | SOURCES += $$PWD/QEDragDrop.cpp 24 | 25 | HEADERS += $$PWD/QEEmitter.h 26 | SOURCES += $$PWD/QEEmitter.cpp 27 | 28 | HEADERS += $$PWD/QEFrameworkLibraryGlobal.h 29 | 30 | HEADERS += $$PWD/QEGlobalStyle.h 31 | SOURCES += $$PWD/QEGlobalStyle.cpp 32 | 33 | HEADERS += $$PWD/QESingleVariableMethods.h 34 | SOURCES += $$PWD/QESingleVariableMethods.cpp 35 | 36 | HEADERS += $$PWD/QEStringFormattingMethods.h 37 | SOURCES += $$PWD/QEStringFormattingMethods.cpp 38 | 39 | HEADERS += $$PWD/QEToolTip.h 40 | SOURCES += $$PWD/QEToolTip.cpp 41 | 42 | HEADERS += $$PWD/QEWidget.h 43 | SOURCES += $$PWD/QEWidget.cpp 44 | 45 | HEADERS += $$PWD/UserMessage.h 46 | SOURCES += $$PWD/UserMessage.cpp 47 | 48 | HEADERS += $$PWD/VariableManager.h 49 | SOURCES += $$PWD/VariableManager.cpp 50 | 51 | HEADERS += $$PWD/VariableNameManager.h 52 | SOURCES += $$PWD/VariableNameManager.cpp 53 | 54 | HEADERS += $$PWD/applicationLauncher.h 55 | SOURCES += $$PWD/applicationLauncher.cpp 56 | 57 | HEADERS += $$PWD/contextMenu.h 58 | SOURCES += $$PWD/contextMenu.cpp 59 | 60 | HEADERS += $$PWD/managePixmaps.h 61 | SOURCES += $$PWD/managePixmaps.cpp 62 | 63 | HEADERS += $$PWD/persistanceManager.h 64 | SOURCES += $$PWD/persistanceManager.cpp 65 | 66 | HEADERS += $$PWD/standardProperties.h 67 | SOURCES += $$PWD/standardProperties.cpp 68 | 69 | HEADERS += $$PWD/styleManager.h 70 | SOURCES += $$PWD/styleManager.cpp 71 | 72 | # end 73 | -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEDateTime/QEDateTime.h: -------------------------------------------------------------------------------- 1 | /* QEDateTime.h 2 | * 3 | * This file is part of the EPICS QT Framework, initially developed at the 4 | * Australian Synchrotron. 5 | * 6 | * SPDX-FileCopyrightText: 2019-2025 Australian Synchrotron 7 | * SPDX-License-Identifier: LGPL-3.0-only 8 | * 9 | * Author: Zai Wang 10 | * Maintainer: Andrew Starritt 11 | * Contact: andrews@ansto.gov.au 12 | */ 13 | 14 | #ifndef QE_DATETIME_H 15 | #define QE_DATETIME_H 16 | 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | 27 | /*! 28 | This class is a non EPICS aware label widget based on the Qt label widget and Qt DateTime class. 29 | It is only used for displaying data and time of the day. 30 | */ 31 | class QE_FRAMEWORK_LIBRARY_SHARED_EXPORT QEDateTime : public QLabel 32 | { 33 | Q_OBJECT 34 | 35 | Q_PROPERTY(QString dateTimeFormat READ getDateTimeFormat WRITE setDateTimeFormat) 36 | Q_PROPERTY(Qt::TimeSpec timeZone READ getTimeZone WRITE setTimeZone) 37 | Q_PROPERTY(bool showZone READ getShowZone WRITE setShowZone) 38 | 39 | public: 40 | explicit QEDateTime(QWidget *parent = 0); 41 | ~QEDateTime(); 42 | 43 | QString getDateTimeFormat() const; 44 | void setDateTimeFormat(const QString format); 45 | 46 | Qt::TimeSpec getTimeZone() const; 47 | void setTimeZone(const Qt::TimeSpec zone); 48 | 49 | bool getShowZone() const; 50 | void setShowZone(const bool showZone); 51 | 52 | protected: 53 | QSize sizeHint() const; 54 | bool eventFilter(QObject* watched, QEvent *event); 55 | 56 | private: 57 | QString dateTimeFormat; 58 | Qt::TimeSpec timeZone; 59 | bool showZone; 60 | 61 | static QTimer* tickTimer; 62 | QMenu* contextMenu; 63 | 64 | private slots: 65 | void kick(); 66 | void customContextMenuRequested(const QPoint& pos); 67 | void contextMenuTriggered(QAction* action); 68 | }; 69 | 70 | #endif // QE_DATETIME_H 71 | -------------------------------------------------------------------------------- /qeframeworkSup/project/common/QEScanTimers.h: -------------------------------------------------------------------------------- 1 | /* QEScanTimers.h 2 | * 3 | * This file is part of the EPICS QT Framework, initially developed at the 4 | * Australian Synchrotron. 5 | * 6 | * SPDX-FileCopyrightText: 2014-2025 Australian Synchrotron 7 | * SPDX-License-Identifier: LGPL-3.0-only 8 | * 9 | * Author: Andrew Starritt 10 | * Maintainer: Andrew Starritt 11 | * Contact: andrews@ansto.gov.au 12 | */ 13 | 14 | #ifndef QE_SCAN_TIMERS_H 15 | #define QE_SCAN_TIMERS_H 16 | 17 | #include 18 | #include 19 | #include 20 | 21 | // Used by, for example QSimpleShape, to ensure ALL QSimpleShape widgets 22 | // flash in sync. 23 | // 24 | class QE_FRAMEWORK_LIBRARY_SHARED_EXPORT QEScanTimers : public QObject { 25 | Q_OBJECT 26 | public: 27 | enum ScanRates { 28 | VerySlow, // 0.25 Hz 29 | Slow, // 0.5 Hz 30 | Medium, // 1 Hz 31 | Fast, // 2 Hz 32 | VeryFast // 4 Hz 33 | }; 34 | 35 | Q_ENUM (ScanRates) 36 | 37 | // Connext (attach) ir disconnect (detach) form specific scan timer. 38 | // Example: attach (this, SLOT (scanSlot (const bool))); 39 | // 40 | static bool attach (QObject* target, const char* member, const ScanRates scanRate); 41 | static void detach (QObject* target, const char* member); 42 | 43 | private: 44 | // Actual instances of these objects are set up statically and ONLY created from 45 | // within this class. 46 | // 47 | explicit QEScanTimers (QObject* parent = 0); 48 | ~QEScanTimers (); 49 | 50 | static void initialise (); 51 | 52 | QTimer* timer; 53 | 54 | unsigned int count; 55 | 56 | private slots: 57 | void timeout (); 58 | 59 | signals: 60 | void flipFlopVerySlow (const bool); 61 | void flipFlopSlow (const bool); 62 | void flipFlopMedium (const bool); 63 | void flipFlopFast (const bool); 64 | void flipFlopVeryFast (const bool); 65 | }; 66 | 67 | 68 | #ifdef QE_DECLARE_METATYPE_IS_REQUIRED 69 | Q_DECLARE_METATYPE (QEScanTimers::ScanRates) 70 | #endif 71 | 72 | #endif // QE_SCAN_TIMERS_H 73 | -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEImage/screenSelectDialog.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | screenSelectDialog 4 | 5 | 6 | 7 | 0 8 | 0 9 | 292 10 | 121 11 | 12 | 13 | 14 | Screen Selection 15 | 16 | 17 | 18 | 19 | 20 | There is more than one screen available. 21 | What would you like to do? 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | Qt::Horizontal 32 | 33 | 34 | QDialogButtonBox::Cancel|QDialogButtonBox::Ok 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | buttonBox 44 | accepted() 45 | screenSelectDialog 46 | accept() 47 | 48 | 49 | 248 50 | 254 51 | 52 | 53 | 157 54 | 274 55 | 56 | 57 | 58 | 59 | buttonBox 60 | rejected() 61 | screenSelectDialog 62 | reject() 63 | 64 | 65 | 316 66 | 260 67 | 68 | 69 | 286 70 | 274 71 | 72 | 73 | 74 | 75 | 76 | -------------------------------------------------------------------------------- /qeframeworkSup/project/common/QETwinScaleSelectDialog.h: -------------------------------------------------------------------------------- 1 | /* QETwinScaleSelectDialog.h 2 | * 3 | * This file is part of the EPICS QT Framework, initially developed at the 4 | * Australian Synchrotron. 5 | * 6 | * SPDX-FileCopyrightText: 2017-2025 Australian Synchrotron 7 | * SPDX-License-Identifier: LGPL-3.0-only 8 | * 9 | * Author: Andraz Pozar 10 | * Maintainer: Andrew Starritt 11 | * Contact: andrews@ansto.gov.au 12 | */ 13 | 14 | #ifndef QE_TWIN_SCALE_SELECT_DIALOG_H 15 | #define QE_TWIN_SCALE_SELECT_DIALOG_H 16 | 17 | #include 18 | #include 19 | #include 20 | #include 21 | 22 | namespace Ui { 23 | class QE_TWin_Scale_Select_Dialog; // differed 24 | } 25 | 26 | class QE_FRAMEWORK_LIBRARY_SHARED_EXPORT QETwinScaleSelectDialog : public QEDialog { 27 | Q_OBJECT 28 | public: 29 | // Define scale min and max 30 | // min - minumum scale value 31 | // max - maximum scale value 32 | // 33 | typedef struct { 34 | double min; 35 | double max; 36 | } ScaleLimit; 37 | 38 | explicit QETwinScaleSelectDialog (const QString& windowTitle, 39 | const QString& scaleOneName, 40 | const QString& scaleTwoName, 41 | QWidget* parent = 0); 42 | ~QETwinScaleSelectDialog (); 43 | 44 | void setActiveMap (const ScaleLimit& scaleOne, const ScaleLimit& scaleTwo); 45 | void getActiveMap (ScaleLimit& scaleOne, ScaleLimit& scaleTwo); 46 | 47 | private: 48 | Ui::QE_TWin_Scale_Select_Dialog* ui; 49 | 50 | ScaleLimit scaleOne; 51 | ScaleLimit scaleTwo; 52 | 53 | bool returnIsMasked; 54 | 55 | private slots: 56 | void scaleOneMinReturnPressed (); 57 | void scaleOneMaxReturnPressed (); 58 | void scaleTwoMinReturnPressed (); 59 | void scaleTwoMaxReturnPressed (); 60 | 61 | // The connection to these slots are made by QDialog and associates. 62 | // 63 | void on_buttonBox_rejected (); 64 | void on_buttonBox_accepted (); 65 | }; 66 | 67 | #endif // QE_TWIN_SCALE_SELECT_DIALOG_H 68 | -------------------------------------------------------------------------------- /qeframeworkSup/project/common/QEPvWriteOnce.h: -------------------------------------------------------------------------------- 1 | /* QEPvWriteOnce.h 2 | * 3 | * This file is part of the EPICS QT Framework, initially developed at the 4 | * Australian Synchrotron. 5 | * 6 | * SPDX-FileCopyrightText: 2022-2025 Australian Synchrotron 7 | * SPDX-License-Identifier: LGPL-3.0-only 8 | * 9 | * Author: Andrew Starritt 10 | * Maintainer: Andrew Starritt 11 | * Contact: andrews@ansto.gov.au 12 | */ 13 | 14 | #ifndef QE_PV_WRITE_ONCE_H 15 | #define QE_PV_WRITE_ONCE_H 16 | 17 | #include 18 | #include 19 | #include 20 | #include 21 | 22 | /// This classs provides a basic write and forget class. 23 | /// It has been refactored out of QEMenuButton so that it can 24 | /// by used by windowCustomisation. 25 | /// NOTE: The object deletes itself once the write is complete or times out. 26 | /// 27 | class QE_FRAMEWORK_LIBRARY_SHARED_EXPORT QEPvWriteOnce : public QObject { 28 | Q_OBJECT 29 | public: 30 | explicit QEPvWriteOnce (const QString& pvName, 31 | const QString& value, 32 | const QE::Formats format = QE::Default, 33 | QObject* parent = 0); 34 | ~QEPvWriteOnce(); 35 | 36 | // This causes the object to be deleted once the write is complete. 37 | // Do NOT save references to QEPvWriteOnce objects after calling this method. 38 | // The macro substitutions apply to both the pvName and the written value. 39 | // 40 | bool writeNow (const QString& macroSubstitutions); 41 | 42 | QString pvName; 43 | QString value; // value to write to the variable 44 | QE::Formats format; // 45 | 46 | private: 47 | QString substitutedValue; // value post substitution 48 | qcaobject::QCaObject* qca; 49 | 50 | void writeToVariable (qcaobject::QCaObject* qca); 51 | 52 | private slots: 53 | void connectionChanged (QCaConnectionInfo& connectionInfo, 54 | const unsigned int& variableIndex); 55 | void connectionTimeout(); 56 | }; 57 | 58 | #endif // QE_PV_WRITE_ONCE_H 59 | -------------------------------------------------------------------------------- /qeframeworkSup/project/widgets/QEStripChart/QEStripChartState.h: -------------------------------------------------------------------------------- 1 | /* QEStripChartState.h 2 | * 3 | * This file is part of the EPICS QT Framework, initially developed at the 4 | * Australian Synchrotron. 5 | * 6 | * SPDX-FileCopyrightText: 2013-2025 Australian Synchrotron 7 | * SPDX-License-Identifier: LGPL-3.0-only 8 | * 9 | * Author: Andrew Starritt 10 | * Maintainer: Andrew Starritt 11 | * Contact: andrews@ansto.gov.au 12 | */ 13 | 14 | #ifndef QESTRIPCHARTSTATE_H 15 | #define QESTRIPCHARTSTATE_H 16 | 17 | #include 18 | #include 19 | 20 | #include 21 | #include 22 | #include 23 | 24 | class QE_FRAMEWORK_LIBRARY_SHARED_EXPORT QEStripChartState { 25 | public: 26 | QEStripChartState (); 27 | void saveConfiguration (PMElement& parentElement); 28 | void restoreConfiguration (PMElement& parentElement); 29 | 30 | bool isNormalVideo; 31 | QEStripChartNames::ChartTimeModes chartTimeMode; 32 | QEStripChartNames::YScaleModes yScaleMode; 33 | QEStripChartNames::ChartYRanges chartYScale; 34 | double yMinimum; 35 | double yMaximum; 36 | int duration; 37 | Qt::TimeSpec timeZoneSpec; 38 | QDateTime endDateTime; 39 | }; 40 | 41 | 42 | // This class uses a QList in order to implement a stack. 43 | // 44 | // Note this class orginally extended QList, but this way of 45 | // specificying this class has issues with the Windows Visual Studio Compiler. 46 | // It has now been modified to include a QList member. The 47 | // downside of this is that we must now provide list member access functions. 48 | // 49 | class QE_FRAMEWORK_LIBRARY_SHARED_EXPORT QEStripChartStateList { 50 | public: 51 | QEStripChartStateList (); 52 | 53 | void clear (); 54 | void push (const QEStripChartState& state); 55 | bool prev (QEStripChartState& state); 56 | bool next (QEStripChartState& state); 57 | 58 | bool prevAvailable (); 59 | bool nextAvailable (); 60 | 61 | private: 62 | int chartStatePointer; 63 | QList stateList; 64 | }; 65 | 66 | #endif // QESTRIPCHARTSTATE_H 67 | -------------------------------------------------------------------------------- /qeframeworkSup/project/common/QEQuickSort.h: -------------------------------------------------------------------------------- 1 | /* QEQuickSort.h 2 | * 3 | * This file is part of the EPICS QT Framework, initially developed at the 4 | * Australian Synchrotron. 5 | * 6 | * SPDX-FileCopyrightText: 2016-2025 Australian Synchrotron 7 | * SPDX-License-Identifier: LGPL-3.0-only 8 | * 9 | * Author: Andrew Starritt 10 | * Maintainer: Andrew Starritt 11 | * Contact: andrews@ansto.gov.au 12 | */ 13 | 14 | #ifndef QE_QUICK_SORT_H 15 | #define QE_QUICK_SORT_H 16 | 17 | #include 18 | #include 19 | 20 | 21 | /// This base class provides the means to add quick sort functionality to a class. 22 | /// Alas the algorithms qSort API does not accept a class instance LessThan 23 | /// function, so we roll out own. 24 | /// The items to be sorted must be indexable via consecutive integers. 25 | /// 26 | class QE_FRAMEWORK_LIBRARY_SHARED_EXPORT QEQuickSort 27 | { 28 | public: 29 | explicit QEQuickSort (); 30 | virtual ~QEQuickSort (); 31 | 32 | // Sorts items from first to last inclusive. 33 | // The optional parameter context provides user specific conext for the sort. 34 | // This is useful when the sub-class has two or more sets that need to be sorted. 35 | // 36 | void sort (const int first, const int last, QObject* context = NULL); 37 | 38 | protected: 39 | // The sub class must provide the means to compare two items. 40 | // The function should compare the value associated with index a against the 41 | // value associated with index b as opposed to comparing the a and b values. 42 | // 43 | // Examples 44 | // Standard array data: return data [a] < data [b]; 45 | // For QList list: return list.value (a) < list.value (b); 46 | // 47 | virtual bool itemLessThan (const int a, const int b, QObject* context) const = 0; 48 | 49 | // The sub class must provide the means to swap two items at index a and b. 50 | // 51 | // Examples 52 | // Standard array data: temp = data [a]; data [a] = data [b]; data [b] = temp; 53 | // 54 | virtual void swapItems (const int a, const int b, QObject* context) = 0; 55 | }; 56 | 57 | #endif // QE_QUICK_SORT_H 58 | --------------------------------------------------------------------------------