mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Make the ToC Editor window freely resizable
This commit is contained in:
parent
c7a81cd379
commit
56709f4c47
@ -10,8 +10,8 @@ from functools import partial
|
|||||||
from PyQt5.Qt import (
|
from PyQt5.Qt import (
|
||||||
QApplication, QCheckBox, QCursor, QDialog, QDialogButtonBox, QFrame, QGridLayout,
|
QApplication, QCheckBox, QCursor, QDialog, QDialogButtonBox, QFrame, QGridLayout,
|
||||||
QIcon, QInputDialog, QItemSelectionModel, QKeySequence, QLabel, QMenu,
|
QIcon, QInputDialog, QItemSelectionModel, QKeySequence, QLabel, QMenu,
|
||||||
QPushButton, QSize, QSizePolicy, QStackedLayout, QStackedWidget, Qt, QToolButton,
|
QPushButton, QScrollArea, QSize, QSizePolicy, QStackedWidget, Qt,
|
||||||
QTreeWidget, QTreeWidgetItem, QVBoxLayout, QWidget, pyqtSignal
|
QToolButton, QTreeWidget, QTreeWidgetItem, QVBoxLayout, QWidget, pyqtSignal
|
||||||
)
|
)
|
||||||
from threading import Thread
|
from threading import Thread
|
||||||
|
|
||||||
@ -132,7 +132,7 @@ class XPathDialog(QDialog): # {{{
|
|||||||
# }}}
|
# }}}
|
||||||
|
|
||||||
|
|
||||||
class ItemView(QFrame): # {{{
|
class ItemView(QStackedWidget): # {{{
|
||||||
|
|
||||||
add_new_item = pyqtSignal(object, object)
|
add_new_item = pyqtSignal(object, object)
|
||||||
delete_item = pyqtSignal()
|
delete_item = pyqtSignal()
|
||||||
@ -144,16 +144,20 @@ class ItemView(QFrame): # {{{
|
|||||||
flatten_toc = pyqtSignal()
|
flatten_toc = pyqtSignal()
|
||||||
|
|
||||||
def __init__(self, parent, prefs):
|
def __init__(self, parent, prefs):
|
||||||
QFrame.__init__(self, parent)
|
QStackedWidget.__init__(self, parent)
|
||||||
self.prefs = prefs
|
self.prefs = prefs
|
||||||
self.setFrameShape(QFrame.StyledPanel)
|
|
||||||
self.setMinimumWidth(250)
|
self.setMinimumWidth(250)
|
||||||
self.stacked_layout = l = QStackedLayout(self)
|
|
||||||
self.root_pane = rp = QWidget(self)
|
self.root_pane = rp = QWidget(self)
|
||||||
self.item_pane = ip = QWidget(self)
|
self.item_pane = ip = QWidget(self)
|
||||||
self.current_item = None
|
self.current_item = None
|
||||||
l.addWidget(rp)
|
sa = QScrollArea(self)
|
||||||
l.addWidget(ip)
|
sa.setWidgetResizable(True)
|
||||||
|
sa.setWidget(rp)
|
||||||
|
self.addWidget(sa)
|
||||||
|
sa = QScrollArea(self)
|
||||||
|
sa.setWidgetResizable(True)
|
||||||
|
sa.setWidget(ip)
|
||||||
|
self.addWidget(sa)
|
||||||
|
|
||||||
self.l1 = la = QLabel('<p>'+_(
|
self.l1 = la = QLabel('<p>'+_(
|
||||||
'You can edit existing entries in the Table of Contents by clicking them'
|
'You can edit existing entries in the Table of Contents by clicking them'
|
||||||
@ -341,10 +345,10 @@ class ItemView(QFrame): # {{{
|
|||||||
def __call__(self, item):
|
def __call__(self, item):
|
||||||
if item is None:
|
if item is None:
|
||||||
self.current_item = None
|
self.current_item = None
|
||||||
self.stacked_layout.setCurrentIndex(0)
|
self.setCurrentIndex(0)
|
||||||
else:
|
else:
|
||||||
self.current_item = item
|
self.current_item = item
|
||||||
self.stacked_layout.setCurrentIndex(1)
|
self.setCurrentIndex(1)
|
||||||
self.populate_item_pane()
|
self.populate_item_pane()
|
||||||
|
|
||||||
def populate_item_pane(self):
|
def populate_item_pane(self):
|
||||||
@ -1023,7 +1027,8 @@ class TOCEditor(QDialog): # {{{
|
|||||||
self.explode_done.connect(self.read_toc, type=Qt.QueuedConnection)
|
self.explode_done.connect(self.read_toc, type=Qt.QueuedConnection)
|
||||||
self.writing_done.connect(self.really_accept, type=Qt.QueuedConnection)
|
self.writing_done.connect(self.really_accept, type=Qt.QueuedConnection)
|
||||||
|
|
||||||
self.resize(self.sizeHint())
|
r = QApplication.desktop().availableGeometry(self)
|
||||||
|
self.resize(r.width() - 100, r.height() - 100)
|
||||||
geom = self.prefs.get('toc_editor_window_geom', None)
|
geom = self.prefs.get('toc_editor_window_geom', None)
|
||||||
if geom is not None:
|
if geom is not None:
|
||||||
QApplication.instance().safe_restore_geometry(self, bytes(geom))
|
QApplication.instance().safe_restore_geometry(self, bytes(geom))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user