Ejemplo n.º 1
0
 def act(self):
     logging.info("Entered FindProject state.")
     settings_service = locator.get_static("SettingsService")
     if settings_service.has_cached_project():
         locator.get_static("StateMachine").transition("Loading")
     else:
         locator.get_static("StateMachine").transition("SelectProject")
Ejemplo n.º 2
0
 def run(self):
     locator.clear_scoped_services()
     try:
         locator.register_scoped("Driver", Driver(self.project))
         locator.register_scoped("OpenFilesService", OpenFilesService(self.project.filesystem))
         locator.register_scoped("ModuleDataService", ModuleDataService())
         locator.register_scoped("ModuleService", ModuleService(self.project))
         locator.register_scoped("CommonModuleService", CommonModuleService())
         locator.register_scoped("DedicatedEditorsService", DedicatedEditorsService(self.project.game))
         locator.get_scoped("ModuleService").load_files_and_generate_model()
         locator.get_static("SettingsService").save(self.project)
         self.over.emit()
     except Exception as e:
         logging.exception(e)
         self.failed.emit()
Ejemplo n.º 3
0
    def __init__(self):
        super().__init__()
        self.setupUi(self)
        self.setWindowTitle("Project Select")
        self.setWindowIcon(QIcon("paragon.ico"))
        self.create_project_dialog = None
        self.current_project = None

        settings_service = locator.get_static("SettingsService")
        self.model: ProjectModel = settings_service.get_project_model()
        self.table_view.setModel(self.model)
        self.table_view.verticalHeader().hide()
        self.table_view.setSelectionBehavior(QTableView.SelectRows)
        self.table_view.horizontalHeader().setSectionResizeMode(
            0, QHeaderView.Stretch)
        self.table_view.setEditTriggers(QAbstractItemView.NoEditTriggers)
        self.remember_check_box.setChecked(
            settings_service.should_remember_last_project())

        self.action_create.triggered.connect(self._on_create_project_clicked)
        self.action_remove.triggered.connect(self._on_remove_clicked)
        self.action_move_up.triggered.connect(self._on_move_up_clicked)
        self.action_move_down.triggered.connect(self._on_move_down_clicked)
        self.remember_check_box.stateChanged.connect(
            self._on_remember_project_checked)
        self.table_view.activated.connect(self._on_project_activated)
        self.table_view.selectionModel().currentRowChanged.connect(
            self._on_selected_row_changed)
Ejemplo n.º 4
0
 def _populate_themes_menu(self):
     self.theme_menu = self.menuOptions.addMenu("Theme")
     current_theme = locator.get_static("SettingsService").get_theme()
     for theme in QStyleFactory.keys():
         action = self.theme_menu.addAction(theme)
         action.setCheckable(True)
         if theme == current_theme:
             action.setChecked(True)
         action.setActionGroup(self.theme_action_group)
         action.changed.connect(
             lambda a=action, t=theme: self._on_theme_changed(a, t))
Ejemplo n.º 5
0
 def closeEvent(self, event: QtGui.QCloseEvent):
     locator.get_static("SettingsService").save_settings()
     event.accept()
Ejemplo n.º 6
0
 def _on_theme_changed(self, action: QAction, new_theme: str):
     if action.isChecked():
         locator.get_static("SettingsService").set_theme(new_theme)
         self.theme_info_dialog.exec_()
Ejemplo n.º 7
0
 def reload_project(self):
     logging.info("Reload project triggered.")
     self.proxy_model.setSourceModel(None)
     self.hide()
     state_machine = locator.get_static("StateMachine")
     state_machine.transition("Loading")
Ejemplo n.º 8
0
 def close(self):
     self.proxy_model.setSourceModel(None)
     self.hide()
     state_machine = locator.get_static("StateMachine")
     state_machine.transition("SelectProject")
Ejemplo n.º 9
0
 def closeEvent(self, event: QtGui.QCloseEvent):
     locator.get_static("SettingsService").save_settings()
     if self.create_project_dialog:
         self.create_project_dialog.hide()
     event.accept()
Ejemplo n.º 10
0
 def apply(self, _: State, ending_state: State):
     loading_state = typing.cast(LoadingState, ending_state)
     settings_service: SettingsService = locator.get_static(
         "SettingsService")
     loading_state.project = settings_service.get_cached_project()
Ejemplo n.º 11
0
 def save_selected_items_tree(self):
     project = locator.get_scoped("Driver").get_project()
     if locator.get_static("SettingsService").get_remember_exports():
         project.export_selections = self._recursive_get_selected_items_tree(self.invisibleRootItem())
Ejemplo n.º 12
0
 def restore_selections_from_project(self):
     project = locator.get_scoped("Driver").get_project()
     if project.export_selections and locator.get_static("SettingsService").get_remember_exports():
         self._recursive_restore_selections_from_project(self.invisibleRootItem(), project.export_selections)
Ejemplo n.º 13
0
 def _on_remember_project_checked(new_state: int):
     locator.get_static("SettingsService").set_remember_last_project(
         new_state != 0)
Ejemplo n.º 14
0
 def _on_project_activated(self, index: QModelIndex):
     true_index = self.model.index(index.row(), 0)
     item = self.model.itemFromIndex(true_index)
     self.current_project = item.data()
     self.hide()
     locator.get_static("StateMachine").transition("Loading")
Ejemplo n.º 15
0
 def _on_create_project_accepted(self):
     if self.create_project_dialog:
         self.current_project = self.create_project_dialog.project
         self.model.add_project(self.current_project)
         self.hide()
         locator.get_static("StateMachine").transition("Loading")
Ejemplo n.º 16
0
 def _set_remember_checkbox_state_from_settings(self):
     settings_service = locator.get_static("SettingsService")
     if settings_service.get_remember_exports():
         self.remember_selections_checkbox.setCheckState(QtCore.Qt.Checked)
Ejemplo n.º 17
0
 def _on_remember_selections_state_changed(state: int):
     should_remember = state == QtCore.Qt.Checked
     locator.get_static("SettingsService").set_remember_exports(
         should_remember)
Ejemplo n.º 18
0
 def _on_loading_success(self):
     self.progress_dialog.hide()
     locator.get_static("StateMachine").transition("Main")
Ejemplo n.º 19
0
def _load_theme_from_settings(app: QApplication):
    theme = locator.get_static("SettingsService").get_theme()
    if theme and theme in QStyleFactory.keys():
        app.setStyle(theme)
Ejemplo n.º 20
0
 def _on_error_dialog_closed(_result):
     locator.get_static("StateMachine").transition("SelectProject")