PluginInfo.hh 1.8 KB
Newer Older
Jan Möbius's avatar
Jan Möbius committed
1

Dirk Wilden's avatar
Dirk Wilden committed
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#ifndef PLUGININFO_HH
#define PLUGININFO_HH

#include <Qt>
#include <QString>
#include <QObject>
#include <QStringList>
#include <QList>
#include <QDockWidget>

struct KeyBinding{
  int                   key;
  Qt::KeyboardModifiers modifiers;
  QString               description;
Dirk Wilden's avatar
Dirk Wilden committed
16
  bool                  multiUse;
Dirk Wilden's avatar
Dirk Wilden committed
17
18
};

19
20
21
22
23
24
25
struct SlotInfo{
  QString slotName;
  QString slotDescription;
  QStringList parameters;
  QStringList descriptions;
};

Dirk Wilden's avatar
Dirk Wilden committed
26
/** Type defining a currently loaded Plugin */
Jan Möbius's avatar
Jan Möbius committed
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
class PluginInfo{

  public :

  PluginInfo() {
     plugin = 0;
     name = "";
     description = "";
     version = "";
     path = "";
     rpcName = "";
     rpcFunctions.clear();
     slotInfos.clear();
     keys.clear();
     widget = 0;
  }



  PluginInfo( const PluginInfo& _i) {
     plugin = _i.plugin;
     name = _i.name;
     description = _i.description;
     version = _i.version;
     path = _i.path;
     rpcName = _i.rpcName;
     rpcFunctions = _i.rpcFunctions;
     slotInfos = _i.slotInfos;
     keys = _i.keys;
     widget = _i.widget;
  }
Dirk Wilden's avatar
Dirk Wilden committed
58
59
60
61
62
63
64
65
66
67

  /// Pointer to the loaded plugin (Already casted when loading it)
  QObject*    plugin;

  /// Name of the plugin ( requested from the plugin on load)
  QString     name;

  /// Description of the plugin ( requested from the plugin on load)
  QString     description;

68
69
70
  /// Version of the plugin
  QString     version;

Dirk Wilden's avatar
Dirk Wilden committed
71
72
73
74
75
76
77
78
79
  /// Path to the plugin ( set on load )
  QString     path;

  /// Clean rpc name of the plugin
  QString     rpcName;

  /// List of exported rpc slots
  QStringList rpcFunctions;

80
81
82
  /// This list contains Descriptions about public slots if available
  QList< SlotInfo > slotInfos;

Dirk Wilden's avatar
Dirk Wilden committed
83
84
85
86
87
88
89
90
  /// List of registered keys with description
  QList< KeyBinding > keys;

  /// Pointer to plugins toolbar widget (if available)
  QDockWidget* widget;
};

#endif //PLUGININFO_HH