This commit is contained in:
Ignacio Serantes
2026-03-26 09:01:41 +01:00
parent dfddfd17b3
commit a7ce2ceb75
10 changed files with 178 additions and 113 deletions

View File

@@ -958,37 +958,41 @@ class SettingsDialog(QDialog):
def update_mediapipe_status(self):
"""Checks for MediaPipe model file and updates UI accordingly."""
if "mediapipe" not in AVAILABLE_FACE_ENGINES or not self.face_engine_combo:
# --- Rostros ---
if self.face_engine_combo and "mediapipe" in AVAILABLE_FACE_ENGINES:
model_exists = os.path.exists(MEDIAPIPE_FACE_MODEL_PATH)
mediapipe_index = self.face_engine_combo.findText("mediapipe")
if mediapipe_index != -1:
item = self.face_engine_combo.model().item(mediapipe_index)
if item:
item.setEnabled(model_exists)
if self.download_model_btn:
self.download_model_btn.hide()
return
self.download_model_btn.setVisible(not model_exists)
model_exists = os.path.exists(MEDIAPIPE_FACE_MODEL_PATH)
mediapipe_index = self.face_engine_combo.findText("mediapipe")
if mediapipe_index != -1:
item = self.face_engine_combo.model().item(mediapipe_index)
if item:
item.setEnabled(model_exists)
if self.download_model_btn:
self.download_model_btn.setVisible(not model_exists)
if self.face_engine_combo.currentText() == "mediapipe" and not model_exists:
if self.face_engine_combo.count() > 1:
if self.face_engine_combo.currentText() == "mediapipe" and not model_exists:
for i in range(self.face_engine_combo.count()):
if self.face_engine_combo.model().item(i).isEnabled():
self.face_engine_combo.setCurrentIndex(i)
break
elif self.download_model_btn:
self.download_model_btn.hide()
if "mediapipe" not in AVAILABLE_PET_ENGINES or not self.pet_engine_combo:
# --- Mascotas (Pets) ---
if not AVAILABLE_PET_ENGINES:
self.pet_engine_combo.setEnabled(False)
self.pet_tags_edit.setEnabled(False)
self.pet_history_spin.setEnabled(False)
self.pet_color_btn.setEnabled(False)
if self.download_pet_model_btn:
self.download_pet_model_btn.hide()
return
pet_model_exists = os.path.exists(MEDIAPIPE_OBJECT_MODEL_PATH)
if self.download_pet_model_btn:
self.download_pet_model_btn.setVisible(not pet_model_exists)
elif "mediapipe" in AVAILABLE_PET_ENGINES:
pet_model_exists = os.path.exists(MEDIAPIPE_OBJECT_MODEL_PATH)
if self.download_pet_model_btn:
self.download_pet_model_btn.setVisible(not pet_model_exists)
elif self.download_pet_model_btn:
self.download_pet_model_btn.hide()
def start_model_download(self):
"""Starts the background thread to download the MediaPipe model."""