forked from M-Labs/artiq
browser: add thumbnail icon provider
This commit is contained in:
parent
4bc5eaf9e8
commit
1a04cc0c24
|
@ -6,6 +6,20 @@ from PyQt5 import QtCore, QtWidgets, QtGui
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
|
class ResultIconProvider(QtWidgets.QFileIconProvider):
|
||||||
|
def icon(self, info):
|
||||||
|
if not (info.isFile() and info.isReadable() and info.suffix() == "h5"):
|
||||||
|
return QtWidgets.QFileIconProvider.icon(self, info)
|
||||||
|
try:
|
||||||
|
with h5py.File(info.filePath(), "r") as f:
|
||||||
|
d = f["thumbnail"]
|
||||||
|
img = QtGui.QImage.fromData(d.value, d.attrs["extension"])
|
||||||
|
pix = QtGui.QPixmap.fromImage(img)
|
||||||
|
return QtGui.QIcon(pix)
|
||||||
|
except:
|
||||||
|
return QtWidgets.QFileIconProvider.icon(self, info)
|
||||||
|
|
||||||
|
|
||||||
class ResultsBrowser(QtWidgets.QSplitter):
|
class ResultsBrowser(QtWidgets.QSplitter):
|
||||||
def __init__(self, datasets):
|
def __init__(self, datasets):
|
||||||
QtWidgets.QSplitter.__init__(self)
|
QtWidgets.QSplitter.__init__(self)
|
||||||
|
@ -16,6 +30,7 @@ class ResultsBrowser(QtWidgets.QSplitter):
|
||||||
self.rt_model.setRootPath(QtCore.QDir.currentPath())
|
self.rt_model.setRootPath(QtCore.QDir.currentPath())
|
||||||
self.rt_model.setNameFilters(["*.h5"])
|
self.rt_model.setNameFilters(["*.h5"])
|
||||||
self.rt_model.setNameFilterDisables(False)
|
self.rt_model.setNameFilterDisables(False)
|
||||||
|
self.rt_model.setIconProvider(ResultIconProvider())
|
||||||
|
|
||||||
self.rt = QtWidgets.QTreeView()
|
self.rt = QtWidgets.QTreeView()
|
||||||
self.rt.setModel(self.rt_model)
|
self.rt.setModel(self.rt_model)
|
||||||
|
|
Loading…
Reference in New Issue