diff --git a/core/interface/dialogs/settings.py b/core/interface/dialogs/settings.py index 11d64d3..592346d 100644 --- a/core/interface/dialogs/settings.py +++ b/core/interface/dialogs/settings.py @@ -28,18 +28,33 @@ def settings_dialog(self): def close_settings(): dialog.reject() - checkbox_container = QWidget() - checkbox_layout = QHBoxLayout() + update_checkbox_container = QWidget() + update_checkbox_layout = QHBoxLayout() # ignore updates checkbox - checkbox = QCheckBox() - checkbox_container.setLayout(checkbox_layout) - checkbox_layout.addWidget(QLabel("Ignore Updates: ")) - checkbox_layout.addStretch() - checkbox.setChecked(state.ignore_updates) - checkbox.toggled.connect(lambda checked: setattr(state, 'ignore_updates', checked)) - checkbox_layout.addWidget(checkbox) - dialog.layout().addWidget(checkbox_container) + update_checkbox = QCheckBox() + update_checkbox_container.setLayout(update_checkbox_layout) + update_checkbox_layout.addWidget(QLabel("Ignore Updates: ")) + update_checkbox_layout.addStretch() + update_checkbox.setChecked(state.ignore_updates) + update_checkbox.toggled.connect(lambda checked: setattr(state, 'ignore_updates', checked)) + update_checkbox_layout.addWidget(update_checkbox) + dialog.layout().addWidget(update_checkbox_container) + + # auto-resume downloads checkbox + + autoresume_container = QWidget() + autoresume_layout = QHBoxLayout() + + autoresume_checkbox = QCheckBox() + autoresume_container.setLayout(autoresume_layout) + autoresume_layout.addWidget(QLabel("Auto-Resume Downloads: ")) + + autoresume_layout.addStretch() + autoresume_checkbox.setChecked(state.autoresume) + autoresume_checkbox.toggled.connect(lambda checked: setattr(state, 'autoresume', checked)) + autoresume_layout.addWidget(autoresume_checkbox) + dialog.layout().addWidget(autoresume_container) ################## # THREAD SETTING # diff --git a/core/utils/config/config.py b/core/utils/config/config.py index 4cf6513..e419db3 100644 --- a/core/utils/config/config.py +++ b/core/utils/config/config.py @@ -7,7 +7,7 @@ def create_config(): config = configparser.ConfigParser() config["General"] = {"debug": True, "api_url": f"{state.api_url}", "aria2_threads": f"{state.aria2_threads}", "download_path": f"{state.download_path}", f"speed_limit": f"{state.speed_limit}", - "ignore_updates": f"{state.ignore_updates}", "image_path": f"{state.image_path}"} + "ignore_updates": f"{state.ignore_updates}", "image_path": f"{state.image_path}", "autoresume": f"{state.autoresume}"} if platform.system() == "Windows": config_dir = os.environ.get("APPDATA", os.path.expanduser("~\\AppData\\Roaming")) @@ -51,3 +51,5 @@ def read_config(): state.ignore_updates = config.getboolean("General", "ignore_updates") if state.image_path is not None: state.image_path = config.get("General", "image_path") + if state.autoresume is not None: + state.autoresume = config.getboolean("General", "autoresume") diff --git a/core/utils/config/settings.py b/core/utils/config/settings.py index de8d1dd..3f67f51 100644 --- a/core/utils/config/settings.py +++ b/core/utils/config/settings.py @@ -13,7 +13,7 @@ def restart_aria2c(): atexit.unregister(kill_aria2server) atexit.register(kill_aria2server) -def save_settings(thread_count=None, close=lambda: None, apiurl=None, download_path=None, speed_limit=None, image_path=None): +def save_settings(thread_count=None, close=lambda: None, apiurl=None, download_path=None, speed_limit=None, image_path=None, autoresume=None): if thread_count is not None: state.aria2_threads = thread_count if apiurl is not None: @@ -24,6 +24,9 @@ def save_settings(thread_count=None, close=lambda: None, apiurl=None, download_p state.speed_limit = speed_limit if image_path is not None: state.image_path = image_path + if autoresume is not None: + state.autoresume = autoresume + create_config() restart_aria2c()