Make self._widget private in wrappers

While we need to set it from the outside (from AbstractTab) this still
is not considered public API for the rest of the code, so let's make it
private.
This commit is contained in:
Florian Bruhin 2016-07-04 11:33:15 +02:00
parent 0b88c5d413
commit 94b856c565
3 changed files with 58 additions and 58 deletions

View File

@ -68,7 +68,7 @@ class AbstractSearch(QObject):
def __init__(self, parent=None): def __init__(self, parent=None):
super().__init__(parent) super().__init__(parent)
self.widget = None self._widget = None
self.text = None self.text = None
self._flags = 0 self._flags = 0
@ -107,7 +107,7 @@ class AbstractZoom(QObject):
def __init__(self, win_id, parent=None): def __init__(self, win_id, parent=None):
super().__init__(parent) super().__init__(parent)
self.widget = None self._widget = None
self._win_id = win_id self._win_id = win_id
self._default_zoom_changed = False self._default_zoom_changed = False
self._init_neighborlist() self._init_neighborlist()
@ -191,7 +191,7 @@ class AbstractCaret(QObject):
def __init__(self, win_id, parent=None): def __init__(self, win_id, parent=None):
super().__init__(parent) super().__init__(parent)
self._win_id = win_id self._win_id = win_id
self.widget = None self._widget = None
self.selection_enabled = False self.selection_enabled = False
mode_manager = objreg.get('mode-manager', scope='window', mode_manager = objreg.get('mode-manager', scope='window',
window=win_id) window=win_id)
@ -270,7 +270,7 @@ class AbstractScroller(QObject):
def __init__(self, parent=None): def __init__(self, parent=None):
super().__init__(parent) super().__init__(parent)
self.widget = None self._widget = None
def pos_px(self): def pos_px(self):
raise NotImplementedError raise NotImplementedError
@ -406,10 +406,10 @@ class AbstractTab(QWidget):
self._layout = WrapperLayout(widget, self) self._layout = WrapperLayout(widget, self)
self._widget = widget self._widget = widget
self.history.history = widget.history() self.history.history = widget.history()
self.scroll.widget = widget self.scroll._widget = widget
self.caret.widget = widget self.caret._widget = widget
self.zoom.widget = widget self.zoom._widget = widget
self.search.widget = widget self.search._widget = widget
widget.mouse_wheel_zoom.connect(self.zoom.on_mouse_wheel_zoom) widget.mouse_wheel_zoom.connect(self.zoom.on_mouse_wheel_zoom)
widget.setParent(self) widget.setParent(self)

View File

@ -43,12 +43,12 @@ class WebEngineCaret(tab.AbstractCaret):
## TODO ## TODO
def has_selection(self): def has_selection(self):
return self.widget.hasSelection() return self._widget.hasSelection()
def selection(self, html=False): def selection(self, html=False):
if html: if html:
raise NotImplementedError raise NotImplementedError
return self.widget.selectedText() return self._widget.selectedText()
class WebEngineScroller(tab.AbstractScroller): class WebEngineScroller(tab.AbstractScroller):
@ -92,10 +92,10 @@ class WebEngineHistory(tab.AbstractHistory):
class WebEngineZoom(tab.AbstractZoom): class WebEngineZoom(tab.AbstractZoom):
def _set_factor_internal(self, factor): def _set_factor_internal(self, factor):
self.widget.setZoomFactor(factor) self._widget.setZoomFactor(factor)
def factor(self): def factor(self):
return self.widget.zoomFactor() return self._widget.zoomFactor()
class WebEngineViewTab(tab.AbstractTab): class WebEngineViewTab(tab.AbstractTab):

View File

