fix open config dialog

This commit is contained in:
VALLONGOL 2025-07-14 15:40:56 +02:00
parent d1b9838555
commit 5175132deb
4 changed files with 46 additions and 65 deletions

View File

@ -442,7 +442,8 @@
"quiet": false, "quiet": false,
"mask_warnings": true, "mask_warnings": true,
"mask_errors": false, "mask_errors": false,
"silent_overwrite": true "silent_overwrite": true,
"enable_python_worker_profiling": false
} }
}, },
"segment_processor_config": { "segment_processor_config": {

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

After

Width:  |  Height:  |  Size: 79 KiB

View File

@ -6,10 +6,10 @@
import re import re
# --- Version Data (Generated) --- # --- Version Data (Generated) ---
__version__ = "v.0.0.0.10-0-gd471569-dirty" __version__ = "v.0.0.0.38-0-g7251cf8-dirty"
GIT_COMMIT_HASH = "d4715690ab35c5ae15b593609182561a1f6fcdbd" GIT_COMMIT_HASH = "7251cf8e301716f904aab60b759fe8d9abd6664b"
GIT_BRANCH = "master" GIT_BRANCH = "master"
BUILD_TIMESTAMP = "2025-06-24T05:34:07.850332+00:00" BUILD_TIMESTAMP = "2025-07-14T13:26:54.921185+00:00"
IS_GIT_REPO = True IS_GIT_REPO = True
# --- Default Values (for comparison or fallback) --- # --- Default Values (for comparison or fallback) ---
@ -17,7 +17,6 @@ DEFAULT_VERSION = "0.0.0+unknown"
DEFAULT_COMMIT = "Unknown" DEFAULT_COMMIT = "Unknown"
DEFAULT_BRANCH = "Unknown" DEFAULT_BRANCH = "Unknown"
# --- Helper Function --- # --- Helper Function ---
def get_version_string(format_string=None): def get_version_string(format_string=None):
""" """
@ -45,39 +44,29 @@ def get_version_string(format_string=None):
replacements = {} replacements = {}
try: try:
replacements["version"] = __version__ if __version__ else DEFAULT_VERSION replacements['version'] = __version__ if __version__ else DEFAULT_VERSION
replacements["commit"] = GIT_COMMIT_HASH if GIT_COMMIT_HASH else DEFAULT_COMMIT replacements['commit'] = GIT_COMMIT_HASH if GIT_COMMIT_HASH else DEFAULT_COMMIT
replacements["commit_short"] = ( replacements['commit_short'] = GIT_COMMIT_HASH[:7] if GIT_COMMIT_HASH and len(GIT_COMMIT_HASH) >= 7 else DEFAULT_COMMIT
GIT_COMMIT_HASH[:7] replacements['branch'] = GIT_BRANCH if GIT_BRANCH else DEFAULT_BRANCH
if GIT_COMMIT_HASH and len(GIT_COMMIT_HASH) >= 7 replacements['timestamp'] = BUILD_TIMESTAMP if BUILD_TIMESTAMP else "Unknown"
else DEFAULT_COMMIT replacements['timestamp_short'] = BUILD_TIMESTAMP.split('T')[0] if BUILD_TIMESTAMP and 'T' in BUILD_TIMESTAMP else "Unknown"
) replacements['is_git'] = "Git" if IS_GIT_REPO else "Unknown"
replacements["branch"] = GIT_BRANCH if GIT_BRANCH else DEFAULT_BRANCH replacements['dirty'] = "-dirty" if __version__ and __version__.endswith('-dirty') else ""
replacements["timestamp"] = BUILD_TIMESTAMP if BUILD_TIMESTAMP else "Unknown"
replacements["timestamp_short"] = (
BUILD_TIMESTAMP.split("T")[0]
if BUILD_TIMESTAMP and "T" in BUILD_TIMESTAMP
else "Unknown"
)
replacements["is_git"] = "Git" if IS_GIT_REPO else "Unknown"
replacements["dirty"] = (
"-dirty" if __version__ and __version__.endswith("-dirty") else ""
)
tag = DEFAULT_VERSION tag = DEFAULT_VERSION
if __version__ and IS_GIT_REPO: if __version__ and IS_GIT_REPO:
match = re.match(r"^(v?([0-9]+(?:\.[0-9]+)*))", __version__) match = re.match(r'^(v?([0-9]+(?:\.[0-9]+)*))', __version__)
if match: if match:
tag = match.group(1) tag = match.group(1)
replacements["tag"] = tag replacements['tag'] = tag
output_string = format_string output_string = format_string
for placeholder, value in replacements.items(): for placeholder, value in replacements.items():
pattern = re.compile(r"{{\s*" + re.escape(placeholder) + r"\s*}}") pattern = re.compile(r'{{\s*' + re.escape(placeholder) + r'\s*}}')
output_string = pattern.sub(str(value), output_string) output_string = pattern.sub(str(value), output_string)
if re.search(r"{\s*\w+\s*}", output_string): if re.search(r'{\s*\w+\s*}', output_string):
pass # Or log a warning: print(f"Warning: Unreplaced placeholders found: {output_string}") pass # Or log a warning: print(f"Warning: Unreplaced placeholders found: {output_string}")
return output_string return output_string

View File

@ -10,8 +10,7 @@ from tkinter import ttk
from typing import Dict, Any from typing import Dict, Any
from .gui_utils import center_window from .gui_utils import center_window
from .config_frames import GReconverterOptionsFrame # Importa il frame riutilizzabile from .config_frames import GReconverterOptionsFrame
class SegmentExportConfigWindow(tk.Toplevel): class SegmentExportConfigWindow(tk.Toplevel):
"""A Toplevel window for managing all segment export parameters.""" """A Toplevel window for managing all segment export parameters."""
@ -75,16 +74,24 @@ class SegmentExportConfigWindow(tk.Toplevel):
"mask_warnings": tk.BooleanVar(), "mask_warnings": tk.BooleanVar(),
"mask_errors": tk.BooleanVar(), "mask_errors": tk.BooleanVar(),
"silent_overwrite": tk.BooleanVar(), "silent_overwrite": tk.BooleanVar(),
"enable_python_worker_profiling": tk.BooleanVar(),
} }
def _populate_vars_from_config(self): def _populate_vars_from_config(self):
naming_config = self.config_data.get("naming_options", {}) naming_config = self.config_data.get("naming_options", {})
for key, var in self.naming_vars.items(): for key, var in self.naming_vars.items():
var.set(naming_config.get(key, "")) var.set(naming_config.get(key, ''))
g_reconverter_config = self.config_data.get("g_reconverter_options", {}) g_reconverter_config = self.config_data.get("g_reconverter_options", {})
for key, var in self.g_reconverter_vars.items(): for key, var in self.g_reconverter_vars.items():
var.set(g_reconverter_config.get(key, "")) # --- MODIFICA: Fornisce un default del tipo corretto ---
default_value = ''
if isinstance(var, tk.BooleanVar):
default_value = False
elif isinstance(var, tk.IntVar):
default_value = 0
var.set(g_reconverter_config.get(key, default_value))
def _create_widgets(self): def _create_widgets(self):
main_frame = ttk.Frame(self, padding="10") main_frame = ttk.Frame(self, padding="10")
@ -93,48 +100,32 @@ class SegmentExportConfigWindow(tk.Toplevel):
naming_frame = ttk.LabelFrame(main_frame, text="Segment Folder Naming") naming_frame = ttk.LabelFrame(main_frame, text="Segment Folder Naming")
naming_frame.pack(fill=tk.X, pady=(0, 15)) naming_frame.pack(fill=tk.X, pady=(0, 15))
naming_frame.columnconfigure(1, weight=1) naming_frame.columnconfigure(1, weight=1)
ttk.Label(naming_frame, text="Folder Name Template:").grid( ttk.Label(naming_frame, text="Folder Name Template:").grid(row=0, column=0, padx=5, pady=5, sticky="w")
row=0, column=0, padx=5, pady=5, sticky="w" template_entry = ttk.Entry(naming_frame, textvariable=self.naming_vars["folder_name_template"])
)
template_entry = ttk.Entry(
naming_frame, textvariable=self.naming_vars["folder_name_template"]
)
template_entry.grid(row=0, column=1, sticky="ew", padx=5, pady=5) template_entry.grid(row=0, column=1, sticky="ew", padx=5, pady=5)
placeholders = "{Segment}, {StartBatch}, {EndBatch}, {BatchCount}" placeholders = "{Segment}, {StartBatch}, {EndBatch}, {BatchCount}"
help_text = f"Available placeholders: {placeholders}" help_text = f"Available placeholders: {placeholders}"
ttk.Label(naming_frame, text=help_text, wraplength=750, justify=tk.LEFT).grid( ttk.Label(naming_frame, text=help_text, wraplength=750, justify=tk.LEFT).grid(row=1, column=0, columnspan=2, sticky="w", padx=5, pady=(0, 5))
row=1, column=0, columnspan=2, sticky="w", padx=5, pady=(0, 5)
)
g_reconverter_frame_container = ttk.LabelFrame( g_reconverter_frame_container = ttk.LabelFrame(main_frame, text="g_reconverter Options for Export")
main_frame, text="g_reconverter Options for Export"
)
g_reconverter_frame_container.pack(fill=tk.BOTH, expand=True) g_reconverter_frame_container.pack(fill=tk.BOTH, expand=True)
options_frame = GReconverterOptionsFrame( options_frame = GReconverterOptionsFrame(g_reconverter_frame_container, self.g_reconverter_vars)
g_reconverter_frame_container, self.g_reconverter_vars
)
options_frame.pack(fill=tk.BOTH, expand=True, padx=5, pady=5) options_frame.pack(fill=tk.BOTH, expand=True, padx=5, pady=5)
button_frame = ttk.Frame(main_frame) button_frame = ttk.Frame(main_frame)
button_frame.pack(fill=tk.X, pady=(10, 0), side=tk.BOTTOM) button_frame.pack(fill=tk.X, pady=(10, 0), side=tk.BOTTOM)
ttk.Button(button_frame, text="Save & Close", command=self._on_save).pack( ttk.Button(button_frame, text="Save & Close", command=self._on_save).pack(side=tk.RIGHT, padx=5)
side=tk.RIGHT, padx=5 ttk.Button(button_frame, text="Cancel", command=self._on_cancel).pack(side=tk.RIGHT)
)
ttk.Button(button_frame, text="Cancel", command=self._on_cancel).pack(
side=tk.RIGHT
)
def _on_save(self): def _on_save(self):
new_naming_config = {key: var.get() for key, var in self.naming_vars.items()} new_naming_config = {key: var.get() for key, var in self.naming_vars.items()}
new_g_reconverter_config = { new_g_reconverter_config = {key: var.get() for key, var in self.g_reconverter_vars.items()}
key: var.get() for key, var in self.g_reconverter_vars.items()
}
final_config = { final_config = {
"naming_options": new_naming_config, "naming_options": new_naming_config,
"g_reconverter_options": new_g_reconverter_config, "g_reconverter_options": new_g_reconverter_config
} }
self.controller.save_segment_export_config(final_config) self.controller.save_segment_export_config(final_config)