Skip to content

Compatibility with MEDM ​

QtEDM preserves the standard MEDM ADL subset, with these intentional differences and additions:

  • Appearance – Qt rendering may produce slightly different visual results than Motif

  • Font handling – QtEDM uses scalable fonts with alias mode for MEDM compatibility

  • Window management – Some window behaviors may differ depending on the desktop environment

  • Platform behavior – QtEDM builds natively on Linux, macOS, and Windows, but window management, fonts, printing, and packaging remain platform dependent

  • QtEDM-only objects – The listed extension blocks are preserved by QtEDM but have no runtime behavior in legacy MEDM

  • Observe-only operation – --read-only provides a process-wide, visibly indicated write-inhibition mode covering built-in controls, soft PVs, snapshots, and plugin-provider writes.

  • Sessions and snapshots – Named window-layout sessions and explicitly selected, revalidated PV snapshot restores are QtEDM operational features rather than MEDM ADL behavior.

  • Display import – QtEDM can convert caQtDM/Qt Designer .ui files with a preserved source copy and versioned mapping report.

  • Enhanced Statistics Window – The Statistics Window (View > Statistics Window) includes a third mode called "PV Details" that displays a sortable table of all connected PVs with their connection status, writable status, update rate, and alarm severity. Click the Mode button to cycle through Interval, Average, and PV Details views.

  • Find PV Dialog – QtEDM provides a Find PV feature (View > Find PV or Ctrl+F) that allows searching for process variables across all open displays. Enter a PV name pattern to locate widgets using matching PVs.

  • Export Image – QtEDM adds an "Export Image..." option to the right-click context menu in EXECUTE mode. This allows exporting displays as PNG, SVG, JPEG, or BMP images. MEDM supports XWD format via the print command; QtEDM provides more modern image formats including vector SVG output.

  • Export Data – QtEDM adds data export capabilities for plot widgets in EXECUTE mode:

    • Strip Charts: Right-clicking shows the standard context menu with "Export Data..." enabled. Exports include Time, EPOCHTIME (with millisecond precision), and channel value columns in SDDS or CSV format.
    • Cartesian Plots: Right-clicking shows a dedicated menu with "Modify Axis Values..." (to access the axis configuration dialog) and "Export Data..." options. Exports include Index and X/Y value pairs for each active trace in SDDS or CSV format.
    • Waterfall Plots: Right-clicking adds "Save Image..." and "Save Data..." entries. Data exports include one row per buffered waveform sample along with relative time, epoch time, valid length, and waveform point columns in SDDS or CSV format.
  • Cartesian Plot Zoom/Pan – QtEDM adds interactive zoom and pan capabilities to Cartesian Plot widgets in EXECUTE mode:

    • Zoom: Use the mouse wheel to zoom in and out. The zoom is centered on the cursor position. Hold Shift while scrolling to zoom only the X axis, or hold Ctrl to zoom only the Y axis.
    • Pan: Click and drag with the left mouse button to pan the view. The cursor changes to a closed hand while panning.
    • Reset: Right-click on a zoomed plot to access the "Reset Zoom" option and restore the original view. Zoom state is also automatically reset when switching from EXECUTE to EDIT mode.
  • Waterfall Plot Zoom/Pan – Waterfall Plot supports mouse-wheel zoom on the time axis, drag pan while zoomed, hover tooltips showing waveform index, sample age, and intensity, plus a context-menu buffer clear operation in EXECUTE mode.

  • Audit Logging – QtEDM provides audit logging of all control widget value changes (writes to PVs). This feature is enabled by default and logs to timestamped files in the ~/.medm directory.

    • Log Format: Each entry contains timestamp, username, widget type, PV name, value written, and display file (if available).
    • Log Location: Logs are written to ~/.medm/audit_YYYYMMDD_HHMMSS_PID.log by default. QTEDM_AUDIT_DIR selects another directory.
    • Disable Logging: Use the -nolog command line option or set the environment variable QTEDM_NOLOG=1
    • Logged writes: Text Entry, Text Area, Slider, Wheel Switch, Menu, Choice Button, Message Button/Toggle, Setpoint Control/Spin Box, plugin-provider, and snapshot-restore writes use the audit path.
    • Observe-only records: Writes blocked by --read-only use the widget type BLOCKED:ObserveOnly, so they remain distinct from successful puts without changing the six-column log format.