Stellarium  0.16.1
List of all members | Public Slots | Signals | Public Member Functions | Properties
StelScriptMgr Class Reference

Manage scripting in Stellarium. More...

#include <StelScriptMgr.hpp>

+ Inheritance diagram for StelScriptMgr:
+ Collaboration diagram for StelScriptMgr:

Public Slots

QString getHtmlDescription (const QString &s, bool generateDocumentTags=true) const
 Returns a HTML description of the specified script. More...
 
QString getName (const QString &s) const
 Gets a single line name of the script. More...
 
QString getAuthor (const QString &s) const
 Gets the name of the script Author. More...
 
QString getLicense (const QString &s) const
 Gets the licensing terms for the script. More...
 
QString getVersion (const QString &s) const
 Gets the version of the script. More...
 
QString getDescription (const QString &s) const
 Gets a description of the script. More...
 
QString getShortcut (const QString &s) const
 Gets the default shortcut of the script. More...
 
bool runScript (const QString &fileName, const QString &includePath="")
 Run the script located in the given file. More...
 
bool runScriptDirect (const QString &scriptCode, const QString &includePath=QString())
 Runs the script code given. More...
 
bool runPreprocessedScript (const QString &preprocessedScript, const QString &scriptId)
 Runs preprocessed script code which has been generated using runPreprocessedScript(). More...
 
bool prepareScript (QString &script, const QString &fileName, const QString &includePath="")
 Loads a script file and does all preparatory steps except for actually executing the script in the engine. More...
 
void stopScript ()
 Stops any running script. More...
 
void setScriptRate (float r)
 Changes the rate at which the script executes as a multiple of real time. More...
 
double getScriptRate ()
 Get the rate at which the script is running as a multiple of the normal execution rate. More...
 
void debug (const QString &msg)
 cause the emission of the scriptDebug signal. More...
 
void output (const QString &msg)
 cause the emission of the scriptOutput signal. More...
 
void resetOutput (void)
 Reset output file and cause the emission of an (empty) scriptOutput signal. More...
 
void saveOutputAs (const QString &filename)
 Save output file to new file (in same directory as output.txt). More...
 
void pauseScript ()
 Pause a running script. More...
 
void resumeScript ()
 Resume a paused script. More...
 

Signals

void runningScriptIdChanged (const QString &id)
 Emitted when the running script id changes (also on start/stop) More...
 
void scriptRunning ()
 Notification when a script starts running. More...
 
void scriptStopped ()
 Notification when a script has stopped running. More...
 
void scriptDebug (const QString &) const
 Notification of a script event - warnings, current execution line etc. More...
 
void scriptOutput (const QString &) const
 Notification of a script event - output line. More...
 

Public Member Functions

 StelScriptMgr (QObject *parent=Q_NULLPTR)
 
QStringList getScriptList ()
 
bool scriptIsRunning ()
 Find out if a script is running. More...
 
QString runningScriptId ()
 Get the ID (usually filename) of the currently running script. More...
 
bool preprocessScript (const QString &input, QString &output, const QString &scriptDir)
 Preprocess script, esp. More...
 
bool preprocessScript (QFile &input, QString &output, const QString &scriptDir)
 
void addModules ()
 Add all the StelModules into the script engine. More...
 

Properties

QString runningScriptId
 

Detailed Description

Manage scripting in Stellarium.

Definition at line 38 of file StelScriptMgr.hpp.

Member Function Documentation

void StelScriptMgr::addModules ( )

Add all the StelModules into the script engine.

void StelScriptMgr::debug ( const QString &  msg)
slot

cause the emission of the scriptDebug signal.

This is so that functions in StelMainScriptAPI can explicitly send information to the ScriptConsole

QString StelScriptMgr::getAuthor ( const QString &  s) const
slot

Gets the name of the script Author.

Parameters
sthe file name of the script whose name is to be returned.
Returns
text following a comment with Author: at the start. If no such comment is found, "" is returned. If the file is not found or cannot be opened for some reason, an Empty string will be returned.
QString StelScriptMgr::getDescription ( const QString &  s) const
slot

Gets a description of the script.

Parameters
sthe file name of the script whose name is to be returned.
Returns
text following a comment with Description: at the start. The description is considered to be over when a line with no comment is found. If no such comment is found, QString("") is returned. If the file is not found or cannot be opened for some reason, an Empty string will be returned.
QString StelScriptMgr::getHtmlDescription ( const QString &  s,
bool  generateDocumentTags = true 
) const
slot

Returns a HTML description of the specified script.

Includes name, author, description...

Parameters
sthe file name of the script whose HTML description is to be returned.
generateDocumentTagsif true, the main wrapping document tags (<html><body>...</body></html>) are also generated
QString StelScriptMgr::getLicense ( const QString &  s) const
slot

Gets the licensing terms for the script.

Parameters
sthe file name of the script whose name is to be returned.
Returns
text following a comment with License: at the start. If no such comment is found, "" is returned. If the file is not found or cannot be opened for some reason, an Empty string will be returned.
QString StelScriptMgr::getName ( const QString &  s) const
slot

Gets a single line name of the script.

Parameters
sthe file name of the script whose name is to be returned.
Returns
text following a comment with Name: at the start. If no such comment is found, the file name will be returned. If the file is not found or cannot be opened for some reason, an Empty string will be returned.
double StelScriptMgr::getScriptRate ( )
slot

