Omnidome
Fulldome Mapping Software Toolkit
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | Static Private Member Functions | Private Attributes | Friends
omni::PluginInfo Class Reference

Holds meta information about a plugins Only plugin loader can construct a plugin info. More...

#include <PluginInfo.h>

Public Member Functions

QString const & name () const
 Return name of plugin. More...
 
QString const & type () const
 Return type of plugin (e.g. input, mapping or canvas) More...
 
QString const & author () const
 Return author of plugin. More...
 
QString const & url () const
 Return url of plugin. More...
 
QString const & description () const
 Return description of plugin. More...
 
QString versionString () const
 Return version string (MAJOR.MINOR.REV.BUILD) of plugin. More...
 
int majorVersion () const
 Return major version. More...
 
int minorVersion () const
 Return minor version. More...
 
int revision () const
 Return revision number. More...
 
int build () const
 Return build number. More...
 
QString const & className () const
 Return class name from meta object. More...
 
QString const & file () const
 Return file name of plugin. More...
 
QObject const * handle () const
 Return handle (pointer to underlying QObject) More...
 

Static Private Member Functions

static PluginInfo make (QString const &_file, QObject const *)
 Make a PluginInfo from file and QObject. More...
 

Private Attributes

QString name_
 
QString type_
 
QString author_
 
QString url_
 
QString description_
 
QString className_
 
int majorVersion_ = 0
 
int minorVersion_ = 0
 
int revision_ = 0
 
int build_ = 0
 
QString file_
 

Friends

class PluginLoader
 Only plugin loader can construct a plugin info. More...
 

Detailed Description

Holds meta information about a plugins Only plugin loader can construct a plugin info.

Member Function Documentation

QString const & omni::PluginInfo::author ( ) const

Return author of plugin.

36  {
37  return author_;
38  }
QString author_
Definition: PluginInfo.h:84
int omni::PluginInfo::build ( ) const

Return build number.

72  {
73  return build_;
74  }
int build_
Definition: PluginInfo.h:91
QString const & omni::PluginInfo::className ( ) const

Return class name from meta object.

48  {
49  return className_;
50  }
QString className_
Definition: PluginInfo.h:87
QString const & omni::PluginInfo::description ( ) const

Return description of plugin.

44  {
45  return description_;
46  }
QString description_
Definition: PluginInfo.h:86
QString const & omni::PluginInfo::file ( ) const

Return file name of plugin.

76  {
77  return file_;
78  }
QString file_
Definition: PluginInfo.h:92
QObject const* omni::PluginInfo::handle ( ) const

Return handle (pointer to underlying QObject)

int omni::PluginInfo::majorVersion ( ) const

Return major version.

60  {
61  return majorVersion_;
62  }
int majorVersion_
Definition: PluginInfo.h:88
PluginInfo omni::PluginInfo::make ( QString const &  _file,
QObject const *  _obj 
)
staticprivate

Make a PluginInfo from file and QObject.

80  {
81  PluginInfo _info;
82  _info.file_ = _file;
83  _info.className_ = _obj->metaObject()->className();
84 
85  auto _getClassInfo = [&](QString const& _name) {
86  auto const* _metaObject = _obj->metaObject();
87  for (int i = 0; i < _metaObject->classInfoCount(); ++i) {
88  auto _metaInfo = _metaObject->classInfo(i);
89  if (QString(_metaInfo.name()) == _name) {
90  return QString(_metaInfo.value());
91  }
92  }
93  return QString();
94  };
95 
96  _info.name_ = _getClassInfo("name");
97  if (_info.name_.isEmpty()) {
98  QFileInfo fileInfo(_info.file_);
99  _info.name_ = fileInfo.fileName();
100  }
101 
102  _info.type_ = _getClassInfo("type");
103  _info.author_ = _getClassInfo("author");
104  _info.url_ = _getClassInfo("url");
105  _info.description_ = _getClassInfo("description");
106  QString _versionString = _getClassInfo("version");
107  QStringList _tokens = _versionString.split( ".", QString::SkipEmptyParts);
108  if (_tokens.size() >= 1) _info.majorVersion_ = _tokens[0].toInt();
109  if (_tokens.size() >= 2) _info.minorVersion_ = _tokens[1].toInt();
110  if (_tokens.size() >= 3) _info.revision_ = _tokens[2].toInt();
111  if (_tokens.size() >= 4) _info.build_ = _tokens[3].toInt();
112  return _info;
113  }
int omni::PluginInfo::minorVersion ( ) const

Return minor version.

64  {
65  return minorVersion_;
66  }
int minorVersion_
Definition: PluginInfo.h:89
QString const & omni::PluginInfo::name ( ) const

Return name of plugin.

28  {
29  return name_;
30  }
QString name_
Definition: PluginInfo.h:82
int omni::PluginInfo::revision ( ) const

Return revision number.

68  {
69  return revision_;
70  }
int revision_
Definition: PluginInfo.h:90
QString const & omni::PluginInfo::type ( ) const

Return type of plugin (e.g. input, mapping or canvas)

32  {
33  return type_;
34  }
QString type_
Definition: PluginInfo.h:83
QString const & omni::PluginInfo::url ( ) const

Return url of plugin.

40  {
41  return url_;
42  }
QString url_
Definition: PluginInfo.h:85
QString omni::PluginInfo::versionString ( ) const

Return version string (MAJOR.MINOR.REV.BUILD) of plugin.

52  {
53  return QString("%1.%2.%3.%4")
54  .arg(majorVersion())
55  .arg(minorVersion())
56  .arg(revision())
57  .arg(build());
58  }
int minorVersion() const
Return minor version.
Definition: PluginInfo.cpp:64
int majorVersion() const
Return major version.
Definition: PluginInfo.cpp:60
int revision() const
Return revision number.
Definition: PluginInfo.cpp:68
int build() const
Return build number.
Definition: PluginInfo.cpp:72

Friends And Related Function Documentation

friend class PluginLoader
friend

Only plugin loader can construct a plugin info.

Field Documentation

QString omni::PluginInfo::author_
private
int omni::PluginInfo::build_ = 0
private
QString omni::PluginInfo::className_
private
QString omni::PluginInfo::description_
private
QString omni::PluginInfo::file_
private
int omni::PluginInfo::majorVersion_ = 0
private
int omni::PluginInfo::minorVersion_ = 0
private
QString omni::PluginInfo::name_
private
int omni::PluginInfo::revision_ = 0
private
QString omni::PluginInfo::type_
private
QString omni::PluginInfo::url_
private

The documentation for this class was generated from the following files: