diff options
Diffstat (limited to 'kxsldbg/kxsldbgpart/xsldbgcallstackimpl.cpp')
-rw-r--r-- | kxsldbg/kxsldbgpart/xsldbgcallstackimpl.cpp | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/kxsldbg/kxsldbgpart/xsldbgcallstackimpl.cpp b/kxsldbg/kxsldbgpart/xsldbgcallstackimpl.cpp new file mode 100644 index 00000000..5592e4e6 --- /dev/null +++ b/kxsldbg/kxsldbgpart/xsldbgcallstackimpl.cpp @@ -0,0 +1,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" |