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