summaryrefslogtreecommitdiff
path: root/virtManager/createpool.py
diff options
context:
space:
mode:
authorCole Robinson <crobinso@redhat.com>2013-09-27 12:13:01 -0400
committerCole Robinson <crobinso@redhat.com>2013-09-27 12:13:01 -0400
commit33f15f58f003eb04ad0d56f06abc12365d94b65c (patch)
treeb971e5d307aa01ecdc42d6f96369f1dac03e06ca /virtManager/createpool.py
parent976093287cbe19008635b938990814221ddc56d1 (diff)
downloadvirt-manager-33f15f58f003eb04ad0d56f06abc12365d94b65c.tar.gz
createpool: Use blue header like other wizards, cleanup UI
Drop the docs reporting since it's inconsistent and not all that useful. Few other misc cleanups
Diffstat (limited to 'virtManager/createpool.py')
-rw-r--r--virtManager/createpool.py117
1 files changed, 26 insertions, 91 deletions
diff --git a/virtManager/createpool.py b/virtManager/createpool.py
index 33a4e75a..624cbfa8 100644
--- a/virtManager/createpool.py
+++ b/virtManager/createpool.py
@@ -49,33 +49,13 @@ class vmmCreatePool(vmmGObjectUI):
"on_vmm_create_pool_delete_event" : self.close,
"on_pool_finish_clicked" : self.forward,
"on_pool_pages_change_page" : self.page_changed,
+
"on_pool_source_button_clicked" : self.browse_source_path,
"on_pool_target_button_clicked" : self.browse_target_path,
"on_pool_name_activate": self.forward,
"on_pool_hostname_activate" : self.hostname_changed,
"on_pool_iqn_chk_toggled": self.iqn_toggled,
-
- "on_pool_name_focus_in_event": self.update_doc_name,
-
- "on_pool_type_focus": self.update_doc_type,
- "on_pool_type_changed": self.update_doc_type,
-
- "on_pool_format_focus": self.update_doc_format,
- "on_pool_format_changed": self.update_doc_format,
-
- "on_pool_target_path_focus_in_event": self.update_doc_target_path,
- "on_pool_target_path_focus": self.update_doc_target_path,
- "on_pool_target_path_changed": self.update_doc_target_path,
-
- "on_pool_source_path_focus_in_event": self.update_doc_source_path,
- "on_pool_source_path_focus": self.update_doc_source_path,
- "on_pool_source_path_changed": self.update_doc_source_path,
-
- "on_pool_hostname_focus_in_event": self.update_doc_hostname,
- "on_pool_build_focus_in_event": self.update_build_doc,
-
- "on_pool_iqn_focus_in_event": self.update_doc_iqn,
})
self.bind_escape_key_close()
@@ -99,6 +79,9 @@ class vmmCreatePool(vmmGObjectUI):
def set_initial_state(self):
self.widget("pool-pages").set_show_tabs(False)
+ blue = Gdk.Color.parse("#0072A8")[1]
+ self.widget("header").modify_bg(Gtk.StateType.NORMAL, blue)
+
type_list = self.widget("pool-type")
type_model = Gtk.ListStore(str, str)
type_list.set_model(type_model)
@@ -120,8 +103,6 @@ class vmmCreatePool(vmmGObjectUI):
target_model.set_sort_column_id(0, Gtk.SortType.ASCENDING)
target_list.set_model(target_model)
target_list.set_entry_text_column(0)
- target_list.get_child().connect("focus-in-event",
- self.update_doc_target_path)
# Source path combo box entry
source_list = self.widget("pool-source-path")
@@ -130,16 +111,9 @@ class vmmCreatePool(vmmGObjectUI):
source_model.set_sort_column_id(0, Gtk.SortType.ASCENDING)
source_list.set_model(source_model)
source_list.set_entry_text_column(0)
- source_list.get_child().connect("focus-in-event",
- self.update_doc_source_path)
self.populate_pool_type()
- self.widget("pool-info-box1").modify_bg(Gtk.StateType.NORMAL,
- Gdk.Color.parse("grey")[1])
- self.widget("pool-info-box2").modify_bg(Gtk.StateType.NORMAL,
- Gdk.Color.parse("grey")[1])
-
def reset_state(self):
self.widget("pool-pages").set_current_page(0)
self.widget("pool-forward").show()
@@ -158,6 +132,7 @@ class vmmCreatePool(vmmGObjectUI):
self.widget("pool-format").set_active(-1)
self.widget("pool-build").set_sensitive(True)
self.widget("pool-build").set_active(False)
+ self.widget("pool-details-grid").set_visible(False)
def hostname_changed(self, ignore):
@@ -278,8 +253,8 @@ class vmmCreatePool(vmmGObjectUI):
def show_options_by_pool(self):
def show_row(base, do_show):
- self.widget(base + "-label").set_visible(do_show)
- self.widget(base + "-box").set_visible(do_show)
+ widget = self.widget(base + "-label")
+ uihelpers.set_grid_row_visible(widget, do_show)
src = self._pool.supports_property("source_path")
src_b = src and not self.conn.is_remote()
@@ -407,20 +382,17 @@ class vmmCreatePool(vmmGObjectUI):
def forward(self, ignore=None):
notebook = self.widget("pool-pages")
try:
- if(self.validate(notebook.get_current_page()) is not True):
+ if self.validate(notebook.get_current_page()) is not True:
return
if notebook.get_current_page() == PAGE_FORMAT:
self.finish()
else:
- self.widget("pool-forward").grab_focus()
notebook.next_page()
except Exception, e:
self.err.show_err(_("Uncaught error validating input: %s") % str(e))
return
def back(self, ignore=None):
- self.widget("pool-finish").hide()
- self.widget("pool-forward").show()
self.widget("pool-pages").prev_page()
def _finish_cb(self, error, details):
@@ -459,16 +431,23 @@ class vmmCreatePool(vmmGObjectUI):
logging.debug("Pool creation succeeded")
def page_changed(self, notebook_ignore, page_ignore, page_number):
- if page_number == PAGE_NAME:
- self.widget("pool-back").set_sensitive(False)
- self.widget("pool-finish").hide()
- self.widget("pool-forward").show()
- self.widget("pool-forward").grab_focus()
- elif page_number == PAGE_FORMAT:
- self.widget("pool-back").set_sensitive(True)
- self.widget("pool-finish").show()
- self.widget("pool-finish").grab_focus()
- self.widget("pool-forward").hide()
+ # Update page number
+ page_lbl = ("<span color='#59B0E2'>%s</span>" %
+ _("Step %(current_page)d of %(max_page)d") %
+ {'current_page': page_number + 1,
+ 'max_page': PAGE_FORMAT + 1})
+ self.widget("header-pagenum").set_markup(page_lbl)
+
+ isfirst = (page_number == PAGE_NAME)
+ islast = (page_number == PAGE_FORMAT)
+
+ self.widget("pool-back").set_sensitive(not isfirst)
+ self.widget("pool-finish").set_visible(islast)
+ self.widget("pool-forward").set_visible(not islast)
+ self.widget(islast and "pool-finish" or "pool-forward").grab_focus()
+
+ self.widget("pool-details-grid").set_visible(islast)
+ if islast:
self.show_options_by_pool()
def get_pool_to_validate(self):
@@ -532,7 +511,7 @@ class vmmCreatePool(vmmGObjectUI):
buildval = self.widget("pool-build").get_active()
buildsen = (self.widget("pool-build").get_sensitive() and
- self.widget("pool-build-box").get_visible())
+ self.widget("pool-build").get_visible())
if buildsen and buildval:
ret = self.err.yes_no(_("Building a pool of this type will "
"format the source device. Are you "
@@ -548,50 +527,6 @@ class vmmCreatePool(vmmGObjectUI):
elif page == PAGE_FORMAT:
return self._validate_page_format()
- def _update_doc(self, param, infobox):
- doc = self._build_doc_str(param)
- self.widget(infobox).set_markup(doc)
-
- def update_doc_name(self, *ignore):
- self._update_doc("name", "pool-info1")
- def update_doc_type(self, *ignore):
- self._update_doc("type", "pool-info1")
- def update_doc_target_path(self, *ignore):
- self._update_doc("target_path", "pool-info2")
- def update_doc_source_path(self, *ignore):
- self._update_doc("source_path", "pool-info2")
- def update_doc_hostname(self, *ignore):
- self._update_doc("host", "pool-info2")
- def update_doc_format(self, *ignore):
- self._update_doc("format", "pool-info2")
- def update_doc_iqn(self, *ignore):
- self._update_doc("iqn", "pool-info2")
-
- def update_build_doc(self, *ignore):
- doc = ""
- docstr = ""
- if self._pool.type == StoragePool.TYPE_DISK:
- docstr = _("Format the source device.")
- elif self._pool.type == StoragePool.TYPE_LOGICAL:
- docstr = _("Create a logical volume group from the source device.")
-
- if docstr:
- doc = self._build_doc_str("build", docstr)
- self.widget("pool-info2").set_markup(doc)
-
- def _build_doc_str(self, param, docstr=None):
- doc = ""
- doctmpl = "<i><u>%s</u>: %s</i>"
- prettyname = param.replace("_", " ").capitalize()
-
- if docstr:
- doc = doctmpl % (prettyname, docstr)
- elif not self._pool or self._pool.supports_property(param):
- doc = doctmpl % (prettyname,
- getattr(StoragePool, param).__doc__)
-
- return doc
-
def _browse_file(self, dialog_name, startfolder=None, foldermode=False):
mode = Gtk.FileChooserAction.OPEN
if foldermode: