int CWizDocumentListView::addDocument(const WIZDOCUMENTDATA& doc, bool sort) { WizDocumentListViewItemData data; data.doc = doc; if (doc.strKbGUID.isEmpty() || m_dbMgr.db().kbGUID() == doc.strKbGUID) { data.nType = CWizDocumentListViewItem::TypePrivateDocument; } else { data.nType = CWizDocumentListViewItem::TypeGroupDocument; data.strAuthorId = doc.strOwner; } CWizDocumentListViewItem* pItem = new CWizDocumentListViewItem(m_app, data); //pItem->setSizeHint(itemSizeFromViewType(m_nViewType)); pItem->setSizeHint(QSize(sizeHint().width(), Utils::StyleHelper::listViewItemHeight(m_nViewType))); pItem->setSortingType(m_nSortingType); addItem(pItem); if (sort) { sortItems(); } Q_EMIT documentCountChanged(); return count(); }
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())); } }
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) { arrayDocument.push_back(pDocumentItem->document()); } } }