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,
"mask_warnings": true,
"mask_errors": false,
"silent_overwrite": true
"silent_overwrite": true,
"enable_python_worker_profiling": false
}
},
"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
# --- Version Data (Generated) ---
__version__ = "v.0.0.0.10-0-gd471569-dirty"
GIT_COMMIT_HASH = "d4715690ab35c5ae15b593609182561a1f6fcdbd"
__version__ = "v.0.0.0.38-0-g7251cf8-dirty"
GIT_COMMIT_HASH = "7251cf8e301716f904aab60b759fe8d9abd6664b"
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
# --- Default Values (for comparison or fallback) ---
@ -17,7 +17,6 @@ DEFAULT_VERSION = "0.0.0+unknown"
DEFAULT_COMMIT = "Unknown"
DEFAULT_BRANCH = "Unknown"
# --- Helper Function ---
def get_version_string(format_string=None):
"""
@ -45,39 +44,29 @@ def get_version_string(format_string=None):
replacements = {}
try:
replacements["version"] = __version__ if __version__ else DEFAULT_VERSION
replacements["commit"] = GIT_COMMIT_HASH if GIT_COMMIT_HASH else DEFAULT_COMMIT
replacements["commit_short"] = (
GIT_COMMIT_HASH[:7]
if GIT_COMMIT_HASH and len(GIT_COMMIT_HASH) >= 7
else DEFAULT_COMMIT
)
replacements["branch"] = GIT_BRANCH if GIT_BRANCH else DEFAULT_BRANCH
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 ""
)
replacements['version'] = __version__ if __version__ else DEFAULT_VERSION
replacements['commit'] = GIT_COMMIT_HASH if GIT_COMMIT_HASH else DEFAULT_COMMIT
replacements['commit_short'] = GIT_COMMIT_HASH[:7] if GIT_COMMIT_HASH and len(GIT_COMMIT_HASH) >= 7 else DEFAULT_COMMIT
replacements['branch'] = GIT_BRANCH if GIT_BRANCH else DEFAULT_BRANCH
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
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:
tag = match.group(1)
replacements["tag"] = tag
replacements['tag'] = tag
output_string = format_string
for placeholder, value in replacements.items():
pattern = re.compile(r"{{\s*" + re.escape(placeholder) + r"\s*}}")
output_string = pattern.sub(str(value), output_string)
pattern = re.compile(r'{{\s*' + re.escape(placeholder) + r'\s*}}')
output_string = pattern.sub(str(value), output_string)
if re.search(r"{\s*\w+\s*}", output_string):
pass # Or log a warning: print(f"Warning: Unreplaced placeholders found: {output_string}")
if re.search(r'{\s*\w+\s*}', output_string):
pass # Or log a warning: print(f"Warning: Unreplaced placeholders found: {output_string}")
return output_string

View File

@ -10,8 +10,7 @@ from tkinter import ttk
from typing import Dict, Any
from .gui_utils import center_window
from .config_frames import GReconverterOptionsFrame # Importa il frame riutilizzabile
from .config_frames import GReconverterOptionsFrame
class SegmentExportConfigWindow(tk.Toplevel):
"""A Toplevel window for managing all segment export parameters."""
@ -75,16 +74,24 @@ class SegmentExportConfigWindow(tk.Toplevel):
"mask_warnings": tk.BooleanVar(),
"mask_errors": tk.BooleanVar(),
"silent_overwrite": tk.BooleanVar(),
"enable_python_worker_profiling": tk.BooleanVar(),
}
def _populate_vars_from_config(self):
naming_config = self.config_data.get("naming_options", {})
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", {})
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):
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.pack(fill=tk.X, pady=(0, 15))
naming_frame.columnconfigure(1, weight=1)
ttk.Label(naming_frame, text="Folder Name Template:").grid(
row=0, column=0, padx=5, pady=5, sticky="w"
)
template_entry = ttk.Entry(
naming_frame, textvariable=self.naming_vars["folder_name_template"]
)
ttk.Label(naming_frame, text="Folder Name Template:").grid(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.grid(row=0, column=1, sticky="ew", padx=5, pady=5)
placeholders = "{Segment}, {StartBatch}, {EndBatch}, {BatchCount}"
help_text = f"Available placeholders: {placeholders}"
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)
)
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))
g_reconverter_frame_container = ttk.LabelFrame(
main_frame, text="g_reconverter Options for Export"
)
g_reconverter_frame_container = ttk.LabelFrame(main_frame, text="g_reconverter Options for Export")
g_reconverter_frame_container.pack(fill=tk.BOTH, expand=True)
options_frame = GReconverterOptionsFrame(
g_reconverter_frame_container, self.g_reconverter_vars
)
options_frame = GReconverterOptionsFrame(g_reconverter_frame_container, self.g_reconverter_vars)
options_frame.pack(fill=tk.BOTH, expand=True, padx=5, pady=5)
button_frame = ttk.Frame(main_frame)
button_frame.pack(fill=tk.X, pady=(10, 0), side=tk.BOTTOM)
ttk.Button(button_frame, text="Save & Close", command=self._on_save).pack(
side=tk.RIGHT, padx=5
)
ttk.Button(button_frame, text="Cancel", command=self._on_cancel).pack(
side=tk.RIGHT
)
ttk.Button(button_frame, text="Save & Close", command=self._on_save).pack(side=tk.RIGHT, padx=5)
ttk.Button(button_frame, text="Cancel", command=self._on_cancel).pack(side=tk.RIGHT)
def _on_save(self):
new_naming_config = {key: var.get() for key, var in self.naming_vars.items()}
new_g_reconverter_config = {
key: var.get() for key, var in self.g_reconverter_vars.items()
}
new_g_reconverter_config = {key: var.get() for key, var in self.g_reconverter_vars.items()}
final_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)