kateexternaltools.h00001
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 ~KateExternalToolAction();
00087 protected:
00088 virtual bool expandMacro( const QString &str, QStringList &ret );
00089
00090 private slots:
00091 void slotRun();
00092
00093 public:
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 const QString &cmdname=QString::null,
00110 int save=0 );
00111 ~KateExternalTool() {};
00112
00113 QString name;
00114 QString command;
00115 QString icon;
00116 QString tryexec;
00117 QStringList mimetypes;
00118 bool hasexec;
00119 QString acname;
00120 QString cmdname;
00121 int save;
00122
00126 bool valid( const QString &mimetype ) const;
00132 bool checkExec();
00133
00134 private:
00135 QString m_exec;
00136 };
00137
00143 class KateExternalToolsConfigWidget : public Kate::ConfigPage
00144 {
00145 Q_OBJECT
00146 public:
00147 KateExternalToolsConfigWidget( QWidget *parent, const char* name);
00148 virtual ~KateExternalToolsConfigWidget();
00149
00150 virtual void apply();
00151 virtual void reload();
00152 virtual void reset() { reload(); }
00153 virtual void defaults() { reload(); }
00154
00155 private slots:
00156 void slotNew();
00157 void slotEdit();
00158 void slotRemove();
00159 void slotInsertSeparator();
00160
00161 void slotMoveUp();
00162 void slotMoveDown();
00163
00164 void slotSelectionChanged();
00165
00166 private:
00167 QPixmap blankIcon();
00168
00169 QStringList m_removed;
00170
00171 class KListBox *lbTools;
00172 class QPushButton *btnNew, *btnRemove, *btnEdit, *btnMoveUp, *btnMoveDwn;
00173
00174 class KConfig *config;
00175
00176 bool m_changed;
00177 };
00178
00182 class KateExternalToolsCommand : public Kate::Command {
00183 public:
00184 KateExternalToolsCommand ();
00185 virtual ~KateExternalToolsCommand () {};
00186 static KateExternalToolsCommand *self();
00187 void reload();
00188 public:
00189 virtual QStringList cmds ();
00190 virtual bool exec (Kate::View *view, const QString &cmd, QString &msg);
00191 virtual bool help (Kate::View *view, const QString &cmd, QString &msg);
00192 private:
00193 static KateExternalToolsCommand *s_self;
00194 QStringList m_list;
00195 QMap<QString,QString> m_map;
00196 bool m_inited;
00197 };
00198
00202 class KateExternalToolServiceEditor : public KDialogBase
00203 {
00204 Q_OBJECT
00205
00206 public:
00207
00208 KateExternalToolServiceEditor( KateExternalTool *tool=0,
00209 QWidget *parent=0, const char *name=0 );
00210
00211 class QLineEdit *leName, *leExecutable, *leMimetypes,*leCmdLine;
00212 class QTextEdit *teCommand;
00213 class KIconButton *btnIcon;
00214 class QComboBox *cmbSave;
00215
00216 private slots:
00220 void slotOk();
00224 void showMTDlg();
00225
00226 private:
00227 KateExternalTool *tool;
00228 };
00229 #endif //_KATE_EXTERNAL_TOOLS_H_
|