mirror of
https://github.com/virt-manager/virt-manager.git
synced 2025-02-25 18:55:27 -06:00
Started to hook up the toolbar. Added a vm console window
This commit is contained in:
parent
864cbdfe9c
commit
a4c3da8429
@ -427,6 +427,7 @@ Inactive virtual machines</property>
|
||||
<property name="use_stock">True</property>
|
||||
<property name="relief">GTK_RELIEF_NORMAL</property>
|
||||
<property name="focus_on_click">True</property>
|
||||
<signal name="clicked" handler="on_vm_open_clicked" last_modification_time="Mon, 03 Apr 2006 09:52:21 GMT"/>
|
||||
</widget>
|
||||
</child>
|
||||
</widget>
|
||||
@ -542,7 +543,7 @@ Inactive virtual machines</property>
|
||||
<property name="spacing">0</property>
|
||||
|
||||
<child>
|
||||
<widget class="GtkToolbar" id="toolbar1">
|
||||
<widget class="GtkToolbar" id="toolbar4">
|
||||
<property name="visible">True</property>
|
||||
<property name="orientation">GTK_ORIENTATION_HORIZONTAL</property>
|
||||
<property name="toolbar_style">GTK_TOOLBAR_BOTH</property>
|
||||
@ -557,6 +558,7 @@ Inactive virtual machines</property>
|
||||
<property name="visible_horizontal">True</property>
|
||||
<property name="visible_vertical">True</property>
|
||||
<property name="is_important">False</property>
|
||||
<signal name="clicked" handler="on_control_run_clicked" last_modification_time="Mon, 03 Apr 2006 08:15:12 GMT"/>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
@ -565,13 +567,15 @@ Inactive virtual machines</property>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkToolButton" id="control-pause">
|
||||
<widget class="GtkToggleToolButton" id="control-pause">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">Pause</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="visible_horizontal">True</property>
|
||||
<property name="visible_vertical">True</property>
|
||||
<property name="is_important">False</property>
|
||||
<property name="active">False</property>
|
||||
<signal name="toggled" handler="on_control_pause_toggled" last_modification_time="Mon, 03 Apr 2006 08:17:10 GMT"/>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
@ -587,6 +591,7 @@ Inactive virtual machines</property>
|
||||
<property name="visible_horizontal">True</property>
|
||||
<property name="visible_vertical">True</property>
|
||||
<property name="is_important">False</property>
|
||||
<signal name="clicked" handler="on_control_shutdown_clicked" last_modification_time="Mon, 03 Apr 2006 08:15:00 GMT"/>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
@ -595,7 +600,7 @@ Inactive virtual machines</property>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkSeparatorToolItem" id="separatortoolitem1">
|
||||
<widget class="GtkSeparatorToolItem" id="separatortoolitem3">
|
||||
<property name="visible">True</property>
|
||||
<property name="draw">True</property>
|
||||
<property name="visible_horizontal">True</property>
|
||||
@ -608,13 +613,14 @@ Inactive virtual machines</property>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkToolButton" id="launch-term">
|
||||
<widget class="GtkToolButton" id="control-console">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">Launch terminal</property>
|
||||
<property name="label" translatable="yes">Open console</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="visible_horizontal">True</property>
|
||||
<property name="visible_vertical">True</property>
|
||||
<property name="is_important">False</property>
|
||||
<signal name="clicked" handler="on_control_console_clicked" last_modification_time="Mon, 03 Apr 2006 09:31:46 GMT"/>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
@ -623,13 +629,14 @@ Inactive virtual machines</property>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkToolButton" id="take-snapshot">
|
||||
<widget class="GtkToolButton" id="control-snapshot">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">Take snapshot</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="visible_horizontal">True</property>
|
||||
<property name="visible_vertical">True</property>
|
||||
<property name="is_important">False</property>
|
||||
<signal name="clicked" handler="on_control_snapshot_clicked" last_modification_time="Mon, 03 Apr 2006 09:31:41 GMT"/>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
@ -640,7 +647,7 @@ Inactive virtual machines</property>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
@ -1727,4 +1734,184 @@ Inactive virtual machines</property>
|
||||
</child>
|
||||
</widget>
|
||||
|
||||
<widget class="GtkWindow" id="vmm-console">
|
||||
<property name="visible">True</property>
|
||||
<property name="title" translatable="yes">window1</property>
|
||||
<property name="type">GTK_WINDOW_TOPLEVEL</property>
|
||||
<property name="window_position">GTK_WIN_POS_NONE</property>
|
||||
<property name="modal">False</property>
|
||||
<property name="default_width">650</property>
|
||||
<property name="default_height">500</property>
|
||||
<property name="resizable">True</property>
|
||||
<property name="destroy_with_parent">False</property>
|
||||
<property name="icon">icon_cpu.png</property>
|
||||
<property name="decorated">True</property>
|
||||
<property name="skip_taskbar_hint">False</property>
|
||||
<property name="skip_pager_hint">False</property>
|
||||
<property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
|
||||
<property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
|
||||
<property name="focus_on_map">True</property>
|
||||
<property name="urgency_hint">False</property>
|
||||
|
||||
<child>
|
||||
<widget class="GtkVBox" id="vbox6">
|
||||
<property name="visible">True</property>
|
||||
<property name="homogeneous">False</property>
|
||||
<property name="spacing">0</property>
|
||||
|
||||
<child>
|
||||
<widget class="GtkToolbar" id="toolbar3">
|
||||
<property name="visible">True</property>
|
||||
<property name="orientation">GTK_ORIENTATION_HORIZONTAL</property>
|
||||
<property name="toolbar_style">GTK_TOOLBAR_BOTH</property>
|
||||
<property name="tooltips">True</property>
|
||||
<property name="show_arrow">False</property>
|
||||
|
||||
<child>
|
||||
<widget class="GtkToolButton" id="control-run">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">Run</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="visible_horizontal">True</property>
|
||||
<property name="visible_vertical">True</property>
|
||||
<property name="is_important">False</property>
|
||||
<signal name="clicked" handler="on_control_run_clicked" last_modification_time="Mon, 03 Apr 2006 08:15:12 GMT"/>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="homogeneous">True</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkToggleToolButton" id="control-pause">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">Pause</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="visible_horizontal">True</property>
|
||||
<property name="visible_vertical">True</property>
|
||||
<property name="is_important">False</property>
|
||||
<property name="active">False</property>
|
||||
<signal name="toggled" handler="on_control_pause_toggled" last_modification_time="Mon, 03 Apr 2006 08:17:10 GMT"/>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="homogeneous">True</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkToolButton" id="control-shutdown">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">Shutdown</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="visible_horizontal">True</property>
|
||||
<property name="visible_vertical">True</property>
|
||||
<property name="is_important">False</property>
|
||||
<signal name="clicked" handler="on_control_shutdown_clicked" last_modification_time="Mon, 03 Apr 2006 08:15:00 GMT"/>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="homogeneous">True</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkSeparatorToolItem" id="separatortoolitem2">
|
||||
<property name="visible">True</property>
|
||||
<property name="draw">True</property>
|
||||
<property name="visible_horizontal">True</property>
|
||||
<property name="visible_vertical">True</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="homogeneous">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkToolButton" id="control-terminal">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">Open terminal</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="visible_horizontal">True</property>
|
||||
<property name="visible_vertical">True</property>
|
||||
<property name="is_important">False</property>
|
||||
<signal name="clicked" handler="on_control_terminal_clicked" last_modification_time="Mon, 03 Apr 2006 09:54:01 GMT"/>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="homogeneous">True</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkToolButton" id="control-snapshot">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">Take snapshot</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="visible_horizontal">True</property>
|
||||
<property name="visible_vertical">True</property>
|
||||
<property name="is_important">False</property>
|
||||
<signal name="clicked" handler="on_control_snapshot_clicked" last_modification_time="Mon, 03 Apr 2006 09:53:54 GMT"/>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="homogeneous">True</property>
|
||||
</packing>
|
||||
</child>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkScrolledWindow" id="console-pane">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="hscrollbar_policy">GTK_POLICY_ALWAYS</property>
|
||||
<property name="vscrollbar_policy">GTK_POLICY_ALWAYS</property>
|
||||
<property name="shadow_type">GTK_SHADOW_NONE</property>
|
||||
<property name="window_placement">GTK_CORNER_TOP_LEFT</property>
|
||||
|
||||
<child>
|
||||
<widget class="GtkViewport" id="viewport2">
|
||||
<property name="visible">True</property>
|
||||
<property name="shadow_type">GTK_SHADOW_IN</property>
|
||||
|
||||
<child>
|
||||
<widget class="GtkLabel" id="label52">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes"><b>The console is currently unavailable</b></property>
|
||||
<property name="use_underline">False</property>
|
||||
<property name="use_markup">True</property>
|
||||
<property name="justify">GTK_JUSTIFY_LEFT</property>
|
||||
<property name="wrap">False</property>
|
||||
<property name="selectable">False</property>
|
||||
<property name="xalign">0.5</property>
|
||||
<property name="yalign">0.5</property>
|
||||
<property name="xpad">0</property>
|
||||
<property name="ypad">0</property>
|
||||
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
|
||||
<property name="width_chars">-1</property>
|
||||
<property name="single_line_mode">False</property>
|
||||
<property name="angle">0</property>
|
||||
</widget>
|
||||
</child>
|
||||
</widget>
|
||||
</child>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
</packing>
|
||||
</child>
|
||||
</widget>
|
||||
</child>
|
||||
</widget>
|
||||
|
||||
</glade-interface>
|
||||
|
@ -53,6 +53,119 @@ class vmmAbout:
|
||||
self.window.get_widget("vmm-about").hide()
|
||||
return 1
|
||||
|
||||
class vmmConsole:
|
||||
def __init__(self, vmm, stats, conf, vmname):
|
||||
self.window = gtk.glade.XML(asset_dir + "/" + appname + ".glade", "vmm-console")
|
||||
self.vmm = vmm
|
||||
self.stats = stats
|
||||
self.conf = conf
|
||||
self.vmname = vmname
|
||||
self.lastStatus = None
|
||||
|
||||
topwin = self.window.get_widget("vmm-console")
|
||||
topwin.hide()
|
||||
topwin.set_title(vmname + " " + topwin.get_title())
|
||||
|
||||
self.window.get_widget("control-run").set_icon_widget(gtk.Image())
|
||||
self.window.get_widget("control-run").get_icon_widget().set_from_file(asset_dir + "/pixmaps/icon_run.png")
|
||||
|
||||
self.window.get_widget("control-pause").set_icon_widget(gtk.Image())
|
||||
self.window.get_widget("control-pause").get_icon_widget().set_from_file(asset_dir + "/pixmaps/icon_pause.png")
|
||||
|
||||
self.window.get_widget("control-shutdown").set_icon_widget(gtk.Image())
|
||||
#self.window.get_widget("control-shutdown").get_icon_widget().set_from_file(asset_dir + "/pixmaps/icon_run.png")
|
||||
|
||||
self.window.get_widget("control-terminal").set_icon_widget(gtk.Image())
|
||||
self.window.get_widget("control-terminal").get_icon_widget().set_from_file(asset_dir + "/pixmaps/icon_launch_term.png")
|
||||
|
||||
self.window.get_widget("control-snapshot").set_icon_widget(gtk.Image())
|
||||
self.window.get_widget("control-snapshot").get_icon_widget().set_from_file(asset_dir + "/pixmaps/icon_snapshot.png")
|
||||
|
||||
|
||||
self.window.signal_autoconnect({
|
||||
"on_vmm_console_delete_event": self.close,
|
||||
|
||||
"on_control_run_clicked": self.control_vm_run,
|
||||
"on_control_shutdown_clicked": self.control_vm_shutdown,
|
||||
"on_control_pause_toggled": self.control_vm_pause,
|
||||
|
||||
"on_control_terminal_clicked": self.control_vm_terminal,
|
||||
"on_control_snapshot_clicked": self.control_vm_snapshot,
|
||||
})
|
||||
|
||||
self.stats.connect_to_signal("vm_updated", self.refresh_status)
|
||||
self.refresh_status(vmname)
|
||||
|
||||
def show(self):
|
||||
dialog = self.window.get_widget("vmm-console")
|
||||
dialog.show_all()
|
||||
|
||||
def close(self,ignore1=None,ignore2=None):
|
||||
self.window.get_widget("vmm-console").hide()
|
||||
return 1
|
||||
|
||||
def control_vm_run(self, src):
|
||||
return 0
|
||||
|
||||
def control_vm_shutdown(self, src):
|
||||
if not(self.stats.run_status(self.vmname) in [ "shutdown", "shutoff" ]):
|
||||
self.vmm.shutdown()
|
||||
else:
|
||||
print "Shutdown requested, but machine is already shutting down / shutoff"
|
||||
|
||||
def control_vm_pause(self, src):
|
||||
if self.stats.run_status(self.vmname) in [ "shutdown", "shutoff" ]:
|
||||
print "Pause/resume requested, but machine is shutdown / shutoff"
|
||||
else:
|
||||
if self.stats.run_status(self.vmname) in [ "paused" ]:
|
||||
if not src.get_active():
|
||||
self.vmm.resume()
|
||||
else:
|
||||
print "Pause requested, but machine is already paused"
|
||||
else:
|
||||
if src.get_active():
|
||||
self.vmm.suspend()
|
||||
else:
|
||||
print "Resume requested, but machine is already running"
|
||||
|
||||
|
||||
def control_vm_terminal(self, src):
|
||||
return 0
|
||||
|
||||
def control_vm_snapshot(self, src):
|
||||
return 0
|
||||
|
||||
def refresh_status(self, vmname):
|
||||
if not(vmname == self.vmname):
|
||||
return
|
||||
|
||||
status = self.stats.run_status(vmname)
|
||||
|
||||
if self.lastStatus == status:
|
||||
return
|
||||
|
||||
if status == "shutoff":
|
||||
self.window.get_widget("control-run").set_sensitive(True)
|
||||
else:
|
||||
self.window.get_widget("control-run").set_sensitive(False)
|
||||
|
||||
if status in [ "shutoff", "shutdown" ]:
|
||||
self.window.get_widget("control-pause").set_sensitive(False)
|
||||
self.window.get_widget("control-shutdown").set_sensitive(False)
|
||||
self.window.get_widget("control-terminal").set_sensitive(False)
|
||||
self.window.get_widget("control-snapshot").set_sensitive(False)
|
||||
else:
|
||||
self.window.get_widget("control-pause").set_sensitive(True)
|
||||
self.window.get_widget("control-shutdown").set_sensitive(True)
|
||||
self.window.get_widget("control-terminal").set_sensitive(True)
|
||||
self.window.get_widget("control-snapshot").set_sensitive(True)
|
||||
if status == "paused":
|
||||
self.window.get_widget("control-pause").set_active(True)
|
||||
else:
|
||||
self.window.get_widget("control-pause").set_active(False)
|
||||
|
||||
self.lastStatus = status
|
||||
|
||||
|
||||
class vmmDetails:
|
||||
def __init__(self, vmm, stats, conf, vmname):
|
||||
@ -61,6 +174,7 @@ class vmmDetails:
|
||||
self.stats = stats
|
||||
self.conf = conf
|
||||
self.vmname = vmname
|
||||
self.lastStatus = None
|
||||
|
||||
topwin = self.window.get_widget("vmm-details")
|
||||
topwin.hide()
|
||||
@ -68,25 +182,20 @@ class vmmDetails:
|
||||
|
||||
self.window.get_widget("overview-name").set_text(vmname)
|
||||
|
||||
self.window.get_widget("control-run").set_sensitive(False)
|
||||
self.window.get_widget("control-run").set_icon_widget(gtk.Image())
|
||||
self.window.get_widget("control-run").get_icon_widget().set_from_file(asset_dir + "/pixmaps/icon_run.png")
|
||||
|
||||
self.window.get_widget("control-pause").set_sensitive(False)
|
||||
self.window.get_widget("control-pause").set_icon_widget(gtk.Image())
|
||||
self.window.get_widget("control-pause").get_icon_widget().set_from_file(asset_dir + "/pixmaps/icon_pause.png")
|
||||
|
||||
self.window.get_widget("control-shutdown").set_sensitive(False)
|
||||
self.window.get_widget("control-shutdown").set_icon_widget(gtk.Image())
|
||||
#self.window.get_widget("control-shutdown").get_icon_widget().set_from_file(asset_dir + "/pixmaps/icon_run.png")
|
||||
|
||||
self.window.get_widget("launch-term").set_sensitive(False)
|
||||
self.window.get_widget("launch-term").set_icon_widget(gtk.Image())
|
||||
self.window.get_widget("launch-term").get_icon_widget().set_from_file(asset_dir + "/pixmaps/icon_launch_term.png")
|
||||
self.window.get_widget("control-console").set_icon_widget(gtk.Image())
|
||||
self.window.get_widget("control-console").get_icon_widget().set_from_file(asset_dir + "/pixmaps/icon_launch_term.png")
|
||||
|
||||
self.window.get_widget("take-snapshot").set_sensitive(False)
|
||||
self.window.get_widget("take-snapshot").set_icon_widget(gtk.Image())
|
||||
self.window.get_widget("take-snapshot").get_icon_widget().set_from_file(asset_dir + "/pixmaps/icon_snapshot.png")
|
||||
self.window.get_widget("control-snapshot").set_icon_widget(gtk.Image())
|
||||
self.window.get_widget("control-snapshot").get_icon_widget().set_from_file(asset_dir + "/pixmaps/icon_snapshot.png")
|
||||
|
||||
|
||||
|
||||
@ -132,6 +241,13 @@ class vmmDetails:
|
||||
self.window.signal_autoconnect({
|
||||
"on_close_details_clicked": self.close,
|
||||
"on_vmm_details_delete_event": self.close,
|
||||
|
||||
"on_control_run_clicked": self.control_vm_run,
|
||||
"on_control_shutdown_clicked": self.control_vm_shutdown,
|
||||
"on_control_pause_toggled": self.control_vm_pause,
|
||||
|
||||
"on_control_console_clicked": self.control_vm_console,
|
||||
"on_control_snapshot_clicked": self.control_vm_snapshot,
|
||||
})
|
||||
|
||||
self.stats.connect_to_signal("vm_updated", self.refresh_overview)
|
||||
@ -146,6 +262,37 @@ class vmmDetails:
|
||||
self.window.get_widget("vmm-details").hide()
|
||||
return 1
|
||||
|
||||
def control_vm_run(self, src):
|
||||
return 0
|
||||
|
||||
def control_vm_shutdown(self, src):
|
||||
if not(self.stats.run_status(self.vmname) in [ "shutdown", "shutoff" ]):
|
||||
self.vmm.shutdown()
|
||||
else:
|
||||
print "Shutdown requested, but machine is already shutting down / shutoff"
|
||||
|
||||
def control_vm_pause(self, src):
|
||||
if self.stats.run_status(self.vmname) in [ "shutdown", "shutoff" ]:
|
||||
print "Pause/resume requested, but machine is shutdown / shutoff"
|
||||
else:
|
||||
if self.stats.run_status(self.vmname) in [ "paused" ]:
|
||||
if not src.get_active():
|
||||
self.vmm.resume()
|
||||
else:
|
||||
print "Pause requested, but machine is already paused"
|
||||
else:
|
||||
if src.get_active():
|
||||
self.vmm.suspend()
|
||||
else:
|
||||
print "Resume requested, but machine is already running"
|
||||
|
||||
|
||||
def control_vm_console(self, src):
|
||||
return 0
|
||||
|
||||
def control_vm_snapshot(self, src):
|
||||
return 0
|
||||
|
||||
def change_graph_ranges(self, ignore1=None,ignore2=None,ignore3=None,ignore4=None):
|
||||
self.cpu_usage_graph.clear()
|
||||
#self.cpu_usage_graph.set_xlabel('History')
|
||||
@ -165,11 +312,40 @@ class vmmDetails:
|
||||
self.network_traffic_graph.grid(True)
|
||||
self.network_traffic_line = None
|
||||
|
||||
def update_widget_states(self, status):
|
||||
if self.lastStatus == status:
|
||||
return
|
||||
|
||||
if status == "shutoff":
|
||||
self.window.get_widget("control-run").set_sensitive(True)
|
||||
else:
|
||||
self.window.get_widget("control-run").set_sensitive(False)
|
||||
|
||||
if status in [ "shutoff", "shutdown" ]:
|
||||
self.window.get_widget("control-pause").set_sensitive(False)
|
||||
self.window.get_widget("control-shutdown").set_sensitive(False)
|
||||
self.window.get_widget("control-console").set_sensitive(False)
|
||||
self.window.get_widget("control-snapshot").set_sensitive(False)
|
||||
else:
|
||||
self.window.get_widget("control-pause").set_sensitive(True)
|
||||
self.window.get_widget("control-shutdown").set_sensitive(True)
|
||||
self.window.get_widget("control-console").set_sensitive(True)
|
||||
self.window.get_widget("control-snapshot").set_sensitive(True)
|
||||
if status == "paused":
|
||||
self.window.get_widget("control-pause").set_active(True)
|
||||
else:
|
||||
self.window.get_widget("control-pause").set_active(False)
|
||||
|
||||
self.lastStatus = status
|
||||
|
||||
def refresh_overview(self, vmname):
|
||||
if not(vmname == self.vmname):
|
||||
return
|
||||
|
||||
self.window.get_widget("overview-status-text").set_text(self.stats.run_status(vmname))
|
||||
status = self.stats.run_status(vmname)
|
||||
self.update_widget_states(status)
|
||||
|
||||
self.window.get_widget("overview-status-text").set_text(status)
|
||||
self.window.get_widget("overview-status-icon").set_from_pixbuf(self.stats.run_status_icon(vmname))
|
||||
self.window.get_widget("overview-cpu-usage-text").set_text("%d %%" % self.stats.cpu_time_percentage(vmname))
|
||||
self.window.get_widget("overview-memory-usage-text").set_text("%d MB of %d MB" % (self.stats.current_memory(vmname)/1024, self.stats.host_memory_size()/1024))
|
||||
@ -271,6 +447,7 @@ class vmmManager:
|
||||
self.about = None
|
||||
self.preferences = None
|
||||
self.details = {}
|
||||
self.consoles = {}
|
||||
|
||||
# Setup update timers
|
||||
self.conf.on_stats_update_interval_changed(self.change_timer_interval)
|
||||
@ -306,6 +483,7 @@ class vmmManager:
|
||||
"on_menu_file_quit_activate": self.exit_app,
|
||||
"on_vmm_close_clicked": self.exit_app,
|
||||
"on_vm_details_clicked": self.show_vm_details,
|
||||
"on_vm_open_clicked": self.open_vm_console,
|
||||
"on_menu_edit_details_activate": self.show_vm_details,
|
||||
|
||||
"on_menu_edit_preferences_activate": self.show_preferences,
|
||||
@ -371,6 +549,13 @@ class vmmManager:
|
||||
|
||||
self.details[vmname].show()
|
||||
|
||||
def open_vm_console(self,ignore):
|
||||
vmname = self.current_vm()
|
||||
if not(self.consoles.has_key(vmname)):
|
||||
self.consoles[vmname] = vmmConsole(self.vmm, self.stats, self.conf, vmname)
|
||||
|
||||
self.consoles[vmname].show()
|
||||
|
||||
def change_timer_interval(self,ignore1,ignore2,ignore3,ignore4):
|
||||
print "Removing timer"
|
||||
gobject.source_remove(self.timer)
|
||||
@ -388,8 +573,7 @@ class vmmManager:
|
||||
#self.window.get_widget("vm-delete").set_sensitive(True)
|
||||
self.window.get_widget("vm-delete").set_sensitive(False)
|
||||
self.window.get_widget("vm-details").set_sensitive(True)
|
||||
#self.window.get_widget("vm-open").set_sensitive(True)
|
||||
self.window.get_widget("vm-open").set_sensitive(False)
|
||||
self.window.get_widget("vm-open").set_sensitive(True)
|
||||
#self.window.get_widget("menu_edit_delete").set_sensitive(True)
|
||||
self.window.get_widget("menu_edit_delete").set_sensitive(False)
|
||||
self.window.get_widget("menu_edit_details").set_sensitive(True)
|
||||
|
Loading…
Reference in New Issue
Block a user