Skip to content

Commit

Permalink
move stretch options to dedicated menu
Browse files Browse the repository at this point in the history
  • Loading branch information
schmelly committed Mar 29, 2024
1 parent bbee341 commit 95d84e3
Show file tree
Hide file tree
Showing 2 changed files with 72 additions and 32 deletions.
102 changes: 71 additions & 31 deletions graxpert/ui/left_menu.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,9 @@
from graxpert.ui.widgets import CollapsibleMenuFrame, GraXpertButton, GraXpertCheckbox, GraXpertOptionMenu, GraXpertScrollableFrame, ProcessingStep, ValueSlider, default_label_width, padx, pady


class LoadMenu(CollapsibleMenuFrame):
class StretchMenu(CollapsibleMenuFrame):
def __init__(self, parent, **kwargs):
super().__init__(parent, title=_("Loading"), show=True, number=1, **kwargs)
super().__init__(parent, title=_("Stretching"), show=False, number=1, **kwargs)

# stretch options
self.stretch_options = ["No Stretch", "10% Bg, 3 sigma", "15% Bg, 3 sigma", "20% Bg, 3 sigma", "30% Bg, 2 sigma"]
Expand All @@ -32,22 +32,12 @@ def __init__(self, parent, **kwargs):
self.create_children()
self.setup_layout()
self.place_children()

eventbus.add_listener(UiEvents.SHOW_MENU_REQUEST, lambda e: self.hide() if not e == "LOAD" else None)
eventbus.add_listener(AppEvents.LOAD_IMAGE_END, lambda e: self.show_menu())

def create_children(self):
super().create_children()

# image loading
self.load_image_button = GraXpertButton(
self.sub_frame,
text=_("Load Image"),
fg_color=ThemeManager.theme["Accent.CTkButton"]["fg_color"],
hover_color=ThemeManager.theme["Accent.CTkButton"]["hover_color"],
command=self.menu_open_clicked,
)
self.tt_load = tooltip.Tooltip(self.load_image_button, text=tooltip.load_text)

# stretch options
self.stretch_options_title = ProcessingStep(self.sub_frame, number=0, indent=2, title=_(" Stretch Options"))
self.stretch_menu = GraXpertOptionMenu(
Expand Down Expand Up @@ -80,15 +70,59 @@ def next_row():
row += 1
return row

# image loading
self.load_image_button.grid(column=1, row=next_row(), pady=pady, sticky=tk.EW)

# stretch options
self.stretch_options_title.grid(column=0, row=next_row(), columnspan=2, pady=pady, sticky=tk.EW)
self.stretch_menu.grid(column=1, row=next_row(), pady=pady, sticky=tk.EW)
self.saturation_slider.grid(column=1, row=next_row(), pady=pady, sticky=tk.EW)
self.channels_linked_switch.grid(column=1, row=next_row(), pady=pady, sticky=tk.EW)

def show_menu(self):
if not self.show:
self.show = True
self.place_sub_frame(self.show)
self.sub_frame.update()
eventbus.emit(UiEvents.SHOW_MENU_REQUEST, "STRETCH")


class LoadMenu(CollapsibleMenuFrame):
def __init__(self, parent, **kwargs):
super().__init__(parent, title=_("Loading"), show=True, number=2, **kwargs)

self.create_children()
self.setup_layout()
self.place_children()

eventbus.add_listener(UiEvents.SHOW_MENU_REQUEST, lambda e: self.hide() if not e == "LOAD" else None)

def create_children(self):
super().create_children()

# image loading
self.load_image_button = GraXpertButton(
self.sub_frame,
text=_("Load Image"),
fg_color=ThemeManager.theme["Accent.CTkButton"]["fg_color"],
hover_color=ThemeManager.theme["Accent.CTkButton"]["hover_color"],
command=self.menu_open_clicked,
)
self.tt_load = tooltip.Tooltip(self.load_image_button, text=tooltip.load_text)

def setup_layout(self):
super().setup_layout()

def place_children(self):
super().place_children()

row = -1

def next_row():
nonlocal row
row += 1
return row

# image loading
self.load_image_button.grid(column=1, row=next_row(), pady=pady, sticky=tk.EW)

def toggle(self):
super().toggle()
if self.show:
Expand All @@ -100,7 +134,7 @@ def menu_open_clicked(self, event=None):

class CropMenu(CollapsibleMenuFrame):
def __init__(self, parent, **kwargs):
super().__init__(parent, title=_("Crop"), show=False, number=2, **kwargs)
super().__init__(parent, title=_("Crop"), show=False, number=3, **kwargs)
self.create_children()
self.setup_layout()
self.place_children()
Expand All @@ -110,11 +144,13 @@ def __init__(self, parent, **kwargs):

def create_children(self):
super().create_children()
self.cropapply_button = GraXpertButton(self.sub_frame,
text=_("Apply crop"),
fg_color=ThemeManager.theme["Accent.CTkButton"]["fg_color"],
hover_color=ThemeManager.theme["Accent.CTkButton"]["hover_color"],
command=lambda: eventbus.emit(UiEvents.APPLY_CROP_REQUEST))
self.cropapply_button = GraXpertButton(
self.sub_frame,
text=_("Apply crop"),
fg_color=ThemeManager.theme["Accent.CTkButton"]["fg_color"],
hover_color=ThemeManager.theme["Accent.CTkButton"]["hover_color"],
command=lambda: eventbus.emit(UiEvents.APPLY_CROP_REQUEST),
)

def setup_layout(self):
super().setup_layout()
Expand All @@ -134,7 +170,7 @@ def toggle(self):

class ExtractionMenu(CollapsibleMenuFrame):
def __init__(self, parent, **kwargs):
super().__init__(parent, title=_("Background Extraction"), show=False, number=3, **kwargs)
super().__init__(parent, title=_("Background Extraction"), show=False, number=4, **kwargs)

# method selection
self.interpol_options = ["RBF", "Splines", "Kriging", "AI"]
Expand Down Expand Up @@ -256,12 +292,12 @@ def toggle(self):

class DenoiseMenu(CollapsibleMenuFrame):
def __init__(self, parent, **kwargs):
super().__init__(parent, title=_("Denoising"), show=False, number=4, **kwargs)
super().__init__(parent, title=_("Denoising"), show=False, number=5, **kwargs)

self.denoise_strength = tk.DoubleVar()
self.denoise_strength.set(graxpert.prefs.denoise_strength)
self.denoise_strength.trace_add("write", lambda a, b, c: eventbus.emit(AppEvents.DENOISE_STRENGTH_CHANGED, {"denoise_strength": self.denoise_strength.get()}))

self.create_children()
self.setup_layout()
self.place_children()
Expand All @@ -279,16 +315,18 @@ def create_children(self):
command=lambda: eventbus.emit(AppEvents.DENOISE_REQUEST),
)
self.tt_load = tooltip.Tooltip(self.denoise_button, text=tooltip.denoise_text)

