~ubuntu-branches/ubuntu/precise/grantlee/precise

« back to all changes in this revision

Viewing changes to defaulttags/debug.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Harald Sitter
  • Date: 2010-06-11 23:41:45 UTC
  • Revision ID: james.westby@ubuntu.com-20100611234145-oas7rhdrbwy8j55c
Tags: upstream-0.1.1
ImportĀ upstreamĀ versionĀ 0.1.1

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
  This file is part of the Grantlee template system.
 
3
 
 
4
  Copyright (c) 2009,2010 Stephen Kelly <steveire@gmail.com>
 
5
 
 
6
  This library is free software; you can redistribute it and/or
 
7
  modify it under the terms of the GNU Lesser General Public
 
8
  License as published by the Free Software Foundation; either version
 
9
  2 of the Licence, or (at your option) any later version.
 
10
 
 
11
  This library is distributed in the hope that it will be useful,
 
12
  but WITHOUT ANY WARRANTY; without even the implied warranty of
 
13
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 
14
  Library General Public License for more details.
 
15
 
 
16
  You should have received a copy of the GNU Lesser General Public
 
17
  License along with this library.  If not, see <http://www.gnu.org/licenses/>.
 
18
 
 
19
*/
 
20
 
 
21
#include "debug.h"
 
22
 
 
23
#include <QtCore/QStringList>
 
24
#include "parser.h"
 
25
 
 
26
DebugNodeFactory::DebugNodeFactory()
 
27
{
 
28
 
 
29
}
 
30
 
 
31
Node* DebugNodeFactory::getNode( const QString &tagContent, Parser *p ) const
 
32
{
 
33
  Q_UNUSED( tagContent )
 
34
  return new DebugNode( p );
 
35
}
 
36
 
 
37
 
 
38
DebugNode::DebugNode( QObject *parent )
 
39
    : Node( parent )
 
40
{
 
41
 
 
42
}
 
43
 
 
44
void DebugNode::render( OutputStream *stream, Context *c )
 
45
{
 
46
  QString ret;
 
47
  int i = 0;
 
48
  QHash<QString, QVariant> h = c->stackHash( i++ );
 
49
 
 
50
  ret += "\n\nContext:\n";
 
51
  while ( !h.isEmpty() ) {
 
52
    QHashIterator<QString, QVariant> it( h );
 
53
    while ( it.hasNext() ) {
 
54
      it.next();
 
55
      ret += "key " + it.key() + ", ";
 
56
      ret += "type ";
 
57
      ret.append( it.value().typeName() );
 
58
      ret += '\n';
 
59
    }
 
60
    h = c->stackHash( i++ );
 
61
  }
 
62
 
 
63
  ret += "End context:\n\n";
 
64
 
 
65
  ( *stream ) << ret;
 
66
}
 
67