feat: implementar Fases 3, 4 y 5 del roadmap (Planificacion Avanzada, Historial de Corridas y Copia Local Duplicada)
This commit is contained in:
@@ -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()
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user