You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
177 lines
4.9 KiB
177 lines
4.9 KiB
15 years ago
|
/***************************************************************************
|
||
|
xsldbgdebugger.h - description
|
||
|
-------------------
|
||
|
begin : Tue Jan 1 2002
|
||
|
copyright : (C) 2002 by keith Isdale
|
||
|
email : k_isdale@tpg.com.au
|
||
|
***************************************************************************/
|
||
|
|
||
|
/***********************************************************************************
|
||
|
* *
|
||
|
* This program is free software; you can redistribute it and/or modify *
|
||
|
* it under the terms of the GNU General Public License as published by *
|
||
|
* the Free Software Foundation; either version 2 of the License, or *
|
||
|
* (at your option) any later version. *
|
||
|
* *
|
||
|
************************************************************************************/
|
||
|
|
||
|
#ifndef XSLDBGDEBUGGER_H
|
||
|
#define XSLDBGDEBUGGER_H
|
||
|
|
||
|
#include <qevent.h>
|
||
|
#include "libxsldbg/xsldbgmsg.h" /* needed for XsldbgMessageEnum */
|
||
|
#include "libqtnotfier/xsldbgdebuggerbase.h"
|
||
|
|
||
|
#include "xsldbginspector.h"
|
||
|
|
||
|
|
||
|
/**
|
||
|
*@author Keith Isdale
|
||
|
*/
|
||
|
|
||
|
class QStringList;
|
||
|
|
||
|
class XsldbgWalkSpeedImpl;
|
||
|
|
||
|
class XsldbgDebugger : public XsldbgDebuggerBase {
|
||
|
Q_OBJECT
|
||
|
|
||
|
public:
|
||
|
XsldbgDebugger();
|
||
|
~XsldbgDebugger();
|
||
|
|
||
|
/** */
|
||
|
void setInspector(XsldbgInspector *inspector);
|
||
|
|
||
|
/** Get the name of source file from xsldbg*/
|
||
|
QString sourceFileName();
|
||
|
|
||
|
/** Get the name of data file from xsldbg*/
|
||
|
QString dataFileName();
|
||
|
|
||
|
/** Get the name of output file from xsldbg*/
|
||
|
QString outputFileName();
|
||
|
|
||
|
/** Tell quanta to move its cursor to file and line number supplied */
|
||
|
void gotoLine(QString fileName, int lineNo, bool breakpoint = false);
|
||
|
|
||
|
/** Set a xsldbg option */
|
||
|
void setOption(const char *name, bool value);
|
||
|
|
||
|
bool event(QEvent *e);
|
||
|
void timerEvent(QTimerEvent *e);
|
||
|
|
||
|
void setOutputFileActive(bool b) {outputFileActive = b;};
|
||
|
|
||
|
/* helper function to handle differences between URI's in Qt/KDE and libxml2 */
|
||
|
static QString fixLocalPaths(QString & file);
|
||
|
|
||
|
private:
|
||
|
/** */
|
||
|
bool outputFileActive;
|
||
|
|
||
|
public slots:
|
||
|
/** start xsldbg */
|
||
|
bool start();
|
||
|
|
||
|
/** stop xsldbg */
|
||
|
bool stop();
|
||
|
|
||
|
/** send text to xsldbg, if wait is true then wait for the reply */
|
||
|
void fakeInput(QString text, bool wait);
|
||
|
|
||
|
/** Display configure dialog */
|
||
|
void slotConfigure();
|
||
|
|
||
|
/** Config window closed */
|
||
|
void slotConfigClosed();
|
||
|
|
||
|
/** Step to next instruction */
|
||
|
void slotStepCmd();
|
||
|
|
||
|
/** Continue to next break point */
|
||
|
void slotContinueCmd();
|
||
|
|
||
|
/** Restart xsldbg with selected xsl/xml file */
|
||
|
void slotRunCmd();
|
||
|
|
||
|
/** Walk throught shtylesheet at a fixed speed
|
||
|
@param speed : Must be a value of 0 to 9, where 1 mean fast, 9 means slow, and 0 means stop
|
||
|
*/
|
||
|
void slotWalkSpeed(int speed);
|
||
|
|
||
|
/** Present a dialog for use to choose walk speed */
|
||
|
void slotWalkCmd();
|
||
|
|
||
|
/** Stop walking imediately */
|
||
|
void slotWalkStopCmd();
|
||
|
|
||
|
/**
|
||
|
Start xslbg's trace mode, where output will be sent to to message window.
|
||
|
Can only be be stopped by using "exit" tool button and killing xsldbg */
|
||
|
void slotTraceCmd();
|
||
|
|
||
|
/** Add breakpoint at given file and line number */
|
||
|
void slotBreakCmd(QString fileName, int lineNumber);
|
||
|
|
||
|
/** Add breakpoint at given template name*/
|
||
|
void slotBreakCmd(QString templateName, QString modeName);
|
||
|
|
||
|
/** Toggle the enabling of break point at given file and line number */
|
||
|
void slotEnableCmd(QString fileName, int lineNumber);
|
||
|
|
||
|
/** Enable break point for given breakpoint id */
|
||
|
void slotEnableCmd(int id);
|
||
|
|
||
|
/** Delete break point at given file and line number */
|
||
|
void slotDeleteCmd(QString fileName, int lineNumber);
|
||
|
|
||
|
/** Delete break point for given breakpoint id */
|
||
|
void slotDeleteCmd(int id);
|
||
|
|
||
|
/** Switch to view of XSL source */
|
||
|
void slotSourceCmd();
|
||
|
|
||
|
/* switch to the output document */
|
||
|
void slotShowDocument();
|
||
|
|
||
|
/** Switch to view of XML data */
|
||
|
void slotDataCmd();
|
||
|
|
||
|
/** Stop xsldg, must use start after this command */
|
||
|
void slotExitCmd();
|
||
|
|
||
|
/** Print the result of evaluating xPathExpression to the message window */
|
||
|
void slotCatCmd(QString xPathExpression);
|
||
|
|
||
|
/** Move to line specified by xPathExpression */
|
||
|
void slotCdCmd(QString xPathExpression);
|
||
|
|
||
|
/** Set a libxslt variable to xPathExpression */
|
||
|
void slotSetVariableCmd(QString variableName, QString xPathExpression);
|
||
|
signals: // Signals
|
||
|
// generated after first message is received from xsldbg
|
||
|
void debuggerReady();
|
||
|
|
||
|
private:
|
||
|
bool initialized;
|
||
|
|
||
|
/* xsldbg config and inspection dialog */
|
||
|
XsldbgInspector *inspector;
|
||
|
|
||
|
/**Walk speed dialog */
|
||
|
XsldbgWalkSpeedImpl *walkDialog;
|
||
|
bool readMsg;
|
||
|
bool procMsg;
|
||
|
|
||
|
/* copy text to output only if no furher output us requested */
|
||
|
XsldbgMessageEnum lastType;
|
||
|
int updateTimerID;
|
||
|
bool addMsg;
|
||
|
|
||
|
QStringList commandQue;
|
||
|
|
||
|
};
|
||
|
|
||
|
#endif
|