diff options
Diffstat (limited to 'src/app/UserAction/kractionbase.h')
-rw-r--r-- | src/app/UserAction/kractionbase.h | 97 |
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 |