Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
default_actionprovider.h
Go to the documentation of this file.
1// Copyright (C) 2016 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
3
4#ifndef DEFAULT_ACTIONPROVIDER_H
5#define DEFAULT_ACTIONPROVIDER_H
6
9#include <extensionfactory_p.h>
10
11#include <QtWidgets/qmenu.h>
12#include <QtWidgets/qmenubar.h>
13#include <QtWidgets/qtoolbar.h>
14
15QT_BEGIN_NAMESPACE
16
17namespace qdesigner_internal {
18
19class FormWindow;
20
21class QT_FORMEDITOR_EXPORT ActionProviderBase: public QDesignerActionProviderExtension
22{
23protected:
24 explicit ActionProviderBase(QWidget *widget);
25
26public:
27 void adjustIndicator(const QPoint &pos) override;
28 virtual Qt::Orientation orientation() const = 0;
29
30protected:
31 virtual QRect indicatorGeometry(const QPoint &pos, Qt::LayoutDirection layoutDirection) const;
32
33private:
34 QWidget *m_indicator;
35};
36
37class QT_FORMEDITOR_EXPORT QToolBarActionProvider: public QObject, public ActionProviderBase
38{
39 Q_OBJECT
40 Q_INTERFACES(QDesignerActionProviderExtension)
41public:
42 explicit QToolBarActionProvider(QToolBar *widget, QObject *parent = nullptr);
43
44 QRect actionGeometry(QAction *action) const override;
45 QAction *actionAt(const QPoint &pos) const override;
46 Qt::Orientation orientation() const override;
47
48protected:
49 QRect indicatorGeometry(const QPoint &pos, Qt::LayoutDirection layoutDirection) const override;
50
51private:
52 QToolBar *m_widget;
53};
54
55class QT_FORMEDITOR_EXPORT QMenuBarActionProvider: public QObject, public ActionProviderBase
56{
57 Q_OBJECT
58 Q_INTERFACES(QDesignerActionProviderExtension)
59public:
60 explicit QMenuBarActionProvider(QMenuBar *widget, QObject *parent = nullptr);
61
62 QRect actionGeometry(QAction *action) const override;
63 QAction *actionAt(const QPoint &pos) const override;
64 Qt::Orientation orientation() const override;
65
66private:
67 QMenuBar *m_widget;
68};
69
70class QT_FORMEDITOR_EXPORT QMenuActionProvider: public QObject, public ActionProviderBase
71{
72 Q_OBJECT
73 Q_INTERFACES(QDesignerActionProviderExtension)
74public:
75 explicit QMenuActionProvider(QMenu *widget, QObject *parent = nullptr);
76
77 QRect actionGeometry(QAction *action) const override;
78 QAction *actionAt(const QPoint &pos) const override;
79 Qt::Orientation orientation() const override;
80
81private:
82 QMenu *m_widget;
83};
84
85using QToolBarActionProviderFactory = ExtensionFactory<QDesignerActionProviderExtension, QToolBar, QToolBarActionProvider>;
86using QMenuBarActionProviderFactory = ExtensionFactory<QDesignerActionProviderExtension, QMenuBar, QMenuBarActionProvider>;
87using QMenuActionProviderFactory = ExtensionFactory<QDesignerActionProviderExtension, QMenu, QMenuActionProvider>;
88
89} // namespace qdesigner_internal
90
91QT_END_NAMESPACE
92
93#endif // DEFAULT_ACTIONPROVIDER_H
#define QT_FORMEDITOR_EXPORT
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)