59 lines
1.9 KiB
Python
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()) |