This email list is read-only.  Emails sent to this list will be discarded
----------------------------------
 debian/changelog        |    5 +-
 gui/gui.py              |   72 ++++++++++++++++++++++++++
 gui/image-creator.glade |  130 ++++++++++++++++++++++++++++++++++++++++++++++-
 3 files changed, 203 insertions(+), 4 deletions(-)

New commits:
commit cbe3c9140cb53e78f33978970d063c0436372ae3
Author: Prajwal Mohan <[EMAIL PROTECTED]>
Date:   Mon Jul 28 14:01:56 2008 -0700

    * Adding Nand kernel cmd line
    * Adding KVM and NAND buttons to GUI


Diff in this email is a maximum of 400 lines.
diff --git a/debian/changelog b/debian/changelog
index 42ea9eb..0ef594a 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -69,9 +69,10 @@ moblin-image-creator (0.45) UNRELEASED; urgency=low
     initramfs script
   * Releasing 0.45 version
   * Starting new version
-  * Adding Nand kernel cmd line 
+  * Adding Nand kernel cmd line
+  * Adding KVM and NAND buttons to GUI 
 
- -- Prajwal Mohan <[EMAIL PROTECTED]>  Mon, 28 Jul 2008 13:16:26 -0700
+ -- Prajwal Mohan <[EMAIL PROTECTED]>  Mon, 28 Jul 2008 14:01:28 -0700
 
 moblin-image-creator (0.44) gaston; urgency=low
 
diff --git a/gui/gui.py b/gui/gui.py
index 7cbdf2b..7c05d2b 100644
--- a/gui/gui.py
+++ b/gui/gui.py
@@ -85,11 +85,13 @@ class App(object):
                 "on_create_liveRWUSB_clicked": self.on_liveRWUSB_clicked,
                 "on_create_installUSB_clicked": self.on_installUSB_clicked,
                 "on_create_liveCD_clicked": self.on_liveCD_clicked,
+                "on_create_NAND_btn_clicked": self.on_NAND_clicked,
                 "on_about_activate": self.on_about_activate,
                 "on_term_launch_clicked": self.on_term_launch_clicked,
                 "on_target_term_launch_clicked": 
self.on_target_term_launch_clicked,
                 "on_target_kernel_cmdline_clicked": 
self.on_target_kernel_cmdline_clicked,
                 "on_Write_USB_clicked": self.writeUsbImage,
+                "on_launch_vm_btn_clicked": self.on_launch_vm_clicked, 
                 "on_WriteUsbImage_activate":self.on_WriteUsbImage_activate,
                 "on_ClearRootstraps_activate":self.on_ClearRootstraps_activate,
                 "on_Load_activate":self.on_Load_activate,
@@ -220,7 +222,9 @@ class App(object):
         self.buttons.create_installusb.set_sensitive(fset_state)
         self.buttons.target_kernel_cmdline.set_sensitive(fset_state)
         self.buttons.create_liveCD.set_sensitive(fset_state)
+        self.buttons.create_NAND.set_sensitive(fset_state)
         self.buttons.Write_USB.set_sensitive(fset_state)
+        self.buttons.create_launchvm.set_sensitive(fset_state)
 
     def project_view_changed(self, selection):
         num_rows_selected = 
self.projectView.get_selection().count_selected_rows()
@@ -433,6 +437,7 @@ class App(object):
                 traceback.print_exc()
                 if debug: print_exc_plus()
                 self.show_error_dialog()
+            self.redraw_target_view()
             progress_dialog.destroy()
 
     def on_new_target_add_clicked(self, widget):
@@ -659,6 +664,7 @@ class App(object):
                 traceback.print_exc()
                 if debug: print_exc_plus()
                 self.show_error_dialog()
+            self.redraw_target_view() 
             progress_dialog.destroy()
 
     def current_project(self):
