LeechCraft 0.6.70-16373-g319c272718
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_ {};
37 QKeySequence Seq_ {};
39 std::variant<Util::Void, QByteArray, QIcon> Icon_ { Util::Void {} };
42
44 {
45 if (AdditionalSeqs_.isEmpty ())
46 return { Seq_ };
47
48 QKeySequences_t result;
49 result.reserve (AdditionalSeqs_.size () + 1);
50 result.push_back (Seq_);
51 result += AdditionalSeqs_;
52 return result;
53 }
54 };
55};
56
58
59
67class Q_DECL_EXPORT IHaveShortcuts
68{
69public:
77 virtual void SetShortcut (const QByteArray& id, const QKeySequences_t& sequences) = 0;
78
88
89 virtual ~IHaveShortcuts () { }
90};
91
92Q_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:17
Definition constants.h:15
Describes an action exposed in shortcut manager.
QKeySequences_t AdditionalSeqs_
The additional key sequences for this action.
QKeySequence Seq_
The primary key sequence for this action.
QString Text_
User-visible name of the action.
QKeySequences_t GetAllShortcuts() const
std::variant< Util::Void, QByteArray, QIcon > Icon_
Icon of the action, either a QIcon itself or its ActionIcon.
A proper void type, akin to unit (or ()) type in functional languages.
Definition void.h:21
Q_DECLARE_METATYPE(QVariantList *)