Skip to content

Commit

Permalink
v0.3.7
Browse files Browse the repository at this point in the history
  • Loading branch information
bartlomiejduda committed Nov 17, 2024
1 parent 15c8bec commit 1f4c39a
Show file tree
Hide file tree
Showing 3 changed files with 49 additions and 1 deletion.
48 changes: 48 additions & 0 deletions src/GUI/gui_main.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,9 @@
from typing import Optional

from PIL import Image, ImageTk
from reversebox.common.common import get_file_extension_uppercase
from reversebox.common.logger import get_logger
from reversebox.image.pillow_wrapper import PillowWrapper
from tkhtmlview import HTMLLabel

from src.GUI.about_window import AboutWindow
Expand Down Expand Up @@ -314,6 +316,13 @@ def _force_reload_image_by_pressing_enter(event):
accelerator="Ctrl+O",
)
master.bind_all("<Control-o>", lambda x: self.open_file())

self.export_label: str = "Save As..."
self.filemenu.add_command(
label=self.export_label, command=lambda: self.export_image_file()
)
self.filemenu.entryconfig(self.export_label, state="disabled")

self.filemenu.add_separator()
self.filemenu.add_command(
label="Quit", command=lambda: self.quit_program(), accelerator="Ctrl+Q"
Expand Down Expand Up @@ -432,9 +441,48 @@ def open_file(self) -> bool:
self.opened_image.image_reload()
self.init_image_preview_logic()

# menu bar logic
self.filemenu.entryconfig(self.export_label, state="normal")

logger.info("Image has been opened successfully")
return True

def export_image_file(self) -> bool:
if self.opened_image:
out_file = None
try:
out_file = filedialog.asksaveasfile(
mode="wb",
defaultextension=".dds",
initialfile="exported_image",
filetypes=(("DDS files", "*.dds"), ("PNG files", "*.png"), ("BMP files", "*.bmp")),
)
except Exception as error:
logger.error(f"Error: {error}")
messagebox.showwarning("Warning", "Failed to save file!")
if out_file is None:
return False # user closed file dialog on purpose

# pack converted RGBA data
file_extension: str = get_file_extension_uppercase(out_file.name)
pillow_wrapper = PillowWrapper()
out_data = pillow_wrapper.get_pil_image_file_data_for_export(
self.opened_image.decoded_image_data, self.gui_params.img_width, self.gui_params.img_height, pillow_format=file_extension
)
if not out_data:
logger.error("Empty data to export!")
messagebox.showwarning("Warning", "Empty image data! Export not possible!")
return False

out_file.write(out_data)
out_file.close()
messagebox.showinfo("Info", "File saved successfully!")
logger.info(f"Image has been exported successfully to {out_file.name}")
else:
logger.info("Image is not opened yet...")

return True

def show_about_window(self):
if not any(isinstance(x, tk.Toplevel) for x in self.master.winfo_children()):
AboutWindow(self)
Expand Down
Binary file modified src/data/img/usage.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion src/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@

from src.GUI.gui_main import ImageHeatGUI

VERSION_NUM = "v0.3.6"
VERSION_NUM = "v0.3.7"

logger = get_logger("main")

Expand Down

0 comments on commit 1f4c39a

Please sign in to comment.