LeechCraft 0.6.70-19424-g027e980fd1
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 <QObject>
13#include <QString>
14#include <QKeySequence>
15#include <QIcon>
16#include <QMetaType>
17#include <util/sll/void.h>
18
19class QAction;
20
22
23namespace LC
24{
32 {
34 QString Text_ {};
35
37 QKeySequence Seq_ {};
38
39 using Icon_t = std::variant<Util::Void, QByteArray, QIcon>;
40
43
46
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
62
63
71class Q_DECL_EXPORT IHaveShortcuts
72{
73public:
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
96Q_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.
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 *)