LeechCraft
0.6.70-18450-gabe19ee3b0
Modular cross-platform feature rich live environment.
Toggle main menu visibility
Loading...
Searching...
No Matches
ihaveshortcuts.h
Go to the documentation of this file.
1
/**********************************************************************
2
* LeechCraft - modular cross-platform feature rich internet client.
3
* Copyright (C) 2006-2014 Georg Rudoy
4
*
5
* Distributed under the Boost Software License, Version 1.0.
6
* (See accompanying file LICENSE or copy at https://www.boost.org/LICENSE_1_0.txt)
7
**********************************************************************/
8
9
#pragma once
10
11
#include <variant>
12
#include <QtPlugin>
13
#include <QString>
14
#include <QKeySequence>
15
#include <QIcon>
16
#include <QMetaType>
17
#include <
util/sll/void.h
>
18
19
class
QAction;
20
21
using
QKeySequences_t
=
QList<QKeySequence>
;
22
Q_DECLARE_METATYPE
(
QKeySequences_t
)
23
24
namespace
LC
25
{
32
struct
ActionInfo
33
{
35
QString
Text_
{};
36
38
QKeySequence
Seq_
{};
39
40
using
Icon_t
= std::variant<Util::Void, QByteArray, QIcon>;
41
43
Icon_t
Icon_
{
Util::Void
{} };
44
46
QKeySequences_t
AdditionalSeqs_
{};
47
48
QKeySequences_t
GetAllShortcuts
()
const
49
{
50
if
(
AdditionalSeqs_
.isEmpty ())
51
return
{
Seq_
};
52
53
QKeySequences_t
result;
54
result.reserve (
AdditionalSeqs_
.size () + 1);
55
result.push_back (
Seq_
);
56
result +=
AdditionalSeqs_
;
57
return
result;
58
}
59
};
60
};
61
62
Q_DECLARE_METATYPE
(
LC::ActionInfo
)
63
64
72
class Q_DECL_EXPORT
IHaveShortcuts
73
{
74
public
:
82
virtual
void
SetShortcut
(
const
QByteArray&
id
,
const
QKeySequences_t
& sequences) = 0;
83
92
virtual
QMap<QByteArray, LC::ActionInfo>
GetActionInfo
()
const
= 0;
93
94
virtual
~IHaveShortcuts
() { }
95
};
96
97
Q_DECLARE_INTERFACE (
IHaveShortcuts
,
"org.Deviant.LeechCraft.IHaveShortcuts/1.0"
)
IHaveShortcuts
Interface for plugins that support configuring shortcuts.
Definition
ihaveshortcuts.h:73
IHaveShortcuts::~IHaveShortcuts
virtual ~IHaveShortcuts()
Definition
ihaveshortcuts.h:94
IHaveShortcuts::SetShortcut
virtual void SetShortcut(const QByteArray &id, const QKeySequences_t &sequences)=0
Sets shortcut's list of key sequences if it has been changed.
IHaveShortcuts::GetActionInfo
virtual QMap< QByteArray, LC::ActionInfo > GetActionInfo() const =0
Returns information about all the shortcuts.
QList
Definition
ianrulesstorage.h:14
QMap
Definition
anutil.h:15
QKeySequences_t
QList< QKeySequence > QKeySequences_t
Definition
ihaveshortcuts.h:21
LC
Definition
constants.h:15
LC::ActionInfo
Describes an action exposed in shortcut manager.
Definition
ihaveshortcuts.h:33
LC::ActionInfo::Icon_t
std::variant< Util::Void, QByteArray, QIcon > Icon_t
Definition
ihaveshortcuts.h:40
LC::ActionInfo::AdditionalSeqs_
QKeySequences_t AdditionalSeqs_
The additional key sequences for this action.
Definition
ihaveshortcuts.h:46
LC::ActionInfo::Seq_
QKeySequence Seq_
The primary key sequence for this action.
Definition
ihaveshortcuts.h:38
LC::ActionInfo::Icon_
Icon_t Icon_
Icon of the action, either a QIcon itself or its ActionIcon.
Definition
ihaveshortcuts.h:43
LC::ActionInfo::Text_
QString Text_
User-visible name of the action.
Definition
ihaveshortcuts.h:35
LC::ActionInfo::GetAllShortcuts
QKeySequences_t GetAllShortcuts() const
Definition
ihaveshortcuts.h:48
LC::Util::Void
A proper void type, akin to unit (or ()) type in functional languages.
Definition
void.h:21
void.h
Q_DECLARE_METATYPE
Q_DECLARE_METATYPE(QVariantList *)
src
interfaces
ihaveshortcuts.h
Generated by
1.17.0