A bunch of changes

This commit is contained in:
Ignacio Serantes
2026-03-23 21:53:19 +01:00
parent a402828d1a
commit 547bfbf760
9 changed files with 544 additions and 150 deletions

View File

@@ -110,7 +110,7 @@ SCANNER_SETTINGS_DEFAULTS = {
"scan_full_on_start": True,
"person_tags": "",
"generation_threads": 4,
"search_engine": "Native"
"search_engine": ""
}
# --- IMAGE VIEWER DEFAULTS ---
@@ -193,6 +193,10 @@ AVAILABLE_PET_ENGINES = []
if HAVE_MEDIAPIPE:
AVAILABLE_PET_ENGINES.append("mediapipe")
AVAILABLE_BODY_ENGINES = []
if HAVE_MEDIAPIPE:
AVAILABLE_BODY_ENGINES.append("mediapipe")
# Determine the default engine. This can be overridden by user config.
DEFAULT_FACE_ENGINE = AVAILABLE_FACE_ENGINES[0] if AVAILABLE_FACE_ENGINES else None
DEFAULT_PET_ENGINE = AVAILABLE_PET_ENGINES[0] if AVAILABLE_PET_ENGINES else None
@@ -205,6 +209,7 @@ PET_DETECTION_ENGINE = APP_CONFIG.get("pet_detection_engine",
DEFAULT_PET_ENGINE)
DEFAULT_PET_BOX_COLOR = "#98FB98" # PaleGreen
DEFAULT_BODY_BOX_COLOR = "#FF4500" # OrangeRed
DEFAULT_OBJECT_BOX_COLOR = "#FFD700" # Gold
DEFAULT_LANDMARK_BOX_COLOR = "#00BFFF" # DeepSkyBlue
# --- SHORTCUTS ---
@@ -273,6 +278,7 @@ VIEWER_ACTIONS = {
"detect_faces": ("Detect Faces", "Actions"),
"detect_pets": ("Detect Pets", "Actions"),
"fast_tag": ("Quick Tags", "Actions"),
"detect_bodies": ("Detect Bodies", "Actions"),
"rotate_right": ("Rotate Right", "Transform"),
"rotate_left": ("Rotate Left", "Transform"),
"zoom_in": ("Zoom In", "Transform"),
@@ -299,6 +305,7 @@ DEFAULT_VIEWER_SHORTCUTS = {
"fullscreen": (Qt.Key_F11, Qt.NoModifier),
"detect_faces": (Qt.Key_F, Qt.NoModifier),
"detect_pets": (Qt.Key_P, Qt.NoModifier),
"detect_bodies": (Qt.Key_B, Qt.NoModifier),
"fast_tag": (Qt.Key_T, Qt.NoModifier),
"rotate_right": (Qt.Key_Plus, Qt.ControlModifier),
"rotate_left": (Qt.Key_Minus, Qt.ControlModifier),
@@ -395,13 +402,15 @@ _UI_TEXTS = {
"RENAME_VIEWER_ERROR_TEXT": "Could not rename file: {}",
"ADD_FACE_TITLE": "Add Face",
"ADD_PET_TITLE": "Add Pet",
"ADD_BODY_TITLE": "Add Body",
"ADD_OBJECT_TITLE": "Add Object",
"ADD_LANDMARK_TITLE": "Add Landmark",
"ADD_FACE_LABEL": "Name:",
"ADD_PET_LABEL": "Name:",
"ADD_BODY_LABEL": "Name:",
"ADD_OBJECT_LABEL": "Name:",
"ADD_LANDMARK_LABEL": "Name:",
"DELETE_FACE": "Delete Face or area",
"DELETE_AREA_TITLE": "Delete area",
"CREATE_TAG_TITLE": "Create Tag",
"CREATE_TAG_TEXT": "The tag for '{}' does not exist. Do you want to create a "
"new one?",
@@ -409,6 +418,8 @@ _UI_TEXTS = {
"NEW_PERSON_TAG_TEXT": "Enter the full path for the tag:",
"NEW_PET_TAG_TITLE": "New Pet Tag",
"NEW_PET_TAG_TEXT": "Enter the full path for the tag:",
"NEW_BODY_TAG_TITLE": "New Body Tag",
"NEW_BODY_TAG_TEXT": "Enter the full path for the tag:",
"NEW_OBJECT_TAG_TITLE": "New Object Tag",
"NEW_OBJECT_TAG_TEXT": "Enter the full path for the tag:",
"NEW_LANDMARK_TAG_TITLE": "New Landmark Tag",
@@ -418,10 +429,11 @@ _UI_TEXTS = {
"one:",
"FACE_NAME_TOOLTIP": "Type a name or select from history.",
"CLEAR_TEXT_TOOLTIP": "Clear text field",
"RENAME_FACE_TITLE": "Rename Face or area",
"RENAME_AREA_TITLE": "Rename area",
"SHOW_FACES": "Show Faces && other areas",
"DETECT_FACES": "Detect Face",
"DETECT_PETS": "Detect Pets",
"DETECT_BODIES": "Detect Bodies",
"NO_FACE_LIBS": "No face detection libraries found. Install 'mediapipe' or "
"'face_recognition'.",
"THUMBNAIL_NO_NAME": "No name",
@@ -441,7 +453,7 @@ _UI_TEXTS = {
"MENU_SHOW_HISTORY": "Show History",
"MENU_SETTINGS": "Settings",
"SETTINGS_GROUP_SCANNER": "Scanner",
"SETTINGS_GROUP_FACES": "Faces && areas",
"SETTINGS_GROUP_AREAS": "Areas",
"SETTINGS_GROUP_THUMBNAILS": "Thumbnails",
"SETTINGS_GROUP_VIEWER": "Image Viewer",
"SETTINGS_PERSON_TAGS_LABEL": "Person tags:",
@@ -460,8 +472,19 @@ _UI_TEXTS = {
"to remember.",
"TYPE_FACE": "Face",
"TYPE_PET": "Pet",
"TYPE_BODY": "Body",
"TYPE_OBJECT": "Object",
"TYPE_LANDMARK": "Landmark",
"SETTINGS_BODY_TAGS_LABEL": "Body tags:",
"SETTINGS_BODY_ENGINE_LABEL": "Body Detection Engine:",
"SETTINGS_BODY_COLOR_LABEL": "Body box color:",
"SETTINGS_BODY_HISTORY_COUNT_LABEL": "Max body history:",
"SETTINGS_BODY_TAGS_TOOLTIP": "Default tags for bodies, separated by commas.",
"SETTINGS_BODY_ENGINE_TOOLTIP": "Library used for body detection.",
"SETTINGS_BODY_COLOR_TOOLTIP": "Color of the bounding box drawn around "
"detected bodies.",
"SETTINGS_BODY_HISTORY_TOOLTIP": "Maximum number of recently used body names "
"to remember.",
"SETTINGS_OBJECT_TAGS_LABEL": "Object tags:",
"SETTINGS_OBJECT_ENGINE_LABEL": "Object Detection Engine:",
"SETTINGS_OBJECT_COLOR_LABEL": "Object box color:",
@@ -493,12 +516,15 @@ _UI_TEXTS = {
"SETTINGS_THUMBS_RATING_COLOR_LABEL": "Thumbnails rating color:",
"SETTINGS_THUMBS_FILENAME_FONT_SIZE_LABEL": "Thumbnails filename font size:",
"SETTINGS_THUMBS_TAGS_FONT_SIZE_LABEL": "Thumbnails tags font size:",
"SETTINGS_SCAN_THREADS_LABEL": "Generation threads:",
"SETTINGS_SCAN_THREADS_TOOLTIP": "Maximum number of simultaneous threads to"
"generate thumbnails.",
"SETTINGS_SCAN_MAX_LEVEL_LABEL": "Scan Max Level:",
"SETTINGS_SCAN_BATCH_SIZE_LABEL": "Scan Batch Size:",
"SETTINGS_SCAN_FULL_ON_START_LABEL": "Scan Full On Start:",
"SETTINGS_SCANNER_SEARCH_ENGINE_LABEL": "File search engine:",
"SETTINGS_SCANNER_SEARCH_ENGINE_TOOLTIP": "Engine to use for finding files. "
"'Native' uses BagheeraSearch library. 'baloosearch' uses KDE Baloo command.",
"'Bagheera' uses BagheeraSearch library. 'Baloo' uses 'baloosearch' command.",
"SETTINGS_SCAN_MAX_LEVEL_TOOLTIP": "Maximum directory depth to scan "
"recursively.",
"SETTINGS_SCAN_BATCH_SIZE_TOOLTIP": "Number of images to load in each batch.",
@@ -524,8 +550,8 @@ _UI_TEXTS = {
"SETTINGS_THUMBS_FILENAME_FONT_SIZE_TOOLTIP": "Font size for filenames in "
"thumbnails.",
"SETTINGS_THUMBS_TAGS_FONT_SIZE_TOOLTIP": "Font size for tags in thumbnails.",
"SEARCH_ENGINE_NATIVE": "Native",
"SEARCH_ENGINE_BALOO": "baloosearch",
"SEARCH_ENGINE_NATIVE": "Bagheera",
"SEARCH_ENGINE_BALOO": "Baloo",
"SETTINGS_VIEWER_WHEEL_SPEED_LABEL": "Viewer mouse wheel speed:",
"SETTINGS_THUMBS_FILENAME_LINES_LABEL": "Filename lines:",
"SETTINGS_THUMBS_FILENAME_LINES_TOOLTIP": "Number of lines for the filename "
@@ -801,19 +827,23 @@ _UI_TEXTS = {
"RENAME_VIEWER_ERROR_TEXT": "No se pudo renombrar el archivo: {}",
"ADD_FACE_TITLE": "Añadir Rostro",
"ADD_PET_TITLE": "Añadir Mascota",
"ADD_BODY_TITLE": "Añadir Cuerpo",
"ADD_OBJECT_TITLE": "Añadir Objeto",
"ADD_LANDMARK_TITLE": "Añadir Lugar",
"ADD_FACE_LABEL": "Nombre:",
"ADD_PET_LABEL": "Nombre:",
"ADD_BODY_LABEL": "Nombre:",
"ADD_OBJECT_LABEL": "Nombre:",
"ADD_LANDMARK_LABEL": "Nombre:",
"DELETE_FACE": "Eliminar Rostro o área",
"DELETE_AREA_TITLE": "Eliminar área",
"CREATE_TAG_TITLE": "Crear Etiqueta",
"CREATE_TAG_TEXT": "La etiqueta para '{}' no existe. ¿Deseas crear una nueva?",
"NEW_PERSON_TAG_TITLE": "Nueva Etiqueta de Persona",
"NEW_PERSON_TAG_TEXT": "Introduce la ruta completa de la etiqueta:",
"NEW_PET_TAG_TITLE": "Nueva Etiqueta de Mascota",
"NEW_PET_TAG_TEXT": "Introduce la ruta completa de la etiqueta:",
"NEW_BODY_TAG_TITLE": "Nueva Etiqueta de Cuerpo",
"NEW_BODY_TAG_TEXT": "Introduce la ruta completa de la etiqueta:",
"NEW_OBJECT_TAG_TITLE": "Nueva Etiqueta de Objeto",
"NEW_OBJECT_TAG_TEXT": "Introduce la ruta completa de la etiqueta:",
"NEW_LANDMARK_TAG_TITLE": "Nueva Etiqueta de Lugar",
@@ -823,10 +853,11 @@ _UI_TEXTS = {
"selecciona la correcta:",
"FACE_NAME_TOOLTIP": "Escribe un nombre o selecciónalo del historial.",
"CLEAR_TEXT_TOOLTIP": "Limpiar el campo de texto",
"RENAME_FACE_TITLE": "Renombrar Rostro o área",
"RENAME_AREA_TITLE": "Renombrar área",
"SHOW_FACES": "Mostrar Rostros y otras áreas",
"DETECT_FACES": "Detectar Rostros",
"DETECT_PETS": "Detectar Mascotas",
"DETECT_BODIES": "Detectar Cuerpos",
"NO_FACE_LIBS": "No se encontraron librerías de detección de rostros. Instale "
"'mediapipe' o 'face_recognition'.",
"THUMBNAIL_NO_NAME": "Sin nombre",
@@ -846,7 +877,7 @@ _UI_TEXTS = {
"MENU_SHOW_HISTORY": "Mostrar Historial",
"MENU_SETTINGS": "Opciones",
"SETTINGS_GROUP_SCANNER": "Escáner",
"SETTINGS_GROUP_FACES": "Rostros y áreas",
"SETTINGS_GROUP_AREAS": "Áreas",
"SETTINGS_GROUP_THUMBNAILS": "Miniaturas",
"SETTINGS_GROUP_VIEWER": "Visor de Imágenes",
"SETTINGS_PERSON_TAGS_LABEL": "Etiquetas de persona:",
@@ -867,8 +898,21 @@ _UI_TEXTS = {
"usados recientemente para recordar.",
"TYPE_FACE": "Cara",
"TYPE_PET": "Mascota",
"TYPE_BODY": "Cuerpo",
"TYPE_OBJECT": "Objeto",
"TYPE_LANDMARK": "Lugar",
"SETTINGS_BODY_TAGS_LABEL": "Etiquetas de cuerpo:",
"SETTINGS_BODY_ENGINE_LABEL": "Motor de detección de cuerpos:",
"SETTINGS_BODY_COLOR_LABEL": "Color del recuadro de cuerpo:",
"SETTINGS_BODY_HISTORY_COUNT_LABEL": "Máx historial cuerpos:",
"SETTINGS_BODY_TAGS_TOOLTIP": "Etiquetas predeterminadas para cuerpos, "
"separadas por comas.",
"SETTINGS_BODY_ENGINE_TOOLTIP": "Librería utilizada para la detección de "
"cuerpos.",
"SETTINGS_BODY_COLOR_TOOLTIP": "Color del cuadro delimitador dibujado "
"alrededor de los cuerpos detectados.",
"SETTINGS_BODY_HISTORY_TOOLTIP": "Número máximo de nombres de cuerpos "
"usados recientemente para recordar.",
"SETTINGS_OBJECT_TAGS_LABEL": "Etiquetas de objeto:",
"SETTINGS_OBJECT_ENGINE_LABEL": "Motor de detección de objetos:",
"SETTINGS_OBJECT_COLOR_LABEL": "Color del recuadro de objeto:",
@@ -906,8 +950,8 @@ _UI_TEXTS = {
"SETTINGS_SCAN_BATCH_SIZE_LABEL": "Tamaño de Lote de Escaneo:",
"SETTINGS_SCANNER_SEARCH_ENGINE_LABEL": "Motor de búsqueda de archivos:",
"SETTINGS_SCANNER_SEARCH_ENGINE_TOOLTIP": "Motor a usar para buscar archivos. "
"'Nativo' usa la librería de BagheeraSearch. 'baloosearch' usa el commando de"
"KDE Baloo.",
"'Bagheera' usa la librería de BagheeraSearch. 'Baloo0 usa el commando "
"'baloosearch'",
"SETTINGS_SCAN_FULL_ON_START_LABEL": "Escanear Todo al Inicio:",
"SETTINGS_SCAN_MAX_LEVEL_TOOLTIP": "Profundidad máxima de directorio para "
"escanear recursivamente.",
@@ -1213,19 +1257,23 @@ _UI_TEXTS = {
"RENAME_VIEWER_ERROR_TEXT": "Non se puido renomear o ficheiro: {}",
"ADD_FACE_TITLE": "Engadir Rostro",
"ADD_PET_TITLE": "Engadir Mascota",
"ADD_BODY_TITLE": "Engadir Corpo",
"ADD_OBJECT_TITLE": "Engadir Obxecto",
"ADD_LANDMARK_TITLE": "Engadir Lugar",
"ADD_FACE_LABEL": "Nome:",
"ADD_PET_LABEL": "Nome:",
"ADD_BODY_LABEL": "Nome:",
"ADD_OBJECT_LABEL": "Nome:",
"ADD_LANDMARK_LABEL": "Nome:",
"DELETE_FACE": "Eliminar Rostro ou área",
"DELETE_AREA_TITLE": "Eliminar área",
"CREATE_TAG_TITLE": "Crear Etiqueta",
"CREATE_TAG_TEXT": "A etiqueta para '{}' non existe. Desexas crear unha nova?",
"NEW_PERSON_TAG_TITLE": "Nova Etiqueta de Persoa",
"NEW_PERSON_TAG_TEXT": "Introduce a ruta completa da etiqueta:",
"NEW_PET_TAG_TITLE": "Nova Etiqueta de Mascota",
"NEW_PET_TAG_TEXT": "Introduce a ruta completa da etiqueta:",
"NEW_BODY_TAG_TITLE": "Nova Etiqueta de Corpo",
"NEW_BODY_TAG_TEXT": "Introduce a ruta completa da etiqueta:",
"NEW_OBJECT_TAG_TITLE": "Nova Etiqueta de Obxecto",
"NEW_OBJECT_TAG_TEXT": "Introduce a ruta completa da etiqueta:",
"NEW_LANDMARK_TAG_TITLE": "Nova Etiqueta de Lugar",
@@ -1235,10 +1283,11 @@ _UI_TEXTS = {
"selecciona a correcta:",
"FACE_NAME_TOOLTIP": "Escribe un nome ou selecciónao do historial.",
"CLEAR_TEXT_TOOLTIP": "Limpar o campo de texto",
"RENAME_FACE_TITLE": "Renomear Rostro ou área",
"RENAME_AREA_TITLE": "Renomear área",
"SHOW_FACES": "Amosar Rostros e outras áreas",
"DETECT_FACES": "Detectar Rostros",
"DETECT_PETS": "Detectar Mascotas",
"DETECT_BODIES": "Detectar Corpos",
"NO_FACE_LIBS": "Non se atoparon librarías de detección de rostros. Instale "
"'mediapipe' ou 'face_recognition'.",
"THUMBNAIL_NO_NAME": "Sen nome",
@@ -1259,7 +1308,7 @@ _UI_TEXTS = {
"MENU_SHOW_HISTORY": "Amosar Historial",
"MENU_SETTINGS": "Opcións",
"SETTINGS_GROUP_SCANNER": "Escáner",
"SETTINGS_GROUP_FACES": "Rostros e áreas",
"SETTINGS_GROUP_AREAS": "´áreas",
"SETTINGS_GROUP_THUMBNAILS": "Miniaturas",
"SETTINGS_GROUP_VIEWER": "Visor de Imaxes",
"SETTINGS_PERSON_TAGS_LABEL": "Etiquetas de persoa:",
@@ -1280,8 +1329,21 @@ _UI_TEXTS = {
"recentemente para lembrar.",
"TYPE_FACE": "Cara",
"TYPE_PET": "Mascota",
"TYPE_BODY": "Corpo",
"TYPE_OBJECT": "Obxecto",
"TYPE_LANDMARK": "Lugar",
"SETTINGS_BODY_TAGS_LABEL": "Etiquetas de corpo:",
"SETTINGS_BODY_ENGINE_LABEL": "Motor de detección de corpos:",
"SETTINGS_BODY_COLOR_LABEL": "Cor do cadro de corpo:",
"SETTINGS_BODY_HISTORY_COUNT_LABEL": "Máx historial corpos:",
"SETTINGS_BODY_TAGS_TOOLTIP": "Etiquetas predeterminadas para corpos, "
"separadas por comas.",
"SETTINGS_BODY_ENGINE_TOOLTIP": "Libraría utilizada para a detección de "
"corpos.",
"SETTINGS_BODY_COLOR_TOOLTIP": "Cor do cadro delimitador debuxado arredor "
"dos corpos detectados.",
"SETTINGS_BODY_HISTORY_TOOLTIP": "Número máximo de nomes de corpos usados "
"recentemente para lembrar.",
"SETTINGS_OBJECT_TAGS_LABEL": "Etiquetas de obxecto:",
"SETTINGS_OBJECT_ENGINE_LABEL": "Motor de detección de obxectos:",
"SETTINGS_OBJECT_COLOR_LABEL": "Cor do cadro de obxecto:",
@@ -1322,8 +1384,8 @@ _UI_TEXTS = {
"SETTINGS_SCAN_BATCH_SIZE_LABEL": "Tamaño do Lote de Escaneo:",
"SETTINGS_SCANNER_SEARCH_ENGINE_LABEL": "Motor de busca de ficheiros:",
"SETTINGS_SCANNER_SEARCH_ENGINE_TOOLTIP": "Motor a usar para buscar ficheiros. "
"'Nativo' usa la librería de BagheeraSearch. 'baloosearch' usa o comando de "
"KDE Baloo.",
"'Bagheera' usa a libraría de BagheeraSearch. 'Baloo' usa o comando de "
"'baloosearch'.",
"SETTINGS_SCAN_FULL_ON_START_LABEL": "Escanear Todo ao Inicio:",
"SETTINGS_SCAN_MAX_LEVEL_TOOLTIP": "Profundidade máxima de directorio para "
"escanear recursivamente.",
@@ -1354,8 +1416,8 @@ _UI_TEXTS = {
"ficheiro en miniaturas.",
"SETTINGS_THUMBS_TAGS_FONT_SIZE_TOOLTIP": "Tamaño de fonte para etiquetas en "
"miniaturas.",
"SEARCH_ENGINE_NATIVE": "Nativo",
"SEARCH_ENGINE_BALOO": "baloosearch",
"SEARCH_ENGINE_NATIVE": "Bagheera",
"SEARCH_ENGINE_BALOO": "Baloo",
"SETTINGS_THUMBS_FILENAME_LINES_LABEL": "Liñas para nome de ficheiro:",
"SETTINGS_THUMBS_FILENAME_LINES_TOOLTIP": "Número de liñas para o nome do "
"ficheiro debaixo da miniatura.",