feat: implementar Fases 3, 4 y 5 del roadmap (Planificacion Avanzada, Historial de Corridas y Copia Local Duplicada)

This commit is contained in:
Carlos Tello
2026-08-15 00:58:05 -03:00
parent 2c2cfeb867
commit 929f9affd7
11 changed files with 677 additions and 57 deletions
+16 -1
View File
@@ -210,7 +210,7 @@ class AddFolderDialog(QDialog):
def __init__(self, parent=None):
super().__init__(parent)
self.setWindowTitle("Añadir Carpeta de Backup — OnEver Drive")
self.resize(500, 470)
self.resize(500, 520)
self.setStyleSheet(DARK_QSS)
layout = QVBoxLayout(self)
@@ -269,6 +269,15 @@ class AddFolderDialog(QDialog):
self.chk_sync_deletions.setChecked(False)
form.addRow("", self.chk_sync_deletions)
dest_layout = QHBoxLayout()
self.txt_dest = QLineEdit()
self.txt_dest.setPlaceholderText("Ej: D:\\LocalBackup (Opcional)")
btn_browse_dest = QPushButton("Explorar...")
btn_browse_dest.clicked.connect(self._browse_dest_folder)
dest_layout.addWidget(self.txt_dest)
dest_layout.addWidget(btn_browse_dest)
form.addRow("Copia Local Adicional:", dest_layout)
layout.addLayout(form)
btn_layout = QHBoxLayout()
@@ -290,6 +299,11 @@ class AddFolderDialog(QDialog):
if not self.txt_name.text():
self.txt_name.setText(Path(folder).name)
def _browse_dest_folder(self):
folder = QFileDialog.getExistingDirectory(self, "Seleccionar carpeta destino local")
if folder:
self.txt_dest.setText(folder)
def _validate_and_accept(self):
if not self.txt_path.text() or not os.path.exists(self.txt_path.text()):
QMessageBox.warning(self, "Ruta Inválida", "Por favor selecciona una carpeta existente en Windows.")
@@ -308,6 +322,7 @@ class AddFolderDialog(QDialog):
skip_system=self.chk_skip_system.isChecked(),
skip_readonly=self.chk_skip_readonly.isChecked(),
sync_deletions=self.chk_sync_deletions.isChecked(),
local_destination_path=self.txt_dest.text().strip() or None,
schedule_cron=self.cmb_schedule.currentText(),
min_stable_seconds=self.spin_stable.value()
)