From 6b0c519f9978f925821c19e35427e387206f48a1 Mon Sep 17 00:00:00 2001 From: Jim Miller Date: Sun, 22 May 2016 15:55:00 -0500 Subject: [PATCH] Make 'Go back to fix errors?' dialog scroll error list for smaller dialog size. --- calibre-plugin/dialogs.py | 33 +++++++++++++++++++++------------ 1 file changed, 21 insertions(+), 12 deletions(-) diff --git a/calibre-plugin/dialogs.py b/calibre-plugin/dialogs.py index 5db3b77a..4a7a9ae9 100644 --- a/calibre-plugin/dialogs.py +++ b/calibre-plugin/dialogs.py @@ -21,19 +21,19 @@ from datetime import datetime try: from PyQt5 import QtWidgets as QtGui from PyQt5 import QtCore - from PyQt5.Qt import (QDialog, QTableWidget, QVBoxLayout, QHBoxLayout, QGridLayout, - QPushButton, QFont, QLabel, QCheckBox, QIcon, QLineEdit, - QComboBox, QProgressDialog, QTimer, QDialogButtonBox, - QPixmap, Qt, QAbstractItemView, QTextEdit, pyqtSignal, - QGroupBox, QFrame, QTextBrowser, QSize, QAction) + from PyQt5.Qt import (QDialog, QWidget, QTableWidget, QVBoxLayout, QHBoxLayout, + QGridLayout, QPushButton, QFont, QLabel, QCheckBox, QIcon, + QLineEdit, QComboBox, QProgressDialog, QTimer, QDialogButtonBox, + QScrollArea, QPixmap, Qt, QAbstractItemView, QTextEdit, + pyqtSignal, QGroupBox, QFrame, QTextBrowser, QSize, QAction) except ImportError as e: from PyQt4 import QtGui from PyQt4 import QtCore - from PyQt4.Qt import (QDialog, QTableWidget, QVBoxLayout, QHBoxLayout, QGridLayout, - QPushButton, QFont, QLabel, QCheckBox, QIcon, QLineEdit, - QComboBox, QProgressDialog, QTimer, QDialogButtonBox, - QPixmap, Qt, QAbstractItemView, QTextEdit, pyqtSignal, - QGroupBox, QFrame, QTextBrowser, QSize, QAction) + from PyQt4.Qt import (QDialog, QWidget, QTableWidget, QVBoxLayout, QHBoxLayout, + QGridLayout, QPushButton, QFont, QLabel, QCheckBox, QIcon, + QLineEdit, QComboBox, QProgressDialog, QTimer, QDialogButtonBox, + QScrollArea, QPixmap, Qt, QAbstractItemView, QTextEdit, + pyqtSignal, QGroupBox, QFrame, QTextBrowser, QSize, QAction) try: from calibre.gui2 import QVariant @@ -1450,6 +1450,15 @@ class ViewLog(SizePersistedDialog): self.lineno = None + scrollable = QScrollArea() + scrollcontent = QWidget() + scrollable.setWidget(scrollcontent) + scrollable.setWidgetResizable(True) + self.l.addWidget(scrollable) + + self.sl = QVBoxLayout() + scrollcontent.setLayout(self.sl) + ## error = (lineno, msg) for (lineno, error_msg) in errors: # print('adding label for error:%s: %s'%(lineno, error_msg)) @@ -1460,7 +1469,7 @@ class ViewLog(SizePersistedDialog): label.setStyleSheet("QLabel { margin-left: 2em; color : blue; } QLabel:hover { color: red; }"); label.setToolTip(_('Click to go to line %s')%lineno) label.mouseReleaseEvent = partial(self.label_clicked, lineno=lineno) - self.l.addWidget(label) + self.sl.addWidget(label) # html='

'+'

'.join([ '(lineno: %s) %s'%e for e in errors ])+'

' @@ -1470,7 +1479,7 @@ class ViewLog(SizePersistedDialog): # self.tb.setHtml(html) # l.addWidget(self.tb) - self.l.insertStretch(-1) + self.sl.insertStretch(-1) horz = QHBoxLayout()