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()
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 = []
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)
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
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)
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)