[Digikam-devel] Experimental : image preview on main interface

classic Classic list List threaded Threaded
29 messages Options
12
Reply | Threaded
Open this post in threaded view
|

[Digikam-devel] Experimental : image preview on main interface

Gilles Caulier-2
Hi all,

Following some reports from B.K.O and discussions by IRC/mails, some users
would to have a preview mode of current album item, directly in main
interface, without to start an instance of image editor. Image editor take a
while with old computer to just previewing a RAW picture.

I have search a simple solution to do it.... and this is my proposal :

http://digikam3rdparty.free.fr/Screenshots/image_preview_on_main_interface.png

I have make an experimental patch using QWidgetStack to embed into album
collection area a new image preview. You toogle between preview and album
view using F3.

The patch is here :

http://digikam3rdparty.free.fr/misc.tarballs/preview.patch

The RAW preview use the -e dcraw option to load the embedded JPEG image in RAW
file (used to display a RAW picture on TV screen)

This patch separate Preview mode (F3) and the Edit mode (F4) on Image menu
entries. If you enable the ImageProperties sidebar, use the navigate button
to change the current image to preview.

This code is simple and not finalized. For example the code :

- don't use a cache to speed up rendering.
- don't use the embedded preview from JPEG/TIFF/PNG files available in
Makernote metadata. Canon, Nikon, Minolta, etc, record a small preview image
in Camera Settings. This is must be used instead to load the whole image. In
fact, Exiv2 need to be improved for that. i'm currently working with Andreas
about this subject.
- use QImage, not Dimg.
- don't load the preview using a separate thread to unfreeze ther GUI (Image
Editor do it). We can use a new KIO slave for that but not sure (Marcel, your
viewpoint ?)

Please don't ask me to create a very advanced new feature for 0.9.0. I have
not commited this code in svn because i'm not sure if this is the right way
to implement an image previewing. Also to finalize properlly this code, we
need more time, and i would delay this implementation later 0.9.0.

To patch your local source repository, use these command lines :

# cd digikam
# patch -p0 < preview.patch

Note : You need to re-install digiKam before to use this version because a new
menu item have been added in main interface (digikamrc file changed)

Please, give me a feedback. Thanks in advance

Gilles
_______________________________________________
Digikam-devel mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-devel
Reply | Threaded
Open this post in threaded view
|

Re: [Digikam-devel] Experimental : image preview on main interface

Laurent Rathle
Le Jeudi 15 Juin 2006 00:19, Caulier Gilles a écrit :
> Please, give me a feedback. Thanks in advance

Previewing raw is effectively much faster with this than with the editor on my
Athlon XP 3200 / 1 Gb Ram. In the editor, it stops at 10 % and wait for at
least 30 s to load the rest. New preview is less than one second :-)
_______________________________________________
Digikam-devel mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-devel
Reply | Threaded
Open this post in threaded view
|

Re: [Digikam-devel] Experimental : image preview on main interface

Gilles Caulier-2
On Thursday 15 June 2006 16:37, Laurent Rathle wrote:
> Le Jeudi 15 Juin 2006 00:19, Caulier Gilles a écrit :
> > Please, give me a feedback. Thanks in advance
>
> Previewing raw is effectively much faster with this than with the editor on
> my Athlon XP 3200 / 1 Gb Ram. In the editor, it stops at 10 % and wait for
> at least 30 s to load the rest. New preview is less than one second :-)

Yes, but take a care that preview isn't the RAW image data. It's a JPEG or
TIFF or PPM file embedded into Camera Settings - Exif Makernotes metadata
area. It's used by camera to display image on TV screen (it's more faster to
render a small JPEG than the RAW file).

Note this preview image is also available into JPEG, TIFF and PNG files if
Makernote is available. Preview image extraction will be possible using Exiv2
when :

- Exif data size limitation will be removed into Exiv2 about this metadata.
- MakerNotes will be updated, especially CANON, NIKON, OLYMPUS, etc. Actually,
only my Minolta makernote implementation include preview tags. This is not
very complicated to do using Exiftools tags reference.

Andreas, we have already talking about Exiv2 preview extraction in the past.
Can you give me your viewpoint in this room ?

Gilles
_______________________________________________
Digikam-devel mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-devel
Reply | Threaded
Open this post in threaded view
|

Re: [Digikam-devel] Experimental : image preview on main interface

Bugzilla from ahuggel@gmx.net
On Thursday 15 June 2006 22:48, Gilles Caulier wrote:

> On Thursday 15 June 2006 16:37, Laurent Rathle wrote:
> > Le Jeudi 15 Juin 2006 00:19, Caulier Gilles a écrit :
> > > Please, give me a feedback. Thanks in advance
> >
> > Previewing raw is effectively much faster with this than with the editor
> > on my Athlon XP 3200 / 1 Gb Ram. In the editor, it stops at 10 % and wait
> > for at least 30 s to load the rest. New preview is less than one second
> > :-)
>
> Yes, but take a care that preview isn't the RAW image data. It's a JPEG or
> TIFF or PPM file embedded into Camera Settings - Exif Makernotes metadata
> area. It's used by camera to display image on TV screen (it's more faster
> to render a small JPEG than the RAW file).
>
> Note this preview image is also available into JPEG, TIFF and PNG files if
> Makernote is available. Preview image extraction will be possible using
> Exiv2 when :
>
> - Exif data size limitation will be removed into Exiv2 about this metadata.
> - MakerNotes will be updated, especially CANON, NIKON, OLYMPUS, etc.
> Actually, only my Minolta makernote implementation include preview tags.
> This is not very complicated to do using Exiftools tags reference.
>
> Andreas, we have already talking about Exiv2 preview extraction in the
> past. Can you give me your viewpoint in this room ?
>
> Gilles

The Exif data of JPEGs usually contains a small thumbnail (typically only
120x160 px), in JPEG or TIFF format. I guess that's pretty useless. Besides,
some Makernotes point to a larger preview image somewhere in the JPEG (but
possibly outside of the Exif data). In RAW files I have seen up to 4 images,
including the RAW image. There is no standard for these preview images, they
come in different sizes and image formats (but mostly JPEG).

I was first of all wondering if it is desireable/a good idea if these could be
accessed through Exiv2.

If so, two options come to mind:
1) extract the relevant metadata tags into ExifData and let the application do
the work.
+ Exiv2 interface remains the same
- apps need to know for each format which tags to look at
- these tags may need to be treated specially by Exiv2

2) extend the Exiv2::Image interface to access preview images
+ apps just need to decide which preview image to use if there are several
- a bit weird: the library would then give access to metadata and preview
images, but not to the actual image

For the moment I like option 2 better, although I don't know how the new
interface should look like, ideas welcome.

Regards,
Andreas
_______________________________________________
Digikam-devel mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-devel
Reply | Threaded
Open this post in threaded view
|

Re: [Digikam-devel] Experimental : image preview on main interface

Marcel Wiesweg
In reply to this post by Gilles Caulier-2
> Hi all,
>
> Following some reports from B.K.O and discussions by IRC/mails, some users
> would to have a preview mode of current album item, directly in main
> interface, without to start an instance of image editor. Image editor take
> a while with old computer to just previewing a RAW picture.
>
> I have search a simple solution to do it.... and this is my proposal :
>
> http://digikam3rdparty.free.fr/Screenshots/image_preview_on_main_interface.
>png
>
> I have make an experimental patch using QWidgetStack to embed into album
> collection area a new image preview. You toogle between preview and album
> view using F3.
>
> The patch is here :
>
> http://digikam3rdparty.free.fr/misc.tarballs/preview.patch
>
> The RAW preview use the -e dcraw option to load the embedded JPEG image in
> RAW file (used to display a RAW picture on TV screen)
>
> This patch separate Preview mode (F3) and the Edit mode (F4) on Image menu
> entries. If you enable the ImageProperties sidebar, use the navigate button
> to change the current image to preview.
>
> This code is simple and not finalized. For example the code :
>
> - don't use a cache to speed up rendering.
> - don't use the embedded preview from JPEG/TIFF/PNG files available in
> Makernote metadata. Canon, Nikon, Minolta, etc, record a small preview
> image in Camera Settings. This is must be used instead to load the whole
> image. In fact, Exiv2 need to be improved for that. i'm currently working
> with Andreas about this subject.
> - use QImage, not Dimg.
> - don't load the preview using a separate thread to unfreeze ther GUI
> (Image Editor do it). We can use a new KIO slave for that but not sure
> (Marcel, your viewpoint ?)

I am wondering if the following is true:

The image histogram can use (if found in cache)
1. The dcraw loaded image
2. The dcraw loaded image with halfSizeColor
3. The preview image??

The preview can use (if found in cache)
1. The dcraw loaded image
2. The embedded preview image

The image editor can use (if found in cache)
1. The dcraw loaded image

The image histogram will load
the dcraw loaded image with halfSizeColor

The preview will load
the embedded preview image

The image editor will load
the dcraw loaded image

I'm not familiar with some important facts here, so please correct me.
If we can create a hierarchy like the one above, we can implement this in the
LoadingCache. I just yesterday began to write something similar to integrate
the halfSizeColor images (I know I wrote I'd fix it "till tomorrow", but it's
football world cup)


>
> Please don't ask me to create a very advanced new feature for 0.9.0. I have
> not commited this code in svn because i'm not sure if this is the right way
> to implement an image previewing. Also to finalize properlly this code, we
> need more time, and i would delay this implementation later 0.9.0.

If I had enough time I'd anyway love to write a really cool grandma-compatible
highly integrated presentation mode (tm), think of KPDF, optimized for
viewing. Talking about advanced features.

If your current solution works, i.e. it shows images properly and nothing
else, that's IMO a good and pragmatic solution for 0.9.[0,1].

>
> To patch your local source repository, use these command lines :
>
> # cd digikam
> # patch -p0 < preview.patch
>
> Note : You need to re-install digiKam before to use this version because a
> new menu item have been added in main interface (digikamrc file changed)
>
> Please, give me a feedback. Thanks in advance
>
> Gilles
> _______________________________________________
> Digikam-devel mailing list
> [hidden email]
> https://mail.kde.org/mailman/listinfo/digikam-devel
_______________________________________________
Digikam-devel mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-devel
Reply | Threaded
Open this post in threaded view
|

Re: [Digikam-devel] Experimental : image preview on main interface

Gilles Caulier-2
In reply to this post by Bugzilla from ahuggel@gmx.net
Le Jeudi 15 Juin 2006 20:34, Andreas Huggel a écrit :

