54void callFunctionQVariant(
const QString& _plugin,
const QString& _functionName ,
const std::vector< QVariant >& _parameters , QGenericReturnArgument _returnArg) {
56 if (_plugin.toLower() ==
"core" ) {
57 std::cerr <<
"callFunctionReturnQVariant : Core not supported! Use Pluginfunctions to trigger core functionality!!!" << std::endl;
61 std::cerr <<
"Calling function: " << _plugin.toStdString() <<
" " << _functionName.toStdString() << std::endl;
83 const std::vector<PluginInfo>& plugins = PluginStorage::plugins();
85 QObject* plugin =
nullptr;
87 for (
auto current : plugins ) {
88 if (current.rpcName == _plugin) {
89 plugin = current.plugin;
94 if ( plugin ==
nullptr ) {
95 std::cerr <<
"Unable to find plugin " << _plugin.toStdString() <<
" in callFunctionQVariant"<< std::endl;
100 QGenericArgument arguments[10];
103 for (
size_t i = 0 ; i < _parameters.size() ; ++i ) {
104 arguments[i] = QGenericArgument(_parameters[i].
typeName(),_parameters[i].data());
108 for (
size_t i = _parameters.size() ; i < 10; ++i ) {
109 arguments[i] = QGenericArgument();
114 QMetaObject::invokeMethod(plugin, _functionName.toStdString().c_str(), Qt::DirectConnection, _returnArg,