示例#1
0
Paster::Paster(QMimeData *transferData, const InternalNode::Pointer &intoNode):
        m_targetNode(intoNode)
{
    Q_ASSERT(!intoNode.isNull() && intoNode->isValid());

    QList<TextLocation> locations = extractPasteData(transferData);

    m_pastedLocations = mergeNestedLocation(locations);
}
示例#2
0
/*!
  Inserts the copied data into the given node.

  \note The mime-type for the data must be <tt>"application/x-qt-bauhaus"</tt>, otherwise the paste will fail.

  \param transferData The clip-board contents to paste.
  \param intoNode The node into which the clip-board contents are to be pasted.
  \return true if successful, false otherwise.
 */
bool ModelRewriter::paste(QMimeData *transferData, const InternalNode::Pointer &intoNode)
{
    if (!transferData)
        return false;

    if (intoNode.isNull() || !intoNode->isValid())
        throw InvalidModelNodeException(__LINE__, Q_FUNC_INFO, __FILE__);

    Paster paster(transferData, intoNode);
    if (paster.doPaste(m_modelToTextMerger)) {
        if (!modificationGroupActive()) {
            m_modelToTextMerger.applyChanges(*m_textModifier);
        }
        return true;
    } else {
        m_modelToTextMerger.clear();
        return false;
    }
}