void QFetionSMS::initial() { if (!isInitialed) { messageManager = new QMessageManager(this); connect(messageManager,SIGNAL(messageAdded(QMessageId,QMessageManager::NotificationFilterIdSet)),this,SLOT(messageAdded(QMessageId,QMessageManager::NotificationFilterIdSet))); connect(messageManager,SIGNAL(messageRemoved(QMessageId,QMessageManager::NotificationFilterIdSet)),this,SLOT(messageRemoved(QMessageId,QMessageManager::NotificationFilterIdSet))); connect(messageManager,SIGNAL(messageUpdated(QMessageId,QMessageManager::NotificationFilterIdSet)),this,SLOT(messageUpdated(QMessageId,QMessageManager::NotificationFilterIdSet))); connect(this,SIGNAL(cellphoneChanged()),this,SLOT(getNewMessageList())); QHash<int, QByteArray> roleNames; roleNames[SubjectRole] = "subject"; roleNames[SenderRole] = "sender"; roleNames[ToRole] = "to"; roleNames[SizeRole] = "size"; roleNames[TypeRole] = "type"; roleNames[DateRole] = "date"; roleNames[ReceivedDateRole] = "receivedDate"; roleNames[BodyRole] = "body"; roleNames[PriorityRole] = "priority"; roleNames[InboxRole] = "isInbox"; roleNames[ReadyRole] = "ready"; setRoleNames(roleNames); filterid = messageManager->registerNotificationFilter(QMessageFilter()); isInitialed = true; } }
const QMessageFilter& QMessageFilter::operator&=(const QMessageFilter& other) { if (&other == this) { return *this; } if (isEmpty()) { *this = other; return *this; } if (other.isEmpty()) { return *this; } if (d_ptr->_notFilter && !d_ptr->_notFilterForComparator) { return *this; } if (other.d_ptr->_notFilter && !d_ptr->_notFilterForComparator) { *this = other; return *this; } if (d_ptr->_filterList.count() == 0) { QMessageFilter newFilter = QMessageFilter(*this); d_ptr->_filterList.append(QMessageFilterPrivate::SortedMessageFilterList()); d_ptr->_filterList[0] << newFilter; d_ptr->_value = QVariant(); d_ptr->_field = QMessageFilterPrivate::None; d_ptr->_comparatorType = QMessageFilterPrivate::Equality; d_ptr->_comparatorValue = 0; } int i = 0; while (i < d_ptr->_filterList.count()) { if (other.d_ptr->_filterList.count() == 0) { d_ptr->_filterList[i] << other; qSort(d_ptr->_filterList[i].begin(), d_ptr->_filterList[i].end(), QMessageFilterPrivate::lessThan); } else { int j = 0; int k = i; while (j < other.d_ptr->_filterList.count()) { if (j+1 < other.d_ptr->_filterList.count()) { d_ptr->_filterList.insert(k+j+1,QMessageFilterPrivate::SortedMessageFilterList()); d_ptr->_filterList[k+j+1] << d_ptr->_filterList[k+j]; i++; } d_ptr->_filterList[k+j] << other.d_ptr->_filterList[j]; if (d_ptr->_filterList[k+j].count() > 1) { qSort(d_ptr->_filterList[k+j].begin(), d_ptr->_filterList[k+j].end(), QMessageFilterPrivate::lessThan); } j++; } } i++; } d_ptr->_valid = d_ptr->_valid & other.d_ptr->_valid; return *this; }
void QMessageFilterPrivate::changeANDsAndORsToOpposite(QMessageFilter& filter) { if (filter.d_ptr->_filterList.count() > 0) { QMessageFilter oldFilter = filter; filter.d_ptr->_filterList.clear(); for (int i=0; i < oldFilter.d_ptr->_filterList.count(); i++) { if (i == 0) { for (int j=0; j < oldFilter.d_ptr->_filterList[i].count(); j++) { if (j == 0) { filter.d_ptr->_filterList.append(QMessageFilterPrivate::SortedMessageFilterList()); filter.d_ptr->_filterList[0] << QMessageFilter(oldFilter.d_ptr->_filterList[i][j]); } else { filter |= oldFilter.d_ptr->_filterList[i][j]; } } } else { QMessageFilter tempFilter; for (int j=0; j < oldFilter.d_ptr->_filterList[i].count(); j++) { if (j == 0) { tempFilter = oldFilter.d_ptr->_filterList[i][j]; } else { tempFilter |= oldFilter.d_ptr->_filterList[i][j]; } } filter &= tempFilter; } } for (int i=0; i < filter.d_ptr->_filterList.count(); i++) { qSort(filter.d_ptr->_filterList[i].begin(), filter.d_ptr->_filterList[i].end(), QMessageFilterPrivate::lessThan); } } }
QMessageFilter QDeclarativeMessageUnionFilter::filter() { if (m_filters.count() == 0) return QMessageFilter(); QMessageFilter filter = m_filters.first()->filter(); for (int i = 1; i < m_filters.count(); ++i) filter |= m_filters.at(i)->filter(); if (m_negated) return ~filter; else return filter; }
const QMessageFilter& QMessageFilter::operator|=(const QMessageFilter& other) { if (&other == this) { return *this; } if (isEmpty()) { return *this; } if (other.isEmpty()) { *this = other; return *this; } if (d_ptr->_notFilter && !d_ptr->_notFilterForComparator) { *this = other; return *this; } if (other.d_ptr->_notFilter && !d_ptr->_notFilterForComparator) { return *this; } if (d_ptr->_filterList.count() == 0) { QMessageFilter newFilter = QMessageFilter(*this); d_ptr->_filterList.append(QMessageFilterPrivate::SortedMessageFilterList()); d_ptr->_filterList[d_ptr->_filterList.count()-1] << newFilter; d_ptr->_value = QVariant(); d_ptr->_field = QMessageFilterPrivate::None; d_ptr->_comparatorType = QMessageFilterPrivate::Equality; d_ptr->_comparatorValue = 0; } if (other.d_ptr->_filterList.count() == 0) { d_ptr->_filterList.append(QMessageFilterPrivate::SortedMessageFilterList()); d_ptr->_filterList[d_ptr->_filterList.count()-1] << other; } else { d_ptr->_filterList << other.d_ptr->_filterList; } d_ptr->_valid = d_ptr->_valid & other.d_ptr->_valid; return *this; }