> On Thursday 15 June 2006 22:48, Gilles Caulier wrote:
> > On Thursday 15 June 2006 16:37, Laurent Rathle wrote:
> > > Le Jeudi 15 Juin 2006 00:19, Caulier Gilles a écrit :
> > > > Please, give me a feedback. Thanks in advance
> > >
> > > Previewing raw is effectively much faster with this than with the
> > > editor on my Athlon XP 3200 / 1 Gb Ram. In the editor, it stops at 10 %
> > > and wait for at least 30 s to load the rest. New preview is less than
> > > one second
> > >
> > > :-)
> >
> > Yes, but take a care that preview isn't the RAW image data. It's a JPEG
> > or TIFF or PPM file embedded into Camera Settings - Exif Makernotes
> > metadata area. It's used by camera to display image on TV screen (it's
> > more faster to render a small JPEG than the RAW file).
> >
> > Note this preview image is also available into JPEG, TIFF and PNG files
> > if Makernote is available. Preview image extraction will be possible
> > using Exiv2 when :
> >
> > - Exif data size limitation will be removed into Exiv2 about this
> > metadata. - MakerNotes will be updated, especially CANON, NIKON, OLYMPUS,
> > etc. Actually, only my Minolta makernote implementation include preview
> > tags. This is not very complicated to do using Exiftools tags reference.
> >
> > Andreas, we have already talking about Exiv2 preview extraction in the
> > past. Can you give me your viewpoint in this room ?
> >
> > Gilles
>
> The Exif data of JPEGs usually contains a small thumbnail (typically only
> 120x160 px), in JPEG or TIFF format. I guess that's pretty useless.

yes, it can be used to give a thumbnail, not a large preview like that :

http://digikam3rdparty.free.fr/Screenshots/image_preview_on_main_interface.png

> Besides, some Makernotes point to a larger preview image somewhere in the
> JPEG (but possibly outside of the Exif data). In RAW files I have seen up
> to 4 images, including the RAW image. There is no standard for these
> preview images, they come in different sizes and image formats (but mostly
> JPEG).
>
> I was first of all wondering if it is desireable/a good idea if these could
> be accessed through Exiv2.
>
> If so, two options come to mind:
> 1) extract the relevant metadata tags into ExifData and let the application
> do the work.
> + Exiv2 interface remains the same
> - apps need to know for each format which tags to look at
> - these tags may need to be treated specially by Exiv2

Yes, i have started to work into this way (in my DMetadata interface), using
Minolta makernote preview image. But it can work duing the limitation of size
data from Exif tags.

>
> 2) extend the Exiv2::Image interface to access preview images
> + apps just need to decide which preview image to use if there are several
> - a bit weird: the library would then give access to metadata and preview
> images, but not to the actual image
>
> For the moment I like option 2 better, although I don't know how the new
> interface should look like, ideas welcome.

And me the first one, because the choose of the preview to use (in the case to
multiple previews available) is just a makernote tag selection. It can be
done easily by the host application. I think it's not necessary to make a new
interface into Exiv2 for that.

Gilles
_______________________________________________
Digikam-devel mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-devel
Reply | Threaded
Open this post in threaded view
|

Re: [Digikam-devel] Experimental : image preview on main interface

Bugzilla from mikmach@wp.pl
In reply to this post by Gilles Caulier-2
Dnia czwartek, 15 czerwca 2006 00:19, Caulier Gilles napisał:
> The patch is here :
>
> http://digikam3rdparty.free.fr/misc.tarballs/preview.patch

Great!

> - don't use the embedded preview from JPEG/TIFF/PNG files available in
> Makernote metadata. Canon, Nikon, Minolta, etc, record a small preview
> image in Camera Settings. This is must be used instead to load the whole
> image. In fact, Exiv2 need to be improved for that. i'm currently
> working with Andreas about this subject.

Rather not. Preview for JPEG is very small image, useless for purpose of
this functionality (cannot say about other formats).

This functionality already speeds up loading of single
image comparing to ImageEditor, and moving between images (JPEGs) is
slightly faster than in image editor. However quality of zooming(?) is
lower in this preview, for me this is acceptable.

> Please don't ask me to create a very advanced new feature for 0.9.0. I
> have not commited this code in svn because i'm not sure if this is the
> right way to implement an image previewing. Also to finalize properlly
> this code, we need more time, and i would delay this implementation
> later 0.9.0.

Few comments:

- images smaller than preview area are forcibly scaled up to fill it
- some kind of context menu would be useful, proposed actions:

  - Album view (F3)
  - Edit       (F4)
  - Open in    >
  - Assign tag >
  - Remove tag >
  - Rating     >
  - Change name...

- some kind of background (important especially for horizontal images)?
- with this functionality navigation in main window is more important,
  please make navigation panel with bigger icons (file name can be moved
  to new line) and/or allow for key navigation through images in main
  window.

m.

_______________________________________________
Digikam-devel mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-devel
Reply | Threaded
Open this post in threaded view
|

Re: [Digikam-devel] Experimental : image preview on main interface

Gilles Caulier-2
In reply to this post by Marcel Wiesweg
Le Jeudi 15 Juin 2006 22:10, Marcel Wiesweg a écrit :

