[gnome-software/wip/rancell/reviews] Don't unnecessarily try and share SoupSession
- From: Robert Ancell <rancell src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-software/wip/rancell/reviews] Don't unnecessarily try and share SoupSession
- Date: Thu, 11 Feb 2016 03:14:41 +0000 (UTC)
commit 1828e52d4a84a3610aea48883a6114d828236de0
Author: Robert Ancell <robert ancell canonical com>
Date: Thu Feb 11 16:03:26 2016 +1300
Don't unnecessarily try and share SoupSession
src/plugins/gs-plugin-ubuntu-reviews.c | 2 -
src/plugins/gs-ubuntu-login-dialog.c | 72 ++++++++------------------------
2 files changed, 18 insertions(+), 56 deletions(-)
---
diff --git a/src/plugins/gs-plugin-ubuntu-reviews.c b/src/plugins/gs-plugin-ubuntu-reviews.c
index 3c42d3a..0b19eaf 100644
--- a/src/plugins/gs-plugin-ubuntu-reviews.c
+++ b/src/plugins/gs-plugin-ubuntu-reviews.c
@@ -950,8 +950,6 @@ show_login_dialog (gpointer user_data)
GsPluginPrivate *priv = context->plugin->priv;
GtkWidget *dialog;
- g_object_set (dialog, "session", priv->session, NULL);
-
dialog = gs_ubuntu_login_dialog_new ();
switch (gtk_dialog_run (GTK_DIALOG (dialog))) {
case GTK_RESPONSE_DELETE_EVENT:
diff --git a/src/plugins/gs-ubuntu-login-dialog.c b/src/plugins/gs-ubuntu-login-dialog.c
index 3506907..5a3dc49 100644
--- a/src/plugins/gs-ubuntu-login-dialog.c
+++ b/src/plugins/gs-ubuntu-login-dialog.c
@@ -20,6 +20,7 @@
*/
#include "gs-ubuntu-login-dialog.h"
+#include "gs-utils.h"
#include <glib/gi18n.h>
#include <json-glib/json-glib.h>
@@ -48,7 +49,6 @@ struct _GsUbuntuLoginDialog
SoupSession *session;
- gchar *host;
gchar *consumer_key;
gchar *consumer_secret;
gchar *token_key;
@@ -59,7 +59,6 @@ enum
{
PROP_0,
PROP_SESSION,
- PROP_HOST,
PROP_REMEMBER,
PROP_CONSUMER_KEY,
PROP_CONSUMER_SECRET,
@@ -70,6 +69,16 @@ enum
G_DEFINE_TYPE (GsUbuntuLoginDialog, gs_ubuntu_login_dialog, GTK_TYPE_DIALOG)
static void
+gs_ubuntu_login_dialog_dispose (GObject *object)
+{
+ GsUbuntuLoginDialog *self = GS_UBUNTU_LOGIN_DIALOG (object);
+
+ g_clear_object (&self->session);
+
+ G_OBJECT_CLASS (gs_ubuntu_login_dialog_parent_class)->dispose (object);
+}
+
+static void
gs_ubuntu_login_dialog_finalize (GObject *object)
{
GsUbuntuLoginDialog *self = GS_UBUNTU_LOGIN_DIALOG (object);
@@ -91,14 +100,6 @@ gs_ubuntu_login_dialog_get_property (GObject *object,
GsUbuntuLoginDialog *self = GS_UBUNTU_LOGIN_DIALOG (object);
switch (property_id) {
- case PROP_SESSION:
- g_value_set_object (value, self->session);
- break;
-
- case PROP_HOST:
- g_value_set_string (value, self->host);
- break;
-
case PROP_REMEMBER:
g_value_set_boolean (value, gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON
(self->remember_check)));
break;
@@ -126,38 +127,15 @@ gs_ubuntu_login_dialog_get_property (GObject *object,
}
static void
-gs_ubuntu_login_dialog_set_property (GObject *object,
- guint property_id,
- const GValue *value,
- GParamSpec *pspec)
-{
- GsUbuntuLoginDialog *self = GS_UBUNTU_LOGIN_DIALOG (object);
-
- switch (property_id) {
- case PROP_SESSION:
- self->session = g_value_dup_object (value);
- break;
-
- case PROP_HOST:
- self->host = g_value_dup_string (value);
- break;
-
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
- break;
- }
-}
-
-static void
gs_ubuntu_login_dialog_class_init (GsUbuntuLoginDialogClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
GParamFlags param_flags;
+ object_class->dispose = gs_ubuntu_login_dialog_dispose;
object_class->finalize = gs_ubuntu_login_dialog_finalize;
object_class->get_property = gs_ubuntu_login_dialog_get_property;
- object_class->set_property = gs_ubuntu_login_dialog_set_property;
gtk_widget_class_set_template_from_resource (widget_class,
"/org/gnome/Software/plugins/gs-ubuntu-login-dialog.ui");
@@ -179,25 +157,6 @@ gs_ubuntu_login_dialog_class_init (GsUbuntuLoginDialogClass *klass)
param_flags = G_PARAM_READABLE | G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB;
g_object_class_install_property (object_class,
- PROP_SESSION,
- g_param_spec_object ("session",
- "session",
- "session",
- SOUP_TYPE_SESSION,
- param_flags |
- G_PARAM_WRITABLE |
- G_PARAM_CONSTRUCT));
-
- g_object_class_install_property (object_class,
- PROP_HOST,
- g_param_spec_string ("host",
- "host",
- "host",
- UBUNTU_LOGIN_HOST,
- param_flags |
- G_PARAM_WRITABLE |
- G_PARAM_CONSTRUCT));
- g_object_class_install_property (object_class,
PROP_REMEMBER,
g_param_spec_boolean ("remember",
"remember",
@@ -330,10 +289,15 @@ send_request (GsUbuntuLoginDialog *self,
gsize length;
g_autofree gchar *url = NULL;
+ if (self->session == NULL)
+ self->session = soup_session_new_with_options (SOUP_SESSION_USER_AGENT,
+ gs_user_agent (),
+ NULL);
+
body = json_gvariant_serialize_data (g_variant_ref_sink (request), &length);
g_variant_unref (request);
- url = g_strdup_printf ("%s%s", self->host, uri);
+ url = g_strdup_printf ("%s%s", UBUNTU_LOGIN_HOST, uri);
message = soup_message_new (method, url);
info = g_new0 (RequestInfo, 1);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]