void CWizDocumentListView::getSelectedDocuments(CWizDocumentDataArray& arrayDocument) { QList<QListWidgetItem*> items = selectedItems(); QList<QListWidgetItem*>::const_iterator it; for (it = items.begin(); it != items.end(); it++) { QListWidgetItem* pItem = *it; CWizDocumentListViewItem* pDocumentItem = dynamic_cast<CWizDocumentListViewItem*>(pItem); if (!pDocumentItem) continue; // if document is message type if (pDocumentItem->type() == CWizDocumentListViewItem::MessageDocument) { QString strKbGUID = pDocumentItem->message().kbGUID; QString strGUID = pDocumentItem->message().documentGUID; // document must have record in database. WIZDOCUMENTDATA doc; if (!m_dbMgr.db(strKbGUID).DocumentFromGUID(strGUID, doc)) { qDebug() << "[getSelectedDocuments] failed to query document from guid"; continue; } // no matter document exist or not, just push it arrayDocument.push_back(doc); } else { arrayDocument.push_back(pDocumentItem->document()); } } }
void CWizDocumentListView::contextMenuEvent(QContextMenuEvent * e) { CWizDocumentListViewItem* pItem = dynamic_cast<CWizDocumentListViewItem*>(itemAt(e->pos())); if (!pItem) return; if (pItem->type() == CWizDocumentListViewItem::MessageDocument) { m_menuMessage->popup(mapToGlobal(e->pos())); } else { m_menuDocument->popup(mapToGlobal(e->pos())); } }