From 3a2072075af39278529ff9d1201be3bcaadfb349 Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Tue, 24 Mar 2020 08:15:24 +0100 Subject: TabbedBrowser example: Fix most flake8 warnings Fix indentation, shorten lines where possible. Fix documentation URL. Amends 90c1c767095e583d0315e87c0592597020858246. Change-Id: I9b61cb27c7c336b706b418d4cd1ed1d3b80c7be3 Reviewed-by: Cristian Maureira-Fredes --- .../tabbedbrowser/bookmarkwidget.py | 31 ++++-- .../tabbedbrowser/browsertabwidget.py | 8 +- .../tabbedbrowser/downloadwidget.py | 9 +- .../webenginewidgets/tabbedbrowser/findtoolbar.py | 10 +- .../tabbedbrowser/historywindow.py | 2 +- examples/webenginewidgets/tabbedbrowser/main.py | 108 +++++++++++---------- .../tabbedbrowser/webengineview.py | 12 ++- 7 files changed, 103 insertions(+), 77 deletions(-) diff --git a/examples/webenginewidgets/tabbedbrowser/bookmarkwidget.py b/examples/webenginewidgets/tabbedbrowser/bookmarkwidget.py index e0901d64f..612c682cb 100644 --- a/examples/webenginewidgets/tabbedbrowser/bookmarkwidget.py +++ b/examples/webenginewidgets/tabbedbrowser/bookmarkwidget.py @@ -38,7 +38,9 @@ ## ############################################################################# -import json, os, warnings +import json +import os +import warnings from PySide2 import QtCore from PySide2.QtCore import QDir, QFileInfo, QStandardPaths, Qt, QUrl @@ -53,24 +55,28 @@ _default_bookmarks = [ ['Tool Bar'], ['http://qt.io', 'Qt', ':/qt-project.org/qmessagebox/images/qtlogo-64.png'], ['https://download.qt.io/snapshots/ci/pyside/', 'Downloads'], - ['https://doc-snapshots.qt.io/qtforpython/', 'Documentation'], + ['https://doc.qt.io/qtforpython/', 'Documentation'], ['https://bugreports.qt.io/projects/PYSIDE/', 'Bug Reports'], ['https://www.python.org/', 'Python', None], ['https://wiki.qt.io/PySide2', 'Qt for Python', None], ['Other Bookmarks'] ] + def _config_dir(): return '{}/QtForPythonBrowser'.format( QStandardPaths.writableLocation(QStandardPaths.ConfigLocation)) + _bookmark_file = 'bookmarks.json' + def _create_folder_item(title): result = QStandardItem(title) result.setFlags(Qt.ItemIsEnabled | Qt.ItemIsSelectable) return result + def _create_item(url, title, icon): result = QStandardItem(title) result.setFlags(Qt.ItemIsEnabled | Qt.ItemIsSelectable) @@ -79,6 +85,7 @@ def _create_item(url, title, icon): result.setIcon(icon) return result + # Create the model from an array of arrays def _create_model(parent, serialized_bookmarks): result = QStandardItemModel(0, 1, parent) @@ -94,6 +101,7 @@ def _create_model(parent, serialized_bookmarks): last_folder_item.appendRow(_create_item(url, title, icon)) return result + # Serialize model into an array of arrays, writing out the icons # into .png files under directory in the process def _serialize_model(model, directory): @@ -111,12 +119,14 @@ def _serialize_model(model, directory): icon_sizes = icon.availableSizes() largest_size = icon_sizes[len(icon_sizes) - 1] icon_file_name = '{}/icon{:02}_{:02}_{}.png'.format(directory, - f, i, largest_size.width()) + f, i, + largest_size.width()) icon.pixmap(largest_size).save(icon_file_name, 'PNG') entry.append(icon_file_name) result.append(entry) return result + # Bookmarks as a tree view to be used in a dock widget with # functionality to persist and populate tool bars and menus. class BookmarkWidget(QTreeView): @@ -187,7 +197,8 @@ class BookmarkWidget(QTreeView): action.setData(url) action.setVisible(True) else: - action = target_object.addAction(icon, BookmarkWidget.short_title(title)) + short_title = BookmarkWidget.short_title(title) + action = target_object.addAction(icon, short_title) action.setToolTip(title) action.setData(url) action.triggered.connect(self._action_activated) @@ -206,7 +217,7 @@ class BookmarkWidget(QTreeView): index = self.currentIndex() if index.isValid(): item = self._model.itemFromIndex(index) - if item.parent(): # exclude top level items + if item.parent(): # exclude top level items return item return None @@ -224,9 +235,9 @@ class BookmarkWidget(QTreeView): self._remove_item(current_item) def _remove_item(self, item): - button = QMessageBox.question(self, "Remove", - "Would you like to remove \"{}\"?".format(item.text()), - QMessageBox.Yes | QMessageBox.No) + message = "Would you like to remove \"{}\"?".format(item.text()) + button = QMessageBox.question(self, "Remove", message, + QMessageBox.Yes | QMessageBox.No) if button == QMessageBox.Yes: item.parent().removeRow(item.row()) @@ -246,11 +257,11 @@ class BookmarkWidget(QTreeView): bookmark_file_name = os.path.join(native_dir_path, _bookmark_file) print('Writing {}...'.format(bookmark_file_name)) with open(bookmark_file_name, 'w') as bookmark_file: - json.dump(serialized_model, bookmark_file, indent = 4) + json.dump(serialized_model, bookmark_file, indent=4) def _read_bookmarks(self): bookmark_file_name = os.path.join(QDir.toNativeSeparators(_config_dir()), - _bookmark_file) + _bookmark_file) if os.path.exists(bookmark_file_name): print('Reading {}...'.format(bookmark_file_name)) return json.load(open(bookmark_file_name)) diff --git a/examples/webenginewidgets/tabbedbrowser/browsertabwidget.py b/examples/webenginewidgets/tabbedbrowser/browsertabwidget.py index 1fa3be9d7..8b96b3ddd 100644 --- a/examples/webenginewidgets/tabbedbrowser/browsertabwidget.py +++ b/examples/webenginewidgets/tabbedbrowser/browsertabwidget.py @@ -48,6 +48,7 @@ from PySide2.QtCore import Qt, QUrl from PySide2.QtWidgets import QMenu, QTabBar, QTabWidget from PySide2.QtWebEngineWidgets import QWebEngineDownloadItem, QWebEnginePage + class BrowserTabWidget(QTabWidget): """Enables having several tabs with QWebEngineView.""" @@ -60,7 +61,7 @@ class BrowserTabWidget(QTabWidget): self.setTabsClosable(True) self._window_factory_function = window_factory_function self._webengineviews = [] - self._history_windows = {} # map WebengineView to HistoryWindow + self._history_windows = {} # map WebengineView to HistoryWindow self.currentChanged.connect(self._current_changed) self.tabCloseRequested.connect(self.handle_tab_close_request) self._actions_enabled = {} @@ -74,7 +75,8 @@ class BrowserTabWidget(QTabWidget): def add_browser_tab(self): factory_func = partial(BrowserTabWidget.add_browser_tab, self) - web_engine_view = WebEngineView(factory_func, self._window_factory_function) + web_engine_view = WebEngineView(factory_func, + self._window_factory_function) index = self.count() self._webengineviews.append(web_engine_view) title = 'Tab {}'.format(index + 1) @@ -209,7 +211,7 @@ class BrowserTabWidget(QTabWidget): elif chosen_action == close_other_tabs_action: for t in range(tab_count - 1, -1, -1): if t != index: - self.handle_tab_close_request(t) + self.handle_tab_close_request(t) elif chosen_action == close_tabs_to_the_right_action: for t in range(tab_count - 1, index, -1): self.handle_tab_close_request(t) diff --git a/examples/webenginewidgets/tabbedbrowser/downloadwidget.py b/examples/webenginewidgets/tabbedbrowser/downloadwidget.py index c9f8620e6..a118f6eec 100644 --- a/examples/webenginewidgets/tabbedbrowser/downloadwidget.py +++ b/examples/webenginewidgets/tabbedbrowser/downloadwidget.py @@ -45,6 +45,7 @@ from PySide2.QtGui import QDesktopServices from PySide2.QtWidgets import QMenu, QProgressBar, QStyleFactory from PySide2.QtWebEngineWidgets import QWebEngineDownloadItem + # A QProgressBar with context menu for displaying downloads in a QStatusBar. class DownloadWidget(QProgressBar): """Lets you track progress of a QWebEngineDownloadItem.""" @@ -63,7 +64,8 @@ class DownloadWidget(QProgressBar): description = QFileInfo(path).fileName() description_length = len(description) if description_length > 30: - description = '{}...{}'.format(description[0:10], description[description_length - 10:]) + description = '{}...{}'.format(description[0:10], + description[description_length - 10:]) self.setFormat('{} %p%'.format(description)) self.setOrientation(Qt.Horizontal) self.setMinimum(0) @@ -89,7 +91,7 @@ class DownloadWidget(QProgressBar): def _update_tool_tip(self): path = self._download_item.path() tool_tip = "{}\n{}".format(self._download_item.url().toString(), - QDir.toNativeSeparators(path)) + QDir.toNativeSeparators(path)) total_bytes = self._download_item.total_bytes() if total_bytes > 0: tool_tip += "\n{}K".format(total_bytes / 1024) @@ -136,7 +138,8 @@ class DownloadWidget(QProgressBar): if chosen_action == launch_action: self._launch() elif chosen_action == show_in_folder_action: - DownloadWidget.open_file(QFileInfo(self._download_item.path()).absolutePath()) + path = QFileInfo(self._download_item.path()).absolutePath() + DownloadWidget.open_file(path) elif chosen_action == cancel_action: self._download_item.cancel() elif chosen_action == remove_action: diff --git a/examples/webenginewidgets/tabbedbrowser/findtoolbar.py b/examples/webenginewidgets/tabbedbrowser/findtoolbar.py index b47b01504..3557c2e31 100644 --- a/examples/webenginewidgets/tabbedbrowser/findtoolbar.py +++ b/examples/webenginewidgets/tabbedbrowser/findtoolbar.py @@ -44,6 +44,7 @@ from PySide2.QtGui import QIcon, QKeySequence from PySide2.QtWidgets import QCheckBox, QLineEdit, QToolBar, QToolButton from PySide2.QtWebEngineWidgets import QWebEnginePage + # A Find tool bar (bottom area) class FindToolBar(QToolBar): @@ -59,12 +60,13 @@ class FindToolBar(QToolBar): self.addWidget(self._line_edit) self._previous_button = QToolButton() - self._previous_button.setIcon(QIcon(':/qt-project.org/styles/commonstyle/images/up-32.png')) + style_icons = ':/qt-project.org/styles/commonstyle/images/' + self._previous_button.setIcon(QIcon(style_icons + 'up-32.png')) self._previous_button.clicked.connect(self._find_previous) self.addWidget(self._previous_button) self._next_button = QToolButton() - self._next_button.setIcon(QIcon(':/qt-project.org/styles/commonstyle/images/down-32.png')) + self._next_button.setIcon(QIcon(style_icons + 'down-32.png')) self._next_button.clicked.connect(self._find_next) self.addWidget(self._next_button) @@ -73,7 +75,7 @@ class FindToolBar(QToolBar): self._hideButton = QToolButton() self._hideButton.setShortcut(QKeySequence(Qt.Key_Escape)) - self._hideButton.setIcon(QIcon(':/qt-project.org/styles/macstyle/images/closedock-16.png')) + self._hideButton.setIcon(QIcon(style_icons + 'closedock-16.png')) self._hideButton.clicked.connect(self.hide) self.addWidget(self._hideButton) @@ -81,7 +83,7 @@ class FindToolBar(QToolBar): self._line_edit.setFocus() def _emit_find(self, backward): - needle = self._line_edit.text().strip() + needle = self._line_edit.text().strip() if needle: flags = QWebEnginePage.FindFlags() if self._case_sensitive_checkbox.isChecked(): diff --git a/examples/webenginewidgets/tabbedbrowser/historywindow.py b/examples/webenginewidgets/tabbedbrowser/historywindow.py index 701ee1c85..6ce779743 100644 --- a/examples/webenginewidgets/tabbedbrowser/historywindow.py +++ b/examples/webenginewidgets/tabbedbrowser/historywindow.py @@ -45,7 +45,7 @@ from PySide2.QtCore import Signal, QAbstractTableModel, QModelIndex, Qt, QUrl class HistoryModel(QAbstractTableModel): - def __init__(self, history, parent = None): + def __init__(self, history, parent=None): super(HistoryModel, self).__init__(parent) self._history = history diff --git a/examples/webenginewidgets/tabbedbrowser/main.py b/examples/webenginewidgets/tabbedbrowser/main.py index fe5e2e1c2..8a75cd5e0 100644 --- a/examples/webenginewidgets/tabbedbrowser/main.py +++ b/examples/webenginewidgets/tabbedbrowser/main.py @@ -50,30 +50,35 @@ from webengineview import WebEngineView from PySide2 import QtCore from PySide2.QtCore import Qt, QUrl from PySide2.QtGui import QKeySequence, QIcon -from PySide2.QtWidgets import (QAction, QApplication, - QDockWidget, QLabel, QLineEdit, QMainWindow, QToolBar) +from PySide2.QtWidgets import (QAction, QApplication, QDockWidget, QLabel, + QLineEdit, QMainWindow, QToolBar) from PySide2.QtWebEngineWidgets import QWebEngineDownloadItem, QWebEnginePage main_windows = [] + def create_main_window(): """Creates a MainWindow using 75% of the available screen resolution.""" main_win = MainWindow() main_windows.append(main_win) available_geometry = app.desktop().availableGeometry(main_win) - main_win.resize(available_geometry.width() * 2 / 3, available_geometry.height() * 2 / 3) + main_win.resize(available_geometry.width() * 2 / 3, + available_geometry.height() * 2 / 3) main_win.show() return main_win + def create_main_window_with_browser(): """Creates a MainWindow with a BrowserTabWidget.""" main_win = create_main_window() return main_win.add_browser_tab() + class MainWindow(QMainWindow): """Provides the parent window that includes the BookmarkWidget, BrowserTabWidget, and a DownloadWidget, to offer the complete web browsing experience.""" + def __init__(self): super(MainWindow, self).__init__() @@ -126,33 +131,33 @@ class MainWindow(QMainWindow): def _create_menu(self): file_menu = self.menuBar().addMenu("&File") exit_action = QAction(QIcon.fromTheme("application-exit"), "E&xit", - self, shortcut = "Ctrl+Q", triggered=qApp.quit) + self, shortcut="Ctrl+Q", triggered=qApp.quit) file_menu.addAction(exit_action) navigation_menu = self.menuBar().addMenu("&Navigation") style_icons = ':/qt-project.org/styles/commonstyle/images/' back_action = QAction(QIcon.fromTheme("go-previous", - QIcon(style_icons + 'left-32.png')), - "Back", self, - shortcut = QKeySequence(QKeySequence.Back), - triggered = self._tab_widget.back) + QIcon(style_icons + 'left-32.png')), + "Back", self, + shortcut=QKeySequence(QKeySequence.Back), + triggered=self._tab_widget.back) self._actions[QWebEnginePage.Back] = back_action back_action.setEnabled(False) navigation_menu.addAction(back_action) forward_action = QAction(QIcon.fromTheme("go-next", - QIcon(style_icons + 'right-32.png')), - "Forward", self, - shortcut = QKeySequence(QKeySequence.Forward), - triggered = self._tab_widget.forward) + QIcon(style_icons + 'right-32.png')), + "Forward", self, + shortcut=QKeySequence(QKeySequence.Forward), + triggered=self._tab_widget.forward) forward_action.setEnabled(False) self._actions[QWebEnginePage.Forward] = forward_action navigation_menu.addAction(forward_action) reload_action = QAction(QIcon(style_icons + 'refresh-32.png'), - "Reload", self, - shortcut = QKeySequence(QKeySequence.Refresh), - triggered = self._tab_widget.reload) + "Reload", self, + shortcut=QKeySequence(QKeySequence.Refresh), + triggered=self._tab_widget.reload) self._actions[QWebEnginePage.Reload] = reload_action reload_action.setEnabled(False) navigation_menu.addAction(reload_action) @@ -160,39 +165,39 @@ class MainWindow(QMainWindow): navigation_menu.addSeparator() new_tab_action = QAction("New Tab", self, - shortcut = 'Ctrl+T', - triggered = self.add_browser_tab) + shortcut='Ctrl+T', + triggered=self.add_browser_tab) navigation_menu.addAction(new_tab_action) close_tab_action = QAction("Close Current Tab", self, - shortcut = "Ctrl+W", - triggered = self._close_current_tab) + shortcut="Ctrl+W", + triggered=self._close_current_tab) navigation_menu.addAction(close_tab_action) navigation_menu.addSeparator() history_action = QAction("History...", self, - triggered = self._tab_widget.show_history) + triggered=self._tab_widget.show_history) navigation_menu.addAction(history_action) edit_menu = self.menuBar().addMenu("&Edit") find_action = QAction("Find", self, - shortcut = QKeySequence(QKeySequence.Find), - triggered = self._show_find) + shortcut=QKeySequence(QKeySequence.Find), + triggered=self._show_find) edit_menu.addAction(find_action) edit_menu.addSeparator() undo_action = QAction("Undo", self, - shortcut = QKeySequence(QKeySequence.Undo), - triggered = self._tab_widget.undo) + shortcut=QKeySequence(QKeySequence.Undo), + triggered=self._tab_widget.undo) self._actions[QWebEnginePage.Undo] = undo_action undo_action.setEnabled(False) edit_menu.addAction(undo_action) redo_action = QAction("Redo", self, - shortcut = QKeySequence(QKeySequence.Redo), - triggered = self._tab_widget.redo) + shortcut=QKeySequence(QKeySequence.Redo), + triggered=self._tab_widget.redo) self._actions[QWebEnginePage.Redo] = redo_action redo_action.setEnabled(False) edit_menu.addAction(redo_action) @@ -200,22 +205,22 @@ class MainWindow(QMainWindow): edit_menu.addSeparator() cut_action = QAction("Cut", self, - shortcut = QKeySequence(QKeySequence.Cut), - triggered = self._tab_widget.cut) + shortcut=QKeySequence(QKeySequence.Cut), + triggered=self._tab_widget.cut) self._actions[QWebEnginePage.Cut] = cut_action cut_action.setEnabled(False) edit_menu.addAction(cut_action) copy_action = QAction("Copy", self, - shortcut = QKeySequence(QKeySequence.Copy), - triggered = self._tab_widget.copy) + shortcut=QKeySequence(QKeySequence.Copy), + triggered=self._tab_widget.copy) self._actions[QWebEnginePage.Copy] = copy_action copy_action.setEnabled(False) edit_menu.addAction(copy_action) paste_action = QAction("Paste", self, - shortcut = QKeySequence(QKeySequence.Paste), - triggered = self._tab_widget.paste) + shortcut=QKeySequence(QKeySequence.Paste), + triggered=self._tab_widget.paste) self._actions[QWebEnginePage.Paste] = paste_action paste_action.setEnabled(False) edit_menu.addAction(paste_action) @@ -223,24 +228,24 @@ class MainWindow(QMainWindow): edit_menu.addSeparator() select_all_action = QAction("Select All", self, - shortcut = QKeySequence(QKeySequence.SelectAll), - triggered = self._tab_widget.select_all) + shortcut=QKeySequence(QKeySequence.SelectAll), + triggered=self._tab_widget.select_all) self._actions[QWebEnginePage.SelectAll] = select_all_action select_all_action.setEnabled(False) edit_menu.addAction(select_all_action) self._bookmark_menu = self.menuBar().addMenu("&Bookmarks") add_bookmark_action = QAction("&Add Bookmark", self, - triggered = self._add_bookmark) + triggered=self._add_bookmark) self._bookmark_menu.addAction(add_bookmark_action) add_tool_bar_bookmark_action = QAction("&Add Bookmark to Tool Bar", self, - triggered = self._add_tool_bar_bookmark) + triggered=self._add_tool_bar_bookmark) self._bookmark_menu.addAction(add_tool_bar_bookmark_action) self._bookmark_menu.addSeparator() tools_menu = self.menuBar().addMenu("&Tools") download_action = QAction("Open Downloads", self, - triggered = DownloadWidget.open_download_directory) + triggered=DownloadWidget.open_download_directory) tools_menu.addAction(download_action) window_menu = self.menuBar().addMenu("&Window") @@ -250,26 +255,26 @@ class MainWindow(QMainWindow): window_menu.addSeparator() zoom_in_action = QAction(QIcon.fromTheme("zoom-in"), - "Zoom In", self, - shortcut = QKeySequence(QKeySequence.ZoomIn), - triggered = self._zoom_in) + "Zoom In", self, + shortcut=QKeySequence(QKeySequence.ZoomIn), + triggered=self._zoom_in) window_menu.addAction(zoom_in_action) zoom_out_action = QAction(QIcon.fromTheme("zoom-out"), - "Zoom Out", self, - shortcut = QKeySequence(QKeySequence.ZoomOut), - triggered = self._zoom_out) + "Zoom Out", self, + shortcut=QKeySequence(QKeySequence.ZoomOut), + triggered=self._zoom_out) window_menu.addAction(zoom_out_action) reset_zoom_action = QAction(QIcon.fromTheme("zoom-original"), - "Reset Zoom", self, - shortcut = "Ctrl+0", - triggered = self._reset_zoom) + "Reset Zoom", self, + shortcut="Ctrl+0", + triggered=self._reset_zoom) window_menu.addAction(reset_zoom_action) about_menu = self.menuBar().addMenu("&About") about_action = QAction("About Qt", self, - shortcut = QKeySequence(QKeySequence.HelpContents), - triggered=qApp.aboutQt) + shortcut=QKeySequence(QKeySequence.HelpContents), + triggered=qApp.aboutQt) about_menu.addAction(about_action) def add_browser_tab(self): @@ -348,15 +353,15 @@ class MainWindow(QMainWindow): def _download_requested(self, item): # Remove old downloads before opening a new one for old_download in self.statusBar().children(): - if type(old_download).__name__ == 'download_widget' and \ - old_download.state() != QWebEngineDownloadItem.DownloadInProgress: + if (type(old_download).__name__ == 'download_widget' and + old_download.state() != QWebEngineDownloadItem.DownloadInProgress): self.statusBar().removeWidget(old_download) del old_download item.accept() download_widget = download_widget(item) download_widget.removeRequested.connect(self._remove_download_requested, - Qt.QueuedConnection) + Qt.QueuedConnection) self.statusBar().addWidget(download_widget) def _remove_download_requested(self): @@ -376,6 +381,7 @@ class MainWindow(QMainWindow): def write_bookmarks(self): self._bookmark_widget.write_bookmarks() + if __name__ == '__main__': app = QApplication(sys.argv) main_win = create_main_window() diff --git a/examples/webenginewidgets/tabbedbrowser/webengineview.py b/examples/webenginewidgets/tabbedbrowser/webengineview.py index 3b24df001..81b156f93 100644 --- a/examples/webenginewidgets/tabbedbrowser/webengineview.py +++ b/examples/webenginewidgets/tabbedbrowser/webengineview.py @@ -43,10 +43,11 @@ from PySide2.QtWebEngineWidgets import QWebEnginePage, QWebEngineView from PySide2 import QtCore _web_actions = [QWebEnginePage.Back, QWebEnginePage.Forward, - QWebEnginePage.Reload, - QWebEnginePage.Undo, QWebEnginePage.Redo, - QWebEnginePage.Cut, QWebEnginePage.Copy, - QWebEnginePage.Paste, QWebEnginePage.SelectAll] + QWebEnginePage.Reload, + QWebEnginePage.Undo, QWebEnginePage.Redo, + QWebEnginePage.Cut, QWebEnginePage.Copy, + QWebEnginePage.Paste, QWebEnginePage.SelectAll] + class WebEngineView(QWebEngineView): @@ -79,7 +80,8 @@ class WebEngineView(QWebEngineView): return self.page().action(web_action).isEnabled() def createWindow(self, window_type): - if window_type == QWebEnginePage.WebBrowserTab or window_type == QWebEnginePage.WebBrowserBackgroundTab: + if (window_type == QWebEnginePage.WebBrowserTab or + window_type == QWebEnginePage.WebBrowserBackgroundTab): return self._tab_factory_func() return self._window_factory_func() -- cgit v1.2.3