summaryrefslogtreecommitdiffstats
path: root/src/widgets/kernel/qaction_widgets.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Fix build without features.shortcutTasuku Suzuki2020-06-051-0/+2
| | | | | Change-Id: I5b0d3b169c7adb3ee340df7b593f84167f1ccc0c Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Fix build without features.menuTasuku Suzuki2020-06-041-0/+1
| | | | | | | qaction_widgets.cpp needs qwidget_p.h for qWidgetShortcutContextMatcher. Change-Id: I9144a4158af2f25f20b6f13badd0ddcd50075b67 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Remove QGuiAction again and split QAction implementation up insteadVolker Hilsheimer2020-03-291-0/+103
Duplicating the number of classes is a high price to pay to be able to have some QAction functionality behave differently, or be only available in widgets applications. Instead, declare the entire API in QtGui in QAction* classes, and delegate the implementation of QtWidgets specific functionality to the private. The creation of the private is then delegated to the Q(Gui)ApplicationPrivate instance through a virtual factory function. Change some public APIs that are primarily useful for specialized tools such as Designer to operate on QObject* rather than QWidget*. APIs that depend on QtWidgets types have been turned into inline template functions, so that they are instantiated only at the caller side, where we can expect the respective types to be fully defined. This way, we only need to forward declare a few classes in the header, and don't need to generate any additional code for e.g. language bindings. Change-Id: Id0b27f9187652ec531a2e8b1b9837e82dc81625c Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>