v42
This commit is contained in:
@@ -13,6 +13,7 @@ class XMLExtractorApp:
|
||||
self.input_file = None
|
||||
self.tree = None
|
||||
self.additional_fields = {}
|
||||
self.popup_window = None
|
||||
|
||||
# Define which fields to show for each kind
|
||||
self.kind_fields_map = {
|
||||
@@ -147,7 +148,7 @@ class XMLExtractorApp:
|
||||
|
||||
# Additional fields button
|
||||
additional_btn = tk.Button(self.root, text="Additional Fields",
|
||||
command=self.open_additional_fields,
|
||||
command=self.toggle_additional_fields,
|
||||
font=("Arial", 10),
|
||||
bg="#2196F3", fg="white",
|
||||
padx=15, pady=8)
|
||||
@@ -166,6 +167,15 @@ class XMLExtractorApp:
|
||||
font=("Arial", 9), fg="blue")
|
||||
self.status_label.pack(pady=5)
|
||||
|
||||
def toggle_additional_fields(self):
|
||||
# If popup exists and is open, close it
|
||||
if self.popup_window and self.popup_window.winfo_exists():
|
||||
self.popup_window.destroy()
|
||||
self.popup_window = None
|
||||
else:
|
||||
# Otherwise open it
|
||||
self.open_additional_fields()
|
||||
|
||||
def open_additional_fields(self):
|
||||
# Get the selected kind value
|
||||
selected_display = self.kind_var.get()
|
||||
@@ -176,10 +186,14 @@ class XMLExtractorApp:
|
||||
|
||||
# Create popup window
|
||||
popup = tk.Toplevel(self.root)
|
||||
self.popup_window = popup
|
||||
popup.title("Additional Fields")
|
||||
popup.geometry("500x600")
|
||||
popup.resizable(False, False)
|
||||
|
||||
# Handle window close event
|
||||
popup.protocol("WM_DELETE_WINDOW", lambda: self.close_popup(popup))
|
||||
|
||||
# Title
|
||||
title = tk.Label(popup, text=f"Additional Fields - {selected_display}",
|
||||
font=("Arial", 14, "bold"))
|
||||
@@ -276,9 +290,13 @@ class XMLExtractorApp:
|
||||
elif field_name in self.additional_fields:
|
||||
del self.additional_fields[field_name]
|
||||
|
||||
popup.destroy()
|
||||
self.close_popup(popup)
|
||||
self.status_label.config(text="Additional fields saved", fg="green")
|
||||
|
||||
def close_popup(self, popup):
|
||||
popup.destroy()
|
||||
self.popup_window = None
|
||||
|
||||
def browse_file(self):
|
||||
filename = filedialog.askopenfilename(
|
||||
title="Select LXXPLOT File",
|
||||
|
||||
Reference in New Issue
Block a user