コード例 #1
0
ファイル: dbus_object.cpp プロジェクト: rferrazz/autopilot-qt
DBusNode::Ptr GetNodeWithId(int object_id)
{
    QString query = QString("//*[id=%1]").arg(object_id);
    QList<DBusNode::Ptr> objects = GetNodesThatMatchQuery(query);

    if (objects.isEmpty())
    {
        qWarning() << "No Object with with id" << object_id << "found in object tree.";
        return DBusNode::Ptr();
    }

    return objects.at(0);
}
コード例 #2
0
GVariant* Introspect(std::string const& query_string) {
  //g_debug("introspecting our current GTK+ context");

  GVariantBuilder* builder = g_variant_builder_new(G_VARIANT_TYPE("a(sv)"));
  std::list<GtkNode::Ptr> node_list = GetNodesThatMatchQuery(query_string);

  for (auto node: node_list) {
    std::string object_path = node->GetPath();
    g_variant_builder_add(builder, "(sv)", object_path.c_str(), node->Introspect());
    //g_debug("dumped object '%s'", object_path.c_str());
  }

  GVariant* state = g_variant_new("a(sv)", builder);
  g_variant_builder_unref(builder);
  return state;
}