From 729cdb63066c29ab3985111b1aa349e9afc3f05e Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Wed, 10 Aug 2016 15:59:48 +0530 Subject: [PATCH] Make the icon size in the Preferences dialog depend on the UI font size --- src/calibre/gui2/__init__.py | 3 ++- src/calibre/gui2/preferences/main.py | 5 +++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/calibre/gui2/__init__.py b/src/calibre/gui2/__init__.py index 217876994b..3cf26ddab5 100644 --- a/src/calibre/gui2/__init__.py +++ b/src/calibre/gui2/__init__.py @@ -8,7 +8,7 @@ from urllib import unquote from PyQt5.QtWidgets import QStyle # Gives a nicer error message than import from Qt from PyQt5.Qt import ( QFileInfo, QObject, QBuffer, Qt, QByteArray, QTranslator, QSocketNotifier, - QCoreApplication, QThread, QEvent, QTimer, pyqtSignal, QDateTime, + QCoreApplication, QThread, QEvent, QTimer, pyqtSignal, QDateTime, QFontMetrics, QDesktopServices, QFileDialog, QFileIconProvider, QSettings, QIcon, QApplication, QDialog, QUrl, QFont, QFontDatabase, QLocale, QFontInfo) @@ -895,6 +895,7 @@ class Application(QApplication): if s is not None: font.setStretch(s) QApplication.setFont(font) + self.line_height = max(12, QFontMetrics(self.font()).lineSpacing()) dl = QLocale(get_lang()) if unicode(dl.bcp47Name()) != u'C': diff --git a/src/calibre/gui2/preferences/main.py b/src/calibre/gui2/preferences/main.py index c0c453f69e..56b7cbcba9 100644 --- a/src/calibre/gui2/preferences/main.py +++ b/src/calibre/gui2/preferences/main.py @@ -13,7 +13,7 @@ from PyQt5.Qt import ( Qt, QIcon, QFont, QWidget, QScrollArea, QStackedWidget, QVBoxLayout, QLabel, QFrame, QToolBar, QSize, pyqtSignal, QPixmap, QDialogButtonBox, QHBoxLayout, QDialog, QSizePolicy, QPainter, QTextLayout, QPointF, - QStatusTipEvent) + QStatusTipEvent, QApplication) from calibre.constants import __appname__, __version__, islinux from calibre.gui2 import (gprefs, min_available_height, available_width, @@ -121,7 +121,8 @@ class Category(QWidget): # {{{ self.bar = QToolBar(self) self.bar.setStyleSheet( 'QToolBar { border: none; background: none }') - self.bar.setIconSize(QSize(32, 32)) + lh = QApplication.instance().line_height + self.bar.setIconSize(QSize(2*lh, 2*lh)) self.bar.setMovable(False) self.bar.setFloatable(False) self.bar.setToolButtonStyle(Qt.ToolButtonTextUnderIcon)