#!/usr/bin/env python3 """ project: Backuppy version: 0.7 file: install_gui.py summary: main entry python file """ # Standard library imports import os # Third party imports from PySide2 import QtWidgets # local imports from install import * class BackuppyWizard(QtWidgets.QWizard): def __init__(self, parent=None): super().__init__(parent) self.addPage(Page01(self)) self.addPage(Page02(self)) self.addPage(Page03(self)) self.addPage(Page04(self)) self.addPage(Page05(self)) self.addPage(Page06(self)) self.addPage(Page07(self)) self.addPage(Page08(self)) self.addPage(Page09(self)) self.addPage(Page10(self)) self.setWindowTitle(english.intromsg1) self.resize(640, 480) class Page01(QtWidgets.QWizardPage): def __init__(self, parent=None): super().__init__(parent) self.label = QtWidgets.QLabel("Hello, first of all, which language do you prefer: English or German?") # self.comboBox = QIComboBox(self) self.comboBox = QtWidgets.QComboBox(self) self.comboBox.addItem(LANG_EN, LANG_EN) self.comboBox.addItem(LANG_DE, LANG_DE) layout = QtWidgets.QVBoxLayout() layout.addWidget(self.label) layout.addWidget(self.comboBox) self.setLayout(layout) def validatePage(self): if self.comboBox.currentText() == LANG_DE: set_language(LANG_DE) return True class Page02(QtWidgets.QWizardPage): def __init__(self, parent=None): super().__init__(parent) self.label1 = QtWidgets.QLabel() self.label2 = QtWidgets.QLabel() layout = QtWidgets.QVBoxLayout() layout.addWidget(self.label1) layout.addWidget(self.label2) self.setLayout(layout) def initializePage(self): self.label1.setText(get_lang_text("languagepack")) self.label2.setText(get_lang_text("intromsg2")) class Page03(QtWidgets.QWizardPage): def __init__(self, parent=None): super().__init__(parent) self.label = QtWidgets.QLabel() self.groupbox = QtWidgets.QGroupBox() self.groupbox.setFlat(True) self.radio1 = QtWidgets.QRadioButton() self.radio2 = QtWidgets.QRadioButton() vbox = QtWidgets.QVBoxLayout() vbox.addWidget(self.radio1) vbox.addWidget(self.radio2) vbox.addStretch(1) self.groupbox.setLayout(vbox) layout = QtWidgets.QVBoxLayout() layout.addWidget(self.label) layout.addWidget(self.groupbox) self.setLayout(layout) def initializePage(self): self.label.setText(get_lang_text("excludefile1")) self.radio1.setText(get_lang_text("Yes")) self.radio2.setText(get_lang_text("No")) self.radio1.setChecked(True) def validatePage(self): global EXCLUDE if self.radio1.isChecked(): EXCLUDE = True else: EXCLUDE = False return True class Page04(QtWidgets.QWizardPage): def __init__(self, parent=None): super().__init__(parent) self.label = QtWidgets.QLabel() layout = QtWidgets.QVBoxLayout() layout.addWidget(self.label) self.setLayout(layout) def initializePage(self): global EXCLUDE if EXCLUDE: self.label.setText(get_lang_text("excludefile2")) os.environ["BUPY_CREATE_EXCLUDE"] = "True" else: self.label.setText(get_lang_text("excludefile3")) class Page05(QtWidgets.QWizardPage): def __init__(self, parent=None): super().__init__(parent) self.label1 = QtWidgets.QLabel() self.label2 = QtWidgets.QLabel() self.edit = QtWidgets.QLineEdit() layout = QtWidgets.QVBoxLayout() layout.addWidget(self.label1) layout.addWidget(self.label2) layout.addWidget(self.edit) self.setLayout(layout) def initializePage(self): self.label1.setText(get_lang_text("srcdir1")) self.label2.setText(get_lang_text("srcdir2")) def validatePage(self): global SOURCEDIR SOURCEDIR = self.edit.text() return True class Page06(QtWidgets.QWizardPage): def __init__(self, parent=None): super().__init__(parent) self.label1 = QtWidgets.QLabel() self.label2 = QtWidgets.QLabel() self.label3 = QtWidgets.QLabel() layout = QtWidgets.QVBoxLayout() layout.addWidget(self.label1) layout.addWidget(self.label2) layout.addWidget(self.label3) self.setLayout(layout) def initializePage(self): self.label1.setText(get_lang_text("srcdir3_1")) bold_text = f"
{SOURCEDIR}
" self.label2.setText(bold_text) self.label3.setText(get_lang_text("srcdir3_2")) class Page07(QtWidgets.QWizardPage): def __init__(self, parent=None): super().__init__(parent) self.label1 = QtWidgets.QLabel() self.edit = QtWidgets.QLineEdit() layout = QtWidgets.QVBoxLayout() layout.addWidget(self.label1) layout.addWidget(self.edit) self.setLayout(layout) def initializePage(self): self.label1.setText(get_lang_text("targetdir1")) def validatePage(self): global TARGETDIR TARGETDIR = self.edit.text() return True class Page08(QtWidgets.QWizardPage): def __init__(self, parent=None): super().__init__(parent) self.label1 = QtWidgets.QLabel() self.label2 = QtWidgets.QLabel() self.label3 = QtWidgets.QLabel() layout = QtWidgets.QVBoxLayout() layout.addWidget(self.label1) layout.addWidget(self.label2) layout.addWidget(self.label3) self.setLayout(layout) def initializePage(self): self.label1.setText(get_lang_text("targetdir2_1")) bold_text = f"{TARGETDIR}
" self.label2.setText(bold_text) self.label3.setText(get_lang_text("targetdir2_2")) def validatePage(self): global RSYNC_CMD, MYDIR, SOURCEDIR, TARGETDIR exclude_file = os.path.join(MYDIR, EXCLUDE_FILE) RSYNC_CMD = f"rsync -aqp --exclude-from={exclude_file} {SOURCEDIR} {TARGETDIR}" os.environ["BUPY_RSYNC_CMD"] = RSYNC_CMD return True class Page09(QtWidgets.QWizardPage): def __init__(self, parent=None): super().__init__(parent) self.label1 = QtWidgets.QLabel() self.label2 = QtWidgets.QLabel() layout = QtWidgets.QVBoxLayout() layout.addWidget(self.label1) layout.addWidget(self.label2) self.setLayout(layout) def initializePage(self): self.label1.setText(get_lang_text("collect")) global RSYNC_CMD #self.label2.setText(f"{RSYNC_CMD}") bold_text = f"{RSYNC_CMD}
" self.label2.setText(bold_text) class Page10(QtWidgets.QWizardPage): def __init__(self, parent=None): super().__init__(parent) self.label1 = QtWidgets.QLabel() self.label2 = QtWidgets.QLabel() self.label3 = QtWidgets.QLabel() layout = QtWidgets.QVBoxLayout() layout.addWidget(self.label1) layout.addWidget(self.label2) layout.addWidget(self.label3) self.setLayout(layout) self.setFinalPage(True) def initializePage(self): self.label1.setText(get_lang_text("outro1")) self.label2.setText(get_lang_text("outro2")) urlLink = f"{EMAIL}" self.label3.setText(urlLink) self.label3.setOpenExternalLinks(True) def main(): app = QtWidgets.QApplication() wizard = BackuppyWizard() wizard.show() app.exec_() if __name__ == '__main__': main()