@@ -760,14 +766,17 @@ class App(object):
         usb_kernel_cmdline = widgets.get_widget('usb_kernel_cmdline')
         hd_kernel_cmdline = widgets.get_widget('hd_kernel_cmdline')
         cd_kernel_cmdline = widgets.get_widget('cd_kernel_cmdline')
+        nand_kernel_cmdline = widgets.get_widget('nand_kernel_cmdline')
         
usb_kernel_cmdline.set_text(self.current_project().get_target_usb_kernel_cmdline(target.name))
         
hd_kernel_cmdline.set_text(self.current_project().get_target_hd_kernel_cmdline(target.name))
         
cd_kernel_cmdline.set_text(self.current_project().get_target_cd_kernel_cmdline(target.name))
+        
nand_kernel_cmdline.set_text(self.current_project().get_target_nand_kernel_cmdline(target.name))
         result = dialog.run()
         if result == gtk.RESPONSE_OK:
             self.current_project().set_target_usb_kernel_cmdline(target.name, 
usb_kernel_cmdline.get_text())
             self.current_project().set_target_hd_kernel_cmdline(target.name, 
hd_kernel_cmdline.get_text())
             self.current_project().set_target_cd_kernel_cmdline(target.name, 
cd_kernel_cmdline.get_text())
+            self.current_project().set_target_nand_kernel_cmdline(target.name, 
nand_kernel_cmdline.get_text())
         dialog.destroy()
 
     def on_liveUSB_clicked(self, widget):
@@ -852,6 +861,67 @@ class App(object):
                 self.show_error_dialog()
             progress_dialog.destroy()
 
