#include <DinverCoreObject.h>
Public Member Functions | |
| virtual void | addWindow (QWidget *w) |
| DinverCoreObject () | |
| bool | isModified () const |
| DinverInterface * | plugin () const |
| virtual AbstractProgress * | progress () |
| virtual int | progressMaximum () |
| virtual void | removeWindow (QWidget *w) |
| virtual QStringList | selectedReports (const QString &title) const |
| void | setModified (bool m) |
| bool | setPlugin (QString pluginFile, bool debug) |
| virtual void | setProgressMaximum (int) |
| virtual void | setProgressValue (int) |
| virtual void | showMessage (QString) |
| virtual void | showWindow (QWidget *w) |
| virtual bool | useProgress () |
| virtual | ~DinverCoreObject () |
Static Public Member Functions | |
| static QStringList | defaultPluginPaths () |
| static DinverInterface * | loadPlugin (QString pluginFile, bool debug) |
| static QString | pluginFile (QString tag, bool debug) |
| static void | printPluginList () |
References DinverCore::dinverCore, and TRACE.
{
TRACE;
// Make sure dinverCore is not NULL, if so set this object as the current dinver core
if( !dinverCore) dinverCore=this;
_modified=false;
_plugin=0;
}
| DinverCore::DinverCoreObject::~DinverCoreObject | ( | ) | [virtual] |
| void DinverCore::DinverCoreObject::addWindow | ( | QWidget * | w | ) | [virtual] |
Add a new window in Dinver framework. This function doos nothing by default, re-implement it.
Reimplemented in DinverGui.
References TRACE.
Referenced by TargetListWidget::on_autocorrSet_clicked(), TargetListWidget::on_dispSet_clicked(), TargetListWidget::on_ellCurveSet_clicked(), TargetListWidget::on_ellPeakSet_clicked(), TargetListWidget::on_magnetoTelluricSet_clicked(), TargetListWidget::on_refraVpSet_clicked(), TargetListWidget::on_refraVsSet_clicked(), and SelectPSViewer::result().
{
TRACE;
}
| QStringList DinverCore::DinverCoreObject::defaultPluginPaths | ( | ) | [static] |
References QGpCoreTools::PackageInfo::dllDir(), and TRACE.
Referenced by pluginFile(), and printPluginList().
{
TRACE;
QSettings reg;
reg.beginGroup( "Plugins" );
reg.beginGroup(DINVERCORE_VERSION_TYPE);
QStringList paths;
#ifdef Q_WS_MAC
QString dll="/Library/Geopsy.org/plugins";
#else
const PackageInfo * info=PackageInfo::package("dinver");
ASSERT (info);
QString dll=info->dllDir();
#endif
QDir d(dll);
if(d.exists()) paths << dll;
reg.setValue( "Paths", paths);
return paths;
}
| bool DinverCore::DinverCoreObject::isModified | ( | ) | const [inline] |
Referenced by DinverGui::warnBeforeClose().
{return _modified;}
| DinverInterface * DinverCore::DinverCoreObject::loadPlugin | ( | QString | pluginFile, |
| bool | debug | ||
| ) | [static] |
References QGpCoreTools::endl(), DinverCore::DinverInterface::interfaceVersion(), QGpCoreTools::tr(), and TRACE.
Referenced by pluginFile(), printPluginList(), and setPlugin().
{
TRACE;
if(debug) {
App::stream() << tr("Load library %1").arg(pluginFile) << endl;
}
// test loading
QPluginLoader pluginTest;
pluginTest.setFileName(pluginFile);
QObject * instance=pluginTest.instance();
if(instance) {
if(debug) {
App::stream() << tr(" Library loaded successfully") << endl;
}
DinverInterface * dinverInstance=qobject_cast<DinverInterface *>(instance);
if(dinverInstance) {
if(debug) {
App::stream() << tr(" Dinver plugin interface version=%1")
.arg(dinverInstance->interfaceVersion()) << endl;
}
return dinverInstance;
}
CoreApplication::instance()->deletePlugin(instance);
} else {
if(debug) {
App::stream() << " " << pluginTest.errorString() << endl;
}
}
return 0;
}
| DinverInterface* DinverCore::DinverCoreObject::plugin | ( | ) | const [inline] |
Referenced by DinverGui::addFileActions(), DinverGui::addViewActions(), DinverGui::clear(), modeNeighborhoodOptimization(), DinverGui::pluginSelector(), DinverCore::BatchRun::setParameters(), DinverGui::setPlugin(), DinverCore::BatchRun::setTargets(), DinverGui::warnBeforeClose(), DinverCore::XMLDinver::xml_member(), DinverCore::XMLDinver::xml_polishChild(), DinverCore::XMLDinver::xml_setProperty(), DinverCore::XMLDinver::xml_writeChildren(), DinverCore::XMLDinver::xml_writeProperties(), and DinverGui::~DinverGui().
{return _plugin;}
| QString DinverCore::DinverCoreObject::pluginFile | ( | QString | tag, |
| bool | debug | ||
| ) | [static] |
Return the complete path to plugin with tag
References defaultPluginPaths(), DinverCore::DinverInterface::isValid(), loadPlugin(), DinverCore::DinverInterface::tag(), and TRACE.
Referenced by modeImportanceSampling(), modeNeighborhoodOptimization(), modeSnoopOptimization(), and DinverGui::pluginSelector().
{
TRACE;
QStringList libs;
// Make sure plugins are correctly initialized
QSettings reg;
reg.beginGroup( "Plugins" );
reg.beginGroup(DINVERCORE_VERSION_TYPE);
if( !reg.contains( "pluginList" )) {
libs=File::getLibList(defaultPluginPaths());
} else {
libs=reg.value( "pluginList" ).toStringList();
}
int n=libs.count();
for(int i=0;i < n;i++ ) {
QString libFile=libs.at(i);
DinverInterface * dinverInstance=loadPlugin(libFile, debug);
if(dinverInstance) {
if(dinverInstance->isValid() && dinverInstance->tag()==tag) {
CoreApplication::instance()->deletePlugin(dinverInstance);
return libFile;
}
CoreApplication::instance()->deletePlugin(dinverInstance);
}
}
return QString::null;
}
| void DinverCore::DinverCoreObject::printPluginList | ( | ) | [static] |
References defaultPluginPaths(), DinverCore::DinverInterface::isValid(), loadPlugin(), DinverCore::DinverInterface::tag(), DinverCore::DinverInterface::title(), TRACE, and DinverCore::DinverInterface::version().
Referenced by main().
{
TRACE;
QStringList libs;
// Make sure plugins are correctly initialized
QSettings reg;
reg.beginGroup( "Plugins" );
reg.beginGroup(DINVERCORE_VERSION_TYPE);
if( !reg.contains( "pluginList" )) {
libs=File::getLibList(defaultPluginPaths());
} else {
libs=reg.value( "pluginList" ).toStringList();
}
int n=libs.count();
for(int i=0;i < n;i++ ) {
QString libFile=libs.at(i);
DinverInterface * dinverInstance=loadPlugin(libFile, false);
if(dinverInstance) {
if(dinverInstance->isValid()) {
ApplicationHelp::print(dinverInstance->title() + "-" + dinverInstance->version() + " (tag=" + dinverInstance->tag() + ")", 0);
}
CoreApplication::instance()->deletePlugin(dinverInstance);
}
}
}
| virtual AbstractProgress* DinverCore::DinverCoreObject::progress | ( | ) | [inline, virtual] |
Reimplemented in DinverGui.
{return 0;}
| virtual int DinverCore::DinverCoreObject::progressMaximum | ( | ) | [inline, virtual] |
Reimplemented in DinverGui.
{return 0;}
| void DinverCore::DinverCoreObject::removeWindow | ( | QWidget * | w | ) | [virtual] |
Remove a window in Dinver framework. This function doos nothing by default, re-implement it.
Reimplemented in DinverGui.
References TRACE.
Referenced by DinverDCGui::DCModelViewer::~DCModelViewer(), and PSViewer::~PSViewer().
{
TRACE;
}
| QStringList DinverCore::DinverCoreObject::selectedReports | ( | const QString & | title | ) | const [virtual] |
Returns the reports of selected runs. This function returns nothing by default, re-implement it.
Reimplemented in DinverGui.
Referenced by DCPlugin::autocorrViewer(), DCPlugin::dispersionViewer(), DCPlugin::ellipticityViewer(), DCPlugin::groundProfilesViewer(), DCPlugin::magnetoTelluricViewer(), DCPlugin::refractionVpViewer(), and DCPlugin::refractionVsViewer().
{
return QStringList();
}
| void DinverCore::DinverCoreObject::setModified | ( | bool | m | ) | [inline] |
Referenced by DinverGui::save().
{_modified=m;}
| bool DinverCore::DinverCoreObject::setPlugin | ( | QString | pluginFile, |
| bool | debug | ||
| ) |
References loadPlugin(), and TRACE.
Referenced by modeImportanceSampling(), modeNeighborhoodOptimization(), and modeSnoopOptimization().
{
TRACE;
ASSERT(!_plugin);
_plugin=loadPlugin(pluginFile, debug);
return _plugin;
}
| virtual void DinverCore::DinverCoreObject::setProgressMaximum | ( | int | ) | [inline, virtual] |
Reimplemented in DinverGui.
{}
| virtual void DinverCore::DinverCoreObject::setProgressValue | ( | int | ) | [inline, virtual] |
Reimplemented in DinverGui.
{}
| virtual void DinverCore::DinverCoreObject::showMessage | ( | QString | ) | [inline, virtual] |
| void DinverCore::DinverCoreObject::showWindow | ( | QWidget * | w | ) | [virtual] |
Show a window in Dinver framework. This function doos nothing by default, re-implement it.
Reimplemented in DinverGui.
References TRACE.
Referenced by TargetListWidget::on_autocorrSet_clicked(), TargetListWidget::on_dispSet_clicked(), TargetListWidget::on_ellCurveSet_clicked(), TargetListWidget::on_ellPeakSet_clicked(), TargetListWidget::on_magnetoTelluricSet_clicked(), TargetListWidget::on_refraVpSet_clicked(), TargetListWidget::on_refraVsSet_clicked(), and SelectPSViewer::result().
{
TRACE;
}
| virtual bool DinverCore::DinverCoreObject::useProgress | ( | ) | [inline, virtual] |
Reimplemented in DinverGui.
{return false;}