Ejemplo n.º 1
0
 def __init__(self, parent, mode=LOADMODE):
     super(Q7File, self).__init__()
     self.setupUi(self)
     self.setWindowTitle("Load/Save")
     self.parent = parent
     self.iconProvider = Q7FileIconProvider()
     self.model = QFileSystemModel()
     self.model.setIconProvider(self.iconProvider)
     self.proxy = Q7FileFilterProxy(self)
     self.proxy.setSourceModel(self.model)
     self.treeview.setModel(self.proxy)
     self.setAttribute(Qt.WA_DeleteOnClose)
     #
     if HAS_PY2:
         self.model.directoryLoaded[unicode].connect(self.expandCols)
     else:
         self.model.directoryLoaded[str].connect(self.expandCols)
     self.treeview.expanded[QModelIndex].connect(self.expandCols)
     self.treeview.clicked[QModelIndex].connect(self.clickedNode)
     self.treeview.doubleClicked[QModelIndex].connect(
         self.clickedNodeAndLoad)
     self.direntries.lineEdit().returnPressed.connect(self.changeDirEdit)
     self.direntries.currentIndexChanged[int].connect(self.changeDirIndex)
     self.fileentries.currentIndexChanged[int].connect(self.changeFile)
     self.fileentries.lineEdit().editingFinished.connect(self.changeFile)
     self.tabs.currentChanged[int].connect(self.currentTabChanged)
     self.cShowAll.stateChanged[int].connect(self.updateView)
     self.cShowDirs.stateChanged[int].connect(self.updateView)
     self.rClearSelectedDirs.toggled[bool].connect(self.updateClearDirs)
     self.rClearSelectedFiles.toggled[bool].connect(self.updateClearFiles)
     self.rClearAllDirs.toggled[bool].connect(self.updateClearNone)
     self.rClearNoHDF.toggled[bool].connect(self.updateClearNoHDF)
     self.rClearNotFound.toggled[bool].connect(self.updateClearNotFound)
     #
     self.bClose.clicked.connect(self.closeUnlock)
     self.bCurrent.clicked.connect(self.currentDir)
     self.bBack.clicked.connect(self.backDir)
     self.bInfo.clicked.connect(self.infoFileView)
     self.bInfo2.clicked.connect(self.infoFileView)
     self.bClearHistory.clicked.connect(self.doClearHistory)
     self.mode = mode
     if self.mode == SAVEMODE:
         self.setMode(False)
     else:
         self.setMode(True)
     self.setBoxes()
     self.parent.getHistory()
     self.updateHistory()
     self.updateClearNotFound()
Ejemplo n.º 2
0
    def __init__(self, parent=None):
        super(FileBrowserInputWidget, self).__init__(parent=parent)

        # setup model
        self.model = QFileSystemModel()
        self.model.setRootPath('/home/')
        filters = self.model.filter()
        self.model.setFilter(filters | QDir.Hidden)

        # setup completer
        completer = QCompleter(self.model, self)
        self.setCompleter(completer)
        installCompleterPopup(completer)

        self.setCompleter(completer)
        completer.setCaseSensitivity(Qt.CaseInsensitive)

        self.autoCompleteList = []
Ejemplo n.º 3
0
    def __init__(self, parent=None):
        super(FileSystemTable, self).__init__(parent)

        self._table_type = TableType.Local
        self._hidden_columns = ''

        # This prevents doing unneeded initialization
        # when QtDesginer loads the plugin.
        if parent is None:
            return

        self.parent = parent
        self.path_data = dict()

        self.selected_row = None
        self.clipboard = QApplication.clipboard()

        self.model = QFileSystemModel()
        self.model.setReadOnly(True)
        self.model.setFilter(QDir.AllDirs | QDir.NoDotAndDotDot
                             | QDir.AllEntries)

        self.setModel(self.model)

        self.verticalHeader().hide()
        self.horizontalHeader().setStretchLastSection(True)
        self.setAlternatingRowColors(True)
        self.setSelectionBehavior(QAbstractItemView.SelectRows)

        self.selection_model = self.selectionModel()
        self.selection_model.selectionChanged.connect(self.onSelectionChanged)

        # open selected item on double click or enter pressed
        self.activated.connect(self.openSelectedItem)

        self.info = Info()
        self.nc_file_editor = self.info.getEditor()
        self.nc_file_dir = self.info.getProgramPrefix()
        self.nc_file_exts = self.info.getProgramExtentions()

        self.setRootPath(self.nc_file_dir)

        self.model.rootPathChanged.connect(self.onRootPathChanged)