@ -35,8 +35,8 @@ class WebViewSearch(tab.AbstractSearch):
def clear(self): def clear(self):
# We first clear the marked text, then the highlights # We first clear the marked text, then the highlights
self.widget.search('', 0) self._widget.search('', 0)
self.widget.search('', QWebPage.HighlightAllOccurrences) self._widget.search('', QWebPage.HighlightAllOccurrences)
def search(self, text, *, ignore_case=False, wrap=False, reverse=False): def search(self, text, *, ignore_case=False, wrap=False, reverse=False):
flags = 0 flags = 0
@ -51,13 +51,13 @@ class WebViewSearch(tab.AbstractSearch):
flags |= QWebPage.FindBackward flags |= QWebPage.FindBackward
# We actually search *twice* - once to highlight everything, then again # We actually search *twice* - once to highlight everything, then again
# to get a mark so we can navigate. # to get a mark so we can navigate.
self.widget.search(text, flags) self._widget.search(text, flags)
self.widget.search(text, flags | QWebPage.HighlightAllOccurrences) self._widget.search(text, flags | QWebPage.HighlightAllOccurrences)
self.text = text self.text = text
self._flags = flags self._flags = flags
def next_result(self): def next_result(self):
self.widget.search(self.text, self._flags) self._widget.search(self.text, self._flags)
def prev_result(self): def prev_result(self):
# The int() here serves as a QFlags constructor to create a copy of the # The int() here serves as a QFlags constructor to create a copy of the
@ -68,7 +68,7 @@ class WebViewSearch(tab.AbstractSearch):
flags &= ~QWebPage.FindBackward flags &= ~QWebPage.FindBackward
else: else:
flags |= QWebPage.FindBackward flags |= QWebPage.FindBackward
self.widget.search(self.text, flags) self._widget.search(self.text, flags)
class WebViewCaret(tab.AbstractCaret): class WebViewCaret(tab.AbstractCaret):
@ -78,15 +78,15 @@ class WebViewCaret(tab.AbstractCaret):
if mode != usertypes.KeyMode.caret: if mode != usertypes.KeyMode.caret:
return return
settings = self.widget.settings() settings = self._widget.settings()
settings.setAttribute(QWebSettings.CaretBrowsingEnabled, True) settings.setAttribute(QWebSettings.CaretBrowsingEnabled, True)
self.selection_enabled = bool(self.selection()) self.selection_enabled = bool(self.selection())
if self.widget.isVisible(): if self._widget.isVisible():
# Sometimes the caret isn't immediately visible, but unfocusing # Sometimes the caret isn't immediately visible, but unfocusing
# and refocusing it fixes that. # and refocusing it fixes that.
self.widget.clearFocus() self._widget.clearFocus()
self.widget.setFocus(Qt.OtherFocusReason) self._widget.setFocus(Qt.OtherFocusReason)
# Move the caret to the first element in the viewport if there # Move the caret to the first element in the viewport if there
# isn't any text which is already selected. # isn't any text which is already selected.
@ -94,16 +94,16 @@ class WebViewCaret(tab.AbstractCaret):
# Note: We can't use hasSelection() here, as that's always # Note: We can't use hasSelection() here, as that's always
# true in caret mode. # true in caret mode.
if not self.selection(): if not self.selection():
self.widget.page().currentFrame().evaluateJavaScript( self._widget.page().currentFrame().evaluateJavaScript(
utils.read_file('javascript/position_caret.js')) utils.read_file('javascript/position_caret.js'))
@pyqtSlot(usertypes.KeyMode) @pyqtSlot(usertypes.KeyMode)
def on_mode_left(self, mode): def on_mode_left(self, mode):
settings = self.widget.settings() settings = self._widget.settings()
if settings.testAttribute(QWebSettings.CaretBrowsingEnabled): if settings.testAttribute(QWebSettings.CaretBrowsingEnabled):
if self.selection_enabled and self.widget.hasSelection(): if self.selection_enabled and self._widget.hasSelection():
# Remove selection if it exists # Remove selection if it exists
self.widget.triggerPageAction(QWebPage.MoveToNextChar) self._widget.triggerPageAction(QWebPage.MoveToNextChar)
settings.setAttribute(QWebSettings.CaretBrowsingEnabled, False) settings.setAttribute(QWebSettings.CaretBrowsingEnabled, False)
self.selection_enabled = False self.selection_enabled = False
@ -113,7 +113,7 @@ class WebViewCaret(tab.AbstractCaret):
else: else:
act = QWebPage.SelectNextLine act = QWebPage.SelectNextLine
for _ in range(count): for _ in range(count):
self.widget.triggerPageAction(act) self._widget.triggerPageAction(act)
def move_to_prev_line(self, count=1): def move_to_prev_line(self, count=1):
if not self.selection_enabled: if not self.selection_enabled:
@ -121,7 +121,7 @@ class WebViewCaret(tab.AbstractCaret):
else: else:
act = QWebPage.SelectPreviousLine act = QWebPage.SelectPreviousLine
for _ in range(count): for _ in range(count):
self.widget.triggerPageAction(act) self._widget.triggerPageAction(act)
def move_to_next_char(self, count=1): def move_to_next_char(self, count=1):
if not self.selection_enabled: if not self.selection_enabled:
@ -129,7 +129,7 @@ class WebViewCaret(tab.AbstractCaret):
else: else:
act = QWebPage.SelectNextChar act = QWebPage.SelectNextChar
for _ in range(count): for _ in range(count):
self.widget.triggerPageAction(act) self._widget.triggerPageAction(act)
def move_to_prev_char(self, count=1): def move_to_prev_char(self, count=1):
if not self.selection_enabled: if not self.selection_enabled:
@ -137,7 +137,7 @@ class WebViewCaret(tab.AbstractCaret):
else: else:
act = QWebPage.SelectPreviousChar act = QWebPage.SelectPreviousChar
for _ in range(count): for _ in range(count):
self.widget.triggerPageAction(act) self._widget.triggerPageAction(act)
def move_to_end_of_word(self, count=1): def move_to_end_of_word(self, count=1):
if not self.selection_enabled: if not self.selection_enabled:
@ -150,7 +150,7 @@ class WebViewCaret(tab.AbstractCaret):
act.append(QWebPage.SelectPreviousChar) act.append(QWebPage.SelectPreviousChar)
for _ in range(count): for _ in range(count):
for a in act: for a in act:
self.widget.triggerPageAction(a) self._widget.triggerPageAction(a)
def move_to_next_word(self, count=1): def move_to_next_word(self, count=1):
if not self.selection_enabled: if not self.selection_enabled:
@ -163,7 +163,7 @@ class WebViewCaret(tab.AbstractCaret):
act.append(QWebPage.SelectNextChar) act.append(QWebPage.SelectNextChar)
for _ in range(count): for _ in range(count):
for a in act: for a in act:
self.widget.triggerPageAction(a) self._widget.triggerPageAction(a)
def move_to_prev_word(self, count=1): def move_to_prev_word(self, count=1):
if not self.selection_enabled: if not self.selection_enabled:
@ -171,21 +171,21 @@ class WebViewCaret(tab.AbstractCaret):
else: else:
act = QWebPage.SelectPreviousWord act = QWebPage.SelectPreviousWord
for _ in range(count): for _ in range(count):
self.widget.triggerPageAction(act) self._widget.triggerPageAction(act)
def move_to_start_of_line(self): def move_to_start_of_line(self):
if not self.selection_enabled: if not self.selection_enabled:
act = QWebPage.MoveToStartOfLine act = QWebPage.MoveToStartOfLine
else: else:
act = QWebPage.SelectStartOfLine act = QWebPage.SelectStartOfLine
self.widget.triggerPageAction(act) self._widget.triggerPageAction(act)
def move_to_end_of_line(self): def move_to_end_of_line(self):
if not self.selection_enabled: if not self.selection_enabled:
act = QWebPage.MoveToEndOfLine act = QWebPage.MoveToEndOfLine
else: else:
act = QWebPage.SelectEndOfLine act = QWebPage.SelectEndOfLine
self.widget.triggerPageAction(act) self._widget.triggerPageAction(act)
def move_to_start_of_next_block(self, count=1): def move_to_start_of_next_block(self, count=1):
if not self.selection_enabled: if not self.selection_enabled:
@ -196,7 +196,7 @@ class WebViewCaret(tab.AbstractCaret):
QWebPage.SelectStartOfBlock] QWebPage.SelectStartOfBlock]
for _ in range(count): for _ in range(count):
for a in act: for a in act:
self.widget.triggerPageAction(a) self._widget.triggerPageAction(a)
def move_to_start_of_prev_block(self, count=1): def move_to_start_of_prev_block(self, count=1):
if not self.selection_enabled: if not self.selection_enabled:
@ -207,7 +207,7 @@ class WebViewCaret(tab.AbstractCaret):
QWebPage.SelectStartOfBlock] QWebPage.SelectStartOfBlock]
for _ in range(count): for _ in range(count):
for a in act: for a in act:
self.widget.triggerPageAction(a) self._widget.triggerPageAction(a)
def move_to_end_of_next_block(self, count=1): def move_to_end_of_next_block(self, count=1):
if not self.selection_enabled: if not self.selection_enabled:
@ -218,7 +218,7 @@ class WebViewCaret(tab.AbstractCaret):
QWebPage.SelectEndOfBlock] QWebPage.SelectEndOfBlock]
for _ in range(count): for _ in range(count):
for a in act: for a in act:
self.widget.triggerPageAction(a) self._widget.triggerPageAction(a)
def move_to_end_of_prev_block(self, count=1): def move_to_end_of_prev_block(self, count=1):
if not self.selection_enabled: if not self.selection_enabled:
@ -227,21 +227,21 @@ class WebViewCaret(tab.AbstractCaret):
act = [QWebPage.SelectPreviousLine, QWebPage.SelectEndOfBlock] act = [QWebPage.SelectPreviousLine, QWebPage.SelectEndOfBlock]
for _ in range(count): for _ in range(count):
for a in act: for a in act:
self.widget.triggerPageAction(a) self._widget.triggerPageAction(a)
def move_to_start_of_document(self): def move_to_start_of_document(self):
if not self.selection_enabled: if not self.selection_enabled:
act = QWebPage.MoveToStartOfDocument act = QWebPage.MoveToStartOfDocument
else: else:
act = QWebPage.SelectStartOfDocument act = QWebPage.SelectStartOfDocument
self.widget.triggerPageAction(act) self._widget.triggerPageAction(act)
def move_to_end_of_document(self): def move_to_end_of_document(self):
if not self.selection_enabled: if not self.selection_enabled:
act = QWebPage.MoveToEndOfDocument act = QWebPage.MoveToEndOfDocument
else: else:
act = QWebPage.SelectEndOfDocument act = QWebPage.SelectEndOfDocument
self.widget.triggerPageAction(act) self._widget.triggerPageAction(act)
def toggle_selection(self): def toggle_selection(self):
self.selection_enabled = not self.selection_enabled self.selection_enabled = not self.selection_enabled
@ -250,41 +250,41 @@ class WebViewCaret(tab.AbstractCaret):
mainwindow.status.set_mode_active(usertypes.KeyMode.caret, True) mainwindow.status.set_mode_active(usertypes.KeyMode.caret, True)
def drop_selection(self): def drop_selection(self):
self.widget.triggerPageAction(QWebPage.MoveToNextChar) self._widget.triggerPageAction(QWebPage.MoveToNextChar)
def has_selection(self): def has_selection(self):
return self.widget.hasSelection() return self._widget.hasSelection()
def selection(self, html=False): def selection(self, html=False):
if html: if html:
return self.widget.selectedHtml() return self._widget.selectedHtml()
return self.widget.selectedText() return self._widget.selectedText()
class WebViewZoom(tab.AbstractZoom): class WebViewZoom(tab.AbstractZoom):
def _set_factor_internal(self, factor): def _set_factor_internal(self, factor):
self.widget.setZoomFactor(factor) self._widget.setZoomFactor(factor)
def factor(self): def factor(self):
return self.widget.zoomFactor() return self._widget.zoomFactor()
class WebViewScroller(tab.AbstractScroller): class WebViewScroller(tab.AbstractScroller):
def pos_px(self): def pos_px(self):
return self.widget.page().mainFrame().scrollPosition() return self._widget.page().mainFrame().scrollPosition()
def pos_perc(self): def pos_perc(self):
return self.widget.scroll_pos return self._widget.scroll_pos
def to_point(self, point): def to_point(self, point):
self.widget.page().mainFrame().setScrollPosition(point) self._widget.page().mainFrame().setScrollPosition(point)
def delta(self, x=0, y=0): def delta(self, x=0, y=0):
qtutils.check_overflow(x, 'int') qtutils.check_overflow(x, 'int')
qtutils.check_overflow(y, 'int') qtutils.check_overflow(y, 'int')
self.widget.page().mainFrame().scroll(x, y) self._widget.page().mainFrame().scroll(x, y)
def delta_page(self, x=0, y=0): def delta_page(self, x=0, y=0):
if y.is_integer(): if y.is_integer():
@ -298,7 +298,7 @@ class WebViewScroller(tab.AbstractScroller):
y = 0 y = 0
if x == 0 and y == 0: if x == 0 and y == 0:
return return
size = self.widget.page().mainFrame().geometry() size = self._widget.page().mainFrame().geometry()
self.delta(x * size.width(), y * size.height()) self.delta(x * size.width(), y * size.height())
def to_perc(self, x=None, y=None): def to_perc(self, x=None, y=None):
@ -310,28 +310,28 @@ class WebViewScroller(tab.AbstractScroller):
for val, orientation in [(x, Qt.Horizontal), (y, Qt.Vertical)]: for val, orientation in [(x, Qt.Horizontal), (y, Qt.Vertical)]:
if val is not None: if val is not None:
perc = qtutils.check_overflow(val, 'int', fatal=False) perc = qtutils.check_overflow(val, 'int', fatal=False)
frame = self.widget.page().mainFrame() frame = self._widget.page().mainFrame()
m = frame.scrollBarMaximum(orientation) m = frame.scrollBarMaximum(orientation)
if m == 0: if m == 0:
continue continue
frame.setScrollBarValue(orientation, int(m * val / 100)) frame.setScrollBarValue(orientation, int(m * val / 100))
def _key_press(self, key, count=1, getter_name=None, direction=None): def _key_press(self, key, count=1, getter_name=None, direction=None):
frame = self.widget.page().mainFrame() frame = self._widget.page().mainFrame()
press_evt = QKeyEvent(QEvent.KeyPress, key, Qt.NoModifier, 0, 0, 0) press_evt = QKeyEvent(QEvent.KeyPress, key, Qt.NoModifier, 0, 0, 0)
release_evt = QKeyEvent(QEvent.KeyRelease, key, Qt.NoModifier, 0, 0, 0) release_evt = QKeyEvent(QEvent.KeyRelease, key, Qt.NoModifier, 0, 0, 0)
getter = None if getter_name is None else getattr(frame, getter_name) getter = None if getter_name is None else getattr(frame, getter_name)
# FIXME needed? # FIXME needed?
# self.widget.setFocus() # self._widget.setFocus()
for _ in range(count): for _ in range(count):
# Abort scrolling if the minimum/maximum was reached. # Abort scrolling if the minimum/maximum was reached.
if (getter is not None and if (getter is not None and
frame.scrollBarValue(direction) == getter(direction)): frame.scrollBarValue(direction) == getter(direction)):
return return
self.widget.keyPressEvent(press_evt) self._widget.keyPressEvent(press_evt)
self.widget.keyReleaseEvent(release_evt) self._widget.keyReleaseEvent(release_evt)
def up(self, count=1): def up(self, count=1):
self._key_press(Qt.Key_Up, count, 'scrollBarMinimum', Qt.Vertical) self._key_press(Qt.Key_Up, count, 'scrollBarMinimum', Qt.Vertical)
@ -362,7 +362,7 @@ class WebViewScroller(tab.AbstractScroller):
return self.pos_px().y() == 0 return self.pos_px().y() == 0
def at_bottom(self): def at_bottom(self):
frame = self.widget.page().currentFrame() frame = self._widget.page().currentFrame()
return self.pos_px().y() >= frame.scrollBarMaximum(Qt.Vertical) return self.pos_px().y() >= frame.scrollBarMaximum(Qt.Vertical)