summaryrefslogtreecommitdiffstats
path: root/kxsldbg/kxsldbgpart/xsldbglocalvariablesimpl.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'kxsldbg/kxsldbgpart/xsldbglocalvariablesimpl.cpp')
-rw-r--r--kxsldbg/kxsldbgpart/xsldbglocalvariablesimpl.cpp121
1 files changed, 121 insertions, 0 deletions
diff --git a/kxsldbg/kxsldbgpart/xsldbglocalvariablesimpl.cpp b/kxsldbg/kxsldbgpart/xsldbglocalvariablesimpl.cpp
new file mode 100644
index 00000000..bd39fcc8
--- /dev/null
+++ b/kxsldbg/kxsldbgpart/xsldbglocalvariablesimpl.cpp
@@ -0,0 +1,121 @@
+/***************************************************************************
+ xsldbglocalvariablesimpl.cpp - description
+ -------------------
+ begin : Sat Jan 5 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. *
+ * *
+ ***************************************************************************/
+
+#include <qlistview.h>
+#include <qlineedit.h>
+#include <qlabel.h>
+#include <qpushbutton.h>
+
+#include "xsldbglocalvariablesimpl.h"
+#include "xsldbglocallistitem.h"
+#include "xsldbgdebugger.h"
+#include <klocale.h>
+
+
+XsldbgLocalVariablesImpl::XsldbgLocalVariablesImpl(XsldbgDebugger *debugger,
+ QWidget *parent /*=0*/, const char *name /*=0*/)
+ : XsldbgLocalVariables(parent, name), XsldbgDialogBase()
+{
+ this->debugger = debugger;
+ connect(debugger, SIGNAL(variableItem(QString /*name */, QString /* templateContext*/,
+ QString /* fileName */, int /*lineNumber */,
+ QString /* select XPath */, int /* is it a local variable */)),
+ this, SLOT(slotProcVariableItem(QString /*name */, QString /* templateContext*/,
+ QString /* fileName */, int /*lineNumber */,
+ QString /* select XPath */, int /* is it a local variable */)));
+ connect(varsListView, SIGNAL(selectionChanged(QListViewItem *)),
+ this, SLOT(selectionChanged(QListViewItem*)));
+ show();
+}
+
+
+XsldbgLocalVariablesImpl::~XsldbgLocalVariablesImpl()
+{
+ debugger = 0L;
+}
+
+void XsldbgLocalVariablesImpl::slotProcVariableItem(QString name , QString templateContext,
+ QString fileName, int lineNumber,
+ QString selectXPath, int localVariable)
+{
+
+ if (!name.isNull()){
+ varsListView->insertItem(new XsldbgLocalListItem(varsListView,
+ fileName, lineNumber, name, templateContext, selectXPath, localVariable != 0));
+ }
+
+}
+
+void XsldbgLocalVariablesImpl::selectionChanged(QListViewItem *item)
+{
+ XsldbgLocalListItem *localItem = dynamic_cast<XsldbgLocalListItem*>(item);
+ if (localItem){
+ variableName->setText(localItem->getVarName());
+ xPathEdit->setText(localItem->getXPath());
+
+ if (localItem->isLocalVariable())
+ variableType->setText(i18n("Local"));
+ else
+ variableType->setText(i18n("Global"));
+
+ setExpressionButton->setEnabled(!localItem->getXPath().isEmpty());
+ xPathEdit->setEnabled(!localItem->getXPath().isEmpty());
+ debugger->gotoLine(localItem->getFileName(), localItem->getLineNumber());
+ }else{
+ // "clear" values in variable editing widgets
+ variableName->setText("");
+ xPathEdit->setText("");
+ variableType->setText("");
+ setExpressionButton->setEnabled(false);
+ xPathEdit->setEnabled(false);
+ }
+
+}
+
+void XsldbgLocalVariablesImpl::refresh()
+{
+ if (varsListView){
+ varsListView->clear();
+ debugger->fakeInput("locals -q", true) ;
+ // "clear" values in variable editing widgets
+ variableName->setText("");
+ xPathEdit->setText("");
+ variableType->setText("");
+ setExpressionButton->setEnabled(false);
+ xPathEdit->setEnabled(false);
+ }
+}
+
+void XsldbgLocalVariablesImpl::slotEvaluate()
+{
+ if (debugger != 0L)
+ debugger->slotCatCmd( expressionEdit->text() );
+}
+
+void XsldbgLocalVariablesImpl::slotSetExpression()
+{
+ if (debugger != 0L){
+ debugger->slotSetVariableCmd( variableName->text(), xPathEdit->text() );
+ refresh();
+ }
+}
+
+
+
+
+
+#include "xsldbglocalvariablesimpl.moc"