Bug 121367 - Add properties tab to digiKam and (especially) IE
Summary: Add properties tab to digiKam and (especially) IE
Status: RESOLVED FIXED
Alias: None
Product: digikam
Classification: Applications
Component: Usability-Ergonomy (show other bugs)
Version: unspecified
Platform: Compiled Sources Linux
: NOR wishlist
Target Milestone: ---
Assignee: Digikam Developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2006-02-04 17:35 UTC by Mikolaj Machowski
Modified: 2017-08-08 15:02 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In: 0.9.0


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Mikolaj Machowski 2006-02-04 17:35:24 UTC
Version:            (using KDE Devel)
Installed from:    Compiled sources
Compiler:          gcc3.4.3 
OS:                Linux

Add properties tab to digiKam and (especially) IE

Old style properties tab will allow for:

- seeing all properties of image without heavy use of mouse (good for
  accessibility)
- changing name of image in IE
- seeing properties of image in IE (now access to them is very limited)

One of cons mentioned earlier was redundancy with tooltips, but:

- there is no such redundancy in IE
- tooltips can be disabled in options and in such situation there is no
  access to properties of image
- tooltips require excessive use of mouse (bad for accessibility
- tooltips are very sensitive to mouse moves, minimal move of mouse and
  whole info vanishes

- use of properties tab and tooltips at the same time allow for very
  wide comparison of properties, not possible in any other way
Comment 1 caulier.gilles 2006-02-07 18:41:17 UTC
I'm fully agree with you Mikolaj, have a "file" properties is needed. My "image properties sidebar" first implementation commited to svn in the past included it. After any discution with Tom and Joern, we have removed it because it's redondant with tooltips in main interface.

Your viewpoints are right for me, especially with IE. This is my plan :

I will include sidebar to camera GUI, especially to remplace file properties dialog and exif dialog. I will trying to make a common 'file' properties sidebar that we can re-use in IE in first. About main interface, we need to discut about with other developper.

My viewpoint about tooltip from main interface : i don't use it because it's incomplete, especailly with file-metadata informations. A sidebar will be better because we have more space to display more information without catch any current album items.

Other Pro Photo management programs use sidebar like widget for that. It's name 'Resume for Photographer', including any file properties, image properties, and important metadata. I will trying to find any screenshots...

Gilles Caulier
Comment 2 Mikolaj Machowski 2006-02-08 00:02:51 UTC
Check this review:
http://www.luminous-landscape.com/reviews/software/lightroom1.shtml
Didn't use program (don't have Mac) but from review and screenshots UI
is a dream.
Comment 3 caulier.gilles 2006-04-04 13:03:27 UTC
*** Bug 116225 has been marked as a duplicate of this bug. ***
Comment 4 caulier.gilles 2006-04-04 13:05:55 UTC
I propose to make a generic item resume sidebar tab, including file properties and some important informations for photographer (from metadata) like 'flash on', 'aperture', etc.

Your viewpoints

Gilles Caulier
Comment 5 Mikolaj Machowski 2006-04-04 23:12:35 UTC
What IMO user should find in such sidebar:

- possibility to change name but with restriction of changing extension
- weight of image
- dimensions
- information about assigned tags
- album name (with path)
- date and time of creation (not editable)
- comments (not editable)
- rating (not editable)
- type

- less important

  - rights, owner
  - thumbnail 
  
    - could be useful in Image Editor to see original version,
      before modifications
    - could be useful also in main window for preview of image while
      comparing with other image while scrolling through big album

- chosen photo attributes (configurable?)

  - exposure time
  - aperture
Comment 6 Gerhard Kulzer 2006-04-05 09:10:07 UTC
IMHO I would like to see:
- file name
- file size
- file type
- file date
- dimensions/8bit/16bit

- camera model
- exif date
- ISO
- Aperture/exposure time
- flash

- tags
- album/category
- rating
- comment
Comment 7 Julien Narboux 2006-04-05 09:18:42 UTC
IMHO I would like to see:
- file name
- file size
- file weight (in megapixels)
- file type
- file date
- dimensions/8bit/16bit

- camera model
- exif date
- ISO
- Aperture/exposure time
- flash

- tags
- album/category
- rating
- comment 
Comment 8 caulier.gilles 2006-04-05 14:36:33 UTC
This is my comments :

- Dimensions/8bit/16bit is already in Color sidebar tab.
- Nothing will be editable, especially the filename. There is already a file in B.K.O about to improve F2 file renaming dialog.
- Take a care that this tab will be common into editor (and showfoto witch don't support database info) and main interface. Take a look about properties tab in CameraGui, if i can mix this in the same code.

Thanks in advance for you comments

Gilles
Comment 9 caulier.gilles 2006-04-24 09:16:02 UTC
SVN commit 532607 by cgilles:

digikam from trunk : 

- New Image Properties side bar tab to display image resume.
- DMetadata memory optimization and new methods to get photograph resume from image.
- Disable album item tool tips by default.

NOTES: 

- In this new resume sidebar tab, all digikam tags properties aren't displayed. i think it's redondant with Comments & tags sidebar tab. Because this one is very easy to read by non-photographers users, i think it's not necessary to duplicate here these informations, and this way simpilfy source code about to share resume sidebar tab implementation between showfoto and digiKam (there is no database depency).

- Album Item Info tool tips is now disable by default. This view is now very uncomplete about metadata. Something need to be done here to improve it (or we can remove this view ???)

TODO : in image editor, if an image is saved to a new file, all image properties side tabs aren't updated (Marcel ?).

All constructive viewpoints are welcome !

CCBUGS : 121367
CCMAIL: digikam-devel@kde.org



 M  +1 -1      digikam/albumsettings.cpp  
 M  +171 -114  libs/dmetadata/dmetadata.cpp  
 M  +13 -9     libs/dmetadata/dmetadata.h  
 M  +10 -26    libs/dmetadata/loaders/dmetaloader.cpp  
 M  +7 -2      libs/dmetadata/loaders/dmetaloader.h  
 M  +6 -10     libs/dmetadata/loaders/pngmetaloader.cpp  
 A             libs/dmetadata/photoinfocontainer.h   [License: GPL]
 M  +5 -3      libs/imageproperties/Makefile.am  
 M  +0 -4      libs/imageproperties/imagepropertiesmetadatatab.h  
 M  +29 -16    libs/imageproperties/imagepropertiessidebar.cpp  
 M  +3 -0      libs/imageproperties/imagepropertiessidebar.h  
 M  +41 -19    libs/imageproperties/imagepropertiessidebardb.cpp  
 A             libs/imageproperties/imagepropertiestab.cpp   [License: GPL]
 A             libs/imageproperties/imagepropertiestab.h   [License: GPL]
Comment 10 caulier.gilles 2006-04-24 09:19:34 UTC
SVN commit 533231 by cgilles:

digikam from trunk : image properties side bar tab :

- Camera image properties and main interface image properties look similar.
- Fix broken compilation with KDE 3.3.x
- Fix layout and spacing.

CCBUGS: 121367
CCMAIL: digikam-devel@kde.org

 M  +70 -45    cameraitempropertiestab.cpp  
 M  +69 -61    imagepropertiestab.cpp  
Comment 11 caulier.gilles 2006-04-24 10:46:20 UTC
SVN commit 533247 by cgilles:

digikam from trunk : image properties side bar tab :

- Add White balance informations.
- Add Exposure mode and program informations.
- Fix navigate bar problem with first and last current album items.

CCBUGS: 121367
CCMAIL: digikam-devel@kde.org

 M  +5 -1      dmetadata/dmetadata.cpp  
 M  +3 -0      dmetadata/photoinfocontainer.h  
 M  +1 -1      imageproperties/imagepropertiessidebardb.cpp  
 M  +43 -22    imageproperties/imagepropertiestab.cpp  
Comment 12 caulier.gilles 2006-04-24 15:15:19 UTC
SVN commit 533317 by cgilles:

digikam from trunk : album item file tip :

- Re-designed album file tip content accordinly with image poperties sidebar tab. 
- Fix mime type with RAW file (sounds like TIFF file before).
- Renamed Metadata informations to Photograph properties
- Added image Rating tag info.

PENDING TASK : added digiKam comments & tags informations in image properties sidebar tab !!! ==> We want really that ? Please give me your viewpoints !

CCBUGS: 121367
CCMAIL: digikam-devel@kde.org

 M  +115 -64   digikam/albumfiletip.cpp  
 M  +34 -32    libs/imageproperties/imagepropertiestab.cpp  
Comment 13 caulier.gilles 2006-04-24 15:37:56 UTC
a screenshot of the current implementation :

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

Please give me your viewpoints. Can i close this file now ? 

Gilles Caulier
Comment 14 Maxime Delorme 2006-04-24 16:43:37 UTC
Currently we have:
- one sidebar with properties _editable_ : comments & tags & Ratings 
- one sidebar with properties _non editable_ : size, pictures info etc

For me it's OK and more consistent to keep things like that
So IMHO you can close it
Comment 15 Mikolaj Machowski 2006-04-25 00:34:35 UTC
> PENDING TASK : added digiKam comments & tags informations in image
> properties sidebar tab !!! ==> We want really that ? Please give me your
> viewpoints !


That would be good. But if you really don't want to do that at least
change order of panels as mentioned in other post in thread.
Comment 16 Mikolaj Machowski 2006-04-25 00:34:40 UTC
Dnia poniedziałek, 24 kwietnia 2006 09:16, Gilles Caulier napisał:
> All constructive viewpoints are welcome !


Few comments:

- There is additional margin around navigation buttons in Properties
  panel, other panels don't have it.
- I am (and IMO not only me) managing in Digikam photos from various
  sources (especially scanner). In Photograph Properties there is looong
  list of "unavailable" properties. Maybe just don't show them or give
  *one* line: No Exif data available.
- Separation of sections looks heavy: horizontal bar, italics,
  underscore. Maybe make it more like in Metadata panel: bold, centered
  text, plus some space.
- Order of panels: currently this is - Properties, Metadata, Colors,
  Comments&Tags, Tag filters. IMO order should be: Properties,
  Comments&Tags, Metadata, Colors, Tag filters. In this way it is going
  from general info to more specific, especially with many metadata info
  already included into Properties panel - smaller mouse move to switch
  between Comments and File info. If you would switch additional data
  from Metadata to Comments, current order would be OK.
- I miss Album name/path. I know, I argued for folder name in the past
  but when seeing it in action it is different. On most systems folder
  name/path will be shortened which results in something like this:
  /home/mi...ikam/sesja (and this is not nested album!). To see full
  path user have to hover over name. What about changing it into Album
  and show path inside of digiKam master directory with tooltip showing
  system path?
Comment 17 caulier.gilles 2006-04-25 08:29:00 UTC
SVN commit 533527 by cgilles:

digikam from trunk : optimize spacing and layout on 'Comments & tags', 'Camera file properties', and 'Album item file properties' sidebar tabs, especially about navigate bar on the top.

CCBUGS: 121367
CCMAIL: digikam-devel@kde.org


 M  +72 -63    cameraitempropertiestab.cpp  
 M  +18 -16    imagedescedittab.cpp  
 M  +104 -95   imagepropertiestab.cpp  
Comment 18 caulier.gilles 2006-04-25 09:22:33 UTC
#1 ==> fixed in svn
#2 ==> I will take a look.
#3 ==> I will take a look.
#4 ==> no, because i want an homogenous GUI between Showfoto and digiKam (Main interface, image editor and camera gui). Showfoto don't have 'Comments & Tags' and 'Tags Filter' sidebar tabs. Properties and Metadata are common. This is why, these one, are in first on the top.
#5 ==> I don't understand what you mean... Where is the problem exactly ?

Gilles Caulier
Comment 19 caulier.gilles 2006-04-25 10:50:02 UTC
SVN commit 533575 by cgilles:

digikam from trunk : image properties sidebar tabs : set title sections to center. Add spacing around.

CCBUGS: 121367
CCMAIL: digikam-devel@kde.org

 M  +41 -31    cameraitempropertiestab.cpp  
 M  +57 -47    imagepropertiestab.cpp  
Comment 20 caulier.gilles 2006-04-25 11:20:07 UTC
SVN commit 533584 by cgilles:

digikam from trunk : image properties sidebar tabs : hide all Photograph Properties informations if no metadata are available from current image.

CCBUGS: 121367
CCMAIL: digikam-devel@kde.org

 M  +21 -2     dmetadata/photoinfocontainer.h  
 M  +96 -23    imageproperties/imagepropertiestab.cpp  
Comment 21 Mikolaj Machowski 2006-04-25 13:07:47 UTC
> #3 (formatting of section headers)


Hmm. What do you think about that?

--- imagepropertiestab.cpp.orig 2006-04-25 12:10:49.000000000 +0200
+++ imagepropertiestab.cpp      2006-04-25 12:50:34.000000000 +0200
@@ -130,7 +130,7 @@

     // --------------------------------------------------

-    QLabel *title               = new QLabel(i18n("<u><i>File 
Properties</i></u>"), settingsArea);
+    QLabel *title               = new QLabel(i18n("<b>File 
Properties</b>"), settingsArea);
     QLabel *folder              = new QLabel(i18n("<b>Folder</b>:"), 
settingsArea);
     QLabel *modifiedDate        = new QLabel(i18n("<b>Modified</b>:"), 
settingsArea);
     QLabel *size                = new QLabel(i18n("<b>Size</b>:"), 
settingsArea);
@@ -138,12 +138,12 @@
     QLabel *permissions         = new QLabel(i18n("<b>Permissions</b>:"), 
settingsArea);

     KSeparator *line            = new KSeparator (Horizontal, 
settingsArea);
-    QLabel *title2              = new QLabel(i18n("<u><i>Image 
Properties</i></u>"), settingsArea);
+    QLabel *title2              = new QLabel(i18n("<b>Image 
Properties</b>"), settingsArea);
     QLabel *mime                = new QLabel(i18n("<b>Type</b>:"), 
settingsArea);
     QLabel *dimensions          = new QLabel(i18n("<b>Dimensions</b>:"), 
settingsArea);

     KSeparator *line2           = new KSeparator (Horizontal, 
settingsArea);
-    d->title3                   = new QLabel(i18n("<u><i>Photograph 
Properties</i></u>"), settingsArea);
+    d->title3                   = new QLabel(i18n("<b>Photograph 
Properties</b>"), settingsArea);
     d->make                     = new QLabel(i18n("<b>Make</b>:"), 
settingsArea);
     d->model                    = new QLabel(i18n("<b>Model</b>:"), 
settingsArea);
     d->photoDate                = new QLabel(i18n("<b>Created</b>:"), 
settingsArea);

> #4 ==> no, because i want an homogenous GUI between Showfoto and digiKam
> (Main interface, image editor and camera gui). Showfoto don't have
> 'Comments & Tags' and 'Tags Filter' sidebar tabs. Properties and
> Metadata are common. This is why, these one, are in first on the top. 


Showfoto is separate application not used directly together with
digiKam, there is no UI need to keep interface so slavishly connected.

I move some part of discussion from the digikam-devel list:

Gilles:
>> - You didn't add comments and tags info in properties panel saying that
>>   it is redundant to Comments&Tags panel but simultaneously adding many
>>   info from meta tags. Hmm?
> yes, Comments & Tags informations are redondant. 
> Metadata isn't redandant because it's a sorting and resume area with the 

most 
> important photograph settings extracted from EXIF/IPTC/Markernotes.


But this data is in Simple view of Metadata. Only one short (as in mouse
way), click away.

> In order words, we no need to dupplicate Comments & Tags informations in 
> Properties tab because The Comments & Tags tab is clean...


I will elaborate: digiKam can be used by two sets of people: 1) making
many photos, highly interested in technical information because that
help them to judge quality of photo 2) amateurs more interested in
content and its meaning to them.

You and many current KDE/Linux users belong to 1st group. I am
belonging to 2nd and on technical list I am minority. However, in
general population of camera, users it is majority. OK, I am ending this
subject.

> #5 ==> I don't understand what you mean... Where is the problem exactly ?


In most situations Folder line will not give meaningful information.
Will show only last element of path, not showing whole Album path,
limiting usefulness of that element. I can only speak for myself but
when browsing images with right panel opened I am closing left
(organizational) panel - so don't have info about structure of digiKam
directory.
Comment 22 caulier.gilles 2006-04-25 13:36:12 UTC
SVN commit 533613 by cgilles:

digikam from trunk : image properties sidebar tabs : Fix header section titles size and style.
CCBUGS: 121367

 M  +4 -4      cameraitempropertiestab.cpp  
 M  +3 -3      imagepropertiestab.cpp  


--- trunk/extragear/graphics/digikam/libs/imageproperties/cameraitempropertiestab.cpp #533612:533613
@@ -93,7 +93,7 @@
 
     // --------------------------------------------------
         
-    QLabel *title               = new QLabel(i18n("<u><i>Camera File Properties</i></u>"), settingsArea);
+    QLabel *title               = new QLabel(i18n("<big><b>Camera File Properties</b></big>"), settingsArea);
     QLabel *folder              = new QLabel(i18n("<b>Folder</b>:"), settingsArea);
     QLabel *date                = new QLabel(i18n("<b>Date</b>:"), settingsArea);
     QLabel *size                = new QLabel(i18n("<b>Size</b>:"), settingsArea);
@@ -101,12 +101,12 @@
     QLabel *isWritable          = new QLabel(i18n("<b>Writable</b>:"), settingsArea);
     
     KSeparator *line            = new KSeparator (Horizontal, settingsArea);
-    QLabel *title2              = new QLabel(i18n("<u><i>Image Properties</i></u>"), settingsArea);    
+    QLabel *title2              = new QLabel(i18n("<big><b>Image Properties</b></big>"), settingsArea);    
     QLabel *mime                = new QLabel(i18n("<b>Type</b>:"), settingsArea);
     QLabel *dimensions          = new QLabel(i18n("<b>Dimensions</b>:"), settingsArea);
     
     KSeparator *line2           = new KSeparator (Horizontal, settingsArea);
-    QLabel *title3              = new QLabel(i18n("<u><i>Download Status</i></u>"), settingsArea);
+    QLabel *title3              = new QLabel(i18n("<big><b>Download Status</b></big>"), settingsArea);
     QLabel *newFileName         = new QLabel(i18n("<nobr><b>New Name</b></nobr>:"), settingsArea);
     QLabel *downloaded          = new QLabel(i18n("<b>Downloaded</b>:"), settingsArea);
                             
@@ -273,7 +273,7 @@
     
     // -- Download informations ------------------------------------------
 
-    d->labelNewFileName->setText(newFileName);
+    d->labelNewFileName->setText(newFileName.isEmpty() ? i18n("<i>unchanged</i>") : newFileName);
     
     if (itemInfo->downloaded < 0)
         str = unknow;
--- trunk/extragear/graphics/digikam/libs/imageproperties/imagepropertiestab.cpp #533612:533613
@@ -130,7 +130,7 @@
 
     // --------------------------------------------------
     
-    QLabel *title               = new QLabel(i18n("<u><i>File Properties</i></u>"), settingsArea);
+    QLabel *title               = new QLabel(i18n("<big><b>File Properties</b></big>"), settingsArea);
     QLabel *folder              = new QLabel(i18n("<b>Folder</b>:"), settingsArea);
     QLabel *modifiedDate        = new QLabel(i18n("<b>Modified</b>:"), settingsArea);
     QLabel *size                = new QLabel(i18n("<b>Size</b>:"), settingsArea);
@@ -138,12 +138,12 @@
     QLabel *permissions         = new QLabel(i18n("<b>Permissions</b>:"), settingsArea);
 
     KSeparator *line            = new KSeparator (Horizontal, settingsArea);
-    QLabel *title2              = new QLabel(i18n("<u><i>Image Properties</i></u>"), settingsArea);
+    QLabel *title2              = new QLabel(i18n("<big><b>Image Properties</b></big>"), settingsArea);
     QLabel *mime                = new QLabel(i18n("<b>Type</b>:"), settingsArea);
     QLabel *dimensions          = new QLabel(i18n("<b>Dimensions</b>:"), settingsArea);
 
     KSeparator *line2           = new KSeparator (Horizontal, settingsArea);
-    d->title3                   = new QLabel(i18n("<u><i>Photograph Properties</i></u>"), settingsArea);
+    d->title3                   = new QLabel(i18n("<big><b>Photograph Properties</b></big>"), settingsArea);
     d->make                     = new QLabel(i18n("<b>Make</b>:"), settingsArea);
     d->model                    = new QLabel(i18n("<b>Model</b>:"), settingsArea);
     d->photoDate                = new QLabel(i18n("<b>Created</b>:"), settingsArea);
Comment 23 caulier.gilles 2006-04-25 13:39:42 UTC
#3 ==> Fixed in svn.
#5 ==> We using KSqueezedTextLabel not a QLabel to prevent broken layout if album path is very long ! You can see the real full path name using mouse to move under the label. A tool tip will be displayed.

I close this file now

Gilles Caulier
Comment 24 caulier.gilles 2006-04-25 16:16:21 UTC
SVN commit 533699 by cgilles:

digikam from trunk : album item file tips : hide all Photograph Properties informations if no metadata are available from current image.

CCBUGS: 121367
CCMAIL: digikam-devel@kde.org

 M  +55 -50    albumfiletip.cpp  


--- trunk/extragear/graphics/digikam/digikam/albumfiletip.cpp #533698:533699
@@ -23,6 +23,8 @@
  *
  * ============================================================ */
 
+#define MAXSTRINGLEN 30 
+ 
 // Qt includes.
  
 #include <qtooltip.h>
@@ -366,61 +368,64 @@
     // -- Photograph Info ----------------------------------------------------
     // NOTA: If something is changed here, please updated imageproperties section too.
     
-    tip += headBeg + i18n("Photograph Properties") + headEnd;
-    
-    QString            metaStr;
     PhotoInfoContainer photoInfo = metaData.getPhotographInformations();
-
-    str = QString("%1 / %2").arg(photoInfo.make.isEmpty() ? unavailable : photoInfo.make)
-                            .arg(photoInfo.model.isEmpty() ? unavailable : photoInfo.model);
-    if (str.length() > 50) str = str.left(47) + "...";
-    metaStr += cellBeg + i18n("Make/Model:") + cellMid + QStyleSheet::escape( str ) + cellEnd;
     
-    if (photoInfo.dateTime.isValid())
+    if (!photoInfo.isEmpty())
     {
-        str = KGlobal::locale()->formatDateTime(photoInfo.dateTime, true, true);
-        if (str.length() > 50) str = str.left(47) + "...";
-        metaStr += cellBeg + i18n("Created:") + cellMid + QStyleSheet::escape( str ) + cellEnd;
-    }
-    else
-        metaStr += cellBeg + i18n("Created:") + cellMid + QStyleSheet::escape( unavailable ) + cellEnd;
-
-    str = photoInfo.aperture.isEmpty() ? unavailable : photoInfo.aperture;
+        QString metaStr;
+        tip += headBeg + i18n("Photograph Properties") + headEnd;
+        
+        str = QString("%1 / %2").arg(photoInfo.make.isEmpty() ? unavailable : photoInfo.make)
+                                .arg(photoInfo.model.isEmpty() ? unavailable : photoInfo.model);
+        if (str.length() > MAXSTRINGLEN) str = str.left(MAXSTRINGLEN-3) + "...";
+        metaStr += cellBeg + i18n("Make/Model:") + cellMid + QStyleSheet::escape( str ) + cellEnd;
+        
+        if (photoInfo.dateTime.isValid())
+        {
+            str = KGlobal::locale()->formatDateTime(photoInfo.dateTime, true, true);
+            if (str.length() > MAXSTRINGLEN) str = str.left(MAXSTRINGLEN-3) + "...";
+            metaStr += cellBeg + i18n("Created:") + cellMid + QStyleSheet::escape( str ) + cellEnd;
+        }
+        else
+            metaStr += cellBeg + i18n("Created:") + cellMid + QStyleSheet::escape( unavailable ) + cellEnd;
     
-    if (photoInfo.focalLenght35mm.isEmpty())
-        str += QString(" / %1").arg(photoInfo.focalLenght.isEmpty() ? unavailable : photoInfo.focalLenght);
-    else 
-        str += QString(" / %1").arg(i18n("%1 (35mm: %2)").arg(photoInfo.focalLenght).arg(photoInfo.focalLenght35mm));
+        str = photoInfo.aperture.isEmpty() ? unavailable : photoInfo.aperture;
+        
+        if (photoInfo.focalLenght35mm.isEmpty())
+            str += QString(" / %1").arg(photoInfo.focalLenght.isEmpty() ? unavailable : photoInfo.focalLenght);
+        else 
+            str += QString(" / %1").arg(i18n("%1 (35mm: %2)").arg(photoInfo.focalLenght).arg(photoInfo.focalLenght35mm));
+        
+        if (str.length() > MAXSTRINGLEN) str = str.left(MAXSTRINGLEN-3) + "...";
+        metaStr += cellBeg + i18n("Aperture/Focal:") + cellMid + QStyleSheet::escape( str ) + cellEnd;
+            
+        str = QString("%1 / %2").arg(photoInfo.exposureTime.isEmpty() ? unavailable : photoInfo.exposureTime)
+                                .arg(photoInfo.sensitivity.isEmpty() ? unavailable : i18n("%1 ISO").arg(photoInfo.sensitivity));
+        if (str.length() > MAXSTRINGLEN) str = str.left(MAXSTRINGLEN-3) + "...";
+        metaStr += cellBeg + i18n("Exposure/Sensitivity:") + cellMid + QStyleSheet::escape( str ) + cellEnd;
     
-    if (str.length() > 50) str = str.left(47) + "...";
-    metaStr += cellBeg + i18n("Aperture/Focal:") + cellMid + QStyleSheet::escape( str ) + cellEnd;
+        if (photoInfo.exposureMode.isEmpty() && photoInfo.exposureProgram.isEmpty())
+            str = unavailable;
+        else if (!photoInfo.exposureMode.isEmpty() && photoInfo.exposureProgram.isEmpty())
+            str = photoInfo.exposureMode;        
+        else if (photoInfo.exposureMode.isEmpty() && !photoInfo.exposureProgram.isEmpty())
+            str = photoInfo.exposureProgram;        
+        else 
+            str = QString("%1 / %2").arg(photoInfo.exposureMode).arg(photoInfo.exposureProgram);
+        if (str.length() > MAXSTRINGLEN) str = str.left(MAXSTRINGLEN-3) + "...";
+        metaStr += cellBeg + i18n("Mode/Program:") + cellMid + QStyleSheet::escape( str ) + cellEnd;
+            
+        str = photoInfo.flash.isEmpty() ? unavailable : photoInfo.flash;
+        if (str.length() > MAXSTRINGLEN) str = str.left(MAXSTRINGLEN-3) + "...";
+        metaStr += cellBeg + i18n("Flash:") + cellMid + QStyleSheet::escape( str ) + cellEnd;
         
-    str = QString("%1 / %2").arg(photoInfo.exposureTime.isEmpty() ? unavailable : photoInfo.exposureTime)
-                            .arg(photoInfo.sensitivity.isEmpty() ? unavailable : i18n("%1 ISO").arg(photoInfo.sensitivity));
-    if (str.length() > 50) str = str.left(47) + "...";
-    metaStr += cellBeg + i18n("Exposure/Sensitivity:") + cellMid + QStyleSheet::escape( str ) + cellEnd;
-
-    if (photoInfo.exposureMode.isEmpty() && photoInfo.exposureProgram.isEmpty())
-        str = unavailable;
-    else if (!photoInfo.exposureMode.isEmpty() && photoInfo.exposureProgram.isEmpty())
-        str = photoInfo.exposureMode;        
-    else if (photoInfo.exposureMode.isEmpty() && !photoInfo.exposureProgram.isEmpty())
-        str = photoInfo.exposureProgram;        
-    else 
-        str = QString("%1 / %2").arg(photoInfo.exposureMode).arg(photoInfo.exposureProgram);
-    if (str.length() > 50) str = str.left(47) + "...";
-    metaStr += cellBeg + i18n("Mode/Program:") + cellMid + QStyleSheet::escape( str ) + cellEnd;
+        str = photoInfo.whiteBalance.isEmpty() ? unavailable : photoInfo.whiteBalance;
+        if (str.length() > MAXSTRINGLEN) str = str.left(MAXSTRINGLEN-3) + "...";
+        metaStr += cellBeg + i18n("White Balance:") + cellMid + QStyleSheet::escape( str ) + cellEnd;
         
-    str = photoInfo.flash.isEmpty() ? unavailable : photoInfo.flash;
-    if (str.length() > 50) str = str.left(47) + "...";
-    metaStr += cellBeg + i18n("Flash:") + cellMid + QStyleSheet::escape( str ) + cellEnd;
-    
-    str = photoInfo.whiteBalance.isEmpty() ? unavailable : photoInfo.whiteBalance;
-    if (str.length() > 50) str = str.left(47) + "...";
-    metaStr += cellBeg + i18n("White Balance:") + cellMid + QStyleSheet::escape( str ) + cellEnd;
-    
-    tip += metaStr;
-
+        tip += metaStr;
+    }
+        
     // -- digiKam properties  ------------------------------------------
 
     tip += headBeg + i18n("digiKam Properties") + headEnd;
@@ -437,7 +442,7 @@
         (*it).remove(0, 1);
     
     str = tagPaths.join(", ");
-    if (str.length() > 50) str = str.left(47) + "...";
+    if (str.length() > MAXSTRINGLEN) str = str.left(MAXSTRINGLEN-3) + "...";
     tip += cellBeg + i18n("Tags:") + cellMid + str + cellEnd;
 
     str.fill( '*', info->rating() );
@@ -451,7 +456,7 @@
 {
     QString str = input.simplifyWhiteSpace();
     str = QStyleSheet::escape(str);
-    uint maxLen = 30;
+    uint maxLen = MAXSTRINGLEN;
 
     if (str.length() <= maxLen)
         return str;
Comment 25 caulier.gilles 2006-05-01 15:42:29 UTC
SVN commit 536137 by cgilles:

digikam from trunk : finalize image properties side bar tab 'Image' section : 

- add 'Color Mode' property.
- add 'Compression' property.
- add 'Bits Depth' property.

CMAIL: digikam-devel@kde.org
CCBUG: 121367

 M  +90 -36    imagepropertiestab.cpp