[KPhotoAlbum] [Bug 145309] make "show this image" load all images in current view
Robert L Krawitz
rlk at alum.mit.edu
Thu May 24 12:37:17 BST 2007
Date: Thu, 24 May 2007 12:26:44 +0200
From: =?ISO-8859-1?Q?Jan_Kundr=E1t?= <jkt at gentoo.org>
Robert L Krawitz wrote:
> One problem I've seen with this: if I'm on a cold system, with all of
> my images in the thumbnail view (~20000 images), when I double click
> on one image it takes a few minutes until the image pops up. On a
> warm system, it's fast, suggesting that it's stat'ing every image (I
> haven't looked at the code). This bottleneck needs to be eliminated.
Well, I've straced it:
* When the application starts, there's one access(path, R_OK) and
two lstat64() for each file in the DB (or probably rather for each
file under your image root) -- maybe because I have the "check for
new images on startup" enabled. Do you use this as well?
No (and in any case I have a patch that solves this, and I have a bug
open against it with the patch attached).
* When the thumbnails are about to be shown, it calls access(path,
F_OK) for each file in the DB that is in current viewport
That's only about 100 image, and that's not the major problem.
* When there's one image selected and you choose "view", it calls
access(F_OK) for each image file in current view
*THAT* is the problem.
So, in short, although my patch indeed queries the FS for
availability of each file in current view, this information should
be already available in the VFS cache since the program startup.
No, because I don't use scan images on startup, and in any case that
problem's fixed.
The only reason why it is slow for you that I can imagine is that
your filesystem doesn't cache results of access(path, R_OK) for
access(path, F_OK). What filesystem do you use for your images?
Like I said, this was on a *cold* system, with nothing cached. Also,
people using network filesystems won't get caching.
> 1) Viewing a RAW image (a .crw, to be precise) does not rotate the
> image if it was taken in vertical orientation (it previously did,
> as of about a month ago).
Could you try to track down what SVN commit broke that?
I'll try, but I won't have a huge amount of time for this.
> 2) The selection in the thumbnail view isn't highlighted -- there's
> nothing indicating which images are selected or not. The
> background's a uniform black, and the images don't get the
> "dithered" look.
I guess you have both "show label" and "show category" disabled. The
attached patch puts back the pattern over highlighted image when we show
neither categories nor labels, the aspect ratio is not 1:1 and cell
spacing is less than 3px.
I'll try that.
--=20
cd /local/pub && more beer > /dev/mouth
--------------010802000109090505010300
Content-Type: text/plain;
name="thumbnailwidget-highlight-selection.patch"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline;
filename="thumbnailwidget-highlight-selection.patch"
Index: ThumbnailView/ThumbnailWidget.cpp
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- ThumbnailView/ThumbnailWidget.cpp (revision 667590)
+++ ThumbnailView/ThumbnailWidget.cpp (working copy)
@@ -106,6 +106,12 @@
QRect rect =3D iconGeometry( row, col );
Q_ASSERT( !rect.isNull() );
painter->drawPixmap( rect, *pix );
+ if ( !Settings::SettingsData::instance()->displayCategories(=
) &&
+ !Settings::SettingsData::instance()->displayLabels() &&=
+ ( Settings::SettingsData::instance()->thumbnailAspectRa=
tio() !=3D Settings::Aspect_1_1 ) &&
+ ( Settings::SettingsData::instance()->thumbnailSpace() =
< 3 ) &&
+ _selectedFiles.contains( fileName ) )
+ painter->fillRect( rect, QBrush( palette().active().high=
light(), Dense6Pattern ) );
=20
rect =3D QRect( 0, 0, cellWidth(), cellHeight() );
if ( _leftDrop =3D=3D fileName )
--------------010802000109090505010300--
--------------enigD45B52EC63478094E3F2A8FD
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iD8DBQFGVWhlamXfqERyJRcRAoLiAJ4i7yQUwj5HR2Li4AEeWk1PJn7LRACgmyLj
8Cnm+jjbpLktv9fCKN+JaSA=
=5tdj
-----END PGP SIGNATURE-----
--------------enigD45B52EC63478094E3F2A8FD--
--===============7580126920218205603==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
_______________________________________________
KPhotoAlbum mailing list
KPhotoAlbum at kdab.net
http://mail.kdab.net/mailman/listinfo/kphotoalbum
--===============7580126920218205603==--
More information about the Kphotoalbum
mailing list