Get the rate at which the script is running as a multiple of the normal execution rate.

QString StelScriptMgr::getShortcut ( const QString &  s) const
slot

Gets the default shortcut of the script.

Parameters
sthe file name of the script whose name is to be returned.
Returns
text following a comment with Shortcut: at the start. If no such comment is found, QString("") is returned. If the file is not found or cannot be opened for some reason, an Empty string will be returned.
QString StelScriptMgr::getVersion ( const QString &  s) const
slot

Gets the version of the script.

Parameters
sthe file name of the script whose name is to be returned.
Returns
text following a comment with Version: at the start. If no such comment is found, "" is returned. If the file is not found or cannot be opened for some reason, an Empty string will be returned.
void StelScriptMgr::output ( const QString &  msg)
slot

cause the emission of the scriptOutput signal.

This is so that functions in StelMainScriptAPI can explicitly send information to the ScriptConsole

void StelScriptMgr::pauseScript ( )
slot

Pause a running script.

bool StelScriptMgr::prepareScript ( QString &  script,
const QString &  fileName,
const QString &  includePath = "" 
)
slot

Loads a script file and does all preparatory steps except for actually executing the script in the engine.

Use runPreprocessedScript to execute the script. It should be safe to call this method from another thread.

Parameters
scriptreturns the preprocessed script text
fileNamethe location of the file containing the script.
includePaththe directory to use when searching for include files in the SSC preprocessor. Usually this will be the same as the script file itself, but if you're running a generated script from a temp directory, but want to include a file from elsewhere, it can be usetul to set it to something else (e.g. in ScriptConsole).
Returns
false if the named script could not be prepared, true otherwise
bool StelScriptMgr::preprocessScript ( const QString &  input,
QString &  output,
const QString &  scriptDir 
)

Preprocess script, esp.

process include instructions. if the command line option –verbose has been given, this dumps the preprocessed script with line numbers attached to log. This helps to understand the line number given by the usual error message.

void StelScriptMgr::resetOutput ( void  )
slot

Reset output file and cause the emission of an (empty) scriptOutput signal.

void StelScriptMgr::resumeScript ( )
slot

Resume a paused script.

QString StelScriptMgr::runningScriptId ( )

Get the ID (usually filename) of the currently running script.

Returns
Empty string if no script is running, else the ID of the script which is running.
void StelScriptMgr::runningScriptIdChanged ( const QString &  id)
signal

Emitted when the running script id changes (also on start/stop)

bool StelScriptMgr::runPreprocessedScript ( const QString &  preprocessedScript,
const QString &  scriptId 
)
slot

Runs preprocessed script code which has been generated using runPreprocessedScript().

In general, you do not want to use this method, use runScript() or runScriptDirect() instead.

Note
This is a blocking call! The event queue is held up by calls of QCoreApplication::processEvents().
Parameters
preprocessedScriptthe string containing the preprocessed script.
scriptIdThe name of the script. Usually should correspond to the file name.
Returns
false if the given script code could not be run, true otherwise
bool StelScriptMgr::runScript ( const QString &  fileName,
const QString &  includePath = "" 
)
slot

Run the script located in the given file.

In essence, this calls prepareScript and runPreprocessedScript.

Note
This is a blocking call! The event queue is held up by calls of QCoreApplication::processEvents().
Parameters
fileNamethe location of the file containing the script.
includePaththe directory to use when searching for include files in the SSC preprocessor. If empty, this will be the same as the directory where the script file resides. If you're running a generated script from a temp directory, but want to include a file from elsewhere, it can be usetul to set it to something else (e.g. in ScriptConsole).
Returns
false if the named script could not be prepared or run, true otherwise
bool StelScriptMgr::runScriptDirect ( const QString &  scriptCode,
const QString &  includePath = QString() 
)
slot

Runs the script code given.

This can be used for quick script executions, without having to create a temporary file first.

Note
This is a blocking call! The event queue is held up by calls of QCoreApplication::processEvents().
Parameters
scriptCodeThe script to execute
includePathIf a null string (the default), no pre-processing is done. If an empty string, the default script directories are used (script/ in both user and install directory). Otherwise, the given directory is used.
Returns
false if the named script code could not be prepared or run, true otherwise
void StelScriptMgr::saveOutputAs ( const QString &  filename)
slot

Save output file to new file (in same directory as output.txt).

This is required to allow reading with other program on Windows while output.txt is still open.

void StelScriptMgr::scriptDebug ( const QString &  ) const
signal

Notification of a script event - warnings, current execution line etc.

bool StelScriptMgr::scriptIsRunning ( )

Find out if a script is running.

Returns
true if a script is running, else false
void StelScriptMgr::scriptOutput ( const QString &  ) const
signal

Notification of a script event - output line.

void StelScriptMgr::scriptRunning ( )
signal

Notification when a script starts running.

void StelScriptMgr::scriptStopped ( )
signal

Notification when a script has stopped running.

void StelScriptMgr::setScriptRate ( float  r)
slot

Changes the rate at which the script executes as a multiple of real time.

Note that this is not the same as the rate at which simulation time passes because the script running at normal rate might set the simulation time rate to be non-real time.

Parameters
rrate, e.g. 2.0 = script runs at twice the normal rate
void StelScriptMgr::stopScript ( )
slot

Stops any running script.

Returns
false if no script was running, true otherwise.

The documentation for this class was generated from the following file: