def __init__(self, name=None, plugin=None, parent=None, options=DEFAULT_OPTIONS): super().__init__(name, plugin, parent=parent, options=options) self._is_running = False self.home_url = None self.server = None # Widgets self.label = QLabel(_("Package:")) self.url_combo = UrlComboBox(self) self.webview = WebView(self, handle_links=self.get_option('handle_links')) self.find_widget = FindReplace(self) # Setup self.find_widget.set_editor(self.webview) self.find_widget.hide() self.url_combo.setMaxCount(self.get_option('max_history_entries')) tip = _('Write a package name here') self.url_combo.lineEdit().setPlaceholderText(tip) self.url_combo.lineEdit().setToolTip(tip) self.webview.setup() self.webview.set_zoom_factor(self.get_option('zoom_factor')) # Layout spacing = 10 layout = QVBoxLayout() layout.addWidget(self.webview) layout.addSpacing(spacing) layout.addWidget(self.find_widget) layout.addSpacing(int(spacing / 2)) self.setLayout(layout) # Signals self.url_combo.valid.connect( lambda x: self._handle_url_combo_activation()) self.webview.loadStarted.connect(self._start) self.webview.loadFinished.connect(self._finish) self.webview.titleChanged.connect(self.setWindowTitle) self.webview.urlChanged.connect(self._change_url) if not WEBENGINE: self.webview.iconChanged.connect(self._handle_icon_change)
def __init__(self, name=None, plugin=None, parent=None): super().__init__(name, plugin, parent=parent) self._is_running = False self.home_url = None self.server = None # Widgets self.label = QLabel(_("Package:")) self.label.ID = PydocBrowserToolbarItems.PackageLabel self.url_combo = UrlComboBox(self, id_=PydocBrowserToolbarItems.UrlCombo) # Setup web view frame self.webview = FrameWebView(self, handle_links=self.get_conf('handle_links')) self.webview.setup() self.webview.set_zoom_factor(self.get_conf('zoom_factor')) self.webview.loadStarted.connect(self._start) self.webview.loadFinished.connect(self._finish) self.webview.titleChanged.connect(self.setWindowTitle) self.webview.urlChanged.connect(self._change_url) if not WEBENGINE: self.webview.iconChanged.connect(self._handle_icon_change) # Setup find widget self.find_widget = FindReplace(self) self.find_widget.set_editor(self.webview) self.find_widget.hide() self.url_combo.setMaxCount(self.get_conf('max_history_entries')) tip = _('Write a package name here, e.g. pandas') self.url_combo.lineEdit().setPlaceholderText(tip) self.url_combo.lineEdit().setToolTip(tip) self.url_combo.valid.connect( lambda x: self._handle_url_combo_activation()) # Layout layout = QVBoxLayout() layout.addWidget(self.webview) layout.addSpacing(1) layout.addWidget(self.find_widget) self.setLayout(layout)
def __init__(self, parent=None, options_button=None, handle_links=True): QWidget.__init__(self, parent) self.home_url = None self.webview = WebView(self, handle_links=handle_links) self.webview.setup() self.webview.loadFinished.connect(self.load_finished) self.webview.titleChanged.connect(self.setWindowTitle) self.webview.urlChanged.connect(self.url_changed) home_button = create_toolbutton(self, icon=ima.icon('home'), tip=_("Home"), triggered=self.go_home) zoom_out_button = action2button(self.webview.zoom_out_action) zoom_in_button = action2button(self.webview.zoom_in_action) def pageact2btn(prop, icon=None): return action2button(self.webview.pageAction(prop), parent=self.webview, icon=icon) refresh_button = pageact2btn(QWebEnginePage.Reload, icon=ima.icon('refresh')) stop_button = pageact2btn(QWebEnginePage.Stop, icon=ima.icon('stop')) previous_button = pageact2btn(QWebEnginePage.Back, icon=ima.icon('previous')) next_button = pageact2btn(QWebEnginePage.Forward, icon=ima.icon('next')) stop_button.setEnabled(False) self.webview.loadStarted.connect(lambda: stop_button.setEnabled(True)) self.webview.loadFinished.connect( lambda: stop_button.setEnabled(False)) progressbar = QProgressBar(self) progressbar.setTextVisible(False) progressbar.hide() self.webview.loadStarted.connect(progressbar.show) self.webview.loadProgress.connect(progressbar.setValue) self.webview.loadFinished.connect(lambda _state: progressbar.hide()) label = QLabel(self.get_label()) self.url_combo = UrlComboBox(self) self.url_combo.valid.connect(self.url_combo_activated) if not WEBENGINE: self.webview.iconChanged.connect(self.icon_changed) self.find_widget = FindReplace(self) self.find_widget.set_editor(self.webview) self.find_widget.hide() find_button = create_toolbutton(self, icon=ima.icon('find'), tip=_("Find text"), toggled=self.toggle_find_widget) self.find_widget.visibility_changed.connect(find_button.setChecked) hlayout = QHBoxLayout() for widget in (previous_button, next_button, home_button, find_button, label, self.url_combo, zoom_out_button, zoom_in_button, refresh_button, progressbar, stop_button): hlayout.addWidget(widget) if options_button: hlayout.addWidget(options_button) layout = create_plugin_layout(hlayout) layout.addWidget(self.webview) layout.addWidget(self.find_widget) self.setLayout(layout)