LeechCraft
0.6.70-19424-g027e980fd1
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 <QObject>
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
23
namespace
LC
24
{
31
struct
ActionInfo
32
{
34
QString
Text_
{};
35
37
QKeySequence
Seq_
{};
38
39
using
Icon_t
= std::variant<Util::Void, QByteArray, QIcon>;
40
42
Icon_t
Icon_
{
Util::Void
{} };
43
45
QKeySequences_t
AdditionalSeqs_
{};
46
47
QKeySequences_t
GetAllShortcuts
()
const
48
{
49
if
(
AdditionalSeqs_
.isEmpty ())
50
return
{
Seq_
};
51
52
QKeySequences_t
result;
53
result.reserve (
AdditionalSeqs_
.size () + 1);
54
result.push_back (
Seq_
);
55
result +=
AdditionalSeqs_
;
56
return
result;
57
}
58
};
59
};
60
61
Q_DECLARE_METATYPE
(
LC::ActionInfo
)
62
63
71
class Q_DECL_EXPORT
IHaveShortcuts
72
{
73
public
:
81
virtual
void
SetShortcut
(
const
QByteArray&
id
,
const
QKeySequences_t
& sequences) = 0;
82
91
virtual
QMap<QByteArray, LC::ActionInfo>
GetActionInfo
()
const
= 0;
92
93
virtual
~IHaveShortcuts
() { }
94
};
95
96
Q_DECLARE_INTERFACE (
IHaveShortcuts
,
"org.Deviant.LeechCraft.IHaveShortcuts/1.0"
)
IHaveShortcuts
Interface for plugins that support configuring shortcuts.
Definition
ihaveshortcuts.h:72
IHaveShortcuts::~IHaveShortcuts
virtual ~IHaveShortcuts()
Definition
ihaveshortcuts.h:93
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:16
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:32
LC::ActionInfo::Icon_t
std::variant< Util::Void, QByteArray, QIcon > Icon_t
Definition
ihaveshortcuts.h:39
LC::ActionInfo::AdditionalSeqs_
QKeySequences_t AdditionalSeqs_
The additional key sequences for this action.
Definition
ihaveshortcuts.h:45
LC::ActionInfo::Seq_
QKeySequence Seq_
The primary key sequence for this action.
Definition
ihaveshortcuts.h:37
LC::ActionInfo::Icon_
Icon_t Icon_
Icon of the action, either a QIcon itself or its ActionIcon.
Definition
ihaveshortcuts.h:42
LC::ActionInfo::Text_
QString Text_
User-visible name of the action.
Definition
ihaveshortcuts.h:34
LC::ActionInfo::GetAllShortcuts
QKeySequences_t GetAllShortcuts() const
Definition
ihaveshortcuts.h:47
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.18.0