Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Toggle main menu visibility
Loading...
Searching...
No Matches
button_taskmenu.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
BUTTON_TASKMENU_H
6
#
define
BUTTON_TASKMENU_H
7
8
#
include
<
QtWidgets
/
qabstractbutton
.
h
>
9
#
include
<
QtWidgets
/
qcommandlinkbutton
.
h
>
10
#
include
<
QtWidgets
/
qbuttongroup
.
h
>
11
12
#
include
<
qdesigner_taskmenu_p
.
h
>
13
#
include
<
extensionfactory_p
.
h
>
14
15
QT_BEGIN_NAMESPACE
16
17
class
QMenu;
18
class
QActionGroup;
19
class
QDesignerFormWindowCursorInterface;
20
21
namespace
qdesigner_internal
{
22
23
// ButtonGroupMenu: Mixin menu for the 'select members'/'break group' options of
24
// the task menu of buttons and button group
25
class
ButtonGroupMenu
:
public
QObject
26
{
27
Q_OBJECT
28
Q_DISABLE_COPY_MOVE(
ButtonGroupMenu
)
29
public
:
30
ButtonGroupMenu
(
QObject
*
parent
=
nullptr
);
31
32
void
initialize
(QDesignerFormWindowInterface *formWindow,
33
QButtonGroup *buttonGroup =
nullptr
,
34
/* Current button for selection in ButtonMode */
35
QAbstractButton *currentButton =
nullptr
);
36
37
QAction
*
selectGroupAction
()
const
{
return
m_selectGroupAction; }
38
QAction
*
breakGroupAction
()
const
{
return
m_breakGroupAction; }
39
40
private
slots
:
41
void
selectGroup
();
42
void
breakGroup();
43
44
private
:
45
QAction *m_selectGroupAction;
46
QAction *m_breakGroupAction;
47
48
QDesignerFormWindowInterface *m_formWindow =
nullptr
;
49
QButtonGroup *m_buttonGroup =
nullptr
;
50
QAbstractButton *m_currentButton =
nullptr
;
51
};
52
53
// Task menu extension of a QButtonGroup
54
class
ButtonGroupTaskMenu
:
public
QObject
,
public
QDesignerTaskMenuExtension
55
{
56
Q_OBJECT
57
Q_DISABLE_COPY_MOVE(
ButtonGroupTaskMenu
)
58
Q_INTERFACES
(
QDesignerTaskMenuExtension
)
59
public
:
60
explicit
ButtonGroupTaskMenu
(
QButtonGroup
*
buttonGroup
,
QObject
*
parent
=
nullptr
);
61
62
QAction
*
preferredEditAction
()
const
override
;
63
QList
<
QAction
*>
taskActions
()
const
override
;
64
65
private
:
66
QButtonGroup *m_buttonGroup;
67
QList<QAction*> m_taskActions;
68
mutable
ButtonGroupMenu
m_menu;
69
};
70
71
// Task menu extension of a QAbstractButton
72
class
ButtonTaskMenu
:
public
QDesignerTaskMenu
73
{
74
Q_OBJECT
75
Q_DISABLE_COPY_MOVE(
ButtonTaskMenu
)
76
public
:
77
explicit
ButtonTaskMenu
(
QAbstractButton
*
button
,
QObject
*
parent
=
nullptr
);
78
~
ButtonTaskMenu
()
override
;
79
80
QAction
*
preferredEditAction
()
const
override
;
81
QList
<
QAction
*>
taskActions
()
const
override
;
82
83
QAbstractButton
*
button
()
const
;
84
85
protected
:
86
void
insertAction
(
int
index, QAction *a);
87
88
private
slots
:
89
void
createGroup
();
90
void
addToGroup(QAction *a);
91
void
removeFromGroup();
92
93
private
:
94
enum
SelectionType {
95
OtherSelection,
96
UngroupedButtonSelection,
97
GroupedButtonSelection
98
};
99
100
SelectionType selectionType(
const
QDesignerFormWindowCursorInterface *cursor, QButtonGroup ** ptrToGroup =
nullptr
)
const
;
101
bool
refreshAssignMenu(
const
QDesignerFormWindowInterface *fw,
int
buttonCount, SelectionType st, QButtonGroup *currentGroup);
102
QMenu *createGroupSelectionMenu(
const
QDesignerFormWindowInterface *fw);
103
104
QList<QAction*> m_taskActions;
105
mutable
ButtonGroupMenu
m_groupMenu;
106
QMenu *m_assignGroupSubMenu;
107
QActionGroup *m_assignActionGroup;
108
QAction *m_assignToGroupSubMenuAction;
109
QMenu *m_currentGroupSubMenu;
110
QAction *m_currentGroupSubMenuAction;
111
112
QAction *m_createGroupAction;
113
QAction *m_preferredEditAction;
114
QAction *m_removeFromGroupAction;
115
};
116
117
// Task menu extension of a QCommandLinkButton
118
class
CommandLinkButtonTaskMenu
:
public
ButtonTaskMenu
119
{
120
Q_OBJECT
121
Q_DISABLE_COPY_MOVE(
CommandLinkButtonTaskMenu
)
122
public
:
123
explicit
CommandLinkButtonTaskMenu
(
QCommandLinkButton
*
button
,
QObject
*
parent
=
nullptr
);
124
};
125
126
using
ButtonGroupTaskMenuFactory
=
ExtensionFactory
<
QDesignerTaskMenuExtension
,
QButtonGroup
,
ButtonGroupTaskMenu
>;
127
using
CommandLinkButtonTaskMenuFactory
=
ExtensionFactory
<
QDesignerTaskMenuExtension
,
QCommandLinkButton
,
CommandLinkButtonTaskMenu
>;
128
using
ButtonTaskMenuFactory
=
ExtensionFactory
<
QDesignerTaskMenuExtension
,
QAbstractButton
,
ButtonTaskMenu
>;
129
}
// namespace qdesigner_internal
130
131
QT_END_NAMESPACE
132
133
#
endif
// BUTTON_TASKMENU_H
qdesigner_internal::AddButtonsToGroupCommand
Definition
button_taskmenu.cpp:227
qdesigner_internal::AddButtonsToGroupCommand::init
void init(const ButtonList &bl, QButtonGroup *group)
Definition
button_taskmenu.cpp:241
qdesigner_internal::AddButtonsToGroupCommand::redo
void redo() override
Applies a change to the document.
Definition
button_taskmenu.cpp:233
qdesigner_internal::AddButtonsToGroupCommand::undo
void undo() override
Reverts a change to the document.
Definition
button_taskmenu.cpp:232
qdesigner_internal::AddButtonsToGroupCommand::AddButtonsToGroupCommand
AddButtonsToGroupCommand(QDesignerFormWindowInterface *formWindow)
Definition
button_taskmenu.cpp:236
qdesigner_internal::BreakButtonGroupCommand
Definition
button_taskmenu.cpp:201
qdesigner_internal::BreakButtonGroupCommand::undo
void undo() override
Reverts a change to the document.
Definition
button_taskmenu.cpp:206
qdesigner_internal::BreakButtonGroupCommand::redo
void redo() override
Applies a change to the document.
Definition
button_taskmenu.cpp:207
qdesigner_internal::BreakButtonGroupCommand::BreakButtonGroupCommand
BreakButtonGroupCommand(QDesignerFormWindowInterface *formWindow)
Definition
button_taskmenu.cpp:210
qdesigner_internal::BreakButtonGroupCommand::init
bool init(QButtonGroup *group)
Definition
button_taskmenu.cpp:215
qdesigner_internal::ButtonGroupCommand
Definition
button_taskmenu.cpp:50
qdesigner_internal::ButtonGroupCommand::ButtonGroupCommand
ButtonGroupCommand(const QString &description, QDesignerFormWindowInterface *formWindow)
Definition
button_taskmenu.cpp:76
qdesigner_internal::ButtonGroupCommand::managedButtonGroups
static ButtonGroupList managedButtonGroups(const QDesignerFormWindowInterface *formWindow)
Definition
button_taskmenu.cpp:155
qdesigner_internal::ButtonGroupCommand::initialize
void initialize(const ButtonList &bl, QButtonGroup *buttonGroup)
Definition
button_taskmenu.cpp:82
qdesigner_internal::ButtonGroupCommand::createButtonGroup
void createButtonGroup()
Definition
button_taskmenu.cpp:104
qdesigner_internal::ButtonGroupCommand::breakButtonGroup
void breakButtonGroup()
Definition
button_taskmenu.cpp:117
qdesigner_internal::ButtonGroupCommand::addButtonsToGroup
void addButtonsToGroup()
Definition
button_taskmenu.cpp:88
qdesigner_internal::ButtonGroupCommand::removeButtonsFromGroup
void removeButtonsFromGroup()
Definition
button_taskmenu.cpp:96
qdesigner_internal::ButtonGroupCommand::nameList
static QString nameList(const ButtonList &bl)
Definition
button_taskmenu.cpp:139
qdesigner_internal::ButtonGroupMenu
Definition
button_taskmenu.h:26
qdesigner_internal::ButtonGroupMenu::breakGroupAction
QAction * breakGroupAction() const
Definition
button_taskmenu.h:38
qdesigner_internal::ButtonGroupMenu::initialize
void initialize(QDesignerFormWindowInterface *formWindow, QButtonGroup *buttonGroup=nullptr, QAbstractButton *currentButton=nullptr)
Definition
button_taskmenu.cpp:288
qdesigner_internal::ButtonGroupMenu::selectGroupAction
QAction * selectGroupAction() const
Definition
button_taskmenu.h:37
qdesigner_internal::ButtonGroupTaskMenu
Definition
button_taskmenu.h:55
qdesigner_internal::ButtonGroupTaskMenu::preferredEditAction
QAction * preferredEditAction() const override
Definition
button_taskmenu.cpp:337
qdesigner_internal::ButtonGroupTaskMenu::taskActions
QList< QAction * > taskActions() const override
Definition
button_taskmenu.cpp:342
qdesigner_internal::ButtonTaskMenu
Definition
button_taskmenu.h:73
qdesigner_internal::ButtonTaskMenu::preferredEditAction
QAction * preferredEditAction() const override
Definition
button_taskmenu.cpp:431
qdesigner_internal::ButtonTaskMenu::insertAction
void insertAction(int index, QAction *a)
Definition
button_taskmenu.cpp:512
qdesigner_internal::ButtonTaskMenu::taskActions
QList< QAction * > taskActions() const override
Definition
button_taskmenu.cpp:485
qdesigner_internal::ButtonTaskMenu::~ButtonTaskMenu
~ButtonTaskMenu() override
Definition
button_taskmenu.cpp:425
qdesigner_internal::ButtonTaskMenu::button
QAbstractButton * button() const
Definition
button_taskmenu.cpp:585
qdesigner_internal::ButtonTextTaskMenuInlineEditor
Definition
button_taskmenu.cpp:350
qdesigner_internal::ButtonTextTaskMenuInlineEditor::editRectangle
QRect editRectangle() const override
Definition
button_taskmenu.cpp:363
qdesigner_internal::ButtonTextTaskMenuInlineEditor::ButtonTextTaskMenuInlineEditor
ButtonTextTaskMenuInlineEditor(QAbstractButton *button, QObject *parent)
Definition
button_taskmenu.cpp:358
qdesigner_internal::CommandLinkButtonTaskMenu
Definition
button_taskmenu.h:119
qdesigner_internal::CreateButtonGroupCommand
Definition
button_taskmenu.cpp:174
qdesigner_internal::CreateButtonGroupCommand::init
bool init(const ButtonList &bl)
Definition
button_taskmenu.cpp:188
qdesigner_internal::CreateButtonGroupCommand::redo
void redo() override
Applies a change to the document.
Definition
button_taskmenu.cpp:180
qdesigner_internal::CreateButtonGroupCommand::CreateButtonGroupCommand
CreateButtonGroupCommand(QDesignerFormWindowInterface *formWindow)
Definition
button_taskmenu.cpp:183
qdesigner_internal::CreateButtonGroupCommand::undo
void undo() override
Reverts a change to the document.
Definition
button_taskmenu.cpp:179
qdesigner_internal::LinkDescriptionTaskMenuInlineEditor
Definition
button_taskmenu.cpp:373
qdesigner_internal::LinkDescriptionTaskMenuInlineEditor::LinkDescriptionTaskMenuInlineEditor
LinkDescriptionTaskMenuInlineEditor(QAbstractButton *button, QObject *parent)
Definition
button_taskmenu.cpp:381
qdesigner_internal::LinkDescriptionTaskMenuInlineEditor::editRectangle
QRect editRectangle() const override
Definition
button_taskmenu.cpp:386
qdesigner_internal::RemoveButtonsFromGroupCommand
Definition
button_taskmenu.cpp:249
qdesigner_internal::RemoveButtonsFromGroupCommand::init
bool init(const ButtonList &bl)
Definition
button_taskmenu.cpp:263
qdesigner_internal::RemoveButtonsFromGroupCommand::RemoveButtonsFromGroupCommand
RemoveButtonsFromGroupCommand(QDesignerFormWindowInterface *formWindow)
Definition
button_taskmenu.cpp:258
qdesigner_internal::RemoveButtonsFromGroupCommand::undo
void undo() override
Reverts a change to the document.
Definition
button_taskmenu.cpp:254
qdesigner_internal::RemoveButtonsFromGroupCommand::redo
void redo() override
Applies a change to the document.
Definition
button_taskmenu.cpp:255
qdesigner_internal::TaskMenuInlineEditor
Definition
inplace_editor.h:42
QT_BEGIN_NAMESPACE
Combined button and popup list for selecting options.
Definition
qsequentialanimationgroup.cpp:47
qdesigner_internal
Auxiliary methods to store/retrieve settings.
Definition
buddyeditor.cpp:67
qdesigner_internal::buttonList
static ButtonList buttonList(const QDesignerFormWindowCursorInterface *cursor)
Definition
button_taskmenu.cpp:518
qdesigner_internal::debugButtonMenu
@ debugButtonMenu
Definition
button_taskmenu.cpp:37
qdesigner_internal::createRemoveButtonsCommand
static QUndoCommand * createRemoveButtonsCommand(QDesignerFormWindowInterface *fw, const ButtonList &bl)
Definition
button_taskmenu.cpp:533
qttools
src
designer
src
components
taskmenu
button_taskmenu.h
Generated on
for Qt by
1.18.0