[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>&amp;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>&amp;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