> > Hi all,
> >
> > Following some reports from B.K.O and discussions by IRC/mails, some
> > users would to have a preview mode of current album item, directly in
> > main interface, without to start an instance of image editor. Image
> > editor take a while with old computer to just previewing a RAW picture.
> >
> > I have search a simple solution to do it.... and this is my proposal :
> >
> > http://digikam3rdparty.free.fr/Screenshots/image_preview_on_main_interfac
> >e. png
> >
> > I have make an experimental patch using QWidgetStack to embed into album
> > collection area a new image preview. You toogle between preview and album
> > view using F3.
> >
> > The patch is here :
> >
> > http://digikam3rdparty.free.fr/misc.tarballs/preview.patch
> >
> > The RAW preview use the -e dcraw option to load the embedded JPEG image
> > in RAW file (used to display a RAW picture on TV screen)
> >
> > This patch separate Preview mode (F3) and the Edit mode (F4) on Image
> > menu entries. If you enable the ImageProperties sidebar, use the navigate
> > button to change the current image to preview.
> >
> > This code is simple and not finalized. For example the code :
> >
> > - don't use a cache to speed up rendering.
> > - don't use the embedded preview from JPEG/TIFF/PNG files available in
> > Makernote metadata. Canon, Nikon, Minolta, etc, record a small preview
> > image in Camera Settings. This is must be used instead to load the whole
> > image. In fact, Exiv2 need to be improved for that. i'm currently working
> > with Andreas about this subject.
> > - use QImage, not Dimg.
> > - don't load the preview using a separate thread to unfreeze ther GUI
> > (Image Editor do it). We can use a new KIO slave for that but not sure
> > (Marcel, your viewpoint ?)
>
> I am wondering if the following is true:
>
> The image histogram can use (if found in cache)
> 1. The dcraw loaded image
> 2. The dcraw loaded image with halfSizeColor
> 3. The preview image??
>
> The preview can use (if found in cache)
> 1. The dcraw loaded image
> 2. The embedded preview image
>
> The image editor can use (if found in cache)
> 1. The dcraw loaded image
>
> The image histogram will load
> the dcraw loaded image with halfSizeColor
>
> The preview will load
> the embedded preview image
>
> The image editor will load
> the dcraw loaded image
>
> I'm not familiar with some important facts here, so please correct me.
> If we can create a hierarchy like the one above, we can implement this in
> the LoadingCache. I just yesterday began to write something similar to
> integrate the halfSizeColor images (I know I wrote I'd fix it "till
> tomorrow", but it's football world cup)

It's can be complex to trying to mix loading whole image using DImg and only a
preview. The implementation is different. Why not using a KIO slave like with
thumb generator ?

>
> > Please don't ask me to create a very advanced new feature for 0.9.0. I
> > have not commited this code in svn because i'm not sure if this is the
> > right way to implement an image previewing. Also to finalize properlly
> > this code, we need more time, and i would delay this implementation later
> > 0.9.0.
>
> If I had enough time I'd anyway love to write a really cool
> grandma-compatible highly integrated presentation mode (tm), think of KPDF,
> optimized for viewing. Talking about advanced features.
>
> If your current solution works, i.e. it shows images properly and nothing
> else, that's IMO a good and pragmatic solution for 0.9.[0,1].

in fact with this implementation we can kill these 3 B.K.O files :

http://bugs.kde.org/show_bug.cgi?id=127991
http://bugs.kde.org/show_bug.cgi?id=128669
http://bugs.kde.org/show_bug.cgi?id=128914       

The code to load image is embedded in GUI thread. It's fast with RAW file, but
can take a while with JPEG, PNG, TIFF (QImage loading the whole image).

Gilles
_______________________________________________
Digikam-devel mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-devel
Reply | Threaded
Open this post in threaded view
|

Re: [Digikam-devel] Experimental : image preview on main interface

Gilles Caulier-2
In reply to this post by Bugzilla from mikmach@wp.pl
On Thursday 15 June 2006 22:37, Mikolaj Machowski wrote:

> Dnia czwartek, 15 czerwca 2006 00:19, Caulier Gilles napisał:
> > The patch is here :
> >
> > http://digikam3rdparty.free.fr/misc.tarballs/preview.patch
>
> Great!
>
> > - don't use the embedded preview from JPEG/TIFF/PNG files available in
> > Makernote metadata. Canon, Nikon, Minolta, etc, record a small preview
> > image in Camera Settings. This is must be used instead to load the whole
> > image. In fact, Exiv2 need to be improved for that. i'm currently
> > working with Andreas about this subject.
>
> Rather not. Preview for JPEG is very small image, useless for purpose of
> this functionality (cannot say about other formats).

No !!! Preview is not the embedded Exif thumb (160x120 pixels). It come from
Makernote and it's not standardized. It used to render image to TV screen by
camera. For example, Preview in Minolta makernote tag "PreviewImage" :

http://owl.phy.queensu.ca/~phil/exiftool/TagNames/Minolta.html

...is always a 640x480 pixels image, in Nikon and Canon makernotes :

http://owl.phy.queensu.ca/~phil/exiftool/TagNames/Nikon.html#PreviewImage
http://owl.phy.queensu.ca/~phil/exiftool/TagNames/Canon.html#PreviewImageInfo

...is an image size depending of camera model and camera settings (640x480,
1024x768, etc.).

These tags are completly differents than standard Exif thumb tag...

There is also a preview image available into IPTC tag :

http://owl.phy.queensu.ca/~phil/exiftool/TagNames/IPTC.html#ApplicationRecord

Look the tags named ObjectPreviewFileFormat and ObjectPreviewData. There just
a lenght limitation of preview image data (256Kb), not the image size. Theses
tags can be used for example to record a 800x600 JPEG preview into large
JPEG, TIFF, PNG pictures saved by image editor !

>
> This functionality already speeds up loading of single
> image comparing to ImageEditor, and moving between images (JPEGs) is
> slightly faster than in image editor.

And this is can be improved to use Makernote preview with JPEG, TIFF, and PNG.

> However quality of zooming(?) is
> lower in this preview, for me this is acceptable.

This is depending of preview image size.

>
> > Please don't ask me to create a very advanced new feature for 0.9.0. I
> > have not commited this code in svn because i'm not sure if this is the
> > right way to implement an image previewing. Also to finalize properlly
> > this code, we need more time, and i would delay this implementation
> > later 0.9.0.
>
> Few comments:
>
> - images smaller than preview area are forcibly scaled up to fill it

Yes. I have use a scale method. This can be fixed easily.

> - some kind of context menu would be useful, proposed actions:
>
>   - Album view (F3)
>   - Edit       (F4)
>   - Open in    >
>   - Assign tag >
>   - Remove tag >
>   - Rating     >
>   - Change name...

You talking about RMB menu or Main interface menu ?

>
> - some kind of background (important especially for horizontal images)?

Well, Theme rule must be used to render background.

> - with this functionality navigation in main window is more important,
>   please make navigation panel with bigger icons (file name can be moved
>   to new line) and/or allow for key navigation through images in main
>   window.

Yes keyboard shortcuts must be added here. TODO

Gilles
_______________________________________________
Digikam-devel mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-devel
Reply | Threaded
Open this post in threaded view
|

Re: [Digikam-devel] Experimental : image preview on main interface

Arnd Baecker
In reply to this post by Bugzilla from mikmach@wp.pl


On Thu, 15 Jun 2006, Mikolaj Machowski wrote:

> Dnia czwartek, 15 czerwca 2006 00:19, Caulier Gilles napisał:
> > The patch is here :
> >
> > http://digikam3rdparty.free.fr/misc.tarballs/preview.patch
>
> Great!

Indeed!

> > - don't use the embedded preview from JPEG/TIFF/PNG files available in
> > Makernote metadata. Canon, Nikon, Minolta, etc, record a small preview
> > image in Camera Settings. This is must be used instead to load the whole
> > image. In fact, Exiv2 need to be improved for that. i'm currently
> > working with Andreas about this subject.
>
> Rather not. Preview for JPEG is very small image, useless for purpose of
> this functionality (cannot say about other formats).
>
> This functionality already speeds up loading of single
> image comparing to ImageEditor, and moving between images (JPEGs) is
> slightly faster than in image editor. However quality of zooming(?) is
> lower in this preview, for me this is acceptable.

Maybe one could first display the preview and
in the background (i.e. separate thread, I guess)
load the real thing which is displayed when it is finished.
This would allow to quickly go from one picture to the next
and if one of them is being looked at longer, it is already available
in optimal quality?
(I think I saw something like that in Adobe Bridge?)

BTW, one thing which I miss in digikam is
the pre-loading of the next image for a sequence of images
(this is for example realized in gqview and makes
going through a bunch of images feel very fast).

One could even think of an option to cache the
last N images (and anything related to them).
By this changing between different images back and-forth
(for example to compare their quality) would be very fast ...

Best, Arnd
_______________________________________________
Digikam-devel mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-devel
Reply | Threaded
Open this post in threaded view
|

Re: [Digikam-devel] Experimental : image preview on main interface

Bugzilla from mikmach@wp.pl
Dnia piątek, 16 czerwca 2006 09:16, Arnd Baecker napisał:
>
> Maybe one could first display the preview and
> in the background (i.e. separate thread, I guess)
> load the real thing which is displayed when it is finished.
> This would allow to quickly go from one picture to the next
> and if one of them is being looked at longer, it is already available
> in optimal quality?
> (I think I saw something like that in Adobe Bridge?)

This was done previously in Digikam but was removed. AFAIR reason was
that full time of loading of images in both systems (with lower quality
preview and without any preview) was the same - after many
optimisations. But maybe this problem should be revisited. When browsing
through big albums waiting for display of whole thumbnails is
irritating. In many cases I need just to recognize some colors/shapes to
decide if this photo is what I want. I don't need to wait for full
quality thumbnail and can go further.

> BTW, one thing which I miss in digikam is
> the pre-loading of the next image for a sequence of images
> (this is for example realized in gqview and makes
> going through a bunch of images feel very fast).
>
> One could even think of an option to cache the
> last N images (and anything related to them).
> By this changing between different images back and-forth
> (for example to compare their quality) would be very fast ...

I miss it too. Also preloading of thumbnails for album view could be
nice. I remember it was drastically cut down due to performance
issues but IMO it has gone too far. Maybe some option - like in KPDF
- to set use of cache depending on system RAM.

m.

_______________________________________________
Digikam-devel mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-devel
Reply | Threaded
Open this post in threaded view
|

Re: [Digikam-devel] Experimental : image preview on main interface

Bugzilla from mikmach@wp.pl
In reply to this post by Gilles Caulier-2
Dnia piątek, 16 czerwca 2006 07:56, Gilles Caulier napisał:
>
> No !!! Preview is not the embedded Exif thumb (160x120 pixels). It come
> from Makernote and it's not standardized. It used to render image to TV
> screen by camera. For example, Preview in Minolta makernote tag
> "PreviewImage" :

OK. I will check it later (and eventually respond).
>
> > This functionality already speeds up loading of single
> > image comparing to ImageEditor, and moving between images (JPEGs) is
> > slightly faster than in image editor.
>
> And this is can be improved to use Makernote preview with JPEG, TIFF,
> and PNG.

I wonder if Digikam could "fix" images and generate those info/images
and embed it into images.

> > However quality of zooming(?) is
> > lower in this preview, for me this is acceptable.
>
> This is depending of preview image size.
>
Embedded in image?

> > - some kind of context menu would be useful, proposed actions:
> >
> >   - Album view (F3)
> >   - Edit       (F4)
> >   - Open in    >
> >   - Assign tag >
> >   - Remove tag >
> >   - Rating     >
> >   - Change name...
>
> You talking about RMB menu or Main interface menu ?

Mostly RMB menu but I see that in regular interface some actions aren't
available from main menu, most notably:

      - Open in    >
      - Assign tag >
      - Remove tag >
      - Rating     >

Important due to accessibility issues.

m.

_______________________________________________
Digikam-devel mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-devel
Reply | Threaded
Open this post in threaded view
|

Re: [Digikam-devel] Experimental : image preview on main interface

ord-2
In reply to this post by Gilles Caulier-2
Caulier Gilles wrote:
>
> I have make an experimental patch using QWidgetStack to embed into album
> collection area a new image preview. You toogle between preview and album
> view using F3.
>
>
>
> Please, give me a feedback. Thanks in advance

1- I like it :-)
2- quality of jpeg images(6MP) is quite bad on my machine ??? looks like
a very quick scaling
3- having to click again on preview or use shortcut to quit preview
seems a bit awkward to me. I prefer gthumb like implementation with a
small "close preview" icon on the toolbar.
4- prev /next should always be available in preview mode. having to
click on properties sidebar to see them is not exactly "intuitive" and
takes up too much screen space. I would put them on the main toolbar space.
5-  single click should open the preview as default, maybe this should
be configurable .....
6- contextual menu
7- background




>
> Gilles
> From - Fri

_______________________________________________
Digikam-devel mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-devel
Reply | Threaded
Open this post in threaded view
|

Re: [Digikam-devel] Experimental : image preview on main interface

Marcel Wiesweg
In reply to this post by Gilles Caulier-2

> It's can be complex to trying to mix loading whole image using DImg and
> only a preview. The implementation is different. Why not using a KIO slave
> like with thumb generator ?

Ok, I understand this is more a large thumbnail for raw images.
Nevertheless, if the color sidebar tab is opened, the histogram widget will
load the real image, the same for non-raw image formats as far as I see.

So,
if we have a version of the image in the cache, we can take it (scale, convert
to QImage if necessary)
if we load the full image anyway (non-raw images), we can load it as DImg and
put it in the cache.

In the end, of course, we can all leave it as it is, use a kioslave, and think
about it later in 0.9. That's fine with me.

Marcel


> > If your current solution works, i.e. it shows images properly and nothing
> > else, that's IMO a good and pragmatic solution for 0.9.[0,1].
>
> in fact with this implementation we can kill these 3 B.K.O files :
>
> http://bugs.kde.org/show_bug.cgi?id=127991
> http://bugs.kde.org/show_bug.cgi?id=128669
> http://bugs.kde.org/show_bug.cgi?id=128914
>
> The code to load image is embedded in GUI thread. It's fast with RAW file,
> but can take a while with JPEG, PNG, TIFF (QImage loading the whole image).
>
_______________________________________________
Digikam-devel mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-devel
Reply | Threaded
Open this post in threaded view
|

Re: [Digikam-devel] Experimental : image preview on main interface

Gilles Caulier-2
In reply to this post by Gilles Caulier-2
Hi all,

This is my second version of the patch including the background color of
preview area using theme scheme from main interface.

http://digikam3rdparty.free.fr/misc.tarballs/preview2.patch

I have add preview task to finalize into 0.9.0 TODO list (without
cache/kioslave issues, delayed later 0.9.0). This will close these B.K.O
files when the code will be commited into svn:

http://bugs.kde.org/show_bug.cgi?id=127991
http://bugs.kde.org/show_bug.cgi?id=128669
http://bugs.kde.org/show_bug.cgi?id=128914

Marcel, Paco, Achim, Gerhard your viewpoints ?

Gilles
_______________________________________________
Digikam-devel mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-devel
Reply | Threaded
Open this post in threaded view
|

Re: [Digikam-devel] Experimental : image preview on main interface

Gilles Caulier-2
In reply to this post by Marcel Wiesweg
On Friday 16 June 2006 16:51, Marcel Wiesweg wrote:

> Ok, I understand this is more a large thumbnail for raw images.
> Nevertheless, if the color sidebar tab is opened, the histogram widget will
> load the real image, the same for non-raw image formats as far as I see.
>
> So,
> if we have a version of the image in the cache, we can take it (scale,
> convert to QImage if necessary)
> if we load the full image anyway (non-raw images), we can load it as DImg
> and put it in the cache.
>
> In the end, of course, we can all leave it as it is, use a kioslave, and
> think about it later in 0.9. That's fine with me.
>
> Marcel

There is a second version of my patch here :

http://digikam3rdparty.free.fr/misc.tarballs/preview2.patch

Test it and give me a feedback.

Gilles
_______________________________________________
Digikam-devel mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-devel
Reply | Threaded
Open this post in threaded view
|

Re: [Digikam-devel] Experimental : image preview on main interface

Bugzilla from mikmach@wp.pl
In reply to this post by ord-2
Dnia piątek, 16 czerwca 2006 14:48, ord napisał:

