[virt-tools-list] [PATCH 1/2] error: new helper function to embed customized widget into dialog

Cole Robinson crobinso at redhat.com
Mon Jun 24 16:36:24 UTC 2013


On 06/24/2013 06:11 AM, Guannan Ren wrote:
> helper function: show_info_with_widget()
> Widget argument has to be type of Gtk.VBox
> ---
>  virtManager/error.py | 19 +++++++++++++++----
>  1 file changed, 15 insertions(+), 4 deletions(-)
> 
> diff --git a/virtManager/error.py b/virtManager/error.py
> index e30d121..cbaf51a 100644
> --- a/virtManager/error.py
> +++ b/virtManager/error.py
> @@ -28,11 +28,15 @@ from virtManager.baseclass import vmmGObject
>  
>  
>  def _launch_dialog(dialog, primary_text, secondary_text, title,
> -                   sync=True):
> +                   widget=None, sync=True):
>      dialog.set_property("text", primary_text)
>      dialog.format_secondary_text(secondary_text or None)
>      dialog.set_title(title)
>  
> +    if widget:
> +        # widget is of type Gtk.VBox
> +        dialog.get_content_area().add(widget)
> +
>      res = False
>      if sync:
>          res = dialog.run()
> @@ -92,7 +96,7 @@ class vmmErrorDialog(vmmGObject):
>      ###################################
>  
>      def _simple_dialog(self, dialog_type, buttons, text1,
> -                       text2, title, async=False):
> +                       text2, title, widget=None, async=False):
>  
>          dialog = Gtk.MessageDialog(self.get_parent(),
>                                     flags=Gtk.DialogFlags.DESTROY_WITH_PARENT,
> @@ -104,6 +108,7 @@ class vmmErrorDialog(vmmGObject):
>  
>          return _launch_dialog(self._simple,
>                                text1, text2 or "", title or "",
> +                              widget=widget,
>                                sync=not async)
>  
>      def val_err(self, text1, text2=None, title=_("Input Error"), async=True):
> @@ -121,13 +126,19 @@ class vmmErrorDialog(vmmGObject):
>          self._simple_dialog(dtype, buttons,
>                              str(text1),
>                              text2 and str(text2) or "",
> -                            str(title), async)
> +                            str(title), None, async)
>          return False
>  
>      def show_info(self, text1, text2=None, title="", async=True):
>          dtype = Gtk.MessageType.INFO
>          buttons = Gtk.ButtonsType.OK
> -        self._simple_dialog(dtype, buttons, text1, text2, title, async)
> +        self._simple_dialog(dtype, buttons, text1, text2, title, None, async)
> +        return False
> +
> +    def show_info_with_widget(self, text1, widget, text2=None, title="", async=True):
> +        dtype = Gtk.MessageType.INFO
> +        buttons = Gtk.ButtonsType.OK
> +        self._simple_dialog(dtype, buttons, text1, text2, title, widget, async)
>          return False
>  

Just add a widget=None argument to the show_info helper to save adding this
new function which involves more typing.

Thanks,
Cole




More information about the virt-tools-list mailing list