move lots of functions to menu

This commit is contained in:
Ross
2024-02-19 11:57:51 +00:00
parent 858ff6c9cb
commit 5ecfb26a80
+79 -47
View File
@@ -604,23 +604,72 @@ class AnonGui(wx.App):
# Create File menu
file_menu = wx.Menu()
file_menu.Append(wx.ID_OPEN, "&Open")
file_menu.Append(wx.ID_SAVE, "&Save")
file_menu.AppendSeparator()
# Create Load menu item
load_item = wx.MenuItem(file_menu, wx.ID_ANY, "&Import Directory")
#load_item.SetToolTip("Click to manually load dicom from a directory.")
file_menu.Append(load_item)
self.Bind(wx.EVT_MENU, self.import_from_dir, load_item)
#file_menu.Append(wx.ID_OPEN, "&Open")
#file_menu.Append(wx.ID_SAVE, "&Save")
#file_menu.AppendSeparator()
file_menu.Append(wx.ID_EXIT, "&Exit")
self.menu_bar.Append(file_menu, "&File")
# Create Edit menu
edit_menu = wx.Menu()
edit_menu.Append(wx.ID_UNDO, "&Undo")
edit_menu.Append(wx.ID_REDO, "&Redo")
edit_menu.AppendSeparator()
edit_menu.Append(wx.ID_CUT, "Cu&t")
edit_menu.Append(wx.ID_COPY, "&Copy")
edit_menu.Append(wx.ID_PASTE, "&Paste")
self.menu_bar.Append(edit_menu, "&Edit")
# Create Images menu
images_menu = wx.Menu()
# Create Clear Files menu item
clear_files_item = wx.MenuItem(images_menu, wx.ID_ANY, "&Clear files")
#clear_files_item.SetToolTip("Click to clear all files.")
images_menu.Append(clear_files_item)
self.menu_bar.Append(images_menu, "&Images")
# Create Reorder Files menu item
reorder_files_item = wx.MenuItem(images_menu, wx.ID_ANY, "&Reorder")
#reorder_files_item.SetToolTip("Click to reorder files as they are shown below. This will sequentially rename the files. Please note this is usually better done once the files have been uploaded.")
images_menu.Append(reorder_files_item)
self.Bind(wx.EVT_MENU, self.on_reorder_files, reorder_files_item)
# Bind Clear Files menu item event
self.Bind(wx.EVT_MENU, self.ClearFiles, clear_files_item)
# Create Reannonymise Files menu item
reannonymise_files_item = wx.MenuItem(images_menu, wx.ID_ANY, "&Reannonymise")
#reannonymise_files_item.SetToolTip("Click to reannonymise the currently loaded files.")
images_menu.Append(reannonymise_files_item)
self.Bind(wx.EVT_MENU, self.on_reannonymise_files, reannonymise_files_item)
# Create Refresh Files menu item
refresh_files_item = wx.MenuItem(images_menu, wx.ID_ANY, "&Refresh")
images_menu.Append(refresh_files_item)
self.Bind(wx.EVT_MENU, lambda evt: self.LoadDir(), refresh_files_item)
# Create Item creation menu
create_menu = wx.Menu()
create_menu_items = (
("&Rapid", f"/rapids/create/"),
("&Long Series", f"/longs/create/series"),
("&Atlas Case", f"/atlas/case/create/"),
)
for label, url in create_menu_items:
item = wx.MenuItem(create_menu, wx.ID_ANY, label)
create_menu.Append(item)
self.Bind(wx.EVT_MENU, lambda evt, url=url: webbrowser.open(f"{self.base_site_url}{url}"), item)
self.menu_bar.Append(create_menu, "&Create")
# Create Help menu
help_menu = wx.Menu()
@@ -628,6 +677,9 @@ class AnonGui(wx.App):
help_menu.Append(wx.ID_ABOUT, "&About")
self.menu_bar.Append(help_menu, "&Help")
self.Bind(wx.EVT_MENU, self.on_about_box, id=wx.ID_ABOUT)
self.Bind(wx.EVT_MENU, self.on_help, id=wx.ID_HELP)
# Set menu bar
self.frame.SetMenuBar(self.menu_bar)
@@ -686,43 +738,16 @@ class AnonGui(wx.App):
self.login_button.SetForegroundColour(wx.BLUE)
self.login_button.SetBackgroundColour(wx.WHITE)
self.login_button.SetToolTip("Click to login to the server")
self.clear_files_button = wx.Button(
self.panel, id=wx.ID_ANY, label="Clear files"
)
self.clear_files_button.SetToolTip("Click to clear all files.")
self.refresh_files_button = wx.Button(self.panel, id=wx.ID_ANY, label="Refresh")
self.reorder_files_button = wx.Button(self.panel, id=wx.ID_ANY, label="Reorder")
self.reorder_files_button.SetToolTip("Click to reorder files as they are shown below. This will sequentially rename the files. Please note this is usually better done once the files have been uploaded.")
self.reannonymise_files_button = wx.Button(
self.panel, id=wx.ID_ANY, label="Reannonymise"
)
self.reannonymise_files_button.SetToolTip("Click to reannonymise the currently loaded files.")
self.manual_load_button = wx.Button(self.panel, id=wx.ID_ANY, label="Load")
self.manual_load_button.SetToolTip("Click to manually load dicom from a directory.")
# wx.Bind(self.clear_files_button, )
self.Bind(wx.EVT_BUTTON, self.Login, self.login_button)
self.Bind(wx.EVT_BUTTON, self.ClearFiles, self.clear_files_button)
self.Bind(wx.EVT_BUTTON, lambda evt: self.LoadDir(), self.refresh_files_button)
self.Bind(wx.EVT_BUTTON, self.ReorderFiles, self.reorder_files_button)
self.Bind(wx.EVT_BUTTON, self.ReAnnonymiseFiles, self.reannonymise_files_button)
#self.Bind(
# wx.EVT_BUTTON,
# lambda evt: self.AnnonymiseFilesInDir(self.input_dir, self.dir),
# self.manual_load_button,
#)
self.Bind(wx.EVT_BUTTON, self.import_from_dir, self.manual_load_button)
#self.Bind(wx.EVT_BUTTON, self.ClearFiles, self.clear_files_button)
# Use some sizers to see layout options
# self.panel.sizer.Add(self.dirctrl, 1, wx.EXPAND)
hoz = wx.BoxSizer(wx.HORIZONTAL)
hoz.Add(self.login_button, 1, wx.EXPAND)
hoz.Add(self.clear_files_button, 1, wx.EXPAND)
hoz.Add(self.refresh_files_button, 1, wx.EXPAND)
hoz.Add(self.reorder_files_button, 1, wx.EXPAND)
hoz.Add(self.reannonymise_files_button, 1, wx.EXPAND)
hoz.Add(self.manual_load_button, 1, wx.EXPAND)
self.panel.sizer.Add(hoz, 1, wx.EXPAND)
@@ -866,17 +891,21 @@ class AnonGui(wx.App):
logger.debug(keycode)
if keycode == wx.WXK_F1:
logger.debug("you pressed the F1!")
self.OnAboutBox()
self.on_help()
return
event.Skip()
def OnAboutBox(self, event=None):
def on_help(self, event=None):
webbrowser.open(f"{self.base_site_url}/atlas/help")
def on_about_box(self, event=None):
description = f"""
An upload/export tool
Settings
--------
Watch dir: {self.dir}
Watch/import dir: {self.input_dir}
Annonymised files dir: {self.dir}
"""
licence = """GPL"""
@@ -885,7 +914,7 @@ class AnonGui(wx.App):
# info.SetIcon(wx.Icon('hunter.png', wx.BITMAP_TYPE_PNG))
info.SetName("RadUploader")
info.SetVersion("0.1")
info.SetVersioe("0.1")
info.SetDescription(description)
info.SetLicence(licence)
@@ -907,6 +936,9 @@ class AnonGui(wx.App):
self.file_duplicate_check = {}
if dir is None:
dir = self.dir
logger.debug(f"LoadDir : {dir} / refresh: {refresh} / clear_file_detail_map: {clear_file_detail_map}")
if refresh:
self.files = {}
self.series_map = {}
@@ -979,7 +1011,7 @@ class AnonGui(wx.App):
# viewer.MainLoop()
break
def ReAnnonymiseFiles(self, event):
def on_reannonymise_files(self, event):
global anonymizer
anonymizer = dicognito.anonymizer.Anonymizer()
paths = []
@@ -1004,7 +1036,7 @@ class AnonGui(wx.App):
self.LoadDir(self.dir, clear_file_detail_map=True)
def ReorderFiles(self, event):
def on_reorder_files(self, event):
paths = []
# self.file_observer.pause()