Make spacing between covers adjustable

This commit is contained in:
Kovid Goyal 2013-08-05 14:08:54 +05:30
parent 1121be459f
commit 0e64b0c886
4 changed files with 61 additions and 47 deletions

View File

@ -115,6 +115,7 @@ defs['cover_grid_width'] = 0
defs['cover_grid_height'] = 0
defs['cover_grid_color'] = (80, 80, 80)
defs['cover_grid_cache_size'] = 200
defs['cover_grid_spacing'] = 0
del defs
# }}}

View File

@ -368,11 +368,18 @@ class CoverDelegate(QStyledItemDelegate):
width *= self.parent().logicalDpiX() * CM_TO_INCH
self.cover_size = QSize(width, height)
self.item_size = self.cover_size + QSize(8, 8)
self.spacing = max(10, min(50, int(0.1 * width)))
self.calculate_spacing()
self.animation.setStartValue(1.0)
self.animation.setKeyValueAt(0.5, 0.5)
self.animation.setEndValue(1.0)
def calculate_spacing(self):
spc = self.original_spacing = gprefs['cover_grid_spacing']
if spc < 0.1:
self.spacing = max(10, min(50, int(0.1 * self.original_width)))
else:
self.spacing = self.parent().logicalDpiX() * CM_TO_INCH * spc
def sizeHint(self, option, index):
return self.item_size
@ -479,6 +486,9 @@ class GridView(QListView):
self.delegate.set_dimensions()
self.setSpacing(self.delegate.spacing)
self.delegate.cover_cache.clear()
if gprefs['cover_grid_spacing'] != self.delegate.original_spacing:
self.delegate.calculate_spacing()
self.setSpacing(self.delegate.spacing)
self.set_color()
self.delegate.cover_cache.set_limit(gprefs['cover_grid_cache_size'])

View File

@ -113,6 +113,7 @@ class ConfigWidget(ConfigWidgetBase, Ui_Form):
r('cover_grid_width', gprefs)
r('cover_grid_height', gprefs)
r('cover_grid_cache_size', gprefs)
r('cover_grid_spacing', gprefs)
r('cover_flow_queue_length', config, restart_required=True)
r('cover_browser_reflections', gprefs)

View File

@ -231,8 +231,8 @@
<attribute name="title">
<string>Cover Grid</string>
</attribute>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<layout class="QFormLayout" name="formLayout">
<item row="0" column="0" colspan="2">
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<widget class="QLabel" name="label_11">
@ -272,6 +272,9 @@
<property name="toolTip">
<string>The height of displayed covers</string>
</property>
<property name="specialValueText">
<string>Automatic</string>
</property>
<property name="suffix">
<string> cm</string>
</property>
@ -305,13 +308,16 @@
</item>
</layout>
</item>
<item>
<item row="1" column="0" colspan="2">
<layout class="QHBoxLayout" name="horizontalLayout_3">
<item>
<widget class="QLabel" name="label_14">
<property name="text">
<string>Background color for the cover grid:</string>
</property>
<property name="buddy">
<cstring>cover_grid_color_button</cstring>
</property>
</widget>
</item>
<item>
@ -352,9 +358,7 @@
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_4">
<item>
<item row="2" column="0">
<widget class="QLabel" name="label_15">
<property name="text">
<string>Number of covers to cache in &amp;memory:</string>
@ -364,40 +368,38 @@
</property>
</widget>
</item>
<item>
<item row="2" column="1">
<widget class="QSpinBox" name="opt_cover_grid_cache_size">
<property name="maximum">
<number>3000</number>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_3">
<property name="orientation">
<enum>Qt::Horizontal</enum>
<item row="3" column="0">
<widget class="QLabel" name="label_16">
<property name="text">
<string>&amp;Spacing between covers:</string>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
<property name="buddy">
<cstring>opt_cover_grid_spacing</cstring>
</property>
</spacer>
</widget>
</item>
</layout>
</item>
<item>
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
<item row="3" column="1">
<widget class="QDoubleSpinBox" name="opt_cover_grid_spacing">
<property name="toolTip">
<string>The spacing between covers. A value of zero means calculate automatically based on cover size.</string>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>355</height>
</size>
<property name="specialValueText">
<string>Automatic</string>
</property>
</spacer>
<property name="suffix">
<string> cm</string>
</property>
<property name="decimals">
<number>1</number>
</property>
</widget>
</item>
</layout>
</widget>