GUI and other improvements

1. Diable persistence slider after installing a distro
2. Correct typo on default syslinux.cfg file
3. Update status text when applying filesystem to persistence file
4. Correct QEMU boot issue under Windows
pull/124/head
mbusb 7 years ago
parent 9ffb4ba5e5
commit 1c6cd4fff7

3
.gitignore vendored

@ -101,3 +101,6 @@ multibootusb*.exe
# VIM temp files
*.swp
# Test file which I work on to test logic before committing to main file.
mbusb*py

@ -43,7 +43,7 @@ INITRD /multibootusb/grub/core.img
TEXT HELP
Switch to GRUB2 bootloader for more options. Some distros
may or may not run on GRUB2, but worth a try. Menu entries
under GRUB2 are either converted from either syslinux config
under GRUB2 are either converted from syslinux config
or supported through native grub.cfg/loopback.cfg.
ENDTEXT

@ -302,6 +302,13 @@ class AppGui(qemu.Qemu, Imager, QtWidgets.QMainWindow, Ui_MainWindow):
self.ui.label_persistence.setVisible(False)
self.ui.slider_persistence.setVisible(False)
def ui_disable_persistence(self):
self.ui.label_persistence_value.setEnabled(False)
self.ui.label_persistence.setEnabled(False)
self.ui.slider_persistence.setEnabled(False)
self.ui.label_persistence_value.setVisible(False)
self.ui.label_persistence.setVisible(False)
self.ui.slider_persistence.setVisible(False)
def update_slider_text(self):
@ -323,6 +330,8 @@ class AppGui(qemu.Qemu, Imager, QtWidgets.QMainWindow, Ui_MainWindow):
self.ui.statusbar.showMessage("Status: Sync is in progress...")
os.system('sync')
self.ui.statusbar.showMessage("Status: Idle")
self.ui_disable_persistence()
log(iso_name(config.image_path) + ' has been successfully installed.')
QtWidgets.QMessageBox.information(self, 'Finished...', iso_name(config.image_path) + ' has been successfully installed.')
config.process_exist = None

@ -94,6 +94,7 @@ def create_persistence():
if not config.distro == 'fedora':
gen.log('Applying filesystem to persistence file...')
config.status_text = 'Applying filesystem to persistence file. Please wait...'
gen.log('Executing ==> ' + persistence_mkfs_cmd)
config.status_text = 'Applying filesystem to persistence file...'
if subprocess.call(persistence_mkfs_cmd, shell=True) == 0:

@ -107,7 +107,7 @@ class Qemu(QtWidgets.QMainWindow, Ui_MainWindow):
disk_number = self.get_physical_disk_number(qemu_usb_disk)
parent_dir = os.getcwd()
os.chdir(resource_path(os.path.join("data", "tools", "qemu")))
cmd = qemu + ' -L . -boot c' + ram + ' -hda //./PhysicalDrive ' + disk_number
cmd = qemu + ' -L . -boot c' + ram + ' -hda //./PhysicalDrive' + disk_number
try:
log("Executing ==> " + cmd)

@ -56,11 +56,15 @@ def syslinux_default(usb_disk, version=4):
if os.access(extlinux_path, os.X_OK) is False:
subprocess.call('chmod +x ' + extlinux_path, shell=True)
log ("\nExecuting ==> " + extlinu_cmd)
config.status_text = 'Installing default extlinux version 4...'
if subprocess.call(extlinu_cmd, shell=True) == 0:
log ("\nDefault Extlinux install is success...\n")
config.status_text = 'Default extlinux install is success...'
config.status_text = 'Installing mbr...'
log ('\nExecuting ==> ' + mbr_install_cmd)
if subprocess.call(mbr_install_cmd, shell=True) == 0:
log ("\nmbr install is success...\n")
config.status_text = 'mbr install is success...'
log("\nmbr install is success...\n")
if set_boot_flag(usb_disk) is True:
return True
@ -71,24 +75,31 @@ def syslinux_default(usb_disk, version=4):
if os.access(syslinux_path, os.X_OK) is False:
subprocess.call('chmod +x ' + syslinux_path, shell=True)
log ("\nExecuting ==> " + syslinux_cmd + "\n")
config.status_text = 'Installing default syslinux version 4...'
if subprocess.call(syslinux_cmd, shell=True) == 0:
log ("\nDefault syslinux install is success...\n")
config.status_text = 'Default syslinux successfully installed...'
if subprocess.call(mbr_install_cmd, shell=True) == 0:
config.status_text = 'mbr install is success...'
log ("\nmbr install is success...\n")
if set_boot_flag(usb_disk) is True:
return True
else:
log ("\nFailed to install default syslinux...\n")
config.status_text = 'Failed to install default syslinux...'
return False
elif platform.system() == "Windows":
syslinux = resource_path(os.path.join(multibootusb_host_dir(), "syslinux", "bin", "syslinux4.exe"))
log ('Executing ==>' + syslinux + ' -maf -d multibootusb ' + usb_disk)
config.status_text = 'Installing default syslinux version 4...'
if subprocess.call(syslinux + ' -maf -d multibootusb ' + usb_disk, shell=True) == 0:
config.status_text = 'Default syslinux successfully installed...'
log ("\nDefault syslinux install is success...\n")
return True
else:
log ("\nFailed to install default syslinux...\n")
config.status_text = 'Failed to install default syslinux...'
return False
@ -145,14 +156,20 @@ def syslinux_distro_dir(usb_disk, iso_link, distro):
sys_cmd = syslinux_path + option + quote(distro_syslinux_install_dir) + ' ' + usb_disk
dd_cmd = 'dd if=' + usb_disk + ' ' + 'of=' + quote(distro_sys_install_bs) + ' count=1'
log ("Executing ==> " + sys_cmd)
config.status_text = 'Installing distro specific syslinux...'
if subprocess.call(sys_cmd, shell=True) == 0:
config.status_text = 'Syslinux install on distro directory is success...'
log ("\nSyslinux install on distro directory is success...\n")
log ('Executing ==> ' + dd_cmd + '\n')
config.status_text = 'Copying boot sector...'
if subprocess.call(dd_cmd, shell=True) == 0:
config.status_text = 'Bootsector copy is success...'
log ("\nBootsector copy is success...\n")
else:
config.status_text = 'Failed to copy boot sector...'
log ("\nFailed to copy boot sector...\n")
else:
config.status_text = 'Failed to install syslinux on distro directory...'
log ("\nFailed to install syslinux on distro directory...\n")
elif platform.system() == "Windows":
syslinux_path = resource_path(os.path.join(multibootusb_host_dir(), "syslinux", "bin")) + \
@ -162,9 +179,12 @@ def syslinux_distro_dir(usb_disk, iso_link, distro):
sys_cmd = syslinux_path + option + distro_syslinux_install_dir + ' ' + usb_disk + ' ' + \
distro_sys_install_bs
log("\nExecuting ==> " + sys_cmd, '\n')
config.status_text = 'Installing distro specific syslinux...'
if subprocess.call(sys_cmd, shell=True) == 0:
config.status_text = 'Syslinux install on distro directory is success...'
log ("\nSyslinux install was successful on distro directory...\n")
else:
config.status_text = 'Failed to install syslinux on distro directory...'
log ("\nFailed to install syslinux on distro directory...\n")
elif usb_fs in extlinux_fs:
if platform.system() == "Linux":

Loading…
Cancel
Save