BorgBackup_gui/borgbackup_gui/ConfigRepoGUI.py

59 lines
1.9 KiB
Python

from PySide6.QtWidgets import QWidget, QHBoxLayout, QVBoxLayout, QLabel, QApplication, QPushButton, QLineEdit
from PySide6.QtCore import QSize, Signal, Slot
class ConfigRepoGUI(QWidget):
valider = Signal()
def __init__(self, passphrase="", remote_path="/usr/local/bin/borg", depot=""):
super().__init__()
layout = QVBoxLayout()
layout.addWidget(QLabel("Configuration"))
self.repo = ConfigElementGUI("Depot", depot)
self.passphrase = ConfigElementGUI("Borg_passphrase", passphrase)
self.remote_path = ConfigElementGUI("--remote_path", remote_path)
layout.addWidget(self.repo)
layout.addWidget(self.passphrase)
layout.addWidget(self.remote_path)
self.valider_button = QPushButton("Valider")
layout.addWidget(self.valider_button)
self.valider_button.clicked.connect(self.envoyer_valider)
self.setLayout(layout)
def get_repo(self)->str:
return self.repo.field.text()
def get_passphrase(self)->str:
return self.passphrase.field.text()
def get_remote_path(self)->str:
return self.remote_path.field.text()
def task_ended(self):
self.valider_button.setEnabled(True)
@Slot()
def envoyer_valider(self):
print("envoyer_valider")
self.valider.emit()
self.valider_button.setEnabled(False)
class ConfigElementGUI(QWidget):
def __init__(self, nom:str, valeur_par_défaut:str=""):
super().__init__()
layout = QHBoxLayout()
layout.addWidget(QLabel(nom))
self.field = QLineEdit(valeur_par_défaut)
layout.addWidget(self.field)
self.setLayout(layout)
def sizeHint(self):
return QSize(600, 50)
if __name__ == "__main__":
import sys
app = QApplication([])
widget = ConfigRepoGUI()
widget.show()
sys.exit(app.exec())