> Caulier Gilles wrote:
> > I have make an experimental patch using QWidgetStack to embed into
> > album collection area a new image preview. You toogle between preview
> > and album view using F3.
> >
> >
> >
> > Please, give me a feedback. Thanks in advance
>
> 1- I like it :-)
> 2- quality of jpeg images(6MP) is quite bad on my machine ??? looks like
> a very quick scaling
> 3- having to click again on preview or use shortcut to quit preview
> seems a bit awkward to me. I prefer gthumb like implementation with a
> small "close preview" icon on the toolbar.

Yes, better solution for exiting from preview mode is needed (I didn't
test 2nd ver. of patch).

> 4- prev /next should always be available in preview mode. having to
> click on properties sidebar to see them is not exactly "intuitive" and
> takes up too much screen space. I would put them on the main toolbar
> space.

They could be mistaken with album history buttons. Maybe change of
interface:

- hide album history buttons but allow to assign shortcuts to them, they
  are advanced feature
- move navigation in album buttons to prominent position: nice side
  effect - more similarity in interface between Album view and Image
  Editor.

> 5-  single click should open the preview as default, maybe this
> should be configurable .....

I think it depends on quality of JPEG images preview implementation.
According to poll for about 50% of users this is primary format.

m.

_______________________________________________
Digikam-devel mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-devel
Reply | Threaded
Open this post in threaded view
|

Re: [Digikam-devel] Experimental : image preview on main interface

Gilles Caulier-2
Le Vendredi 16 Juin 2006 21:11, Mikolaj Machowski a écrit :

> Dnia piątek, 16 czerwca 2006 14:48, ord napisał:
> > Caulier Gilles wrote:
> > > I have make an experimental patch using QWidgetStack to embed into
> > > album collection area a new image preview. You toogle between preview
> > > and album view using F3.
> > >
> > >
> > >
> > > Please, give me a feedback. Thanks in advance
> >
> > 1- I like it :-)
> > 2- quality of jpeg images(6MP) is quite bad on my machine ??? looks like
> > a very quick scaling
> > 3- having to click again on preview or use shortcut to quit preview
> > seems a bit awkward to me. I prefer gthumb like implementation with a
> > small "close preview" icon on the toolbar.
>
> Yes, better solution for exiting from preview mode is needed (I didn't
> test 2nd ver. of patch).

Well, just press again on F3, you toggle again on album view mode. Look like
the Qt widget cache is very fast (lets F3 pressed...)

>
> > 4- prev /next should always be available in preview mode. having to
> > click on properties sidebar to see them is not exactly "intuitive" and
> > takes up too much screen space. I would put them on the main toolbar
> > space.
>
> They could be mistaken with album history buttons. Maybe change of
> interface:
>
> - hide album history buttons but allow to assign shortcuts to them, they
>   are advanced feature
> - move navigation in album buttons to prominent position: nice side
>   effect - more similarity in interface between Album view and Image
>   Editor.
>

Perhaps, but not for 0.9.0 because this will change too many part of the main
digiKam implementation. My current patch have be done to not be intrusive
against the current implementation.

Gilles
_______________________________________________
Digikam-devel mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-devel
Reply | Threaded
Open this post in threaded view
|

Re: [Digikam-devel] Experimental : image preview on main interface

Gilles Caulier-2
In reply to this post by Gilles Caulier-2
Le Samedi 17 Juin 2006 01:14, vous avez écrit :
> Dnia piątek, 16 czerwca 2006 16:55, Gilles Caulier napisał:
> > Hi all,
> >
> > This is my second version of the patch including the background color of
> > preview area using theme scheme from main interface.
> >
> > http://digikam3rdparty.free.fr/misc.tarballs/preview2.patch
>
> Cannot compile (svn 552168 + preview2):

make distclean before, or better, remove digikam/digikam folder and recheckout
it before to apply the patch.

preview3.patch is under construction (:=)))

Gilles

