ADTF  3.18.2
Qt5 ADTF XSystem UI Service Plugin

Qt5 ADTF XSystem UI Service

Introduction

This UI Service comes with the ADTF UI SDK to develop your own Qt5 Displays.

Note
For a short usermanual please skip the common chapter and jump to Qt5 ADTF XSystem Concept

Plugin Information
Plugin Filenameadtf_xsystem.adtfplugin
Plugin Descriptionadtf_xsystem.plugindescription
Plugin NameQt5 ADTF XSystem UI Service Plugin
LicenseADTF
Support Mailsupport@digitalwerk.net
Homepage URLhttps://support.digitalwerk.net/
Plugin Versions
Plugin Version3.18.2
Plugin File Version1.0
adtf3.18.2
adtf::ucom3.1.0
Component Information
NameQt5 ADTF XSystem UI Service
CIDqt_xsystem.ui_service.adtf.cid
DescriptionUse this UI Service to extend your ADTF System with QT Application and Subwindow support.
TypeService
Default Runlevelsystem
Properties
NameValueTypeDescriptionSubproperties
application_nameADTF-Qt-XSystemcStringThis property holds the name of this application (see QCoreApplication::applicationName). Required to use QSettings.
enable_player_controlstruetBoolIf enabled and when the playback service is available, playback controls are shown.
enable_progress_splashtruetBoolIf enabled, runlevel changes will be indicated by a progress splash screen if logging is available.
enable_recorder_controlstruetBoolIf enabled and when one or more recorders are available, controls are shown for each of them.
enable_recording_dialogfalsetBoolIf enabled, show a dialog to edit the description, move or discard a recording file before it is closed.
layout_file$(ADTF_SESSION_DIR)/$(ADTF_SESSION_FILE_NAME_NOEXT).adtfuilayoutcFilenameThe name of the layout file that the layout should be stored to and read from.
marker_labeluicStringThe label used for markers created via the 'Add Marker' action and buttons.
organization_domaindigitalwerk.netcStringThis property holds the internet domain of the organization that wrote this application (see QCoreApplication::organizationDomain). Required to use QSettings.
organization_nameDigitalwerkcStringThis property holds the name of the organization that wrote this application (see QCoreApplication::organizationName). Required to use QSettings.
refresh_timer_msec16tInt32The interval at which the OnTimer() methods of all windows will be called.
save_layout_automaticallytruetBoolIf enabled, the current layout will be stored automatically when the runlevel is changed. Otherwise you need to manually save the current layout via 'View->Save Layout'.
use_a_common_layout_for_rl_filtergraph_and_rl_runningtruetBoolIf enabled, a common layout will be used for both runlevels FilterGraph and Running.
Required Interfaces
IID
reference_clock.osborn.streaming.adtf.iid
Provided Interfaces
IID
application.ant.services.adtf.iid
application.quiet.services.adtf.iid
qt_xsystem.ant.services.adtf.iid
qt_xsystem.osborn.services.adtf.iid
qt_xsystem.riddler.services.adtf.iid
qt_xsystem.spider.services.adtf.iid

Qt5 ADTF XSystem Concept

The Qt5 ADTF XSystem is comparable to a Window Manager which extends the (headless) ADTF System to create simple and complex Qt applications as bundle of the registered UI widgets provided by adtfplugins.

Qt5 ADTF XSystem UI Service Usability

Common

After several minor improvements the Qt5 ADTF XSystem uses the Advanced Docking System for Qt since ADTF 3.10.0 for more convenience and usability regarding layouting, docking and embedding several widgets. Since ADTF 3.12.0 we provide a toolbar to control Session, Player and Recorder interfaces.

Session control

An ADTF System is a definition of base components and additional adtfplugins providing functionality at different state levels (so called adtf::base::ant::tADTFRunLevel). For your convenience we provide a mapping to a more comprehendible understanding as follows:

Run

adtf::base::ant::RL_Running
Shortcut: Ctrl+R

  • Start streaming

Stop

adtf::base::ant::RL_FilterGraph
Shortcut: Ctrl+R

  • Stop streaming
  • Reset level Initialize

Initialize

adtf::base::ant::RL_FilterGraph
Shortcut: Ctrl+I

Denitialize

adtf::base::ant::RL_System
Shortcut: Ctrl+I

Shutdown

adtf::base::ant::RL_Shutdown
Shortcut: Ctrl+Q (Linux) / Alt+F4 (Windows)

Navigate to the Session tab of the menubar to access these functionality

or use the buttons within the toolbar

Since ADTF 3.16.0 we provide a kind of report functionality (similar to createreport function within ADTF Control) for useful session information.

Player control

In case your ADTF Session contains a ADTFDAT File Player / Playback Service, you can interact with the provided interface (see also Player Control). This means in detail:

  • Open one or more playback files (Ctrl+O)
    • With or without referenced files
  • Play/Pause (Ctrl+Space)
  • Reset
  • Step To Next Trigger (Ctrl+N)
    • In Pause Mode
  • Jump functionality (Ctrl+J)
    • Timestamp
    • Marker (if available)
  • Loop Mode
    • Seek to Start
    • Change Runlevel
  • Adjust time by slider
  • Increase/decrease playback speed

To quick access the playback rate, you can also right click in the playback speed text box:

Decide whether referenced files should be loaded or not using file(s) open functionality:

Recorder control

In case your ADTF Session contains one or more ADTFDAT File Recorder, the toolbar will provide a record button for each instance (Ctrl+recorder_instance) and a button to trigger all recorder instances at once (Ctrl+0). Furthermore, since ADTF 3.16.0, it is possible to split recordings (Ctrl+Shift+recorder_instance), add quick markers (Alt+recorder_instance) or editable markers (Alt+Shift+recorder_instance). Use the property marker_label to set the default label name for markers).

Another improvement with ADTF 3.16.0 is the option to adapt the filename and description before recording stopped. To enable the dialog to edit, set the property enable_recording_dialog to true.

View options

Furthermore use the View tab of the menubar to enable or disable all or specific views and create perspectives for your layout. Layouts will be stored for each adtf::base::ant::tADTFRunLevel, so it makes sense to differ between views during adtf::base::ant::RL_Running and adtf::base::ant::RL_System. Of course they might differ regarding available ADTF Services per Runlevel. If there is no layout defined, all widgets will be shown an ordered per default. Also if you already have defined a layout and add a new UI component to your ADTF Session, it will be shown automatically.

Note
If a window is created by a service or filter it can take part of the Qt5 ADTF XSystem UI Services layout handling. For this, consider the IQtXSystem::IWindowState interface and implement the OnSaveState and OnLoadState callbacks.
Note
Keep in mind that changing the Runlevel will save the layout of the leaving runlevel (depends on property save_layout_automatically) and makes the layout for the joined Runlevel available instantly.

Help Menu

The tab for Help within the menubar will bring you here and provides some common information about the Qt5 ADTF XSystem and dependencies.