From 2bad6bf8e8ad1a61a39be2dd7c90931464ff1c25 Mon Sep 17 00:00:00 2001 From: Marius Kriegerowski Date: Sat, 22 Oct 2016 14:17:37 +0200 Subject: [PATCH 1/2] pile_viewer: update marker selection in chunks --- src/pile_viewer.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/pile_viewer.py b/src/pile_viewer.py index 257179ccc..e9ecdd056 100644 --- a/src/pile_viewer.py +++ b/src/pile_viewer.py @@ -2098,6 +2098,9 @@ def emit_selected_markers(self): for sm in selected_markers: if sm in markers: _indexes.append(markers.index(sm)) + + _indexes.sort() + _indexes = make_chunks(_indexes) self.emit(qc.SIGNAL('changed_marker_selection'), _indexes) def toggle_marker_editor(self): From ace2fc543d9453851cdec3d293523fc8d2e63ea1 Mon Sep 17 00:00:00 2001 From: Marius Kriegerowski Date: Sat, 22 Oct 2016 14:22:50 +0200 Subject: [PATCH 2/2] marker_editor: chunk-wise selection of markers --- src/marker_editor.py | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/src/marker_editor.py b/src/marker_editor.py index 69feac949..a8f1e220d 100644 --- a/src/marker_editor.py +++ b/src/marker_editor.py @@ -28,10 +28,13 @@ def __init__(self): self.sort(1, qc.Qt.AscendingOrder) def lessThan(self, left, right): - if left.column() not in _string_header: - return left.data().toDouble()[0] > right.data().toDouble()[0] - else: + if left.column() == _column_mapping['Time']: + return util.stt(str(left.data().toString())) > \ + util.stt(str(right.data().toString())) + elif left.column() == _column_mapping['Label']: return left > right + else: + return left.data().toDouble()[0] > right.data().toDouble()[0] class MarkerTableView(qg.QTableView): @@ -447,12 +450,14 @@ def update_selection_model(self, indices): flag = qg.QItemSelectionModel.SelectionFlags( (qg.QItemSelectionModel.Current | qg.QItemSelectionModel.Select)) - for i in indices: + for chunk in indices: + istart = min(chunk) + istop = max(chunk) left = self.proxy_filter.mapFromSource( - self.marker_model.index(i, 0)) + self.marker_model.index(istart, 0)) right = self.proxy_filter.mapFromSource( - self.marker_model.index(i, num_columns-1)) + self.marker_model.index(istop, num_columns-1)) row_selection = qg.QItemSelection(left, right) row_selection.select(left, right) @@ -461,15 +466,13 @@ def update_selection_model(self, indices): if len(indices) != 0: self.marker_table.setCurrentIndex( self.proxy_filter.mapFromSource( - self.marker_model.index(indices[0], 0))) + self.marker_model.index(indices[0][0], 0))) self.selection_model.setCurrentIndex( self.proxy_filter.mapFromSource( - self.marker_model.index(indices[0], 0)), + self.marker_model.index(indices[0][0], 0)), qg.QItemSelectionModel.SelectCurrent) - - self.selection_model.select(selections, flag) - - if len(indices) != 0: self.marker_table.scrollTo( self.proxy_filter.mapFromSource( - self.marker_model.index(indices[0], 0))) + self.marker_model.index(indices[0][0], 0))) + + self.selection_model.select(selections, flag)