diff --git a/hscommon/desktop.py b/hscommon/desktop.py index 8a0f6309..96e33839 100644 --- a/hscommon/desktop.py +++ b/hscommon/desktop.py @@ -68,7 +68,7 @@ except ImportError: try: from PyQt5.QtCore import QUrl, QStandardPaths from PyQt5.QtGui import QDesktopServices - from qtlib.util import getAppData + from qtlib.util import get_appdata from core.util import executable_folder from hscommon.plat import ISWINDOWS, ISOSX import subprocess @@ -95,7 +95,7 @@ except ImportError: else: folder = QStandardPaths.standardLocations(QStandardPaths.CacheLocation)[0] else: - folder = getAppData(portable) + folder = get_appdata(portable) return folder except ImportError: diff --git a/qt/app.py b/qt/app.py index 44c8955a..cfffb233 100644 --- a/qt/app.py +++ b/qt/app.py @@ -16,7 +16,7 @@ from hscommon import desktop from qtlib.about_box import AboutBox from qtlib.recent import Recent -from qtlib.util import createActions +from qtlib.util import create_actions from qtlib.progress_window import ProgressWindow from core.app import AppMode, DupeGuru as DupeGuruModel @@ -152,7 +152,7 @@ class DupeGuru(QObject): self.openDebugLogTriggered, ), ] - createActions(ACTIONS, self) + create_actions(ACTIONS, self) def _update_options(self): self.model.options["mix_file_kind"] = self.prefs.mix_file_kind @@ -314,8 +314,8 @@ class DupeGuru(QObject): self.main_window.setCurrentIndex(index) def openDebugLogTriggered(self): - debugLogPath = op.join(self.model.appdata, "debug.log") - desktop.open_path(debugLogPath) + debug_log_path = op.join(self.model.appdata, "debug.log") + desktop.open_path(debug_log_path) def preferencesTriggered(self): preferences_dialog = self._get_preferences_dialog_class()( diff --git a/qt/directories_dialog.py b/qt/directories_dialog.py index 49104369..efa7ed50 100644 --- a/qt/directories_dialog.py +++ b/qt/directories_dialog.py @@ -28,7 +28,7 @@ from hscommon.trans import trget from core.app import AppMode from qtlib.radio_box import RadioBox from qtlib.recent import Recent -from qtlib.util import moveToScreenCenter, createActions +from qtlib.util import move_to_screen_center, create_actions from . import platform from .directories_model import DirectoriesModel, DirectoriesDelegate @@ -93,7 +93,7 @@ class DirectoriesDialog(QMainWindow): ("actionLoadDirectories", "", "", tr("Load Directories..."), self.loadDirectoriesTriggered), ("actionSaveDirectories", "", "", tr("Save Directories..."), self.saveDirectoriesTriggered), ] - createActions(ACTIONS, self) + create_actions(ACTIONS, self) if self.app.use_tabs: # Keep track of actions which should only be accessible from this window self.specific_actions.add(self.actionLoadDirectories) @@ -206,8 +206,8 @@ class DirectoriesDialog(QMainWindow): self.addFolderButton = QPushButton(self.centralwidget) self.addFolderButton.setIcon(QIcon(QPixmap(":/plus"))) self.horizontalLayout.addWidget(self.addFolderButton) - spacerItem1 = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) - self.horizontalLayout.addItem(spacerItem1) + spacer_item = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) + self.horizontalLayout.addItem(spacer_item) self.loadResultsButton = QPushButton(self.centralwidget) self.loadResultsButton.setText(tr("Load Results")) self.horizontalLayout.addWidget(self.loadResultsButton) @@ -224,7 +224,7 @@ class DirectoriesDialog(QMainWindow): if self.app.prefs.directoriesWindowRect is not None: self.setGeometry(self.app.prefs.directoriesWindowRect) else: - moveToScreenCenter(self) + move_to_screen_center(self) def _setupColumns(self): header = self.treeView.header() diff --git a/qt/directories_model.py b/qt/directories_model.py index fac95f0a..b9dd2880 100644 --- a/qt/directories_model.py +++ b/qt/directories_model.py @@ -104,12 +104,12 @@ class DirectoriesModel(TreeModel): return QBrush(Qt.red) return None - def dropMimeData(self, mimeData, action, row, column, parentIndex): + def dropMimeData(self, mime_data, action, row, column, parent_index): # the data in mimeData is urlencoded **in utf-8**!!! What we do is to decode, the mime data # with 'ascii', which works since it's urlencoded. Then, we pass that to urllib. - if not mimeData.hasFormat("text/uri-list"): + if not mime_data.hasFormat("text/uri-list"): return False - data = bytes(mimeData.data("text/uri-list")).decode("ascii") + data = bytes(mime_data.data("text/uri-list")).decode("ascii") unquoted = urllib.parse.unquote(data) urls = unquoted.split("\r\n") paths = [QUrl(url).toLocalFile() for url in urls if url] @@ -128,9 +128,8 @@ class DirectoriesModel(TreeModel): return result def headerData(self, section, orientation, role): - if orientation == Qt.Horizontal: - if role == Qt.DisplayRole and section < len(HEADERS): - return HEADERS[section] + if orientation == Qt.Horizontal and role == Qt.DisplayRole and section < len(HEADERS): + return HEADERS[section] return None def mimeTypes(self): @@ -151,8 +150,8 @@ class DirectoriesModel(TreeModel): # --- Events def selectionChanged(self, selected, deselected): - newNodes = [modelIndex.internalPointer().ref for modelIndex in self.view.selectionModel().selectedRows()] - self.model.selected_nodes = newNodes + new_nodes = [modelIndex.internalPointer().ref for modelIndex in self.view.selectionModel().selectedRows()] + self.model.selected_nodes = new_nodes # --- Signals foldersAdded = pyqtSignal(list) diff --git a/qt/exclude_list_table.py b/qt/exclude_list_table.py index b14b2ae0..ba8947aa 100644 --- a/qt/exclude_list_table.py +++ b/qt/exclude_list_table.py @@ -25,7 +25,6 @@ class ExcludeListTable(Table): view.setFont(font) fm = QFontMetrics(font) view.verticalHeader().setDefaultSectionSize(fm.height() + 2) - # app.willSavePrefs.connect(self.appWillSavePrefs) def _getData(self, row, column, role): if column.name == "marked": @@ -43,9 +42,8 @@ class ExcludeListTable(Table): elif role == Qt.BackgroundRole and column.name == "regex": if row.highlight: return QColor(10, 200, 10) # green - elif role == Qt.EditRole: - if column.name == "regex": - return row.data[column.name] + elif role == Qt.EditRole and column.name == "regex": + return row.data[column.name] return None def _getFlags(self, row, column): @@ -62,15 +60,6 @@ class ExcludeListTable(Table): if column.name == "marked": row.marked = bool(value) return True - elif role == Qt.EditRole: - if column.name == "regex": - return self.model.rename_selected(value) + elif role == Qt.EditRole and column.name == "regex": + return self.model.rename_selected(value) return False - - # def sort(self, column, order): - # column = self.model.COLUMNS[column] - # self.model.sort(column.name, order == Qt.AscendingOrder) - - # # --- Events - # def appWillSavePrefs(self): - # self.model.columns.save_columns() diff --git a/qt/ignore_list_dialog.py b/qt/ignore_list_dialog.py index fbb54081..62fc2137 100644 --- a/qt/ignore_list_dialog.py +++ b/qt/ignore_list_dialog.py @@ -16,7 +16,7 @@ from PyQt5.QtWidgets import ( ) from hscommon.trans import trget -from qtlib.util import horizontalWrap +from qtlib.util import horizontal_wrap from .ignore_list_table import IgnoreListTable tr = trget("ui") @@ -56,7 +56,7 @@ class IgnoreListDialog(QDialog): self.clearButton = QPushButton(tr("Clear")) self.closeButton = QPushButton(tr("Close")) self.verticalLayout.addLayout( - horizontalWrap([self.removeSelectedButton, self.clearButton, None, self.closeButton]) + horizontal_wrap([self.removeSelectedButton, self.clearButton, None, self.closeButton]) ) # --- model --> view diff --git a/qt/me/preferences_dialog.py b/qt/me/preferences_dialog.py index 69fa2161..a580c0df 100644 --- a/qt/me/preferences_dialog.py +++ b/qt/me/preferences_dialog.py @@ -37,8 +37,8 @@ class PreferencesDialog(PreferencesDialogBase): self.verticalLayout_4.addWidget(self.label_6) self.horizontalLayout_2 = QHBoxLayout() self.horizontalLayout_2.setSpacing(0) - spacerItem1 = QSpacerItem(15, 20, QSizePolicy.Fixed, QSizePolicy.Minimum) - self.horizontalLayout_2.addItem(spacerItem1) + spacer_item = QSpacerItem(15, 20, QSizePolicy.Fixed, QSizePolicy.Minimum) + self.horizontalLayout_2.addItem(spacer_item) self._setupAddCheckbox("tagTrackBox", tr("Track"), self.widget) self.horizontalLayout_2.addWidget(self.tagTrackBox) self._setupAddCheckbox("tagArtistBox", tr("Artist"), self.widget) diff --git a/qt/pe/details_dialog.py b/qt/pe/details_dialog.py index 9e06f789..b339917d 100644 --- a/qt/pe/details_dialog.py +++ b/qt/pe/details_dialog.py @@ -57,12 +57,10 @@ class DetailsDialog(DetailsDialogBase): self.splitter.setStretchFactor(0, 8) self.tableView = DetailsTable(self) - sizePolicy = QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Maximum) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - self.tableView.setSizePolicy(sizePolicy) - # self.tableView.setMinimumSize(QSize(0, 190)) - # self.tableView.setMaximumSize(QSize(16777215, 190)) + size_policy = QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Maximum) + size_policy.setHorizontalStretch(0) + size_policy.setVerticalStretch(0) + self.tableView.setSizePolicy(size_policy) self.tableView.setAlternatingRowColors(True) self.tableView.setSelectionBehavior(QAbstractItemView.SelectRows) self.tableView.setShowGrid(False) diff --git a/qt/pe/image_viewer.py b/qt/pe/image_viewer.py index c07c9fe3..2b3cb66b 100644 --- a/qt/pe/image_viewer.py +++ b/qt/pe/image_viewer.py @@ -26,8 +26,8 @@ MAX_SCALE = 12.0 MIN_SCALE = 0.1 -def createActions(actions, target): - # actions = [(name, shortcut, icon, desc, func)] +def create_actions(actions, target): + # actions are list of (name, shortcut, icon, desc, func) for name, shortcut, icon, desc, func in actions: action = QAction(target) if icon: @@ -53,7 +53,7 @@ class ViewerToolBar(QToolBar): self.buttonBestFit.setEnabled(False) def setupActions(self, controller): - # actions = [(name, shortcut, icon, desc, func)] + # actions are list of (name, shortcut, icon, desc, func) ACTIONS = [ ( "actionZoomIn", @@ -94,7 +94,7 @@ class ViewerToolBar(QToolBar): ] # TODO try with QWidgetAction() instead in order to have # the popup menu work in the toolbar (if resized below minimum height) - createActions(ACTIONS, self) + create_actions(ACTIONS, self) def createButtons(self): self.buttonImgSwap = QToolButton(self) @@ -112,29 +112,21 @@ class ViewerToolBar(QToolBar): self.buttonZoomIn = QToolButton(self) self.buttonZoomIn.setToolButtonStyle(Qt.ToolButtonIconOnly) self.buttonZoomIn.setDefaultAction(self.actionZoomIn) - # self.buttonZoomIn.setText('ZoomIn') - # self.buttonZoomIn.setIcon(QIcon.fromTheme('zoom-in')) self.buttonZoomIn.setEnabled(False) self.buttonZoomOut = QToolButton(self) self.buttonZoomOut.setToolButtonStyle(Qt.ToolButtonIconOnly) self.buttonZoomOut.setDefaultAction(self.actionZoomOut) - # self.buttonZoomOut.setText('ZoomOut') - # self.buttonZoomOut.setIcon(QIcon.fromTheme('zoom-out')) self.buttonZoomOut.setEnabled(False) self.buttonNormalSize = QToolButton(self) self.buttonNormalSize.setToolButtonStyle(Qt.ToolButtonIconOnly) self.buttonNormalSize.setDefaultAction(self.actionNormalSize) - # self.buttonNormalSize.setText('Normal Size') - # self.buttonNormalSize.setIcon(QIcon.fromTheme('zoom-original')) self.buttonNormalSize.setEnabled(True) self.buttonBestFit = QToolButton(self) self.buttonBestFit.setToolButtonStyle(Qt.ToolButtonIconOnly) self.buttonBestFit.setDefaultAction(self.actionBestFit) - # self.buttonBestFit.setText('BestFit') - # self.buttonBestFit.setIcon(QIcon.fromTheme('zoom-best-fit')) self.buttonBestFit.setEnabled(False) self.addWidget(self.buttonImgSwap) @@ -164,9 +156,9 @@ class BaseController(QObject): self.cached_group = None self.same_dimensions = True - def setupViewers(self, selectedViewer, referenceViewer): - self.selectedViewer = selectedViewer - self.referenceViewer = referenceViewer + def setupViewers(self, selected_viewer, reference_viewer): + self.selectedViewer = selected_viewer + self.referenceViewer = reference_viewer self.selectedViewer.controller = self self.referenceViewer.controller = self self._setupConnections() @@ -187,7 +179,6 @@ class BaseController(QObject): self.selectedPixmap = QPixmap(str(dupe.path)) if ref is dupe: # currently selected file is the actual reference file - # self.same_dimensions = False self.referencePixmap = QPixmap() self.scaledReferencePixmap = QPixmap() self.parent.verticalToolBar.buttonImgSwap.setEnabled(False) @@ -536,14 +527,14 @@ class GraphicsViewController(BaseController): self.referenceViewer.setCenter(self.selectedViewer._centerPoint) @pyqtSlot(float, QPointF) - def onMouseWheel(self, factor, newCenter): + def onMouseWheel(self, factor, new_center): self.current_scale *= factor if self.sender() is self.referenceViewer: self.selectedViewer.scaleBy(factor) - self.selectedViewer.setCenter(newCenter) + self.selectedViewer.setCenter(new_center) else: self.referenceViewer.scaleBy(factor) - self.referenceViewer.setCenter(newCenter) + self.referenceViewer.setCenter(new_center) @pyqtSlot(int) def onVScrollBarChanged(self, value): @@ -613,8 +604,6 @@ class GraphicsViewController(BaseController): if ref.dimensions != dupe.dimensions: self.same_dimensions = False self.parent.verticalToolBar.buttonNormalSize.setEnabled(True) - # self.selectedViewer.setImage(self.selectedPixmap) - # self.referenceViewer.setImage(self.referencePixmap) self.updateButtonsAsPerDimensions(previous_same_dimensions) self.updateBothImages(same_group) @@ -634,7 +623,6 @@ class GraphicsViewController(BaseController): # If not same_group, we need full update""" viewer.setImage(pixmap) if pixmap.isNull(): - # viewer._item = None return if viewer.bestFit: viewer.fitScale() @@ -920,12 +908,12 @@ class ScrollAreaImageViewer(QScrollArea): def __repr__(self): return f"{self._instance_name}" - def toggleScrollBars(self, forceOn=False): + def toggleScrollBars(self, force_on=False): if not self.prefs.details_dialog_viewers_show_scrollbars: return # Ensure that it's off on the first run if self.horizontalScrollBarPolicy() == Qt.ScrollBarAsNeeded: - if forceOn: + if force_on: return self.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOff) self.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff) @@ -998,18 +986,18 @@ class ScrollAreaImageViewer(QScrollArea): if self.bestFit or not self.controller.same_dimensions: event.ignore() return - oldScale = self.current_scale + old_scale = self.current_scale if event.angleDelta().y() > 0: # zoom-in - if oldScale < MAX_SCALE: + if old_scale < MAX_SCALE: self.current_scale *= 1.25 else: - if oldScale > MIN_SCALE: # zoom-out + if old_scale > MIN_SCALE: # zoom-out self.current_scale *= 0.8 - if oldScale == self.current_scale: + if old_scale == self.current_scale: return - deltaToPos = (event.position() / oldScale) - (self.label.pos() / oldScale) - delta = (deltaToPos * self.current_scale) - (deltaToPos * oldScale) + delta_to_pos = (event.position() / old_scale) - (self.label.pos() / old_scale) + delta = (delta_to_pos * self.current_scale) - (delta_to_pos * old_scale) self.mouseWheeled.emit(self.current_scale, delta) def setImage(self, pixmap): @@ -1104,13 +1092,6 @@ class ScrollAreaImageViewer(QScrollArea): # Signal from scrollbars had already synced the values here self.adjustScrollBarsAuto() - # def viewportSizeHint(self): - # return self.viewport().rect().size() - - # def changeEvent(self, event): - # if event.type() == QEvent.EnabledChange: - # print(f"{self} is now {'enabled' if self.isEnabled() else 'disabled'}") - class GraphicsViewViewer(QGraphicsView): """Re-Implementation a full-fledged GraphicsView but is a bit buggy.""" @@ -1148,7 +1129,6 @@ class GraphicsViewViewer(QGraphicsView): self.setScene(self._scene) self._scene.addItem(self._item) self.setDragMode(QGraphicsView.DragMode.ScrollHandDrag) - # self.matrix = QTransform() self._horizontalScrollBar = self.horizontalScrollBar() self._verticalScrollBar = self.verticalScrollBar() self.ignore_signal = False @@ -1184,12 +1164,12 @@ class GraphicsViewViewer(QGraphicsView): self._verticalScrollBar.valueChanged.connect(self.controller.onVScrollBarChanged, Qt.UniqueConnection) self._horizontalScrollBar.valueChanged.connect(self.controller.onHScrollBarChanged, Qt.UniqueConnection) - def toggleScrollBars(self, forceOn=False): + def toggleScrollBars(self, force_on=False): if not self.prefs.details_dialog_viewers_show_scrollbars: return # Ensure that it's off on the first run if self.horizontalScrollBarPolicy() == Qt.ScrollBarAsNeeded: - if forceOn: + if force_on: return self.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOff) self.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff) @@ -1245,9 +1225,9 @@ class GraphicsViewViewer(QGraphicsView): if self.bestFit or MIN_SCALE > self.current_scale > MAX_SCALE or not self.controller.same_dimensions: event.ignore() return - pointBeforeScale = QPointF(self.mapToScene(self.mapFromGlobal(QCursor.pos()))) + point_before_scale = QPointF(self.mapToScene(self.mapFromGlobal(QCursor.pos()))) # Get the original screen centerpoint - screenCenter = QPointF(self.mapToScene(self.rect().center())) + screen_center = QPointF(self.mapToScene(self.rect().center())) if event.angleDelta().y() > 0: factor = self.zoomInFactor else: @@ -1255,13 +1235,13 @@ class GraphicsViewViewer(QGraphicsView): # Avoid scrollbars conflict: self.other_viewer.ignore_signal = True self.scaleBy(factor) - pointAfterScale = QPointF(self.mapToScene(self.mapFromGlobal(QCursor.pos()))) + point_after_scale = QPointF(self.mapToScene(self.mapFromGlobal(QCursor.pos()))) # Get the offset of how the screen moved - offset = pointBeforeScale - pointAfterScale + offset = point_before_scale - point_after_scale # Adjust to the new center for correct zooming - newCenter = screenCenter + offset - self.setCenter(newCenter) - self.mouseWheeled.emit(factor, newCenter) + new_center = screen_center + offset + self.setCenter(new_center) + self.mouseWheeled.emit(factor, new_center) self.other_viewer.ignore_signal = False def setImage(self, pixmap): @@ -1296,7 +1276,6 @@ class GraphicsViewViewer(QGraphicsView): self._item.update() def scaleAt(self, scale): - # self.current_scale = scale if scale == 1.0: self.resetScale() # self.setTransform( QTransform() ) diff --git a/qt/preferences_dialog.py b/qt/preferences_dialog.py index 3723e2f1..8cc83f09 100644 --- a/qt/preferences_dialog.py +++ b/qt/preferences_dialog.py @@ -32,7 +32,7 @@ from PyQt5.QtGui import QPixmap, QIcon from hscommon.trans import trget from hscommon.plat import ISLINUX -from qtlib.util import horizontalWrap +from qtlib.util import horizontal_wrap from qtlib.preferences import get_langnames from enum import Flag, auto @@ -95,11 +95,11 @@ class PreferencesDialogBase(QDialog): self.filterHardnessHLayoutSub1 = QHBoxLayout() self.filterHardnessHLayoutSub1.setSpacing(12) self.filterHardnessSlider = QSlider(self) - sizePolicy = QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.filterHardnessSlider.sizePolicy().hasHeightForWidth()) - self.filterHardnessSlider.setSizePolicy(sizePolicy) + size_policy = QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed) + size_policy.setHorizontalStretch(0) + size_policy.setVerticalStretch(0) + size_policy.setHeightForWidth(self.filterHardnessSlider.sizePolicy().hasHeightForWidth()) + self.filterHardnessSlider.setSizePolicy(size_policy) self.filterHardnessSlider.setMinimum(1) self.filterHardnessSlider.setMaximum(100) self.filterHardnessSlider.setTracking(True) @@ -115,8 +115,8 @@ class PreferencesDialogBase(QDialog): self.moreResultsLabel = QLabel(self) self.moreResultsLabel.setText(tr("More Results")) self.filterHardnessHLayoutSub2.addWidget(self.moreResultsLabel) - spacerItem = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) - self.filterHardnessHLayoutSub2.addItem(spacerItem) + spacer_item = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) + self.filterHardnessHLayoutSub2.addItem(spacer_item) self.fewerResultsLabel = QLabel(self) self.fewerResultsLabel.setText(tr("Fewer Results")) self.filterHardnessHLayoutSub2.addWidget(self.fewerResultsLabel) @@ -146,7 +146,7 @@ class PreferencesDialogBase(QDialog): self.languageComboBox = QComboBox(self) for lang in self.supportedLanguages: self.languageComboBox.addItem(get_langnames()[lang]) - layout.addLayout(horizontalWrap([self.languageLabel, self.languageComboBox, None])) + layout.addLayout(horizontal_wrap([self.languageLabel, self.languageComboBox, None])) self._setupAddCheckbox( "tabs_default_pos", tr("Use default position for tab bar (requires restart)"), diff --git a/qt/prioritize_dialog.py b/qt/prioritize_dialog.py index d9e7e698..8c6a19bc 100644 --- a/qt/prioritize_dialog.py +++ b/qt/prioritize_dialog.py @@ -25,7 +25,7 @@ from PyQt5.QtWidgets import ( from hscommon.trans import trget from qtlib.selectable_list import ComboboxModel, ListviewModel -from qtlib.util import verticalSpacer +from qtlib.util import vertical_spacer from core.gui.prioritize_dialog import PrioritizeDialog as PrioritizeDialogModel tr = trget("ui") @@ -40,12 +40,12 @@ class PrioritizationList(ListviewModel): return Qt.ItemIsEnabled | Qt.ItemIsSelectable | Qt.ItemIsDragEnabled # --- Drag & Drop - def dropMimeData(self, mimeData, action, row, column, parentIndex): - if not mimeData.hasFormat(MIME_INDEXES): + def dropMimeData(self, mime_data, action, row, column, parent_index): + if not mime_data.hasFormat(MIME_INDEXES): return False # Since we only drop in between items, parentIndex must be invalid, and we use the row arg # to know where the drop took place. - if parentIndex.isValid(): + if parent_index.isValid(): return False # "When row and column are -1 it means that the dropped data should be considered as # dropped directly on parent." @@ -53,8 +53,8 @@ class PrioritizationList(ListviewModel): # dragged items after the last item. if row < 0: row = len(self.model) - 1 - strMimeData = bytes(mimeData.data(MIME_INDEXES)).decode() - indexes = list(map(int, strMimeData.split(","))) + str_mime_data = bytes(mime_data.data(MIME_INDEXES)).decode() + indexes = list(map(int, str_mime_data.split(","))) self.model.move_indexes(indexes, row) self.view.selectionModel().clearSelection() return True @@ -62,9 +62,9 @@ class PrioritizationList(ListviewModel): def mimeData(self, indexes): rows = {str(index.row()) for index in indexes} data = ",".join(rows) - mimeData = QMimeData() - mimeData.setData(MIME_INDEXES, QByteArray(data.encode())) - return mimeData + mime_data = QMimeData() + mime_data.setData(MIME_INDEXES, QByteArray(data.encode())) + return mime_data def mimeTypes(self): return [MIME_INDEXES] @@ -135,10 +135,10 @@ class PrioritizeDialog(QDialog): self.rightSide = QWidget() self.rightWidgetsLayout = QHBoxLayout() self.addRemoveButtonsLayout = QVBoxLayout() - self.addRemoveButtonsLayout.addItem(verticalSpacer()) + self.addRemoveButtonsLayout.addItem(vertical_spacer()) self.addRemoveButtonsLayout.addWidget(self.addCriteriaButton) self.addRemoveButtonsLayout.addWidget(self.removeCriteriaButton) - self.addRemoveButtonsLayout.addItem(verticalSpacer()) + self.addRemoveButtonsLayout.addItem(vertical_spacer()) self.rightWidgetsLayout.addLayout(self.addRemoveButtonsLayout) self.rightWidgetsLayout.addWidget(self.prioritizationListView) self.rightSide.setLayout(self.rightWidgetsLayout) diff --git a/qt/problem_dialog.py b/qt/problem_dialog.py index ad4d9817..1452a7a5 100644 --- a/qt/problem_dialog.py +++ b/qt/problem_dialog.py @@ -63,8 +63,8 @@ class ProblemDialog(QDialog): self.revealButton = QPushButton(self) self.revealButton.setText(tr("Reveal Selected")) self.horizontalLayout.addWidget(self.revealButton) - spacerItem = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) - self.horizontalLayout.addItem(spacerItem) + spacer_item = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) + self.horizontalLayout.addItem(spacer_item) self.closeButton = QPushButton(self) self.closeButton.setText(tr("Close")) self.closeButton.setDefault(True) diff --git a/qt/result_window.py b/qt/result_window.py index 7a9d12cc..3f0ad733 100644 --- a/qt/result_window.py +++ b/qt/result_window.py @@ -24,7 +24,7 @@ from PyQt5.QtWidgets import ( ) from hscommon.trans import trget -from qtlib.util import moveToScreenCenter, horizontalWrap, createActions +from qtlib.util import move_to_screen_center, horizontal_wrap, create_actions from qtlib.search_edit import SearchEdit from core.app import AppMode @@ -204,7 +204,7 @@ class ResultWindow(QMainWindow): self.app.invokeCustomCommand, ), ] - createActions(ACTIONS, self) + create_actions(ACTIONS, self) self.actionDelta.setCheckable(True) self.actionPowerMarker.setCheckable(True) @@ -306,21 +306,21 @@ class ResultWindow(QMainWindow): action.item_index = -1 # Action menu - actionMenu = QMenu(tr("Actions"), menubar) - actionMenu.addAction(self.actionDeleteMarked) - actionMenu.addAction(self.actionMoveMarked) - actionMenu.addAction(self.actionCopyMarked) - actionMenu.addAction(self.actionRemoveMarked) - actionMenu.addSeparator() - actionMenu.addAction(self.actionRemoveSelected) - actionMenu.addAction(self.actionIgnoreSelected) - actionMenu.addAction(self.actionMakeSelectedReference) - actionMenu.addSeparator() - actionMenu.addAction(self.actionOpenSelected) - actionMenu.addAction(self.actionRevealSelected) - actionMenu.addAction(self.actionInvokeCustomCommand) - actionMenu.addAction(self.actionRenameSelected) - self.actionActions.setMenu(actionMenu) + action_menu = QMenu(tr("Actions"), menubar) + action_menu.addAction(self.actionDeleteMarked) + action_menu.addAction(self.actionMoveMarked) + action_menu.addAction(self.actionCopyMarked) + action_menu.addAction(self.actionRemoveMarked) + action_menu.addSeparator() + action_menu.addAction(self.actionRemoveSelected) + action_menu.addAction(self.actionIgnoreSelected) + action_menu.addAction(self.actionMakeSelectedReference) + action_menu.addSeparator() + action_menu.addAction(self.actionOpenSelected) + action_menu.addAction(self.actionRevealSelected) + action_menu.addAction(self.actionInvokeCustomCommand) + action_menu.addAction(self.actionRenameSelected) + self.actionActions.setMenu(action_menu) self.actionsButton.setMenu(self.actionActions.menu()) def _setupUi(self): @@ -336,7 +336,7 @@ class ResultWindow(QMainWindow): self.deltaValuesCheckBox = QCheckBox(tr("Delta Values")) self.searchEdit = SearchEdit() self.searchEdit.setMaximumWidth(300) - self.horizontalLayout = horizontalWrap( + self.horizontalLayout = horizontal_wrap( [ self.actionsButton, self.detailsButton, @@ -379,12 +379,12 @@ class ResultWindow(QMainWindow): # moves to center of closest screen if partially off screen frame = self.frameGeometry() if QDesktopWidget().screenNumber(self) == -1: - moveToScreenCenter(self) + move_to_screen_center(self) elif QDesktopWidget().availableGeometry(self).contains(frame) is False: frame.moveCenter(QDesktopWidget().availableGeometry(self).center()) self.move(frame.topLeft()) else: - moveToScreenCenter(self) + move_to_screen_center(self) # --- Private def _update_column_actions_status(self): diff --git a/qt/results_model.py b/qt/results_model.py index 1a6fa326..68238f89 100644 --- a/qt/results_model.py +++ b/qt/results_model.py @@ -50,9 +50,8 @@ class ResultsModel(Table): if self.prefs.reference_bold_font: font.setBold(row.isref) return font - elif role == Qt.EditRole: - if column.name == "name": - return row.data[column.name] + elif role == Qt.EditRole and column.name == "name": + return row.data[column.name] return None def _getFlags(self, row, column): @@ -69,9 +68,8 @@ class ResultsModel(Table): if column.name == "marked": row.marked = bool(value) return True - elif role == Qt.EditRole: - if column.name == "name": - return self.model.rename_selected(value) + elif role == Qt.EditRole and column.name == "name": + return self.model.rename_selected(value) return False def sort(self, column, order): diff --git a/qt/se/preferences_dialog.py b/qt/se/preferences_dialog.py index 73841952..ba79679a 100644 --- a/qt/se/preferences_dialog.py +++ b/qt/se/preferences_dialog.py @@ -50,19 +50,19 @@ class PreferencesDialog(PreferencesDialogBase): self._setupAddCheckbox("ignoreSmallFilesBox", tr("Ignore files smaller than"), self.widget) self.horizontalLayout_2.addWidget(self.ignoreSmallFilesBox) self.sizeThresholdSpinBox = QSpinBox(self.widget) - sizePolicy = QSizePolicy(QSizePolicy.Maximum, QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.sizeThresholdSpinBox.sizePolicy().hasHeightForWidth()) - self.sizeThresholdSpinBox.setSizePolicy(sizePolicy) + size_policy = QSizePolicy(QSizePolicy.Maximum, QSizePolicy.Fixed) + size_policy.setHorizontalStretch(0) + size_policy.setVerticalStretch(0) + size_policy.setHeightForWidth(self.sizeThresholdSpinBox.sizePolicy().hasHeightForWidth()) + self.sizeThresholdSpinBox.setSizePolicy(size_policy) self.sizeThresholdSpinBox.setMaximumSize(QSize(100, 16777215)) self.sizeThresholdSpinBox.setRange(0, 1000000) self.horizontalLayout_2.addWidget(self.sizeThresholdSpinBox) self.label_6 = QLabel(self.widget) self.label_6.setText(tr("KB")) self.horizontalLayout_2.addWidget(self.label_6) - spacerItem1 = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) - self.horizontalLayout_2.addItem(spacerItem1) + spacer_item1 = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) + self.horizontalLayout_2.addItem(spacer_item1) self.verticalLayout_4.addLayout(self.horizontalLayout_2) self.horizontalLayout_2b = QHBoxLayout() self._setupAddCheckbox( @@ -72,15 +72,15 @@ class PreferencesDialog(PreferencesDialogBase): ) self.horizontalLayout_2b.addWidget(self.bigFilePartialHashesBox) self.bigSizeThresholdSpinBox = QSpinBox(self.widget) - self.bigSizeThresholdSpinBox.setSizePolicy(sizePolicy) + self.bigSizeThresholdSpinBox.setSizePolicy(size_policy) self.bigSizeThresholdSpinBox.setMaximumSize(QSize(100, 16777215)) self.bigSizeThresholdSpinBox.setRange(0, 1000000) self.horizontalLayout_2b.addWidget(self.bigSizeThresholdSpinBox) self.label_6b = QLabel(self.widget) self.label_6b.setText(tr("MB")) self.horizontalLayout_2b.addWidget(self.label_6b) - spacerItem2 = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) - self.horizontalLayout_2b.addItem(spacerItem2) + spacer_item2 = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) + self.horizontalLayout_2b.addItem(spacer_item2) self.verticalLayout_4.addLayout(self.horizontalLayout_2b) self._setupAddCheckbox( "ignoreHardlinkMatches", diff --git a/qt/tabbed_window.py b/qt/tabbed_window.py index 8e747cc6..11231719 100644 --- a/qt/tabbed_window.py +++ b/qt/tabbed_window.py @@ -14,7 +14,7 @@ from PyQt5.QtWidgets import ( QStackedWidget, ) from hscommon.trans import trget -from qtlib.util import moveToScreenCenter, createActions +from qtlib.util import move_to_screen_center, create_actions from .directories_dialog import DirectoriesDialog from .result_window import ResultWindow from .ignore_list_dialog import IgnoreListDialog @@ -46,7 +46,7 @@ class TabWindow(QMainWindow): self.toggleTabBar, ), ] - createActions(ACTIONS, self) + create_actions(ACTIONS, self) self.actionToggleTabs.setCheckable(True) self.actionToggleTabs.setChecked(True) @@ -78,7 +78,7 @@ class TabWindow(QMainWindow): if self.app.prefs.mainWindowRect is not None: self.setGeometry(self.app.prefs.mainWindowRect) else: - moveToScreenCenter(self) + move_to_screen_center(self) def _setupMenu(self): """Setup the menubar boiler plates which will be filled by the underlying @@ -174,7 +174,6 @@ class TabWindow(QMainWindow): def addTab(self, page, title, switch=False): # Warning: this supposedly takes ownership of the page index = self.tabWidget.addTab(page, title) - # index = self.tabWidget.insertTab(-1, page, title) if isinstance(page, DirectoriesDialog): self.tabWidget.tabBar().setTabButton(index, QTabBar.RightSide, None) if switch: diff --git a/qtlib/about_box.py b/qtlib/about_box.py index 9112dfaa..e1ff08e9 100644 --- a/qtlib/about_box.py +++ b/qtlib/about_box.py @@ -36,11 +36,11 @@ class AboutBox(QDialog): def _setupUi(self): self.setWindowTitle(tr("About {}").format(QCoreApplication.instance().applicationName())) self.resize(400, 290) - sizePolicy = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.sizePolicy().hasHeightForWidth()) - self.setSizePolicy(sizePolicy) + size_policy = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed) + size_policy.setHorizontalStretch(0) + size_policy.setVerticalStretch(0) + size_policy.setHeightForWidth(self.sizePolicy().hasHeightForWidth()) + self.setSizePolicy(size_policy) self.horizontalLayout = QHBoxLayout(self) self.logoLabel = QLabel(self) self.logoLabel.setPixmap(QPixmap(":/%s_big" % self.app.LOGO_NAME)) diff --git a/qtlib/error_report_dialog.py b/qtlib/error_report_dialog.py index ff3598f9..16207389 100644 --- a/qtlib/error_report_dialog.py +++ b/qtlib/error_report_dialog.py @@ -22,7 +22,7 @@ from PyQt5.QtWidgets import ( from hscommon.trans import trget from hscommon.desktop import open_url -from .util import horizontalSpacer +from .util import horizontal_spacer tr = trget("qtlib") @@ -34,10 +34,10 @@ class ErrorReportDialog(QDialog): self._setupUi() name = QCoreApplication.applicationName() version = QCoreApplication.applicationVersion() - errorText = "Application Name: {}\nVersion: {}\n\n{}".format(name, version, error) + error_text = "Application Name: {}\nVersion: {}\n\n{}".format(name, version, error) # Under windows, we end up with an error report without linesep if we don't mangle it - errorText = errorText.replace("\n", os.linesep) - self.errorTextEdit.setPlainText(errorText) + error_text = error_text.replace("\n", os.linesep) + self.errorTextEdit.setPlainText(error_text) self.github_url = github_url self.sendButton.clicked.connect(self.goToGithub) @@ -68,7 +68,7 @@ class ErrorReportDialog(QDialog): self.label2.setWordWrap(True) self.verticalLayout.addWidget(self.label2) self.horizontalLayout = QHBoxLayout() - self.horizontalLayout.addItem(horizontalSpacer()) + self.horizontalLayout.addItem(horizontal_spacer()) self.dontSendButton = QPushButton(self) self.dontSendButton.setText(tr("Close")) self.dontSendButton.setMinimumSize(QSize(110, 0)) diff --git a/qtlib/radio_box.py b/qtlib/radio_box.py index be43e7ac..752bb07c 100644 --- a/qtlib/radio_box.py +++ b/qtlib/radio_box.py @@ -8,7 +8,7 @@ from PyQt5.QtCore import pyqtSignal from PyQt5.QtWidgets import QWidget, QHBoxLayout, QRadioButton -from .util import horizontalSpacer +from .util import horizontal_spacer class RadioBox(QWidget): @@ -21,7 +21,7 @@ class RadioBox(QWidget): self._buttons = [] self._labels = items self._selected_index = 0 - self._spacer = horizontalSpacer() if not spread else None + self._spacer = horizontal_spacer() if not spread else None self._layout = QHBoxLayout(self) self._update_buttons() diff --git a/qtlib/recent.py b/qtlib/recent.py index 8011195a..33f95fd7 100644 --- a/qtlib/recent.py +++ b/qtlib/recent.py @@ -20,12 +20,12 @@ MenuEntry = namedtuple("MenuEntry", "menu fixedItemCount") class Recent(QObject): - def __init__(self, app, prefName, maxItemCount=10, **kwargs): + def __init__(self, app, pref_name, max_item_count=10, **kwargs): super().__init__(**kwargs) self._app = app self._menuEntries = [] - self._prefName = prefName - self._maxItemCount = maxItemCount + self._prefName = pref_name + self._maxItemCount = max_item_count self._items = [] self._loadFromPrefs() @@ -41,9 +41,9 @@ class Recent(QObject): def _insertItem(self, item): self._items = dedupe([item] + self._items)[: self._maxItemCount] - def _refreshMenu(self, menuEntry): - menu, fixedItemCount = menuEntry - for action in menu.actions()[fixedItemCount:]: + def _refreshMenu(self, menu_entry): + menu, fixed_item_count = menu_entry + for action in menu.actions()[fixed_item_count:]: menu.removeAction(action) for item in self._items: action = QAction(item, menu) @@ -56,17 +56,17 @@ class Recent(QObject): menu.addAction(action) def _refreshAllMenus(self): - for menuEntry in self._menuEntries: - self._refreshMenu(menuEntry) + for menu_entry in self._menuEntries: + self._refreshMenu(menu_entry) def _saveToPrefs(self): setattr(self._app.prefs, self._prefName, self._items) # --- Public def addMenu(self, menu): - menuEntry = MenuEntry(menu, len(menu.actions())) - self._menuEntries.append(menuEntry) - self._refreshMenu(menuEntry) + menu_entry = MenuEntry(menu, len(menu.actions())) + self._menuEntries.append(menu_entry) + self._refreshMenu(menu_entry) def clear(self): self._items = [] diff --git a/qtlib/search_edit.py b/qtlib/search_edit.py index 71f3915e..f1273076 100644 --- a/qtlib/search_edit.py +++ b/qtlib/search_edit.py @@ -36,9 +36,9 @@ class ClearableEdit(QLineEdit): self._is_clearable = is_clearable if is_clearable: self._clearButton = LineEditButton(self) - frameWidth = self.style().pixelMetric(QStyle.PM_DefaultFrameWidth) - paddingRight = self._clearButton.sizeHint().width() + frameWidth + 1 - stylesheet = "QLineEdit {{ padding-right:{0}px; }}".format(paddingRight) + frame_width = self.style().pixelMetric(QStyle.PM_DefaultFrameWidth) + padding_right = self._clearButton.sizeHint().width() + frame_width + 1 + stylesheet = "QLineEdit {{ padding-right:{0}px; }}".format(padding_right) self.setStyleSheet(stylesheet) self._updateClearButton() @@ -58,12 +58,12 @@ class ClearableEdit(QLineEdit): # --- QLineEdit overrides def resizeEvent(self, event): if self._is_clearable: - frameWidth = self.style().pixelMetric(QStyle.PM_DefaultFrameWidth) + frame_width = self.style().pixelMetric(QStyle.PM_DefaultFrameWidth) rect = self.rect() - rightHint = self._clearButton.sizeHint() - rightX = rect.right() - frameWidth - rightHint.width() - rightY = (rect.bottom() - rightHint.height()) // 2 - self._clearButton.move(rightX, rightY) + right_hint = self._clearButton.sizeHint() + right_x = rect.right() - frame_width - right_hint.width() + right_y = (rect.bottom() - right_hint.height()) // 2 + self._clearButton.move(right_x, right_y) # --- Event Handlers def _textChanged(self, text): @@ -102,14 +102,14 @@ class SearchEdit(ClearableEdit): if not bool(self.text()) and self.inactiveText and not self.hasFocus(): panel = QStyleOptionFrame() self.initStyleOption(panel) - textRect = self.style().subElementRect(QStyle.SE_LineEditContents, panel, self) - leftMargin = 2 - rightMargin = self._clearButton.iconSize().width() - textRect.adjust(leftMargin, 0, -rightMargin, 0) + text_rect = self.style().subElementRect(QStyle.SE_LineEditContents, panel, self) + left_margin = 2 + right_margin = self._clearButton.iconSize().width() + text_rect.adjust(left_margin, 0, -right_margin, 0) painter = QPainter(self) - disabledColor = self.palette().brush(QPalette.Disabled, QPalette.Text).color() - painter.setPen(disabledColor) - painter.drawText(textRect, Qt.AlignLeft | Qt.AlignVCenter, self.inactiveText) + disabled_color = self.palette().brush(QPalette.Disabled, QPalette.Text).color() + painter.setPen(disabled_color) + painter.drawText(text_rect, Qt.AlignLeft | Qt.AlignVCenter, self.inactiveText) # --- Event Handlers def _returnPressed(self): diff --git a/qtlib/selectable_list.py b/qtlib/selectable_list.py index af1e7c17..f1bbc817 100644 --- a/qtlib/selectable_list.py +++ b/qtlib/selectable_list.py @@ -80,19 +80,19 @@ class ListviewModel(SelectableList): # --- Override def _updateSelection(self): - newIndexes = [modelIndex.row() for modelIndex in self.view.selectionModel().selectedRows()] - if newIndexes != self.model.selected_indexes: - self.model.select(newIndexes) + new_indexes = [modelIndex.row() for modelIndex in self.view.selectionModel().selectedRows()] + if new_indexes != self.model.selected_indexes: + self.model.select(new_indexes) def _restoreSelection(self): - newSelection = QItemSelection() + new_selection = QItemSelection() for index in self.model.selected_indexes: - newSelection.select(self.createIndex(index, 0), self.createIndex(index, 0)) - self.view.selectionModel().select(newSelection, QItemSelectionModel.ClearAndSelect) - if len(newSelection.indexes()): - currentIndex = newSelection.indexes()[0] - self.view.selectionModel().setCurrentIndex(currentIndex, QItemSelectionModel.Current) - self.view.scrollTo(currentIndex) + new_selection.select(self.createIndex(index, 0), self.createIndex(index, 0)) + self.view.selectionModel().select(new_selection, QItemSelectionModel.ClearAndSelect) + if len(new_selection.indexes()): + current_index = new_selection.indexes()[0] + self.view.selectionModel().setCurrentIndex(current_index, QItemSelectionModel.Current) + self.view.scrollTo(current_index) # --- Events def selectionChanged(self, index): diff --git a/qtlib/table.py b/qtlib/table.py index ed40ed7c..9d57a35d 100644 --- a/qtlib/table.py +++ b/qtlib/table.py @@ -38,21 +38,21 @@ class Table(QAbstractTableModel): # an _updateViewSelection() call will normally result in an _updateModelSelection() call. # to avoid infinite loops, we check that the selection will actually change before calling # model.select() - newIndexes = [modelIndex.row() for modelIndex in self.view.selectionModel().selectedRows()] - if newIndexes != self.model.selected_indexes: - self.model.select(newIndexes) + new_indexes = [modelIndex.row() for modelIndex in self.view.selectionModel().selectedRows()] + if new_indexes != self.model.selected_indexes: + self.model.select(new_indexes) def _updateViewSelection(self): # Takes the selection on the model's side and update the view with it. - newSelection = QItemSelection() - columnCount = self.columnCount(QModelIndex()) + new_selection = QItemSelection() + column_count = self.columnCount(QModelIndex()) for index in self.model.selected_indexes: - newSelection.select(self.createIndex(index, 0), self.createIndex(index, columnCount - 1)) - self.view.selectionModel().select(newSelection, QItemSelectionModel.ClearAndSelect) - if len(newSelection.indexes()): - currentIndex = newSelection.indexes()[0] - self.view.selectionModel().setCurrentIndex(currentIndex, QItemSelectionModel.Current) - self.view.scrollTo(currentIndex) + new_selection.select(self.createIndex(index, 0), self.createIndex(index, column_count - 1)) + self.view.selectionModel().select(new_selection, QItemSelectionModel.ClearAndSelect) + if len(new_selection.indexes()): + current_index = new_selection.indexes()[0] + self.view.selectionModel().setCurrentIndex(current_index, QItemSelectionModel.Current) + self.view.scrollTo(current_index) # --- Data Model methods # Virtual diff --git a/qtlib/util.py b/qtlib/util.py index 3bb6dc82..da8de798 100644 --- a/qtlib/util.py +++ b/qtlib/util.py @@ -26,27 +26,27 @@ from PyQt5.QtWidgets import ( ) -def moveToScreenCenter(widget): +def move_to_screen_center(widget): frame = widget.frameGeometry() frame.moveCenter(QDesktopWidget().availableGeometry().center()) widget.move(frame.topLeft()) -def verticalSpacer(size=None): +def vertical_spacer(size=None): if size: return QSpacerItem(1, size, QSizePolicy.Fixed, QSizePolicy.Fixed) else: return QSpacerItem(1, 1, QSizePolicy.Fixed, QSizePolicy.MinimumExpanding) -def horizontalSpacer(size=None): +def horizontal_spacer(size=None): if size: return QSpacerItem(size, 1, QSizePolicy.Fixed, QSizePolicy.Fixed) else: return QSpacerItem(1, 1, QSizePolicy.MinimumExpanding, QSizePolicy.Fixed) -def horizontalWrap(widgets): +def horizontal_wrap(widgets): """Wrap all widgets in `widgets` in a horizontal layout. If, instead of placing a widget in your list, you place an int or None, an horizontal spacer @@ -55,14 +55,14 @@ def horizontalWrap(widgets): layout = QHBoxLayout() for widget in widgets: if widget is None or isinstance(widget, int): - layout.addItem(horizontalSpacer(size=widget)) + layout.addItem(horizontal_spacer(size=widget)) else: layout.addWidget(widget) return layout -def createActions(actions, target): - # actions = [(name, shortcut, icon, desc, func)] +def create_actions(actions, target): + # actions are list of (name, shortcut, icon, desc, func) for name, shortcut, icon, desc, func in actions: action = QAction(target) if icon: @@ -74,7 +74,7 @@ def createActions(actions, target): setattr(target, name, action) -def setAccelKeys(menu): +def set_accel_keys(menu): actions = menu.actions() titles = [a.text() for a in actions] available_characters = {c.lower() for s in titles for c in s if c.isalpha()} @@ -89,7 +89,7 @@ def setAccelKeys(menu): action.setText(newtext) -def getAppData(portable=False): +def get_appdata(portable=False): if portable: return op.join(executable_folder(), "data") else: @@ -102,11 +102,11 @@ class SysWrapper(io.IOBase): logging.warning(s) -def setupQtLogging(level=logging.WARNING, log_to_stdout=False): +def setup_qt_logging(level=logging.WARNING, log_to_stdout=False): # Under Qt, we log in "debug.log" in appdata. Moreover, when under cx_freeze, we have a # problem because sys.stdout and sys.stderr are None, so we need to replace them with a # wrapper that logs with the logging module. - appdata = getAppData() + appdata = get_appdata() if not op.exists(appdata): os.makedirs(appdata) # Setup logging @@ -123,7 +123,7 @@ def setupQtLogging(level=logging.WARNING, log_to_stdout=False): sys.stdout = SysWrapper() -def escapeamp(s): +def escape_amp(s): # Returns `s` with escaped ampersand (& --> &&). QAction text needs to have & escaped because # that character is used to define "accel keys". return s.replace("&", "&&") diff --git a/run.py b/run.py index 0254b1d8..8b49584b 100644 --- a/run.py +++ b/run.py @@ -15,7 +15,7 @@ from PyQt5.QtWidgets import QApplication from hscommon.trans import install_gettext_trans_under_qt from qtlib.error_report_dialog import install_excepthook -from qtlib.util import setupQtLogging +from qtlib.util import setup_qt_logging from qtlib.preferences import create_qsettings from qt import dg_rc # noqa: F401 from qt.platform import BASE_PATH @@ -33,7 +33,7 @@ global dgapp dgapp = None -def signalHandler(sig, frame): +def signal_handler(sig, frame): global dgapp if dgapp is None: return @@ -41,10 +41,10 @@ def signalHandler(sig, frame): dgapp.SIGTERM.emit() -def setUpSignals(): - signal(SIGINT, signalHandler) - signal(SIGTERM, signalHandler) - signal(SIGQUIT, signalHandler) +def setup_signals(): + signal(SIGINT, signal_handler) + signal(SIGTERM, signal_handler) + signal(SIGQUIT, signal_handler) def main(): @@ -52,13 +52,13 @@ def main(): QCoreApplication.setOrganizationName("Hardcoded Software") QCoreApplication.setApplicationName(__appname__) QCoreApplication.setApplicationVersion(__version__) - setupQtLogging() + setup_qt_logging() settings = create_qsettings() lang = settings.value("Language") locale_folder = op.join(BASE_PATH, "locale") install_gettext_trans_under_qt(locale_folder, lang) # Handle OS signals - setUpSignals() + setup_signals() # Let the Python interpreter runs every 500ms to handle signals. This is # required because Python cannot handle signals while the Qt event loop is # running.