+    def on_NAND_clicked(self, widget):
+        project = self.current_project()
+        target = self.current_target()
+        result, img_name = self.getImageName(default_name=".bin")
+        if result == gtk.RESPONSE_OK:
+            progress_tree = gtk.glade.XML(self.gladefile, 'ProgressDialog')
+            progress_dialog = progress_tree.get_widget('ProgressDialog')
+            progress_dialog.connect('delete_event', self.ignore)
+            progress_tree.get_widget('progress_label').set_text("Please wait 
while creating %s" % img_name)
+            self.progressbar = progress_tree.get_widget('progressbar')
+            try:
+                self.current_project().create_NAND_image(target.name, img_name)
+            except ValueError, e:
+                self.show_error_dialog(e.args[0])
+            except:
+                traceback.print_exc()
+                if debug: print_exc_plus()
+                self.show_error_dialog()
+            progress_dialog.destroy()
+
+
+    def on_launch_vm_clicked(self, widget):
+        # check whether the shared image exists
+        # the path of folder containing this image is fixed and hardcoded
+        if os.path.exists ("/var/lib/moblin-image-creator/kvm") == False:
+            print ("Creating folder /var/lib/moblin-image-creator/kvm ... ")
+            os.popen("mkdir /var/lib/moblin-image-creator/kvm")
+        if 
os.path.isfile("/var/lib/moblin-image-creator/kvm/mic_vm_share.img") == False:
+            print ("Creating image 
/var/lib/moblin-image-creator/kvm/mic_vm_share.img ... ")
+            progress_tree = gtk.glade.XML(self.gladefile, 'ProgressDialog')
+            progress_dialog = progress_tree.get_widget('ProgressDialog')
+            progress_dialog.connect('delete_event', self.ignore)
+            progress_tree.get_widget('progress_label').set_text(_("Please wait 
while creating shared image..."))
+            self.progressbar = progress_tree.get_widget('progressbar')
+            cmd = "qemu-img create 
/var/lib/moblin-image-creator/kvm/mic_vm_share.img -f qcow2 4G"
+            pdk_utils.execCommand(cmd, False, None, self.gui_throbber)
+            progress_dialog.destroy()
+        # select a live usb image        
+        target = self.current_target()
+        dialog = gtk.FileChooserDialog(action=gtk.FILE_CHOOSER_ACTION_OPEN, 
title="Choose a Live USB image")
+        dialog.set_current_folder(target.top + "/image/")
+        dialog.add_button(gtk.STOCK_OK, gtk.RESPONSE_OK)
+        dialog.add_button(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL)
+        filter_image = gtk.FileFilter()
+        filter_image.set_name("Image files");
+        filter_image.add_pattern("*.img");
+        dialog.add_filter(filter_image);
+        filter_any = gtk.FileFilter();
+        filter_any.set_name("Any files");
+        filter_any.add_pattern("*");
+        dialog.add_filter(filter_any);
+        if dialog.run() == gtk.RESPONSE_OK:
+            live_img = dialog.get_filename()
+            dialog.destroy()
+        else:
+            dialog.destroy()
+            return
+        # boot the live usb image in KVM in background
+        os.popen("sudo kvm -no-acpi -m 384 -hda " + live_img + " -hdb 
/var/lib/moblin-image-creator/kvm/mic_vm_share.img -boot c &")
+
+
 
     def getImageName(self, default_name = ".img"):
         """Function to query the user for the name of the image file they want
@@ -1579,11 +1649,13 @@ class MainWindowButtons(object):
         self.create_liverwusb = widgets.get_widget('create_liveRWUSB_btn')
         self.create_installusb = widgets.get_widget('create_installUSB_btn')
         self.create_liveCD = widgets.get_widget('create_liveCD_btn')
+        self.create_NAND = widgets.get_widget('create_NAND_btn')
         # Terminal button
         self.term_launch = widgets.get_widget('term_launch')
         self.target_term_launch = widgets.get_widget('target_term_launch')
         self.target_kernel_cmdline = 
widgets.get_widget('target_kernel_cmdline')
         self.Write_USB = widgets.get_widget('Write_USB')
+        self.create_launchvm = widgets.get_widget('launch_vm_btn')
 
 def print_exc_plus():
     # From Python Cookbook 2nd Edition.  FIXME: Will need to remove this at
diff --git a/gui/image-creator.glade b/gui/image-creator.glade
index d913368..9d1698d 100644
--- a/gui/image-creator.glade
+++ b/gui/image-creator.glade
@@ -1048,6 +1048,53 @@
                                       </packing>
                                     </child>
                                     <child>
+                                      <widget class="GtkButton" 
id="create_NAND_btn">
+                                        <property 
name="visible">True</property>
+                                        <property 
name="sensitive">False</property>
+                                        <property 
name="can_focus">True</property>
+                                        <property name="tooltip" 
translatable="yes">Create an installation image that can be burned to a USB 
flash drive.  When you boot off the USB flash drive it will erase the target 
harddrive, then repartition and install the target image.</property>
+                                        <property 
name="response_id">0</property>
+                                        <signal name="clicked" 
handler="on_create_NAND_btn_clicked"/>
+                                        <child>
+                                          <widget class="GtkVBox" id="vbox31">
+                                            <property 
name="visible">True</property>
+                                            <child>
+                                              <widget class="GtkImage" 
id="image21">
+                                                <property 
name="visible">True</property>
+                                                <property 
name="stock">gtk-goto-bottom</property>
+                                              </widget>
+                                            </child>
+                                            <child>
+                                              <widget class="GtkLabel" 
id="nand_btn_label">
+                                                <property 
name="visible">True</property>
+                                                <property name="label" 
translatable="yes">NAND Image</property>
+                                              </widget>
+                                              <packing>
+                                                <property 
name="expand">False</property>
+                                                <property 
name="fill">False</property>
+                                                <property 
name="position">1</property>
+                                              </packing>
+                                            </child>
+                                          </widget>
+                                        </child>
+                                      </widget>
+                                      <packing>
+                                        <property 
name="expand">False</property>
+                                        <property name="fill">False</property>
+                                        <property name="position">6</property>
+                                      </packing>
+                                    </child>
+                                    <child>
+                                      <widget class="GtkVSeparator" 
id="target-images-separator5">
+                                        <property 
name="width_request">20</property>
+                                        <property 
name="visible">True</property>
+                                      </widget>
+                                      <packing>
+                                        <property 
name="expand">False</property>
+                                        <property name="position">7</property>
+                                      </packing>
+                                    </child>
+                                    <child>
                                       <widget class="GtkButton" id="Write_USB">
                                         <property 
name="visible">True</property>
                                         <property 
name="sensitive">False</property>
@@ -1081,7 +1128,54 @@
                                       <packing>
                                         <property 
name="expand">False</property>
                                         <property name="fill">False</property>
-                                        <property name="position">6</property>
+                                        <property name="position">8</property>
+                                      </packing>
+                                    </child>
+                                    <child>
+                                      <widget class="GtkVSeparator" 
id="target-images-separator3">
+                                        <property 
name="width_request">20</property>
+                                        <property 
name="visible">True</property>
+                                      </widget>
+                                      <packing>
+                                        <property 
name="expand">False</property>
+                                        <property name="position">9</property>
+                                      </packing>
+                                    </child>
+                                    <child>
+                                      <widget class="GtkButton" 
id="launch_vm_btn">
+                                        <property 
name="visible">True</property>
+                                        <property 
name="sensitive">False</property>
+                                        <property 
name="can_focus">True</property>
+                                        <property name="tooltip" 
translatable="yes">Boot a live USB image in KVM</property>
+                                        <property 
name="response_id">0</property>
+                                        <signal name="clicked" 
handler="on_launch_vm_btn_clicked"/>
+                                        <child>
+                                          <widget class="GtkVBox" id="vbox29">
+                                            <property 
name="visible">True</property>
+                                            <child>
+                                              <widget class="GtkImage" 
id="image19">
+                                                <property 
name="visible">True</property>
+                                                <property 
name="stock">gtk-execute</property>
+                                              </widget>
+                                            </child>
+                                            <child>
+                                              <widget class="GtkLabel" 
id="launch_vm_label">
+                                                <property 
name="visible">True</property>
+                                                <property name="label" 
translatable="yes">Launch VM</property>
+                                              </widget>
+                                              <packing>
+                                                <property 
name="expand">False</property>
+                                                <property 
name="fill">False</property>
+                                                <property 
name="position">1</property>
+                                              </packing>
+                                            </child>
+                                          </widget>
+                                        </child>
+                                      </widget>
+                                      <packing>
+                                        <property 
name="expand">False</property>
+                                        <property name="fill">False</property>
+                                        <property name="position">10</property>
                                       </packing>
                                     </child>
                                   </widget>
@@ -2073,7 +2167,7 @@
             <child>
               <widget class="GtkTable" id="table3">
                 <property name="visible">True</property>
-                <property name="n_rows">5</property>
+                <property name="n_rows">7</property>
                 <property name="n_columns">2</property>
                 <child>
                   <placeholder/>
@@ -2088,6 +2182,12 @@
                   <placeholder/>
                 </child>
                 <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
                   <widget class="GtkLabel" id="label45">
                     <property name="visible">True</property>
                     <property name="xalign">0</property>
@@ -2161,6 +2261,32 @@
                     <property name="y_options"></property>
                   </packing>
                 </child>
+                <child>
+                  <widget class="GtkLabel" id="label48">
+                    <property name="visible">True</property>
+                    <property name="xalign">0</property>
+                    <property name="label" translatable="yes">NAND Booting 
kernel cmdline:</property>
+                  </widget>
+                  <packing>
+                    <property name="top_attach">6</property>
+                    <property name="bottom_attach">7</property>
+                    <property name="x_options">GTK_FILL</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <widget class="GtkEntry" id="nand_kernel_cmdline">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                  </widget>
+                  <packing>
+                    <property name="left_attach">1</property>
+                    <property name="right_attach">2</property>
+                    <property name="top_attach">6</property>
+                    <property name="bottom_attach">7</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
               </widget>
             </child>
           </widget>
_______________________________________________
Commits mailing list
[email protected]
https://www.moblin.org/mailman/listinfo/commits

Reply via email to