Compare commits

..

1 Commits

View File

@@ -77,6 +77,7 @@ class BigText(QWidget):
def __init__(self, model: LogFileModel, show_range_slider=True): def __init__(self, model: LogFileModel, show_range_slider=True):
super(BigText, self).__init__() super(BigText, self).__init__()
self.show_range_slider = show_range_slider
self.model = model self.model = model
self.grid = QGridLayout() self.grid = QGridLayout()
@@ -87,10 +88,7 @@ class BigText(QWidget):
self.v_scroll_bar = ScaledScrollBar() self.v_scroll_bar = ScaledScrollBar()
self.range_limit = RangeSlider() self.big_text = InnerBigText(self, model, self.v_scroll_bar)
self.range_limit.value_changed.connect(self._range_limit_event)
self.big_text = InnerBigText(self, model, self.v_scroll_bar, self.range_limit)
self.big_text.setSizePolicy(QSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Expanding)) self.big_text.setSizePolicy(QSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Expanding))
self.h_scroll_bar = QScrollBar(Qt.Orientation.Horizontal) self.h_scroll_bar = QScrollBar(Qt.Orientation.Horizontal)
@@ -102,9 +100,9 @@ class BigText(QWidget):
self.v_scroll_bar.scaledValueChanged.connect(self.big_text.v_scroll_event) self.v_scroll_bar.scaledValueChanged.connect(self.big_text.v_scroll_event)
self.v_scroll_bar.scrolled_to_end.connect(self.big_text.v_scroll_update_follow_tail) self.v_scroll_bar.scrolled_to_end.connect(self.big_text.v_scroll_update_follow_tail)
if show_range_slider: if show_range_slider:
self.range_limit = RangeSlider()
self.range_limit.value_changed.connect(self._range_limit_event)
self.grid.addWidget(self.range_limit, 0, 0) self.grid.addWidget(self.range_limit, 0, 0)
self.grid.addWidget(self.big_text, 0, 1) self.grid.addWidget(self.big_text, 0, 1)
self.grid.addWidget(self.h_scroll_bar, 1, 1) self.grid.addWidget(self.h_scroll_bar, 1, 1)
@@ -149,14 +147,12 @@ class InnerBigText(QWidget):
_range_start = 0 _range_start = 0
_range_end = -1 _range_end = -1
def __init__(self, parent: BigText, model: LogFileModel, v_scaled_scrollbar: ScaledScrollBar, def __init__(self, parent: BigText, model: LogFileModel, v_scaled_scrollbar: ScaledScrollBar):
range_limit: RangeSlider):
super(InnerBigText, self).__init__() super(InnerBigText, self).__init__()
self.char_height = None self.char_height = None
self.char_width = None self.char_width = None
self.model = model self.model = model
self._v_scaled_scrollbar = v_scaled_scrollbar self._v_scaled_scrollbar = v_scaled_scrollbar
self._range_limit = range_limit
self.parent = parent self.parent = parent
self.setFocusPolicy(Qt.FocusPolicy.StrongFocus) self.setFocusPolicy(Qt.FocusPolicy.StrongFocus)
self.setFocusPolicy(Qt.FocusPolicy.WheelFocus) self.setFocusPolicy(Qt.FocusPolicy.WheelFocus)
@@ -219,7 +215,6 @@ class InnerBigText(QWidget):
elif e.modifiers() == Qt.KeyboardModifier.ControlModifier and e.key() == 65: # ctrl + a elif e.modifiers() == Qt.KeyboardModifier.ControlModifier and e.key() == 65: # ctrl + a
self._select_all() self._select_all()
def wheelEvent(self, event: QWheelEvent): def wheelEvent(self, event: QWheelEvent):
direction = 1 if event.angleDelta().y() < 0 else -1 direction = 1 if event.angleDelta().y() < 0 else -1
if event.modifiers() == Qt.KeyboardModifier.ControlModifier: if event.modifiers() == Qt.KeyboardModifier.ControlModifier:
@@ -262,6 +257,7 @@ class InnerBigText(QWidget):
manage_highlighting.setShortcut("CTRL+H") manage_highlighting.setShortcut("CTRL+H")
menu.addAction(manage_highlighting) menu.addAction(manage_highlighting)
if self.parent.show_range_slider:
menu.addSeparator() menu.addSeparator()
set_range_start = QAction( set_range_start = QAction(
@@ -559,6 +555,7 @@ class InnerBigText(QWidget):
byte_count = self.model.byte_count() byte_count = self.model.byte_count()
vmax = byte_count - 1 if self._range_end < 0 else min(self._range_end, self.model.byte_count() - 1) vmax = byte_count - 1 if self._range_end < 0 else min(self._range_end, self.model.byte_count() - 1)
self.parent.v_scroll_bar.setMaximum(vmax) self.parent.v_scroll_bar.setMaximum(vmax)
if self.parent.show_range_slider:
self.parent.range_limit.set_maximum(byte_count) self.parent.range_limit.set_maximum(byte_count)
for line in self.lines: for line in self.lines: