Esempio n. 1
0
class Path_selector(QWidget):
    def __init__(self, type):
        super().__init__()

        if not (type == 'file' or type == 'folder'):
            raise Exception(
                "invalid type when initializing Path_selector class instance")

        self.type = type

        self.label = QLabel(f"Select a {type}", self)
        self.input = QLineEdit(self)
        self.button = QPushButton(f"Select {type}", self)
        self.button.clicked.connect(self.navigate_for_path)

        self.layout = QHBoxLayout(self)

        self.layout.addWidget(self.label)
        self.layout.addWidget(self.input)
        self.layout.addWidget(self.button)

        self.resize(500, 200)

    def navigate_for_path(self):
        self.dialog = QFileDialog(self)
        path = ""

        if self.type == 'file':
            self.dialog.setFileMode(QFileDialog.ExistingFile)
            self.dialog.setNameFilter("Text files (*.txt)")
            self.dialog.exec()
            path = self.dialog.selectedFiles()[0]
            #path = self.dialog.getOpenFileName(self)[0]
        elif self.type == 'folder':
            path = self.dialog.getExistingDirectory(self)
            print(path)

        self.input.setText(path)
        return

    def get_path(self):
        return self.input.text()
Esempio n. 2
0
    def Sl_show_file_dialog(self):
        dialog = QFileDialog()
        dialog.setFileMode(QFileDialog.Directory)
        dialog.setViewMode(QFileDialog.Detail)
        dialog.setOption(QFileDialog.ShowDirsOnly)
        dialog.setOption(QFileDialog.DontResolveSymlinks)

        if dialog.exec():
            # Serve per fare in modo che il test abbia una stringa da usare
            sync_path = ["test"] if self.debug else dialog.selectedFiles()
            if len(sync_path) == 1:
                self.Sg_view_changed.emit(sync_path[0])
Esempio n. 3
0
    env_settings = QSettings()
    # env_settings.setValue("sync_path", None)
    # env_settings.setValue("Credentials/user", None)
    # env_settings.setValue("Credentials/password", None)

    # Controlliamo se l'utente ha già settato il PATH della cartella
    check_path = env_settings.value("sync_path")
    if not check_path or not os.path.isdir(check_path):
        dialog = QFileDialog()
        dialog.setFileMode(QFileDialog.Directory)
        dialog.setViewMode(QFileDialog.Detail)  # provare anche .List
        dialog.setOption(QFileDialog.ShowDirsOnly)
        dialog.setOption(QFileDialog.DontResolveSymlinks)

        # L'utente non ha selezionato la cartella
        if not dialog.exec():
            env_settings.setValue("sync_path", None)
            app.quit()

        sync_path = dialog.selectedFiles()
        if len(sync_path) == 1:
            env_settings.setValue("sync_path", sync_path[0])
            env_settings.sync()
            print("Nuova directory: " + env_settings.value("sync_path"))

    model = MainModel()
    controller = MainController(app, model)
    login_controller = LoginController(model, controller)
    sys.exit(app.exec())