From 92950911ceadd2f71309f140d4ec5398d58d2caa Mon Sep 17 00:00:00 2001 From: hyprodimus Date: Tue, 29 Aug 2023 00:09:44 -0700 Subject: [PATCH 1/3] Update main.py --- main.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/main.py b/main.py index 721b316..87fbf31 100644 --- a/main.py +++ b/main.py @@ -437,12 +437,16 @@ def decodeBuildFromImage(self, src): return total_pixels = array.size//n - hidden_bits = "" + hidden_bits = [""] * (total_pixels * 3) + counter = 0 + for p in range(total_pixels): if p % 5000 == 0: self.progress_bar_update() for q in range(0, 3): - hidden_bits += (bin(array[p][q])[2:][-1]) + hidden_bits[counter] = (bin(array[p][q])[2:][-1]) + counter += 1 + hidden_bits = "".join(hidden_bits) hidden_bits = [hidden_bits[i:i+8] for i in range(0, len(hidden_bits), 8)] message = "" for i in range(len(hidden_bits)): From 7bb8e0a5c0564d349190a51faa6cb7dfe2019006 Mon Sep 17 00:00:00 2001 From: hyprodimus Date: Sat, 9 Sep 2023 00:16:50 -0700 Subject: [PATCH 2/3] split export callback function --- main.py | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/main.py b/main.py index 8df9d35..0e177cf 100644 --- a/main.py +++ b/main.py @@ -128,6 +128,8 @@ class SETS(): wikihttp = wikihttp_current wikiImages = wikihttp+wikiImagesText + loaded_filename = "" + #query for ship cargo table on the wiki ship_query = 'Special:CargoExport?tables=Ships&fields=_pageName%3DPage,name,image,fc,tier,type,hull,hullmod,shieldmod,turnrate,impulse,inertia,powerall,powerweapons,powershields,powerengines,powerauxiliary,powerboost,boffs,fore,aft,equipcannons,devices,consolestac,consoleseng,consolessci,uniconsole,t5uconsole,experimental,secdeflector,hangars,abilities,displayprefix,displayclass,displaytype,factionlede&limit=2500&format=json' #query for ship equipment cargo table on the wiki @@ -3124,6 +3126,7 @@ def importByFilename(self, inFilename, force=False, autosave=False): if not result and self.persistent['forceJsonLoad']: return self.importByFilename(inFilename, True) else: + if autosave is False : self.loaded_filename = inFilename return result def repair_build(self): @@ -3198,7 +3201,7 @@ def filenameDefault(self): def in_splash(self): return self.visible_window == 'splash' - def exportCallback(self, event=None): + def exportAs(self, save_as, event=None): """Callback for export as png button""" if self.in_splash(): return @@ -3219,7 +3222,11 @@ def exportCallback(self, event=None): defaultExtensionOption = 'json' #self.logWrite('==={}'.format(self.persistent['exportDefault'].lower()), 2) - outFilename = filedialog.asksaveasfilename(defaultextension='.'+defaultExtensionOption,filetypes=filetypesOptions, initialfile=self.filenameDefault(), initialdir=initialDir) + if save_as is True: + outFilename = filedialog.asksaveasfilename(defaultextension='.'+defaultExtensionOption,filetypes=filetypesOptions, initialfile=self.filenameDefault(), initialdir=initialDir) + else: + outFilename = self.loaded_filename + if not outFilename: return @@ -3239,6 +3246,15 @@ def exportCallback(self, event=None): self.logWriteTransaction('Export build', chosenExtension, str(os.path.getsize(outFilename)), outFilename, 0, [str(image.size) if chosenExtension.lower() == '.png' else None]) + + def exportAsCallback(self): + self.exportAs(True) + + + def exportCallback(self): + self.exportAs(False) + + def update_build_master(self): if self.persistent['versioning']: if self.build != self.buildImport[-1]: @@ -3276,6 +3292,7 @@ def skillValidDeselect(self, name, environment, rank): else: return True + def skillAllowed(self, skill_id, environment): (rank, row, col) = skill_id name = self.skillGetFieldNode(environment, (rank, row, col), type='name') @@ -7142,7 +7159,8 @@ def setupMenuFrame(self): exportImportFrame.grid(row=0, column=col, sticky='nsew') settingsMenuExport = { 'default': {'sticky': 'n', 'bg': self.theme['button_medium']['bg'], 'fg': self.theme['button_medium']['fg'], 'font_data': self.font_tuple_create('button_medium')}, - 'Save': {'type': 'button_block', 'var_name': 'exportFullButton', 'callback': self.exportCallback}, + 'Save As': {'type': 'button_block', 'var_name': 'exportFullButton', 'callback': self.exportAsCallback}, + 'Save': {'type': 'button_block', 'var_name': 'exportButton', 'callback': self.exportCallback}, 'Open': {'type': 'button_block', 'var_name': 'importButton', 'callback': self.importCallback}, 'Clear...': {'type': 'menu', 'var_name': 'clearButton', 'setting_options': ['Clear all', 'Clear skills'], 'callback': 'menu_clear_callback'}, } From 27e69a01942a399282d94db54e9f663bfef949f5 Mon Sep 17 00:00:00 2001 From: hyprodimus Date: Sun, 8 Oct 2023 00:29:43 -0700 Subject: [PATCH 3/3] Update main.py Save filename for Save As so that Save can resave to that file --- main.py | 1 + 1 file changed, 1 insertion(+) diff --git a/main.py b/main.py index 0e177cf..6d5feaa 100644 --- a/main.py +++ b/main.py @@ -3224,6 +3224,7 @@ def exportAs(self, save_as, event=None): if save_as is True: outFilename = filedialog.asksaveasfilename(defaultextension='.'+defaultExtensionOption,filetypes=filetypesOptions, initialfile=self.filenameDefault(), initialdir=initialDir) + self.loaded_filename = outFilename else: outFilename = self.loaded_filename