[glibmm] Missing parts of the last commit
- From: Murray Cumming <murrayc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [glibmm] Missing parts of the last commit
- Date: Tue, 6 Sep 2011 07:12:23 +0000 (UTC)
commit a468dba079f998cd26d9d78ff4214754db9c799f
Author: Murray Cumming <murrayc murrayc com>
Date: Tue Sep 6 09:12:18 2011 +0200
Missing parts of the last commit
glib/src/variant.ccg | 26 +++++++++++++-------------
tests/glibmm_variant/main.cc | 10 ++++++++++
2 files changed, 23 insertions(+), 13 deletions(-)
---
diff --git a/glib/src/variant.ccg b/glib/src/variant.ccg
index 5b47bf9..3c14cd9 100644
--- a/glib/src/variant.ccg
+++ b/glib/src/variant.ccg
@@ -18,7 +18,7 @@
#include <glibmm/variant.h>
#include <glibmm/utility.h>
#include <glib.h>
-//#include <iostream>
+#include <iostream>
namespace Glib
{
@@ -362,13 +362,13 @@ Variant<type_vec_ustring>::create(const type_vec_ustring& data)
iter < data.end(); iter++)
{
g_variant_builder_add(builder,
- reinterpret_cast<gchar*>(element_variant_type.gobj()), iter->c_str());
+ element_variant_type.get_string().c_str(), iter->c_str());
}
// Create the variant using the builder.
Variant<type_vec_ustring> result =
Variant<type_vec_ustring>(g_variant_new(
- reinterpret_cast<gchar*>(array_variant_type.gobj()), builder));
+ array_variant_type.get_string().c_str(), builder));
// Remove the floating reference (since it is newly created).
g_variant_ref_sink(result.gobj());
@@ -415,7 +415,7 @@ VariantIter Variant<type_vec_ustring>::get_iter() const
// Get the GVariantIter.
GVariantIter* g_iter = 0;
g_variant_get(const_cast<GVariant*>(gobj()),
- reinterpret_cast<gchar*>(array_variant_type.gobj()), &g_iter);
+ array_variant_type.get_string().c_str(), &g_iter);
return VariantIter(g_iter);
}
@@ -442,26 +442,26 @@ Variant<type_vec_string>
Variant<type_vec_string>::create(const type_vec_string& data)
{
// Get the variant type of the elements.
- VariantType element_variant_type = Variant<std::string>::variant_type();
+ const VariantType element_variant_type = Variant<std::string>::variant_type();
// Get the variant type of the array.
- VariantType array_variant_type = Variant<type_vec_string>::variant_type();
-
+ const VariantType array_variant_type = Variant<type_vec_string>::variant_type();
+
// Create a GVariantBuilder to build the array.
GVariantBuilder* builder = g_variant_builder_new(array_variant_type.gobj());
-
+
// Add the elements of the vector into the builder.
for(type_vec_string::const_iterator iter = data.begin();
iter < data.end(); iter++)
{
g_variant_builder_add(builder,
- reinterpret_cast<gchar*>(element_variant_type.gobj()), iter->c_str());
+ element_variant_type.get_string().c_str(), iter->c_str());
}
// Create the variant using the builder.
Variant<type_vec_string> result =
Variant<type_vec_string>(g_variant_new(
- reinterpret_cast<gchar*>(array_variant_type.gobj()), builder));
+ array_variant_type.get_string().c_str(), builder));
// Remove the floating reference (since it is newly created).
g_variant_ref_sink(result.gobj());
@@ -500,15 +500,15 @@ type_vec_string Variant<type_vec_string>::get() const
VariantIter Variant<type_vec_string>::get_iter() const
{
// Get the variant type of the elements.
- VariantType element_variant_type = Variant<std::string>::variant_type();
+ const VariantType element_variant_type = Variant<std::string>::variant_type();
// Get the variant type of the array.
- VariantType array_variant_type = Variant<type_vec_string>::variant_type();
+ const VariantType array_variant_type = Variant<type_vec_string>::variant_type();
// Get the GVariantIter.
GVariantIter* g_iter = 0;
g_variant_get(const_cast<GVariant*>(gobj()),
- reinterpret_cast<gchar*>(array_variant_type.gobj()), &g_iter);
+ array_variant_type.get_string().c_str(), &g_iter);
return VariantIter(g_iter);
}
diff --git a/tests/glibmm_variant/main.cc b/tests/glibmm_variant/main.cc
index 816406e..f8de65d 100644
--- a/tests/glibmm_variant/main.cc
+++ b/tests/glibmm_variant/main.cc
@@ -14,6 +14,7 @@ int main(int, char**)
{
Glib::init();
+ //vector<int>:
const int int_list[] = {1, 2, 3, 4, 5, 6, 7, 8};
std::vector<int> int_vector(int_list,
@@ -46,6 +47,15 @@ int main(int, char**)
integers_variant.get_child(index) << '.' << std::endl;
ostr << std::endl;
+
+
+ //vector<std::string>:
+ std::vector<std::string> vec_strings;
+ vec_strings.push_back("a");
+ Glib::Variant<std::vector<std::string> > variant_vec_strings =
+ Glib::Variant<std::vector<std::string> >::create(vec_strings);
+
+ //Dict:
typedef std::pair<Glib::ustring, Glib::ustring> TypeDictEntry;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]