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