00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
#ifndef _KATE_EXTERNAL_TOOLS_H_
00025
#define _KATE_EXTERNAL_TOOLS_H_
00026
00027
#include <kaction.h>
00028
#include <kdialogbase.h>
00029
#include <kate/document.h>
00030
#include <kmacroexpander.h>
00031
#include <qpixmap.h>
00032
00054 class KateExternalToolsMenuAction :
public KActionMenu
00055 {
00056
friend class KateExternalToolAction;
00057
00058 Q_OBJECT
00059
public:
00060
KateExternalToolsMenuAction(
const QString &text=QString::null, QObject *parent=0,
const char* name=0,
class KateMainWindow *mw=0 );
00061 ~
KateExternalToolsMenuAction() {};
00062
00066
void reload();
00067
00068
class KActionCollection *actionCollection() {
return m_actionCollection; }
00069
00070
private slots:
00071
void slotDocumentChanged();
00072
00073
private:
00074
class KActionCollection *m_actionCollection;
00075
class KateMainWindow *mainwindow;
00076 };
00077
00081 class KateExternalToolAction :
public KAction,
public KWordMacroExpander
00082 {
00083 Q_OBJECT
00084
public:
00085
KateExternalToolAction( QObject *parent,
const char *name,
class KateExternalTool *t );
00086
00087
protected:
00088
virtual bool expandMacro(
const QString &str, QStringList &ret );
00089
00090
private slots:
00091
void slotRun();
00092
00093
private:
00094
class KateExternalTool *tool;
00095 };
00096
00100 class KateExternalTool
00101 {
00102
public:
00103
KateExternalTool(
const QString &
name=QString::null,
00104
const QString &
command=QString::null,
00105
const QString &
icon=QString::null,
00106
const QString &
tryexec=QString::null,
00107
const QStringList &
mimetypes=QStringList(),
00108
const QString &
acname=QString::null );
00109 ~
KateExternalTool() {};
00110
00111 QString
name;
00112 QString
command;
00113 QString
icon;
00114 QString
tryexec;
00115 QStringList mimetypes;
00116 bool hasexec;
00117 QString
acname;
00118
00122
bool valid( QString mimetype )
const;
00128
bool checkExec();
00129
00130
private:
00131 QString m_exec;
00132 };
00133
00139 class KateExternalToolsConfigWidget :
public Kate::ConfigPage
00140 {
00141 Q_OBJECT
00142
public:
00143
KateExternalToolsConfigWidget( QWidget *parent,
const char* name);
00144
virtual ~
KateExternalToolsConfigWidget() {};
00145
00146
virtual void apply();
00147
virtual void reload();
00148
virtual void reset() { reload(); }
00149
virtual void defaults() { reload(); }
00150
00151
private slots:
00152
void slotNew();
00153
void slotEdit();
00154
void slotRemove();
00155
void slotInsertSeparator();
00156
00157
void slotMoveUp();
00158
void slotMoveDown();
00159
00160
void slotSelectionChanged();
00161
00162
private:
00163 QPixmap blankIcon();
00164
00165
class KListBox *lbTools;
00166
class QPushButton *btnNew, *btnRemove, *btnEdit, *btnMoveUp, *btnMoveDwn;
00167 };
00168
00172 class KateExternalToolServiceEditor :
public KDialogBase
00173 {
00174 Q_OBJECT
00175
00176
public:
00177
00178
KateExternalToolServiceEditor(
KateExternalTool *tool=0,
00179 QWidget *parent=0,
const char *name=0 );
00180
00181
class QLineEdit *leName, *leCommand, *leExecutable, *leMimetypes;
00182
class KIconButton *btnIcon;
00183
00184
private slots:
00188
void slotOk();
00189
00190
private:
00191
KateExternalTool *tool;
00192 };
00193
#endif //_KATE_EXTERNAL_TOOLS_H_