summaryrefslogtreecommitdiffstats
path: root/src/app/UserAction/kractionbase.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/app/UserAction/kractionbase.h')
-rw-r--r--src/app/UserAction/kractionbase.h97
1 files changed, 97 insertions, 0 deletions
diff --git a/src/app/UserAction/kractionbase.h b/src/app/UserAction/kractionbase.h
new file mode 100644
index 0000000..6691a06
--- /dev/null
+++ b/src/app/UserAction/kractionbase.h
@@ -0,0 +1,97 @@
+//
+// C++ Interface: kractionbase
+//
+// Description:
+//
+//
+// Author: Shie Erlich and Rafi Yanai <>, (C) 2006
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KRACTIONBASE_H
+#define KRACTIONBASE_H
+
+#include <tqstring.h>
+#include "expander.h"
+class KrActionProc;
+
+class KrActionBase
+{
+public:
+ KrActionBase() {}
+ virtual ~KrActionBase();
+
+ /** \brief Specifies the mode for executing the action */
+ enum ExecType {
+ Normal, ///< Run the command freely
+ Terminal, ///< Run the command in new terminal window
+ CollectOutput, ///< Collect output from this command
+ CollectOutputSeparateStderr, ///< Like #CollectOutput, but display stderr output separately
+ RunInTE ///< Run in built-in terminal emulator
+ };
+
+ /** \brief Command which runs this action
+ *
+ * The string of the command may contain placeholders
+ * which are parsed by the #Expander class, unless #doSubstitution
+ * returns false
+ *
+ * The command is run by the shell, which should be bash (see #Expander)
+ *
+ * @see Expander
+ * @see doSubstitution
+ *
+ * @return The command to execute
+ */
+ virtual TQString command() const =0;
+ /** \brief Execution type of the action
+ *
+ * @see #ExecType
+ */
+ virtual ExecType execType() const =0;
+ /** \brief Working directory of the command
+ *
+ * @return The working directory of the command. May be \a null,
+ * in which case the command is executed in current directory
+ */
+ virtual TQString startpath() const =0;
+ /** \brief Username under which the command is run
+ *
+ * @return The username of the command. May be \a null,
+ * in which case the command is executed under the current user
+ */
+ virtual TQString user() const=0;
+ /** \brief Name of the action
+ *
+ * @return The name of the action which will be shown to the user
+ * eg. any string will do
+ */
+ virtual TQString text() const=0;
+ /** \brief Does the command accept URLs as filenames (like KDE apps)?
+ *
+ * @return \a true iff it does
+ */
+ virtual bool acceptURLs() const=0;
+ /** \brief Confirm execution of this action by the user?
+ *
+ * @return \a true iff execution should be confirmed
+ */
+ virtual bool confirmExecution() const=0;
+ /** \brief Can #command contain placeholders?
+ *
+ * @return \a true iff #command should be expanded by #Expander
+ */
+ virtual bool doSubstitution() const=0;
+ /** \brief A factory method for creating KrActionProc
+ *
+ * @return A new instance of KrActionProc
+ */
+ virtual KrActionProc* actionProcFactoryMethod();
+ virtual void handleError(const Error& err);
+
+ void exec();
+
+};
+
+#endif