bool QMessageFolderId::operator==(const QMessageFolderId& other) const { if (isValid()) { return (other.isValid() ? (d_ptr->_id == other.d_ptr->_id) : false); } else { return !other.isValid(); } }
bool QMessageFolderId::operator<(const QMessageFolderId& other) const { if (isValid() && other.isValid()) return (d_ptr->_id < other.d_ptr->_id); if (isValid()) { return false; // other is invalid, valid > invalid } else if (other.isValid()) { return true; // invalid < valid } return false; // both invalid }
QMessageFolder QMessageStore::folder(const QMessageFolderId& id) const { if (!id.isValid()) { d_ptr->error = QMessageManager::InvalidId; return QMessageFolder(); } d_ptr->error = QMessageManager::NoError; if (id.toString().startsWith("QMF_")) { return QMFStore::instance()->folder(id, d_ptr->error); } else if (id.toString().startsWith(FOLDER_PREFIX_SMS)) { return StorageEngine::instance()->folder(id); } d_ptr->error = QMessageManager::InvalidId; return QMessageFolder(); }
bool QMessageService::moveMessages(const QMessageIdList &messageIds, const QMessageFolderId &toFolderId) { if (d_ptr->_active) { return false; } if (!toFolderId.isValid()) { d_ptr->_error = QMessageManager::InvalidId; return false; } const int count = messageIds.count(); if ( count == 0) { return false; } // verify that messages are of same type and valid EngineType expectedType = idType(messageIds[0]); for( int i = 1; i < count; ++i ) { if( idType( messageIds[i] ) != expectedType || !messageIds[i].isValid() ) { // invalid message id or inconsistent type found d_ptr->_error = QMessageManager::InvalidId; return false; } } d_ptr->_active = true; d_ptr->_error = QMessageManager::NoError; d_ptr->_state = QMessageService::ActiveState; emit stateChanged(d_ptr->_state); bool retVal = d_ptr->moveMessages( messageIds, toFolderId ); if (!retVal) { d_ptr->setFinished(retVal); } return retVal; }