7d28697
diff -rup old/src/virtManager/details.py virt-manager-0.7.0/src/virtManager/details.py
7d28697
--- old/src/virtManager/details.py	2009-09-17 17:23:42.640307000 -0400
7d28697
+++ virt-manager-0.7.0/src/virtManager/details.py	2009-09-17 17:24:09.098148000 -0400
7d28697
@@ -960,11 +960,12 @@ class vmmDetails(gobject.GObject):
7d28697
         curmem = self.window.get_widget("config-memory").get_adjustment()
7d28697
         maxmem = self.window.get_widget("config-maxmem").get_adjustment()
7d28697
 
7d28697
-
7d28697
         if self.window.get_widget("config-memory-apply").get_property("sensitive"):
7d28697
-            if curmem.value > maxmem.value:
7d28697
-                curmem.value = maxmem.value
7d28697
-            curmem.upper = maxmem.value
7d28697
+            memval = self.config_get_memory()
7d28697
+            maxval = self.config_get_maxmem()
7d28697
+            if maxval < memval:
7d28697
+                maxmem.value = memval
7d28697
+            maxmem.lower = memval
7d28697
         else:
7d28697
             curmem.value = int(round(self.vm.get_memory()/1024.0))
7d28697
             maxmem.value = int(round(self.vm.maximum_memory()/1024.0))
7d28697
@@ -1504,54 +1505,74 @@ class vmmDetails(gobject.GObject):
7d28697
         self.vm.set_vcpu_count(vcpus)
7d28697
         self.window.get_widget("config-vcpus-apply").set_sensitive(False)
7d28697
 
7d28697
-    def config_memory_changed(self, src):
7d28697
-        self.window.get_widget("config-memory-apply").set_sensitive(True)
7d28697
+    def config_get_maxmem(self):
7d28697
+        maxadj = self.window.get_widget("config-maxmem").get_adjustment()
7d28697
+        txtmax = self.window.get_widget("config-maxmem").get_text()
7d28697
+        try:
7d28697
+            maxmem = int(txtmax)
7d28697
+        except:
7d28697
+            maxmem = maxadj.value
7d28697
+        return maxmem
7d28697
+
7d28697
+    def config_get_memory(self):
7d28697
+        memadj = self.window.get_widget("config-memory").get_adjustment()
7d28697
+        txtmem = self.window.get_widget("config-memory").get_text()
7d28697
+        try:
7d28697
+            mem = int(txtmem)
7d28697
+        except:
7d28697
+            mem = memadj.value
7d28697
+        return mem
7d28697
 
7d28697
     def config_maxmem_changed(self, src):
7d28697
         self.window.get_widget("config-memory-apply").set_sensitive(True)
7d28697
-        memory = self.window.get_widget("config-maxmem").get_adjustment().value
7d28697
-        memadj = self.window.get_widget("config-memory").get_adjustment()
7d28697
-        memadj.upper = memory
7d28697
-        if memadj.value > memory:
7d28697
-            memadj.value = memory
7d28697
+
7d28697
+    def config_memory_changed(self, src):
7d28697
+        self.window.get_widget("config-memory-apply").set_sensitive(True)
7d28697
+
7d28697
+        maxadj = self.window.get_widget("config-maxmem").get_adjustment()
7d28697
+
7d28697
+        mem = self.config_get_memory()
7d28697
+        if maxadj.value < mem:
7d28697
+            maxadj.value = mem
7d28697
+        maxadj.lower = mem
7d28697
 
7d28697
     def config_memory_apply(self, src):
7d28697
         self.refresh_config_memory()
7d28697
         exc = None
7d28697
         curmem = None
7d28697
-        maxmem = self.window.get_widget("config-maxmem").get_adjustment()
7d28697
+        maxmem = self.config_get_maxmem()
7d28697
         if self.window.get_widget("config-memory").get_property("sensitive"):
7d28697
-            curmem = self.window.get_widget("config-memory").get_adjustment()
7d28697
+            curmem = self.config_get_memory()
7d28697
 
7d28697
-        logging.info("Setting max-memory for " + self.vm.get_name() + \
7d28697
-                     " to " + str(maxmem.value))
7d28697
+        logging.info("Setting max-memory for " + self.vm.get_name() +
7d28697
+                     " to " + str(maxmem))
7d28697
 
7d28697
         actual_cur = self.vm.get_memory()
7d28697
         if curmem is not None:
7d28697
-            logging.info("Setting memory for " + self.vm.get_name() + \
7d28697
-                         " to " + str(curmem.value))
7d28697
-            if (maxmem.value * 1024) < actual_cur:
7d28697
+            logging.info("Setting memory for " + self.vm.get_name() +
7d28697
+                         " to " + str(curmem))
7d28697
+            if (maxmem * 1024) < actual_cur:
7d28697
                 # Set current first to avoid error
7d28697
                 try:
7d28697
-                    self.vm.set_memory(curmem.value * 1024)
7d28697
-                    self.vm.set_max_memory(maxmem.value * 1024)
7d28697
+                    self.vm.set_memory(curmem * 1024)
7d28697
+                    self.vm.set_max_memory(maxmem * 1024)
7d28697
                 except Exception, e:
7d28697
                     exc = e
7d28697
             else:
7d28697
                 try:
7d28697
-                    self.vm.set_max_memory(maxmem.value * 1024)
7d28697
-                    self.vm.set_memory(curmem.value * 1024)
7d28697
+                    self.vm.set_max_memory(maxmem * 1024)
7d28697
+                    self.vm.set_memory(curmem * 1024)
7d28697
                 except Exception, e:
7d28697
                     exc = e
7d28697
 
7d28697
         else:
7d28697
             try:
7d28697
-                self.vm.set_max_memory(maxmem.value * 1024)
7d28697
+                self.vm.set_max_memory(maxmem * 1024)
7d28697
             except Exception, e:
7d28697
                 exc = e
7d28697
 
7d28697
         if exc:
7d28697
-            self.err.show_err(_("Error changing memory values: %s" % str(e)),\
7d28697
+            self.err.show_err(_("Error changing memory values: %s" % str(e)),
7d28697
                               "".join(traceback.format_exc()))
7d28697
         else:
7d28697
             self.window.get_widget("config-memory-apply").set_sensitive(False)
7d28697
diff -rup old/src/virtManager/details.py.orig virt-manager-0.7.0/src/virtManager/details.py.orig
7d28697
--- old/src/virtManager/details.py.orig	2009-09-17 17:23:42.778305000 -0400
7d28697
+++ virt-manager-0.7.0/src/virtManager/details.py.orig	2009-09-17 17:24:08.925149000 -0400
7d28697
@@ -501,7 +501,7 @@ class vmmDetails(gobject.GObject):
7d28697
         self.update_scaling()
7d28697
 
7d28697
     def auth_login(self, ignore):
7d28697
-        self.set_password()
7d28697
+        self.set_credentials()
7d28697
         self.activate_viewer_page()
7d28697
 
7d28697
     def toggle_toolbar(self, src):
7d28697
@@ -1309,23 +1309,44 @@ class vmmDetails(gobject.GObject):
7d28697
                      traceback.format_exc (stacktrace))
7d28697
             logging.error(details)
7d28697
 
