Plugins.cpp
From Kenneth Noyens
<source lang="cpp">
- include "plugins.h"
- include "ui_plugins.h"
Plugins::Plugins(QWidget *parent)
: QDialog(parent), ui(new Ui::PluginsClass)
{
ui->setupUi(this);
loadPlugins();
connect(ui->listWidget, SIGNAL(itemClicked(QListWidgetItem*)), this, SLOT(itemSelected()));
}
Plugins::~Plugins() {
delete ui;
}
void Plugins::itemSelected(void) {
QList<QListWidgetItem *> items= ui->listWidget->selectedItems(); QString name; if(items.count() != 0) { name = items.at(0)->text(); QD << "item selected" << name; foreach(pluginInterface *plugin, plugins) { if(plugin->getName() == name) { ui->label->setText(QString("Plugin Text: %1").arg(plugin->getText())); } } }
}
void Plugins::loadPlugins(void) {
QDir pluginsDir(QApplication::applicationDirPath()); pluginsDir.cd("plugins");
foreach (QString filename, pluginsDir.entryList(QDir::Files)) { QPluginLoader loader(pluginsDir.absoluteFilePath(filename)); if(pluginInterface *plugin = qobject_cast<pluginInterface *>(loader.instance())) { plugins.append(plugin); ui->listWidget->addItem(plugin->getName()); QD << "plugin loaded: " << filename; } else QD << "failed loading plugin: " << filename; }
}
</source>