select word on double click
This commit is contained in:
14
bigtext.py
14
bigtext.py
@@ -184,6 +184,18 @@ class InnerBigText(QWidget):
|
||||
self.selection_highlight.set_end_byte(offset)
|
||||
self.update()
|
||||
|
||||
def mouseDoubleClickEvent(self, e: QtGui.QMouseEvent) -> None:
|
||||
if e.buttons() == Qt.MouseButton.LeftButton:
|
||||
offset = self.to_byte_offset(e)
|
||||
(_word, start_byte, end_byte) = self.model.read_word_at(offset)
|
||||
if start_byte >= 0 and end_byte >= 0:
|
||||
self.selection_highlight.set_start(start_byte)
|
||||
self.selection_highlight.set_end_byte(end_byte)
|
||||
else:
|
||||
self.selection_highlight.set_start(offset)
|
||||
self.selection_highlight.set_end_byte(offset)
|
||||
self.update()
|
||||
|
||||
def mouseMoveEvent(self, e: QMouseEvent):
|
||||
|
||||
if e.buttons() != Qt.MouseButton.LeftButton:
|
||||
@@ -243,7 +255,7 @@ class InnerBigText(QWidget):
|
||||
if line_number < len(self.lines):
|
||||
line = self.lines[line_number]
|
||||
column_in_line = self.x_pos_to_column(e.pos().x()) + self._left_offset
|
||||
char_in_line = min(column_in_line, line.length())
|
||||
char_in_line = min(column_in_line, line.length() - 1)
|
||||
# print("%s in line %s" % (char_in_line, line_number))
|
||||
byte_in_line = line.char_index_to_byte(char_in_line)
|
||||
current_byte = line.byte_offset() + byte_in_line
|
||||
|
||||
Reference in New Issue
Block a user