1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
|
/***************************************************************************
xsldbgcallstackimpl.cpp - description
-------------------
begin : Wed Jan 16 2002
copyright : (C) 2002 by Keith lsdale
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. *
* *
***************************************************************************/
#include <qlistview.h>
#include <qlineedit.h>
#include "xsldbgdebugger.h"
#include "xsldbgcallstackimpl.h"
#include "xsldbggloballistitem.h" /* reuse global list item variable as a template list item */
XsldbgCallStackImpl::XsldbgCallStackImpl(XsldbgDebugger *debugger,
QWidget *parent /*=0*/, const char *name /*=0*/)
: XsldbgCallStack(parent, name), XsldbgDialogBase()
{
this->debugger = debugger;
connect(debugger, SIGNAL(callStackItem(QString /* templateName*/, QString /* fileName */, int /* lineNumber */)),
this, SLOT(slotProcCallStackItem(QString /* templateName*/, QString /* fileName */, int /* lineNumber */)));
connect( callStackListView, SIGNAL(selectionChanged(QListViewItem *)),
this, SLOT(selectionChanged(QListViewItem*)));
show();
refresh();
}
XsldbgCallStackImpl::~XsldbgCallStackImpl(){
debugger = 0L;
}
void XsldbgCallStackImpl::slotProcCallStackItem(QString templateName, QString fileName , int lineNumber )
{
static int frameNo =0;
if (templateName.isNull()){
callStackListView->clear();
frameNo = 0;
}else{
/* each stack entry will have a FRAME# prefix */
callStackListView->insertItem(new XsldbgGlobalListItem(callStackListView,
fileName, lineNumber, templateName.prepend(QString::number(frameNo++)+ "# ")));
}
}
void XsldbgCallStackImpl::selectionChanged(QListViewItem *item)
{
XsldbgGlobalListItem *callStackItem = dynamic_cast<XsldbgGlobalListItem*>(item);
if (callStackItem){
debugger->gotoLine(callStackItem->getFileName(), callStackItem->getLineNumber());
}
}
void XsldbgCallStackImpl::refresh()
{
debugger->fakeInput("where", true) ;
}
#include "xsldbgcallstackimpl.moc"
|