mirror of
https://github.com/virt-manager/virt-manager.git
synced 2025-02-25 18:55:27 -06:00
details: Use VMActionMenu in top window menu
This commit is contained in:
@@ -75,41 +75,6 @@
|
||||
<property name="upper">1000000000</property>
|
||||
<property name="step_increment">10</property>
|
||||
</object>
|
||||
<object class="GtkImage" id="image177">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="stock">gtk-save</property>
|
||||
</object>
|
||||
<object class="GtkImage" id="image178">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="stock">gtk-missing-image</property>
|
||||
</object>
|
||||
<object class="GtkImage" id="image2">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="stock">gtk-media-play</property>
|
||||
</object>
|
||||
<object class="GtkImage" id="image3">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="stock">gtk-missing-image</property>
|
||||
</object>
|
||||
<object class="GtkImage" id="image4">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="stock">gtk-missing-image</property>
|
||||
</object>
|
||||
<object class="GtkImage" id="image5">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="stock">gtk-missing-image</property>
|
||||
</object>
|
||||
<object class="GtkImage" id="image6">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="stock">gtk-missing-image</property>
|
||||
</object>
|
||||
<object class="GtkImage" id="image70">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
@@ -189,7 +154,7 @@
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkMenuItem" id="virtual_machine1">
|
||||
<object class="GtkMenuItem" id="details-vm-menu">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">Virtual _Machine</property>
|
||||
@@ -198,135 +163,6 @@
|
||||
<child type="submenu">
|
||||
<object class="GtkMenu" id="virtual_machine1_menu">
|
||||
<property name="can_focus">False</property>
|
||||
<child>
|
||||
<object class="GtkImageMenuItem" id="details-menu-run">
|
||||
<property name="label" translatable="yes">_Run</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="image">image2</property>
|
||||
<property name="use_stock">False</property>
|
||||
<signal name="activate" handler="on_details_menu_run_activate" swapped="no"/>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkCheckMenuItem" id="details-menu-pause">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">_Pause</property>
|
||||
<property name="use_underline">True</property>
|
||||
<signal name="activate" handler="on_details_menu_pause_activate" swapped="no"/>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkImageMenuItem" id="details-menu-shutdown">
|
||||
<property name="label" translatable="yes">S_hut Down</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="image">image3</property>
|
||||
<property name="use_stock">False</property>
|
||||
<child type="submenu">
|
||||
<object class="GtkMenu" id="details-menu-shutdown_menu">
|
||||
<property name="can_focus">False</property>
|
||||
<child>
|
||||
<object class="GtkImageMenuItem" id="details-menu-reboot">
|
||||
<property name="label" translatable="yes">_Reboot</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="image">image4</property>
|
||||
<property name="use_stock">False</property>
|
||||
<signal name="activate" handler="on_details_menu_reboot_activate" swapped="no"/>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkImageMenuItem" id="details-menu-poweroff">
|
||||
<property name="label" translatable="yes">S_hut Down</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="image">image5</property>
|
||||
<property name="use_stock">False</property>
|
||||
<signal name="activate" handler="on_details_menu_poweroff_activate" swapped="no"/>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkImageMenuItem" id="details-menu-reset">
|
||||
<property name="label" translatable="yes">F_orce Reset</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="image">image178</property>
|
||||
<property name="use_stock">False</property>
|
||||
<signal name="activate" handler="on_details_menu_reset_activate" swapped="no"/>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkImageMenuItem" id="details-menu-destroy">
|
||||
<property name="label" translatable="yes">_Force Off</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="image">image6</property>
|
||||
<property name="use_stock">False</property>
|
||||
<signal name="activate" handler="on_details_menu_destroy_activate" swapped="no"/>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkSeparatorMenuItem" id="menuitem3">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkImageMenuItem" id="details-menu-save">
|
||||
<property name="label">_Save</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="image">image177</property>
|
||||
<property name="use_stock">False</property>
|
||||
<signal name="activate" handler="on_details_menu_save_activate" swapped="no"/>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkSeparatorMenuItem" id="separator11">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkMenuItem" id="details-menu-clone">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">_Clone</property>
|
||||
<property name="use_underline">True</property>
|
||||
<signal name="activate" handler="on_details_menu_clone_activate" swapped="no"/>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkMenuItem" id="details-menu-migrate">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">_Migrate...</property>
|
||||
<property name="use_underline">True</property>
|
||||
<signal name="activate" handler="on_details_menu_migrate_activate" swapped="no"/>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkMenuItem" id="details-menu-delete">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">_Delete...</property>
|
||||
<property name="use_underline">True</property>
|
||||
<signal name="activate" handler="on_details_menu_delete_activate" swapped="no"/>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkSeparatorMenuItem" id="separator2">
|
||||
<property name="visible">True</property>
|
||||
|
||||
@@ -638,14 +638,15 @@ class vmmDetails(vmmGObjectUI):
|
||||
self.widget("control-shutdown").set_menu(menu)
|
||||
self.widget("control-shutdown").set_icon_name("system-shutdown")
|
||||
|
||||
for name in ["details-menu-shutdown",
|
||||
"details-menu-reboot",
|
||||
"details-menu-reset",
|
||||
"details-menu-poweroff",
|
||||
"details-menu-destroy"]:
|
||||
image = Gtk.Image.new_from_icon_name("system-shutdown",
|
||||
Gtk.IconSize.MENU)
|
||||
self.widget(name).set_image(image)
|
||||
topmenu = self.widget("details-vm-menu")
|
||||
submenu = topmenu.get_submenu()
|
||||
newmenu = uihelpers.VMActionMenu(self, lambda: self.vm,
|
||||
show_open=False)
|
||||
for child in submenu.get_children():
|
||||
submenu.remove(child)
|
||||
newmenu.add(child) # pylint: disable=E1101
|
||||
topmenu.set_submenu(newmenu)
|
||||
topmenu.show_all()
|
||||
|
||||
# Add HW popup menu
|
||||
self.addhwmenu = Gtk.Menu()
|
||||
@@ -1323,7 +1324,7 @@ class vmmDetails(vmmGObjectUI):
|
||||
text = _("_Run")
|
||||
strip_text = text.replace("_", "")
|
||||
|
||||
self.widget("details-menu-run").get_child().set_label(text)
|
||||
self.widget("details-vm-menu").get_submenu().change_run_text(text)
|
||||
self.widget("control-run").set_label(strip_text)
|
||||
|
||||
def refresh_vm_state(self, ignore1=None, ignore2=None, ignore3=None):
|
||||
@@ -1332,28 +1333,21 @@ class vmmDetails(vmmGObjectUI):
|
||||
|
||||
self.toggle_toolbar(self.widget("details-menu-view-toolbar"))
|
||||
|
||||
active = vm.is_active()
|
||||
destroy = vm.is_destroyable()
|
||||
run = vm.is_runable()
|
||||
stop = vm.is_stoppable()
|
||||
paused = vm.is_paused()
|
||||
ro = vm.is_read_only()
|
||||
active = vm.is_active()
|
||||
run = vm.is_runable()
|
||||
stop = vm.is_stoppable()
|
||||
paused = vm.is_paused()
|
||||
ro = vm.is_read_only()
|
||||
|
||||
if vm.managedsave_supported:
|
||||
self.change_run_text(vm.hasSavedImage())
|
||||
|
||||
self.widget("details-menu-destroy").set_sensitive(destroy)
|
||||
self.widget("control-run").set_sensitive(run)
|
||||
self.widget("details-menu-run").set_sensitive(run)
|
||||
|
||||
self.widget("details-menu-migrate").set_sensitive(stop)
|
||||
self.widget("control-shutdown").set_sensitive(stop)
|
||||
self.widget("control-shutdown").get_menu().update_widget_states(vm)
|
||||
self.widget("details-menu-shutdown").set_sensitive(stop)
|
||||
self.widget("details-menu-save").set_sensitive(stop)
|
||||
self.widget("control-pause").set_sensitive(stop)
|
||||
self.widget("details-menu-pause").set_sensitive(stop)
|
||||
|
||||
self.widget("details-vm-menu").get_submenu().update_widget_states(vm)
|
||||
self.set_pause_state(paused)
|
||||
|
||||
self.widget("overview-name").set_editable(not active)
|
||||
@@ -1439,8 +1433,7 @@ class vmmDetails(vmmGObjectUI):
|
||||
# Set pause widget states
|
||||
try:
|
||||
self.ignorePause = True
|
||||
self.widget("control-pause").set_active(paused)
|
||||
self.widget("details-menu-pause").set_active(paused)
|
||||
self.widget("control-pause").set_property("active", paused)
|
||||
finally:
|
||||
self.ignorePause = False
|
||||
|
||||
|
||||
@@ -912,10 +912,12 @@ class _VMMenu(Gtk.Menu):
|
||||
# pylint: disable=E1101
|
||||
# pylint can't detect functions we inheirit from Gtk, ex self.add
|
||||
|
||||
def __init__(self, src, current_vm_cb):
|
||||
def __init__(self, src, current_vm_cb, show_open=True):
|
||||
Gtk.Menu.__init__(self)
|
||||
self._parent = src
|
||||
self._current_vm_cb = current_vm_cb
|
||||
self._show_open = show_open
|
||||
|
||||
self._init_state()
|
||||
|
||||
def _add_action(self, label, signal,
|
||||
@@ -997,8 +999,9 @@ class VMActionMenu(_VMMenu):
|
||||
self._add_action(_("Migrate..."), "migrate", None)
|
||||
self._add_action(_("_Delete"), "delete", Gtk.STOCK_DELETE)
|
||||
|
||||
self.add(Gtk.SeparatorMenuItem())
|
||||
self._add_action(Gtk.STOCK_OPEN, "show", None)
|
||||
if self._show_open:
|
||||
self.add(Gtk.SeparatorMenuItem())
|
||||
self._add_action(Gtk.STOCK_OPEN, "show", None)
|
||||
|
||||
self.show_all()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user