File indexing completed on 2024-04-14 04:31:24

0001 /*
0002  * XDebug Debugger Support
0003  *
0004  * Copyright 2006 Vladimir Prus <ghost@cs.msu.su>
0005  * Copyright 2007 Hamish Rodda <rodda@kde.org>
0006  * Copyright 2009 Andreas Pakulat <apaku@gmx.de>
0007  * Copyright 2009 Niko Sams <niko.sams@gmail.com>
0008  *
0009  * This program is free software; you can redistribute it and/or modify
0010  * it under the terms of the GNU General Public License as
0011  * published by the Free Software Foundation; either version 2 of the
0012  * License, or (at your option) any later version.
0013  *
0014  * This program is distributed in the hope that it will be useful,
0015  * but WITHOUT ANY WARRANTY; without even the implied warranty of
0016  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
0017  * GNU General Public License for more details.
0018  *
0019  * You should have received a copy of the GNU General Public
0020  * License along with this program; if not, write to the
0021  * Free Software Foundation, Inc.,
0022  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
0023  */
0024 #ifndef XDEBUGLAUNCHCONFIG
0025 #define XDEBUGLAUNCHCONFIG
0026 
0027 #include <QProcess>
0028 
0029 #include <interfaces/ilauncher.h>
0030 
0031 #include "xdebugplugin.h"
0032 
0033 class KProcess;
0034 namespace KDevelop {
0035 class ILaunchConfiguration;
0036 }
0037 
0038 namespace XDebug {
0039 class XDebugLauncher
0040     : public KDevelop::ILauncher
0041 {
0042 public:
0043     XDebugLauncher(XDebugPlugin* plugin);
0044     QList<KDevelop::LaunchConfigurationPageFactory*> configPages() const override;
0045     QString description() const override;
0046     QString id() override;
0047     QString name() const override;
0048     KJob* start(const QString& launchMode, KDevelop::ILaunchConfiguration* cfg) override;
0049     QStringList supportedModes() const override;
0050 
0051 protected:
0052     XDebugPlugin* m_plugin;
0053 
0054 private:
0055     QList<KDevelop::LaunchConfigurationPageFactory*> m_factoryList;
0056 };
0057 
0058 class XDebugBrowserLauncher
0059     : public XDebugLauncher
0060 {
0061 public:
0062     XDebugBrowserLauncher(XDebugPlugin* plugin);
0063     KJob* start(const QString& launchMode, KDevelop::ILaunchConfiguration* cfg) override;
0064 };
0065 }
0066 
0067 #endif