[virt-tools-list] [PATCH virt-viewer 05/10] remote-viewer: Make ovirt-foreign-menu a property

Christophe Fergeau cfergeau at redhat.com
Tue Jan 17 16:00:33 UTC 2017


On Fri, Jan 13, 2017 at 07:11:07PM -0200, Eduardo Lima (Etrunko) wrote:
> The OvirtForeignMenu pointer is needed by the new ISO list dialog, and
> we make it acessible via property to avoid interdependency between
> objects.
> 
> Signed-off-by: Eduardo Lima (Etrunko) <etrunko at redhat.com>
> ---
>  src/remote-viewer-iso-list-dialog.c | 31 +++++++++++++++++++++++--------
>  src/remote-viewer-iso-list-dialog.h |  2 +-
>  src/remote-viewer.c                 | 37 +++++++++++++++++++++++++++++++++++++
>  3 files changed, 61 insertions(+), 9 deletions(-)
> 
> diff --git a/src/remote-viewer-iso-list-dialog.c b/src/remote-viewer-iso-list-dialog.c
> index 0fbea28..858719c 100644
> --- a/src/remote-viewer-iso-list-dialog.c
> +++ b/src/remote-viewer-iso-list-dialog.c
> @@ -24,6 +24,7 @@
>  
>  #include "remote-viewer-iso-list-dialog.h"
>  #include "virt-viewer-util.h"
> +#include "ovirt-foreign-menu.h"
>  
>  G_DEFINE_TYPE(RemoteViewerISOListDialog, remote_viewer_iso_list_dialog, GTK_TYPE_DIALOG)
>  
> @@ -33,11 +34,16 @@ G_DEFINE_TYPE(RemoteViewerISOListDialog, remote_viewer_iso_list_dialog, GTK_TYPE
>  struct _RemoteViewerISOListDialogPrivate
>  {
>      GtkWidget *stack;
> +    OvirtForeignMenu *foreign_menu;
>  };
>  
>  static void
>  remote_viewer_iso_list_dialog_dispose(GObject *object)
>  {
> +    RemoteViewerISOListDialog *self = REMOTE_VIEWER_ISO_LIST_DIALOG(object);
> +    RemoteViewerISOListDialogPrivate *priv = self->priv;
> +
> +    g_clear_object(&priv->foreign_menu);
>      G_OBJECT_CLASS(remote_viewer_iso_list_dialog_parent_class)->dispose(object);
>  }
>  
> @@ -94,13 +100,22 @@ remote_viewer_iso_list_dialog_init(RemoteViewerISOListDialog *self)
>  }
>  
>  GtkWidget *
> -remote_viewer_iso_list_dialog_new(GtkWindow *parent)
> +remote_viewer_iso_list_dialog_new(GtkWindow *parent, GObject *foreign_menu)
>  {
> -    return g_object_new(REMOTE_VIEWER_TYPE_ISO_LIST_DIALOG,
> -                        "title", _("Change CD"),
> -                        "transient-for", parent,
> -                        "border-width", 18,
> -                        "default-width", 400,
> -                        "default-height", 300,
> -                        NULL);
> +    GtkWidget *dialog;
> +    RemoteViewerISOListDialog *self;
> +
> +    g_return_val_if_fail(foreign_menu != NULL, NULL);
> +
> +    dialog = g_object_new(REMOTE_VIEWER_TYPE_ISO_LIST_DIALOG,
> +                          "title", _("Change CD"),
> +                          "transient-for", parent,
> +                          "border-width", 18,
> +                          "default-width", 400,
> +                          "default-height", 300,
> +                          NULL);
> +
> +    self = REMOTE_VIEWER_ISO_LIST_DIALOG(dialog);
> +    self->priv->foreign_menu = OVIRT_FOREIGN_MENU(g_object_ref(foreign_menu));

Fwiw, a construct-only GObject property would be more expected (but you
can keep it this way i f you think it's better).

> +    return dialog;
>  }
> diff --git a/src/remote-viewer-iso-list-dialog.h b/src/remote-viewer-iso-list-dialog.h
> index def841b..8b936f5 100644
> --- a/src/remote-viewer-iso-list-dialog.h
> +++ b/src/remote-viewer-iso-list-dialog.h
> @@ -51,7 +51,7 @@ struct _RemoteViewerISOListDialogClass
>  
>  GType remote_viewer_iso_list_dialog_get_type(void) G_GNUC_CONST;
>  
> -GtkWidget *remote_viewer_iso_list_dialog_new(GtkWindow *parent);
> +GtkWidget *remote_viewer_iso_list_dialog_new(GtkWindow *parent, GObject *foreign_menu);
>  
>  G_END_DECLS
>  

The remote-viewer-iso-list-dialog.[ch] changes are odd in this patch,
they don't have much to do with the added
RemoteViewer::ovirt-foreign-menu property at this point.
I think this part of the patch can probably be merged with the previous
one, the property addition can be done before that.

Christophe
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 801 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/virt-tools-list/attachments/20170117/7035e2c4/attachment.sig>


More information about the virt-tools-list mailing list