#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;}