Path: blob/master/src/settingswindow.py
254 views
import spritesheetgensettings1from PyQt5.QtWidgets import QWidget2from utils import g_settings34class SettingsWindow(QWidget):5def __init__(self, *args, **kwargs):6super().__init__(*args, **kwargs)7self.ui = spritesheetgensettings.Ui_Form()8self.ui.setupUi(self)910self.ui.packingalgo_combobox.addItems([11"Growing Packer (Fits the frames as tightly as possible but doesn't maintain frame ordering)",12"Ordered Packer (Fits the frames in the order they were added but produces a slightly bigger spritesheet)"13])14self.ui.packingalgo_combobox.setCurrentIndex(0)15# self.setStyleSheet(get_stylesheet_from_file("app-styles.qss"))1617# self.isclip = self.ui.clip_checkbox.checkState()18# self.prefix_type = 'custom' if self.ui.custom_prefix_radiobtn.isChecked() else 'charname'19# self.custom_prefix = self.ui.custom_prefix_text.text()20# self.must_use_prefix = self.ui.insist_prefix_checkbox.checkState()21self.saveSettings(False)2223self.ui.custom_prefix_radiobtn.toggled.connect(lambda is_toggled: self.ui.custom_prefix_text.setEnabled(is_toggled))24self.ui.save_settings_btn.clicked.connect(lambda: self.saveSettings()) # make sure event related parameters don't get accidentally sent to self.saveSettings25self.ui.settings_cancel_btn.clicked.connect(self.restoreToNormal)2627# hide the no_merge checkbox for now as it is a WIP28self.ui.no_merge_checkbox.setVisible(False)2930def _get_prefix_type(self):31if self.ui.custom_prefix_radiobtn.isChecked():32return 'custom'33elif self.ui.charname_first_radiobtn.isChecked():34return 'charname'35elif self.ui.no_prefix_radiobtn.isChecked():36return 'noprefix'3738def _set_radiobuttons(self):39self.ui.custom_prefix_radiobtn.setChecked(self.prefix_type == 'custom')40self.ui.charname_first_radiobtn.setChecked(self.prefix_type == 'charname')41self.ui.no_prefix_radiobtn.setChecked(self.prefix_type == 'noprefix')4243def restoreToNormal(self):44self.ui.clip_checkbox.setCheckState(self.isclip)45self._set_radiobuttons()46self.ui.custom_prefix_text.setText(self.custom_prefix)47self.ui.insist_prefix_checkbox.setCheckState(self.must_use_prefix)48self.ui.frame_padding_spinbox.setValue(self.frame_padding)49self.ui.packingalgo_combobox.setCurrentIndex(self.packing_algo)50# self.ui.no_merge_checkbox.setCheckState(self.no_merge)51self.close()5253def saveSettings(self, shouldclose=True):54self.isclip = self.ui.clip_checkbox.checkState()55# self.prefix_type = 'custom' if self.ui.custom_prefix_radiobtn.isChecked() else 'charname'56self.prefix_type = self._get_prefix_type()57self.custom_prefix = self.ui.custom_prefix_text.text()58self.must_use_prefix = self.ui.insist_prefix_checkbox.checkState()59self.frame_padding = self.ui.frame_padding_spinbox.value()60self.packing_algo = self.ui.packingalgo_combobox.currentIndex()61# self.no_merge = self.ui.no_merge_checkbox.checkState()62# saving to global settings obj63g_settings['isclip'] = self.isclip64g_settings['prefix_type'] = self.prefix_type65g_settings['custom_prefix'] = self.custom_prefix66g_settings['must_use_prefix'] = self.must_use_prefix67g_settings['frame_padding'] = self.frame_padding68g_settings['packing_algo'] = self.packing_algo69# g_settings['no_merge'] = self.no_merge70if shouldclose:71self.close()7273def closeEvent(self, a0):74self.restoreToNormal()75# return super().closeEvent(a0)7677