1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
|
// Copyright (C) 2016 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "menutaskmenu.h"
#include <promotiontaskmenu_p.h>
#include <QtGui/qaction.h>
#include <QtCore/qdebug.h>
QT_BEGIN_NAMESPACE
namespace qdesigner_internal {
// ------------ MenuTaskMenu
MenuTaskMenu::MenuTaskMenu(QDesignerMenu *menu, QObject *parent) :
QObject(parent),
m_menu(menu),
m_removeAction(new QAction(tr("Remove"), this)),
m_promotionTaskMenu(new PromotionTaskMenu(menu, PromotionTaskMenu::ModeSingleWidget, this))
{
connect(m_removeAction, &QAction::triggered, this, &MenuTaskMenu::removeMenu);
}
QAction *MenuTaskMenu::preferredEditAction() const
{
return nullptr;
}
QList<QAction*> MenuTaskMenu::taskActions() const
{
QList<QAction*> rc;
rc.push_back(m_removeAction);
m_promotionTaskMenu->addActions(PromotionTaskMenu::LeadingSeparator, rc);
return rc;
}
void MenuTaskMenu::removeMenu()
{
// Are we on a menu bar or on a menu?
QWidget *pw = m_menu->parentWidget();
if (QDesignerMenuBar *mb = qobject_cast<QDesignerMenuBar *>(pw)) {
mb->deleteMenuAction(m_menu->menuAction());
return;
}
if (QDesignerMenu *m = qobject_cast<QDesignerMenu *>(pw)) {
m->deleteAction(m_menu->menuAction());
}
}
// ------------- MenuBarTaskMenu
MenuBarTaskMenu::MenuBarTaskMenu(QDesignerMenuBar *bar, QObject *parent) :
QObject(parent),
m_bar(bar)
{
}
QAction *MenuBarTaskMenu::preferredEditAction() const
{
return nullptr;
}
QList<QAction*> MenuBarTaskMenu::taskActions() const
{
return m_bar->contextMenuActions();
}
}
QT_END_NAMESPACE
|