def __init__(self, data_dir: Path, user_dir: Optional[Path] = None): self._data_dir = data_dir self._user_dir = user_dir or data_dir self._last_changelog_displayed = str(update_checker.strict_current_version()) for game in RandovaniaGame.all_games(): self._set_field(f"game_{game.value}", None)
async def _on_releases_data(self, releases: Optional[List[dict]]): current_version = update_checker.strict_current_version() last_changelog = self._options.last_changelog_displayed all_change_logs, new_change_logs, version_to_display = update_checker.versions_to_display_for_releases( current_version, last_changelog, releases) if version_to_display is not None: self.display_new_version(version_to_display) if all_change_logs: from randovania.gui.widgets.changelog_widget import ChangeLogWidget changelog_tab = ChangeLogWidget(all_change_logs) self.main_tab_widget.addTab(changelog_tab, "Change Log") if new_change_logs: from randovania.gui.lib.scroll_message_box import ScrollMessageBox message_box = ScrollMessageBox.create_new( self, QtWidgets.QMessageBox.Information, "What's new", "\n".join(new_change_logs), QtWidgets.QMessageBox.Ok, ) message_box.label.setTextFormat(QtCore.Qt.TextFormat.MarkdownText) message_box.scroll_area.setMinimumSize(500, 300) await async_dialog.execute_dialog(message_box) with self._options as options: options.last_changelog_displayed = current_version
def test_serialize_fields(option: Options): # Setup # Run result = option._serialize_fields() # Assert assert result == { "version": randovania.interface_common.persisted_options._CURRENT_OPTIONS_FILE_VERSION, "options": { "last_changelog_displayed": str(update_checker.strict_current_version()), } }
async def _on_releases_data(self, releases: Optional[List[dict]]): import markdown current_version = update_checker.strict_current_version() last_changelog = self._options.last_changelog_displayed all_change_logs, new_change_logs, version_to_display = update_checker.versions_to_display_for_releases( current_version, last_changelog, releases) if version_to_display is not None: self.display_new_version(version_to_display) if all_change_logs: changelog_tab = QtWidgets.QWidget() changelog_tab.setObjectName("changelog_tab") changelog_tab_layout = QtWidgets.QVBoxLayout(changelog_tab) changelog_tab_layout.setContentsMargins(0, 0, 0, 0) changelog_tab_layout.setObjectName("changelog_tab_layout") changelog_scroll_area = QtWidgets.QScrollArea(changelog_tab) changelog_scroll_area.setWidgetResizable(True) changelog_scroll_area.setObjectName("changelog_scroll_area") changelog_scroll_contents = QtWidgets.QWidget() changelog_scroll_contents.setGeometry(QtCore.QRect(0, 0, 489, 337)) changelog_scroll_contents.setObjectName( "changelog_scroll_contents") changelog_scroll_layout = QtWidgets.QVBoxLayout( changelog_scroll_contents) changelog_scroll_layout.setObjectName("changelog_scroll_layout") for entry in all_change_logs: changelog_label = QtWidgets.QLabel(changelog_scroll_contents) _update_label_on_show(changelog_label, markdown.markdown(entry)) changelog_label.setObjectName("changelog_label") changelog_label.setWordWrap(True) changelog_scroll_layout.addWidget(changelog_label) changelog_scroll_area.setWidget(changelog_scroll_contents) changelog_tab_layout.addWidget(changelog_scroll_area) self.help_tab_widget.addTab(changelog_tab, "Change Log") if new_change_logs: await async_dialog.message_box( self, QtWidgets.QMessageBox.Information, "What's new", markdown.markdown("\n".join(new_change_logs))) with self._options as options: options.last_changelog_displayed = current_version
def _on_releases_data(self, task: asyncio.Task): releases = task.result() current_version = update_checker.strict_current_version() last_changelog = self._options.last_changelog_displayed all_change_logs, new_change_logs, version_to_display = update_checker.versions_to_display_for_releases( current_version, last_changelog, releases) if version_to_display is not None: self.display_new_version(version_to_display) if all_change_logs: changelog_tab = QtWidgets.QWidget() changelog_tab.setObjectName("changelog_tab") changelog_tab_layout = QtWidgets.QVBoxLayout(changelog_tab) changelog_tab_layout.setContentsMargins(0, 0, 0, 0) changelog_tab_layout.setObjectName("changelog_tab_layout") changelog_scroll_area = QtWidgets.QScrollArea(changelog_tab) changelog_scroll_area.setWidgetResizable(True) changelog_scroll_area.setObjectName("changelog_scroll_area") changelog_scroll_contents = QtWidgets.QWidget() changelog_scroll_contents.setGeometry(QtCore.QRect(0, 0, 489, 337)) changelog_scroll_contents.setObjectName( "changelog_scroll_contents") changelog_scroll_layout = QtWidgets.QVBoxLayout( changelog_scroll_contents) changelog_scroll_layout.setObjectName("changelog_scroll_layout") changelog_label = QtWidgets.QLabel(changelog_scroll_contents) changelog_label.setObjectName("changelog_label") changelog_label.setText( markdown.markdown("\n".join(all_change_logs))) changelog_label.setWordWrap(True) changelog_scroll_layout.addWidget(changelog_label) changelog_scroll_area.setWidget(changelog_scroll_contents) changelog_tab_layout.addWidget(changelog_scroll_area) self.help_tab_widget.addTab(changelog_tab, "Change Log") if new_change_logs: QMessageBox.information( self, "What's new", markdown.markdown("\n".join(new_change_logs))) with self._options as options: options.last_changelog_displayed = current_version
def __init__(self, data_dir: Path): self._data_dir = data_dir self._last_changelog_displayed = str(update_checker.strict_current_version())
def __init__(self, data_dir: Path, user_dir: Optional[Path] = None): self._data_dir = data_dir self._user_dir = user_dir or data_dir self._last_changelog_displayed = str( update_checker.strict_current_version())