diff options
author | Timothy Pearson <kb9vqf@pearsoncomputing.net> | 2013-01-26 13:18:13 -0600 |
---|---|---|
committer | Timothy Pearson <kb9vqf@pearsoncomputing.net> | 2013-01-26 13:18:13 -0600 |
commit | 2fb700f92bb787fab0845a63a541cd5640daa449 (patch) | |
tree | c6f769db55585dd47a9fd415a40ee8b86926f683 /lib/util/tdescriptactionmanager.h | |
parent | fd1d1e1064eb09ddbbd67d3597c39856f5c0bc76 (diff) | |
download | tdevelop-2fb700f92bb787fab0845a63a541cd5640daa449.tar.gz tdevelop-2fb700f92bb787fab0845a63a541cd5640daa449.zip |
Rename a number of libraries and executables to avoid conflicts with KDE4
Diffstat (limited to 'lib/util/tdescriptactionmanager.h')
-rw-r--r-- | lib/util/tdescriptactionmanager.h | 141 |
1 files changed, 141 insertions, 0 deletions
diff --git a/lib/util/tdescriptactionmanager.h b/lib/util/tdescriptactionmanager.h new file mode 100644 index 00000000..c2e43238 --- /dev/null +++ b/lib/util/tdescriptactionmanager.h @@ -0,0 +1,141 @@ +/*************************************************************************** +* Copyright (C) 2004 by ian geiser * +* geiseri@sourcextreme.com * +* * +* This program is free software; you can redistribute it and/or modify * +* it under the terms of the GNU General Public License as published by * +* the Free Software Foundation; either version 2 of the License, or * +* (at your option) any later version. * +* * +* This program is distributed in the hope that it will be useful, * +* but WITHOUT ANY WARRANTY; without even the implied warranty of * +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +* GNU General Public License for more details. * +* * +* You should have received a copy of the GNU General Public License * +* along with this program; if not, write to the * +* Free Software Foundation, Inc., * +* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * +***************************************************************************/ +#ifndef KScriptAction_H +#define KScriptAction_H + +#include <scriptclientinterface.h> +#include <tqobject.h> +#include <tqptrlist.h> + +class KAction; +class KActionCollection; +class KScriptInterface; +class KScriptActionManager; +class TQTimer; + +/** +* Connects a KAction to a script runner. +* +* @author ian geiser geiseri@sourcextreme.com +*/ +class KScriptAction : public TQObject, public KScriptClientInterface { + Q_OBJECT + +public: + + KScriptAction( const TQString &scriptDesktopFile, TQObject *interface, KActionCollection *ac ); + + virtual ~KScriptAction(); + + /** + * KAction for the current script + */ + KAction *action(); + + /** + * Returns the validity of the current script. + */ + bool isValid() const; + +signals: + // Reimplemented from KScript + void error ( const TQString &msg ); + void warning ( const TQString &msg ); + void output ( const TQString &msg ); + void progress ( int percent ); + void done ( KScriptClientInterface::Result result, const TQVariant &returned ); + +signals: + void scriptError ( const TQString &msg ); + void scriptWarning ( const TQString &msg ); + void scriptOutput ( const TQString &msg ); + void scriptProgress ( int percent ); + void scriptDone ( KScriptClientInterface::Result result, const TQVariant &returned ); + +private slots: + void activate(); + void cleanup(); + void scriptFinished(); + +private: + KAction *m_action; + TQString m_scriptName; + TQString m_scriptType; + TQString m_scriptFile; + TQString m_scriptMethod; + KScriptInterface *m_interface; + bool m_isValid; + TQTimer *m_timeout; + uint m_refs; +}; + +/** + * Provides an actionlist of scripts that are currently available. + * Scripts are not actually loaded until they are actually executed. + * @author ian geiser <geiseri@sourcextreme.com> + */ +class KScriptActionManager : public TQObject { +Q_OBJECT + + +public: + /** + * Create a script manager that is attached to an action collection. + */ + KScriptActionManager( TQObject *parent, KActionCollection *ac ); + ~KScriptActionManager(); + + /** + * Return all currently loaded scripts in a direcotry and attaches them + * to a TQObject interface. If the dirs are empty the current applications + * scripts directory is used. The dirs are actual directories to search + * in the $KDEPATH/data/ direcories. So if you add "coolapp/data" then + * the manager will search in $KDEPATH/data/coolapp/data for all desktop + * files that are scripts. + */ + TQPtrList<KAction> scripts( TQObject *interface, const TQStringList &dirs = TQStringList() ) const; + +signals: + /** + * Returns an error message from a script. + */ + void scriptError ( const TQString &msg ); + /** + * Returns a warning message from a script. + */ + void scriptWarning ( const TQString &msg ); + /** + * Returns a standard out message from a script. + */ + void scriptOutput ( const TQString &msg ); + /** + * Returns the percentage complete of an operation in the script. + */ + void scriptProgress ( int percent ); + /** + * Notifies that the script has finished. + */ + void scriptDone( KScriptClientInterface::Result result, const TQVariant &returned ); + +private: + mutable TQPtrList<KScriptAction> m_actions; + KActionCollection *m_ac; +}; +#endif |