[Digikam-devel] extragear/graphics/digikam/libs/widgets

Francisco J. Cruz fj.cruz at supercable.es
Fri Jan 13 08:57:29 GMT 2006


SVN commit 497581 by fjcruz:

Widget to show icc metadata in open file dialogs. Warning: it's still buggy.

CCMAIL:digikam-devel at kde.org

 M  +36 -8     iccpreviewwidget.cpp  
 M  +13 -6     iccpreviewwidget.h  


--- trunk/extragear/graphics/digikam/libs/widgets/iccpreviewwidget.cpp #497580:497581
@@ -35,6 +35,8 @@
 
 #include <klocale.h>
 #include <kdialog.h>
+#include <ksqueezedtextlabel.h>
+#include <kdebug.h>
 
 // Others
 
@@ -46,34 +48,34 @@
                     : KPreviewWidgetBase( parent )
 {
     //TODO
-    QVBoxLayout *layout = new QVBoxLayout(parent, 0,  KDialog::spacingHint());
+    QVBoxLayout *layout = new QVBoxLayout(this, 0,  KDialog::spacingHint());
     
-    QVGroupBox *metaData = new QVGroupBox(parent);
+    QVGroupBox *metaData = new QVGroupBox(this);
     
     QHGroupBox *name = new QHGroupBox(metaData);
     name->setFrameStyle(QFrame::NoFrame);
     QLabel *label1 = new QLabel(i18n("Name: "), name);
-    m_name = new QLabel(0, name);
+    m_name = new KSqueezedTextLabel(0, name);
 
     QHGroupBox *description = new QHGroupBox(metaData);
     description->setFrameStyle(QFrame::NoFrame);
     QLabel *label2 = new QLabel(i18n("Description: "), description);
-    m_description = new QLabel(0, description);
+    m_description = new KSqueezedTextLabel(0, description);
 
     QHGroupBox *colorSpace = new QHGroupBox(metaData);
     colorSpace->setFrameStyle(QFrame::NoFrame);
     QLabel *label3 = new QLabel(i18n("Color space: "), colorSpace);
-    m_colorSpace = new QLabel(0, colorSpace);
+    m_colorSpace = new KSqueezedTextLabel(0, colorSpace);
 
     QHGroupBox *deviceClass = new QHGroupBox(metaData);
     deviceClass->setFrameStyle(QFrame::NoFrame);
     QLabel *label4 = new QLabel(i18n("Device class: "), deviceClass);
-    m_deviceClass = new QLabel(0, deviceClass);
+    m_deviceClass = new KSqueezedTextLabel(0, deviceClass);
 
     QHGroupBox *renderingIntent = new QHGroupBox(metaData);
     renderingIntent->setFrameStyle(QFrame::NoFrame);
     QLabel *label5 = new QLabel(i18n("Rendering intent: "), renderingIntent);
-    m_renderingIntent = new QLabel(0, renderingIntent);
+    m_renderingIntent = new KSqueezedTextLabel(0, renderingIntent);
     
     layout->addWidget(metaData);
 }
@@ -86,12 +88,30 @@
 void ICCPreviewWidget::showPreview( const KURL &url)
 {
     //TODO
-    getICCData(url);
+    if (url.isLocalFile())
+    {
+        kdDebug() << "Is Local file" << endl;
+        currentUrl = url;
+        getICCData(currentUrl);
+    }
+    else
+    {
+        kdDebug() << "Not Local file" << endl;
+        clearPreview();
+        return;
+    }
 }
 
 void ICCPreviewWidget::clearPreview()
 {
     //TODO
+    m_name->clear();
+    m_description->clear();
+    m_colorSpace->clear();
+    m_deviceClass->clear();
+    m_renderingIntent->clear();
+    currentUrl = KURL();
+    
 }
 
 void ICCPreviewWidget::getICCData( const KURL &url)
@@ -99,8 +119,12 @@
     //TODO
     cmsHPROFILE tmpProfile=0;
     QString space, device, intent;
+    if (!url.hasPath())
+        return;
+    
     tmpProfile = cmsOpenProfileFromFile(QFile::encodeName(url.path()), "r");
 
+    
     m_name->setText(QString(cmsTakeProductName(tmpProfile)));
     m_description->setText(QString(cmsTakeProductDesc(tmpProfile)));
 
@@ -180,6 +204,10 @@
     cmsCloseProfile(tmpProfile);
 }
 
+void ICCPreviewWidget::virtual_hook( int, void* )
+{
 }
 
+}
+
 #include "iccpreviewwidget.moc"
--- trunk/extragear/graphics/digikam/libs/widgets/iccpreviewwidget.h #497580:497581
@@ -30,7 +30,8 @@
 
 #include LCMS_HEADER
 
-class QLabel;
+class KSqueezedTextLabel;
+class KURL;
 
 namespace Digikam
 {
@@ -51,14 +52,20 @@
     virtual void showPreview(const KURL &url);
     virtual void clearPreview();
 
+protected:
+
+    virtual void virtual_hook(int id, void* data);
+
 private:
 
-    QLabel  *m_name;
-    QLabel  *m_description;
-    QLabel  *m_colorSpace;
-    QLabel  *m_deviceClass;
-    QLabel  *m_renderingIntent;
+    KSqueezedTextLabel  *m_name;
+    KSqueezedTextLabel  *m_description;
+    KSqueezedTextLabel  *m_colorSpace;
+    KSqueezedTextLabel  *m_deviceClass;
+    KSqueezedTextLabel  *m_renderingIntent;
 
+    KURL                currentUrl;
+
 private:
 
     void getICCData(const KURL &url);



More information about the Digikam-devel mailing list