Releases: slaclab/pydm
v1.27.0
What's Changed
This patch adds a few new features to Base Plot and Archive Time Plot along with some bug fixes. We added labels on crosshairs for Time Plots, Archive Time Plots and Waveform Plots and fixed how crosshairs were working. We addressed an issue with dynamically switching a channel on a PyDMWidget.
This update also adds another slew of changes that are needed for PySide6 support in PyDM. (Note that Pyside6 support is currently still in progress and will be fully enabled in a future release. Using Pyside6 will also be an optional feature and should not effect how PyDM currently uses PyQt5.)
Enhancements
- ENH: Adds Labels to Timeplot Crosshair by @YektaY in #1173
- ENH: Infinite line extension for PyDMArchiverTimePlot by @YektaY in #1167
- ENH: ArchiveTimePlot Fetch Data on X-Axis Change by @zdomke in #1172
Bug Fixes
- BUG: properly remove error bars in time plot's clearCurves by @shilorigins in #1217
- FIX: Don't attempt a disconnect on the value signal if the widget is being destroyed by @jbellister-slac in #1218
- FIX: Ensure previous instance of display class is fully cleaned up after reloading it by @jbellister-slac in #1209
- FIX: Fixing bug with updateXAxis def by @zdomke in #1216
- BUG: connect BasePlotAxisItem auto-range methods to the linked ViewBox auto-range methods by @shilorigins in #1212
- FIX: Disconnect the value signal when removing a listener from a connection by @jbellister-slac in #1208
Maintenance:
- MNT: temp fix for building pyca from git causing gh-actions tests to fail. by @nstelter-slac in #1211
- MNT: appease newer python by not using enum to index into tuple by @nstelter-slac in #1200
- MNT: instruct users to use conda from Miniforge for it's better licensing. by @nstelter-slac in #1205
- MNT: switch from python2 style super() calls to python3 by @nstelter-slac in #1202
PySide6 Changes:
- MNT: make sure we pass a weak ref of the current object to widget_destroyed by @nstelter-slac in #1189
- MNT: update enum-button widget's button-group to use proper clicked signal, avoid pyside6 error by @nstelter-slac in #1196
- MNT: stop high-dpi setting warning on pyside6(qt6) by @nstelter-slac in #1198
- MNT: pyside6 just throws an IndexError instead when connecting to value_signals not overloaded with the specified type by @nstelter-slac in #1197
- MNT: On pyside6 use == for signal comparison (can't use .signal like in pyqt5) by @nstelter-slac in #1199
- MNT: Move some calls to children classes to stop pyside6 throwing an error about init in classes that use multiple inheritence. by @nstelter-slac in #1181
- TST: fix error during tests on pyside6 with c++ internal object deletion by @nstelter-slac in #1215
Full Changelog: v1.26.0...v1.27.0
v1.26.0
What's Changed
This patch adds some bug fixes related to the ErrorBarItems of ArchiverPlotCurveItem widgets, and the added ability to reference start angle and span angles of PyDMDrawingArc based widgets with their widget-rules (for example, they can now be set by PVs). This update also adds some general maintenance patches to PyDM's setup and GitHub, a highlight being the switch from setup.py to pyproject.toml.
This update also adds a slew of changes that are needed for PySide6 support in PyDM. (Note that Pyside6 support is currently still in progress and will be fully enabled in a future release. Using Pyside6 will also be an optional feature and should not effect how PyDM currently uses PyQt5.)
Maintenance:
- Migrate to pyproject.toml by @jbellister-slac in #1184
- MNT: update issues and feature request page on github, make it apply a tag to the issues automatically by @nstelter-slac in #1170
- MNT: stop install wrong pyca package through pip, and enabled psp test which uses pyca's psp library by @nstelter-slac in #1136
- FIX: changes to publish-to-pypi.yml by @YektaY in #1165
- MNT: fix github actions windows tests from failing randomly: maybe windows is slow, try waiting a few seconds longer by @nstelter-slac in #1201
- STY: fix minor spelling mistakes by @nstelter-slac in #1182
Bug Fixes:
Enhancements:
PySide6 Changes:
- MNT: remove widget classes inheritance from enum, as preperation for qt6 enum support by @nstelter-slac in #1154
- Support both pyqt5 pyside6 enums by @nstelter-slac in #1155
- ENH: Add Pyside6 compatible UI file compilation by @nstelter-slac in #1163
- MNT: make RULE_PROPERTIES work with pyside6 by @nstelter-slac in #1161
- MNT: switch signal type overloading to use syntax that works for both pyqt5 and pyside6 by @nstelter-slac in #1164
- TST: some changes to tests for pyside6, also set about page font width to bold (which is same as having 75) by @nstelter-slac in #1176
- MNT: in tests, access style pixmaps using StandardPixmap by @nstelter-slac in #1187
- TST: fix segfault issue during symbol editor test on pyside6 by @nstelter-slac in #1190
- MNT: '|' is only supported way to combine macros in qt6, and still works also for qt5 by @nstelter-slac in #1175
- MNT: Be sure we use Qt.PenStyle enums for setting pen style, not ints. by @nstelter-slac in #1188
- MNT: use the correct signal for comboboxes in the camviewer example, stops error on pyside6 by @nstelter-slac in #1192
- TST: use QSlider.TickPosition values in slider tests (errors when use ints on pyside6) by @nstelter-slac in #1191
New Contributors
Full Changelog: v1.25.2...v1.25.3
v1.25.2
What's Changed
This update adds a host of bug fixes and maintenance work to PyDM. Included is a fix for loading widgets in QtDesigner when PyDM is installed from PyPI, a fix for indexing into a NTTable's array of np.integer types, a fix for using a PyDMSlider with floating point values, and an improved doc page on setup and contributing for developers.
This update also adds new options for stdout and stderr output from subprocesses launched by PyDMShellCommand widgets, and fixes the issue of these subprocess temporarily freezing when outputting a large amount.
New Features
- ENH/FIX: shell command output options by @ZLLentz in #1138
- ENH: make main window menubar action for 'Enter Fullscreen' toggle to 'Exit Fullscreen' when in fullscreen view. by @nstelter-slac in #1128
Docs
- DOC: add page about custom menu actions by @nstelter-slac in #1123
- DOC: Update docs for contributing by @nstelter-slac in #1134
- DOC: new contributing file is meant to be rst file, not md (this messes with rendering on gh) by @nstelter-slac in #1157
- DOC: format table correctly in CONTRIBUTING doc by @nstelter-slac in #1162
Maintenance
- DEV: don't use mambaforge installers in github actions setup by @nstelter-slac in #1126
- MNT: fix error when using numpy 2+ by @nstelter-slac in #1140
- DEP: Remove References to Deprecated QVariant by @zdomke in #1141
- MNT: stop warnings during tests from using deprecated .command property by @nstelter-slac in #1143
- MNT: make gh actions setup use conda and pip to install packages by @nstelter-slac in #1150
- DEP: Remove Deprecated QVariant Checks by @zdomke in #1153
- MNT: Update versions of checkout and setup-miniconda actions by @jbellister-slac in #1158
- MNT: make gh-actions timeout and fail at 30 mins (instead of 6 hour default) by @nstelter-slac in #1160
- MNT: Pyside6/Qt6 Upgrade Pt 1 by @nstelter-slac in #1139
- MNT: Replace PyQt-specific sip library with wrapper provided by pyqt by @nstelter-slac in #1142
- MNT: remove usage of QWIDGETSIZE_MAX macro, since only PyQt defines it and not PySide by @nstelter-slac in #1148
- TST: add tests for objects the use PyDMPrimitiveWidget's RULE_PROPERTIES by @nstelter-slac in #1151
Bug Fixes
- BUG: fix issue where designer doesn't load pydm widgets when pydm is installed from PyPI using pip by @nstelter-slac in #1132
- FIX: Store Data for FormulaCurveItem with Constant Value by @zdomke in #1124
- FIX: Check Validity of QAbstractTableModel Classes by @zdomke in #1122
- FIX: maintain reference to related displays to avoid gc by @ZLLentz in #1137
- FIX: Small change to addess a valueError in PyDMSlider when they are being dragged by @YektaY in #1147
- BUG: Add a case in p4p_plugin_component.py for Numpy integers. by @slactjohnson in #1120
New Contributors
- @slactjohnson made their first contribution in #1120
Full Changelog: v1.25.1...v1.25.2
v1.25.1
v1.25.0
What's Changed
This update provides a slew of changes to the pydm plots including updates to the PyDMArchiverTimePlot. This update also fixes a couple bugs in the PyDMSlider, so now the slider handle is draggable.
New Features
- ENH/DEV: Formula Viewer for Archive Viewer by @aksharsarvesh in #1095
- ENH: Import/Export FormulaCurveItem Objects by @aksharsarvesh in #1102
- ENH: Axes Handling and Hiding in Multi Axis Plots by @aksharsarvesh in #1097
- ENH: Import/Export Plot Config by @aksharsarvesh in #1101
- ENH: Added a slot to capture units received from the PyDMChannel by @aksharsarvesh in #1110
- ENH: ArchivePlotCurveItem Connection Status by @zdomke in #1108
- ENH: FormulaCurveItem Connection Status by @zdomke in #1111
- ENH: Add Manual XRange Change Signal by @zdomke in #1116
Maintenance
- Bump actions/download-artifact from 3 to 4.1.7 in /.github/workflows by @dependabot in #1109
Bug Fixes
- FIX: Unlinking a curve from an axis now removes it from the legend by @aksharsarvesh in #1112
- FIX: Addressed two bugs on the slider. Middle click to see PV name and click and drag on the slider handle by @YektaY in #1115
New Contributors
- @dependabot made their first contribution in #1109
Full Changelog: v1.24.1...v1.25.0
v1.24.1
What's Changed
This update provides a new option to specify to PyDM the order in which dimensions of a PVA image are being sent. Also added are new stepMode options for drawing graphs, and the PyDMByteIndicator now displays negative numbers by the bits of their two's complement representation. Also included are bug fixes and maintenance work related to using PyDM with Python 3.10
New Features
- ENH: pva image dim order option by @nstelter-slac in #1085
- ENH: display negative values in byteindicator widget by @nstelter-slac in #1088
- ENH: Add stepMode to BasePlotCurveItem by @zdomke in #1096
Maintenance
- FIX: in analong_indicator, explicitly cast to int for py310+ compat by @ZLLentz in #1080
- Fix Container class move for python 3.10 by @mattgibbs in #1104
Bug Fixes
- FIX: Switching Y Axis orientation was not properly updating by @aksharsarvesh in #1100
- FIX: PyDMSlider out of bounds bug by @phys-cgarnier in #1084
- FIX: Plot Axis Name Change by @zdomke in #1087
- FIX: PyDMChannel Connection Removal Error by @zdomke in #1086
New Contributors
- @aksharsarvesh made their first contribution in #1100
Full Changelog: v1.24.0...v1.24.1
v1.24.0
What's Changed
This update adds EPICS 7 RPC support along with updates and fixes to the PyDMSlider. Please refer to the P4P Plugin documentation page for instructions on how to use the new RPC functionality if interested!
New Features
- ENH: Rpc support by @nstelter-slac in #1052
- ENH: Updating PyDMSlider source code so that users can do single steps with specified step size. by @phys-cgarnier in #1078
Bug Fixes
Full Changelog: v1.23.0...v1.24.0
v1.23.0
What's Changed
This update adds a slew of changes. Most notably to the Archiver Time Plot and Time Plot widgets as well as changes to the base plot. This release also has a few improvements to the pydm drawing widgets, adding new rules and giving users the ability to change the size of arrows on lines.
New Features
- ENH: Add option to change size of arrows on drawn lines by @nstelter-slac in #1072
- ENH: Archiver Timeplot address setters by @zdomke in #1061
- ENH: Archived Data Mode for the Archiver Time Plot Widget by @YektaY in #1062
- ENH: Add checkable columns to Archiver Plot Model by @zdomke in #1074
- ENH: Base Plot Axis log mode setter by @zdomke in #1075
- ENH: Base Plot Axis range values by @zdomke in #1077
- ENH: Timeplot auto scrolling by @zdomke in #1076
- ENH: added new pydm drawing rules for all drawing widgets that allow for p⦠by @phys-cgarnier in #1066
Maintenance
- MNT: Cleanup drawing lines class-structure by @nstelter-slac in #1073
Bug Fixes
- BUG: reload embedded display when only macros change by @shilorigins in #1064
New Contributors
- @zdomke made their first contribution in #1061
- @shilorigins made their first contribution in #1064
Full Changelog: v1.22.1...v1.23.0
v1.22.1
What's Changed
This is a minor bug fix release, primarily to ensure PyDM remains compatible with the most recent version of pyqtgraph used for PyDM plots. All plot widgets should now function correctly when installing PyDM alongside the most recent versions of all its dependencies.
Bug Fixes
- Fix connection inspector with local plugins by @flowln in #1067
- Fix plotting on pyqtgraph 0.13.4 by @flowln in #1069
- Fix MultiAxisViewBox resizing breaking in certain cases by @jbellister-slac in #1070
Full Changelog: v1.22.0...v1.22.1
v1.22.0
What's Changed
This update adds new rules for the drawing-line widget for dynamically adjusting its color, style, and thickness, a new LED indicator widget, and a way to pause drawing updates to an image in a PyDMImageView. Also included are bug fixes and an update to the tutorial documentation.
New Features
- Basic version of multi-state LED indicator widget by @nstelter-slac in #1044
- Adding rules to pydm drawing line by @phys-cgarnier in #1056
- ENH: Add a method for pausing/resuming the drawing of an image by @jbellister-slac in #1054
Docs
- DOC: A couple updates to new user documentation by @jbellister-slac in #1048
Maintenance
- BLD: Update test workflow file with python 3.10 and pyqt 5.15.9 by @jbellister-slac in #1047
Bug Fixes
- Fix event plot curve creation by @jbellister-slac in #1059
- FIX: Pick up changes to UI files when the main window is reloaded by @jbellister-slac in #1060
New Contributors
- @phys-cgarnier made their first contribution in #1056
Full Changelog: v1.21.0...v1.22.0