[Spice-devel] [PATCH spice-xpi 1/6] add parseInt() and parseFloat() into Generator::generateConnectVars() output
Peter Hatina
phatina at redhat.com
Mon Oct 21 08:40:19 CEST 2013
Javascript proper casting.
---
generator/generator.cpp | 34 ++++++++++++++++++++++++++++++----
generator/generator.h | 1 +
2 files changed, 31 insertions(+), 4 deletions(-)
diff --git a/generator/generator.cpp b/generator/generator.cpp
index ee3eedd..48b34d2 100644
--- a/generator/generator.cpp
+++ b/generator/generator.cpp
@@ -157,11 +157,14 @@ void Generator::generateConnectVars()
for (it = m_attributes.begin(); it != m_attributes.end(); ++it) {
std::cout << " embed." << it->getIdentifier() << " = "
<< "document.getElementById(\""
- << it->getIdentifier() << "Toggled\").checked ? "
- << "document.getElementById(\""
+ << it->getIdentifier() << "Toggled\").checked ? ";
+ bool generated_cast = generateConnectVarsParse(*it);
+ std::cout << "document.getElementById(\""
<< it->getIdentifier() << "\")."
- << (it->getType() == Token::T_BOOLEAN ? "checked" : "value")
- << " : \"\";\n";
+ << (it->getType() == Token::T_BOOLEAN ? "checked" : "value");
+ if (generated_cast)
+ std::cout << ")";
+ std::cout << " : \"\";\n";
}
std::cout << "}\n\n</script>\n\n";
}
@@ -280,3 +283,26 @@ bool Generator::methodEnabled(const Method &method, const Method::MethodParam &p
std::set<std::string>::iterator found = s_default_methods.find(id);
return found != s_default_methods.end();
}
+
+bool Generator::generateConnectVarsParse(const Attribute &attr)
+{
+ switch (attr.getType()) {
+ case Token::T_FLOAT:
+ case Token::T_DOUBLE:
+ std::cout << "parseFloat(";
+ return true;
+ case Token::T_UNSIGNED:
+ case Token::T_SHORT:
+ case Token::T_LONG:
+ case Token::T_LONG_LONG:
+ case Token::T_OCTET:
+ case Token::T_NUMBER:
+ case Token::T_UNSIGNED_SHORT:
+ case Token::T_UNSIGNED_LONG:
+ case Token::T_UNSIGNED_LONG_LONG:
+ std::cout << "parseInt(";
+ return true;
+ }
+
+ return false;
+}
diff --git a/generator/generator.h b/generator/generator.h
index 0a9bd3f..3dfde3a 100644
--- a/generator/generator.h
+++ b/generator/generator.h
@@ -47,6 +47,7 @@ private:
static std::string attributeToHtmlElement(const Attribute &attr);
static bool attributeEnabled(const Attribute &attr);
static bool methodEnabled(const Method &method, const Method::MethodParam ¶m);
+ static bool generateConnectVarsParse(const Attribute &attr);
private:
std::list<Attribute> m_attributes;
--
Peter Hatina
ENG Server Experience, System Management
Red Hat Czech, Brno
More information about the Spice-devel
mailing list