This commit is contained in:
Kovid Goyal 2022-02-03 18:58:56 +05:30
commit 57d24f0538
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C

View File

@ -1060,16 +1060,30 @@ class MetadataSingleDialogAlt2(MetadataSingleDialogBase): # {{{
self.labels = [] self.labels = []
sto = QWidget.setTabOrder sto = QWidget.setTabOrder
self.central_widget.tabBar().setVisible(False) # The dialog is in three main parts. Basic and custom metadata in one
tab0 = QWidget(self) # panel on the left over another panel containing comments, separated
self.central_widget.addTab(ScrollArea(tab0, self), _("&Metadata")) # by a splitter. The cover and format information is in a panel on the
l = QGridLayout() # right, separated by another splitter.
tab0.setLayout(l)
# Basic metadata in col 0 main_splitter = self.main_splitter = Splitter(Qt.Orientation.Horizontal, self)
self.central_widget.tabBar().setVisible(False)
self.central_widget.addTab(ScrollArea(main_splitter, self), _("&Metadata"))
# Left side (metadata & comments)
# basic and custom split from comments
metadata_splitter = self.metadata_splitter = Splitter(Qt.Orientation.Vertical, self)
main_splitter.addWidget(metadata_splitter)
metadata_widget = QWidget()
metadata_layout = QHBoxLayout()
metadata_layout.setContentsMargins(3, 0, 0, 0)
metadata_widget.setLayout(metadata_layout)
metadata_splitter.addWidget(metadata_widget)
gb = QGroupBox(_('Basic metadata'), metadata_splitter)
metadata_layout.addWidget(gb)
# Basic metadata in col 0, custom in col 1
tl = QGridLayout() tl = QGridLayout()
gb = QGroupBox(_('Basic metadata'), tab0)
l.addWidget(gb, 0, 0, 1, 1)
gb.setLayout(tl) gb.setLayout(tl)
self.button_box_layout.insertWidget(1, self.fetch_metadata_button) self.button_box_layout.insertWidget(1, self.fetch_metadata_button)
@ -1130,7 +1144,7 @@ class MetadataSingleDialogAlt2(MetadataSingleDialogBase): # {{{
# Custom metadata in col 1 # Custom metadata in col 1
w = getattr(self, 'custom_metadata_widgets_parent', None) w = getattr(self, 'custom_metadata_widgets_parent', None)
if w is not None: if w is not None:
gb = QGroupBox(_('Custom metadata'), tab0) gb = QGroupBox(_('Custom metadata'), metadata_splitter)
gbl = QVBoxLayout() gbl = QVBoxLayout()
gb.setLayout(gbl) gb.setLayout(gbl)
sr = QScrollArea(gb) sr = QScrollArea(gb)
@ -1139,7 +1153,7 @@ class MetadataSingleDialogAlt2(MetadataSingleDialogBase): # {{{
sr.setFrameStyle(QFrame.Shape.NoFrame) sr.setFrameStyle(QFrame.Shape.NoFrame)
sr.setWidget(w) sr.setWidget(w)
gbl.addWidget(sr) gbl.addWidget(sr)
l.addWidget(gb, 0, 1, 1, 1) metadata_layout.addWidget(gb)
sp = QSizePolicy() sp = QSizePolicy()
sp.setVerticalStretch(10) sp.setVerticalStretch(10)
sp.setHorizontalPolicy(QSizePolicy.Policy.Minimum) sp.setHorizontalPolicy(QSizePolicy.Policy.Minimum)
@ -1147,21 +1161,29 @@ class MetadataSingleDialogAlt2(MetadataSingleDialogBase): # {{{
gb.setSizePolicy(sp) gb.setSizePolicy(sp)
self.set_custom_metadata_tab_order() self.set_custom_metadata_tab_order()
# comments span col 0 & 1 # comments below metadata splitter. The mess of widgets is to get the
w = QGroupBox(_('Comments'), tab0) # contents margins right so things line up
cw = QWidget()
cl = QHBoxLayout()
cw.setLayout(cl)
cl.setContentsMargins(3, 0, 0, 0)
metadata_splitter.addWidget(cw)
# Now the real stuff
sp = QSizePolicy() sp = QSizePolicy()
sp.setVerticalStretch(10) sp.setVerticalStretch(10)
sp.setHorizontalPolicy(QSizePolicy.Policy.Expanding) sp.setHorizontalPolicy(QSizePolicy.Policy.Expanding)
sp.setVerticalPolicy(QSizePolicy.Policy.Expanding) sp.setVerticalPolicy(QSizePolicy.Policy.Expanding)
w.setSizePolicy(sp) cw.setSizePolicy(sp)
lb = QHBoxLayout() gb = QGroupBox(_('Comments'), metadata_splitter)
w.setLayout(lb) gbl = QHBoxLayout()
lb.addWidget(self.comments) gbl.setContentsMargins(0, 0, 0, 0)
l.addWidget(w, 1, 0, 1, 2) gb.setLayout(gbl)
cl.addWidget(gb)
gbl.addWidget(self.comments)
# Cover & formats in col 3 # Cover & formats on right side
# First the cover & buttons # First the cover & buttons
cover_group_box = QGroupBox(_('Cover'), tab0) cover_group_box = QGroupBox(_('Cover'), main_splitter)
cover_layout = QVBoxLayout() cover_layout = QVBoxLayout()
cover_layout.setContentsMargins(0, 0, 0, 0) cover_layout.setContentsMargins(0, 0, 0, 0)
cover_group_box.setLayout(cover_layout) cover_group_box.setLayout(cover_layout)
@ -1185,13 +1207,27 @@ class MetadataSingleDialogAlt2(MetadataSingleDialogBase): # {{{
cover_and_formats = QVBoxLayout() cover_and_formats = QVBoxLayout()
cover_and_formats.setContentsMargins(0, 0, 0, 0) cover_and_formats.setContentsMargins(0, 0, 0, 0)
cover_and_formats.addWidget(cover_group_box, stretch=100) cover_and_formats.addWidget(cover_group_box, stretch=100)
# Add the formats manager box
cover_and_formats.addWidget(self.formats_manager) cover_and_formats.addWidget(self.formats_manager)
l.addLayout(cover_and_formats, 0, 2, 2, 1)
sto(self.cover.buttons[-1], self.formats_manager) sto(self.cover.buttons[-1], self.formats_manager)
self.formats_manager.formats.setMaximumWidth(10000) self.formats_manager.formats.setMaximumWidth(10000)
self.formats_manager.formats.setIconSize(QSize(32, 32)) self.formats_manager.formats.setIconSize(QSize(32, 32))
cover_and_formats_widget = QWidget()
main_splitter.addWidget(cover_and_formats_widget)
cover_and_formats_widget.setLayout(cover_and_formats)
def save_widget_settings(self):
gprefs['all_on_one_metadata_splitter_1_state'] = bytearray(self.metadata_splitter.saveState())
gprefs['all_on_one_metadata_splitter_2_state'] = bytearray(self.main_splitter.saveState())
def restore_widget_settings(self):
s = gprefs.get('all_on_one_metadata_splitter_1_state')
if s is not None:
self.metadata_splitter.restoreState(s)
s = gprefs.get('all_on_one_metadata_splitter_2_state')
if s is not None:
self.main_splitter.restoreState(s)
# }}} # }}}