AbstractListener* Loader::listenerInstance() { if (!isLoaded()){ qDebug() << "Bad library." << this->errorString() << this->fileName(); return 0; } else { QObject* instance = this->instance(); AbstractPlugin* plugin = qobject_cast<AbstractPlugin*>(instance); if (instance == 0){ qDebug() << "Instance nil."; return 0; } else { AbstractListener* listener = plugin->listener(); if (listener == 0){ qDebug() << "Listener nil."; return 0; } else { return listener; } } } return 0; }