>
> then mv -f ".deps/albumwidgetstack.Tpo" ".deps/albumwidgetstack.Plo"; else
> rm -f ".deps/albumwidgetstack.Tpo"; exit 1; fi
> albumwidgetstack.moc:95: error: redefinition of 'const char*
> Digikam::AlbumWidgetStack::className() const'
> albumwidgetstack.moc:22: error: 'virtual const char*
> Digikam::AlbumWidgetStack::className() const' previously defined here
> albumwidgetstack.moc:100: error: duplicate initialization of
> 'Digikam::AlbumWidgetStack::metaObj'
> albumwidgetstack.moc:100: error: redefinition of 'QMetaObject*
> Digikam::AlbumWidgetStack::metaObj'
> albumwidgetstack.moc:27: error: 'QMetaObject*
> Digikam::AlbumWidgetStack::metaObj' previously defined here
> albumwidgetstack.moc:101: error: redefinition of 'QMetaObjectCleanUp
> cleanUp_Digikam__AlbumWidgetStack'
> albumwidgetstack.moc:28: error: 'QMetaObjectCleanUp
> cleanUp_Digikam__AlbumWidgetStack' previously declared here
> albumwidgetstack.moc:123: error: redefinition of 'static QMetaObject*
> Digikam::AlbumWidgetStack::staticMetaObject()'
> albumwidgetstack.moc:50: error: 'static QMetaObject*
> Digikam::AlbumWidgetStack::staticMetaObject()' previously defined here
> albumwidgetstack.moc:141: error: redefinition of 'void*
> Digikam::AlbumWidgetStack::qt_cast(const char*)'
> albumwidgetstack.moc:68: error: 'virtual void*
> Digikam::AlbumWidgetStack::qt_cast(const char*)' previously defined here
> albumwidgetstack.moc:148: error: redefinition of 'bool
> Digikam::AlbumWidgetStack::qt_invoke(int, QUObject*)'
> albumwidgetstack.moc:75: error: 'virtual bool
> Digikam::AlbumWidgetStack::qt_invoke(int, QUObject*)' previously defined
> here
> albumwidgetstack.moc:153: error: redefinition of 'bool
> Digikam::AlbumWidgetStack::qt_emit(int, QUObject*)'
> albumwidgetstack.moc:80: error: 'virtual bool
> Digikam::AlbumWidgetStack::qt_emit(int, QUObject*)' previously defined
> here
> albumwidgetstack.moc:159: error: redefinition of 'bool
> Digikam::AlbumWidgetStack::qt_property(int, int, QVariant*)'
> albumwidgetstack.moc:86: error: 'virtual bool
> Digikam::AlbumWidgetStack::qt_property(int, int, QVariant*)' previously
> defined here
> albumwidgetstack.moc:164: error: redefinition of 'static bool
> Digikam::AlbumWidgetStack::qt_static_property(QObject*, int, int,
> QVariant*)'
> albumwidgetstack.moc:91: error: 'static bool
> Digikam::AlbumWidgetStack::qt_static_property(QObject*, int, int,
> QVariant*)' previously defined here
> albumwidgetstack.moc:168: error: redefinition of 'const char*
> Digikam::AlbumWidgetStack::className() const'
> albumwidgetstack.moc:22: error: 'virtual const char*
> Digikam::AlbumWidgetStack::className() const' previously defined here
> albumwidgetstack.moc:173: error: duplicate initialization of
> 'Digikam::AlbumWidgetStack::metaObj'
> albumwidgetstack.moc:173: error: redefinition of 'QMetaObject*
> Digikam::AlbumWidgetStack::metaObj'
> albumwidgetstack.moc:27: error: 'QMetaObject*
> Digikam::AlbumWidgetStack::metaObj' previously defined here
> albumwidgetstack.moc:174: error: redefinition of 'QMetaObjectCleanUp
> cleanUp_Digikam__AlbumWidgetStack'
> albumwidgetstack.moc:28: error: 'QMetaObjectCleanUp
> cleanUp_Digikam__AlbumWidgetStack' previously declared here
> albumwidgetstack.moc:196: error: redefinition of 'static QMetaObject*
> Digikam::AlbumWidgetStack::staticMetaObject()'
> albumwidgetstack.moc:50: error: 'static QMetaObject*
> Digikam::AlbumWidgetStack::staticMetaObject()' previously defined here
> albumwidgetstack.moc:214: error: redefinition of 'void*
> Digikam::AlbumWidgetStack::qt_cast(const char*)'
> albumwidgetstack.moc:68: error: 'virtual void*
> Digikam::AlbumWidgetStack::qt_cast(const char*)' previously defined here
> albumwidgetstack.moc:221: error: redefinition of 'bool
> Digikam::AlbumWidgetStack::qt_invoke(int, QUObject*)'
> albumwidgetstack.moc:75: error: 'virtual bool
> Digikam::AlbumWidgetStack::qt_invoke(int, QUObject*)' previously defined
> here
> albumwidgetstack.moc:226: error: redefinition of 'bool
> Digikam::AlbumWidgetStack::qt_emit(int, QUObject*)'
> albumwidgetstack.moc:80: error: 'virtual bool
> Digikam::AlbumWidgetStack::qt_emit(int, QUObject*)' previously defined
> here
> albumwidgetstack.moc:232: error: redefinition of 'bool
> Digikam::AlbumWidgetStack::qt_property(int, int, QVariant*)'
> albumwidgetstack.moc:86: error: 'virtual bool
> Digikam::AlbumWidgetStack::qt_property(int, int, QVariant*)' previously
> defined here
> albumwidgetstack.moc:237: error: redefinition of 'static bool
> Digikam::AlbumWidgetStack::qt_static_property(QObject*, int, int,
> QVariant*)'
> albumwidgetstack.moc:91: error: 'static bool
> Digikam::AlbumWidgetStack::qt_static_property(QObject*, int, int,
> QVariant*)' previously defined here
> albumwidgetstack.moc:241: error: redefinition of 'const char*
> Digikam::AlbumWidgetStack::className() const'
> albumwidgetstack.moc:22: error: 'virtual const char*
> Digikam::AlbumWidgetStack::className() const' previously defined here
> albumwidgetstack.moc:246: error: duplicate initialization of
> 'Digikam::AlbumWidgetStack::metaObj'
> albumwidgetstack.moc:246: error: redefinition of 'QMetaObject*
> Digikam::AlbumWidgetStack::metaObj'
> albumwidgetstack.moc:27: error: 'QMetaObject*
> Digikam::AlbumWidgetStack::metaObj' previously defined here
> albumwidgetstack.moc:247: error: redefinition of 'QMetaObjectCleanUp
> cleanUp_Digikam__AlbumWidgetStack'
> albumwidgetstack.moc:28: error: 'QMetaObjectCleanUp
> cleanUp_Digikam__AlbumWidgetStack' previously declared here
> albumwidgetstack.moc:269: error: redefinition of 'static QMetaObject*
> Digikam::AlbumWidgetStack::staticMetaObject()'
> albumwidgetstack.moc:50: error: 'static QMetaObject*
> Digikam::AlbumWidgetStack::staticMetaObject()' previously defined here
> albumwidgetstack.moc:287: error: redefinition of 'void*
> Digikam::AlbumWidgetStack::qt_cast(const char*)'
> albumwidgetstack.moc:68: error: 'virtual void*
> Digikam::AlbumWidgetStack::qt_cast(const char*)' previously defined here
> albumwidgetstack.moc:294: error: redefinition of 'bool
> Digikam::AlbumWidgetStack::qt_invoke(int, QUObject*)'
> albumwidgetstack.moc:75: error: 'virtual bool
> Digikam::AlbumWidgetStack::qt_invoke(int, QUObject*)' previously defined
> here
> albumwidgetstack.moc:299: error: redefinition of 'bool
> Digikam::AlbumWidgetStack::qt_emit(int, QUObject*)'
> albumwidgetstack.moc:80: error: 'virtual bool
> Digikam::AlbumWidgetStack::qt_emit(int, QUObject*)' previously defined
> here
> albumwidgetstack.moc:305: error: redefinition of 'bool
> Digikam::AlbumWidgetStack::qt_property(int, int, QVariant*)'
> albumwidgetstack.moc:86: error: 'virtual bool
> Digikam::AlbumWidgetStack::qt_property(int, int, QVariant*)' previously
> defined here
> albumwidgetstack.moc:310: error: redefinition of 'static bool
> Digikam::AlbumWidgetStack::qt_static_property(QObject*, int, int,
> QVariant*)'
> albumwidgetstack.moc:91: error: 'static bool
> Digikam::AlbumWidgetStack::qt_static_property(QObject*, int, int,
> QVariant*)' previously defined here
> albumwidgetstack.cpp:133: error: redefinition of 'class
> Digikam::AlbumWidgetStackPriv'
> albumwidgetstack.cpp:37: error: previous definition of 'class
> Digikam::AlbumWidgetStackPriv'
> albumwidgetstack.cpp:149: error: redefinition of
> 'Digikam::AlbumWidgetStack::AlbumWidgetStack(QWidget*)'
> albumwidgetstack.cpp:52: error:
> 'Digikam::AlbumWidgetStack::AlbumWidgetStack(QWidget*)' previously defined
> here
> albumwidgetstack.cpp:163: error: redefinition of
> 'Digikam::AlbumWidgetStack::~AlbumWidgetStack()'
> albumwidgetstack.cpp:66: error: 'virtual
> Digikam::AlbumWidgetStack::~AlbumWidgetStack()' previously defined here
> albumwidgetstack.cpp:168: error: redefinition of 'Digikam::AlbumIconView*
> Digikam::AlbumWidgetStack::albumIconView()'
> albumwidgetstack.cpp:71: error: 'Digikam::AlbumIconView*
> Digikam::AlbumWidgetStack::albumIconView()' previously defined here
> albumwidgetstack.cpp:173: error: redefinition of 'void
> Digikam::AlbumWidgetStack::setPreviewItem(const QString&)'
> albumwidgetstack.cpp:76: error: 'void
> Digikam::AlbumWidgetStack::setPreviewItem(const QString&)' previously
> defined here
> albumwidgetstack.cpp:179: error: redefinition of 'int
> Digikam::AlbumWidgetStack::previewMode()'
> albumwidgetstack.cpp:82: error: 'int
> Digikam::AlbumWidgetStack::previewMode()' previously defined here
> albumwidgetstack.cpp:184: error: redefinition of 'void
> Digikam::AlbumWidgetStack::setPreviewMode(int)'
> albumwidgetstack.cpp:87: error: 'void
> Digikam::AlbumWidgetStack::setPreviewMode(int)' previously defined here
> albumwidgetstack.moc:22: error: redefinition of 'const char*
> Digikam::AlbumWidgetStack::className() const'
> albumwidgetstack.moc:22: error: 'virtual const char*
> Digikam::AlbumWidgetStack::className() const' previously defined here
> albumwidgetstack.moc:27: error: duplicate initialization of
> 'Digikam::AlbumWidgetStack::metaObj'
> albumwidgetstack.moc:27: error: redefinition of 'QMetaObject*
> Digikam::AlbumWidgetStack::metaObj'
> albumwidgetstack.moc:27: error: 'QMetaObject*
> Digikam::AlbumWidgetStack::metaObj' previously defined here
> albumwidgetstack.moc:28: error: redefinition of 'QMetaObjectCleanUp
> cleanUp_Digikam__AlbumWidgetStack'
> albumwidgetstack.moc:28: error: 'QMetaObjectCleanUp
> cleanUp_Digikam__AlbumWidgetStack' previously declared here
> albumwidgetstack.moc:50: error: redefinition of 'static QMetaObject*
> Digikam::AlbumWidgetStack::staticMetaObject()'
> albumwidgetstack.moc:50: error: 'static QMetaObject*
> Digikam::AlbumWidgetStack::staticMetaObject()' previously defined here
> albumwidgetstack.moc:68: error: redefinition of 'void*
> Digikam::AlbumWidgetStack::qt_cast(const char*)'
> albumwidgetstack.moc:68: error: 'virtual void*
> Digikam::AlbumWidgetStack::qt_cast(const char*)' previously defined here
> albumwidgetstack.moc:75: error: redefinition of 'bool
> Digikam::AlbumWidgetStack::qt_invoke(int, QUObject*)'
> albumwidgetstack.moc:75: error: 'virtual bool
> Digikam::AlbumWidgetStack::qt_invoke(int, QUObject*)' previously defined
> here
> albumwidgetstack.moc:80: error: redefinition of 'bool
> Digikam::AlbumWidgetStack::qt_emit(int, QUObject*)'
> albumwidgetstack.moc:80: error: 'virtual bool
> Digikam::AlbumWidgetStack::qt_emit(int, QUObject*)' previously defined
> here
> albumwidgetstack.moc:86: error: redefinition of 'bool
> Digikam::AlbumWidgetStack::qt_property(int, int, QVariant*)'
> albumwidgetstack.moc:86: error: 'virtual bool
> Digikam::AlbumWidgetStack::qt_property(int, int, QVariant*)' previously
> defined here
> albumwidgetstack.moc:91: error: redefinition of 'static bool
> Digikam::AlbumWidgetStack::qt_static_property(QObject*, int, int,
> QVariant*)'
> albumwidgetstack.moc:91: error: 'static bool
> Digikam::AlbumWidgetStack::qt_static_property(QObject*, int, int,
> QVariant*)' previously defined here
> albumwidgetstack.moc:95: error: redefinition of 'const char*
> Digikam::AlbumWidgetStack::className() const'
> albumwidgetstack.moc:22: error: 'virtual const char*
> Digikam::AlbumWidgetStack::className() const' previously defined here
> albumwidgetstack.moc:100: error: duplicate initialization of
> 'Digikam::AlbumWidgetStack::metaObj'
> albumwidgetstack.moc:100: error: redefinition of 'QMetaObject*
> Digikam::AlbumWidgetStack::metaObj'
> albumwidgetstack.moc:27: error: 'QMetaObject*
> Digikam::AlbumWidgetStack::metaObj' previously defined here
> albumwidgetstack.moc:101: error: redefinition of 'QMetaObjectCleanUp
> cleanUp_Digikam__AlbumWidgetStack'
> albumwidgetstack.moc:28: error: 'QMetaObjectCleanUp
> cleanUp_Digikam__AlbumWidgetStack' previously declared here
> albumwidgetstack.moc:123: error: redefinition of 'static QMetaObject*
> Digikam::AlbumWidgetStack::staticMetaObject()'
> albumwidgetstack.moc:50: error: 'static QMetaObject*
> Digikam::AlbumWidgetStack::staticMetaObject()' previously defined here
> albumwidgetstack.moc:141: error: redefinition of 'void*
> Digikam::AlbumWidgetStack::qt_cast(const char*)'
> albumwidgetstack.moc:68: error: 'virtual void*
> Digikam::AlbumWidgetStack::qt_cast(const char*)' previously defined here
> albumwidgetstack.moc:148: error: redefinition of 'bool
> Digikam::AlbumWidgetStack::qt_invoke(int, QUObject*)'
> albumwidgetstack.moc:75: error: 'virtual bool
> Digikam::AlbumWidgetStack::qt_invoke(int, QUObject*)' previously defined
> here
> albumwidgetstack.moc:153: error: redefinition of 'bool
> Digikam::AlbumWidgetStack::qt_emit(int, QUObject*)'
> albumwidgetstack.moc:80: error: 'virtual bool
> Digikam::AlbumWidgetStack::qt_emit(int, QUObject*)' previously defined
> here
> albumwidgetstack.moc:159: error: redefinition of 'bool
> Digikam::AlbumWidgetStack::qt_property(int, int, QVariant*)'
> albumwidgetstack.moc:86: error: 'virtual bool
> Digikam::AlbumWidgetStack::qt_property(int, int, QVariant*)' previously
> defined here
> albumwidgetstack.moc:164: error: redefinition of 'static bool
> Digikam::AlbumWidgetStack::qt_static_property(QObject*, int, int,
> QVariant*)'
> albumwidgetstack.moc:91: error: 'static bool
> Digikam::AlbumWidgetStack::qt_static_property(QObject*, int, int,
> QVariant*)' previously defined here
> albumwidgetstack.moc:168: error: redefinition of 'const char*
> Digikam::AlbumWidgetStack::className() const'
> albumwidgetstack.moc:22: error: 'virtual const char*
> Digikam::AlbumWidgetStack::className() const' previously defined here
> albumwidgetstack.moc:173: error: duplicate initialization of
> 'Digikam::AlbumWidgetStack::metaObj'
> albumwidgetstack.moc:173: error: redefinition of 'QMetaObject*
> Digikam::AlbumWidgetStack::metaObj'
> albumwidgetstack.moc:27: error: 'QMetaObject*
> Digikam::AlbumWidgetStack::metaObj' previously defined here
> albumwidgetstack.moc:174: error: redefinition of 'QMetaObjectCleanUp
> cleanUp_Digikam__AlbumWidgetStack'
> albumwidgetstack.moc:28: error: 'QMetaObjectCleanUp
> cleanUp_Digikam__AlbumWidgetStack' previously declared here
> albumwidgetstack.moc:196: error: redefinition of 'static QMetaObject*
> Digikam::AlbumWidgetStack::staticMetaObject()'
> albumwidgetstack.moc:50: error: 'static QMetaObject*
> Digikam::AlbumWidgetStack::staticMetaObject()' previously defined here
> albumwidgetstack.moc:214: error: redefinition of 'void*
> Digikam::AlbumWidgetStack::qt_cast(const char*)'
> albumwidgetstack.moc:68: error: 'virtual void*
> Digikam::AlbumWidgetStack::qt_cast(const char*)' previously defined here
> albumwidgetstack.moc:221: error: redefinition of 'bool
> Digikam::AlbumWidgetStack::qt_invoke(int, QUObject*)'
> albumwidgetstack.moc:75: error: 'virtual bool
> Digikam::AlbumWidgetStack::qt_invoke(int, QUObject*)' previously defined
> here
> albumwidgetstack.moc:226: error: redefinition of 'bool
> Digikam::AlbumWidgetStack::qt_emit(int, QUObject*)'
> albumwidgetstack.moc:80: error: 'virtual bool
> Digikam::AlbumWidgetStack::qt_emit(int, QUObject*)' previously defined
> here
> albumwidgetstack.moc:232: error: redefinition of 'bool
> Digikam::AlbumWidgetStack::qt_property(int, int, QVariant*)'
> albumwidgetstack.moc:86: error: 'virtual bool
> Digikam::AlbumWidgetStack::qt_property(int, int, QVariant*)' previously
> defined here
> albumwidgetstack.moc:237: error: redefinition of 'static bool
> Digikam::AlbumWidgetStack::qt_static_property(QObject*, int, int,
> QVariant*)'
> albumwidgetstack.moc:91: error: 'static bool
> Digikam::AlbumWidgetStack::qt_static_property(QObject*, int, int,
> QVariant*)' previously defined here
> albumwidgetstack.moc:241: error: redefinition of 'const char*
> Digikam::AlbumWidgetStack::className() const'
> albumwidgetstack.moc:22: error: 'virtual const char*
> Digikam::AlbumWidgetStack::className() const' previously defined here
> albumwidgetstack.moc:246: error: duplicate initialization of
> 'Digikam::AlbumWidgetStack::metaObj'
> albumwidgetstack.moc:246: error: redefinition of 'QMetaObject*
> Digikam::AlbumWidgetStack::metaObj'
> albumwidgetstack.moc:27: error: 'QMetaObject*
> Digikam::AlbumWidgetStack::metaObj' previously defined here
> albumwidgetstack.moc:247: error: redefinition of 'QMetaObjectCleanUp
> cleanUp_Digikam__AlbumWidgetStack'
> albumwidgetstack.moc:28: error: 'QMetaObjectCleanUp
> cleanUp_Digikam__AlbumWidgetStack' previously declared here
> albumwidgetstack.moc:269: error: redefinition of 'static QMetaObject*
> Digikam::AlbumWidgetStack::staticMetaObject()'
> albumwidgetstack.moc:50: error: 'static QMetaObject*
> Digikam::AlbumWidgetStack::staticMetaObject()' previously defined here
> albumwidgetstack.moc:287: error: redefinition of 'void*
> Digikam::AlbumWidgetStack::qt_cast(const char*)'
> albumwidgetstack.moc:68: error: 'virtual void*
> Digikam::AlbumWidgetStack::qt_cast(const char*)' previously defined here
> albumwidgetstack.moc:294: error: redefinition of 'bool
> Digikam::AlbumWidgetStack::qt_invoke(int, QUObject*)'
> albumwidgetstack.moc:75: error: 'virtual bool
> Digikam::AlbumWidgetStack::qt_invoke(int, QUObject*)' previously defined
> here
> albumwidgetstack.moc:299: error: redefinition of 'bool
> Digikam::AlbumWidgetStack::qt_emit(int, QUObject*)'
> albumwidgetstack.moc:80: error: 'virtual bool
> Digikam::AlbumWidgetStack::qt_emit(int, QUObject*)' previously defined
> here
> albumwidgetstack.moc:305: error: redefinition of 'bool
> Digikam::AlbumWidgetStack::qt_property(int, int, QVariant*)'
> albumwidgetstack.moc:86: error: 'virtual bool
> Digikam::AlbumWidgetStack::qt_property(int, int, QVariant*)' previously
> defined here
> albumwidgetstack.moc:310: error: redefinition of 'static bool
> Digikam::AlbumWidgetStack::qt_static_property(QObject*, int, int,
> QVariant*)'
> albumwidgetstack.moc:91: error: 'static bool
> Digikam::AlbumWidgetStack::qt_static_property(QObject*, int, int,
> QVariant*)' previously defined here
> albumwidgetstack.cpp:230: error: redefinition of 'class
> Digikam::AlbumWidgetStackPriv'
> albumwidgetstack.cpp:37: error: previous definition of 'class
> Digikam::AlbumWidgetStackPriv'
> albumwidgetstack.cpp:246: error: redefinition of
> 'Digikam::AlbumWidgetStack::AlbumWidgetStack(QWidget*)'
> albumwidgetstack.cpp:52: error:
> 'Digikam::AlbumWidgetStack::AlbumWidgetStack(QWidget*)' previously defined
> here
> albumwidgetstack.cpp:260: error: redefinition of
> 'Digikam::AlbumWidgetStack::~AlbumWidgetStack()'
> albumwidgetstack.cpp:66: error: 'virtual
> Digikam::AlbumWidgetStack::~AlbumWidgetStack()' previously defined here
> albumwidgetstack.cpp:265: error: redefinition of 'Digikam::AlbumIconView*
> Digikam::AlbumWidgetStack::albumIconView()'
> albumwidgetstack.cpp:71: error: 'Digikam::AlbumIconView*
> Digikam::AlbumWidgetStack::albumIconView()' previously defined here
> albumwidgetstack.cpp:270: error: redefinition of 'void
> Digikam::AlbumWidgetStack::setPreviewItem(const QString&)'
> albumwidgetstack.cpp:76: error: 'void
> Digikam::AlbumWidgetStack::setPreviewItem(const QString&)' previously
> defined here
> albumwidgetstack.cpp:276: error: redefinition of 'int
> Digikam::AlbumWidgetStack::previewMode()'
> albumwidgetstack.cpp:82: error: 'int
> Digikam::AlbumWidgetStack::previewMode()' previously defined here
> albumwidgetstack.cpp:281: error: redefinition of 'void
> Digikam::AlbumWidgetStack::setPreviewMode(int)'
> albumwidgetstack.cpp:87: error: 'void
> Digikam::AlbumWidgetStack::setPreviewMode(int)' previously defined here
> albumwidgetstack.moc:22: error: redefinition of 'const char*
> Digikam::AlbumWidgetStack::className() const'
> albumwidgetstack.moc:22: error: 'virtual const char*
> Digikam::AlbumWidgetStack::className() const' previously defined here
> albumwidgetstack.moc:27: error: duplicate initialization of
> 'Digikam::AlbumWidgetStack::metaObj'
> albumwidgetstack.moc:27: error: redefinition of 'QMetaObject*
> Digikam::AlbumWidgetStack::metaObj'
> albumwidgetstack.moc:27: error: 'QMetaObject*
> Digikam::AlbumWidgetStack::metaObj' previously defined here
> albumwidgetstack.moc:28: error: redefinition of 'QMetaObjectCleanUp
> cleanUp_Digikam__AlbumWidgetStack'
> albumwidgetstack.moc:28: error: 'QMetaObjectCleanUp
> cleanUp_Digikam__AlbumWidgetStack' previously declared here
> albumwidgetstack.moc:50: error: redefinition of 'static QMetaObject*
> Digikam::AlbumWidgetStack::staticMetaObject()'
> albumwidgetstack.moc:50: error: 'static QMetaObject*
> Digikam::AlbumWidgetStack::staticMetaObject()' previously defined here
> albumwidgetstack.moc:68: error: redefinition of 'void*
> Digikam::AlbumWidgetStack::qt_cast(const char*)'
> albumwidgetstack.moc:68: error: 'virtual void*
> Digikam::AlbumWidgetStack::qt_cast(const char*)' previously defined here
> albumwidgetstack.moc:75: error: redefinition of 'bool
> Digikam::AlbumWidgetStack::qt_invoke(int, QUObject*)'
> albumwidgetstack.moc:75: error: 'virtual bool
> Digikam::AlbumWidgetStack::qt_invoke(int, QUObject*)' previously defined
> here
> albumwidgetstack.moc:80: error: redefinition of 'bool
> Digikam::AlbumWidgetStack::qt_emit(int, QUObject*)'
> albumwidgetstack.moc:80: error: 'virtual bool
> Digikam::AlbumWidgetStack::qt_emit(int, QUObject*)' previously defined
> here
> albumwidgetstack.moc:86: error: redefinition of 'bool
> Digikam::AlbumWidgetStack::qt_property(int, int, QVariant*)'
> albumwidgetstack.moc:86: error: 'virtual bool
> Digikam::AlbumWidgetStack::qt_property(int, int, QVariant*)' previously
> defined here
> albumwidgetstack.moc:91: error: redefinition of 'static bool
> Digikam::AlbumWidgetStack::qt_static_property(QObject*, int, int,
> QVariant*)'
> albumwidgetstack.moc:91: error: 'static bool
> Digikam::AlbumWidgetStack::qt_static_property(QObject*, int, int,
> QVariant*)' previously defined here
> albumwidgetstack.moc:95: error: redefinition of 'const char*
> Digikam::AlbumWidgetStack::className() const'
> albumwidgetstack.moc:22: error: 'virtual const char*
> Digikam::AlbumWidgetStack::className() const' previously defined here
> albumwidgetstack.moc:100: error: duplicate initialization of
> 'Digikam::AlbumWidgetStack::metaObj'
> albumwidgetstack.moc:100: error: redefinition of 'QMetaObject*
> Digikam::AlbumWidgetStack::metaObj'
> albumwidgetstack.moc:27: error: 'QMetaObject*
> Digikam::AlbumWidgetStack::metaObj' previously defined here
> albumwidgetstack.moc:101: error: redefinition of 'QMetaObjectCleanUp
> cleanUp_Digikam__AlbumWidgetStack'
> albumwidgetstack.moc:28: error: 'QMetaObjectCleanUp
> cleanUp_Digikam__AlbumWidgetStack' previously declared here
> albumwidgetstack.moc:123: error: redefinition of 'static QMetaObject*
> Digikam::AlbumWidgetStack::staticMetaObject()'
> albumwidgetstack.moc:50: error: 'static QMetaObject*
> Digikam::AlbumWidgetStack::staticMetaObject()' previously defined here
> albumwidgetstack.moc:141: error: redefinition of 'void*
> Digikam::AlbumWidgetStack::qt_cast(const char*)'
> albumwidgetstack.moc:68: error: 'virtual void*
> Digikam::AlbumWidgetStack::qt_cast(const char*)' previously defined here
> albumwidgetstack.moc:148: error: redefinition of 'bool
> Digikam::AlbumWidgetStack::qt_invoke(int, QUObject*)'
> albumwidgetstack.moc:75: error: 'virtual bool
> Digikam::AlbumWidgetStack::qt_invoke(int, QUObject*)' previously defined
> here
> albumwidgetstack.moc:153: error: redefinition of 'bool
> Digikam::AlbumWidgetStack::qt_emit(int, QUObject*)'
> albumwidgetstack.moc:80: error: 'virtual bool
> Digikam::AlbumWidgetStack::qt_emit(int, QUObject*)' previously defined
> here
> albumwidgetstack.moc:159: error: redefinition of 'bool
> Digikam::AlbumWidgetStack::qt_property(int, int, QVariant*)'
> albumwidgetstack.moc:86: error: 'virtual bool
> Digikam::AlbumWidgetStack::qt_property(int, int, QVariant*)' previously
> defined here
> albumwidgetstack.moc:164: error: redefinition of 'static bool
> Digikam::AlbumWidgetStack::qt_static_property(QObject*, int, int,
> QVariant*)'
> albumwidgetstack.moc:91: error: 'static bool
> Digikam::AlbumWidgetStack::qt_static_property(QObject*, int, int,
> QVariant*)' previously defined here
> albumwidgetstack.moc:168: error: redefinition of 'const char*
> Digikam::AlbumWidgetStack::className() const'
> albumwidgetstack.moc:22: error: 'virtual const char*
> Digikam::AlbumWidgetStack::className() const' previously defined here
> albumwidgetstack.moc:173: error: duplicate initialization of
> 'Digikam::AlbumWidgetStack::metaObj'
> albumwidgetstack.moc:173: error: redefinition of 'QMetaObject*
> Digikam::AlbumWidgetStack::metaObj'
> albumwidgetstack.moc:27: error: 'QMetaObject*
> Digikam::AlbumWidgetStack::metaObj' previously defined here
> albumwidgetstack.moc:174: error: redefinition of 'QMetaObjectCleanUp
> cleanUp_Digikam__AlbumWidgetStack'
> albumwidgetstack.moc:28: error: 'QMetaObjectCleanUp
> cleanUp_Digikam__AlbumWidgetStack' previously declared here
> albumwidgetstack.moc:196: error: redefinition of 'static QMetaObject*
> Digikam::AlbumWidgetStack::staticMetaObject()'
> albumwidgetstack.moc:50: error: 'static QMetaObject*
> Digikam::AlbumWidgetStack::staticMetaObject()' previously defined here
> albumwidgetstack...moc:214: error: redefinition of 'void*
> Digikam::AlbumWidgetStack::qt_cast(const char*)'
> albumwidgetstack.moc:68: error: 'virtual void*
> Digikam::AlbumWidgetStack::qt_cast(const char*)' previously defined here
> albumwidgetstack.moc:221: error: redefinition of 'bool
> Digikam::AlbumWidgetStack::qt_invoke(int, QUObject*)'
> albumwidgetstack.moc:75: error: 'virtual bool
> Digikam::AlbumWidgetStack::qt_invoke(int, QUObject*)' previously defined
> here
> albumwidgetstack.moc:226: error: redefinition of 'bool
> Digikam::AlbumWidgetStack::qt_emit(int, QUObject*)'
> albumwidgetstack.moc:80: error: 'virtual bool
> Digikam::AlbumWidgetStack::qt_emit(int, QUObject*)' previously defined
> here
> albumwidgetstack.moc:232: error: redefinition of 'bool
> Digikam::AlbumWidgetStack::qt_property(int, int, QVariant*)'
> albumwidgetstack.moc:86: error: 'virtual bool
> Digikam::AlbumWidgetStack::qt_property(int, int, QVariant*)' previously
> defined here
> albumwidgetstack.moc:237: error: redefinition of 'static bool
> Digikam::AlbumWidgetStack::qt_static_property(QObject*, int, int,
> QVariant*)'
> albumwidgetstack.moc:91: error: 'static bool
> Digikam::AlbumWidgetStack::qt_static_property(QObject*, int, int,
> QVariant*)' previously defined here
> albumwidgetstack.moc:241: error: redefinition of 'const char*
> Digikam::AlbumWidgetStack::className() const'
> albumwidgetstack.moc:22: error: 'virtual const char*
> Digikam::AlbumWidgetStack::className() const' previously defined here
> albumwidgetstack.moc:246: error: duplicate initialization of
> 'Digikam::AlbumWidgetStack::metaObj'
> albumwidgetstack.moc:246: error: redefinition of 'QMetaObject*
> Digikam::AlbumWidgetStack::metaObj'
> albumwidgetstack.moc:27: error: 'QMetaObject*
> Digikam::AlbumWidgetStack::metaObj' previously defined here
> albumwidgetstack.moc:247: error: redefinition of 'QMetaObjectCleanUp
> cleanUp_Digikam__AlbumWidgetStack'
> albumwidgetstack.moc:28: error: 'QMetaObjectCleanUp
> cleanUp_Digikam__AlbumWidgetStack' previously declared here
> albumwidgetstack.moc:269: error: redefinition of 'static QMetaObject*
> Digikam::AlbumWidgetStack::staticMetaObject()'
> albumwidgetstack.moc:50: error: 'static QMetaObject*
> Digikam::AlbumWidgetStack::staticMetaObject()' previously defined here
> albumwidgetstack.moc:287: error: redefinition of 'void*
> Digikam::AlbumWidgetStack::qt_cast(const char*)'
> albumwidgetstack.moc:68: error: 'virtual void*
> Digikam::AlbumWidgetStack::qt_cast(const char*)' previously defined here
> albumwidgetstack.moc:294: error: redefinition of 'bool
> Digikam::AlbumWidgetStack::qt_invoke(int, QUObject*)'
> albumwidgetstack.moc:75: error: 'virtual bool
> Digikam::AlbumWidgetStack::qt_invoke(int, QUObject*)' previously defined
> here
> albumwidgetstack.moc:299: error: redefinition of 'bool
> Digikam::AlbumWidgetStack::qt_emit(int, QUObject*)'
> albumwidgetstack.moc:80: error: 'virtual bool
> Digikam::AlbumWidgetStack::qt_emit(int, QUObject*)' previously defined
> here
> albumwidgetstack.moc:305: error: redefinition of 'bool
> Digikam::AlbumWidgetStack::qt_property(int, int, QVariant*)'
> albumwidgetstack.moc:86: error: 'virtual bool
> Digikam::AlbumWidgetStack::qt_property(int, int, QVariant*)' previously
> defined here
> albumwidgetstack.moc:310: error: redefinition of 'static bool
> Digikam::AlbumWidgetStack::qt_static_property(QObject*, int, int,
> QVariant*)'
> albumwidgetstack.moc:91: error: 'static bool
> Digikam::AlbumWidgetStack::qt_static_property(QObject*, int, int,
> QVariant*)' previously defined here
> albumwidgetstack.cpp:327: error: redefinition of 'class
> Digikam::AlbumWidgetStackPriv'
> albumwidgetstack.cpp:37: error: previous definition of 'class
> Digikam::AlbumWidgetStackPriv'
> albumwidgetstack.cpp:343: error: redefinition of
> 'Digikam::AlbumWidgetStack::AlbumWidgetStack(QWidget*)'
> albumwidgetstack.cpp:52: error:
> 'Digikam::AlbumWidgetStack::AlbumWidgetStack(QWidget*)' previously defined
> here
> albumwidgetstack.cpp:357: error: redefinition of
> 'Digikam::AlbumWidgetStack::~AlbumWidgetStack()'
> albumwidgetstack.cpp:66: error: 'virtual
> Digikam::AlbumWidgetStack::~AlbumWidgetStack()' previously defined here
> albumwidgetstack.cpp:362: error: redefinition of 'Digikam::AlbumIconView*
> Digikam::AlbumWidgetStack::albumIconView()'
> albumwidgetstack.cpp:71: error: 'Digikam::AlbumIconView*
> Digikam::AlbumWidgetStack::albumIconView()' previously defined here
> albumwidgetstack.cpp:367: error: redefinition of 'void
> Digikam::AlbumWidgetStack::setPreviewItem(const QString&)'
> albumwidgetstack.cpp:76: error: 'void
> Digikam::AlbumWidgetStack::setPreviewItem(const QString&)' previously
> defined here
> albumwidgetstack.cpp:373: error: redefinition of 'int
> Digikam::AlbumWidgetStack::previewMode()'
> albumwidgetstack.cpp:82: error: 'int
> Digikam::AlbumWidgetStack::previewMode()' previously defined here
> albumwidgetstack.cpp:378: error: redefinition of 'void
> Digikam::AlbumWidgetStack::setPreviewMode(int)'
> albumwidgetstack.cpp:87: error: 'void
> Digikam::AlbumWidgetStack::setPreviewMode(int)' previously defined here
> albumwidgetstack.moc:22: error: redefinition of 'const char*
> Digikam::AlbumWidgetStack::className() const'
> albumwidgetstack.moc:22: error: 'virtual const char*
> Digikam::AlbumWidgetStack::className() const' previously defined here
> albumwidgetstack.moc:27: error: duplicate initialization of
> 'Digikam::AlbumWidgetStack::metaObj'
> albumwidgetstack.moc:27: error: redefinition of 'QMetaObject*
> Digikam::AlbumWidgetStack::metaObj'
> albumwidgetstack.moc:27: error: 'QMetaObject*
> Digikam::AlbumWidgetStack::metaObj' previously defined here
> albumwidgetstack.moc:28: error: redefinition of 'QMetaObjectCleanUp
> cleanUp_Digikam__AlbumWidgetStack'
> albumwidgetstack.moc:28: error: 'QMetaObjectCleanUp
> cleanUp_Digikam__AlbumWidgetStack' previously declared here
> albumwidgetstack.moc:50: error: redefinition of 'static QMetaObject*
> Digikam::AlbumWidgetStack::staticMetaObject()'
> albumwidgetstack.moc:50: error: 'static QMetaObject*
> Digikam::AlbumWidgetStack::staticMetaObject()' previously defined here
> albumwidgetstack.moc:68: error: redefinition of 'void*
> Digikam::AlbumWidgetStack::qt_cast(const char*)'
> albumwidgetstack.moc:68: error: 'virtual void*
> Digikam::AlbumWidgetStack::qt_cast(const char*)' previously defined here
> albumwidgetstack.moc:75: error: redefinition of 'bool
> Digikam::AlbumWidgetStack::qt_invoke(int, QUObject*)'
> albumwidgetstack.moc:75: error: 'virtual bool
> Digikam::AlbumWidgetStack::qt_invoke(int, QUObject*)' previously defined
> here
> albumwidgetstack.moc:80: error: redefinition of 'bool
> Digikam::AlbumWidgetStack::qt_emit(int, QUObject*)'
> albumwidgetstack.moc:80: error: 'virtual bool
> Digikam::AlbumWidgetStack::qt_emit(int, QUObject*)' previously defined
> here
> albumwidgetstack.moc:86: error: redefinition of 'bool
> Digikam::AlbumWidgetStack::qt_property(int, int, QVariant*)'
> albumwidgetstack.moc:86: error: 'virtual bool
> Digikam::AlbumWidgetStack::qt_property(int, int, QVariant*)' previously
> defined here
> albumwidgetstack.moc:91: error: redefinition of 'static bool
> Digikam::AlbumWidgetStack::qt_static_property(QObject*, int, int,
> QVariant*)'
> albumwidgetstack.moc:91: error: 'static bool
> Digikam::AlbumWidgetStack::qt_static_property(QObject*, int, int,
> QVariant*)' previously defined here
> albumwidgetstack.moc:95: error: redefinition of 'const char*
> Digikam::AlbumWidgetStack::className() const'
> albumwidgetstack.moc:22: error: 'virtual const char*
> Digikam::AlbumWidgetStack::className() const' previously defined here
> albumwidgetstack.moc:100: error: duplicate initialization of
> 'Digikam::AlbumWidgetStack::metaObj'
> albumwidgetstack.moc:100: error: redefinition of 'QMetaObject*
> Digikam::AlbumWidgetStack::metaObj'
> albumwidgetstack.moc:27: error: 'QMetaObject*
> Digikam::AlbumWidgetStack::metaObj' previously defined here
> albumwidgetstack.moc:101: error: redefinition of 'QMetaObjectCleanUp
> cleanUp_Digikam__AlbumWidgetStack'
> albumwidgetstack.moc:28: error: 'QMetaObjectCleanUp
> cleanUp_Digikam__AlbumWidgetStack' previously declared here
> albumwidgetstack.moc:123: error: redefinition of 'static QMetaObject*
> Digikam::AlbumWidgetStack::staticMetaObject()'
> albumwidgetstack.moc:50: error: 'static QMetaObject*
> Digikam::AlbumWidgetStack::staticMetaObject()' previously defined here
> albumwidgetstack.moc:141: error: redefinition of 'void*
> Digikam::AlbumWidgetStack::qt_cast(const char*)'
> albumwidgetstack.moc:68: error: 'virtual void*
> Digikam::AlbumWidgetStack::qt_cast(const char*)' previously defined here
> albumwidgetstack.moc:148: error: redefinition of 'bool
> Digikam::AlbumWidgetStack::qt_invoke(int, QUObject*)'
> albumwidgetstack.moc:75: error: 'virtual bool
> Digikam::AlbumWidgetStack::qt_invoke(int, QUObject*)' previously defined
> here
> albumwidgetstack.moc:153: error: redefinition of 'bool
> Digikam::AlbumWidgetStack::qt_emit(int, QUObject*)'
> albumwidgetstack.moc:80: error: 'virtual bool
> Digikam::AlbumWidgetStack::qt_emit(int, QUObject*)' previously defined
> here
> albumwidgetstack.moc:159: error: redefinition of 'bool
> Digikam::AlbumWidgetStack::qt_property(int, int, QVariant*)'
> albumwidgetstack.moc:86: error: 'virtual bool
> Digikam::AlbumWidgetStack::qt_property(int, int, QVariant*)' previously
> defined here
> albumwidgetstack.moc:164: error: redefinition of 'static bool
> Digikam::AlbumWidgetStack::qt_static_property(QObject*, int, int,
> QVariant*)'
> albumwidgetstack.moc:91: error: 'static bool
> Digikam::AlbumWidgetStack::qt_static_property(QObject*, int, int,
> QVariant*)' previously defined here
> albumwidgetstack.moc:168: error: redefinition of 'const char*
> Digikam::AlbumWidgetStack::className() const'
> albumwidgetstack.moc:22: error: 'virtual const char*
> Digikam::AlbumWidgetStack::className() const' previously defined here
> albumwidgetstack.moc:173: error: duplicate initialization of
> 'Digikam::AlbumWidgetStack::metaObj'
> albumwidgetstack.moc:173: error: redefinition of 'QMetaObject*
> Digikam::AlbumWidgetStack::metaObj'
> albumwidgetstack.moc:27: error: 'QMetaObject*
> Digikam::AlbumWidgetStack::metaObj' previously defined here
> albumwidgetstack.moc:174: error: redefinition of 'QMetaObjectCleanUp
> cleanUp_Digikam__AlbumWidgetStack'
> albumwidgetstack.moc:28: error: 'QMetaObjectCleanUp
> cleanUp_Digikam__AlbumWidgetStack' previously declared here
> albumwidgetstack.moc:196: error: redefinition of 'static QMetaObject*
> Digikam::AlbumWidgetStack::staticMetaObject()'
> albumwidgetstack.moc:50: error: 'static QMetaObject*
> Digikam::AlbumWidgetStack::staticMetaObject()' previously defined here
> albumwidgetstack.moc:214: error: redefinition of 'void*
> Digikam::AlbumWidgetStack::qt_cast(const char*)'
> albumwidgetstack.moc:68: error: 'virtual void*
> Digikam::AlbumWidgetStack::qt_cast(const char*)' previously defined here
> albumwidgetstack.moc:221: error: redefinition of 'bool
> Digikam::AlbumWidgetStack::qt_invoke(int, QUObject*)'
> albumwidgetstack.moc:75: error: 'virtual bool
> Digikam::AlbumWidgetStack::qt_invoke(int, QUObject*)' previously defined
> here
> albumwidgetstack.moc:226: error: redefinition of 'bool
> Digikam::AlbumWidgetStack::qt_emit(int, QUObject*)'
> albumwidgetstack.moc:80: error: 'virtual bool
> Digikam::AlbumWidgetStack::qt_emit(int, QUObject*)' previously defined
> here
> albumwidgetstack.moc:232: error: redefinition of 'bool
> Digikam::AlbumWidgetStack::qt_property(int, int, QVariant*)'
> albumwidgetstack.moc:86: error: 'virtual bool
> Digikam::AlbumWidgetStack::qt_property(int, int, QVariant*)' previously
> defined here
> albumwidgetstack.moc:237: error: redefinition of 'static bool
> Digikam::AlbumWidgetStack::qt_static_property(QObject*, int, int,
> QVariant*)'
> albumwidgetstack.moc:91: error: 'static bool
> Digikam::AlbumWidgetStack::qt_static_property(QObject*, int, int,
> QVariant*)' previously defined here
> albumwidgetstack.moc:241: error: redefinition of 'const char*
> Digikam::AlbumWidgetStack::className() const'
> albumwidgetstack.moc:22: error: 'virtual const char*
> Digikam::AlbumWidgetStack::className() const' previously defined here
> albumwidgetstack.moc:246: error: duplicate initialization of
> 'Digikam::AlbumWidgetStack::metaObj'
> albumwidgetstack.moc:246: error: redefinition of 'QMetaObject*
> Digikam::AlbumWidgetStack::metaObj'
> albumwidgetstack.moc:27: error: 'QMetaObject*
> Digikam::AlbumWidgetStack::metaObj' previously defined here
> albumwidgetstack.moc:247: error: redefinition of 'QMetaObjectCleanUp
> cleanUp_Digikam__AlbumWidgetStack'
> albumwidgetstack.moc:28: error: 'QMetaObjectCleanUp
> cleanUp_Digikam__AlbumWidgetStack' previously declared here
> albumwidgetstack.moc:269: error: redefinition of 'static QMetaObject*
> Digikam::AlbumWidgetStack::staticMetaObject()'
> albumwidgetstack.moc:50: error: 'static QMetaObject*
> Digikam::AlbumWidgetStack::staticMetaObject()' previously defined here
> albumwidgetstack.moc:287: error: redefinition of 'void*
> Digikam::AlbumWidgetStack::qt_cast(const char*)'
> albumwidgetstack.moc:68: error: 'virtual void*
> Digikam::AlbumWidgetStack::qt_cast(const char*)' previously defined here
> albumwidgetstack.moc:294: error: redefinition of 'bool
> Digikam::AlbumWidgetStack::qt_invoke(int, QUObject*)'
> albumwidgetstack.moc:75: error: 'virtual bool
> Digikam::AlbumWidgetStack::qt_invoke(int, QUObject*)' previously defined
> here
> albumwidgetstack.moc:299: error: redefinition of 'bool
> Digikam::AlbumWidgetStack::qt_emit(int, QUObject*)'
> albumwidgetstack.moc:80: error: 'virtual bool
> Digikam::AlbumWidgetStack::qt_emit(int, QUObject*)' previously defined
> here
> albumwidgetstack.moc:305: error: redefinition of 'bool
> Digikam::AlbumWidgetStack::qt_property(int, int, QVariant*)'
> albumwidgetstack.moc:86: error: 'virtual bool
> Digikam::AlbumWidgetStack::qt_property(int, int, QVariant*)' previously
> defined here
> albumwidgetstack.moc:310: error: redefinition of 'static bool
> Digikam::AlbumWidgetStack::qt_static_property(QObject*, int, int,
> QVariant*)'
> albumwidgetstack.moc:91: error: 'static bool
> Digikam::AlbumWidgetStack::qt_static_property(QObject*, int, int,
> QVariant*)' previously defined here
> make[1]: *** [albumwidgetstack.lo] Błąd 1
> make[1]: Leaving directory
> `/home/mikolaj/kde/head/extragear/graphics/digikam/digikam'
> make: *** [all-recursive] Błąd 1
>
> m.
_______________________________________________
Digikam-devel mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-devel
Reply | Threaded
Open this post in threaded view
|

Re: [Digikam-devel] Experimental : image preview on main interface

Gilles Caulier-2
In reply to this post by Gilles Caulier-2
This is the 3rd version of the patch. What's NEWS :

- new keyboard shortcuts :
   * PAGE UP : previous image in current collection
   * PAGE DOWN : next image  in current collection
   * HOME : first image  in current collection
   * END : last image  in current collection
   * ESC : go out previous mode (like if you press F3 again)

- new wheel mouse rules :
   * wheel to up : previous image  in current collection
   * wheel to down :  next image  in current collection

The patch is here :

http://digikam3rdparty.free.fr/misc.tarballs/preview3.patch

A fresh screenshoot is here :

http://digikam3rdparty.free.fr/Screenshots/image_preview_on_main_interface.png

A nice week end

Gilles
_______________________________________________
Digikam-devel mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-devel
12