.. Copyright (C) European XFEL GmbH Schenefeld. All rights reserved. **************************** What's New in Karabo 2.10.6 **************************** This release backports important improvements for the middlelayer framework in case Python 3.6 still has to be used. - MDL: Cherry pick server validation for configuration !5855 - MDL: Pipelines always reconnect independent from instanceNew !5857 - MDL: Cherry pick array fixes for 2.10 !5867 - MDL: Forward slotInstanceUpdated to device children (Cherry pick hotfix) !5871 **************************** What's New in Karabo 2.10.5 **************************** This release backports two improvements in the C++ framework. - Influx logger warning in rare situations !5304 - C++: Avoid data drop when OutputChannel writes big data to busy receiver !5496 **************************** What's New in Karabo 2.10.4 **************************** This release improves the karabo gui cinema. It features a cinema weblink creator for the project panel and various other enhancements. In order to use web links for the cinema, thew new url scheme handler can be registered using ``karabo-register-protocol`` after activating the gui environment. The InfluxLogReader device is now more robust on historical property fetching. The ``traindId`` of data retrieved via getProperty history is now forced to ``0`` despite its value on the database might be different. Do not use this feature to debug trainId configurations. The value of the ``trainId`` can be fetched via web interfaces like Grafana or via the Influx command line. Furthermore, the input channel (re) connection in C++ is improved. Detailed Merge-Log ================== - GUI: add protocol registration utility !5272 - GUI: Enable cinema to run with multiple scenes !5276 - GUI: Prevent sigterm in cinema and theatre !5273 - GUI: adapt weblink widget to karabo url scheme !5281 - GUI: Table fix !5271 - GUI: remove protocol registration at application start !5285 - GUI: Create-cinema-web !5283 - GUI: Fix cinema typo in wizard !5296 - DataLogger: Fix for non-responsive log reader issue !5306 - C++: More robust input channel (re-)connection !5311 **************************** What's New in Karabo 2.10.3 **************************** This patch comes with a few fixes, mainly for the GUI. - The transparent background is removed (regression) in the plot widgets for a performance increase of a factor of two (2). - Multiple plots can immediately shown for macros as well and it is possible to deactivate the High DPI setting from the menu bar. Detailed Merge-Log ================== - C++ JMS reading: respect handler setting order !5142 - C++: Get rid of Hash copy when writing to JMS broker !5196 - GUI: Fix multiple plots in vector graph !5173 - GUI: fix installation path for protocol handler !5174 - GUI: Remove transparency of image layout !5176 - GUI: Remove transparent graphics view !5175 - GUI: Process events on main window render !5178 - GUI: Fix datetime appearance on trendline on windows !5185 - GUI: Cherry picking DPI fixes and Grafana !5198 - GUI: make protocol registration robust !5201 **************************** What's New in Karabo 2.10.2 **************************** This patch comes with important fixes for the karabo gui client: - This patch release significantly improves plot layouts in the GUI - Exporting multiple images enhanced - Add of resize scene dialog to scene toolbar - Workaround for the Qt bug of logical dpi - Fix table element configuration of init only elements - Other improvements ... **And removes the acknowledgement on acknowledgement of broker messages, which will give a significant messaging boost** Detailed Merge-Log ================== **ALL APIs: Do not wait for broker to acknowledge acknowledgements !5138** - GUI: Significantly decrease margins in trendline layout !5033 - GUI: Take the int of the localDotsPerInch !5041 - GUI: setContentsMagins to 0 for plot widgets !5077 - GUI: Protect VectorXY from device intstantiations !5080 - GUI: Add an offset on pasted scene objects - GUI: Enhance Image Layout - Remove unnecessary margins !5095 - GUI: Axis item double click !5096 - GUI: One more margin for the image layout (Cherry pick for hotfix) !5097 - GUI: Remove margins from trendline layout (Cherry pick for hotfix) !5098 - GUI: Use bytescale in images (cherry pick for hotfix) !5089 - GUI: Use traits Event on export current tool (cherry pick for hotfix) !5123 - GUI: Resize scene dialog !5131 - GUI: Fix table element configuration on init only tables !5136 - GUI: Add karabo:// URL protocol !5137 - GUI: Fix scatter plot item initial parameter and cleanup (cherry pick for hotfix) !5139 - GUI: Cleanup more the axis item and remove patches (cherry pick hotfix) !5144 **************************** What's New in Karabo 2.10.1 **************************** This patch release fixes some issues in the GUI and completes some features in the C++/bound framework: - GUI: Major enhancement of trendline time axis - C++/Bound: InputChannel connection status tracking: The `DeviceClient` method to register for pipeline data from an OutputChannel (registerChannelMonitor) now offers a hook to track the connection status that can be `DISCONNECTED`,`CONNECTING`, `CONNECTED` and maybe `DISCONNECTING`. - C++/Bound: End-of-stream handling in many-to-one scenario: If an InputChannel receives data from several output channels, a registered end-of-stream handler is now reliably called when all output channels have sent their end-of-stream. Note: This completes the 2.10.0 fix of a long standing bug that made the many-to-one pipeline scenario pretty unreliable. Now it can be safely used. Detailed Merge-Log ================== - C++: Fix EOS handling and its test for many-to-one pipeline !4991 - C++: InputChannel connection tracker !4995 - C++: Expose input channel status tracking to DeviceClient interface !4996 - C++: Clean input channel !4976 - C++: Alarm signal with priority to ensure order !5006 - Bound: Expose InputChannel ConnectionStatus to DeviceClient interface !4997 - GUI: Use native axis item pyqtgraph !4985 - GUI: Scale font size with the operating system !4977 - GUI: Add WaitForEvents flag for processEvents !5008 **************************** What's New in Karabo 2.10.0 **************************** The **most relevant improvements**, fixes and changes are: - C++/bound: The legacy point-to-point shortcut for broker type communication has been removed, including the configuration parameters GuiServerDevice.p2pDevices and DataLoggerManager.useP2p and DataLogger.useP2p that were used to switch the feature (partially) on. - MDL: Every `requiredAccessLevel` which will be at least `AccessLevel.USER` for **reconfigurable** parameters if not explicitly specified! - MDL: The eventloop can be configured and set to ``uvloop`` via an environemnt variable. Please set ``KARABO_UVLOOP`` before starting the device server to use ``uvloop`` instead of native ``asyncio``. - For now, MDL servers started with ``uvloop`` cannot start devices from ``bound`` python. - MDL: Outputchannel can write end of stream token with coroutine `writeEndOfStream`. - MDL: A new karabo descriptor is introduced, the ``RegexString``. A string descriptor which validatas against regex pattern. - Core Devices: The ``DaemonManager`` device has been moved to the Framework. - Core Devices: A new Framework device has been created, the ``ConfigurationManager``. - Pipelines: The available options of the onSlowness parameter that defines how an output channel should react if a connected input channel is not yet ready to receive more data, have changed: The non-functional throw has been removed and a new option queueDrop has been introduced. The default has changed from wait to **drop**. The ``compression`` key has been removed. - All API: The `visibility` of devices cannot be configured on runtime anymore. - All API: The core devices get a common place with deviceId definitions. In the future, these deviceIds must be used: KARABO_ALARM_SERVICE = "Karabo_AlarmService" KARABO_CONFIG_MANAGER = "KaraboConfigurationManager" KARABO_DAEMON_MANAGER = "KaraboDaemonManager" KARABO_PROJECT_MANAGER = "KaraboProjectManager" - GUI: The Karabo GUI is shipped now with open license fonts: Source Sans Pro, Source Serif Pro, Source Code Pro. **All other fonts won't be offered anymore.** - GUI: The grid layout has been deprecated. It can be still read and written, but won't be offered anymore on grouping. - GUI: The DoubleWheelEdit controller has been deprecated. - GUI: The Slider widget has been deprecated. Detailed Merge-Log ================== - All API: Add test for alarm behaviour plus fixes to succeed !4396 - All API: test signalAlarmUpdateI integrated tests for the signal emitted !4432 - All APIs: Class version property from version control !4587 - All API: Pipeline default onSlowness to drop !4726 Influx Database +++++++++++++++ - InfluxDB: Add a last line of defense against malformed influx queries. !4439 - InfluxDB: Integration test for data logging when schema evolution happens. !4455 - InfluxDB: Nan treatment for influx logger !4460 - InfluxDB: no base64 encoding for vector_uint8 !4475 - Influx migration: save last run info !4431 - InfluxDB: Support VECTOR_BOOL in Influx Logging !4472 - InfluxDB: Handle BYTE_ARRAY for the Influx case in the same way it is handled for file based logging. !4476 - InfluxDB: Influx Line Protocol does not accept NaNs !4437 - InfluxDB: Display success when influx migration succeeds!4493 - InfluxDB migration: do not try to parse LOGOUT lines !4498 - InfluxDB: adapt migration to new format !4458 - InfluxDB: Implement Vector of Chars !4456 - InfluxDB: Fix influx reader when schema injection happens and empty strings and vectors are involved. !4450 - InfluxDB: Migration Script. VECTOR_UINT8 unpack and bugfix !4473 - InfluxDB: Migration base64 encodes single chars !4479 - InfluxDB: encode CHAR in base64 !4477 - InfluxDB: Log the whole answer in case of failing request !4526 - InfluxDB: align schema digest field name in MDL logger !4531 - InfluxDB: fix schema_digest event name !4530 - InfluxDB: Fix more cycling in InfluxLogReader !4559 - InfluxDB: Fix cycling in InfluxLogReader for FLOAT and DOUBLE !4551 - InfluxDB: quote on tag for schema_digest entry + add integration test !4546 - InfluxDB: Cast UINT64 to INT64 not STRING !4555 - InfluxDB: UINT64s are not saved as strings anymore !4563 - InfluxDB: Introduce VECTOR_STRING_BASE64 encoding for vector of string !4459 - InfluxDB: Migrator does not add quotes to field keys !4412 - InfluxDB: better failure detectionThe setup to connect to InfluxDB and check/create databases was not properly checking HTTP return codes. !4414 - InfluxDB: Better error messages when Influx Server is not available . !4442 - InfluxDB: Allow for a date range on migration !4597 - InfluxDB: Refactors InfluxDbClient to host just one TcpChannel and fix some issues with Telegraf integration tests. !4603 - InfluxDB: Add limit to 'maxNumData' parameter for slot 'getPropertyHistory' for Influx. !4616 - InfluxDB: handle partial results !4617 - InfluxDB: allow configurable max history size request !4628 - InfluxDB: Add all logger and readers as visible classes of default logger server !4632 - InfluxDB: Fix influx logger crash !4506 - InfluxDB: Telegraf integrated tests as long running tests. !4792 Bound/cpp core ++++++++++++++ - Bound: Validate config before launching device process !4725 - Bound: Allow to specify DaqPolicy of STATE_ELEMENTAlso fix typo hiding duplicated test function. !4502 - Bound: Make global alarms 'sticky' !4451 - Bound: Make changed log level visible !4550 - Bound: Fix schema evolution problem with broker connection in bound python !4881 - C++: Notify old gui clients about scene problems !4925 - C++: Add method 'TcpChannel::consumeBytesAfterReadUntil' as a complement for 'TcpChannel::readAsyncStringUntil' !4515 - C++: Log readers reply time string with timezone in slotGetConfigurationFromPast !4536 - C++: Provide a readOnly version for the GUI Server !4448 - C++: Silence gui server log file !4415 - C++: Clean AlarmCondition* Make use of 'default' and 'delete' for constructors. !4417 - C++: string contain pipes are read correctly in for (1|2|3) scenario. !4592 - C++: Ensure that output channel keys do not contain device/channel id delimiters !4666 - C++: Refactor endOfStream handlingMark chunks in `Memory` to be *endOfStream* !4672 - C++: Clean Memory classJust remove stuff not used. !4678 - C++: Add support for ConfigurationManager operations to DeviceClient. !4694 - C++: Fix many-to-one pipelines receiving from remote !4705 - C++: Make gcc version < 5 fail !4708 - C++: remove compression option !4712 - C++: Add missing mutex locks and go for read-only locks !4697 - C++: Initial BrokerMessageLogger support for OpenMQ and MQTT. !4717 - C++: JMS reading with race condition free setting of handlers !4735 - C++: Use single JmsProducer in OpenMQBrokerThe JmsProducer itself can deal with many topics. !4736 - C++: Enable safe output channel init !4741 - C++: Fix non-effective mutex locks and properly erase from set while iterate !4763 - C++: Protect server against bad input from time server !4772 - C++: server process stops again if invalid serverId detected !4764 - C++/bound: Regular retries to connect InputChannel !4848 - C++ tests: Try to fix JmsConnection_Test !4851 - C++: Add maxQueueLength to InputChannel and enforce it on the OutputChannel side. !4845 - C++: Underscore parameters (deviceId, serverId) become assignment Internal !4889 - C++: Loggers now retry connection to device after failed attempts !4918 - C++: No slotSaveConfigurationFromName when GUI Server is in read-only mode. !4896 - C++/Bound: make hostName Assignment.INTERNAL !4898 - C++: Jms test - avoid topic clash and increase timeout and message travel time !4806 - C++: More robust pipeline tests* !4808 - C++: Reliable InputChannel::disconnect !4832 - C++: queueDrop option for shared input channels !4636 - C++: Use weak (not bare) pointer in static map for shortcuts !4638 - C++: Allow to change loggermap file !4607 - C++: Avoid code duplication in OutputChannel !4640 - C++: Channel callbacks need weak pointers !4642 - C++: OVERWRITE_ELEMENT.setNewTags is now aligned !4429 - C++: Remove "throw" behaviour for pipelines senders !4644 - C++: Potential fix for SignalSlotable destruction freeze. !4663 - C++: Reliable pipeline queuing !4605 - C++: GuiServerDevice can ignore timeouts on configuration !4649 - C++: Enable DAQPolicy setting for the state element !4446 - C++: Protect log manager. A data logger started 'by hand' with a short id lead to an exception and stopped - the logger manager functioning. !4501 - C++: Make global alarms 'sticky' !4507 - C++/Bound: Always notify output channels for possible read after end-of-stream !4474 - C++: Fix alarm service integration test !4507 !4516 - C++: Fix default fromString for vectors,Including some performance optimisations. !4484 - C++/Bound: Deprecate visibility setting on runtime !4730 - C++/Bound/MDL: Cross API test for endOfStream !4683 - C++/Bound: Introduce broker API to allow support of different brokers !4608 - C++/Bound: refactor topic from env. var. !4711 - C++/Bound: Choice of node for broker connection configuration. !4762 - C++/Bound: Proper "lang" and version print for (interactive bound) device client !4595 - C++/Bound: UNKNOWN as default data type for image and ndarray elements !4588 - C++/Bound: Remove p2p shortcut messaging !4664 Dependencies and deployment +++++++++++++++++++++++++++ - CI: run integration tests on hotfix branch !4487 - CI: windows CI is less verbose, unit tests skip build !4599 - CI: do not run prerelease tasks on release !4604 - CI: optimize tests execution !4606 - CI: forgot to remove the int. tests !4613 - CI: add junit artifacts !4723 - CI: Restore default CI testing configuration. !4855 - CI: reduce number of docker pulls !4890 - BUILD: Use conda-pack for packing a relocatable environment !4591 - BUILD: Preserve egg dir when building the package !4618 - BUILD: Compile framework with C++14 compiler !4535 - BUILD: revive cmake build !4420 - DEPS: package libgfortran4 !4602 - DEPS: upgrade setuptools_scm !4660 - DEPS: Update PyQtGraph to 0.11 !4732 - DEPS: Enable Ubuntu20 !4707 - DEPS: upgrade openmq C Client to 5.1.4 !4418 - DEPS: Add CentOS8 Build !4733 - DEPS: Fix for building issue on Ubuntu 16 - Boost built with c++14 std. !4834 - TOOLS: splitting away jkarabo !4823 Tests +++++ - Test: Even more robust C++ pipeline integration test !4902 - Integration test: Very long timeouts for data loggers* longer timeout for "flush" calls !4537 - Integration tests: Reliable test_alarm_all_api !4438 - TOOLS: automated device version for templates !4657 - Test: Fix config manager integration test !4854 - Test: More robust integration tests about alarms !4884 - Test: Make logging directory for logger integration tests unique !4565 - Test: Tests for the DeviceClient interface to the ConfigurationManager operations. !4704 - Test: Add junit artifact to python tests !4757 - Test: Tune constants for DataLogging_Test. !4639 - Test: extend cross api pipe test to cover MDL and onSlowness=="queueDrop"Prerequisite: harmonise the `PropertyTestMDL` device with other APIs concerning pipelines. - Test: Furthermore some fixes and tuning for the test to get it robust and not lasting too long. !4614 - Test: Enable testNans() for file logger test !4489 - Test: Add schedules for coverage and long tests !4427 - Test: Partially harmonise PropertyTest devices !4395 Core Devices ++++++++++++ - Daemon Service: Add default host !4819 - Gui Server: Provide serverInformation in single message !4867 - Gui-Server: Provide information on failure protocol !4720 - Gui-Server: Forward replies of the configurationManager !4673 - Gui-Server: Request Generic optionally sends back an empty Hash and documentation !4718 - Gui Server: Increase min client version to 2.9.0 !4922 - Gui Server: Enable device provided scenes in read only mode !4483 - Core Devices: Add component manager that can save / list configuration snapshots !4768 - Core Devices: PropertyTest MDL gets a scene !4838 - Core Devices: Enhance configuration manager with checks for config names and schema return only on demand !4841 - Core Devices: Daemon Manager default port !4850 - Core Devices: Component Manager can reconfigure devices !4835 - Core Devices: Configuration manager returns HashList !4713 - Core Devices: Provide a Configuration Manager device (MDL) !4685 - Core Devices: Move DaemonManager to Core Devices !4698 - Core Devices: Update ConfigurationManager !4744 - Core Devices: Input services for daemon handling !4703 - Core Devices: Webserver doesn't handles device servers with a minus sign !4600 - Core Devices: Create service and environment dirs only when needed !4590 - Core Devices: REMOVE CentralLogging !3870 - Alarm service: Fix alarm id duplication bug !4421 - Logger test: Test vector cases for data logger history !4482 - WEB: aggregator displays only enabled services !4814 - DataLogger: DataLogger goes to ON after hooking into logged devices, unless in ERROR. !4748 - DataLogger: Fix regression of file logger for old VECTOR_STRING format !4654 - Core Devices: Daemon manager scene font alignment !4899 - Core Devices: Configuration Manager instanceNew timeout !4921 - Core Devices: Config limit to 30 !4892 - Core devices: Gui timeout and logs !4927 - Core Devices: ConfigManager can handle runtime attributes !4874 - ConfigDB Manager in service.in !4870 - Configuration Manager: Protect device configuration name with regex !4863 - Config DB: List devices with configurations !4907 - Config DB: Limit of configurations !4862 - Config DB: Find configuration sets !4765 Middlelayer Core ++++++++++++++++ - Common: Provide unique and constant deviceId names for our singletons !4731 - Common: Use const services in python karabo !4830 - ikarabo: add instantiateFromName !4843 - MDL: Set the default access level of Slots to USER !4469 - MDL: Visibility becomes an init only feature !4648 - MDL: Add queueDrop to noInputShared, deprecate throw option !4650 - MDL: QueueDrop functionality !4646 - MDL: Default numpy for NDArray change !4637 - MDL: Provide a RingQueue !4645 - MDL: Stop and close the fake eventloop started in a different thread !4689 - MDL: Use default event loop policy for child processes !4716 - MDL: Assure instanceGone in UVLOOP !4728 - MDL: Add configuration from name function to CLI !4701 - MDL: optimize parallel execution on slotSave !4737 - MDL: Autocomplete configuration function in ikarabo !4738 - MDL: Provide Nodes with default access level of OBSERVER !4815 - MDL: Fix input handler capture of exception in pipelining !4633 - MDL: Handle NDARRAY of UNKNOWN type !4610 - MDL: code quality follow up !4615 - MDL: DictToHash treats vector hash correctly and is used in project manager !4844 - MDL: Provide utility function to build karabo value !4869 - MDL: remove references to async !4791 - MDL: Use attribute and not displaytype for regex in regexstring !4796 - MDL: Fix has_shared behavior for pipelining !4665 - MDL: Remove schema cross test permanently !4802 - MDL: Config Manager can init Devices !4803 - MDL: Use uvloop for asyncio !4026 - MDL: Set the access level to USER (minimum) for reconfigurable parameters !4634 - MDL: Add Regex string !4709 - MDL: Make global alarm 'sticky'As in !4451 and !4507 for bound Python and C++, respectively.!4514 - MDL: Fix load from file exception raise !4528 - MDL: Visibility of macro devices !4510 - MDL: Split the pipeline tests from Remote test !4544 - MDL: Test the manual connection of input channel !4545 - MDL: Provide endOfStream for output channels !4242 - MDL: Fix setting log level for device servers !4682 - MDL: Provide dictToHash function !4687 - MDL: Harmonise log levels with C++/bound, i.e. add FATAL !4688 - MDL: Optionally activate UVLOOP !4680 - MDL: Provide Hash fully equal and deepcopy !4880 - MDL: Code quality check in native !4879 - MDL: Add test for multiple shared pipelines !4801 - MDL: Provide a native deepcopy mechanism of Hash !4893 - MDL Devices: Code quality and top layer import !4859 - MDL: Compare configurations !4888 - MDL: Protect against bad timeserver !4908 - MDL: Max queue lengh for pipelines !4909 - MDL: Remove setting loop to None !4727 - MDL: One more fix for the cancel test !4920 - MDL: Fully stop MDL server if requested !4864 - MDL test: Dynamic waiting in macro_test.test_cancel() !4878 - MDL-Native: Reorder packages !4852 - MDL: Add MDL broker API !4719 - MDL: Provide a callNoWait option in the cli !4829 - MDL: Extract attribute modifications from schema !4828 - MDL: Implement VectorRegexString !4758 - MDL: Extract a configuration from a proxy !4807 - MDL: Sanitize a reconfigurable configuration !4826 Graphical User Interface ++++++++++++++++++++++++ - GUI: Add label widget margins !4929 - GUI: Remove minInc maxInc etc. pp. from being editable by GUI !4911 - GUI: Provide enough rendering time for karabo-alarms !4651 - GUI: Calculate scene layout sizehint from children sizehints only when it is invalid !4661 - GUI: Minor typo fixes and constant adjustments for the tips&tricks wizard !4630 - GUI: Enable AccessLevel independent historic data retrieval in the trendgraphs !4635 - GUI: Protocol Skeleton for ConfigurationFromName !4539 - GUI: Add the histogram aux to Detector Graph !4586 - GUI: Destroy ipython console properly !4492 - GUI: Empty table widget !4659 - GUI: Better messages when using configuration from past !4404 - GUI: Show compatibility for min max dependent controllers better !3950 - GUI: Trigger value_update when additional proxies are added !4413 - GUI: Arrow shape model !4333 - GUI: Take into account state updates and fix the range setting for disabling !4444 - GUI: Remove additional value update for the vector xy !4445 - GUI: Hide the labelItem in the aux plots by default !4486 - GUI: Improve Image Graph stats HTML !4693 - GUI: Only enable/disable image graph grayscale features only when type changes !4747 - GUI: Visualize conflicting projects with an alarm icon !4641 - GUI: New protocol for configuration manager !4702 - GUI: Adjust image widget rgb !4517 - GUI: Add optional forwarded channel for updating GUI extensions: !4729 - GUI: No editing of attributes in AccessLevel OBSERVER !4809 - GUI: Account for assignment internal in the configurator !4799 - GUI: Move vector curves addition to add_proxy !4453 - GUI: Refactor scene writer !4443 - GUI: A place for hint widgets !4447 - GUI: Enable readOnly utility in client !4457 - GUI: Implement access level configuration for project toolbar !4461 - GUI: Better access logic for project bar !4465 - GUI: AccessLevel service kill in topology !4462 - GUI: Provide an alarm runner !4468 - GUI: Context menu properly PROJECT EDIT sensitive for devices !4508 - GUI: Cleanup of the network code !4495 - GUI: Run macro from macro panel has access role !4505 - GUI: Fix the initial check state of a device configuration when a device is added !3733 - GUI: Change to Qt5 in controller test !4512 - GUI: Fix vector bar graph !4496 - GUI: Concurrence forwarding of client id !4478 - GUI: Make not working device servers visible in daemon manager widget !4511 - GUI: Enable project concurrence in the GUI client !4509 - GUI: Fix graph toolbar toggling !4519 - GUI: More plot range fixes !4540 - GUI: AccessRole implementation for configurator toolbar !4470 - GUI: Scripting console access role !4467 - GUI: Implement access role for device topology !4471 - GUI: Fix backward compatibility in read and write element !4480 - GUI: Implement access roles in the project view !4497 - GUI: Fix plot log range !4504 - GUI: Extract important part of stack trace of the error dialog !4670 - GUI: Use QDialog for error dialogs instead of QMessageBox !4679 - GUI: Provide the list of named configuration via dialog !4676 - GUI: Save booleans and retrieve them on mac !4681 - GUI: Save configurations from name !4696 - GUI: Make the columns in the daemon table sortable !4699 - GUI: No archive notification before retrieving configuration from past !4527 - GUI: Draw the arrow shape !4334 - GUI: Hide the axis labels when there is no text or unit !4553 - GUI: Set a global Locale !4533 - GUI: Quick path for projects and subprojects comparison on projectUpdate !4518 - GUI: Check for SVG id attributes before temporarily storing !4520 - GUI: Set dragged widgets as initialized !4534 - GUI: Extend image widget for other encodings !4513 - GUI: Show/hide labels in image plots whether there are text/units !4554 - GUI: Delete project device references upon deleting device instance !4560 - GUI: Update x-transform after trigger !4572 - GUI: Provide a Tips&Tricks Wizard !4573 - GUI: Improve visualization of vectors with invalid numbers for VectorBarGraph in log mode !4570 - GUI: Increase the frequency of axis ticks on small widgets !4574 - GUI: Disable only writable widgets on wrong access level !4667 - GUI: Get configuration from name !4677 - GUI: Add an application font !4549 - GUI: Remove patches in AxisItem !4779 - GUI: Provide util function to get array data !4797 - GUI: Add regex edit field !4710 - GUI: Format evaluate expression widget !4784 - GUI: Configurable ROI name !4866 - GUI: Lower the priority to create histogram widgets as default [ci skip] !4839 - GUI: Label configurations from name !4745 - GUI: Adapt to squish testing for high dpi !4760 - GUI: Provide event map in save detail dialog (fix) !4761 - GUI: Configuration dialog from time enhanced !4759 - GUI: Substitute fonts with the Source Pro Family !4767 - GUI: Enhance configuration dialogs with show device option !4769 - GUI: Elide labels when the text is longer than the widget geometry !4766 - GUI: Protect configuration by name saving with regex validator !4770 - GUI: Add scene reader registry !4330 - GUI: Hard deprecate on Knob and soft deprecate on Slider !4435 - GUI: Purge trendline option !4416 - GUI: Compatiblity patch between new scene model readers and gui extensions !4440 - GUI: Clean the Tick Slider !4434 - GUI: Account connection loss in configuration dialogs !4746 - GUI: Enable DPI scaling for application on scaled Windows and Ubuntu desktops !4740 - GUI: Deprecate DoubleWheelEdit controller !4752 - GUI: Change the symbol style of our plots !4749 - GUI: Add vector regex controller !4846 - GUI: Clean and unify NDArray controllers !4847 - GUI: Vector hash validation !4785 - GUI: Again remove assignment internal !4891 - GUI: Fix table parent setting !4853 - GUI: Provide configuration from name dialog in device topology !4861 - GUI: Add clock icon to trendline requst time !4868 - GUI: Combine histogram graphs in a single controller !4858 - GUI: No project saving if you are not allowed !4865 - GUI: Prevent unnecessary request for config save when device is offline !4871 - GUI: Consider deleted rows when comparing vector hash !4887 - GUI: Sanitize an init configuration, delete readonly and internal parts !4800 - GUI: Destroy trendlines properly to protect against historic data !4805 - GUI: Provide a header in the table view on init !4804 - GUI: Provide Histogram Controller for NDArrays !4813 - GUI: Add test for binding types, check if numpy type is preserved !4820 - GUI: provide full array graph support !4810 - GUI: Separate/move validators !4822 - GUI: Deprecate grid for the time beeing in the layout !4751 - GUI: Make sure windows stay on top for message boxes and listConfig dialog !4739 - GUI: Provide a clock icon (first) !4776 - GUI: New font dialog !4774 - GUI: Always provide a new date time for start of new trendline !4778 - GUI: Include fonts in package_data !4780 - GUI: Remove a few LegendItem patches !4782 - GUI: Avoid loading values in the configurator that does not conform to current property type !4629 - GUI: Provide request time interval feature for trendline on viewBox menu !4775 - GUI: Propagate closing of undocked Panels correctly to their Containers !4781 - GUI: Destroy messagebox properly !4783 - GUI: Quietly record the layout children geomerty in their model !4750 - GUI: Fix typos for the daemon action !4789 - GUI: Remove undocked panel !4788 - GUI: Strip about device dialog (pretty) !4875 - GUI: Logindialog must stay on top !4882 - GUI: Display the whole error message if it's short !4883 - GUI: Update lttbc !4885 - GUI: Destroy table model from configurator !4886 - GUI: Add NDArray RollGraph !4857 - GUI: Don't stack on top the conf dialogs but raise them !4872 - GUI: Enable copying of messagebox text !4873 - GUI: Add ndarray support for vector bar !4860 - GUI: Change tickfont for axis items, increase size !4919 - GUI: Show project panel dialogs on mouse cursor !4903 - GUI: Use vector regex validation in list dialog !4923 - GUI: Fight message box strong modality !4926 - GUI: Use widget size hint if model geometry is None !4928 - GUI: Fix float / numpy, reliagn hash and table validation !4910 - GUI: Fix scene widget model geometry check !4914 - GUI: Fix label initial size hint !4917 - GUI: Always request list of configurations at start in configuration from name dialog !4901 - GUI: Make sure console is closed on disconnect !4904 - GUI: Draw boundary correctly !4906 - GUI: Make generic trendline wider for more labels !4894 - GUI: Respect model geometry by reflecting it to widget size hint !4798 - GUI: Show topology on show device in dialogs !4895