[Libguestfs] [PATCH 1/2] p2v: Factor out code for parsing vcpus & memory from conversion dialog.

Richard W.M. Jones rjones at redhat.com
Tue May 5 18:08:37 UTC 2015


On Tue, May 05, 2015 at 04:32:47PM +0200, Pino Toscano wrote:
> On Tuesday 05 May 2015 15:13:16 Richard W.M. Jones wrote:
> > No functional change, just code refactoring.
> > ---
> >  p2v/gui.c | 42 ++++++++++++++++++++++++++++++------------
> >  1 file changed, 30 insertions(+), 12 deletions(-)
> > 
> > diff --git a/p2v/gui.c b/p2v/gui.c
> > index 7e9de0d..bc762c2 100644
> > --- a/p2v/gui.c
> > +++ b/p2v/gui.c
> > @@ -375,6 +375,8 @@ static void set_interfaces_from_ui (struct config *);
> >  static void conversion_back_clicked (GtkWidget *w, gpointer data);
> >  static void start_conversion_clicked (GtkWidget *w, gpointer data);
> >  static void notify_ui_callback (int type, const char *data);
> > +static int get_vcpus_from_conv_dlg (void);
> > +static uint64_t get_memory_from_conv_dlg (void);
> >  
> >  enum {
> >    DISKS_COL_CONVERT = 0,
> > @@ -1051,6 +1053,32 @@ conversion_back_clicked (GtkWidget *w, gpointer data)
> >    gtk_widget_set_sensitive (next_button, FALSE);
> >  }
> >  
> > +static int
> > +get_vcpus_from_conv_dlg (void)
> > +{
> > +  const char *str;
> > +  int i;
> > +
> > +  str = gtk_entry_get_text (GTK_ENTRY (vcpus_entry));
> > +  if (sscanf (str, "%d", &i) == 1 && i > 0)
> > +    return i;
> > +  else
> > +    return 1;
> > +}
> > +
> > +static uint64_t
> > +get_memory_from_conv_dlg (void)
> > +{
> > +  const char *str;
> > +  uint64_t i;
> > +
> > +  str = gtk_entry_get_text (GTK_ENTRY (memory_entry));
> > +  if (sscanf (str, "%" SCNu64, &i) == 1 && i >= 256)
> > +    return i * 1024 * 1024;
> > +  else
> > +    return UINT64_C (1024) * 1024 * 1024;
> > +}
> > +
> >  /*----------------------------------------------------------------------*/
> >  /* Running dialog. */
> >  
> > @@ -1174,7 +1202,6 @@ static void
> >  start_conversion_clicked (GtkWidget *w, gpointer data)
> >  {
> >    struct config *config = data;
> > -  int i;
> >    const char *str;
> >    char *str2;
> >    GtkWidget *dlg;
> > @@ -1200,17 +1227,8 @@ start_conversion_clicked (GtkWidget *w, gpointer data)
> >      return;
> >    }
> >  
> > -  str = gtk_entry_get_text (GTK_ENTRY (vcpus_entry));
> > -  if (sscanf (str, "%d", &i) == 1 && i > 0)
> > -    config->vcpus = i;
> > -  else
> > -    config->vcpus = 1;
> > -
> > -  str = gtk_entry_get_text (GTK_ENTRY (memory_entry));
> > -  if (sscanf (str, "%d", &i) == 1 && i >= 256)
> > -    config->memory = (uint64_t) i * 1024 * 1024;
> > -  else
> > -    config->memory = 1024 * 1024 * 1024;
> > +  config->vcpus = get_vcpus_from_conv_dlg ();
> > +  config->memory = get_memory_from_conv_dlg ();
> >  
> >    config->verbose =
> >      gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (debug_button));
> 
> Hm shouldn't vcpus_entry and memory_entry be some kind of numeric input
> widgets, then? Something like GtkSpinButton.

Possibly, but don't you just hate those kinds of widgets :-?

That is a bigger change than just the fix for this bug.

Rich.

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
virt-builder quickly builds VMs from scratch
http://libguestfs.org/virt-builder.1.html




More information about the Libguestfs mailing list