LeechCraft
0.6.70-13605-g8cd066ad6a
Modular cross-platform feature rich live environment.
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
* Boost Software License - Version 1.0 - August 17th, 2003
6
*
7
* Permission is hereby granted, free of charge, to any person or organization
8
* obtaining a copy of the software and accompanying documentation covered by
9
* this license (the "Software") to use, reproduce, display, distribute,
10
* execute, and transmit the Software, and to prepare derivative works of the
11
* Software, and to permit third-parties to whom the Software is furnished to
12
* do so, all subject to the following:
13
*
14
* The copyright notices in the Software and this entire statement, including
15
* the above license grant, this restriction and the following disclaimer,
16
* must be included in all copies of the Software, in whole or in part, and
17
* all derivative works of the Software, unless such copies or derivative
18
* works are solely in the form of machine-executable object code generated by
19
* a source language processor.
20
*
21
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
22
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
23
* FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
24
* SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
25
* FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
26
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
27
* DEALINGS IN THE SOFTWARE.
28
**********************************************************************/
29
30
#pragma once
31
32
#include <QtPlugin>
33
#include <QMultiMap>
34
#include <QString>
35
#include <QKeySequence>
36
#include <QIcon>
37
#include <QMetaType>
38
39
class
QAction;
40
41
using
QKeySequences_t
=
QList<QKeySequence>
;
42
Q_DECLARE_METATYPE
(
QKeySequences_t
)
43
44
namespace
LC
45
{
52
struct
ActionInfo
53
{
55
QString
UserVisibleText_
;
57
QKeySequences_t
Seqs_
;
59
QIcon
Icon_
;
60
63
ActionInfo
()
64
{
65
}
66
73
ActionInfo
(
const
QString& uvt,
74
const
QKeySequence& seq,
75
const
QIcon& icon)
76
:
UserVisibleText_
(uvt)
77
,
Icon_
(icon)
78
{
79
Seqs_
<< seq;
80
}
81
88
ActionInfo
(
const
QString& uvt,
89
const
QKeySequences_t
& seqs,
90
const
QIcon& icon)
91
:
UserVisibleText_
(uvt)
92
,
Seqs_
(seqs)
93
,
Icon_
(icon)
94
{
95
}
96
};
97
};
98
99
Q_DECLARE_METATYPE
(
LC::ActionInfo
)
100
101
109
class
Q_DECL_EXPORT
IHaveShortcuts
110
{
111
public
:
119
virtual
void
SetShortcut (
const
QString&
id
,
const
QKeySequences_t
& sequences) = 0;
120
129
virtual
QMap<QString, LC::ActionInfo>
GetActionInfo ()
const
= 0;
130
131
virtual
~
IHaveShortcuts
() { }
132
};
133
134
Q_DECLARE_INTERFACE (
IHaveShortcuts
,
"org.Deviant.LeechCraft.IHaveShortcuts/1.0"
)
QList< QKeySequence >
LC::ActionInfo
Describes an action exposed in shortcut manager.
Definition:
ihaveshortcuts.h:51
LC::ActionInfo::Seqs_
QKeySequences_t Seqs_
List of key sequences for this action.
Definition:
ihaveshortcuts.h:56
IHaveShortcuts
Interface for plugins that support configuring shortcuts.
Definition:
ihaveshortcuts.h:108
Q_DECLARE_METATYPE
Q_DECLARE_METATYPE(QVariantList *)
LC::ActionInfo::UserVisibleText_
QString UserVisibleText_
User-visible name of the action.
Definition:
ihaveshortcuts.h:54
LC
Definition:
constants.h:34
LC::ActionInfo::ActionInfo
ActionInfo()
Default-constructs an action info.
Definition:
ihaveshortcuts.h:62
QMap< QString, LC::ActionInfo >
LC::ActionInfo::Icon_
QIcon Icon_
Icon of the action.
Definition:
ihaveshortcuts.h:58
src
interfaces
ihaveshortcuts.h
Generated by
1.8.16