[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