示例#1
0
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()));
    }
}
示例#4
0
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());
        }
    }
}