From 58062ece3c96ec1e8384205a87fe6c157c4ae62e Mon Sep 17 00:00:00 2001 From: Skrepysh Date: Sun, 26 May 2024 15:56:11 +0300 Subject: [PATCH] v3.3 Updated program to version 3.3. --- minesquid.py | 51 +++++++++++++++++++++++++++++++++++++-------------- version.txt | 2 +- 2 files changed, 38 insertions(+), 15 deletions(-) diff --git a/minesquid.py b/minesquid.py index efca956..793d924 100644 --- a/minesquid.py +++ b/minesquid.py @@ -8,8 +8,8 @@ import requests from subprocess import Popen -program_version = '3.2' -build_date = '01.05.2024' +program_version = '3.3' +build_date = '26.05.2024' class MineSquid: @@ -30,9 +30,10 @@ def main(self, page: ft.Page): colors = { 'cyanaccent200': ft.colors.CYAN_ACCENT_200, # бирюзовый (стандартный) 'redaccent700': ft.colors.RED_ACCENT_700, # красный - 'green': ft.colors.GREEN, # зеленый + 'greenaccent700': ft.colors.GREEN_ACCENT_700, # зеленый 'lightgreenaccent400': ft.colors.LIGHT_GREEN_ACCENT_400, # салатовый 'blue': ft.colors.BLUE, # синий + 'indigoaccent400': ft.colors.INDIGO_ACCENT_400, # Индиго 'pink': ft.colors.PINK, # розовый 'pink300': ft.colors.PINK_300, # светло-розовый 'deeppurple': ft.colors.DEEP_PURPLE, # темно-фиолетовый @@ -41,11 +42,12 @@ def main(self, page: ft.Page): 'deeporange': ft.colors.DEEP_ORANGE, # оранжевый 'orange': ft.colors.ORANGE, # светло-оранжевый 'yellow': ft.colors.YELLOW, # желтый + 'limeaccent400': ft.colors.LIME_ACCENT_400, # Лайм } color_names = { 'cyanaccent200': "Бирюзовый", 'redaccent700': "Красный", - 'green': "Зелёный", + 'greenaccent700': "Зелёный", 'lightgreenaccent400': 'Салатовый', 'blue': "Синий", 'pink': "Розовый", @@ -56,6 +58,8 @@ def main(self, page: ft.Page): 'deeporange': "Оранжевый", 'orange': "Светло-оранжевый", 'yellow': 'Жёлтый', + 'limeaccent400': 'Лайм', + 'indigoaccent400': 'Индиго' } error_message = '' page.theme_mode = themes[0] @@ -349,6 +353,11 @@ def read_config(): width_field.error_text = '' height_field.error_text = '' + if config_ui_color not in colors: + a = ft.dropdown.Option(text=config_ui_color, key=config_ui_color) + ui_color_dropdown.options.append(a) + colors[config_ui_color] = config_ui_color + color_names[config_ui_color] = config_ui_color ui_color_dropdown.value = colors[config_ui_color] # ставим текущий цвет в выпадающий список if config_compact_ui == 'True': page.theme = ft.Theme( @@ -396,7 +405,7 @@ def read_config(): ) - dlg_nobackup = ft.AlertDialog( + dlg_empty_backup = ft.AlertDialog( modal=True, title=ft.Text('Информация'), content=ft.Text('Бэкап отсутствует, восстанавливать нечего'), @@ -406,6 +415,16 @@ def read_config(): ] ) + dlg_empty_modpack = ft.AlertDialog( + modal=True, + title=ft.Text('Информация'), + content=ft.Text('Выбранный модпак пуст'), + actions_alignment=ft.MainAxisAlignment.END, + actions=[ + ft.TextButton("OK", on_click=close_dlg), + ] + ) + dlg_edit_cancel = ft.AlertDialog( modal=True, title=ft.Text('Информация'), @@ -481,12 +500,11 @@ def read_config(): ] ) - def load_modpack(modpack_number): + def load_modpack(modpack_name): start_time = time.time() if not os.path.exists(a := f'{self.game_directory}\\mods'): os.mkdir(a) - user_choice = self.mp_list[modpack_number] - log_add(f'Выбран модпак {user_choice}') + log_add(f'Выбран модпак {modpack_name}') log_add('Загрузка...') fileslist = os.listdir(f"{self.game_directory}\\mods") if len(fileslist) > 0: @@ -497,9 +515,9 @@ def load_modpack(modpack_number): else: log_add('Бэкап не требуется') rmtree(f"{self.game_directory}\\mods") - copytree(f"{self.userappdata}\\modpacks\\{user_choice}", + copytree(f"{self.userappdata}\\modpacks\\{modpack_name}", f"{self.game_directory}\\mods\\", dirs_exist_ok=True) - log_add(f'Модпак "{user_choice}" загружен') + log_add(f'Модпак "{modpack_name}" загружен') end_time = time.time() log_add(f'Затрачено времени: {end_time - start_time}с') @@ -553,7 +571,8 @@ def prepare_main_tab(): page.update() radio.controls.clear() for x in self.mp_list: - a = ft.Radio(value=x, label=x, ) + is_empty = len(os.listdir(f'{self.userappdata}\\modpacks\\{x.replace('👈', '')}')) <= 0 + a = ft.Radio(value=x.replace('👈', ''), label=x, disabled=is_empty) radio.controls.append(a) main_tab.content = page.radio page.floating_action_button.disabled = False @@ -572,6 +591,10 @@ def loadmp(e): log_add('Модпак не выбран, отмена операции') page.dialog = dlg_mp open_dlg() + elif len(os.listdir(f'{self.userappdata}\\modpacks\\{page.radio.value}')) <= 0: + log_add('Модпак пуст, отмена операции') + page.dialog = dlg_empty_modpack + open_dlg() else: page.floating_action_button.disabled = True restore_btn.disabled = True @@ -580,7 +603,7 @@ def loadmp(e): log_add('Все ок, начинаю загрузку...') page.splash.visible = True page.update() - load_modpack(self.mp_list.index(page.radio.value)) + load_modpack(page.radio.value) page.splash.visible = False if open_dlg_mp_loaded_checkbox.value: page.dialog = dlg_mp_loaded @@ -614,7 +637,7 @@ def restore(e): open_dlg() else: log_add('Бэкап отсутствует, отмена операции') - page.dialog = dlg_nobackup + page.dialog = dlg_empty_backup open_dlg() else: page.dialog = dlg_papka @@ -870,7 +893,7 @@ def check_folders(): ft.Container(padding=5), ui_color_dropdown := ft.Dropdown( label='Цвет интерфейса', - options=[] + options=[], ), compact_ui_checkbox := ft.Checkbox( label='Компактный вид интерфейса', diff --git a/version.txt b/version.txt index 4fe5631..f30101c 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -3.2 \ No newline at end of file +3.3 \ No newline at end of file