[prev in list] [next in list] [prev in thread] [next in thread]
List: quanta-devel
Subject: [quanta-devel] KXSLDbg plugin for Quanta
From: Keith Isdale <keith () kdewebdev ! org>
Date: 2008-04-09 0:35:38
Message-ID: 200804091035.46322.keith () kdewebdev ! org
[Download RAW message or body]
[Attachment #2 (multipart/signed)]
[Attachment #4 (multipart/mixed)]
Hi,
I have done a first pass of a KXSLDbg plugin for Quanta as shown by the
attached patch. I do not intend to submit the patch it as it and will have
another go at writing this plugin this in the comming weeks. This patch
causes KXSLDbg* sources to built into KDevelop plugin and does not make use
of :
* the standard KDevelop controlled document view
* the default Output view widget
* the KDevelop style configure system
For this change to work I want to build libxsldbg as a static library as I
would not wish to build the same libxsldbg sources three times :ie
* for the xsldhg application
* for the KXSLDbg application
* for the KDevelop plugin
Help on what changes are required to build kxsldbg/kxsldbgpart/libxsldbg as a
not installed static library and still have xsldbg and kxsldbg link
successfully would be appreciated. I tried the STATIC keyword when declaring
the how to build libxsldbg but could not get linking to complete.
Regards,
Keith
["patch.diff" (text/x-diff)]
Index: plugins/CMakeLists.txt
===================================================================
--- plugins/CMakeLists.txt (revision 794937)
+++ plugins/CMakeLists.txt (working copy)
@@ -8,4 +8,5 @@
add_subdirectory( preview )
add_subdirectory( usertoolbars )
add_subdirectory( upload )
+add_subdirectory( kxsldbg )
Property changes on: plugins/kxsldbg
___________________________________________________________________
Name: svn:ignore
+ *.moc
moc_*
*_automoc*
ui_*
Makefile
Makefile.in
Index: plugins/kxsldbg/kdevkxsldbg.desktop
===================================================================
--- plugins/kxsldbg/kdevkxsldbg.desktop (revision 0)
+++ plugins/kxsldbg/kdevkxsldbg.desktop (revision 0)
@@ -0,0 +1,36 @@
+[Desktop Entry]
+Encoding=UTF-8
+Type=Service
+Name=KDevKXSLDbg
+Name[x-test]=xxKDevKXSLDbgxx
+GenericName=KXSLDbg Plugin
+GenericName[fr]=
+GenericName[ga]=
+GenericName[pt]=
+GenericName[pt_BR]=
+GenericName[tr]=
+GenericName[uk]=
+GenericName[zh_TW]=
+GenericName[x-test]=xxKXSLDbg Pluginxx
+Comment=Debug XSLT scripts using KXSLDbg
+Comment[fr]=
+Comment[ga]=
+Comment[pt]=
+Comment[pt_BR]=
+Comment[tr]=
+Comment[uk]=
+Comment[x-test]=xxDebug XSLT scripts using KXSLDbgxx
+Comment[zh_TW]=
+Icon=xsldbg-source
+X-KDE-PluginInfo-Name=KDevKXSLDbg
+X-KDevelop-Plugin-Version=1
+X-KDevelop-Plugin-Homepage=http://kdewebdev.org
+X-KDevelop-Plugin-BugsEmailAddress=keith@kdewebdev.org
+X-KDevelop-Plugin-Copyright=(C) by Keith Isdale
+X-KDevelop-Plugin-License=GPL
+X-KDE-Library=libkdevkxsldbg
+X-KDevelop-Version=4
+X-KDevelop-Category=Global
+X-KDevelop-Properties=Quanta-KXSLDbg
+X-KDevelop-Args=
+X-KDE-ServiceTypes=KDevelop/Plugin
Index: plugins/kxsldbg/kdevkxsldbgconfigimpl.cpp
===================================================================
--- plugins/kxsldbg/kdevkxsldbgconfigimpl.cpp (revision 0)
+++ plugins/kxsldbg/kdevkxsldbgconfigimpl.cpp (revision 0)
@@ -0,0 +1,38 @@
+/**
+ *
+ * This file is part of the kxsldbg package
+ * Copyright (c) 2008 Keith Isdale <keith@kdewebdev.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License version 2 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 Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ **/
+
+#include "kdevkxsldbgconfigimpl.h"
+#include <kgenericfactory.h>
+
+K_PLUGIN_FACTORY(KDevKXsldbgConfigFactory, registerPlugin<KDevKXsldbgConfigImpl>();)
+K_EXPORT_PLUGIN(KDevKXsldbgConfigFactory("kcm_kdev_kxsldbg"))
+
+KDevKXsldbgConfigImpl::KDevKXsldbgConfigImpl(QWidget *parent, const QVariantList \
&args) + : KCModule( KDevKXsldbgConfigFactory::componentData(), parent, args )
+{
+ setupUi(this);
+ load();
+}
+
+KDevKXsldbgConfigImpl::~KDevKXsldbgConfigImpl()
+{
+}
+
+#include "kdevkxsldbgconfigimpl.moc"
Index: plugins/kxsldbg/kdevkxsldbgplugin.cpp
===================================================================
--- plugins/kxsldbg/kdevkxsldbgplugin.cpp (revision 0)
+++ plugins/kxsldbg/kdevkxsldbgplugin.cpp (revision 0)
@@ -0,0 +1,905 @@
+/**
+ *
+ * This file is part of the kxsldbg package
+ * Copyright (c) 2008 Keith Isdale <keith@kdewebdev.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License version 2 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 Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ **/
+
+#include <icore.h>
+#include <idocumentcontroller.h>
+#include <iuicontroller.h>
+#include "kdevkxsldbgplugin.h"
+#include <klibloader.h>
+#include <kparts/mainwindow.h>
+#include <kmessagebox.h>
+#include <kactionmenu.h>
+#include <kpluginfactory.h>
+#include <kpluginloader.h>
+#include <kapplication.h>
+#include <kaction.h>
+#include <kactioncollection.h>
+#include <kaboutdata.h>
+#include <kmainwindow.h>
+#include <kxmlguiwindow.h>
+
+#include <libxsldbg/files.h>
+#include <libxsldbg/xsldbg.h>
+
+#include <kcomponentdata.h>
+#include <kaction.h>
+#include <kstandardaction.h>
+#include <kfiledialog.h>
+#include <kparts/genericfactory.h>
+#include <ktexteditor/markinterface.h>
+#include <ktexteditor/editor.h>
+
+#include <QFile>
+#include <QTextStream>
+
+//#include "../kxsldbg.h"
+#include <kcmdlineargs.h>
+#include <kiconloader.h>
+#include <QMessageBox>
+#include <klocale.h>
+#include <kdeversion.h>
+#include <kinputdialog.h>
+
+// Qxsldbg specific includes
+#include "qxsldbgdoc.h"
+#include <QVariant>
+#include <QStatusBar>
+#include <QSplitter>
+
+#include <QLayout>
+#include <QToolTip>
+#include <QAction>
+#include <QMenuBar>
+#include <QToolBar>
+#include <QImage>
+#include <QPixmap>
+#include <QTextBrowser>
+#include <QLineEdit>
+#include <QPushButton>
+#include <QInputDialog>
+#include <QObject>
+#include <QStackedWidget>
+#include "xsldbgoutputview.h"
+#include "xsldbgconfigimpl.h"
+#include <kdebug.h>
+#include <kvbox.h>
+#include <kactioncollection.h>
+
+#include <QPushButton>
+K_PLUGIN_FACTORY(KDevKXSLDbgFactory, registerPlugin<KDevKXSLDbgPlugin>(); )
+K_EXPORT_PLUGIN(KDevKXSLDbgFactory("kdevkxsldbg"))
+
+class KDevKXSLDbgPlugin;
+
+
+class KDevKXSLDbgViewFactory : public KDevelop::IToolViewFactory
+{
+ public:
+ KDevKXSLDbgViewFactory(KDevKXSLDbgPlugin *thePart)
+ : KDevelop::IToolViewFactory(), myplugin(thePart)
+ {
+
+ }
+ /**
+ Return the main widget for our tool
+ */
+ QWidget *create(QWidget * parent = 0 );
+
+ /**
+ Return a hint as to where to put our tool
+ */
+ Qt::DockWidgetArea defaultPosition(const QString &areaName);
+
+ KDevKXSLDbgPlugin * myplugin;
+};
+
+
+QWidget* KDevKXSLDbgViewFactory::create(QWidget * parent)
+{
+ QWidget *w;
+
+ if (myplugin)
+ w = myplugin->topWidget(parent);
+ else
+ w = new QPushButton("Hello", parent);
+ return w;
+}
+
+Qt::DockWidgetArea KDevKXSLDbgViewFactory::defaultPosition(const QString &areaName)
+{
+ Q_UNUSED(areaName);
+ return Qt::TopDockWidgetArea;
+}
+
+
+ KDevKXSLDbgPlugin::KDevKXSLDbgPlugin(QObject *parent, const QVariantList &args)
+: KDevelop::IPlugin(KDevKXSLDbgFactory::componentData(),parent)
+{
+ Q_UNUSED(args)
+ setXMLFile( "kdevkxsldbg.rc");
+ m_widgetFactory = new KDevKXSLDbgViewFactory(this);
+ currentLineNo = 0;
+ currentColumnNo = 0;
+ inspector = 0L;
+ debugger = 0L;
+ configWidget = 0L;
+ currentDoc = 0L;
+
+ frame = new KVBox(0);
+ frame->setMinimumHeight(400); //## TODO don't use a magic number
+ KHBox *h = new KHBox(frame);
+ newXPath = new QLineEdit(h);
+ xPathBtn = new QPushButton(i18n("Goto XPath"), h);
+/* Disable searching as searching documentation is not ready
+ h = new QHBox(frame);
+ newSearch = new QLineEdit(h);
+ searchBtn = new QPushButton(i18n("Search"), h);
+*/
+ h = new KHBox(frame);
+ newEvaluate = new QLineEdit(h);
+ evaluateBtn = new QPushButton(i18n("Evaluate"), h);
+
+ QSplitter *splitter = new QSplitter(Qt::Vertical, frame);
+ mainView = new QStackedWidget(splitter);
+ mainView->setMinimumHeight(300); //## TODO don't use a magic number
+ outputview = new XsldbgOutputView(splitter);
+
+ setupActions();
+ core()->uiController()->addToolView("KXSLDbg", m_widgetFactory );
+
+/* We must have a valid debugger and inspector */
+ createInspector();
+ if (checkDebugger()){
+ configWidget = new XsldbgConfigImpl( debugger, 0L );
+ Q_CHECK_PTR( configWidget );
+ debugger->start();
+ }else{
+ openUrl(KUrl());
+ }
+}
+
+KDevKXSLDbgPlugin::~KDevKXSLDbgPlugin()
+{
+ delete m_widgetFactory;
+ docDictionary.clear();
+}
+
+QWidget *KDevKXSLDbgPlugin::topWidget(QWidget *parent)
+{
+ if (frame)
+ frame->setParent(parent);
+ return frame;
+}
+
+void KDevKXSLDbgPlugin::setupActions()
+{
+ KActionCollection* ac = actionCollection();
+ m_projectKXSLDbgActionMenu = new KActionMenu(i18n("&Run Project via KXSLDbg"), \
this); + m_projectKXSLDbgActionMenu->setIcon(KIcon("xsldbg-source"));
+ m_projectKXSLDbgActionMenu->setToolTip(i18n("Run project"));
+ //m_projectKXSLDbgActionMenu->setVisible(false); //make it visible when there \
are upload profiles + ac->addAction("project_kxsldbg_run", \
m_projectKXSLDbgActionMenu); + // create our actions
+ KStandardAction::open(this, SLOT(fileOpen()), actionCollection());
+
+ QAction *action ;
+ action = ac->addAction( "configureEditorCmd" );
+ action->setText( i18n("Configure Editor...") );
+ action->setIcon( KIcon("configure") );
+ connect(action, SIGNAL(triggered(bool)), SLOT(configureEditorCmd_activated()));
+ action = ac->addAction( "configureCmd" );
+ action->setText( i18n("Configure...") );
+ action->setIcon( KIcon("configure") );
+ connect(action, SIGNAL(triggered(bool)), SLOT(configureCmd_activated()));
+ action->setShortcut(QKeySequence(Qt::Key_C));
+
+ action = ac->addAction( "inspectCmd" );
+ action->setText( i18n("Inspect...") );
+ action->setIcon( KIcon("edit-find") );
+ connect(action, SIGNAL(triggered(bool)), SLOT(inspectorCmd_activated()));
+ action->setShortcut(QKeySequence(Qt::Key_I));
+
+
+ // Motions commands
+ action = ac->addAction( "runCmd" );
+ action->setText( i18n("Run") );
+ action->setIcon( KIcon("system-run") );
+
+ connect(action, SIGNAL(triggered(bool)), SLOT(runCmd_activated()));
+ action->setShortcut(QKeySequence(Qt::Key_F5));
+
+ action = ac->addAction( "continueCmd" );
+ action->setText( i18n("Continue") );
+ action->setIcon( KIcon("media-playback-start") );
+
+ connect(action, SIGNAL(triggered(bool)), SLOT(continueCmd_activated()));
+ action->setShortcut(QKeySequence(Qt::Key_F4));
+
+ action = ac->addAction( "stepCmd" );
+ action->setText( i18n("Step") );
+ action->setIcon( KIcon("step") );
+
+ connect(action, SIGNAL(triggered(bool)), SLOT(stepCmd_activated()));
+ action->setShortcut(QKeySequence(Qt::Key_F8));
+
+ action = new KAction(KIcon("go-down-search"), i18n("Next"), this);
+ ac->addAction("nextCmd", action );
+ connect(action, SIGNAL(triggered(bool)), SLOT(nextCmd_activated()));
+ action->setShortcut(QKeySequence(Qt::Key_F10));
+
+ action = new KAction(KIcon("xsldbg_stepup"), i18n("Step Up"), this);
+ ac->addAction("stepupCmd", action );
+ connect(action, SIGNAL(triggered(bool)), SLOT(stepupCmd_activated()));
+ action->setShortcut(QKeySequence(Qt::Key_F6));
+
+ action = new KAction(KIcon("xsldbg_stepdown"), i18n("Step Down"), this);
+ ac->addAction("stepdownCmd", action );
+ connect(action, SIGNAL(triggered(bool)), SLOT(stepCmd_activated()));
+ action->setShortcut(QKeySequence(Qt::Key_F7));
+
+ // Breakpoint commands
+ action = new KAction(KIcon("xsldbg_break"), i18n("Break"), this);
+ ac->addAction("breakCmd", action );
+ connect(action, SIGNAL(triggered(bool)), SLOT(breakCmd_activated()));
+ action->setShortcut(QKeySequence(Qt::Key_F2));
+
+ action = new KAction(KIcon("xsldbg_enable"), i18n("Enable/Disable"), this);
+ ac->addAction("enableCmd", action );
+ connect(action, SIGNAL(triggered(bool)), SLOT(enableCmd_activated()));
+ action->setShortcut(QKeySequence(Qt::Key_F3));
+
+ action = new KAction(KIcon("xsldbg_delete"), i18n("Delete"), this);
+ ac->addAction("deleteCmd", action );
+ connect(action, SIGNAL(triggered(bool)), SLOT(deleteCmd_activated()));
+ action->setShortcut(QKeySequence(Qt::Key_Delete));
+
+ action = new KAction(KIcon("xsldbg_source"), i18n("&Source"), this);
+ ac->addAction("sourceCmd", action );
+ connect(action, SIGNAL(triggered(bool)), SLOT(sourceCmd_activated()));
+ action->setShortcut(QKeySequence(Qt::Key_S));
+
+ action = new KAction(KIcon("xsldbg_data"), i18n("&Data"), this);
+ ac->addAction("dataCmd", action );
+ connect(action, SIGNAL(triggered(bool)), SLOT(dataCmd_activated()));
+ action->setShortcut(QKeySequence(Qt::Key_D));
+
+ action = new KAction(KIcon("xsldbg_output"), i18n("&Output"), this);
+ ac->addAction("outputCmd", action );
+ connect(action, SIGNAL(triggered(bool)), SLOT(outputCmd_activated()));
+ action->setShortcut(QKeySequence(Qt::Key_O));
+
+ action = new KAction(KIcon("xsldbg_refresh"), i18n("Reload Current File From \
Disk"), this); + ac->addAction("refreshCmd", action );
+ connect(action, SIGNAL(triggered(bool)), SLOT(refreshCmd_activated()));
+ action->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_F5));
+
+ /* tracing and walking */
+ action = new KAction(i18n("Walk Through Stylesheet..."), this);
+ ac->addAction("walkCmd", action );
+ connect(action, SIGNAL(triggered(bool)), SLOT(walkCmd_activated()));
+ action->setShortcut(QKeySequence(Qt::Key_W));
+ action = new KAction(i18n("Stop Wal&king Through Stylesheet"), this);
+ ac->addAction("walkStopCmd", action );
+ connect(action, SIGNAL(triggered(bool)), SLOT(walkStopCmd_activated()));
+ action->setShortcut(QKeySequence(Qt::Key_K));
+ action = new KAction(i18n("Tr&ace Execution of Stylesheet"), this);
+ ac->addAction("traceCmd", action );
+ connect(action, SIGNAL(triggered(bool)), SLOT(traceCmd_activated()));
+ action->setShortcut(QKeySequence(Qt::Key_A));
+ action = new KAction(i18n("Stop Tracing of Stylesheet"), this);
+ ac->addAction("traceStopCmd", action );
+ connect(action, SIGNAL(triggered(bool)), SLOT(traceStopCmd_activated()));
+ action->setShortcut(QKeySequence(Qt::Key_K));
+
+ action = new KAction(i18n("&Evaluate Expression..."), this);
+ ac->addAction("evaluateCmd", action );
+ connect(action, SIGNAL(triggered(bool)), SLOT(evaluateCmd_activated()));
+ action->setShortcut(QKeySequence(Qt::Key_E));
+
+ action = new KAction(i18n("Goto &XPath..."), this);
+ ac->addAction("gotoXPathCmd", action );
+ connect(action, SIGNAL(triggered(bool)), SLOT(gotoXPathCmd_activated()));
+ action->setShortcut(QKeySequence(Qt::Key_X));
+
+ action = new KAction(i18n("Lookup SystemID..."), this);
+ ac->addAction("lookupSystemID", action );
+ connect(action, SIGNAL(triggered(bool)), SLOT(slotLookupSystemID()));
+
+ action = new KAction(i18n("Lookup PublicID..."), this);
+ ac->addAction("lookupPublicID", action );
+ connect(action, SIGNAL(triggered(bool)), SLOT(slotLookupPublicID()));
+
+ action = new KAction(i18n("Quit"), this);
+ ac->addAction("file_quit", action );
+ connect(action, SIGNAL(triggered(bool)), SLOT(quit()));
+ action->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_Q));
+
+ /*
+ action = new KAction( i18n("Exit KXsldbg"),
+ "xsldbg_output", actionCollection(), "exitCmd" );
+ connect(action, SIGNAL(triggered(bool)), SLOT(exitCmd_activated()));
+ action->setShortcut(QKeySequence(CTRL + Key_Q));
+ */
+ connect( xPathBtn, SIGNAL( clicked() ),
+ this, SLOT( slotGotoXPath() ) );
+ connect( evaluateBtn, SIGNAL( clicked() ),
+ this, SLOT( slotEvaluate() ) );
+/*
+
+ connect( searchBtn, SIGNAL( clicked() ),
+ this, SLOT( slotSearch() ) );
+*/
+}
+
+
+void KDevKXSLDbgPlugin::quit()
+{
+ qWarning("Custom void KDevKXSLDbgPlugin::quit()");
+ closeUrl();
+}
+
+
+bool KDevKXSLDbgPlugin::openUrl(const KUrl &url)
+{
+ bool result = fetchURL(url);
+ if (result){
+ QXsldbgDoc *docPtr = docDictionary[url.prettyUrl()];
+ if (docPtr && docPtr->kateView()){
+ if (docPtr != currentDoc){
+ currentDoc = docPtr;
+ currentFileName = url.prettyUrl();
+ mainView->setCurrentWidget(currentDoc->kateView());
+ //emit setWindowCaption(currentDoc->url().prettyUrl());
+ }
+ } else{
+ result = false;
+ }
+ }
+
+ if (!result)
+ qWarning() << "Open URL failed" << __FILE__ << ":" << __LINE__;
+
+ return result;
+}
+
+
+/* Don't show the content of URL just loaded it into our data structures */
+bool KDevKXSLDbgPlugin::fetchURL(const KUrl &url)
+{
+ QString docID = url.prettyUrl();
+ QXsldbgDoc *docPtr = docDictionary[docID];
+ if (!docPtr){
+ docPtr = new QXsldbgDoc(mainView, url);
+ docDictionary.insert(docID, docPtr);
+ QHash<QString, QXsldbgDoc*>::const_iterator it;
+ if (docPtr->kateView()){
+ mainView->addWidget(docPtr->kateView());
+ KTextEditor::View *v = docPtr->kateView();
+ connect(v, SIGNAL(cursorPositionChanged(KTextEditor::View *, const \
KTextEditor::Cursor &)) + , this, SLOT(cursorPositionChanged()));
+ }
+ }
+
+ return true;
+}
+
+bool KDevKXSLDbgPlugin::openFile()
+{
+ qWarning("bool KDevKXSLDbgPlugin::openFile() called");
+ return false;
+}
+
+bool KDevKXSLDbgPlugin::closeUrl()
+{
+ docDictionary.clear();
+ return true;
+}
+
+void KDevKXSLDbgPlugin::fileOpen()
+{
+ // this slot is called whenever the File->Open menu is selected,
+ // the Open shortcut is pressed (usually CTRL+O) or the Open toolbar
+ // button is clicked
+ QString file_name = KFileDialog::getOpenFileName();
+
+ if (file_name.isEmpty() == false)
+ openUrl(KUrl( file_name ));
+}
+
+void KDevKXSLDbgPlugin::configureEditorCmd_activated()
+{
+ if (currentDoc){
+ currentDoc->kateDoc()->editor()->configDialog(mainView);
+ }
+}
+
+bool KDevKXSLDbgPlugin::checkDebugger()
+{
+ bool result = debugger != 0L;
+ if (!result){
+ QMessageBox::information(0L, i18n("Debugger Not Ready"),
+ i18n("Configure and start the debugger first."),
+ QMessageBox::Ok);
+ }
+
+ return result;
+}
+
+
+void KDevKXSLDbgPlugin::lookupSystemID( QString systemID)
+{
+ bool ok = false;
+ if (!checkDebugger())
+ return;
+
+ if (systemID.isEmpty()){
+ systemID = KInputDialog::getText(
+ i18n( "Lookup SystemID" ),
+ i18n( "Please enter SystemID to find:" ),
+ QString(), &ok,
+ mainView);
+ }else{
+ ok = true;
+ }
+ if ( ok && !systemID.isEmpty() ){
+ // user entered something and pressed ok
+ QString msg(QString("system %1").arg(systemID)); // noTr
+ debugger->fakeInput(msg, true);
+ }
+
+}
+
+
+void KDevKXSLDbgPlugin::lookupPublicID(QString publicID)
+{
+ bool ok = false;
+ if (!checkDebugger())
+ return;
+
+ if (publicID.isEmpty()){
+ publicID = KInputDialog::getText(
+ i18n( "Lookup PublicID" ),
+ i18n( "Please enter PublicID to find:" ),
+ QString(), &ok, mainView );
+ }else{
+ ok = true;
+ }
+ if ( ok && !publicID.isEmpty()){
+ // user entered something and pressed ok
+ QString msg(QString("public %1").arg(publicID)); // noTr
+ debugger->fakeInput(msg, true);
+ }
+}
+
+
+void KDevKXSLDbgPlugin::slotLookupSystemID()
+{
+ lookupSystemID("");
+}
+
+void KDevKXSLDbgPlugin::slotLookupPublicID()
+{
+ lookupPublicID("");
+}
+
+void KDevKXSLDbgPlugin::configureCmd_activated()
+{
+ if (!checkDebugger())
+ return;
+
+ if (configWidget != 0L){
+ configWidget->refresh();
+ configWidget->show();
+ }
+}
+
+void
+KDevKXSLDbgPlugin::runCmd_activated()
+{
+ if ( checkDebugger() )
+ debugger->slotRunCmd();
+}
+
+void KDevKXSLDbgPlugin::inspectorCmd_activated()
+{
+ if (inspector == 0L)
+ createInspector();
+
+ if (checkDebugger() && (inspector != 0L)){
+ inspector->show();
+ }
+}
+
+
+void KDevKXSLDbgPlugin::createInspector()
+{
+ if ( inspector == 0L ) {
+ debugger = new XsldbgDebugger();
+ Q_CHECK_PTR( debugger );
+ if ( debugger != 0L ) {
+ connect(debugger, SIGNAL( debuggerReady()),
+ this, SLOT(debuggerStarted()));
+ if (outputview){
+ connect(debugger,
+ SIGNAL( showMessage(QString /* msg*/)),
+ outputview,
+ SLOT(slotProcShowMessage(QString /* msg*/)));
+ }
+ inspector = new XsldbgInspector( debugger );
+ Q_CHECK_PTR( inspector );
+ debugger->setInspector( inspector );
+ if (inspector != 0L){
+ /*process line number and/or file name changed */
+ connect(debugger,
+ SIGNAL(lineNoChanged
+ (QString /* fileName */ ,
+ int /* lineNumber */ ,
+ bool /* breakpoint */ ) ),
+ this,
+ SLOT(lineNoChanged
+ ( QString /* fileName */ ,
+ int /* lineNumber */ ,
+ bool /* breakpoint */ ) ) );
+ connect(debugger,
+ SIGNAL(breakpointItem(QString /* fileName*/,
+ int /* lineNumber */,
+ QString /*templateName*/,
+ QString /* modeName */,
+ bool /* enabled */,
+ int /* id */)),
+ this,
+ SLOT( breakpointItem(QString /* fileName*/,
+ int /* lineNumber */,
+ QString /*templateName*/,
+ QString /* modeName */,
+ bool /* enabled */,
+ int /* id */)));
+ connect(debugger, SIGNAL(resolveItem(QString /*URI*/)),
+ this, SLOT(slotProcResolveItem(QString /*URI*/)));
+ }
+ }
+ }
+}
+
+void KDevKXSLDbgPlugin::emitOpenFile(QString file, int line, int row)
+{
+ Q_UNUSED(file)
+ Q_UNUSED(line)
+ Q_UNUSED(row)
+ qWarning("%s %s", __PRETTY_FUNCTION__, "called but not supported");
+}
+
+void KDevKXSLDbgPlugin::continueCmd_activated()
+{
+ if ( checkDebugger() )
+ debugger->slotContinueCmd();
+
+}
+
+void KDevKXSLDbgPlugin::stepCmd_activated()
+{
+ if ( checkDebugger() )
+ debugger->slotStepCmd();
+}
+
+void KDevKXSLDbgPlugin::nextCmd_activated()
+{
+ if ( checkDebugger() )
+ debugger->fakeInput("next", true); // noTr
+}
+
+
+void KDevKXSLDbgPlugin::stepupCmd_activated()
+{
+ if ( checkDebugger() )
+ debugger->fakeInput("stepup", true); // noTr
+}
+
+
+void KDevKXSLDbgPlugin::stepdownCmd_activated()
+{
+ if ( checkDebugger() )
+ debugger->fakeInput("stepdown", true); // noTr
+}
+
+
+void KDevKXSLDbgPlugin::dataCmd_activated()
+{
+ if ( checkDebugger() )
+ debugger->slotDataCmd();
+}
+
+void
+KDevKXSLDbgPlugin::sourceCmd_activated()
+{
+ if ( checkDebugger() )
+ debugger->slotSourceCmd();
+}
+
+void
+KDevKXSLDbgPlugin::outputCmd_activated()
+{
+ if ( ( inspector != 0L ) && checkDebugger() && ( configWidget != 0L ) ){
+ debugger->setOutputFileActive(true);
+ lineNoChanged( configWidget->getOutputFile(), 1, false );
+ refreshCmd_activated();
+ }
+}
+
+void KDevKXSLDbgPlugin::refreshCmd_activated()
+{
+
+ if ( !currentFileName.isEmpty() ){
+ QXsldbgDoc *docPtr;
+ QHash<QString, QXsldbgDoc*>::const_iterator it;
+ for (it = docDictionary.constBegin(); it != docDictionary.constEnd(); ++it){
+ docPtr = it.value();
+ if(docPtr)
+ docPtr->refresh();
+ }
+ if ( checkDebugger() ){
+ debugger->fakeInput("showbreak", true); // noTr
+ }
+ }
+}
+
+void KDevKXSLDbgPlugin::enableCmd_activated()
+{
+ if ( checkDebugger() ){
+ debugger->slotEnableCmd( currentFileName, currentLineNo);
+ }
+}
+
+void KDevKXSLDbgPlugin::deleteCmd_activated()
+{
+ if ( checkDebugger() ){
+ debugger->slotDeleteCmd( currentFileName, currentLineNo);
+ }
+}
+
+void KDevKXSLDbgPlugin::breakCmd_activated()
+{
+ if ( checkDebugger() ){
+ debugger->slotBreakCmd( currentFileName, currentLineNo);
+ }
+}
+
+void KDevKXSLDbgPlugin::evaluateCmd_activated()
+{
+ QString expression = KInputDialog::getText(i18n("Evaluate Expression"), \
i18n("XPath:")); + if (checkDebugger() && (expression.length() > 0)){
+ debugger->slotCatCmd( expression);
+ }
+}
+
+void KDevKXSLDbgPlugin::gotoXPathCmd_activated()
+{
+ QString xpath = KInputDialog::getText(i18n("Goto XPath"), i18n("XPath:"));
+ if (checkDebugger() && xpath.length() > 0){
+ debugger->slotCdCmd( xpath );
+ }
+}
+
+void
+KDevKXSLDbgPlugin::lineNoChanged(QString fileName, int lineNumber, bool breakpoint)
+{
+ if ( fileName.isEmpty() ) {
+ return;
+ }
+
+ openUrl(fileName);
+
+ /* Did we stop at a breakpoint if so move the marker */
+ if (breakpoint && currentDoc) {
+ currentDoc->selectBreakPoint(lineNumber);
+ emit newDebuggerPosition(currentFileName, lineNumber);
+ }
+
+ /* Move cursor and update status bar */
+ if (currentDoc && currentDoc->kateView()){
+ currentDoc->kateView()->setCursorPosition(KTextEditor::Cursor(lineNumber - 1, \
0)); + currentLineNo = lineNumber;
+ }
+}
+
+void KDevKXSLDbgPlugin::cursorPositionChanged()
+{
+ if (currentDoc && currentDoc->kateView()){
+ KTextEditor::Cursor c = currentDoc->kateView()->cursorPosition();
+ currentLineNo = c.line();
+ currentColumnNo = c.column();
+ currentLineNo++;
+ currentColumnNo++;
+ emit newCursorPosition(currentFileName, currentLineNo,0);
+ }
+}
+
+void KDevKXSLDbgPlugin::docChanged()
+{
+ if (!currentDoc || currentDoc->kateDoc() || currentDoc->kateView())
+ return;
+}
+
+void KDevKXSLDbgPlugin::debuggerStarted()
+{
+ if (configWidget != 0L){
+ KCmdLineArgs *args = KCmdLineArgs::parsedArgs();
+ if (args){
+ int i=0, result=1, noFilesFound = 0;
+ QString expandedName; /* contains file name with path expansion if any */
+
+ for (i = 0; i < args->count(); i++) {
+ if (!result)
+ break;
+
+ if (args->arg(i)[0] != '-') {
+ expandedName = QString::fromUtf8((const char*)filesExpandName((const \
xmlChar*)args->arg(i).toUtf8().data())); + if (expandedName.isEmpty()) {
+ result = 0;
+ break;
+ }
+ switch (noFilesFound) {
+ case 0:
+ configWidget->slotSourceFile(expandedName);
+ noFilesFound++;
+ break;
+ case 1:
+ configWidget->slotDataFile(expandedName);
+ noFilesFound++;
+ break;
+ case 2:
+ configWidget->slotOutputFile(expandedName);
+ noFilesFound++;
+ break;
+
+ default:
+ xsldbgGenericErrorFunc(i18n("Error: Too many file names supplied via command \
line.\n")); + result = 0;
+ }
+ continue;
+ }
+ }
+ configWidget->refresh();
+ }
+ }
+}
+
+void KDevKXSLDbgPlugin::addBreakPoint(int lineNumber)
+{
+ if ( checkDebugger() ){
+ debugger->slotBreakCmd( currentFileName, lineNumber);
+ }
+}
+
+void KDevKXSLDbgPlugin::enableBreakPoint(int lineNumber)
+{
+ if ( checkDebugger() ){
+ debugger->slotEnableCmd( currentFileName, lineNumber);
+ }
+}
+
+
+void KDevKXSLDbgPlugin::deleteBreakPoint(int lineNumber)
+{
+ if ( checkDebugger() ){
+ debugger->slotDeleteCmd( currentFileName, lineNumber);
+ }
+}
+
+
+
+void KDevKXSLDbgPlugin::slotSearch()
+{
+ if ((newSearch != 0L) && checkDebugger() ) {
+ QString msg(QString("search \"%1\"").arg(newSearch->text())); // noTr
+ debugger->fakeInput(msg, false);
+ }
+}
+
+
+void KDevKXSLDbgPlugin::slotEvaluate()
+{
+ if ((newEvaluate != 0L) && checkDebugger() ){
+ debugger->slotCatCmd( newEvaluate->text() );
+ }
+}
+
+void KDevKXSLDbgPlugin::slotGotoXPath()
+{
+ if ((newXPath != 0L) && checkDebugger() ){
+ debugger->slotCdCmd( newXPath->text() );
+ }
+}
+
+
+
+void KDevKXSLDbgPlugin::slotProcResolveItem(QString URI)
+{
+ if (!URI.isEmpty()){
+ QMessageBox::information(mainView, i18n("SystemID or PublicID Resolution \
Result"), + i18n("SystemID or PublicID has been resolved to\n.%1", URI),
+ QMessageBox::Ok);
+ }
+}
+
+void KDevKXSLDbgPlugin::breakpointItem(QString fileName, int lineNumber ,
+ QString /*templateName*/, QString /* modeName */,
+ bool enabled , int /* id */)
+{
+
+ if (fileName == 0L){
+ /* Go through all documents and remove all breakpoints */
+ QXsldbgDoc *docPtr=0;
+ KTextEditor::MarkInterface *markIf = 0L;
+ QHash<QString, QXsldbgDoc*>::iterator it;
+ for (it = docDictionary.begin(); it != docDictionary.end(); ++it){
+ docPtr = it.value();
+ if (docPtr){
+ markIf = qobject_cast<KTextEditor::MarkInterface*>( \
docPtr->kateDoc() ); + if (markIf)
+ markIf->clearMarks();
+ }
+ }
+ }else{
+ /*
+ if (!fileName.contains("://")){
+ // relative path ? must handle this special case
+ KUrl url;
+ url.setFileName(fileName);
+ fetchURL(url);
+ }else{
+ fetchURL(fileName);
+ }
+ */
+ fetchURL(fileName);
+ QXsldbgDoc *docPtr = docDictionary[fileName] ;
+ if (docPtr)
+ docPtr->enableBreakPoint(--lineNumber, enabled);
+ }
+}
+
+
+
+void KDevKXSLDbgPlugin::walkCmd_activated()
+{
+ if (checkDebugger()){
+ debugger->slotWalkCmd();
+ }
+}
+
+void KDevKXSLDbgPlugin::walkStopCmd_activated()
+{
+ if (checkDebugger()){
+ debugger->slotWalkStopCmd();
+ }
+}
+
+void KDevKXSLDbgPlugin::traceCmd_activated()
+{
+ if (checkDebugger()){
+ debugger->slotTraceCmd();
+ }
+}
+
+void KDevKXSLDbgPlugin::traceStopCmd_activated()
+{
+ walkStopCmd_activated();
+}
+
Index: plugins/kxsldbg/kcm_kdev_kxsldbg.desktop
===================================================================
--- plugins/kxsldbg/kcm_kdev_kxsldbg.desktop (revision 0)
+++ plugins/kxsldbg/kcm_kdev_kxsldbg.desktop (revision 0)
@@ -0,0 +1,42 @@
+[Desktop Entry]
+Encoding=UTF-8
+Icon=kxsldbg
+Type=Service
+ServiceTypes=KCModule
+Name=KXSLDbg Settings
+Name[x-test]=xxKXSLDbg Settingsxx
+GenericName=KXSLDbg Plugin
+GenericName[fr]=
+GenericName[ga]=
+GenericName[pt]=
+GenericName[pt_BR]=
+GenericName[tr]=
+GenericName[uk]=
+GenericName[x-test]=xxKXSLDbg Settingsxx
+GenericName[zh_TW]=
+Comment=Configure KXSLDbg Settings
+Comment[fr]=
+Comment[ga]=
+Comment[pt]=
+Comment[pt_BR]=
+Comment[tr]=
+Comment[uk]=
+Comment[x-test]=xxConfigure KXSLDbg Settingsxx
+Comment[zh_TW]=
+
+X-KDevelop-Plugin-Version=1
+X-KDevelop-Plugin-BugsEmailAddress=keith@kdewebdev.org
+X-KDevelop-Plugin-Copyright=(C) by Keith Isdale
+X-KDevelop-Plugin-License=GPL
+
+
+X-KDevelop-Args=
+
+X-KDE-PluginInfo-Name=KCmKDevKXSLDbg
+X-KDE-ModuleType=Library
+X-KDE-Library=kcm_kdev_kxsldbg
+X-KDE-ParentApp=kdevplatformproject
+X-KDE-ParentComponents=kdevplatformproject
+X-KDE-CfgDlgHierarchy=GENERAL
+X-KDevelop-Category=Global
+X-KDevelop-Version=4
Index: plugins/kxsldbg/kdevkxsldbg.rc
===================================================================
--- plugins/kxsldbg/kdevkxsldbg.rc (revision 0)
+++ plugins/kxsldbg/kdevkxsldbg.rc (revision 0)
@@ -0,0 +1,81 @@
+<!DOCTYPE kpartgui>
+<kpartplugin name="kdevkxsldbg" library="libkdevkxsldbg" version="1">
+<MenuBar>
+ <Menu name="project">
+ <Action name="project_kxsldbg_run"/>
+ </Menu>
+ <Menu noMerge="1" name="file"><text>&File</text>
+ <Merge/>
+ <Separator/>
+ <Action name="file_quit"/>
+ </Menu>
+ <Menu name="debug"><text>Debug</text>
+ <Action name="configureCmd"/>
+ <Action name="inspectCmd"/>
+ <Action name="runCmd"/>
+ <Action name="continueCmd"/>
+ <Action name="stepCmd"/>
+ <Action name="nextCmd"/>
+ <Separator/>
+ <Action name="stepupCmd"/>
+ <Action name="stepdownCmd"/>
+ <Separator/>
+ <Action name="breakCmd"/>
+ <Action name="deleteCmd"/>
+ <Action name="enableCmd"/>
+ <Separator/>
+ <Action name="sourceCmd"/>
+ <Action name="dataCmd"/>
+ <Action name="outputCmd"/>
+ <Action name="refreshCmd"/>
+ <Separator/>
+ <Action name="walkCmd"/>
+ <Action name="walkStopCmd"/>
+ <Action name="traceCmd"/>
+ <Action name="traceStopCmd"/>
+ <Separator/>
+ <Action name="evaluateCmd"/>
+ <Action name="gotoXPathCmd"/>
+ <Action name="lookupSystemID"/>
+ <Action name="lookupPublicID"/>
+ </Menu>
+ <Menu noMerge="1" name="settings"><text>&Settings</text>
+ <Action name="options_show_toolbar"/>
+ <Action name="options_show_statusbar"/>
+ <Merge name="show_merge"/>
+ <Separator/>
+ <Action name="options_configure_keybinding"/>
+ <Action name="options_configure_toolbars"/>
+ <Action name="options_configure"/>
+ <Action name="configureEditorCmd"/>
+ <Merge name="configure_merge"/>
+ <Separator/>
+ <Merge/>
+ </Menu>
+</MenuBar>
+<ToolBar noMerge="1" name="mainToolBar"><text>Main Toolbar</text>
+ <Merge/>
+ <Action name="help"/>
+</ToolBar>
+<ToolBar name="debugToolBar">
+ <Action name="configureCmd"/>
+ <Action name="inspectCmd"/>
+ <Action name="runCmd"/>
+ <Action name="continueCmd"/>
+ <Action name="stepCmd"/>
+ <Action name="nextCmd"/>
+ <Separator/>
+ <Action name="stepupCmd"/>
+ <Action name="stepdownCmd"/>
+ <Separator/>
+ <Action name="breakCmd"/>
+ <Action name="deleteCmd"/>
+ <Action name="enableCmd"/>
+ <Separator/>
+ <Action name="sourceCmd"/>
+ <Action name="dataCmd"/>
+ <Action name="outputCmd"/>
+ <Action name="refreshCmd"/>
+ <Separator/>
+ </ToolBar>
+</kpartplugin>
Index: plugins/kxsldbg/kdevkxsldbgplugin.h
===================================================================
--- plugins/kxsldbg/kdevkxsldbgplugin.h (revision 0)
+++ plugins/kxsldbg/kdevkxsldbgplugin.h (revision 0)
@@ -0,0 +1,181 @@
+/**
+ *
+ * This file is part of the kxsldbg package
+ * Copyright (c) 2008 Keith Isdale <keith@kdewebdev.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License version 2 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 Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ **/
+
+#ifndef KDEVKXSLDBGPLUGIN_H
+#define KDEVKXSLDBGPLUGIN_H
+#include <iplugin.h>
+#include <QVariant>
+#include <QMainWindow>
+#include <QActionGroup>
+#include <QHash>
+#include <QMenu>
+#include <xsldbgdebugger.h>
+#include <xsldbginspector.h>
+#include <ktexteditor/document.h>
+#include <ktexteditor/view.h>
+#include <QDBusConnection>
+class KxsldbgAdaptor;
+
+class QGridLayout;
+class QAction;
+class QLineEdit;
+class QDockWindow;
+class QStackedWidget;
+
+class XsldbgBrkStatusView;
+class QXsldbgDoc;
+class XsldbgOutputView;
+class XsldbgConfigImpl;
+
+class QWidget;
+class QPainter;
+class KUrl;
+class KVBox;
+class KFrame;
+class KAboutData;
+
+typedef QHash<QString, QXsldbgDoc*> XsldbgDocDict;
+class KActionMenu;
+
+class KDevKXSLDbgViewFactory;
+
+class KDevKXSLDbgPlugin: public KDevelop::IPlugin
+{
+Q_OBJECT
+public:
+ KDevKXSLDbgPlugin(QObject *parent, const QVariantList & = QVariantList());
+ virtual ~KDevKXSLDbgPlugin();
+
+ void setupActions();
+
+
+ /** Checks the debugger, if it is not ready then
+ * display a error in a message box
+ *
+ * @returns TRUE if debugger is ready, otherwise FALSE
+ */
+ bool checkDebugger();
+ void lookupSystemID(QString systemID);
+ void lookupPublicID(QString publicID);
+ void createInspector();
+
+Q_SIGNALS:
+ Q_SCRIPTABLE void newCursorPosition(const QString &file, int lineNumber, int \
columnNumber); + Q_SCRIPTABLE void newDebuggerPosition(const QString &file, int \
lineNumber); +
+ public slots:
+ virtual bool openUrl(const KUrl &url);
+ virtual bool closeUrl();
+ void quit();
+ void emitOpenFile(QString file, int line, int row);
+ void slotLookupSystemID();
+ void slotLookupPublicID();
+ void walkCmd_activated();
+ void walkStopCmd_activated();
+ void traceCmd_activated();
+ void traceStopCmd_activated();
+ void configureEditorCmd_activated();
+
+ //Tool bar commands
+ void configureCmd_activated();
+ void inspectorCmd_activated();
+ void runCmd_activated();
+ void stepCmd_activated();
+ void nextCmd_activated();
+ void continueCmd_activated();
+ void stepupCmd_activated();
+ void stepdownCmd_activated();
+ void sourceCmd_activated();
+ void dataCmd_activated();
+ void outputCmd_activated();
+ void refreshCmd_activated();
+ void enableCmd_activated();
+ void breakCmd_activated();
+ void deleteCmd_activated();
+
+ /** Evaluate expression entered */
+ void evaluateCmd_activated();
+
+ /** Goto/display file XPath entered */
+ void gotoXPathCmd_activated();
+
+ virtual void lineNoChanged( QString fileName, int lineNumber,
+ bool breakpoint );
+
+ void addBreakPoint(int lineNumber);
+ void enableBreakPoint(int lineNumber);
+ void deleteBreakPoint(int lineNumber);
+
+ /** Evaluate expression entered in expressionEdit */
+ void slotEvaluate();
+
+ /** Goto/display file that matches XPath specified in xPathEdit */
+ void slotGotoXPath();
+
+ /** Run search on data base , see search.dtd for DTD of search database */
+ void slotSearch();
+
+ /* Process the the URI for SystemID or PublicID requested */
+ void slotProcResolveItem(QString URI);
+
+ /* used to get breakpoint list notfication */
+ void breakpointItem(QString fileName, int lineNumber ,
+ QString /*templateName*/, QString /* modeName */,
+ bool enabled , int /* id */);
+
+ void cursorPositionChanged();
+ void docChanged();
+
+ void debuggerStarted();
+ QWidget * topWidget(QWidget *parent);
+
+protected:
+ /**
+ * This must be implemented by each part
+ */
+ virtual bool openFile();
+ bool fetchURL(const KUrl &url);
+
+ protected slots:
+ void fileOpen();
+
+private:
+ KDevKXSLDbgViewFactory *m_widgetFactory;
+ KActionMenu* m_projectKXSLDbgActionMenu; ///< KXSLDbg ActionMenu, displayed in \
the Project-Menu + KVBox * frame;
+ QXsldbgDoc *currentDoc;
+ QStackedWidget *mainView;
+ QDBusInterface *dbusIface;
+
+ QPushButton *xPathBtn, *searchBtn, *evaluateBtn;
+ QLineEdit *newXPath, *newSearch, *newEvaluate;
+ QGridLayout* qxsldbgLayout;
+
+ uint currentLineNo, currentColumnNo;
+ XsldbgDocDict docDictionary;
+ XsldbgInspector *inspector;
+ XsldbgDebugger *debugger;
+ XsldbgConfigImpl *configWidget;
+ QString currentFileName;
+
+ XsldbgOutputView *outputview;
+};
+
+#endif
Index: plugins/kxsldbg/CMakeLists.txt
===================================================================
--- plugins/kxsldbg/CMakeLists.txt (revision 0)
+++ plugins/kxsldbg/CMakeLists.txt (revision 0)
@@ -0,0 +1,133 @@
+include_directories(
+ ${KDEVPLATFORM_INCLUDE_DIR}
+ ${KDEVPLATFORM_INCLUDE_DIR}/interfaces
+ ${KDEVPLATFORM_INCLUDE_DIR}/outputview
+ ${CMAKE_SOURCE_DIR}/kxsldbg/
+ ${CMAKE_BINARY_DIR}/kxsldbg/
+ ${CMAKE_SOURCE_DIR}/kxsldbg/kxsldbgpart/
+ ${LIBXSLT_INCLUDE_DIR}
+ ${LIBXML2_INCLUDE_DIR}
+)
+
+########### next target ###############
+
+#setings
+set(kcm_kdev_kxsldbg_PART_SRCS
+ kdevkxsldbgconfigimpl.cpp
+ # ${CMAKE_SOURCE_DIR}/kxsldbg/kxsldbgpart/xsldbgconfigimpl.cpp
+)
+
+set(kcm_kdev_kxsldbg_PART_UI
+ ${CMAKE_SOURCE_DIR}/kxsldbg/kxsldbgpart/xsldbgconfig.ui
+)
+
+kde4_add_ui_files(kcm_kdev_kxsldbg_PART_SRCS ${kcm_kdev_kxsldbg_PART_UI})
+#kde4_add_kcfg_files( kcm_kdev_kxsldbg_PART_SRCS kxsldbg.kcfgc )
+kde4_add_plugin(kcm_kdev_kxsldbg ${kcm_kdev_kxsldbg_PART_SRCS})
+
+target_link_libraries(kcm_kdev_kxsldbg
+ ${KDE4_KUTILS_LIBS}
+)
+
+install(TARGETS kcm_kdev_kxsldbg DESTINATION ${PLUGIN_INSTALL_DIR})
+install(FILES kcm_kdev_kxsldbg.desktop DESTINATION ${SERVICES_INSTALL_DIR})
+
+
+########### next target ###############
+
+
+set(libqtnotfier_SRCS
+ ${CMAKE_SOURCE_DIR}/kxsldbg/kxsldbgpart/libqtnotfier/xsldbgthread.cpp
+ ${CMAKE_SOURCE_DIR}/kxsldbg/kxsldbgpart/libqtnotfier/xsldbgnotifier.cpp
+ ${CMAKE_SOURCE_DIR}/kxsldbg/kxsldbgpart/libqtnotfier/xsldbgevent.cpp
+ ${CMAKE_SOURCE_DIR}/kxsldbg/kxsldbgpart/libqtnotfier/xsldbgdebuggerbase.cpp
+ ${CMAKE_SOURCE_DIR}/kxsldbg/kxsldbgpart/libqtnotfier/qtnotifier2.cpp
+ )
+
+set(libxsldbg_SRCS
+ ${CMAKE_SOURCE_DIR}/kxsldbg/kxsldbgpart/libxsldbg/allmoc.cpp
+ ${CMAKE_SOURCE_DIR}/kxsldbg/kxsldbgpart/libxsldbg/xsldbgthread.cpp
+ ${CMAKE_SOURCE_DIR}/kxsldbg/kxsldbgpart/libxsldbg/xsldbg.cpp
+ ${CMAKE_SOURCE_DIR}/kxsldbg/kxsldbgpart/libxsldbg/xsldbgmsg.cpp
+ ${CMAKE_SOURCE_DIR}/kxsldbg/kxsldbgpart/libxsldbg/variable_cmds.cpp
+ ${CMAKE_SOURCE_DIR}/kxsldbg/kxsldbgpart/libxsldbg/utils.cpp
+ ${CMAKE_SOURCE_DIR}/kxsldbg/kxsldbgpart/libxsldbg/trace_cmds.cpp
+ ${CMAKE_SOURCE_DIR}/kxsldbg/kxsldbgpart/libxsldbg/template_cmds.cpp
+ ${CMAKE_SOURCE_DIR}/kxsldbg/kxsldbgpart/libxsldbg/search_cmds.cpp
+ ${CMAKE_SOURCE_DIR}/kxsldbg/kxsldbgpart/libxsldbg/search.cpp
+ ${CMAKE_SOURCE_DIR}/kxsldbg/kxsldbgpart/libxsldbg/param_cmds.cpp
+ ${CMAKE_SOURCE_DIR}/kxsldbg/kxsldbgpart/libxsldbg/os_cmds.cpp
+ ${CMAKE_SOURCE_DIR}/kxsldbg/kxsldbgpart/libxsldbg/options_unix.cpp
+ ${CMAKE_SOURCE_DIR}/kxsldbg/kxsldbgpart/libxsldbg/options.cpp
+ ${CMAKE_SOURCE_DIR}/kxsldbg/kxsldbgpart/libxsldbg/option_cmds.cpp
+ ${CMAKE_SOURCE_DIR}/kxsldbg/kxsldbgpart/libxsldbg/nodeview_cmds.cpp
+ ${CMAKE_SOURCE_DIR}/kxsldbg/kxsldbgpart/libxsldbg/help_unix.cpp
+ ${CMAKE_SOURCE_DIR}/kxsldbg/kxsldbgpart/libxsldbg/files_unix.cpp
+ ${CMAKE_SOURCE_DIR}/kxsldbg/kxsldbgpart/libxsldbg/files.cpp
+ ${CMAKE_SOURCE_DIR}/kxsldbg/kxsldbgpart/libxsldbg/file_cmds.cpp
+ ${CMAKE_SOURCE_DIR}/kxsldbg/kxsldbgpart/libxsldbg/debugXSL.cpp
+ ${CMAKE_SOURCE_DIR}/kxsldbg/kxsldbgpart/libxsldbg/debug.cpp
+ ${CMAKE_SOURCE_DIR}/kxsldbg/kxsldbgpart/libxsldbg/callstack.cpp
+ ${CMAKE_SOURCE_DIR}/kxsldbg/kxsldbgpart/libxsldbg/breakpoint_cmds.cpp
+ ${CMAKE_SOURCE_DIR}/kxsldbg/kxsldbgpart/libxsldbg/breakpoint.cpp
+ ${CMAKE_SOURCE_DIR}/kxsldbg/kxsldbgpart/libxsldbg/arraylist.cpp
+ )
+
+set(libkxsldbgcommon_SRCS
+ ${CMAKE_SOURCE_DIR}/kxsldbg/kxsldbgpart/xsldbgwalkspeedimpl.cpp
+ ${CMAKE_SOURCE_DIR}/kxsldbg/kxsldbgpart/xsldbgtemplatesimpl.cpp
+ ${CMAKE_SOURCE_DIR}/kxsldbg/kxsldbgpart/xsldbgsourcesimpl.cpp
+ ${CMAKE_SOURCE_DIR}/kxsldbg/kxsldbgpart/xsldbgoutputview.cpp
+ ${CMAKE_SOURCE_DIR}/kxsldbg/kxsldbgpart/xsldbgvariablesimpl.cpp
+ ${CMAKE_SOURCE_DIR}/kxsldbg/kxsldbgpart/xsldbginspector.cpp
+ ${CMAKE_SOURCE_DIR}/kxsldbg/kxsldbgpart/xsldbgentitiesimpl.cpp
+ ${CMAKE_SOURCE_DIR}/kxsldbg/kxsldbgpart/xsldbgdoc.cpp
+ ${CMAKE_SOURCE_DIR}/kxsldbg/kxsldbgpart/xsldbgdialogbase.cpp
+ ${CMAKE_SOURCE_DIR}/kxsldbg/kxsldbgpart/xsldbgdebugger.cpp
+ ${CMAKE_SOURCE_DIR}/kxsldbg/kxsldbgpart/xsldbgconfigimpl.cpp
+ ${CMAKE_SOURCE_DIR}/kxsldbg/kxsldbgpart/xsldbgcallstackimpl.cpp
+ ${CMAKE_SOURCE_DIR}/kxsldbg/kxsldbgpart/xsldbgbreakpointsimpl.cpp
+ ${CMAKE_SOURCE_DIR}/kxsldbg/kxsldbgpart/qxsldbgdoc.cpp
+ )
+
+
+kde4_add_ui_files(kxsldbgpart_PART_SRCS
+ ${CMAKE_SOURCE_DIR}/kxsldbg/kxsldbgpart/xsldbgbreakpoints.ui
+ ${CMAKE_SOURCE_DIR}/kxsldbg/kxsldbgpart/xsldbgcallstack.ui
+ ${CMAKE_SOURCE_DIR}/kxsldbg/kxsldbgpart/xsldbgconfig.ui
+ ${CMAKE_SOURCE_DIR}/kxsldbg/kxsldbgpart/xsldbgentities.ui
+ ${CMAKE_SOURCE_DIR}/kxsldbg/kxsldbgpart/xsldbgmsgdialog.ui
+ ${CMAKE_SOURCE_DIR}/kxsldbg/kxsldbgpart/xsldbgvariables.ui
+ ${CMAKE_SOURCE_DIR}/kxsldbg/kxsldbgpart/xsldbgsources.ui
+ ${CMAKE_SOURCE_DIR}/kxsldbg/kxsldbgpart/xsldbgtemplates.ui
+ ${CMAKE_SOURCE_DIR}/kxsldbg/kxsldbgpart/xsldbgwalkspeed.ui)
+
+#plugin
+set(kdevkxsldbg_PART_SRCS
+ kdevkxsldbgplugin.cpp
+ ${libqtnotfier_SRCS}
+ ${libxsldbg_SRCS}
+ ${libkxsldbgcommon_SRCS}
+)
+
+qt4_add_dbus_adaptor(kdevkxsldbg_SRCS org.kde.kxsldbg.kxsldbg.xml kxsldbg_part.h \
KXsldbgPart) +set(network_xml \
${CMAKE_SOURCE_DIR}/kxsldbg/kxsldbgpart/org.kde.kxsldbg.kxsldbg.xml) \
+qt4_add_dbus_interface(kdevkxsldbg_SRCS ${network_xml} kxsldbgpartinterface) \
+kde4_add_plugin(kdevkxsldbg WITH_PREFIX ${kdevkxsldbg_PART_SRCS}) +
+target_link_libraries(kdevkxsldbg
+ kdevquanta
+ kdevplatforminterfaces
+ kdevplatformproject
+ ${KDE4_KTEXTEDITOR_LIBS}
+ exslt
+ ${LIBXML2_LIBRARIES}
+ ${LIBXSLT_LIBRARIES}
+ ${QT_QT3SUPPORT_LIBRARY}
+)
+
+########### install files ###############
+install(TARGETS kdevkxsldbg DESTINATION ${PLUGIN_INSTALL_DIR})
+install(FILES kdevkxsldbg.desktop DESTINATION ${SERVICES_INSTALL_DIR})
+install(FILES kdevkxsldbg.rc DESTINATION ${DATA_INSTALL_DIR}/kdevkxsldbg)
+
Index: src/profile.config
===================================================================
--- src/profile.config (revision 794937)
+++ src/profile.config (working copy)
@@ -9,5 +9,4 @@
GenericName=quanta
[Properties]
-List=QuantaCore,Quanta-CreateProject,Quanta-FilesTree,Quanta-Preview,Quanta-ProjectTr \
ee,Quanta-StructureTree,Quanta-TagDialogs,Quanta-TemplatesTree,UserToolbars,Console,Subversion,Quanta-Upload
-
+List=QuantaCore,Quanta-CreateProject,Quanta-FilesTree,Quanta-Preview,Quanta-ProjectTr \
ee,Quanta-StructureTree,Quanta-TagDialogs,Quanta-TemplatesTree,UserToolbars,Console,Subversion,Quanta-Upload,Quanta-KXSLDbg
[Attachment #8 (application/pgp-signature)]
_______________________________________________
quanta-devel mailing list
quanta-devel@kde.org
https://mail.kde.org/mailman/listinfo/quanta-devel
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic