4#ifndef DEFAULT_ACTIONPROVIDER_H
5#define DEFAULT_ACTIONPROVIDER_H
9#include <extensionfactory_p.h>
11#include <QtWidgets/qmenu.h>
12#include <QtWidgets/qmenubar.h>
13#include <QtWidgets/qtoolbar.h>
17namespace qdesigner_internal {
24 explicit ActionProviderBase(QWidget *widget);
27 void adjustIndicator(
const QPoint &pos) override;
28 virtual Qt::Orientation orientation()
const = 0;
31 virtual QRect indicatorGeometry(
const QPoint &pos, Qt::LayoutDirection layoutDirection)
const;
40 Q_INTERFACES(QDesignerActionProviderExtension)
42 explicit QToolBarActionProvider(QToolBar *widget, QObject *parent =
nullptr);
44 QRect actionGeometry(QAction *action)
const override;
45 QAction *actionAt(
const QPoint &pos)
const override;
46 Qt::Orientation orientation()
const override;
49 QRect indicatorGeometry(
const QPoint &pos, Qt::LayoutDirection layoutDirection)
const override;
58 Q_INTERFACES(QDesignerActionProviderExtension)
60 explicit QMenuBarActionProvider(QMenuBar *widget, QObject *parent =
nullptr);
62 QRect actionGeometry(QAction *action)
const override;
63 QAction *actionAt(
const QPoint &pos)
const override;
64 Qt::Orientation orientation()
const override;
73 Q_INTERFACES(QDesignerActionProviderExtension)
75 explicit QMenuActionProvider(QMenu *widget, QObject *parent =
nullptr);
77 QRect actionGeometry(QAction *action)
const override;
78 QAction *actionAt(
const QPoint &pos)
const override;
79 Qt::Orientation orientation()
const override;
85using QToolBarActionProviderFactory = ExtensionFactory<QDesignerActionProviderExtension, QToolBar, QToolBarActionProvider>;
86using QMenuBarActionProviderFactory = ExtensionFactory<QDesignerActionProviderExtension, QMenuBar, QMenuBarActionProvider>;
87using QMenuActionProviderFactory = ExtensionFactory<QDesignerActionProviderExtension, QMenu, QMenuActionProvider>;
Combined button and popup list for selecting options.
Auxiliary methods to store/retrieve settings.
static QRect verticalIndicatorRect(const QRect &rect)
static QRect horizontalIndicatorRect(const QRect &rect, Qt::LayoutDirection layoutDirection)