• Skip to content
  • Skip to link menu
KDE API Reference
  • KDE API Reference
  • kdesdk API Reference
  • KDE Home
  • Contact Us
 

okteta

  • sources
  • kde-4.12
  • kdesdk
  • okteta
  • kasten
  • controllers
  • view
  • structures
  • parsers
scriptvalueconverter.cpp
Go to the documentation of this file.
1 /*
2  * This file is part of the Okteta Kasten Framework, made within the KDE community.
3  *
4  * Copyright 2010, 2011, 2012 Alex Richardson <alex.richardson@gmx.de>
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
9  * version 2.1 of the License, or (at your option) version 3, or any
10  * later version accepted by the membership of KDE e.V. (or its
11  * successor approved by the membership of KDE e.V.), which shall
12  * act as a proxy defined in Section 6 of version 3 of the license.
13  *
14  * This library is distributed in the hope that it will be useful,
15  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17  * Lesser General Public License for more details.
18  *
19  * You should have received a copy of the GNU Lesser General Public
20  * License along with this library. If not, see <http://www.gnu.org/licenses/>.
21  */
22 
23 #include "scriptvalueconverter.h"
24 #include "scriptvalueconverter_p.h"
25 #include "../script/scriptlogger.h"
26 
27 #include <QString>
28 #include <QVector>
29 #include <QScriptValue>
30 #include <QScriptEngine>
31 #include <QScriptValueIterator>
32 
33 namespace ScriptValueConverter
34 {
35 
36 DataInformation* convert(const QScriptValue& value, const QString& name, ScriptLogger* logger,
37  DataInformation* parent)
38 {
39  //TODO Q_CHECK_PTR(parent)
40  const ParserInfo info(name, logger, parent, value.engine());
41  return toDataInformation(value, info); //could be NULL
42 }
43 
44 QVector<DataInformation*> convertValues(const QScriptValue& value, ScriptLogger* logger,
45  DataInformation* parent)
46 {
47  //TODO Q_CHECK_PTR(parent);
48  QVector<DataInformation*> ret;
49  QScriptValueIterator it(value);
50  const bool isArray = value.isArray();
51  while (it.hasNext())
52  {
53  it.next();
54  if (isArray && it.name() == QLatin1String("length"))
55  continue; //skip the length property of arrays
56  const ParserInfo info(it.name(), logger, parent, value.engine());
57  DataInformation* inf = toDataInformation(it.value(), info);
58 
59  if (inf)
60  ret.append(inf);
61  else //TODO remove the null check once parent must be nonnull
62  logger->info(parent ? parent->fullObjectPath() : QString()).nospace()
63  << "Could not convert property '" << it.name() << "'.";
64  }
65  return ret;
66 }
67 
68 } //namespace ScriptValueConverter
DataInformation
Interface that must be implemented by all datatypes.
Definition: datainformation.h:67
ScriptValueConverter::convertValues
QVector< DataInformation * > convertValues(const QScriptValue &value, ScriptLogger *logger, DataInformation *parent)
If the value is a list of elements or an object with many elements.
Definition: scriptvalueconverter.cpp:44
QVector< DataInformation * >
ScriptValueConverter::toDataInformation
DataInformation * toDataInformation(const QScriptValue &value, const ParserInfo &info)
ScriptLogger
NOT THREAD SAFE!
Definition: scriptlogger.h:35
ParserInfo
For use by the parsers so that the functions don't have as many parameters.
Definition: parserutils.h:48
ScriptLogger::info
QDebug info(const DataInformation *origin)
Definition: scriptlogger.h:66
ScriptValueConverter::convert
DataInformation * convert(const QScriptValue &value, const QString &name, ScriptLogger *logger, DataInformation *parent)
If the value is one element.
Definition: scriptvalueconverter.cpp:36
scriptvalueconverter_p.h
scriptvalueconverter.h
This file is part of the KDE documentation.
Documentation copyright © 1996-2014 The KDE developers.
Generated on Tue Oct 14 2014 23:04:09 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

okteta

Skip menu "okteta"
  • Main Page
  • Namespace List
  • Namespace Members
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members
  • Related Pages

kdesdk API Reference

Skip menu "kdesdk API Reference"
  • kapptemplate
  • kcachegrind
  • kompare
  • lokalize
  • okteta
  • umbrello
  •   umbrello

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal