QGIS API Documentation  3.6.0-Noosa (5873452)
qgspythonrunner.cpp
Go to the documentation of this file.
1 /***************************************************************************
2  qgspythonrunner.cpp
3  ---------------------
4  begin : May 2011
5  copyright : (C) 2011 by Martin Dobias
6  email : wonder dot sk at gmail dot com
7  ***************************************************************************
8  * *
9  * This program is free software; you can redistribute it and/or modify *
10  * it under the terms of the GNU General Public License as published by *
11  * the Free Software Foundation; either version 2 of the License, or *
12  * (at your option) any later version. *
13  * *
14  ***************************************************************************/
15 #include "qgspythonrunner.h"
16 #include "qgslogger.h"
17 
19 
21 // static methods
22 
24 {
25  return nullptr != sInstance;
26 }
27 
28 bool QgsPythonRunner::run( const QString &command, const QString &messageOnError )
29 {
30  if ( sInstance )
31  {
32  QgsDebugMsg( "Running " + command );
33  return sInstance->runCommand( command, messageOnError );
34  }
35  else
36  {
37  QgsDebugMsg( QStringLiteral( "Unable to run Python command: runner not available!" ) );
38  return false;
39  }
40 }
41 
42 bool QgsPythonRunner::eval( const QString &command, QString &result )
43 {
44  if ( sInstance )
45  {
46  return sInstance->evalCommand( command, result );
47  }
48  else
49  {
50  QgsDebugMsg( QStringLiteral( "Unable to run Python command: runner not available!" ) );
51  return false;
52  }
53 }
54 
56 {
57  delete sInstance;
58  sInstance = runner;
59 }
60 
static QgsPythonRunner * sInstance
#define QgsDebugMsg(str)
Definition: qgslogger.h:38
Utility class for running Python commands from various parts of QGIS.
virtual bool evalCommand(QString command, QString &result)=0
static bool eval(const QString &command, QString &result)
Eval a Python statement.
virtual bool runCommand(QString command, QString messageOnError=QString())=0
static bool run(const QString &command, const QString &messageOnError=QString())
Execute a Python statement.
static bool isValid()
Returns true if the runner has an instance (and thus is able to run commands)
static void setInstance(QgsPythonRunner *runner)
Assign an instance of Python runner so that run() can be used.