Coverage for /Users/Newville/Codes/xraylarch/larch/qtrixs/view.py: 0%
40 statements
« prev ^ index » next coverage.py v7.3.2, created at 2023-11-09 10:08 -0600
« prev ^ index » next coverage.py v7.3.2, created at 2023-11-09 10:08 -0600
1#!/usr/bin/env python
2# coding: utf-8
3"""
4RIXS data view
5"""
6import os
7from silx.gui import qt
9from larch.qtlib.view import TreeView
10from larch.utils import get_cwd
11from larch.io.rixsdata import RixsData
12from .items import RixsItem
15class RixsTreeView(TreeView):
17 def __init__(self, parent=None):
18 super(RixsTreeView, self).__init__(parent)
20 def loadFiles(self):
21 paths, _ = qt.QFileDialog.getOpenFileNames(
22 self, 'Select Files to Load', get_cwd(),
23 'RixsData Files (*rixs.h5)')
25 if not paths:
26 return
28 parent = self.selectionModel().selectedRows().pop()
29 parentItem = self.model().itemFromIndex(parent)
30 for path in paths:
31 self.addFile(path, parentItem)
33 def addFile(self, path=None, parentItem=None):
34 if path is None:
35 return
37 # Add the file to the last added experiment item.
38 if parentItem is None:
39 parentItem = self.model().rootItem.lastChild()
41 try:
42 rdata = RixsData()
43 rdata.load_from_h5(path)
44 except Exception:
45 return
47 # Create a tree item for the file and add it to the experiment item.
48 item = RixsItem(rdata.sample_name, parentItem, data=rdata)
49 self.model().appendRow(item)
51 def rixsItems(self):
52 for index in self.model().visitModel():
53 item = self.model().itemFromIndex(index)
54 if isinstance(item, RixsItem):
55 yield item
58class RixsListView(qt.QListView):
59 """Simple List View used in larch.qtrixs.plotrixs.RixsMainWindow"""
61 def __init__(self, parent=None):
62 super(RixsListView, self).__init__(parent)
65if __name__ == '__main__':
66 pass