Ejemplo n.º 4
0
def create_file_system_tree_dock_widget(view_menu: QMenu) -> DockWidget:
    '''
    Create file system tree dock widget

    Parameters
    ----------
    view_menu : QMenu

    Returns
    -------
    value : DockWidget
    '''
    widget = QTreeView()
    widget.setFrameShape(QFrame.NoFrame)

    m = QFileSystemModel(widget)
    m.setRootPath(QDir.currentPath())
    widget.setModel(m)

    _State.file_system_count += 1
    dock_widget = DockWidget("Filesystem {}".format(_State.file_system_count))
    dock_widget.set_widget(widget)
    view_menu.addAction(dock_widget.toggle_view_action())
    return dock_widget
Ejemplo n.º 5
0
 def setup_fs_model(self):
     """Setup filesystem model"""
     filters = QDir.AllDirs | QDir.Files | QDir.Drives | QDir.NoDotAndDotDot
     self.fsmodel = QFileSystemModel(self)
     self.fsmodel.setFilter(filters)
     self.fsmodel.setNameFilterDisables(False)
Ejemplo n.º 6
0
    def __init__(self, settings, path=None):
        super(RootWidget, self).__init__()

        # --- setup the file system model ---
        model = QFileSystemModel()
        model.setRootPath('This PC')
        model.setReadOnly(False)
        model.setIconProvider(
            JSONFileIconProvider('file_view_icons.json')
        )
        model.setFilter(
            QDir.AllEntries | QDir.NoDotAndDotDot | QDir.AllDirs | QDir.Hidden
        )

        self._model = FileSystemProxyModel()
        self._model.setSourceModel(model)

        # --- setup the tree view ---
        self._view = QTreeView()
        self._view.setModel(self._model)
        self._view.setSelectionMode(QTreeView.ExtendedSelection)
        self._view.activated.connect(self._handle_activated_index)
        self._view.setSortingEnabled(True)
        self._view.setHeaderHidden(True)
        self._view.setExpandsOnDoubleClick(False)
        self._view.sortByColumn(0, Qt.AscendingOrder)

        # Setup drag and drop.
        self._view.setDragDropMode(QTreeView.DragDrop)
        self._view.setDefaultDropAction(Qt.MoveAction)

        # Setup the columns that show.
        self._view.hideColumn(1)
        self._view.hideColumn(2)
        self._view.hideColumn(3)

        # Note that the double click trigger cannot be in this list, otherwise it flashes in edit
        # mode before opening the file
        self._view.setEditTriggers(
            QTreeView.SelectedClicked | QTreeView.EditKeyPressed)

        # setup the context menu
        self._view.setContextMenuPolicy(Qt.CustomContextMenu)
        self._view.customContextMenuRequested.connect(self._context_menu)

        # Unselect items on collapse.
        self._view.collapsed.connect(self._view.clearSelection)

        # --- setup the current root path label ---
        self._root_edit = PathEdit()
        self._root_edit.new_path.connect(self._set_root_path)

        # --- setup the tool bar ---
        tool_bar = QToolBar()

        new_file_action = QAction('New File', self)
        tool_bar.addAction(new_file_action)
        tool_bar.widgetForAction(new_file_action).setObjectName('new_file')
        new_file_action.triggered.connect(self._create_file)

        new_directory_action = QAction('New Directory', self)
        tool_bar.addAction(new_directory_action)
        tool_bar.widgetForAction(new_directory_action).setObjectName('new_directory')
        new_directory_action.triggered.connect(self._create_directory)

        close_action = QAction('Close', self)
        tool_bar.addAction(close_action)
        self._close_widget = tool_bar.widgetForAction(close_action)
        self._close_widget.setObjectName('close_root')
        close_action.triggered.connect(self.close_request.emit)

        # --- setup the layout ---
        main_layout = QVBoxLayout()
        main_layout.setContentsMargins(0, 0, 0, 0)
        main_layout.setSpacing(0)

        path_layout = QHBoxLayout()
        path_layout.setContentsMargins(0, 0, 0, 0)
        main_layout.setSpacing(0)
        path_layout.addWidget(self._root_edit)
        path_layout.addWidget(tool_bar)
        main_layout.addLayout(path_layout)

        main_layout.addWidget(self._view)

        self.setLayout(main_layout)

        if path is not None:
            self._set_root_path(path)
            self._root_edit.update(path)

        self._settings = None
        self.update_settings(settings)