LeechCraft 0.6.70-17335-ge406ffdcaf
Modular cross-platform feature rich live environment.
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
19class QAction;
20
23
24namespace LC
25{
33 {
35 QString Text_ {};
36
38 QKeySequence Seq_ {};
39
40 using Icon_t = std::variant<Util::Void, QByteArray, QIcon>;
41
44
47
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
63
64
72class Q_DECL_EXPORT IHaveShortcuts
73{
74public:
82 virtual void SetShortcut (const QByteArray& id, const QKeySequences_t& sequences) = 0;
83
93
94 virtual ~IHaveShortcuts () { }
95};
96
97Q_DECLARE_INTERFACE (IHaveShortcuts, "org.Deviant.LeechCraft.IHaveShortcuts/1.0")
Interface for plugins that support configuring shortcuts.
virtual ~IHaveShortcuts()
virtual void SetShortcut(const QByteArray &id, const QKeySequences_t &sequences)=0
Sets shortcut's list of key sequences if it has been changed.
virtual QMap< QByteArray, LC::ActionInfo > GetActionInfo() const =0
Returns information about all the shortcuts.
Definition anutil.h:15
QList< QKeySequence > QKeySequences_t
Definition constants.h:15
Describes an action exposed in shortcut manager.
std::variant< Util::Void, QByteArray, QIcon > Icon_t
QKeySequences_t AdditionalSeqs_
The additional key sequences for this action.
QKeySequence Seq_
The primary key sequence for this action.
Icon_t Icon_
Icon of the action, either a QIcon itself or its ActionIcon.
QString Text_
User-visible name of the action.
QKeySequences_t GetAllShortcuts() const
A proper void type, akin to unit (or ()) type in functional languages.
Definition void.h:21
Q_DECLARE_METATYPE(QVariantList *)