Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # -*- coding: utf-8 -*-
- __author__ = 'Ilya'
- import os
- from PyQt4.QtGui import QAbstractItemView, QItemSelectionModel
- from PyQt4.QtCore import pyqtSlot, SIGNAL, SLOT, QObject, QDir
- from PyQt4 import QtGui, QtCore
- import pyfits as pft
- from subprocess import *
- class FileView(QtGui.QListView):
- model = QtGui.QFileSystemModel()
- fts = QtGui.QStandardItemModel()
- list = []
- mx = 0
- current = 0
- def __init__(self):
- super(FileView, self).__init__()
- self.acceptDrops()
- path = QDir.currentPath()
- flt = ["*.fits"]
- self.model.setFilter(QDir.AllDirs | QDir.NoDotAndDotDot | QDir.AllEntries)
- self.model.setNameFilters(flt)
- self.model.setNameFilterDisables(False)
- root = self.model.setRootPath(path)
- self.setModel(self.model)
- self.setRootIndex(root)
- self.setSelectionMode(QAbstractItemView.SingleSelection)
- self.refresh(path)
- self.select(0)
- QObject.connect(self, SIGNAL("doubleClicked(QModelIndex)"), self, SLOT("ItemDoubleClicked(QModelIndex)"))
- @pyqtSlot("QModelIndex")
- def ItemDoubleClicked(self,index):
- self.setRootIndex(self.model.index(self.model.filePath(index)))
- def keyPressEvent(self, event):
- key = event.key()
- if key == QtCore.Qt.Key_Right:
- if len(self.selectedIndexes()) > 0:
- index = self.selectedIndexes()[0]
- path = self.model.filePath(index)
- if os.path.isdir(path):
- index = self.model.setRootPath(path)
- self.setRootIndex(index)
- self.clearSelection()
- self.refresh(path)
- self.select(0)
- if os.path.isfile(path):
- hdulist = pft.open(path)
- output = ""
- hdulist.info(output)
- hdulist.close()
- if key == QtCore.Qt.Key_Left:
- self.clearSelection()
- dirs = QDir(self.model.filePath(self.rootIndex()))
- if os.path.isfile(dirs.absolutePath()):
- dirs.cdUp()
- dirs.cdUp()
- index = self.model.setRootPath(dirs.absolutePath())
- self.setRootIndex(index)
- self.refresh(dirs.absolutePath())
- self.select(0)
- if key == QtCore.Qt.Key_Up:
- self.clearSelection()
- self.current -= 1
- if self.current == -1:
- self.current = self.mx - 1
- self.select(self.current)
- if key == QtCore.Qt.Key_Down:
- self.clearSelection()
- self.current += 1
- if self.current == self.mx:
- self.current = 0
- self.select(self.current)
- if key == QtCore.Qt.Key_AsciiTilde:
- path = QDir.homePath()
- self.setRootIndex(self.model.index(path))
- self.refresh(path)
- self.select(0)
- def lsdir(self, path):
- ls = os.listdir(path)
- files = []
- dirs = []
- for fl in ls:
- pt = path+'/'+fl
- if os.path.isfile(pt):
- files.append(fl)
- if os.path.isdir(pt):
- dirs.append(fl)
- sorted(files)
- sorted(dirs)
- lst = dirs + files
- return lst
- def refresh(self, path):
- ls = self.lsdir(path)
- self.list = []
- self.mx = len(ls)
- self.current = 0
- for i in ls:
- self.list.append(path+'/'+i)
- def select(self, pos):
- if self.mx > 0:
- self.selectionModel().select(self.model.index(self.list[pos]), QItemSelectionModel.Select)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement