QGIS API Documentation  2.18.21-Las Palmas (9fba24a)
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 != mInstance;
26 }
27 
28 bool QgsPythonRunner::run( const QString& command, const QString& messageOnError )
29 {
30  if ( mInstance )
31  {
32  QgsDebugMsg( "Running " + command );
33  return mInstance->runCommand( command, messageOnError );
34  }
35  else
36  {
37  QgsDebugMsg( "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 ( mInstance )
45  {
46  return mInstance->evalCommand( command, result );
47  }
48  else
49  {
50  QgsDebugMsg( "Unable to run Python command: runner not available!" );
51  return false;
52  }
53 }
54 
56 {
57  delete mInstance;
58  mInstance = runner;
59 }
60 
62 // non-static methods
63 
65 {
66 }
67 
69 {
70 
71 }
QgsPythonRunner()
Protected constructor: can be instantiated only from children.
#define QgsDebugMsg(str)
Definition: qgslogger.h:33
Utility class for running python commands from various parts of QGIS.
virtual ~QgsPythonRunner()
virtual bool evalCommand(QString command, QString &result)=0
static QgsPythonRunner * mInstance
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.