Initial QWidgets style work

This MR is for creating a new branch for development version of the QWidgets output.

Important files:

  • UnionStyle is the base class that drives the show
    • It also does the basic drawing of text and icons
  • Every self-contained element has their own class inherited from AbstractElement class
    • This allows precise manipulation of the style when it comes to specific elements
    • It is likely we do not need all of them but this can be only figured out after more testing and fixing
    • If it has a QStyleOption, it likely has an Element class!
    • AbstractElement also holds a basic layouting system which needs some rework in another MR.
  • StyleUtils holds some helper functions for things like centering rectangle within another.
  • BackgroundDrawing does all the visual drawing: Background colors, borders, etc.

Elements gather information what they should draw by fetching their hierarchy and comparing it to the hierarchy queried from the CSS files. It tries it's best to match it and follow the rules set there.

Some elements do not exist in QtQuick, for example many of the PixelMetrics. Those values have their own widgets.css that can be overridden by the user.

Modified also some of the CSS files to make things behave nicer with QStyle, or added missing elements.

This work has been a lot of trial and error due to lacking documentation. There will be many visual bugs. But at least the style now gets its information from the CSS files. If it can't find that information, it tries to fallback to QCommonStyle.

Part of #37 (closed)

Edited by Akseli Lahtinen

Merge request reports

Loading