|
|
|
@ -308,6 +308,21 @@ Are you SURE you want to enable it?",
|
|
|
|
|
self.ui.label_persistence.setVisible(False)
|
|
|
|
|
self.ui.slider_persistence.setVisible(False)
|
|
|
|
|
|
|
|
|
|
def ui_disable_controls(self):
|
|
|
|
|
self.ui.combo_drives.setEnabled(False)
|
|
|
|
|
self.ui.checkbox_all_drives.setEnabled(False)
|
|
|
|
|
self.ui.button_detect_drives.setEnabled(False)
|
|
|
|
|
self.ui.button_browse_image.setEnabled(False)
|
|
|
|
|
self.ui.image_path.setEnabled(False)
|
|
|
|
|
self.ui.tabWidget.setEnabled(False)
|
|
|
|
|
|
|
|
|
|
def ui_enable_controls(self):
|
|
|
|
|
self.ui.combo_drives.setEnabled(True)
|
|
|
|
|
self.ui.checkbox_all_drives.setEnabled(True)
|
|
|
|
|
self.ui.button_detect_drives.setEnabled(True)
|
|
|
|
|
self.ui.button_browse_image.setEnabled(True)
|
|
|
|
|
self.ui.image_path.setEnabled(True)
|
|
|
|
|
self.ui.tabWidget.setEnabled(True)
|
|
|
|
|
|
|
|
|
|
def update_slider_text(self):
|
|
|
|
|
slide_value = self.ui.slider_persistence.value() * 1024 * 1024
|
|
|
|
@ -332,12 +347,16 @@ Are you SURE you want to enable it?",
|
|
|
|
|
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
|
|
|
|
|
self.ui_enable_controls()
|
|
|
|
|
|
|
|
|
|
def onInstall_syslinuxClick(self):
|
|
|
|
|
"""
|
|
|
|
|
Function to install syslinux/extlinux on selected USB disk.
|
|
|
|
|
:return:
|
|
|
|
|
"""
|
|
|
|
|
|
|
|
|
|
self.ui_disable_controls()
|
|
|
|
|
|
|
|
|
|
if platform.system() == "Linux" or platform.system() == "Windows":
|
|
|
|
|
|
|
|
|
|
if self.ui.install_sys_all.isChecked() or self.ui.install_sys_only.isChecked():
|
|
|
|
@ -359,6 +378,8 @@ Are you SURE you want to enable it?",
|
|
|
|
|
QtWidgets.QMessageBox.information(self, 'No selection...',
|
|
|
|
|
'Please select one of the option from above.')
|
|
|
|
|
|
|
|
|
|
self.ui_enable_controls()
|
|
|
|
|
|
|
|
|
|
def onedit_syslinux(self):
|
|
|
|
|
"""
|
|
|
|
|
Function to edit main syslinux.cfg file.
|
|
|
|
@ -403,9 +424,13 @@ Are you SURE you want to enable it?",
|
|
|
|
|
Triggers a function to uninstall a selected distro.
|
|
|
|
|
:return:
|
|
|
|
|
"""
|
|
|
|
|
|
|
|
|
|
self.ui_disable_controls()
|
|
|
|
|
|
|
|
|
|
if self.ui.installed_distros.currentItem() is None:
|
|
|
|
|
log("Please select a distro from the list.")
|
|
|
|
|
QtWidgets.QMessageBox.information(self, 'No selection.', 'Please select a distro from the list.')
|
|
|
|
|
self.ui_enable_controls()
|
|
|
|
|
else:
|
|
|
|
|
config.uninstall_distro_dir_name = str(self.ui.installed_distros.currentItem().text()).strip()
|
|
|
|
|
reply = QtWidgets.QMessageBox.question(self, "Review selection...",
|
|
|
|
@ -418,6 +443,7 @@ Are you SURE you want to enable it?",
|
|
|
|
|
log("Distro install directory not found. Just updating syslinux.cfg file.")
|
|
|
|
|
update_sys_cfg_file()
|
|
|
|
|
#self.uninstall.update_sys_cfg_file()
|
|
|
|
|
self.ui_enable_controls()
|
|
|
|
|
else:
|
|
|
|
|
self.progress_thread_uninstall.start()
|
|
|
|
|
|
|
|
|
@ -434,6 +460,7 @@ Are you SURE you want to enable it?",
|
|
|
|
|
self.ui.statusbar.showMessage("Status: Idle")
|
|
|
|
|
QtWidgets.QMessageBox.information(self, 'Uninstall Complete...',
|
|
|
|
|
config.uninstall_distro_dir_name + ' has been successfully removed.')
|
|
|
|
|
self.ui_enable_controls()
|
|
|
|
|
|
|
|
|
|
def onCreateClick(self):
|
|
|
|
|
"""
|
|
|
|
@ -442,22 +469,29 @@ Are you SURE you want to enable it?",
|
|
|
|
|
:param iso_link: LineEdit text as selected ISO link.
|
|
|
|
|
:return:
|
|
|
|
|
"""
|
|
|
|
|
|
|
|
|
|
self.ui_disable_controls()
|
|
|
|
|
|
|
|
|
|
if not config.usb_disk:
|
|
|
|
|
log("ERROR: No USB device found.")
|
|
|
|
|
QtWidgets.QMessageBox.information(self, "No Device...",
|
|
|
|
|
"No USB device found.\n\nInsert USB and use Refresh USB button to detect USB.")
|
|
|
|
|
self.ui_enable_controls()
|
|
|
|
|
elif not config.image_path:
|
|
|
|
|
log("No ISO selected.")
|
|
|
|
|
QtWidgets.QMessageBox.information(self, "No ISO...", "No ISO found.\n\nPlease select an ISO.")
|
|
|
|
|
self.ui_enable_controls()
|
|
|
|
|
elif usb.details(config.usb_disk)['mount_point'] == 'No_Mount':
|
|
|
|
|
log("ERROR: USB disk is not mounted.")
|
|
|
|
|
QtWidgets.QMessageBox.information(self, "No Mount...", "USB disk is not mounted.\n"
|
|
|
|
|
"Please mount USB disk and press refresh USB button.")
|
|
|
|
|
self.ui_enable_controls()
|
|
|
|
|
elif platform.system() == 'Linux' and config.usb_disk[-1].isdigit() is False:
|
|
|
|
|
gen.log('Selected USB is a disk. Please select a disk partition from the drop down list')
|
|
|
|
|
QtWidgets.QMessageBox.information(self, 'No Partition...!', 'USB disk selected doesn\'t contain a partition.\n'
|
|
|
|
|
gen.log('Selected USB is a disk. Please select a disk partition from the drop down list')
|
|
|
|
|
QtWidgets.QMessageBox.information(self, 'No Partition...!', 'USB disk selected doesn\'t contain a partition.\n'
|
|
|
|
|
'Please select the partition (ending '
|
|
|
|
|
'with a digit eg. /dev/sdb1)\nfrom the drop down list.')
|
|
|
|
|
self.ui_enable_controls()
|
|
|
|
|
else:
|
|
|
|
|
# clean_iso_cfg_ext_dir(os.path.join(multibootusb_host_dir(), "iso_cfg_ext_dir")) # Need to be cleaned.
|
|
|
|
|
# extract_cfg_file(config.image_path) # Extract files from ISO
|
|
|
|
@ -476,7 +510,7 @@ Are you SURE you want to enable it?",
|
|
|
|
|
log("MultiBoot Install: ISO file: " + iso_name(config.image_path))
|
|
|
|
|
|
|
|
|
|
if os.path.exists(config.image_path):
|
|
|
|
|
self.ui.image_path.clear()
|
|
|
|
|
# self.ui.image_path.clear()
|
|
|
|
|
if config.distro:
|
|
|
|
|
log("MultiBoot Install: Distro type detected: " + config.distro)
|
|
|
|
|
copy_mbusb_dir_usb(config.usb_disk)
|
|
|
|
@ -487,6 +521,7 @@ Are you SURE you want to enable it?",
|
|
|
|
|
if install_size >= disk_usage(config.usb_mount).free:
|
|
|
|
|
log("ERROR: Not enough space available on " + config.usb_disk)
|
|
|
|
|
QtWidgets.QMessageBox.information(self, "No Space.", "No space available on " + config.usb_disk)
|
|
|
|
|
self.ui_enable_controls()
|
|
|
|
|
else:
|
|
|
|
|
reply = QtWidgets.QMessageBox.question(self, 'Review selection...',
|
|
|
|
|
'Selected USB disk: %s\n' % config.usb_disk +
|
|
|
|
@ -503,11 +538,13 @@ Are you SURE you want to enable it?",
|
|
|
|
|
else:
|
|
|
|
|
QtWidgets.QMessageBox.information(self, 'Already exists...',
|
|
|
|
|
os.path.basename(config.image_path) + ' is already installed.')
|
|
|
|
|
self.ui_enable_controls()
|
|
|
|
|
else:
|
|
|
|
|
QtWidgets.QMessageBox.information(self, 'No support...',
|
|
|
|
|
'Sorry.\n' + os.path.basename(config.image_path) +
|
|
|
|
|
' is not supported at the moment.\n'
|
|
|
|
|
'Please email this issue to feedback.multibootusb@gmail.com')
|
|
|
|
|
self.ui_enable_controls()
|
|
|
|
|
|
|
|
|
|
# Added to refresh usb disk remaining size after distro installation
|
|
|
|
|
# self.update_gui_usb_info()
|
|
|
|
@ -519,11 +556,6 @@ Are you SURE you want to enable it?",
|
|
|
|
|
"""
|
|
|
|
|
self.ui.progressbar.setValue(0)
|
|
|
|
|
self.ui.statusbar.showMessage("Status: Idle")
|
|
|
|
|
self.ui.combo_drives.setEnabled(True)
|
|
|
|
|
self.ui.button_browse_image.setEnabled(True)
|
|
|
|
|
# self.ui.pushbtn_imager_refreshusb.setEnabled(True)
|
|
|
|
|
# self.ui.imager_bootable.setText("Bootable ISO: ")
|
|
|
|
|
# self.ui.imager_iso_size.setText("Image Size: ")
|
|
|
|
|
config.process_exist = None
|
|
|
|
|
|
|
|
|
|
msgBox = QtWidgets.QMessageBox()
|
|
|
|
@ -533,6 +565,8 @@ Are you SURE you want to enable it?",
|
|
|
|
|
msgBox.setIcon(QtWidgets.QMessageBox.Information)
|
|
|
|
|
msgBox.exec()
|
|
|
|
|
|
|
|
|
|
self.ui_enable_controls()
|
|
|
|
|
|
|
|
|
|
def dd_start(self):
|
|
|
|
|
"""
|
|
|
|
|
Function to block the widgets under ISO Imager tab...
|
|
|
|
@ -555,10 +589,14 @@ Are you SURE you want to enable it?",
|
|
|
|
|
QtWidgets.QMessageBox.information(self, 'Failed!', 'Failed writing image.')
|
|
|
|
|
|
|
|
|
|
def dd_write(self):
|
|
|
|
|
self.ui_disable_controls()
|
|
|
|
|
|
|
|
|
|
if not config.usb_disk:
|
|
|
|
|
QtWidgets.QMessageBox.information(self, 'No USB...', 'Please Insert USB disk and rerun multibootusb.')
|
|
|
|
|
self.ui_enable_controls()
|
|
|
|
|
elif not config.image_path:
|
|
|
|
|
QtWidgets.QMessageBox.information(self, 'No ISO...', 'Please select an ISO.')
|
|
|
|
|
self.ui_enable_controls()
|
|
|
|
|
else:
|
|
|
|
|
imager = Imager()
|
|
|
|
|
if platform.system() == 'Linux' and config.usb_disk[-1].isdigit() is True:
|
|
|
|
@ -566,12 +604,14 @@ Are you SURE you want to enable it?",
|
|
|
|
|
QtWidgets.QMessageBox.information(self, 'Wrong Disk...!', 'Disk selected is a partition.\nISO is to '
|
|
|
|
|
'be written to whole disk for proper functioning'
|
|
|
|
|
'.\n\nPlease select the disk from the drop down list.')
|
|
|
|
|
self.ui_enable_controls()
|
|
|
|
|
else:
|
|
|
|
|
usb_disk_size = int(imager.imager_usb_detail(config.usb_disk, partition=0).total_size)
|
|
|
|
|
self.iso_size = os.path.getsize(config.image_path)
|
|
|
|
|
if self.iso_size >= usb_disk_size:
|
|
|
|
|
QtWidgets.QMessageBox.information(self, "No enough space on disk.", os.path.basename(config.image_path) +
|
|
|
|
|
" size is larger than the size of " + config.usb_disk)
|
|
|
|
|
self.ui_enable_controls()
|
|
|
|
|
#elif gen.process_exist('explorer.exe') is not False:
|
|
|
|
|
# # Check if windows explorer is running and inform user to close it.
|
|
|
|
|
# QtWidgets.QMessageBox.information(self, "Windows Explorer", "Windows Explorer is running\n"
|
|
|
|
|