LeechCraft  0.6.70-15082-g543737046d
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  * 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 <QtPlugin>
12 #include <QMultiMap>
13 #include <QString>
14 #include <QKeySequence>
15 #include <QIcon>
16 #include <QMetaType>
17 
18 class QAction;
19 
22 
23 namespace LC
24 {
31  struct ActionInfo
32  {
38  QIcon Icon_;
39 
43  {
44  }
45 
52  ActionInfo (const QString& uvt,
53  const QKeySequence& seq,
54  const QIcon& icon)
55  : UserVisibleText_ (uvt)
56  , Icon_ (icon)
57  {
58  Seqs_ << seq;
59  }
60 
67  ActionInfo (const QString& uvt,
68  const QKeySequences_t& seqs,
69  const QIcon& icon)
70  : UserVisibleText_ (uvt)
71  , Seqs_ (seqs)
72  , Icon_ (icon)
73  {
74  }
75  };
76 };
77 
79 
80 
88 class Q_DECL_EXPORT IHaveShortcuts
89 {
90 public:
98  virtual void SetShortcut (const QString& id, const QKeySequences_t& sequences) = 0;
99 
108  virtual QMap<QString, LC::ActionInfo> GetActionInfo () const = 0;
109 
110  virtual ~IHaveShortcuts () { }
111 };
112 
113 Q_DECLARE_INTERFACE (IHaveShortcuts, "org.Deviant.LeechCraft.IHaveShortcuts/1.0")
QList< QKeySequence >
LC::ActionInfo
Describes an action exposed in shortcut manager.
Definition: ihaveshortcuts.h:31
LC::ActionInfo::Seqs_
QKeySequences_t Seqs_
List of key sequences for this action.
Definition: ihaveshortcuts.h:36
IHaveShortcuts
Interface for plugins that support configuring shortcuts.
Definition: ihaveshortcuts.h:88
Q_DECLARE_METATYPE
Q_DECLARE_METATYPE(QVariantList *)
LC::ActionInfo::UserVisibleText_
QString UserVisibleText_
User-visible name of the action.
Definition: ihaveshortcuts.h:34
LC
Definition: constants.h:14
LC::ActionInfo::ActionInfo
ActionInfo()
Default-constructs an action info.
Definition: ihaveshortcuts.h:42
LC::ActionInfo::ActionInfo
ActionInfo(const QString &uvt, const QKeySequences_t &seqs, const QIcon &icon)
Constructs an action info.
Definition: ihaveshortcuts.h:67
QMap< QString, LC::ActionInfo >
LC::ActionInfo::ActionInfo
ActionInfo(const QString &uvt, const QKeySequence &seq, const QIcon &icon)
Constructs an action info.
Definition: ihaveshortcuts.h:52
LC::ActionInfo::Icon_
QIcon Icon_
Icon of the action.
Definition: ihaveshortcuts.h:38
IHaveShortcuts::~IHaveShortcuts
virtual ~IHaveShortcuts()
Definition: ihaveshortcuts.h:110