swift
src
gui
menus
menudelegate.h
1
// SPDX-FileCopyrightText: Copyright (C) 2015 swift Project Community / Contributors
2
// SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-swift-pilot-client-1
3
4
#ifndef SWIFT_GUI_MENUS_MENUDELEGATE_H
5
#define SWIFT_GUI_MENUS_MENUDELEGATE_H
6
7
#include <QMenu>
8
#include <QObject>
9
10
#include "gui/menus/menuaction.h"
11
#include "
misc/logcategories.h
"
12
13
class
QWidget;
14
15
namespace
swift::gui::menus
16
{
20
class
IMenuDelegate
:
public
QObject
21
{
22
Q_OBJECT
23
24
public
:
26
virtual
void
customMenu
(
CMenuActions
&menuActions) = 0;
27
29
void
setNestedDelegate
(
IMenuDelegate
*nestedDelegate) {
m_nestedDelegate
= nestedDelegate; }
30
32
IMenuDelegate
*
getNestedDelegate
()
const
{
return
m_nestedDelegate
; }
33
35
virtual
~IMenuDelegate
() {}
36
38
const
QStringList &
getLogCategories
()
39
{
40
static
const
QStringList cats({
swift::misc::CLogCategories::guiComponent
() });
41
return
cats;
42
}
43
44
protected
:
46
IMenuDelegate
(QWidget *parent =
nullptr
) : QObject(parent) {}
47
49
void
nestedCustomMenu
(
CMenuActions
&menuActions)
const
50
{
51
if
(!
m_nestedDelegate
) {
return
; }
52
m_nestedDelegate
->
customMenu
(menuActions);
53
}
54
56
bool
previousMenuItemContains
(
const
QString &str,
const
QMenu &menu,
57
Qt::CaseSensitivity cs = Qt::CaseSensitive)
const
58
{
59
if
(menu.isEmpty() || str.isEmpty()) {
return
false
; }
60
const
QString t(menu.actions().last()->text());
61
return
t.contains(str, cs);
62
}
63
64
IMenuDelegate
*
m_nestedDelegate
=
nullptr
;
65
};
66
}
// namespace swift::gui::menus
67
68
#endif
// SWIFT_GUI_MENUS_MENUDELEGATE_H
swift::gui::menus::CMenuActions
Bunch of CMenuAction objects.
Definition:
menuaction.h:384
swift::gui::menus::IMenuDelegate
Interface to implement a custom menu.
Definition:
menudelegate.h:21
swift::gui::menus::IMenuDelegate::getNestedDelegate
IMenuDelegate * getNestedDelegate() const
Nested delegate.
Definition:
menudelegate.h:32
swift::gui::menus::IMenuDelegate::customMenu
virtual void customMenu(CMenuActions &menuActions)=0
Display custom menu.
swift::gui::menus::IMenuDelegate::getLogCategories
const QStringList & getLogCategories()
Log categories.
Definition:
menudelegate.h:38
swift::gui::menus::IMenuDelegate::~IMenuDelegate
virtual ~IMenuDelegate()
Destructor.
Definition:
menudelegate.h:35
swift::gui::menus::IMenuDelegate::previousMenuItemContains
bool previousMenuItemContains(const QString &str, const QMenu &menu, Qt::CaseSensitivity cs=Qt::CaseSensitive) const
Does the previous (menu) item contain string?
Definition:
menudelegate.h:56
swift::gui::menus::IMenuDelegate::nestedCustomMenu
void nestedCustomMenu(CMenuActions &menuActions) const
Delegate down one level.
Definition:
menudelegate.h:49
swift::gui::menus::IMenuDelegate::IMenuDelegate
IMenuDelegate(QWidget *parent=nullptr)
Constructor.
Definition:
menudelegate.h:46
swift::gui::menus::IMenuDelegate::setNestedDelegate
void setNestedDelegate(IMenuDelegate *nestedDelegate)
Set nested delegate.
Definition:
menudelegate.h:29
swift::gui::menus::IMenuDelegate::m_nestedDelegate
IMenuDelegate * m_nestedDelegate
nested delegate if any
Definition:
menudelegate.h:64
swift::misc::CLogCategories::guiComponent
static const QString & guiComponent()
GUI components.
Definition:
logcategories.h:94
logcategories.h
Generated on Mon Mar 24 2025 16:42:20 for swift by
1.9.1