summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Bruhin <me@the-compiler.org>2020-05-22 19:50:32 +0200
committerFlorian Bruhin <me@the-compiler.org>2020-05-22 20:48:06 +0200
commit374d28de77d926d207b9658b23cd16dd1990a9fc (patch)
tree190928afec5daca1d026812f64bdb3fc4f39cd02
parent118882b861105428fc698d2c5cea6aecbd59b2ee (diff)
downloadqutebrowser-374d28de77d926d207b9658b23cd16dd1990a9fc.tar.gz
qutebrowser-374d28de77d926d207b9658b23cd16dd1990a9fc.zip
webkittab: Make selection_state private
The previous selection_enabled boolean was public, but didn't need to be since e50068021d084cf01507cd20693318189193e073.
-rw-r--r--qutebrowser/browser/browsertab.py1
-rw-r--r--qutebrowser/browser/webkit/webkittab.py89
2 files changed, 49 insertions, 41 deletions
diff --git a/qutebrowser/browser/browsertab.py b/qutebrowser/browser/browsertab.py
index f37d143b6..d11ec2fa1 100644
--- a/qutebrowser/browser/browsertab.py
+++ b/qutebrowser/browser/browsertab.py
@@ -452,7 +452,6 @@ class AbstractCaret(QObject):
super().__init__(parent)
self._tab = tab
self._widget = typing.cast(QWidget, None)
- self.selection_state = SelectionState.none
self._mode_manager = mode_manager
mode_manager.entered.connect(self._on_mode_entered)
mode_manager.left.connect(self._on_mode_left)
diff --git a/qutebrowser/browser/webkit/webkittab.py b/qutebrowser/browser/webkit/webkittab.py
index e73833f67..ac10539e8 100644
--- a/qutebrowser/browser/webkit/webkittab.py
+++ b/qutebrowser/browser/webkit/webkittab.py
@@ -25,6 +25,7 @@ import xml.etree.ElementTree
from PyQt5.QtCore import pyqtSlot, Qt, QUrl, QPoint, QTimer, QSizeF, QSize
from PyQt5.QtGui import QIcon
+from PyQt5.QtWidgets import QWidget
from PyQt5.QtWebKitWidgets import QWebPage, QWebFrame
from PyQt5.QtWebKit import QWebSettings
from PyQt5.QtPrintSupport import QPrinter
@@ -34,6 +35,7 @@ from qutebrowser.browser.webkit import (webview, tabhistory, webkitelem,
webkitsettings)
from qutebrowser.utils import qtutils, usertypes, utils, log, debug
from qutebrowser.qt import sip
+from qutebrowser.keyinput import modeman
class WebKitAction(browsertab.AbstractAction):
@@ -172,16 +174,23 @@ class WebKitCaret(browsertab.AbstractCaret):
"""QtWebKit implementations related to moving the cursor/selection."""
+ def __init__(self,
+ tab: browsertab.AbstractTab,
+ mode_manager: modeman.ModeManager,
+ parent: QWidget = None) -> None:
+ super().__init__(tab, mode_manager, parent)
+ self._selection_state = browsertab.SelectionState.none
+
@pyqtSlot(usertypes.KeyMode)
def _on_mode_entered(self, mode):
if mode != usertypes.KeyMode.caret:
return
if self._widget.hasSelection():
- self.selection_state = browsertab.SelectionState.normal
+ self._selection_state = browsertab.SelectionState.normal
else:
- self.selection_state = browsertab.SelectionState.none
- self.selection_toggled.emit(self.selection_state)
+ self._selection_state = browsertab.SelectionState.none
+ self.selection_toggled.emit(self._selection_state)
settings = self._widget.settings()
settings.setAttribute(QWebSettings.CaretBrowsingEnabled, True)
@@ -196,7 +205,7 @@ class WebKitCaret(browsertab.AbstractCaret):
#
# Note: We can't use hasSelection() here, as that's always
# true in caret mode.
- if self.selection_state is browsertab.SelectionState.none:
+ if self._selection_state is browsertab.SelectionState.none:
self._widget.page().currentFrame().evaluateJavaScript(
utils.read_file('javascript/position_caret.js'))
@@ -204,37 +213,37 @@ class WebKitCaret(browsertab.AbstractCaret):
def _on_mode_left(self, _mode):
settings = self._widget.settings()
if settings.testAttribute(QWebSettings.CaretBrowsingEnabled):
- if (self.selection_state is not browsertab.SelectionState.none and
+ if (self._selection_state is not browsertab.SelectionState.none and
self._widget.hasSelection()):
# Remove selection if it exists
self._widget.triggerPageAction(QWebPage.MoveToNextChar)
settings.setAttribute(QWebSettings.CaretBrowsingEnabled, False)
- self.selection_state = browsertab.SelectionState.none
+ self._selection_state = browsertab.SelectionState.none
def move_to_next_line(self, count=1):
- if self.selection_state is not browsertab.SelectionState.none:
+ if self._selection_state is not browsertab.SelectionState.none:
act = QWebPage.SelectNextLine
else:
act = QWebPage.MoveToNextLine
for _ in range(count):
self._widget.triggerPageAction(act)
- if self.selection_state is browsertab.SelectionState.line:
+ if self._selection_state is browsertab.SelectionState.line:
self._select_line_to_end()
def move_to_prev_line(self, count=1):
- if self.selection_state is not browsertab.SelectionState.none:
+ if self._selection_state is not browsertab.SelectionState.none:
act = QWebPage.SelectPreviousLine
else:
act = QWebPage.MoveToPreviousLine
for _ in range(count):
self._widget.triggerPageAction(act)
- if self.selection_state is browsertab.SelectionState.line:
+ if self._selection_state is browsertab.SelectionState.line:
self._select_line_to_start()
def move_to_next_char(self, count=1):
- if self.selection_state is browsertab.SelectionState.normal:
+ if self._selection_state is browsertab.SelectionState.normal:
act = QWebPage.SelectNextChar
- elif self.selection_state is browsertab.SelectionState.line:
+ elif self._selection_state is browsertab.SelectionState.line:
return
else:
act = QWebPage.MoveToNextChar
@@ -242,9 +251,9 @@ class WebKitCaret(browsertab.AbstractCaret):
self._widget.triggerPageAction(act)
def move_to_prev_char(self, count=1):
- if self.selection_state is browsertab.SelectionState.normal:
+ if self._selection_state is browsertab.SelectionState.normal:
act = QWebPage.SelectPreviousChar
- elif self.selection_state is browsertab.SelectionState.line:
+ elif self._selection_state is browsertab.SelectionState.line:
return
else:
act = QWebPage.MoveToPreviousChar
@@ -252,11 +261,11 @@ class WebKitCaret(browsertab.AbstractCaret):
self._widget.triggerPageAction(act)
def move_to_end_of_word(self, count=1):
- if self.selection_state is browsertab.SelectionState.normal:
+ if self._selection_state is browsertab.SelectionState.normal:
act = [QWebPage.SelectNextWord]
if utils.is_windows: # pragma: no cover
act.append(QWebPage.SelectPreviousChar)
- elif self.selection_state is browsertab.SelectionState.line:
+ elif self._selection_state is browsertab.SelectionState.line:
return
else:
act = [QWebPage.MoveToNextWord]
@@ -267,11 +276,11 @@ class WebKitCaret(browsertab.AbstractCaret):
self._widget.triggerPageAction(a)
def move_to_next_word(self, count=1):
- if self.selection_state is browsertab.SelectionState.normal:
+ if self._selection_state is browsertab.SelectionState.normal:
act = [QWebPage.SelectNextWord]
if not utils.is_windows: # pragma: no branch
act.append(QWebPage.SelectNextChar)
- elif self.selection_state is browsertab.SelectionState.line:
+ elif self._selection_state is browsertab.SelectionState.line:
return
else:
act = [QWebPage.MoveToNextWord]
@@ -282,9 +291,9 @@ class WebKitCaret(browsertab.AbstractCaret):
self._widget.triggerPageAction(a)
def move_to_prev_word(self, count=1):
- if self.selection_state is browsertab.SelectionState.normal:
+ if self._selection_state is browsertab.SelectionState.normal:
act = QWebPage.SelectPreviousWord
- elif self.selection_state is browsertab.SelectionState.line:
+ elif self._selection_state is browsertab.SelectionState.line:
return
else:
act = QWebPage.MoveToPreviousWord
@@ -292,25 +301,25 @@ class WebKitCaret(browsertab.AbstractCaret):
self._widget.triggerPageAction(act)
def move_to_start_of_line(self):
- if self.selection_state is browsertab.SelectionState.normal:
+ if self._selection_state is browsertab.SelectionState.normal:
act = QWebPage.SelectStartOfLine
- elif self.selection_state is browsertab.SelectionState.line:
+ elif self._selection_state is browsertab.SelectionState.line:
return
else:
act = QWebPage.MoveToStartOfLine
self._widget.triggerPageAction(act)
def move_to_end_of_line(self):
- if self.selection_state is browsertab.SelectionState.normal:
+ if self._selection_state is browsertab.SelectionState.normal:
act = QWebPage.SelectEndOfLine
- elif self.selection_state is browsertab.SelectionState.line:
+ elif self._selection_state is browsertab.SelectionState.line:
return
else:
act = QWebPage.MoveToEndOfLine
self._widget.triggerPageAction(act)
def move_to_start_of_next_block(self, count=1):
- if self.selection_state is not browsertab.SelectionState.none:
+ if self._selection_state is not browsertab.SelectionState.none:
act = [QWebPage.SelectNextLine,
QWebPage.SelectStartOfBlock]
else:
@@ -319,11 +328,11 @@ class WebKitCaret(browsertab.AbstractCaret):
for _ in range(count):
for a in act:
self._widget.triggerPageAction(a)
- if self.selection_state is browsertab.SelectionState.line:
+ if self._selection_state is browsertab.SelectionState.line:
self._select_line_to_end()
def move_to_start_of_prev_block(self, count=1):
- if self.selection_state is not browsertab.SelectionState.none:
+ if self._selection_state is not browsertab.SelectionState.none:
act = [QWebPage.SelectPreviousLine,
QWebPage.SelectStartOfBlock]
else:
@@ -332,11 +341,11 @@ class WebKitCaret(browsertab.AbstractCaret):
for _ in range(count):
for a in act:
self._widget.triggerPageAction(a)
- if self.selection_state is browsertab.SelectionState.line:
+ if self._selection_state is browsertab.SelectionState.line:
self._select_line_to_start()
def move_to_end_of_next_block(self, count=1):
- if self.selection_state is not browsertab.SelectionState.none:
+ if self._selection_state is not browsertab.SelectionState.none:
act = [QWebPage.SelectNextLine,
QWebPage.SelectEndOfBlock]
else:
@@ -345,31 +354,31 @@ class WebKitCaret(browsertab.AbstractCaret):
for _ in range(count):
for a in act:
self._widget.triggerPageAction(a)
- if self.selection_state is browsertab.SelectionState.line:
+ if self._selection_state is browsertab.SelectionState.line:
self._select_line_to_end()
def move_to_end_of_prev_block(self, count=1):
- if self.selection_state is not browsertab.SelectionState.none:
+ if self._selection_state is not browsertab.SelectionState.none:
act = [QWebPage.SelectPreviousLine, QWebPage.SelectEndOfBlock]
else:
act = [QWebPage.MoveToPreviousLine, QWebPage.MoveToEndOfBlock]
for _ in range(count):
for a in act:
self._widget.triggerPageAction(a)
- if self.selection_state is browsertab.SelectionState.line:
+ if self._selection_state is browsertab.SelectionState.line:
self._select_line_to_start()
def move_to_start_of_document(self):
- if self.selection_state is not browsertab.SelectionState.none:
+ if self._selection_state is not browsertab.SelectionState.none:
act = QWebPage.SelectStartOfDocument
else:
act = QWebPage.MoveToStartOfDocument
self._widget.triggerPageAction(act)
- if self.selection_state is browsertab.SelectionState.line:
+ if self._selection_state is browsertab.SelectionState.line:
self._select_line()
def move_to_end_of_document(self):
- if self.selection_state is not browsertab.SelectionState.none:
+ if self._selection_state is not browsertab.SelectionState.none:
act = QWebPage.SelectEndOfDocument
else:
act = QWebPage.MoveToEndOfDocument
@@ -377,16 +386,16 @@ class WebKitCaret(browsertab.AbstractCaret):
def toggle_selection(self, line=False):
if line:
- self.selection_state = browsertab.SelectionState.line
+ self._selection_state = browsertab.SelectionState.line
self._select_line()
self.reverse_selection()
self._select_line()
self.reverse_selection()
- elif self.selection_state is not browsertab.SelectionState.normal:
- self.selection_state = browsertab.SelectionState.normal
+ elif self._selection_state is not browsertab.SelectionState.normal:
+ self._selection_state = browsertab.SelectionState.normal
else:
- self.selection_state = browsertab.SelectionState.none
- self.selection_toggled.emit(self.selection_state)
+ self._selection_state = browsertab.SelectionState.none
+ self.selection_toggled.emit(self._selection_state)
def drop_selection(self):
self._widget.triggerPageAction(QWebPage.MoveToNextChar)