7d28697
-    def set_password(self, src=None):
7d28697
-        txt = self.window.get_widget("console-auth-password")
7d28697
-        self.vncViewer.set_credential(gtkvnc.CREDENTIAL_PASSWORD,
7d28697
-                                      txt.get_text())
7d28697
+    def set_credentials(self, src=None):
7d28697
+        passwd = self.window.get_widget("console-auth-password")
7d28697
+        if passwd.flags() & gtk.VISIBLE:
7d28697
+            self.vncViewer.set_credential(gtkvnc.CREDENTIAL_PASSWORD,
7d28697
+                                          passwd.get_text())
7d28697
+        username = self.window.get_widget("console-auth-username")
7d28697
+        if username.flags() & gtk.VISIBLE:
7d28697
+            self.vncViewer.set_credential(gtkvnc.CREDENTIAL_USERNAME,
7d28697
+                                          username.get_text())
7d28697
+
7d28697
+        if self.window.get_widget("console-auth-remember").get_active():
7d28697
+            self.config.set_console_password(self.vm, passwd.get_text(), username.get_text())
7d28697
 
7d28697
     def _vnc_auth_credential(self, src, credList):
7d28697
         for i in range(len(credList)):
7d28697
+            if credList[i] not in (gtkvnc.CREDENTIAL_PASSWORD, gtkvnc.CREDENTIAL_USERNAME, gtkvnc.CREDENTIAL_CLIENTNAME):
7d28697
+                self.err.show_err(summary=_("Unable to provide requested credentials to the VNC server"),
7d28697
+                                  details=_("The credential type %s is not supported") % (str(credList[i])),
7d28697
+                                  title=_("Unable to authenticate"),
7d28697
+                                  async=True)
7d28697
+                self.vncViewerRetriesScheduled = 10
7d28697
+                self.vncViewer.close()
7d28697
+                self.activate_unavailable_page(_("Unsupported console authentication type"))
7d28697
+                return
7d28697
+
7d28697
+        withUsername = False
7d28697
+        withPassword = False
7d28697
+        for i in range(len(credList)):
7d28697
             logging.debug("Got credential request %s", str(credList[i]))
7d28697
             if credList[i] == gtkvnc.CREDENTIAL_PASSWORD:
7d28697
-                self.activate_auth_page()
7d28697
+                withPassword = True
7d28697
+            elif credList[i] == gtkvnc.CREDENTIAL_USERNAME:
7d28697
+                withUsername = True
7d28697
             elif credList[i] == gtkvnc.CREDENTIAL_CLIENTNAME:
7d28697
                 self.vncViewer.set_credential(credList[i], "libvirt-vnc")
7d28697
-            else:
7d28697
-                # Force it to stop re-trying
7d28697
-                self.vncViewerRetriesScheduled = 10
7d28697
-                self.vncViewer.close()
7d28697
-                self.activate_unavailable_page(_("Unsupported console authentication type"))
7d28697
+
7d28697
+        if withUsername or withPassword:
7d28697
+            self.activate_auth_page(withPassword, withUsername)
7d28697
 
7d28697
     def activate_unavailable_page(self, msg):
7d28697
         self.window.get_widget("console-pages").set_current_page(PAGE_UNAVAILABLE)
7d28697
@@ -1336,20 +1357,41 @@ class vmmDetails(gobject.GObject):
7d28697
         self.window.get_widget("console-pages").set_current_page(PAGE_SCREENSHOT)
7d28697
         self.window.get_widget("details-menu-vm-screenshot").set_sensitive(True)
7d28697
 
7d28697
-    def activate_auth_page(self):
7d28697
-        pw = self.config.get_console_password(self.vm)
7d28697
+    def activate_auth_page(self, withPassword=True, withUsername=False):
7d28697
+        (pw, username) = self.config.get_console_password(self.vm)
7d28697
         self.window.get_widget("details-menu-vm-screenshot").set_sensitive(False)
7d28697
+
7d28697
+        if withPassword:
7d28697
+            self.window.get_widget("console-auth-password").show()
7d28697
+            self.window.get_widget("label-auth-password").show()
7d28697
+        else:
7d28697
+            self.window.get_widget("console-auth-password").hide()
7d28697
+            self.window.get_widget("label-auth-password").hide()
7d28697
+
7d28697
+        if withUsername:
7d28697
+            self.window.get_widget("console-auth-username").show()
7d28697
+            self.window.get_widget("label-auth-username").show()
7d28697
+        else:
7d28697
+            self.window.get_widget("console-auth-username").hide()
7d28697
+            self.window.get_widget("label-auth-username").hide()
7d28697
+
7d28697
+        self.window.get_widget("console-auth-username").set_text(username)
7d28697
         self.window.get_widget("console-auth-password").set_text(pw)
7d28697
-        self.window.get_widget("console-auth-password").grab_focus()
7d28697
+
7d28697
         if self.config.has_keyring():
7d28697
             self.window.get_widget("console-auth-remember").set_sensitive(True)
7d28697
-            if pw != None and pw != "":
7d28697
+            if pw != "" or username != "":
7d28697
                 self.window.get_widget("console-auth-remember").set_active(True)
7d28697
             else:
7d28697
                 self.window.get_widget("console-auth-remember").set_active(False)
7d28697
         else:
7d28697
             self.window.get_widget("console-auth-remember").set_sensitive(False)
7d28697
         self.window.get_widget("console-pages").set_current_page(PAGE_AUTHENTICATE)
7d28697
+        if withUsername:
7d28697
+            self.window.get_widget("console-auth-username").grab_focus()
7d28697
+        else:
7d28697
+            self.window.get_widget("console-auth-password").grab_focus()
7d28697
+
7d28697
 
7d28697
     def activate_viewer_page(self):
7d28697
         self.window.get_widget("console-pages").set_current_page(PAGE_VNCVIEWER)
7d28697
diff -rup old/src/vmm-details.glade virt-manager-0.7.0/src/vmm-details.glade
7d28697
--- old/src/vmm-details.glade	2009-09-17 17:23:42.448302000 -0400
7d28697
+++ virt-manager-0.7.0/src/vmm-details.glade	2009-09-17 17:25:42.970347000 -0400
7d28697
@@ -1436,7 +1436,6 @@ I/O:</property>
7d28697
                               </widget>
7d28697
                               <packing>
7d28697
                                 <property name="position">2</property>
7d28697
-                                <property name="tab_expand">True</property>
7d28697
                               </packing>
7d28697
                             </child>
7d28697
                             <child>
7d28697
@@ -1572,8 +1571,8 @@ I/O:</property>
7d28697
                                                       <widget class="GtkSpinButton" id="config-memory">
7d28697
                                                         <property name="visible">True</property>
7d28697
                                                         <property name="can_focus">True</property>
7d28697
-                                                        <property name="adjustment">50 50 32000 5 10 0</property>
7d28697
-                                                        <property name="climb_rate">1</property>
7d28697
+                                                        <property name="adjustment">50 50 32000 1 25 0</property>
7d28697
+                                                        <property name="climb_rate">2</property>
7d28697
                                                         <property name="numeric">True</property>
7d28697
                                                         <property name="update_policy">GTK_UPDATE_IF_VALID</property>
7d28697
                                                         <accessibility>
7d28697
@@ -1610,8 +1609,8 @@ I/O:</property>
7d28697
                                                       <widget class="GtkSpinButton" id="config-maxmem">
7d28697
                                                         <property name="visible">True</property>
7d28697
                                                         <property name="can_focus">True</property>
7d28697
-                                                        <property name="adjustment">50 50 32000 5 10 0</property>
7d28697
-                                                        <property name="climb_rate">1</property>
7d28697
+                                                        <property name="adjustment">50 50 32000 1 25 0</property>
7d28697
+                                                        <property name="climb_rate">2</property>
7d28697
                                                         <property name="numeric">True</property>
7d28697
                                                         <property name="update_policy">GTK_UPDATE_IF_VALID</property>
7d28697
                                                         <accessibility>
7d28697
Only in virt-manager-0.7.0/src: vmm-details.glade.orig
7d28697
Only in virt-manager-0.7.0/src: vmm-details.glade.rej
7d28697
Only in virt-manager-0.7.0/src: .vmm-details.glade.rej.swp