[virt-tools-list] [PATCH virt-viewer 05/10] remote-viewer: Make ovirt-foreign-menu a property
Christophe Fergeau
cfergeau at redhat.com
Wed Jan 18 12:53:01 UTC 2017
On Wed, Jan 18, 2017 at 10:08:42AM -0200, Eduardo Lima (Etrunko) wrote:
> On 18/01/17 09:53, Eduardo Lima (Etrunko) wrote:
> > On 17/01/17 14:00, Christophe Fergeau wrote:
> >> 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).
> >
> >
> > No objections, I will change it.
>
>
> Thinking better about this, it is not possible to make it a construct
> only, because the ovirt object is created later on the process, when
> remote-viewer has already started. Also, there is the possibility of the
> pointer being set or not, depending on how the application was invoked.
I don't understand what you mean here. In the part of the code quoted
above, a RemoteViewerISOListDialog instance is created, and right after
that, we set self->priv->foreign_menu on that instance, so in this case,
a CONSTRUCT_ONLY property would be fine.
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/20170118/c9bdcea9/attachment.sig>
More information about the virt-tools-list
mailing list