self.denoise_strength_slider = ValueSlider(self.sub_frame, width=default_label_width, variable_name=_("Denoise Strength"), variable=self.denoise_strength, min_value=0.0, max_value=1.0, precision=2)

self.denoise_strength_slider = ValueSlider(
self.sub_frame, width=default_label_width, variable_name=_("Denoise Strength"), variable=self.denoise_strength, min_value=0.0, max_value=1.0, precision=2
)
tooltip.Tooltip(self.denoise_strength_slider, text=tooltip.bg_tol_text)

def setup_layout(self):
super().setup_layout()

def place_children(self):
super().place_children()

self.denoise_strength_slider.grid(column=1, row=0, pady=pady, sticky=tk.EW)
self.denoise_button.grid(column=1, row=1, pady=pady, sticky=tk.EW)

Expand All @@ -300,7 +338,7 @@ def toggle(self):

class SaveMenu(CollapsibleMenuFrame):
def __init__(self, parent, **kwargs):
super().__init__(parent, title=_("Saving"), show=False, number=5, **kwargs)
super().__init__(parent, title=_("Saving"), show=False, number=6, **kwargs)

# saving
self.saveas_options = ["16 bit Tiff", "32 bit Tiff", "16 bit Fits", "32 bit Fits", "16 bit XISF", "32 bit XISF"]
Expand Down Expand Up @@ -366,6 +404,7 @@ def __init__(self, parent, **kwargs):
self.place_children()

def create_children(self):
self.stretch_menu = StretchMenu(self, fg_color="transparent")
self.load_menu = LoadMenu(self, fg_color="transparent")
self.crop_menu = CropMenu(self, fg_color="transparent")
self.extraction_menu = ExtractionMenu(self, fg_color="transparent")
Expand All @@ -385,6 +424,7 @@ def next_row():
row += 1
return row

self.stretch_menu.grid(column=0, row=next_row(), ipadx=padx, sticky=tk.N)
self.load_menu.grid(column=0, row=next_row(), ipadx=padx, sticky=tk.N)
self.crop_menu.grid(column=0, row=next_row(), ipadx=padx, sticky=tk.N)
self.extraction_menu.grid(column=0, row=next_row(), ipadx=padx, sticky=tk.N)
Expand Down
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
"add_to_path": True,
"data": msi_data,
"summary_data": msi_summary_data,
"upgrade_code": "{8887032b-9211-4752-8f88-6d29833bb001}",
"upgrade_code": "{d0ba2b1d-e18e-42c9-9ded-beb9cadad494}",
"target_name": "GraXpert",
"install_icon": "./img/Icon.ico",
}
Expand Down

0 comments on commit 95d84e3

Please sign in to comment.