]> git.lyx.org Git - lyx.git/blobdiff - src/support/Systemcall.h
Use more informative descriptions fro Springer layouts
[lyx.git] / src / support / Systemcall.h
index 2205ebc9b2a780fa62daa39058962a2abe0cd29d..d3d2189d51900d956581f8bbfd7c4021b72c1c9a 100644 (file)
@@ -16,9 +16,6 @@
 #define SYSTEMCALL_H
 
 #include <string>
-#include <QObject>
-
-class QProcess;
 
 namespace lyx {
 namespace support {
@@ -37,57 +34,38 @@ class Systemcall {
 public:
        /// whether to wait for completion
        enum Starttype {
-               Wait, //< wait for completion before returning from startscript()
-               DontWait //< don't wait for completion
+               Wait,     //< wait for completion before returning from startscript()
+               WaitLoop, //< wait, but check occasionally for cancellation
+               DontWait  //< don't wait for completion
        };
 
-       /** Start child process.
-        *  The string "what" contains a commandline with arguments separated
-        *  by spaces.
-        */
-       int startscript(Starttype how, std::string const & what);
-};
-
-
-/**
- * Outputs to the console terminal the line buffered standard output and
- * error of a spawned process when there is a controlling terminal and 
- * stdout/stderr have not been redirected.
- */
-class ConOut : public QObject
-{
-       Q_OBJECT
-public:
-       ConOut(QProcess * proc);
-       ~ConOut();
-
-       /// Should the standard output be displayed?
-       void showout() { showout_ = true; }
+       // enum values chosen hopefully not to conflict with ordinary return values
+       enum ReturnValue {
+               OK = 0,
+               NOSTART = 1001,
+               ERROR = 2001,
+               TIMEOUT = 4001,
+               KILLED = 9001
+       };
 
-       /// Should the standard error be displayed?
-       void showerr() { showerr_ = true; }
 
-private:
-       /// Pointer to the process to monitor.
-       QProcess * proc_;
-       /// Index to the standard output buffer.
-       size_t outindex_;
-       /// Index to the standard error buffer.
-       size_t errindex_;
-       /// Size of buffers.
-       static size_t const bufsize_ = 200;
-       /// Standard output buffer.
-       char outdata_[bufsize_];
-       /// Standard error buffer.
-       char errdata_[bufsize_];
-       /// 
-       bool showout_;
-       /// 
-       bool showerr_;
+       // Kill the process which is running at time being
+       static void killscript();
 
-public Q_SLOTS:
-       void stdOut();
-       void stdErr();
+       /** Start child process.
+        *  The string "what" contains a commandline with arguments separated
+        *  by spaces and encoded in the filesystem encoding. "$$s" will be
+        *  replaced accordingly by commandPrep(). The string "path" contains
+        *  the path to be prepended to the TEXINPUTS environment variable
+        *  encoded in utf-8. Similarly for the string "lpath" that, if not
+        *  empty, specifies an additional directory to be added to TEXINPUTS
+        *  but after "path". Unset "process_events" in case UI should be
+        *  blocked while  processing the external command.
+        */
+       int startscript(Starttype how, std::string const & what,
+                       std::string const & path = empty_string(),
+                       std::string const & lpath = empty_string(),
+                       bool process_events = false);
 };
 
 } // namespace support