Project: QGIS

Version: 3.0.0

Feature: Improved consistency to the user interface

This work sponsored by the QGIS grant program on "adding consistency to UI controls" is now complete and merged into master. The following tasks were done as part of this work:

  • All API regarding transparency/opacity/alpha was standardised to setOpacity() and opacity(). The methods take a double value between 0 (transparent) and 1 (opaque), keeping consistency with the Qt API.
  • A new widget QgsOpacityWidget was created, and is now used everywhere through the UI where opacity is set. This ensures consistent behavior and look for opacity controls everywhere.
  • Rotation has been standardised in the API and UI, so now rotation is always applied clockwise. All rotation widgets have been updated so they accept values from -360 to 360.
  • 2.x Projects with labeling using rotation and data defined rotation are transparently upgraded upon opening in 3.0
  • Scale APIs have been made consistent throughout the QGIS API. The confusing mix of scale denominators vs real scales has been removed, with everything now operating on scale denominators. The behaviour of all scale range calls is standardised with a common meaning for min/max scales (and explicit api documentation regarding this)
  • All scale controls now use the standard scale widgets for consistency across the UI
  • Labeling now uses the same definition for min/max scale as the rest of the UI, and existing projects are transparently upgraded on opening in 3.0.
  • Fixed most outstanding bugs relating to scale usage, including bugs breaking the rule based scale limits

Thanks to the QGIS PSC and project donors for sponsoring this work and allowing it to proceed!

This feature was funded by QGIS Sponsors and Donors

This feature was developed by Nyall Dawson