You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
krusader/krusader/UserAction/kractionbase.h

98 lines
2.5 KiB

//
// 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