From 97274905829ec22a3a13bf4e8080a271a0237d59 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gonzalo=20Pe=C3=B1a-Castellanos?= Date: Sun, 2 Aug 2015 20:57:30 -0500 Subject: [PATCH 1/3] Insert QWebView inside a QFrame to homogenize the UI --- spyderlib/plugins/inspector.py | 40 ++++++++++++++++++++++++++++++++-- 1 file changed, 38 insertions(+), 2 deletions(-) diff --git a/spyderlib/plugins/inspector.py b/spyderlib/plugins/inspector.py index 24b8cfabea8..f79baddfad2 100644 --- a/spyderlib/plugins/inspector.py +++ b/spyderlib/plugins/inspector.py @@ -10,7 +10,7 @@ from spyderlib.qt.QtGui import (QHBoxLayout, QVBoxLayout, QLabel, QSizePolicy, QMenu, QToolButton, QGroupBox, QFontComboBox, QActionGroup, QFontDialog, QWidget, QComboBox, - QLineEdit, QMessageBox) + QLineEdit, QMessageBox, QFrame) from spyderlib.qt.QtCore import Signal, Slot, QUrl, QThread from spyderlib.qt.QtWebKit import QWebPage import spyderlib.utils.icon_manager as ima @@ -199,6 +199,42 @@ def setup_page(self): self.setLayout(vlayout) +class FrameWebView(QFrame): + """ + Framed QWebView for UI consistency in Spyder. + """ + linkClicked = Signal(QUrl) + + def __init__(self, parent): + QFrame.__init__(self, parent) + + self._webview = WebView(self) + + layout = QHBoxLayout() + layout.addWidget(self._webview) + layout.setContentsMargins(0, 0, 0, 0) + self.setLayout(layout) + + self.setFrameStyle(QFrame.StyledPanel | QFrame.Sunken) + + self._webview.linkClicked.connect(self.linkClicked) + + def set_font(self, font, fixed_font=None): + self._webview.set_font(font, fixed_font=fixed_font) + + def setHtml(self, html_text, base_url): + self._webview.setHtml(html_text, base_url) + + def url(self): + return self._webview.url() + + def load(self, url): + self._webview.load(url) + + def page(self): + return self._webview.page() + + class RichText(QWidget): """ WebView widget with find dialog @@ -206,7 +242,7 @@ class RichText(QWidget): def __init__(self, parent): QWidget.__init__(self, parent) - self.webview = WebView(self) + self.webview = FrameWebView(self) self.find_widget = FindReplace(self) self.find_widget.set_editor(self.webview) self.find_widget.hide() From 7daed79dc4913e594a0ddf3ba3da32356243b154 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gonzalo=20Pe=C3=B1a-Castellanos?= Date: Mon, 3 Aug 2015 12:53:09 -0500 Subject: [PATCH 2/3] Move FramedWebView to widgets/browser.py, clean up code imports --- spyderlib/plugins/inspector.py | 39 ++------------------------- spyderlib/widgets/browser.py | 49 ++++++++++++++++++++++++++++++---- 2 files changed, 46 insertions(+), 42 deletions(-) diff --git a/spyderlib/plugins/inspector.py b/spyderlib/plugins/inspector.py index f79baddfad2..3e36d3dd47a 100644 --- a/spyderlib/plugins/inspector.py +++ b/spyderlib/plugins/inspector.py @@ -10,7 +10,7 @@ from spyderlib.qt.QtGui import (QHBoxLayout, QVBoxLayout, QLabel, QSizePolicy, QMenu, QToolButton, QGroupBox, QFontComboBox, QActionGroup, QFontDialog, QWidget, QComboBox, - QLineEdit, QMessageBox, QFrame) + QLineEdit, QMessageBox) from spyderlib.qt.QtCore import Signal, Slot, QUrl, QThread from spyderlib.qt.QtWebKit import QWebPage import spyderlib.utils.icon_manager as ima @@ -32,7 +32,7 @@ from spyderlib.widgets.comboboxes import EditableComboBox from spyderlib.widgets.sourcecode import codeeditor from spyderlib.widgets.findreplace import FindReplace -from spyderlib.widgets.browser import WebView +from spyderlib.widgets.browser import FrameWebView from spyderlib.widgets.externalshell.pythonshell import ExtPythonShellWidget from spyderlib.plugins import SpyderPluginWidget, PluginConfigPage from spyderlib.py3compat import to_text_string, get_meth_class_inst @@ -199,41 +199,6 @@ def setup_page(self): self.setLayout(vlayout) -class FrameWebView(QFrame): - """ - Framed QWebView for UI consistency in Spyder. - """ - linkClicked = Signal(QUrl) - - def __init__(self, parent): - QFrame.__init__(self, parent) - - self._webview = WebView(self) - - layout = QHBoxLayout() - layout.addWidget(self._webview) - layout.setContentsMargins(0, 0, 0, 0) - self.setLayout(layout) - - self.setFrameStyle(QFrame.StyledPanel | QFrame.Sunken) - - self._webview.linkClicked.connect(self.linkClicked) - - def set_font(self, font, fixed_font=None): - self._webview.set_font(font, fixed_font=fixed_font) - - def setHtml(self, html_text, base_url): - self._webview.setHtml(html_text, base_url) - - def url(self): - return self._webview.url() - - def load(self, url): - self._webview.load(url) - - def page(self): - return self._webview.page() - class RichText(QWidget): """ diff --git a/spyderlib/widgets/browser.py b/spyderlib/widgets/browser.py index 0c0d5a57436..354313191f2 100644 --- a/spyderlib/widgets/browser.py +++ b/spyderlib/widgets/browser.py @@ -6,17 +6,20 @@ """Simple web browser widget""" +import sys + + +from spyderlib.qt.QtCore import QUrl, Slot, Signal from spyderlib.qt.QtGui import (QHBoxLayout, QWidget, QVBoxLayout, - QProgressBar, QLabel, QMenu) + QProgressBar, QLabel, QMenu, QFrame) from spyderlib.qt.QtWebKit import QWebView, QWebPage, QWebSettings -from spyderlib.qt.QtCore import QUrl, Slot -import spyderlib.utils.icon_manager as ima -import sys + # Local imports +from spyderlib.baseconfig import DEV, _ from spyderlib.utils.qthelpers import (create_action, add_actions, create_toolbutton, action2button) -from spyderlib.baseconfig import DEV, _ +from spyderlib.utils import icon_manager as ima from spyderlib.widgets.comboboxes import UrlComboBox from spyderlib.widgets.findreplace import FindReplace from spyderlib.py3compat import to_text_string, is_text_string @@ -239,6 +242,42 @@ def toggle_find_widget(self, state): self.find_widget.hide() +class FrameWebView(QFrame): + """ + Framed QWebView for UI consistency in Spyder. + """ + linkClicked = Signal(QUrl) + + def __init__(self, parent): + QFrame.__init__(self, parent) + + self._webview = WebView(self) + + layout = QHBoxLayout() + layout.addWidget(self._webview) + layout.setContentsMargins(0, 0, 0, 0) + self.setLayout(layout) + + self.setFrameStyle(QFrame.StyledPanel | QFrame.Sunken) + + self._webview.linkClicked.connect(self.linkClicked) + + def set_font(self, font, fixed_font=None): + self._webview.set_font(font, fixed_font=fixed_font) + + def setHtml(self, html_text, base_url): + self._webview.setHtml(html_text, base_url) + + def url(self): + return self._webview.url() + + def load(self, url): + self._webview.load(url) + + def page(self): + return self._webview.page() + + def main(): """Run web browser""" from spyderlib.utils.qthelpers import qapplication From 9f7c219211259de2893884c8b4677c82d2df4bfb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gonzalo=20Pe=C3=B1a-Castellanos?= Date: Tue, 4 Aug 2015 08:38:18 -0500 Subject: [PATCH 3/3] Remove redundant blankspaces --- spyderlib/plugins/inspector.py | 1 - spyderlib/widgets/browser.py | 2 -- 2 files changed, 3 deletions(-) diff --git a/spyderlib/plugins/inspector.py b/spyderlib/plugins/inspector.py index 3e36d3dd47a..08b17ee4773 100644 --- a/spyderlib/plugins/inspector.py +++ b/spyderlib/plugins/inspector.py @@ -199,7 +199,6 @@ def setup_page(self): self.setLayout(vlayout) - class RichText(QWidget): """ WebView widget with find dialog diff --git a/spyderlib/widgets/browser.py b/spyderlib/widgets/browser.py index 354313191f2..f3eb90e8edc 100644 --- a/spyderlib/widgets/browser.py +++ b/spyderlib/widgets/browser.py @@ -8,13 +8,11 @@ import sys - from spyderlib.qt.QtCore import QUrl, Slot, Signal from spyderlib.qt.QtGui import (QHBoxLayout, QWidget, QVBoxLayout, QProgressBar, QLabel, QMenu, QFrame) from spyderlib.qt.QtWebKit import QWebView, QWebPage, QWebSettings - # Local imports from spyderlib.baseconfig import DEV, _ from spyderlib.utils.qthelpers import (create_action, add_actions,