kate
kateexternaltools.h
Go to the documentation of this file.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 ~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_