bool CWizApi::uploadAttachment(const WIZDOCUMENTATTACHMENTDATAEX& data) { Q_ASSERT(data.nObjectPart != 0); int nParts = data.nObjectPart; bool bData = (nParts & WIZKM_XMKRPC_ATTACHMENT_PART_DATA) ? true : false; m_currentAttachment = data; if (bData) { if (!m_db->LoadCompressedAttachmentData(m_currentAttachment.strGUID, m_currentAttachment.arrayData)) { QString info = data.strName; Q_EMIT processErrorLog(tr("Could not load attachment data: ") + info); //skip onUploadAttachment(data); //re-upload attachment at next time m_db->ModifyObjectVersion(data.strGUID, WIZDOCUMENTATTACHMENTDATAEX::ObjectName(), -1); return false; } WIZOBJECTDATA obj; obj.strObjectGUID = m_currentAttachment.strGUID; obj.strDisplayName = m_currentAttachment.strName; obj.eObjectType = wizobjectDocumentAttachment; obj.arrayData = m_currentAttachment.arrayData; return uploadObjectData(obj); } else { return callAttachmentPostData(data); } }
void CWizKbSync::onQueryAttachmentInfo(const WIZDOCUMENTATTACHMENTDATA& data) { int nParts = calAttachmentParts(data, m_currentUploadAttachment); if (0 == nParts) { onUploadAttachment(m_currentUploadAttachment); } else { m_currentUploadAttachment.nObjectPart = nParts; uploadAttachment(m_currentUploadAttachment); } }
void CWizApi::onAttachmentPostData(const WIZDOCUMENTATTACHMENTDATAEX& data) { Q_ASSERT(data.strGUID == m_currentAttachment.strGUID); onUploadAttachment(m_currentAttachment); }