Brief description of class still missing. More...
#include <SciFigsGlobal.h>
Public Member Functions | |
SciFigsGlobal () | |
~SciFigsGlobal () | |
Static Public Member Functions | |
static void | footprint (QPainter &p, double dotpercm, int w, int h) |
static void | initPlugins (QSettings *reg, bool debug) |
static bool | isInitialized () |
static QSettings * | pluginSettings () |
static double | screenResolution () |
Brief description of class still missing.
Full description of class still missing
You must create this object to initialize the library. Application must be created before calling this function.
References QGpCoreTools::endl(), SciFigs::GraphContent::init(), initPlugins(), SciFigs::SciFigsPlugin::loadPlugins(), pluginSettings(), and TRACE.
{ TRACE; // QApplication must exist ASSERT(QApplication::instance()); if( !Application::instance()->hasGui()) { App::stream() << "SciFigs library requires a running X server" << endl; exit(2); } // Estimate the screen resolution QPaintDevice * p=qApp->desktop(); _screenResolution=(double) p->height()/(double) p->heightMM() * 10.0; // Init statics used by GraphContent (coordinate tips, paint engine,...) GraphContent::init(); // Load plugins QSettings * reg=pluginSettings(); reg->beginGroup( "Plugins" ); if( !reg->contains( "pluginList" )) { initPlugins(reg, false); } else { QStringList libs=reg->value( "pluginList" ).toStringList(); if( ! SciFigsPlugin::loadPlugins(libs) ) { initPlugins(reg, false); } } delete reg; }
References SciFigs::GraphContent::clear(), and TRACE.
{ TRACE; GraphContent::clear(); _screenResolution=0.0; }
void SciFigs::SciFigsGlobal::footprint | ( | QPainter & | p, |
double | dotpercm, | ||
int | w, | ||
int | h | ||
) | [static] |
Draw a small footprint (for all produced images). w and h are the width and height of the print area. dotpercm is the resolution of the medium.
References MAX_INT, screenResolution(), and TRACE.
{ TRACE; static const QString line1("SciFigs library"); static const QString line2("by geopsy.org"); QRect r; int spacing=(int) round(dotpercm*0.1); p.save(); p.setOpacity(0.25); p.setRenderHints(QPainter::TextAntialiasing); QPainterPath tp; double factor=dotpercm/SciFigsGlobal::screenResolution(); QFont f("Comic Sans MS", (int)round(factor*10), QFont::Black, true); p.setFont(f); r=p.boundingRect(0, 0, MAX_INT, MAX_INT, 0, line1); tp.addText(QPoint(w-r.width()-spacing, h-r.height()+spacing) , f, line1); r=p.boundingRect(0, 0, MAX_INT, MAX_INT, 0, line2); tp.addText(QPoint(w-r.width()-spacing, h-spacing) , f, line2); p.setPen(Qt::gray); p.setBrush(Qt::white); p.drawPath(tp); p.restore(); }
void SciFigs::SciFigsGlobal::initPlugins | ( | QSettings * | reg, |
bool | debug | ||
) | [static] |
After first installion, make sure that the plugin path point to lib install directory so that all plugins provided with installation package are directly available.
Add current directory and install lib directory to search paths and search for plugins
References QGpCoreTools::PackageInfo::dllDir(), SciFigs::SciFigsPlugin::getPluginList(), SciFigs::SciFigsPlugin::loadPlugins(), and TRACE.
Referenced by SciFigsGlobal().
{ TRACE; QStringList paths; #ifdef Q_WS_MAC QString dll="/Library/Geopsy.org/plugins"; #else const PackageInfo * info=PackageInfo::package("SciFigs"); ASSERT (info); QString dll=info->dllDir(); #endif QDir d(dll); if(d.exists()) paths << dll; reg->setValue( "Paths", paths); QStringList libs=File::getLibList(paths); bool ok; QStringList plugins=SciFigsPlugin::getPluginList(libs, ok, debug); reg->setValue( "pluginList", plugins); SciFigsPlugin::loadPlugins(plugins, debug); }
static bool SciFigs::SciFigsGlobal::isInitialized | ( | ) | [inline, static] |
{return _screenResolution > 0.0;}
QSettings * SciFigs::SciFigsGlobal::pluginSettings | ( | ) | [static] |
Open a QSettings that point to SciFigs general settings.
Do not forget to delete the object when no longer necessary
References TRACE.
Referenced by SciFigs::SciFigsPreferences::savePluginList(), SciFigsGlobal(), and SciFigs::SciFigsPreferences::SciFigsPreferences().
{ TRACE; QSettings * reg; #ifdef Q_WS_MAC reg=new QSettings(qApp->organizationDomain(), "SciFigs"); #else reg=new QSettings(qApp->organizationName(), "SciFigs"); #endif reg->beginGroup("Plugins"); reg->beginGroup(SCIFIGS_VERSION_TYPE); return reg; }
SciFigs::SciFigsGlobal::screenResolution | ( | ) | [inline, static] |
Screen resolution, in dot per cm (set by Qtb::SciFigsInit())
Referenced by SciFigs::TextEdit::adjustSize(), SciFigs::AxisWindow::alignHScales(), SciFigs::AxisWindow::alignVScales(), SciFigs::GraphicSheet::autoResizeContent(), SciFigs::GraphicSheet::currentOrigin(), footprint(), SciFigs::GraphicObject::image(), SciFigs::GraphicSheet::image(), SciFigs::GraphicObject::mouseMoveEvent(), SciFigs::GraphicSheet::moveObject(), SciFigs::LayerPainterRequest::paint(), SciFigs::LegendItemWidget::paintEvent(), SciFigs::GraphicObject::paintEvent(), SciFigs::SlopeEstimator::paintText(), SciFigs::LayerPainterRequest::paintText(), SciFigs::NameLineLayer::paintText(), SciFigs::GraphicSheet::print(), SciFigs::GraphicObject::printSvg(), SciFigs::Brush::qbrush(), SciFigs::GraphicSheet::resizeObject(), SciFigs::AxisWindow::setMapScale(), SciFigs::GraphicSheet::showObject(), SciFigs::LegendItemDisplay::sizeHint(), SciFigs::AxisWindow::updateExternalGeometry(), SciFigs::AxisWindow::updateInternalGeometry(), SciFigs::GraphicObject::updateMask(), and SciFigs::GraphicSheet::updatePageLimits().
{return _screenResolution;}