[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    extragear/graphics/digikam
From:       Andi Clemens <andi.clemens () gmx ! net>
Date:       2010-05-22 17:33:22
Message-ID: 20100522173322.96E80AC8BC () svn ! kde ! org
[Download RAW message or body]

SVN commit 1129508 by aclemens:

Add headers to the database key selector

 M  +1 -0      CMakeLists.txt  
 M  +1 -0      tests/CMakeLists.txt  
 A             utilities/advancedrename/parser/options/database/dbheaderlistitem.cpp  \
[License: GPL (v2+)]  A             \
utilities/advancedrename/parser/options/database/dbheaderlistitem.h   \
utilities/advancedrename/parser/options/database/dbkeyscollection.cpp#1129484 \
[License: GPL (v2+)]  M  +7 -1      \
utilities/advancedrename/parser/options/database/dbkeyscollection.cpp    M  +3 -1     \
utilities/advancedrename/parser/options/database/dbkeyscollection.h    M  +42 -6     \
utilities/advancedrename/parser/options/database/dbkeyselector.cpp    M  +9 -4      \
utilities/advancedrename/parser/options/database/dbkeyselector.h    M  +1 -0      \
utilities/advancedrename/parser/options/database/keys/commonkeys.cpp    M  +1 -0      \
utilities/advancedrename/parser/options/database/keys/metadatakeys.cpp  


--- trunk/extragear/graphics/digikam/CMakeLists.txt #1129507:1129508
@@ -1217,6 +1217,7 @@
         ${CMAKE_CURRENT_SOURCE_DIR}/utilities/advancedrename/parser/options/database/databaseoption.cpp
                
         ${CMAKE_CURRENT_SOURCE_DIR}/utilities/advancedrename/parser/options/database/dbkeyselector.cpp
                
         ${CMAKE_CURRENT_SOURCE_DIR}/utilities/advancedrename/parser/options/database/dbkeyscollection.cpp
 +        ${CMAKE_CURRENT_SOURCE_DIR}/utilities/advancedrename/parser/options/database/dbheaderlistitem.cpp
                
         ${CMAKE_CURRENT_SOURCE_DIR}/utilities/advancedrename/parser/options/database/keys/commonkeys.cpp
                
         ${CMAKE_CURRENT_SOURCE_DIR}/utilities/advancedrename/parser/options/database/keys/metadatakeys.cpp
                
         ${CMAKE_CURRENT_SOURCE_DIR}/utilities/advancedrename/parser/options/dateoption.cpp
                
--- trunk/extragear/graphics/digikam/tests/CMakeLists.txt #1129507:1129508
@@ -68,6 +68,7 @@
     ${CMAKE_CURRENT_SOURCE_DIR}/../utilities/advancedrename/parser/options/database/databaseoption.cpp
                
     ${CMAKE_CURRENT_SOURCE_DIR}/../utilities/advancedrename/parser/options/database/dbkeyselector.cpp
                
     ${CMAKE_CURRENT_SOURCE_DIR}/../utilities/advancedrename/parser/options/database/dbkeyscollection.cpp
 +    ${CMAKE_CURRENT_SOURCE_DIR}/../utilities/advancedrename/parser/options/database/dbheaderlistitem.cpp
                
     ${CMAKE_CURRENT_SOURCE_DIR}/../utilities/advancedrename/parser/options/database/keys/commonkeys.cpp
                
     ${CMAKE_CURRENT_SOURCE_DIR}/../utilities/advancedrename/parser/options/database/keys/metadatakeys.cpp
                
     ${CMAKE_CURRENT_SOURCE_DIR}/../utilities/advancedrename/parser/options/dateoption.cpp
                
--- trunk/extragear/graphics/digikam/utilities/advancedrename/parser/options/database/dbkeyscollection.cpp \
#1129507:1129508 @@ -26,8 +26,9 @@
 namespace Digikam
 {
 
-DbKeysCollection::DbKeysCollection()
+DbKeysCollection::DbKeysCollection(const QString& name)
 {
+    this->name = name;
 }
 
 DbKeysCollection::~DbKeysCollection()
@@ -39,6 +40,11 @@
     return getDbValue(key, settings);
 }
 
+QString DbKeysCollection::collectionName() const
+{
+    return name;
+}
+
 void DbKeysCollection::addId(const QString& id, const QString& description)
 {
     if (id.isEmpty() || description.isEmpty())
--- trunk/extragear/graphics/digikam/utilities/advancedrename/parser/options/database/dbkeyscollection.h \
#1129507:1129508 @@ -41,11 +41,12 @@
 {
 public:
 
-    DbKeysCollection();
+    DbKeysCollection(const QString& name);
     virtual ~DbKeysCollection();
 
     QString getValue(const QString& key, ParseSettings& settings);
     DbKeyIdsMap ids() const;
+    QString collectionName() const;
 
 protected:
 
@@ -55,6 +56,7 @@
 private:
 
     DbKeyIdsMap idsMap;
+    QString     name;
 };
 
 } // namespace Digikam
--- trunk/extragear/graphics/digikam/utilities/advancedrename/parser/options/database/dbkeyselector.cpp \
#1129507:1129508 @@ -3,10 +3,10 @@
  * This file is a part of digiKam project
  * http://www.digikam.org
  *
- * Date        : 2009-07-16
- * Description : metadata selector.
+ * Date        : 2010-05-22
+ * Description : database key selector.
  *
- * Copyright (C) 2009 by Gilles Caulier <caulier dot gilles at gmail dot com>
+ * Copyright (C) 2010 by Andi Clemens <andi dot clemens at gmx dot net>
  *
  * This program is free software; you can redistribute it
  * and/or modify it under the terms of the GNU General
@@ -28,6 +28,8 @@
 #include <QTreeWidget>
 #include <QHeaderView>
 #include <QGridLayout>
+#include <QString>
+#include <QMap>
 
 // KDE includes
 
@@ -39,11 +41,12 @@
 
 #include "ditemtooltip.h"
 #include "dbkeyscollection.h"
+#include "dbheaderlistitem.h"
 
 namespace Digikam
 {
 
-DbKeySelectorItem::DbKeySelectorItem(QTreeWidget *parent, const QString& title, \
const QString& desc) +DbKeySelectorItem::DbKeySelectorItem(DbHeaderListItem *parent, \
                const QString& title, const QString& desc)
                  : QTreeWidgetItem(parent), m_key(title), m_description(desc)
 {
     setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled | Qt::ItemIsUserCheckable);
@@ -105,12 +108,19 @@
 void DbKeySelector::setKeysMap(const DbOptionKeysMap& map)
 {
     clear();
+    QMap<QString, DbHeaderListItem*> headers;
 
     for (DbOptionKeysMap::const_iterator it = map.constBegin(); it != \
map.constEnd(); ++it)  {
-        new DbKeySelectorItem(this, it.key(), it.value()->ids().value(it.key()));
+        if (!headers.contains(it.value()->collectionName()))
+        {
+            headers.insert(it.value()->collectionName(), new DbHeaderListItem(this, \
it.value()->collectionName()));  }
+        new DbKeySelectorItem(headers.value(it.value()->collectionName()),
+                              it.key(),
+                              it.value()->ids().value(it.key()));
 }
+}
 
 QStringList DbKeySelector::checkedKeysList()
 {
@@ -186,7 +196,7 @@
     QTreeWidgetItemIterator it2(d->selector);
     while (*it2)
     {
-        DbKeySelectorItem *item = dynamic_cast<DbKeySelectorItem*>(*it2);
+        DbHeaderListItem *item = dynamic_cast<DbHeaderListItem*>(*it2);
         if (item)
             item->setHidden(false);
         ++it2;
@@ -213,7 +223,33 @@
         ++it;
     }
 
+    removeChildlessHeaders();
     d->searchBar->slotSearchResult(atleastOneMatch);
 }
 
+
+void DbKeySelectorView::removeChildlessHeaders()
+{
+    QTreeWidgetItemIterator it(d->selector);
+    while (*it)
+    {
+        DbHeaderListItem *item = dynamic_cast<DbHeaderListItem*>(*it);
+        if (item)
+        {
+            int children   = item->childCount();
+            int visibles = 0;
+            for (int i = 0 ; i < children; ++i)
+            {
+                QTreeWidgetItem* citem = (*it)->child(i);
+                if (!citem->isHidden())
+                    ++visibles;
+            }
+            if (!children || !visibles)
+                item->setHidden(true);
+        }
+        ++it;
+    }
+}
+
+
 }  // namespace Digikam
--- trunk/extragear/graphics/digikam/utilities/advancedrename/parser/options/database/dbkeyselector.h \
#1129507:1129508 @@ -3,10 +3,10 @@
  * This file is a part of digiKam project
  * http://www.digikam.org
  *
- * Date        : 2009-07-16
- * Description : metadata selector.
+ * Date        : 2010-05-22
+ * Description : database key selector.
  *
- * Copyright (C) 2009 by Gilles Caulier <caulier dot gilles at gmail dot com>
+ * Copyright (C) 2010 by Andi Clemens <andi dot clemens at gmx dot net>
  *
  * This program is free software; you can redistribute it
  * and/or modify it under the terms of the GNU General
@@ -38,13 +38,14 @@
 
 namespace Digikam
 {
+class DbHeaderListItem;
 
 class DIGIKAM_EXPORT DbKeySelectorItem : public QTreeWidgetItem
 {
 
 public:
 
-    DbKeySelectorItem(QTreeWidget* parent, const QString& title, const QString& \
desc); +    DbKeySelectorItem(DbHeaderListItem* parent, const QString& title, const \
QString& desc);  virtual ~DbKeySelectorItem();
 
     QString key()         const;
@@ -92,6 +93,10 @@
 
 private:
 
+    void removeChildlessHeaders();
+
+private:
+
     DbKeySelectorViewPriv* const d;
 };
 
--- trunk/extragear/graphics/digikam/utilities/advancedrename/parser/options/database/keys/commonkeys.cpp \
#1129507:1129508 @@ -50,6 +50,7 @@
 {
 
 CommonKeys::CommonKeys()
+          : DbKeysCollection(i18n("Common File Information"))
 {
     addId(KEY_DEFAULTCOMMENT,  i18n("Default comment of the image"));
     addId(KEY_DEFAULTAUTHOR,   i18n("Default author of the image"));
--- trunk/extragear/graphics/digikam/utilities/advancedrename/parser/options/database/keys/metadatakeys.cpp \
#1129507:1129508 @@ -52,6 +52,7 @@
 {
 
 MetadataKeys::MetadataKeys()
+            : DbKeysCollection(i18n("Metadata Information"))
 {
     addId(KEY_MAKE,                         i18n("Make of the camera"));
     addId(KEY_MODEL,                        i18n("Model of the camera"));


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic