--- a/logsui/logsengine/src/logsmatchesmodel.cpp Wed Jun 23 18:13:05 2010 +0300
+++ b/logsui/logsengine/src/logsmatchesmodel.cpp Tue Jul 06 14:16:36 2010 +0300
@@ -165,7 +165,8 @@
}
const LogsMatchesModelItemContainer& matchItem =
static_cast<const LogsMatchesModelItemContainer&>( item );
- LogsMessage* logsMessage = new LogsMessage(matchItem.contact(), matchItem.number(),matchItem.contactName());
+ LogsMessage* logsMessage = new LogsMessage(
+ matchItem.contact(), matchItem.number(),matchItem.contactNameSimple());
if (!logsMessage->isMessagingAllowed()) {
delete logsMessage;
logsMessage = 0;
@@ -298,6 +299,39 @@
}
// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+void LogsMatchesModel::eventsResetted()
+{
+ LOGS_QDEBUG( "logs [ENG] -> LogsMatchesModel::eventsResetted()" );
+
+ QMap<LogsCntEntryHandle*, LogsEvent*> unusedEvents = mSearchEvents;
+ for ( int i = 0; i < mParentModel.rowCount(); ++i ){
+ LogsEvent* event = qVariantValue<LogsEvent*>(
+ mParentModel.data( mParentModel.index(i, 0), LogsModel::RoleFullEvent ) );
+ if ( event ){
+ QObject* key = mSearchEvents.key(event);
+ if ( key ){
+ unusedEvents.remove(key);
+ } else {
+ addEventForSearching(i, *event);
+ }
+ }
+ }
+
+ QMap<LogsCntEntryHandle*, LogsEvent*>::iterator unusedIt;
+ for (unusedIt = unusedEvents.begin(); unusedIt != unusedEvents.end(); ++unusedIt){
+ mLogsCntFinder->deleteEntry(*unusedIt.key());
+ mSearchEvents.remove(unusedIt.key());
+ }
+
+ forceSearchQuery();
+
+ LOGS_QDEBUG( "logs [ENG] <- LogsMatchesModel::eventsResetted()" );
+}
+
+// -----------------------------------------------------------------------------
//
// -----------------------------------------------------------------------------
//
@@ -315,7 +349,7 @@
this, SLOT(eventsAdded(const QModelIndex&,int,int)));
connect( &mParentModel, SIGNAL(rowsRemoved(const QModelIndex&,int,int)),
this, SLOT(eventsRemoved(const QModelIndex&,int,int)));
- connect( &mParentModel, SIGNAL(modelReset()), this, SLOT(doModelReset()));
+ connect( &mParentModel, SIGNAL(modelReset()), this, SLOT(eventsResetted()));
readEvents(0, mParentModel.rowCount());
mIconManager = new LogsThumbIconManager();
connect(mIconManager, SIGNAL(contactIconReady(int)),
@@ -373,11 +407,7 @@
LogsEvent* event = qVariantValue<LogsEvent*>(
mParentModel.data( mParentModel.index(i, 0), LogsModel::RoleFullEvent ) );
if ( event ){
- QObject* entryHandle = new QObject(this);
- LogsCntEntry* entry = new LogsCntEntry(*entryHandle, 0);
- updateSearchEntry(*entry, *event);
- mLogsCntFinder->insertEntry(i, entry);
- mSearchEvents.insert(entryHandle, event);
+ addEventForSearching(i, *event);
}
}
}
@@ -447,10 +477,12 @@
//
void LogsMatchesModel::doModelReset()
{
+ LOGS_QDEBUG( "logs [ENG] -> LogsMatchesModel::doModelReset()" );
qDeleteAll(mMatches);
mMatches.clear();
mResultCount = 0;
reset();
+ LOGS_QDEBUG( "logs [ENG] <- LogsMatchesModel::doModelReset()" );
}
// -----------------------------------------------------------------------------
@@ -512,6 +544,19 @@
//
// -----------------------------------------------------------------------------
//
+void LogsMatchesModel::addEventForSearching(int index, LogsEvent& event)
+{
+ QObject* entryHandle = new QObject(this);
+ LogsCntEntry* entry = new LogsCntEntry(*entryHandle, 0);
+ updateSearchEntry(*entry, event);
+ mLogsCntFinder->insertEntry(index, entry);
+ mSearchEvents.insert(entryHandle, &event);
+}
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
LogsMatchesModelItemContainer::LogsMatchesModelItemContainer(
LogsAbstractModel& parentModel,
LogsThumbIconManager& thumbIconManager,
@@ -594,6 +639,15 @@
//
// -----------------------------------------------------------------------------
//
+QString LogsMatchesModelItemContainer::contactNameSimple() const
+{
+ return mContactNameSimple;
+}
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
bool LogsMatchesModelItemContainer::isNull() const
{
return ( !mEvent && !mContactId );
@@ -651,7 +705,7 @@
if ( mEvent ){
mFormattedCallerId = getFormattedCallerId(entry);
} else if ( mContactId > 0 ){
- getFormattedContactInfo(entry, mContactName, mContactNumber);
+ getFormattedContactInfo(entry, mContactName, mContactNameSimple, mContactNumber);
mAvatarPath.clear();
mAvatarPath = entry.avatarPath();
}
@@ -690,15 +744,17 @@
//
void LogsMatchesModelItemContainer::getFormattedContactInfo(
const LogsCntEntry& entry,
- QString& contactName,
+ QString& contactName,
+ QString& contactNameSimple,
QString& contactNumber ) const
{
contactName.clear();
- getFormattedName(contactName, entry.firstName());
- getFormattedName(contactName, entry.lastName());
+ getFormattedName(contactName, contactNameSimple, entry.firstName());
+ getFormattedName(contactName, contactNameSimple, entry.lastName());
contactName = contactName.trimmed();
+ contactNameSimple = contactNameSimple.trimmed();
contactNumber = entry.phoneNumber().text();
}
@@ -706,13 +762,31 @@
//
// -----------------------------------------------------------------------------
//
-void LogsMatchesModelItemContainer::getFormattedName(QString& formattedName,
- const QList<LogsCntText>& list) const
+void LogsMatchesModelItemContainer::getFormattedName(
+ QString& formattedName, const QList<LogsCntText>& list) const
{
foreach( LogsCntText name, list ) {
if ( name.text().length() > 0 ) {
- formattedName.append(name.richText());
+ formattedName.append(name.richText());
formattedName.append(" ");
}
}
}
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+void LogsMatchesModelItemContainer::getFormattedName(
+ QString& formattedName, QString& formattedNameSimple,
+ const QList<LogsCntText>& list) const
+{
+ foreach( LogsCntText name, list ) {
+ if ( name.text().length() > 0 ) {
+ formattedName.append(name.richText());
+ formattedName.append(" ");
+ formattedNameSimple.append(name.text());
+ formattedNameSimple.append(" ");
+ }
+ }
+}