Skip to content
Snippets Groups Projects
Commit 0a22499a authored by moenck's avatar moenck
Browse files

Fixed getCurrentPluginName()

parent 82647698
Branches
No related tags found
No related merge requests found
Pipeline #12625 failed
......@@ -205,6 +205,7 @@ std::vector<std::string> PluginLoader::searchDirectoriesForPlugins(std::vector<s
PluginLoader::PluginLoader(QObject *parent)
{
m_MetaData = nullptr;
m_PluginLoader = new QPluginLoader(this);
m_PluginListModel = new QStringListModel();
}
......@@ -233,6 +234,7 @@ bool PluginLoader::loadPluginFromFilename(QString const& filename)
retval = m_PluginLoader->load();
QString s = m_PluginLoader->errorString();
std::string ss = s.toStdString();
addPluginnameToLists(getCurrentPluginName(), filename);
if (!m_PluginLoader->isLoaded())
{
......@@ -248,6 +250,14 @@ bool PluginLoader::loadPluginFromFilename(QString const& filename)
return retval;
}
void PluginLoader::addPluginnameToLists(QString mstring, QString filename)
{
if (!m_PluginList.contains(mstring))
m_PluginList.append(mstring);
m_PluginListModel->setStringList(m_PluginList);
m_PluginMap.insert(std::pair<QString, QString>(mstring, filename));
}
bool PluginLoader::loadPluginFromName(QString name) {
QString filename = m_PluginMap.find(name)->second;
return loadPluginFromFilename(filename);
......@@ -266,10 +276,7 @@ int PluginLoader::addToPluginList(QString filename, QString suffix) {
QJsonValue pluginMeda(loader.metaData().value("MetaData"));
QJsonObject metaObj = pluginMeda.toObject();
QString mstring = metaObj.value("name").toString();
if (!m_PluginList.contains(mstring))
m_PluginList.append(mstring);
m_PluginListModel->setStringList(m_PluginList);
m_PluginMap.insert(std::pair<QString, QString>(mstring, filename));
addPluginnameToLists(mstring, filename);
}
else {
return 2;
......@@ -288,12 +295,14 @@ QObject* PluginLoader::getPluginInstance() {
QJsonObject PluginLoader::getPluginMetaData() const
{
return m_MetaData;
if (m_MetaData == nullptr)
qFatal("(getPluginMetaData) No plugin loaded");
return *m_MetaData;
}
void PluginLoader::readMetaDataFromPlugin()
{
m_MetaData = m_PluginLoader->metaData().value("MetaData").toObject();
m_MetaData = std::make_shared<QJsonObject>(m_PluginLoader->metaData().value("MetaData").toObject());
}
bool PluginLoader::getIsPluginLoaded() {
......@@ -301,7 +310,9 @@ bool PluginLoader::getIsPluginLoaded() {
}
QString PluginLoader::getCurrentPluginName() {
return m_currentPluginName;
if (m_MetaData == nullptr)
return "Error name";
return m_MetaData->value("name").toString();
}
const std::map<QString, QString> &PluginLoader::getPluginMap() const
{
......
......@@ -68,6 +68,8 @@ public:
private:
void addPluginnameToLists(QString name, QString filename);
//a map containing the mapping "plugin name -> filename"
std::map<QString, QString> m_PluginMap;
......@@ -80,7 +82,7 @@ private:
// The QT object to actually load the plugins
QPluginLoader *m_PluginLoader;
QJsonObject m_MetaData;
std::shared_ptr<QJsonObject> m_MetaData;
//nomen est omen
bool m_isPluginLoaded;
......@@ -88,9 +90,6 @@ private:
// List of all available plugins
QStringList m_PluginList;
//Name of the currently loaded plugin
QString m_currentPluginName;
// Entire ListModel of the metadata (actually containing all metadata, not only name)
QStringListModel* m_PluginListModel;
};
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment