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// Qt-Security score:significant reason:default
4
5#ifndef DEFAULT_ACTIONPROVIDER_H
6#define DEFAULT_ACTIONPROVIDER_H
7
10#include <extensionfactory_p.h>
11
12#include <QtWidgets/qmenu.h>
13#include <QtWidgets/qmenubar.h>
14#include <QtWidgets/qtoolbar.h>
15
16QT_BEGIN_NAMESPACE
17
18namespace qdesigner_internal {
19
20class FormWindow;
21
22class QT_FORMEDITOR_EXPORT ActionProviderBase: public QDesignerActionProviderExtension
23{
24protected:
25 explicit ActionProviderBase(QWidget *widget);
26
27public:
28 void adjustIndicator(const QPoint &pos) override;
29 virtual Qt::Orientation orientation() const = 0;
30
31protected:
32 virtual QRect indicatorGeometry(const QPoint &pos, Qt::LayoutDirection layoutDirection) const;
33
34private:
35 QWidget *m_indicator;
36};
37
38class QT_FORMEDITOR_EXPORT QToolBarActionProvider: public QObject, public ActionProviderBase
39{
40 Q_OBJECT
41 Q_INTERFACES(QDesignerActionProviderExtension)
42public:
43 explicit QToolBarActionProvider(QToolBar *widget, QObject *parent = nullptr);
44
45 QRect actionGeometry(QAction *action) const override;
46 QAction *actionAt(const QPoint &pos) const override;
47 Qt::Orientation orientation() const override;
48
49protected:
50 QRect indicatorGeometry(const QPoint &pos, Qt::LayoutDirection layoutDirection) const override;
51
52private:
53 QToolBar *m_widget;
54};
55
56class QT_FORMEDITOR_EXPORT QMenuBarActionProvider: public QObject, public ActionProviderBase
57{
58 Q_OBJECT
59 Q_INTERFACES(QDesignerActionProviderExtension)
60public:
61 explicit QMenuBarActionProvider(QMenuBar *widget, QObject *parent = nullptr);
62
63 QRect actionGeometry(QAction *action) const override;
64 QAction *actionAt(const QPoint &pos) const override;
65 Qt::Orientation orientation() const override;
66
67private:
68 QMenuBar *m_widget;
69};
70
71class QT_FORMEDITOR_EXPORT QMenuActionProvider: public QObject, public ActionProviderBase
72{
73 Q_OBJECT
74 Q_INTERFACES(QDesignerActionProviderExtension)
75public:
76 explicit QMenuActionProvider(QMenu *widget, QObject *parent = nullptr);
77
78 QRect actionGeometry(QAction *action) const override;
79 QAction *actionAt(const QPoint &pos) const override;
80 Qt::Orientation orientation() const override;
81
82private:
83 QMenu *m_widget;
84};
85
86using QToolBarActionProviderFactory = ExtensionFactory<QDesignerActionProviderExtension, QToolBar, QToolBarActionProvider>;
87using QMenuBarActionProviderFactory = ExtensionFactory<QDesignerActionProviderExtension, QMenuBar, QMenuBarActionProvider>;
88using QMenuActionProviderFactory = ExtensionFactory<QDesignerActionProviderExtension, QMenu, QMenuActionProvider>;
89
90} // namespace qdesigner_internal
91
92QT_END_NAMESPACE
93
94#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)