From: Arun Ravindran <[email protected]>
---
src/dialogitemmodel.cpp | 44 +++++++++++++++++++++++++++++++++++---------
src/dialogitemmodel.h | 2 ++
2 files changed, 37 insertions(+), 9 deletions(-)
diff --git a/src/dialogitemmodel.cpp b/src/dialogitemmodel.cpp
index dbdd1a2..58b1f91 100644
--- a/src/dialogitemmodel.cpp
+++ b/src/dialogitemmodel.cpp
@@ -9,26 +9,52 @@
*
*/
-
+#include<QtGlobal>
#include "dialogitemmodel.h"
DialogItemModel::DialogItemModel(Backend *backend, const QString &phone) :
mBackend(backend),
mPhone(phone)
{
+ QTimer::singleShot(25, this, SLOT(InitializeRows()));
+ connect(mBackend, SIGNAL(smsAdded(QList<SmsData>)), this,
SLOT(sms_added(QList<SmsData>)));
+ connect(mBackend, SIGNAL(smsModified(QList<SmsData>)), this,
SLOT(sms_modified(QList<SmsData>)));
+ connect(mBackend, SIGNAL(smsRemoved(QList<unsigned int>)), this,
SLOT(sms_removed(QList<unsigned int>)));
+}
+
+bool DialogItemModel::SafeFindPhoneNumber(QString& in, QString& out)
+{
+ bool ret = false;
+ int length = qMin(out.length(),in.length())-1;
+
+ QStringRef sig1 = in.rightRef(length);//Last 9 digits are important
+ QStringRef sig2 = out.rightRef(length);//Last 9 digits are important
+
+ ret = in.contains(out);
+ if(!ret)
+ ret = out.contains(in);
+ else if(!ret)
+ ret = sig1.toString().contains(sig2.toString());
+
+ return ret;
+}
+
+void DialogItemModel::InitializeRows()
+{
SmsData dat;
- //beginInsertRows(QModelIndex(), 0, mModel.size()-1);
- foreach (dat, mBackend->getSmsHistory()) {
- if (mPhone == dat.sender && !dat.draft) {
+ QList<SmsData>dats = mBackend->getSmsHistory();
+ if(dats.size()) {
+ beginInsertRows(QModelIndex(), 0, dats.size()-1);
+ foreach (dat, dats) {
+ if (SafeFindPhoneNumber(mPhone,dat.sender) && !dat.draft) {
mModel.append(dat);
}
}
qSort(mModel);
- //endInsertRows();
- //emit dataUpdated();
- connect(mBackend, SIGNAL(smsAdded(QList<SmsData>)), this,
SLOT(sms_added(QList<SmsData>)));
- connect(mBackend, SIGNAL(smsModified(QList<SmsData>)), this,
SLOT(sms_modified(QList<SmsData>)));
- connect(mBackend, SIGNAL(smsRemoved(QList<unsigned int>)), this,
SLOT(sms_removed(QList<unsigned int>)));
+ endInsertRows();
+ emit dataUpdated();
+ }
+
}
DialogItemModel::~DialogItemModel()
diff --git a/src/dialogitemmodel.h b/src/dialogitemmodel.h
index b4a389f..e9ef181 100644
--- a/src/dialogitemmodel.h
+++ b/src/dialogitemmodel.h
@@ -25,10 +25,12 @@ public:
~DialogItemModel();
int rowCount(const QModelIndex &parent = QModelIndex()) const;
QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const;
+ bool SafeFindPhoneNumber(QString& in, QString& out);
public slots:
void sms_added(QList<SmsData>);
void sms_modified(QList<SmsData>);
void sms_removed(QList<unsigned int>);
+ void InitializeRows();
signals:
void dataUpdated();
private:
--
1.7.0.4
_______________________________________________
MeeGo-dev mailing list
[email protected]
http://lists.meego.com/listinfo/meego-dev