Пример #1
0
void CSVWorld::DropLineEdit::dropEvent(QDropEvent *event)
{
    const CSMWorld::TableMimeData* data(dynamic_cast<const CSMWorld::TableMimeData*>(event->mimeData()));
    if (!data) // May happen when non-records (e.g. plain text) are dragged and dropped
        return;

    emit tableMimeDataDropped(data->getData(), data->getDocumentPtr());
    //WIP
}
Пример #2
0
void CSVWorld::DialogueDelegateDispatcherProxy::tableMimeDataDropped(const std::vector<CSMWorld::UniversalId>& data, const CSMDoc::Document* document)
{
    QLineEdit* lineEdit = qobject_cast<QLineEdit*>(mEditor);
    {
        if (!lineEdit || !mIndexWrapper.get())
        {
            return;
        }
    }
    for (unsigned i = 0; i < data.size();  ++i)
    {
        CSMWorld::UniversalId::Type type = data[i].getType();
        if (mDisplay == CSMWorld::ColumnBase::Display_Referenceable)
        {
            if (  type == CSMWorld::UniversalId::Type_Activator
                || type == CSMWorld::UniversalId::Type_Potion
                || type == CSMWorld::UniversalId::Type_Apparatus
                || type == CSMWorld::UniversalId::Type_Armor
                || type == CSMWorld::UniversalId::Type_Book
                || type == CSMWorld::UniversalId::Type_Clothing
                || type == CSMWorld::UniversalId::Type_Container
                || type == CSMWorld::UniversalId::Type_Creature
                || type == CSMWorld::UniversalId::Type_Door
                || type == CSMWorld::UniversalId::Type_Ingredient
                || type == CSMWorld::UniversalId::Type_CreatureLevelledList
                || type == CSMWorld::UniversalId::Type_ItemLevelledList
                || type == CSMWorld::UniversalId::Type_Light
                || type == CSMWorld::UniversalId::Type_Lockpick
                || type == CSMWorld::UniversalId::Type_Miscellaneous
                || type == CSMWorld::UniversalId::Type_Npc
                || type == CSMWorld::UniversalId::Type_Probe
                || type == CSMWorld::UniversalId::Type_Repair
                || type == CSMWorld::UniversalId::Type_Static
                || type == CSMWorld::UniversalId::Type_Weapon)
            {
                type = CSMWorld::UniversalId::Type_Referenceable;
            }
        }
        if (mDisplay == CSMWorld::TableMimeData::convertEnums(type))
        {
            emit tableMimeDataDropped(mEditor, mIndexWrapper->mIndex, data[i], document);
            emit editorDataCommited(mEditor, mIndexWrapper->mIndex, mDisplay);
            break;
        }
    }
}