PluginInfo.hh 1.97 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
  bool                  slot;
Dirk Wilden's avatar
Dirk Wilden committed
18 19
};

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

Dirk Wilden's avatar
Dirk Wilden committed
27
/** Type defining a currently loaded Plugin */
Jan Möbius's avatar
Jan Möbius committed
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
class PluginInfo{

  public :

  PluginInfo() {
     plugin = 0;
     name = "";
     description = "";
     version = "";
     path = "";
     rpcName = "";
     rpcFunctions.clear();
     slotInfos.clear();
     keys.clear();
     widget = 0;
Dirk Wilden's avatar
Dirk Wilden committed
43
     optionsWidget = 0;
Jan Möbius's avatar
Jan Möbius committed
44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
  }



  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
59
     optionsWidget = _i.optionsWidget;
Jan Möbius's avatar
Jan Möbius committed
60
  }
Dirk Wilden's avatar
Dirk Wilden committed
61 62 63 64 65 66 67 68 69 70

  /// 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;

71 72 73
  /// Version of the plugin
  QString     version;

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

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

  /// List of exported rpc slots
  QStringList rpcFunctions;

83 84 85
  /// This list contains Descriptions about public slots if available
  QList< SlotInfo > slotInfos;

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

  /// Pointer to plugins toolbar widget (if available)
Jan Möbius's avatar
Dennis:  
Jan Möbius committed
90
  QWidget* widget;
Dirk Wilden's avatar
Dirk Wilden committed
91 92 93

  /// Pointer to plugins options widget (if available)
  QWidget* optionsWidget;
Dirk Wilden's avatar
Dirk Wilden committed
94 95 96
};

#endif //PLUGININFO_HH