def __init__(self): super().__init__() self.corpus = None # Refresh recent files self.recent_files = [fn for fn in self.recent_files if os.path.exists(fn)] # Browse file box fbox = gui.widgetBox(self.controlArea, "Corpus file", orientation=0) # Drop-down for recent files self.file_combo = QtGui.QComboBox(fbox) self.file_combo.setMinimumWidth(300) fbox.layout().addWidget(self.file_combo) self.file_combo.activated[int].connect(self.select_file) # Browse button browse = gui.button(fbox, self, 'Browse', callback=self.browse_file) browse.setIcon(self.style().standardIcon(QtGui.QStyle.SP_DirOpenIcon)) browse.setSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed) # Reload button reload = gui.button(fbox, self, "Reload", callback=self.reload, default=True) reload.setIcon(self.style().standardIcon(QtGui.QStyle.SP_BrowserReload)) reload.setSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed) # Corpus info ibox = gui.widgetBox(self.controlArea, "Corpus info", addSpace=True) corp_info = "Corpus of 0 documents." self.info_label = gui.label(ibox, self, corp_info) # Used Text Features fbox = gui.widgetBox(self.controlArea, orientation=0) ubox = gui.widgetBox(fbox, "Used text features", addSpace=True) self.used_attrs = VariablesListItemModel() self.used_attrs_view = VariablesListItemView() self.used_attrs_view.setModel(self.used_attrs) ubox.layout().addWidget(self.used_attrs_view) aa = self.used_attrs aa.dataChanged.connect(self.update_feature_selection) aa.rowsInserted.connect(self.update_feature_selection) aa.rowsRemoved.connect(self.update_feature_selection) # Ignored Text Features ibox = gui.widgetBox(fbox, "Ignored text features", addSpace=True) self.unused_attrs = VariablesListItemModel() self.unused_attrs_view = VariablesListItemView() self.unused_attrs_view.setModel(self.unused_attrs) ibox.layout().addWidget(self.unused_attrs_view) # Load the most recent file self.set_file_list() if len(self.recent_files) > 0: self.open_file(self.recent_files[0])
def test_flags(self): m = VariablesListItemModel([ContinuousVariable("X")]) flags = m.flags(m.index(0)) self.assertTrue(flags & Qt.ItemIsDragEnabled) self.assertFalse(flags & Qt.ItemIsDropEnabled) # 'invalid' index is drop enabled -> indicates insertion capability flags = m.flags(m.index(-1, -1)) self.assertTrue(flags & Qt.ItemIsDropEnabled)
def test_drop_mime(self): iris = Table("iris") m = VariablesListItemModel(iris.domain.variables) mime = m.mimeData([m.index(1, 0)]) self.assertTrue(mime.hasFormat(VariablesListItemModel.MIME_TYPE)) assert m.dropMimeData(mime, Qt.MoveAction, 5, 0, m.index(-1, -1)) self.assertIs(m[5], m[1]) assert m.dropMimeData(mime, Qt.MoveAction, -1, -1, m.index(-1, -1)) self.assertIs(m[6], m[1])