[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [digikam/development/3.0.0] utilities/cameragui/models: Some modifications to the models
From: Islam Wazery <wazery () ubuntu ! com>
Date: 2012-07-31 23:11:44
Message-ID: 20120731231144.DBA61A60A6 () git ! kde ! org
[Download RAW message or body]
Git commit e79b31dd9a817e35cea0c74f7a6aab41bfb2db6c by Islam Wazery.
Committed on 01/08/2012 at 00:41.
Pushed by wazery into branch 'development/3.0.0'.
Some modifications to the models
M +54 -13 utilities/cameragui/models/importfiltermodel.cpp
M +40 -6 utilities/cameragui/models/importfiltermodel.h
M +3 -2 utilities/cameragui/models/importimagemodel.cpp
M +4 -1 utilities/cameragui/models/importimagemodel.h
M +6 -0 utilities/cameragui/models/importmodel.cpp
M +2 -0 utilities/cameragui/models/importmodel.h
M +1 -0 utilities/cameragui/models/importthumbnailmodel.cpp
http://commits.kde.org/digikam/e79b31dd9a817e35cea0c74f7a6aab41bfb2db6c
diff --git a/utilities/cameragui/models/importfiltermodel.cpp \
b/utilities/cameragui/models/importfiltermodel.cpp index f714061..00da30c 100644
--- a/utilities/cameragui/models/importfiltermodel.cpp
+++ b/utilities/cameragui/models/importfiltermodel.cpp
@@ -215,9 +215,8 @@ void \
ImportSortFilterModel::setDirectSourceImportModel(ImportImageModel* const s
//--- ImportFilterModel methods ---------------------------------
-class ImportFilterModel::ImportFilterModelPrivate: public QObject
+class ImportFilterModel::ImportFilterModelPrivate : public QObject
{
- Q_OBJECT
public:
@@ -227,15 +226,28 @@ public:
importImageModel = 0;
}
+ void init(ImportFilterModel* _q);
+
ImportFilterModel* q;
ImportImageModel* importImageModel;
CamItemSortSettings sorter;
+
+Q_SIGNALS:
+
+ void reAddCamItemInfos(const QList<CamItemInfo>);
+ void reAddingFinished();
};
+void ImportFilterModel::ImportFilterModelPrivate::init(ImportFilterModel* _q)
+{
+ q = _q;
+}
+
ImportFilterModel::ImportFilterModel(QObject* const parent)
: ImportSortFilterModel(parent),
d_ptr(new ImportFilterModelPrivate)
{
+ d_ptr->init(this);
}
ImportFilterModel::~ImportFilterModel()
@@ -279,7 +291,7 @@ ImportFilterModel* ImportFilterModel::importFilterModel() const
return const_cast<ImportFilterModel*>(this);
}
-// ------------- Sorting and Categorization -------------------
+// --- Sorting and Categorization ----------------------------------------------
void ImportFilterModel::setCamItemSortSettings(const CamItemSortSettings& sorter)
{
@@ -339,7 +351,7 @@ void ImportFilterModel::slotRowsInserted(const QModelIndex& \
/*parent*/, int star infos << camItemInfo(index(i, 0));
}
- emit imageInfosAdded(infos);
+ emit camItemInfosAdded(infos);
}
void ImportFilterModel::slotRowsAboutToBeRemoved(const QModelIndex& /*parent*/, int \
start, int end) @@ -351,7 +363,7 @@ void \
ImportFilterModel::slotRowsAboutToBeRemoved(const QModelIndex& /*parent*/, infos << \
camItemInfo(index(i, 0)); }
- emit imageInfosAboutToBeRemoved(infos);
+ emit camItemInfosAboutToBeRemoved(infos);
}
void ImportFilterModel::setDirectSourceImportModel(ImportImageModel* const \
sourceModel) @@ -373,17 +385,17 @@ void \
ImportFilterModel::setDirectSourceImportModel(ImportImageModel* const sourc {
d->importImageModel->setPreprocessor(d);
- connect(d->importImageModel, \
SIGNAL(preprocess(QList<CamItemInfo>,QList<QVariant>)),
- d, SLOT(preprocessInfos(QList<CamItemInfo>,QList<QVariant>)));
+ //connect(d->importImageModel, \
SIGNAL(preprocess(QList<CamItemInfo>,QList<QVariant>)), + //d, \
SLOT(preprocessInfos(QList<CamItemInfo>,QList<QVariant>)));
- connect(d->importImageModel, \
SIGNAL(processAdded(QList<CamItemInfo>,QList<QVariant>)),
- d, SLOT(processAddedInfos(QList<CamItemInfo>,QList<QVariant>)));
+ //connect(d->importImageModel, \
SIGNAL(processAdded(QList<CamItemInfo>,QList<QVariant>)), + //d, \
SLOT(processAddedInfos(QList<CamItemInfo>,QList<QVariant>)));
- connect(d, SIGNAL(reAddCamItemInfos(QList<CamItemInfo>,QList<QVariant>)),
- d->importImageModel, \
SLOT(reAddCamItemInfos(QList<CamItemInfo>,QList<QVariant>))); + //connect(d, \
SIGNAL(reAddCamItemInfos(QList<CamItemInfo>)), + \
//d->importImageModel, SLOT(reAddCamItemInfos(QList<CamItemInfo>)));
- connect(d, SIGNAL(reAddingFinished()),
- d->importImageModel, SLOT(reAddingFinished()));
+ //connect(d, SIGNAL(reAddingFinished()),
+ //d->importImageModel, SLOT(reAddingFinished()));
//TODO: connect(d->importImageModel, SIGNAL(modelReset()), this, \
SLOT(slotModelReset())); }
@@ -457,4 +469,33 @@ QString ImportFilterModel::categoryIdentifier(const CamItemInfo& \
info) const }
}
+// -------------------------------------------------------------------------------------------------------
+
+NoDuplicatesImportFilterModel::NoDuplicatesImportFilterModel(QObject* parent)
+ : ImportSortFilterModel(parent)
+{
+}
+
+bool NoDuplicatesImportFilterModel::filterAcceptsRow(int source_row, const \
QModelIndex& source_parent) const +{
+ QModelIndex index = sourceModel()->index(source_row, 0, source_parent);
+ if (index.data(ImportImageModel::ExtraDataDuplicateCount).toInt() <= 1)
+ {
+ return true;
+ }
+
+ QModelIndex previousIndex = sourceModel()->index(source_row - 1, 0, \
source_parent); + if (!previousIndex.isValid())
+ {
+ return true;
+ }
+
+ if (sourceImportModel()->camItemId(mapFromDirectSourceToSourceImportModel(index))
+ == sourceImportModel()->camItemId(mapFromDirectSourceToSourceImportModel(previousIndex)))
+ {
+ return false;
+ }
+ return true;
+}
+
} // namespace Digikam
diff --git a/utilities/cameragui/models/importfiltermodel.h \
b/utilities/cameragui/models/importfiltermodel.h index caa959f..af174d8 100644
--- a/utilities/cameragui/models/importfiltermodel.h
+++ b/utilities/cameragui/models/importfiltermodel.h
@@ -127,22 +127,41 @@ public:
CamItemSortSettings camItemSortSettings() const;
void setCamItemSortSettings(const CamItemSortSettings& sorter);
- void setCategorizationMode(CamItemSortSettings::CategorizationMode mode);
- void setSortRole(CamItemSortSettings::SortRole role);
- void setSortOrder(CamItemSortSettings::SortOrder order);
- /// Enables sending imageInfosAdded and imageInfosAboutToBeRemoved.
+ /// Enables sending camItemInfosAdded and camItemInfosAboutToBeRemoved.
void setSendCamItemInfoSignals(bool sendSignals);
+ //TODO: Implement grouping in import tool.
+ //bool isGroupOpen(qlonglong group) const;
+ //bool isAllGroupsOpen() const;
+
virtual QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) \
const;
virtual ImportFilterModel* importFilterModel() \
const;
+public Q_SLOTS:
+
+ void setCategorizationMode(CamItemSortSettings::CategorizationMode mode);
+ void setSortRole(CamItemSortSettings::SortRole role);
+ void setSortOrder(CamItemSortSettings::SortOrder order);
+
+ //TODO: Implement grouping in import tool.
+ //void setGroupOpen(qlonglong group, bool open);
+ //void toggleGroupOpen(qlonglong group);
+ //void setAllGroupsOpen(bool open);
+
+ /** Changes the current image filter settings and refilters. */
+ //TODO: Implement filtering in import tool.
+ //virtual void setImageFilterSettings(const ImageFilterSettings& settings);
+
+ /** Changes the current image sort settings and resorts. */
+ //TODO: virtual void setImageSortSettings(const ImageSortSettings& settings);
+
Q_SIGNALS:
/** These signals need to be explicitly enabled with setSendImageInfoSignals().
*/
- void imageInfosAdded(const QList<CamItemInfo>& infos);
- void imageInfosAboutToBeRemoved(const QList<CamItemInfo>& infos);
+ void camItemInfosAdded(const QList<CamItemInfo>& infos);
+ void camItemInfosAboutToBeRemoved(const QList<CamItemInfo>& infos);
protected Q_SLOTS:
@@ -186,6 +205,21 @@ private:
Q_DECLARE_PRIVATE(ImportFilterModel)
};
+// -----------------------------------------------------------------------------------------------------
+
+class NoDuplicatesImportFilterModel : public ImportSortFilterModel
+{
+ Q_OBJECT
+
+public:
+
+ NoDuplicatesImportFilterModel(QObject* parent = 0);
+
+protected:
+
+ virtual bool filterAcceptsRow(int source_row, const QModelIndex& source_parent) \
const; +};
+
} // namespace Digikam
Q_DECLARE_METATYPE(Digikam::ImportFilterModel*)
diff --git a/utilities/cameragui/models/importimagemodel.cpp \
b/utilities/cameragui/models/importimagemodel.cpp index 60e199a..1f66590 100644
--- a/utilities/cameragui/models/importimagemodel.cpp
+++ b/utilities/cameragui/models/importimagemodel.cpp
@@ -112,7 +112,7 @@ void ImportImageModel::setCameraController(CameraController* \
const controller) d->controller = controller;
connect(d->controller, SIGNAL(signalFileList(CamItemInfoList)),
- SLOT(reAddCamInfos(CamItemInfoList)));
+ SLOT(reAddCamItemInfos(CamItemInfoList)));
connect(d->controller, SIGNAL(signalDeleted(QString, QString, bool)),
SLOT(slotFileDeleted(QString, QString, bool)));
@@ -561,7 +561,7 @@ void ImportImageModel::appendInfos(const QList<CamItemInfo>& \
infos) }
}
-void ImportImageModel::reAddCamInfos(const CamItemInfoList& infos)
+void ImportImageModel::reAddCamItemInfos(const CamItemInfoList& infos)
{
publiciseInfos(infos);
}
@@ -638,6 +638,7 @@ void ImportImageModel::publiciseInfos(const QList<CamItemInfo>& \
infos) for (int i = firstNewIndex; i <= lastNewIndex; ++i)
{
const CamItemInfo& info = d->infos.at(i);
+ qDebug() << info.name; //TODO: Remove this line.
qlonglong id = info.id;
d->idHash.insertMulti(id, i);
diff --git a/utilities/cameragui/models/importimagemodel.h \
b/utilities/cameragui/models/importimagemodel.h index 6cd71ec..70a24dd 100644
--- a/utilities/cameragui/models/importimagemodel.h
+++ b/utilities/cameragui/models/importimagemodel.h
@@ -60,6 +60,9 @@ public:
/// Return (optional) extraData field
ExtraDataRole = Qt::UserRole + 3,
+ /// Returns the number of duplicate indexes for the same image id
+ ExtraDataDuplicateCount = Qt::UserRole + 6,
+
FilterModelRoles = Qt::UserRole + 100
};
@@ -252,7 +255,7 @@ Q_SIGNALS:
public Q_SLOTS:
- void reAddCamInfos(const CamItemInfoList& infos);
+ void reAddCamItemInfos(const CamItemInfoList& infos);
void reAddingFinished();
void slotFileDeleted(const QString& folder, const QString& file, bool status);
void slotFileUploaded(const CamItemInfo& info);
diff --git a/utilities/cameragui/models/importmodel.cpp \
b/utilities/cameragui/models/importmodel.cpp index c6f4aff..bd81943 100644
--- a/utilities/cameragui/models/importmodel.cpp
+++ b/utilities/cameragui/models/importmodel.cpp
@@ -22,6 +22,7 @@
* ============================================================ */
#include "importmodel.moc"
+#include "importmodel.h"
namespace Digikam
{
@@ -35,4 +36,9 @@ ImportModel::~ImportModel()
{
}
+void ImportModel::setupCameraController(CameraController* const controller)
+{
+ ImportThumbnailModel::setCameraController(controller);
+}
+
} // namespace Digikam
diff --git a/utilities/cameragui/models/importmodel.h \
b/utilities/cameragui/models/importmodel.h index a86b57b..7984ab9 100644
--- a/utilities/cameragui/models/importmodel.h
+++ b/utilities/cameragui/models/importmodel.h
@@ -39,6 +39,8 @@ public:
ImportModel(QObject* const parent = 0);
~ImportModel();
+
+ void setupCameraController(CameraController* const controller);
};
} // namespace Digikam
diff --git a/utilities/cameragui/models/importthumbnailmodel.cpp \
b/utilities/cameragui/models/importthumbnailmodel.cpp index 6a832ac..486b062 100644
--- a/utilities/cameragui/models/importthumbnailmodel.cpp
+++ b/utilities/cameragui/models/importthumbnailmodel.cpp
@@ -116,6 +116,7 @@ void ImportThumbnailModel::prepareThumbnails(const \
QList<QModelIndex>& indexesTo {
infos << camItemInfoRef(index);
}
+ qDebug() << "IMPORT THUMB MODEL: " << QString::number(thumbSize.size());
d->controller->getThumbsInfo(infos, thumbSize);
}
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic