summaryrefslogtreecommitdiffstats
path: root/languages/php/phpsupportpart.h
diff options
context:
space:
mode:
Diffstat (limited to 'languages/php/phpsupportpart.h')
-rw-r--r--languages/php/phpsupportpart.h133
1 files changed, 133 insertions, 0 deletions
diff --git a/languages/php/phpsupportpart.h b/languages/php/phpsupportpart.h
new file mode 100644
index 00000000..83478283
--- /dev/null
+++ b/languages/php/phpsupportpart.h
@@ -0,0 +1,133 @@
+/*
+ Copyright (C) 2005 by Nicolas Escuder <[email protected]>
+ Copyright (C) 2001 by [email protected]
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public
+ version 2, License as published by the Free Software Foundation.
+
+ This library 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public License
+ along with this library; see the file COPYING.LIB. If not, write to
+ the Free Software Foundation, Inc., 51 Franklin Steet, Fifth Floor,
+ Boston, MA 02110-1301, USA.
+*/
+
+#ifndef _PHPSUPPORTPART_H_
+#define _PHPSUPPORTPART_H_
+
+#include <qdir.h>
+#include <qfile.h>
+#include <qprogressbar.h>
+
+#include <kdialogbase.h>
+#include "kdevlanguagesupport.h"
+#include <kio/job.h>
+#include <kdevgenericfactory.h>
+
+#include <ktexteditor/editinterface.h>
+
+class QStringList;
+class PHPHTMLView;
+class KShellProcess;
+class KProcess;
+class PHPErrorView;
+class PHPConfigData;
+class PHPCodeCompletion;
+class PHPParser;
+class PHPFile;
+
+class PHPSupportPart : public KDevLanguageSupport
+{
+ Q_OBJECT
+
+public:
+ PHPSupportPart( QObject *parent, const char *name, const QStringList & );
+ ~PHPSupportPart();
+
+ PHPErrorView *ErrorView();
+ PHPParser *Parser( ) ;
+
+ QString getIncludePath();
+ QString getExePath();
+
+ void emitFileParsed( PHPFile *file );
+ virtual void customEvent( QCustomEvent* ev );
+
+protected:
+ virtual Features features();
+ virtual KMimeType::List mimeTypes();
+
+private slots:
+ void projectOpened();
+ void projectClosed();
+ void savedFile(const KURL &fileName);
+ void addedFilesToProject(const QStringList &fileList);
+ void removedFilesFromProject(const QStringList &fileList);
+ void slotRun();
+ void slotNewClass();
+ void projectConfigWidget(KDialogBase *dlg);
+ void slotReceivedPHPExeStderr (KProcess* proc, char* buffer, int buflen);
+ void slotReceivedPHPExeStdout (KProcess* proc, char* buffer, int buflen);
+ void slotPHPExeExited (KProcess* proc);
+ void slotWebData(KIO::Job* job,const QByteArray& data);
+ void slotWebResult(KIO::Job* job);
+ void slotWebJobStarted(KIO::Job* job);
+
+ // Internal
+ void initialParse();
+ void slotParseFiles();
+ bool parseProject();
+
+ void slotActivePartChanged(KParts::Part *part);
+ void slotTextChanged();
+ /* the configuration was written, mostly after a config dialog call
+ -> reorder connects
+ */
+ void slotConfigStored();
+
+private:
+ QString getExecuteFile();
+ void executeOnWebserver();
+ void executeInTerminal();
+ bool validateConfig();
+
+ PHPHTMLView* m_htmlView;
+ PHPErrorView* m_phpErrorView;
+ KShellProcess* phpExeProc;
+ QString m_phpExeOutput;
+ PHPConfigData* configData;
+ PHPCodeCompletion* m_codeCompletion;
+ PHPParser* m_parser;
+ KTextEditor::EditInterface *m_editInterface;
+
+ struct JobData
+ {
+ QDir dir;
+ QGuardedPtr<QProgressBar> progressBar;
+ QStringList::Iterator it;
+ QStringList files;
+ QMap< QString, QPair<uint, uint> > pcs;
+ QDataStream stream;
+ QFile file;
+
+ ~JobData()
+ {
+ delete progressBar;
+ }
+ };
+
+ JobData * _jd;
+
+ ClassDom LastClass;
+ FunctionDom LastMethod;
+ VariableDom LastVariable;
+};
+
+typedef KDevGenericFactory<PHPSupportPart> PHPSupportFactory;
+
+#endif