Compare commits
3 Commits
0.2.1
...
5f30862a83
| Author | SHA1 | Date | |
|---|---|---|---|
| 5f30862a83 | |||
| 017a51a24a | |||
| 442d3173c8 |
@@ -77,6 +77,7 @@ class BigText(QWidget):
|
||||
def __init__(self, model: LogFileModel, show_range_slider=True):
|
||||
super(BigText, self).__init__()
|
||||
|
||||
self.show_range_slider = show_range_slider
|
||||
self.model = model
|
||||
|
||||
self.grid = QGridLayout()
|
||||
@@ -87,10 +88,7 @@ class BigText(QWidget):
|
||||
|
||||
self.v_scroll_bar = ScaledScrollBar()
|
||||
|
||||
self.range_limit = RangeSlider()
|
||||
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 = InnerBigText(self, model, self.v_scroll_bar)
|
||||
self.big_text.setSizePolicy(QSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Expanding))
|
||||
|
||||
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.scrolled_to_end.connect(self.big_text.v_scroll_update_follow_tail)
|
||||
|
||||
|
||||
|
||||
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.big_text, 0, 1)
|
||||
self.grid.addWidget(self.h_scroll_bar, 1, 1)
|
||||
@@ -149,14 +147,12 @@ class InnerBigText(QWidget):
|
||||
_range_start = 0
|
||||
_range_end = -1
|
||||
|
||||
def __init__(self, parent: BigText, model: LogFileModel, v_scaled_scrollbar: ScaledScrollBar,
|
||||
range_limit: RangeSlider):
|
||||
def __init__(self, parent: BigText, model: LogFileModel, v_scaled_scrollbar: ScaledScrollBar):
|
||||
super(InnerBigText, self).__init__()
|
||||
self.char_height = None
|
||||
self.char_width = None
|
||||
self.model = model
|
||||
self._v_scaled_scrollbar = v_scaled_scrollbar
|
||||
self._range_limit = range_limit
|
||||
self.parent = parent
|
||||
self.setFocusPolicy(Qt.FocusPolicy.StrongFocus)
|
||||
self.setFocusPolicy(Qt.FocusPolicy.WheelFocus)
|
||||
@@ -219,7 +215,6 @@ class InnerBigText(QWidget):
|
||||
elif e.modifiers() == Qt.KeyboardModifier.ControlModifier and e.key() == 65: # ctrl + a
|
||||
self._select_all()
|
||||
|
||||
|
||||
def wheelEvent(self, event: QWheelEvent):
|
||||
direction = 1 if event.angleDelta().y() < 0 else -1
|
||||
if event.modifiers() == Qt.KeyboardModifier.ControlModifier:
|
||||
@@ -262,30 +257,31 @@ class InnerBigText(QWidget):
|
||||
manage_highlighting.setShortcut("CTRL+H")
|
||||
menu.addAction(manage_highlighting)
|
||||
|
||||
menu.addSeparator()
|
||||
if self.parent.show_range_slider:
|
||||
menu.addSeparator()
|
||||
|
||||
set_range_start = QAction(
|
||||
Icon("icons/myicons/range-start.svg"),
|
||||
_("Set Range Start"),
|
||||
self,
|
||||
triggered=lambda: self._set_range_start_by_y_pos(position.y())
|
||||
)
|
||||
menu.addAction(set_range_start)
|
||||
set_range_start = QAction(
|
||||
Icon("icons/myicons/range-start.svg"),
|
||||
_("Set Range Start"),
|
||||
self,
|
||||
triggered=lambda: self._set_range_start_by_y_pos(position.y())
|
||||
)
|
||||
menu.addAction(set_range_start)
|
||||
|
||||
set_range_end = QAction(
|
||||
Icon("icons/myicons/range-end.svg"),
|
||||
_("Set Range End"),
|
||||
self,
|
||||
triggered=lambda: self._set_range_end_by_y_pos(position.y())
|
||||
)
|
||||
menu.addAction(set_range_end)
|
||||
set_range_end = QAction(
|
||||
Icon("icons/myicons/range-end.svg"),
|
||||
_("Set Range End"),
|
||||
self,
|
||||
triggered=lambda: self._set_range_end_by_y_pos(position.y())
|
||||
)
|
||||
menu.addAction(set_range_end)
|
||||
|
||||
reset_range = QAction(
|
||||
_("Reset Range"),
|
||||
self,
|
||||
triggered=lambda: self._reset_range()
|
||||
)
|
||||
menu.addAction(reset_range)
|
||||
reset_range = QAction(
|
||||
_("Reset Range"),
|
||||
self,
|
||||
triggered=lambda: self._reset_range()
|
||||
)
|
||||
menu.addAction(reset_range)
|
||||
|
||||
menu.exec(self.mapToGlobal(position))
|
||||
|
||||
@@ -559,7 +555,8 @@ class InnerBigText(QWidget):
|
||||
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)
|
||||
self.parent.v_scroll_bar.setMaximum(vmax)
|
||||
self.parent.range_limit.set_maximum(byte_count)
|
||||
if self.parent.show_range_slider:
|
||||
self.parent.range_limit.set_maximum(byte_count)
|
||||
|
||||
for line in self.lines:
|
||||
self.update_longest_line(len(line.line()))
|
||||
|
||||
@@ -44,8 +44,6 @@ class RangeSlider(QWidget):
|
||||
super(RangeSlider, self).__init__()
|
||||
self.setFixedWidth(self._width)
|
||||
|
||||
self.draw_ticks = False
|
||||
|
||||
self.min_value = 0
|
||||
self.max_value = 100
|
||||
|
||||
@@ -54,6 +52,7 @@ class RangeSlider(QWidget):
|
||||
|
||||
self.selected_handle = None
|
||||
self.selection_drag_range = (self.min_value, self.max_value)
|
||||
self.drag_y_offset_in_handle = 0
|
||||
|
||||
def set_maximum(self, max: int):
|
||||
if self.max_value == max:
|
||||
@@ -69,8 +68,6 @@ class RangeSlider(QWidget):
|
||||
def paintEvent(self, event: PySide6.QtGui.QPaintEvent) -> None:
|
||||
painter = QPainter(self)
|
||||
self._draw_background(painter)
|
||||
if self.draw_ticks:
|
||||
self._draw_ticks(painter)
|
||||
self._draw_handle(painter, self.lower_value)
|
||||
self._draw_handle(painter, self.upper_value, direction=-1)
|
||||
|
||||
@@ -90,19 +87,6 @@ class RangeSlider(QWidget):
|
||||
self._value_to_pixel(self.upper_value.value - self.lower_value.value) - 2 * self._handle_width)
|
||||
painter.drawRoundedRect(rect, 3.0, 3.0)
|
||||
|
||||
def _draw_ticks(self, painter: QPainter) -> None:
|
||||
painter.setPen(to_qcolor("333333"))
|
||||
|
||||
min_tick_distance = 25
|
||||
full_height = self.height() - 2 * self._handle_width
|
||||
ticks = math.floor(full_height / min_tick_distance)
|
||||
actual_tick_distance = full_height / ticks
|
||||
print(f"ticks {ticks}")
|
||||
y = actual_tick_distance + self._handle_width
|
||||
while y < full_height:
|
||||
painter.drawLine(8, y, 12, y)
|
||||
y = y + actual_tick_distance
|
||||
|
||||
def _draw_handle(self, painter: QPainter, handle: RangeSliderHandle, direction=1) -> None:
|
||||
y_pixel = self._value_to_pixel(handle.value)
|
||||
|
||||
@@ -144,9 +128,11 @@ class RangeSlider(QWidget):
|
||||
if self._is_on_handle(self.lower_value, pos.y(), direction=1):
|
||||
self.selected_handle = self.lower_value
|
||||
self.selection_drag_range = (self.min_value, self.upper_value.value)
|
||||
self.drag_y_offset_in_handle = self.selected_handle.value - self._pixel_to_value(pos.y())
|
||||
if self._is_on_handle(self.upper_value, pos.y(), direction=-1):
|
||||
self.selected_handle = self.upper_value
|
||||
self.selection_drag_range = (self.lower_value.value, self.max_value)
|
||||
self.drag_y_offset_in_handle = self.selected_handle.value - self._pixel_to_value(pos.y())
|
||||
|
||||
def mouseReleaseEvent(self, event: PySide6.QtGui.QMouseEvent) -> None:
|
||||
self.selected_handle = None
|
||||
@@ -154,7 +140,7 @@ class RangeSlider(QWidget):
|
||||
def mouseMoveEvent(self, e: PySide6.QtGui.QMouseEvent) -> None:
|
||||
if self.selected_handle != None:
|
||||
pos: QPoint = e.pos()
|
||||
value = self._pixel_to_value(pos.y())
|
||||
value = self._pixel_to_value(pos.y()) + self.drag_y_offset_in_handle
|
||||
if self.selection_drag_range[0] <= value <= self.selection_drag_range[1]:
|
||||
self.selected_handle.value = value
|
||||
# print("%s, %s" %(self.lower_value.value, self.upper_value.value))
|
||||
|
||||
Reference in New Issue
Block a user