Exemple #1
0
def file_dialog(dir='', for_open=True, fmt='', is_folder=False):
    """Dialog z eksploratorem Windows. Otwieranie/tworzenie folderów i plików."""
    options = QFileDialog.Options()
    options |= QFileDialog.DontUseNativeDialog
    options |= QFileDialog.DontUseCustomDirectoryIcons
    dialog = QFileDialog()
    dialog.setOptions(options)
    dialog.setFilter(dialog.filter() | QDir.Hidden)
    if is_folder:  # Otwieranie folderu
        dialog.setFileMode(QFileDialog.DirectoryOnly)
    else:  # Otwieranie pliku
        dialog.setFileMode(QFileDialog.AnyFile)
    # Otwieranie / zapisywanie:
    dialog.setAcceptMode(
        QFileDialog.AcceptOpen) if for_open else dialog.setAcceptMode(
            QFileDialog.AcceptSave)
    # Ustawienie filtrowania rozszerzeń plików:
    if fmt != '' and not is_folder:
        dialog.setDefaultSuffix(fmt)
        dialog.setNameFilters([f'{fmt} (*.{fmt})'])
    # Ścieżka startowa:
    if dir != '':
        dialog.setDirectory(str(dir))
    else:
        dialog.setDirectory(str(os.environ["HOMEPATH"]))
    # Przekazanie ścieżki folderu/pliku:
    if dialog.exec_() == QDialog.Accepted:
        path = dialog.selectedFiles()[0]
        return path
    else:
        return ''
Exemple #2
0
def FileDialog(directory='', forOpen=True, fmt='', isFolder=False):
    options = QFileDialog.Options()
    options |= QFileDialog.DontUseNativeDialog
    options |= QFileDialog.DontUseCustomDirectoryIcons
    dialog = QFileDialog()
    dialog.setOptions(options)

    dialog.setFilter(dialog.filter() | QtCore.QDir.Hidden)

    # ARE WE TALKING ABOUT FILES OR FOLDERS
    if isFolder:
        dialog.setFileMode(QFileDialog.DirectoryOnly)
    else:
        dialog.setFileMode(QFileDialog.AnyFile)
    # OPENING OR SAVING
    dialog.setAcceptMode(QFileDialog.AcceptOpen) if forOpen else dialog.setAcceptMode(QFileDialog.AcceptSave)

    # SET FORMAT, IF SPECIFIED
    if fmt != '' and isFolder is False:
        dialog.setDefaultSuffix(fmt)
        dialog.setNameFilters([f'{fmt} (*.{fmt})'])

    # SET THE STARTING DIRECTORY
    if directory != '':
        dialog.setDirectory(str(directory))
    else:
        dialog.setDirectory(str(ROOT_DIR))


    if dialog.exec_() == QDialog.Accepted:
        path = dialog.selectedFiles()[0]  # returns a list
        return path
    else:
        return ''
Exemple #3
0
 def file_dlg(self, text):
     msg_box = QMessageBox()
     msg_box.setIcon(QMessageBox.Question)
     try:
         msg_box.setWindowIcon(
             QtGui.QIcon(os.path.join("misc", "archerrank2.svg")))
     except FileNotFoundError:
         msg_box.setWindowIcon(
             QtGui.QIcon(
                 os.path.abspath(
                     os.path.join(os.path.dirname(sys.argv[0]), "misc",
                                  "archerrank2.svg"))))
     msg_box.setText(self.tr("Question"))
     msg_box.setInformativeText(text)
     msg_box.addButton(self.tr('Load'), QMessageBox.AcceptRole)
     msg_box.addButton(self.tr('New'), QMessageBox.AcceptRole)
     msg_box.addButton(self.tr('Exit'), QMessageBox.NoRole)
     reply = msg_box.exec_()
     if reply == 0:
         fileName, _ = QFileDialog.getOpenFileName(
             None, "QFileDialog.getOpenFileName()", "",
             "Acherrang2 Files (*.sqlite)")
         return fileName
     elif reply == 1:
         filedialog = QFileDialog(msg_box)
         filedialog.setFilter(filedialog.filter() | QtCore.QDir.Hidden)
         filedialog.setDefaultSuffix('sqlite')
         filedialog.setAcceptMode(QFileDialog.AcceptSave)
         filedialog.setNameFilters(["Acherrang2 Files (*.sqlite)"])
         if filedialog.exec_() == QFileDialog.Accepted:
             return filedialog.selectedFiles()[0]
         return
     else:
         return "exit"
Exemple #4
0
 def file_chooser(self):
     dialog = QFileDialog()
     dialog.setFilter(dialog.filter() | QtCore.QDir.Hidden)
     dialog.setDefaultSuffix("mp4")
     dialog.setAcceptMode(QFileDialog.AcceptSave)
     dialog.setNameFilters(["H.264 (*.mp4)", "MKV (*.mkv)"])
     if dialog.exec_() == QDialog.Accepted:
         self.a6c1.setText(dialog.selectedFiles()[0])
Exemple #5
0
 def action_select_output_files_path(self):
     options = QFileDialog.Options()
     options |= QFileDialog.DontUseNativeDialog
     options |= QFileDialog.DontUseCustomDirectoryIcons
     dialog = QFileDialog()
     dialog.setOptions(options)
     dialog.setFilter(dialog.filter() | QDir.Hidden)
     path  = dialog.getExistingDirectory(self, 'Select directory', options=options)
     if path:
         self.lineedit_output_files_path.setText(path)
Exemple #6
0
def getOpenFileName(parent, *args, **kwargs):
    """
    Workaround to give control about hidden files
    """
    dlg = QFileDialog(parent, *args, **kwargs)
    dlg.setOption(dlg.DontUseNativeDialog, True)
    dlg.setOption(dlg.HideNameFilterDetails, True)
    dlg.setFileMode(dlg.ExistingFile)
    if hiddenFiles(parent):
        dlg.setFilter(dlg.filter() | QDir.Hidden)
    if dlg.exec_() == QDialog.Accepted:
        return dlg.selectedFiles()[0]
    return str()
Exemple #7
0
def FileDialogExport():
    options = QFileDialog.Options()
    options |= QFileDialog.DontUseNativeDialog
    options |= QFileDialog.DontUseCustomDirectoryIcons
    dialog = QFileDialog()
    dialog.setOptions(options)

    dialog.setFilter(dialog.filter() | QtCore.QDir.Hidden)
    dialog.setFileMode(QFileDialog.AnyFile)
    dialog.setAcceptMode(QFileDialog.AcceptSave)
    dialog.setDefaultSuffix("ktmf")
    dialog.setNameFilters([f'{"Kayto Timeline File"} (*.{"ktmf"})'])
    if dialog.exec_() == QDialog.Accepted:
        return dialog.selectedFiles()[0]
Exemple #8
0
    def showOutputDirDialog(self):

        options = QFileDialog.Options()
        options |= QFileDialog.DontUseNativeDialog
        options |= QFileDialog.DontUseCustomDirectoryIcons
        dialog = QFileDialog()
        dialog.setOptions(options)
        dialog.setFileMode(QFileDialog.DirectoryOnly)
        dialog.setFilter(dialog.filter() | QDir.Hidden)

        if dialog.exec_() == QDialog.Accepted:

            temp = dialog.selectedFiles()[0]
            if temp:
                global output_dir
                output_dir = temp + "/"
                self.output_dir_label.setText(output_dir)
Exemple #9
0
 def save_preset_cb(self):
     """
     Save user settings to file
     """
     dialog = QFileDialog()
     dialog.setFilter(dialog.filter() | QtCore.QDir.Hidden)
     dialog.setDefaultSuffix("json")
     dialog.setAcceptMode(QFileDialog.AcceptSave)
     dialog.setNameFilters(["JSON (*.json)"])
     if dialog.exec_() == QDialog.Accepted:
         preset_path = dialog.selectedFiles()[0]
         save_json(self.path_hotkey_dict, preset_path)
         QtWidgets.QMessageBox.information(
             self, "Saved", f"Saved hotkey preset: {preset_path}"
         )
     else:
         print("Cancelled")
Exemple #10
0
    def showDialogSecond(self):

        options = QFileDialog.Options()
        options |= QFileDialog.DontUseNativeDialog
        options |= QFileDialog.DontUseCustomDirectoryIcons
        dialog = QFileDialog()
        dialog.setOptions(options)
        dialog.setNameFilters(["Zip archives (*.zip)"])
        dialog.setFilter(dialog.filter() | QDir.Hidden)

        if dialog.exec_() == QDialog.Accepted:

            temp = dialog.selectedFiles()[0]
            if temp:
                global second_tf_path
                second_tf_path = temp
                filename = Path(second_tf_path).name
                self.second_tf_label.setText(filename)
Exemple #11
0
def LoadFile(Title="Load ...", Filters=['All files (*.*)'], Suffix=None, currentDirectory=None, currentFile=None):
    from PyQt5.QtWidgets import QDialog, QFileDialog
    import PyQt5.QtCore as QtCore
    dialog = QFileDialog()
    dialog.setWindowTitle(Title)
    if currentDirectory is not None:
        if len(currentDirectory):
            dialog.setDirectory(currentDirectory)
    if currentFile is not None:
        dialog.selectFile(currentFile)
    if Suffix is not None:
        dialog.setDefaultSuffix(Suffix)
    dialog.setOption(QFileDialog.DontUseNativeDialog)
    dialog.setFilter(dialog.filter() | QtCore.QDir.Hidden)
    dialog.setNameFilters(Filters)
    dialog.setAcceptMode(QFileDialog.AcceptOpen)
    if dialog.exec_() == QDialog.Accepted:
        return dialog.selectedFiles()[0]
    return []
Exemple #12
0
def filedialog(kind="",
               directory=os.path.dirname(__file__),
               for_open=True,
               fmt="",
               is_folder=False):
    """general dialog function."""
    label = "select the folder for " + kind
    options = QFileDialog.Options()
    options |= QFileDialog.DontUseNativeDialog
    options |= QFileDialog.DontUseCustomDirectoryIcons
    dialog = QFileDialog(caption=label)
    dialog.setOptions(options)

    dialog.setFilter(dialog.filter() | QtCore.QDir.Hidden)

    # ARE WE TALKING ABOUT FILES OR FOLDERS
    if is_folder:
        dialog.setFileMode(QFileDialog.DirectoryOnly)
    else:
        dialog.setFileMode(QFileDialog.AnyFile)
    # OPENING OR SAVING
    dialog.setAcceptMode(
        QFileDialog.AcceptOpen) if for_open else dialog.setAcceptMode(
            QFileDialog.AcceptSave)

    # SET FORMAT, IF SPECIFIED
    if fmt != "" and is_folder is False:
        dialog.setDefaultSuffix(fmt)
        dialog.setNameFilters([f"{fmt} (*.{fmt})"])

    # SET THE STARTING DIRECTORY
    if directory != "":
        dialog.setDirectory(str(directory))
    else:
        dialog.setDirectory(os.getcwd())

    if dialog.exec_() == QDialog.Accepted:
        path = dialog.selectedFiles()[0]  # returns a list
    else:
        path = ""
    return path
Exemple #13
0
def getExistingDirectories(parent, *args, **kwargs):
    """
    Workaround for selecting multiple directories
    adopted from http://www.qtcentre.org/threads/34226-QFileDialog-select-multiple-directories?p=158482#post158482
    This also give control about hidden folders
    """
    dlg = QFileDialog(parent, *args, **kwargs)
    dlg.setOption(dlg.DontUseNativeDialog, True)
    dlg.setOption(dlg.HideNameFilterDetails, True)
    dlg.setFileMode(dlg.Directory)
    dlg.setOption(dlg.ShowDirsOnly, True)
    if hiddenFiles(parent):
        dlg.setFilter(dlg.filter() | QDir.Hidden)
    dlg.findChildren(QListView)[0].setSelectionMode(
        QAbstractItemView.ExtendedSelection)
    dlg.findChildren(QTreeView)[0].setSelectionMode(
        QAbstractItemView.ExtendedSelection)
    if dlg.exec_() == QDialog.Accepted:
        return dlg.selectedFiles()
    return [
        str(),
    ]
Exemple #14
0
 def load_preset_cb(self):
     """
     Load user settings from file
     """
     dialog = QFileDialog()
     dialog.setFilter(dialog.filter() | QtCore.QDir.Hidden)
     dialog.setDefaultSuffix("json")
     dialog.setAcceptMode(QFileDialog.AcceptOpen)
     dialog.setNameFilters(["JSON (*.json)"])
     if dialog.exec_() == QDialog.Accepted:
         preset_path = dialog.selectedFiles()[0]
         self.path_hotkey_dict = load_json(preset_path)
         self.path_hotkey_dict = {
             k: v for k, v in self.path_hotkey_dict.items() if v is not None
         }
         print("loaded dict: ", self.path_hotkey_dict)
         self.hotkey_path_dict = {
             value: key for key, value in self.path_hotkey_dict.items()
         }
         self.restore_table_from_dict()
     else:
         print("Cancelled")