Coverage for larch/qtrixs/view.py: 0%

39 statements  

« prev     ^ index     » next       coverage.py v7.6.0, created at 2024-10-16 21:04 +0000

1#!/usr/bin/env python 

2# coding: utf-8 

3""" 

4RIXS data view 

5""" 

6import os 

7from silx.gui import qt 

8 

9from larch.qtlib.view import TreeView 

10from larch.utils import get_cwd 

11from larch.io.rixsdata import RixsData 

12from .items import RixsItem 

13 

14 

15class RixsTreeView(TreeView): 

16 

17 def __init__(self, parent=None): 

18 super(RixsTreeView, self).__init__(parent) 

19 

20 def loadFiles(self): 

21 paths, _ = qt.QFileDialog.getOpenFileNames( 

22 self, 'Select Files to Load', get_cwd(), 

23 'RixsData Files (*rixs.h5)') 

24 

25 if not paths: 

26 return 

27 

28 parent = self.selectionModel().selectedRows().pop() 

29 parentItem = self.model().itemFromIndex(parent) 

30 for path in paths: 

31 self.addFile(path, parentItem) 

32 

33 def addFile(self, path=None, parentItem=None): 

34 if path is None: 

35 return 

36 

37 # Add the file to the last added experiment item. 

38 if parentItem is None: 

39 parentItem = self.model().rootItem.lastChild() 

40 

41 try: 

42 rdata = RixsData() 

43 rdata.load_from_h5(path) 

44 except Exception: 

45 return 

46 

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) 

50 

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 

56 

57 

58class RixsListView(qt.QListView): 

59 """Simple List View used in larch.qtrixs.plotrixs.RixsMainWindow""" 

60 

61 def __init__(self, parent=None): 

62 super(RixsListView, self).__init__(parent) 

63 

64 

65if __name__ == '__main__': 

66 pass