feat: implementar Fase 2 del roadmap (Modo Replica Exacta / Mirroring)
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, 320)
|
||||
self.resize(500, 470)
|
||||
self.setStyleSheet(DARK_QSS)
|
||||
|
||||
layout = QVBoxLayout(self)
|
||||
@@ -236,6 +236,10 @@ class AddFolderDialog(QDialog):
|
||||
self.txt_patterns.setText("*.bak,*.mdf")
|
||||
form.addRow("Filtros de archivo:", self.txt_patterns)
|
||||
|
||||
self.txt_exclude_patterns = QLineEdit()
|
||||
self.txt_exclude_patterns.setPlaceholderText("Ej: *.tmp, *.log, node_modules")
|
||||
form.addRow("Filtros de exclusión:", self.txt_exclude_patterns)
|
||||
|
||||
self.cmb_schedule = QComboBox()
|
||||
self.cmb_schedule.addItems(["hourly", "daily", "weekly", "monthly"])
|
||||
self.cmb_schedule.setCurrentText("daily")
|
||||
@@ -247,6 +251,24 @@ class AddFolderDialog(QDialog):
|
||||
self.spin_stable.setSuffix(" seg")
|
||||
form.addRow("Estabilidad de archivo (Locks):", self.spin_stable)
|
||||
|
||||
# File attribute skip checkboxes (Karen's Replicator style)
|
||||
self.chk_skip_hidden = QCheckBox("Omitir archivos ocultos (Hidden)")
|
||||
self.chk_skip_hidden.setChecked(False)
|
||||
form.addRow("", self.chk_skip_hidden)
|
||||
|
||||
self.chk_skip_system = QCheckBox("Omitir archivos de sistema (System)")
|
||||
self.chk_skip_system.setChecked(False)
|
||||
form.addRow("", self.chk_skip_system)
|
||||
|
||||
self.chk_skip_readonly = QCheckBox("Omitir archivos de solo lectura (Read-only)")
|
||||
self.chk_skip_readonly.setChecked(False)
|
||||
form.addRow("", self.chk_skip_readonly)
|
||||
|
||||
# Mirror sync checkbox (Phase 2)
|
||||
self.chk_sync_deletions = QCheckBox("Modo Réplica Exacta (Eliminar en destino si no existe en origen)")
|
||||
self.chk_sync_deletions.setChecked(False)
|
||||
form.addRow("", self.chk_sync_deletions)
|
||||
|
||||
layout.addLayout(form)
|
||||
|
||||
btn_layout = QHBoxLayout()
|
||||
@@ -281,6 +303,11 @@ class AddFolderDialog(QDialog):
|
||||
name=self.txt_name.text().strip(),
|
||||
source_path=self.txt_path.text().strip(),
|
||||
file_patterns=self.txt_patterns.text().strip() or "*.*",
|
||||
exclude_patterns=self.txt_exclude_patterns.text().strip(),
|
||||
skip_hidden=self.chk_skip_hidden.isChecked(),
|
||||
skip_system=self.chk_skip_system.isChecked(),
|
||||
skip_readonly=self.chk_skip_readonly.isChecked(),
|
||||
sync_deletions=self.chk_sync_deletions.isChecked(),
|
||||
schedule_cron=self.cmb_schedule.currentText(),
|
||||
min_stable_seconds=self.spin_stable.value()
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user