diff --git a/src/calibre/gui2/cover_flow.py b/src/calibre/gui2/cover_flow.py
index 7a6fe0a891..365d41ec50 100644
--- a/src/calibre/gui2/cover_flow.py
+++ b/src/calibre/gui2/cover_flow.py
@@ -12,7 +12,7 @@ import sys, os
from PyQt4.QtGui import QImage, QSizePolicy
from PyQt4.QtCore import Qt, QSize, SIGNAL, QObject
-from calibre import pictureflow
+from calibre import pictureflow, Settings
if pictureflow is not None:
class EmptyImageList(pictureflow.FlowImages):
@@ -68,7 +68,8 @@ if pictureflow is not None:
class CoverFlow(pictureflow.PictureFlow):
def __init__(self, height=300, parent=None):
- pictureflow.PictureFlow.__init__(self, parent)
+ pictureflow.PictureFlow.__init__(self, parent,
+ Settings().get('cover flow queue length', 6)+1)
self.setSlideSize(QSize(int(2/3. * height), height))
self.setMinimumSize(QSize(int(2.35*0.67*height), (5/3.)*height+25))
self.setFocusPolicy(Qt.WheelFocus)
diff --git a/src/calibre/gui2/dialogs/config.py b/src/calibre/gui2/dialogs/config.py
index 89a90f04f0..6c6caddda9 100644
--- a/src/calibre/gui2/dialogs/config.py
+++ b/src/calibre/gui2/dialogs/config.py
@@ -66,6 +66,7 @@ class ConfigDialog(QDialog, Ui_Dialog):
single_format = settings.get('save to disk single format', 'lrf')
self.single_format.setCurrentIndex(BOOK_EXTENSIONS.index(single_format))
+ self.cover_browse.setValue(settings.get('cover flow queue length', 6))
def compact(self, toggled):
d = Vacuum(self, self.db)
@@ -98,7 +99,7 @@ class ConfigDialog(QDialog, Ui_Dialog):
pattern = self.filename_pattern.commit()
settings.set('filename pattern', pattern)
settings.set('save to disk single format', BOOK_EXTENSIONS[self.single_format.currentIndex()])
-
+ settings.set('cover flow queue length', self.cover_browse.value())
if not path or not os.path.exists(path) or not os.path.isdir(path):
d = error_dialog(self, _('Invalid database location'), _('Invalid database location ')+path+_('
Must be a directory.'))
diff --git a/src/calibre/gui2/dialogs/config.ui b/src/calibre/gui2/dialogs/config.ui
index 1599520aca..70d223446f 100644
--- a/src/calibre/gui2/dialogs/config.ui
+++ b/src/calibre/gui2/dialogs/config.ui
@@ -132,6 +132,23 @@
+ -
+
+
-
+
+
+ &Number of covers to show in browse mode (after restart):
+
+
+ cover_browse
+
+
+
+ -
+
+
+
+
-
diff --git a/src/calibre/gui2/pictureflow/PyQt/pictureflow.sip b/src/calibre/gui2/pictureflow/PyQt/pictureflow.sip
index d0d3af27ea..4dc7e059d5 100644
--- a/src/calibre/gui2/pictureflow/PyQt/pictureflow.sip
+++ b/src/calibre/gui2/pictureflow/PyQt/pictureflow.sip
@@ -28,7 +28,7 @@ class PictureFlow : QWidget {
public :
- PictureFlow(QWidget *parent /TransferThis/ = 0);
+ PictureFlow(QWidget *parent /TransferThis/ = 0, int queueLength = 3);
void setImages(FlowImages *images);
diff --git a/src/calibre/gui2/pictureflow/pictureflow.cpp b/src/calibre/gui2/pictureflow/pictureflow.cpp
index 9a7490d0d6..a6b28146e9 100644
--- a/src/calibre/gui2/pictureflow/pictureflow.cpp
+++ b/src/calibre/gui2/pictureflow/pictureflow.cpp
@@ -316,7 +316,7 @@ struct SlideInfo
class PictureFlowPrivate
{
public:
- PictureFlowPrivate(PictureFlow* widget);
+ PictureFlowPrivate(PictureFlow* widget, int queueLength);
int slideCount() const;
void setSlideCount(int count);
@@ -368,6 +368,7 @@ private:
int slideWidth;
int slideHeight;
int zoom;
+ int queueLength;
int centerIndex;
SlideInfo centerSlide;
@@ -396,7 +397,7 @@ private:
void resetSlides();
};
-PictureFlowPrivate::PictureFlowPrivate(PictureFlow* w)
+PictureFlowPrivate::PictureFlowPrivate(PictureFlow* w, int queueLength_)
{
widget = w;
slideImages = new FlowImages();
@@ -406,6 +407,7 @@ PictureFlowPrivate::PictureFlowPrivate(PictureFlow* w)
zoom = 100;
centerIndex = 0;
+ queueLength = queueLength_;
slideFrame = 0;
step = 0;
@@ -553,7 +555,7 @@ void PictureFlowPrivate::resetSlides()
centerSlide.slideIndex = centerIndex;
leftSlides.clear();
- leftSlides.resize(3);
+ leftSlides.resize(queueLength);
for(int i = 0; i < leftSlides.count(); i++)
{
SlideInfo& si = leftSlides[i];
@@ -565,7 +567,7 @@ void PictureFlowPrivate::resetSlides()
}
rightSlides.clear();
- rightSlides.resize(3);
+ rightSlides.resize(queueLength);
for(int i = 0; i < rightSlides.count(); i++)
{
SlideInfo& si = rightSlides[i];
@@ -1104,9 +1106,9 @@ void PictureFlowPrivate::clearSurfaceCache()
// -----------------------------------------
-PictureFlow::PictureFlow(QWidget* parent): QWidget(parent)
+PictureFlow::PictureFlow(QWidget* parent, int queueLength): QWidget(parent)
{
- d = new PictureFlowPrivate(this);
+ d = new PictureFlowPrivate(this, queueLength);
setAttribute(Qt::WA_StaticContents, true);
setAttribute(Qt::WA_OpaquePaintEvent, true);
diff --git a/src/calibre/gui2/pictureflow/pictureflow.h b/src/calibre/gui2/pictureflow/pictureflow.h
index c1042e4adb..7431dee634 100644
--- a/src/calibre/gui2/pictureflow/pictureflow.h
+++ b/src/calibre/gui2/pictureflow/pictureflow.h
@@ -98,7 +98,7 @@ public:
/*!
Creates a new PictureFlow widget.
*/
- PictureFlow(QWidget* parent = 0);
+ PictureFlow(QWidget* parent = 0, int queueLength = 3);
/*!
Destroys the widget.