Exemplo n.º 1
0
void PropertiesDock::setDocument(Document *document)
{
    if (mDocument == document)
        return;

    if (mDocument)
        mDocument->disconnect(this);

    mDocument = document;
    mPropertyBrowser->setDocument(document);

    if (document) {
        connect(document, &Document::currentObjectChanged,
                this, &PropertiesDock::currentObjectChanged);
        connect(document, &Document::editCurrentObject,
                this, &PropertiesDock::bringToFront);

        connect(document, &Document::propertyAdded,
                this, &PropertiesDock::updateActions);
        connect(document, &Document::propertyRemoved,
                this, &PropertiesDock::updateActions);

        currentObjectChanged(document->currentObject());
    } else {
        currentObjectChanged(nullptr);
    }
}
Exemplo n.º 2
0
void PropertiesDock::tilesetFileNameChanged(Tileset *tileset)
{
    Object *object = mMapDocument->currentObject();
    if (!object)
        return;

    bool update = false;

    switch (object->typeId()) {
    case Object::TilesetType:
        update = object == tileset;
        break;
    case Object::TileType:
        update = static_cast<Tile*>(object)->tileset() == tileset;
        break;
    case Object::TerrainType:
        update = static_cast<Terrain*>(object)->tileset() == tileset;
        break;
    default:
        break;
    }

    if (update) {
        currentObjectChanged(object);
        currentItemChanged(mPropertyBrowser->currentItem());
    }
}
Exemplo n.º 3
0
void Parse::updatePML(QString doc)
{
    if (!isReady()) {
        m_updateQueue.append(doc);
        return;
    }

    ensureEndPointHasPrefix("classes");

    m_conn = connect(this, &BaaS::replyFinished, [=]( QJsonDocument json){
        disconnect(m_conn);
        if ( isLastRequestSuccessful() ) {
            qWarning()<<"updatePML Result:"<<json.object();
            currentObject = json.object();
            emit currentObjectChanged(currentObject);

            emit pmlUploaded();
            if(!m_updateQueue.isEmpty()) {
                update(m_updateQueue.takeFirst());
            }
            else {
                QMetaObject::invokeMethod(object, "hideWorkingScreen");
                pmlList();
            }
        }
        else {
            // error, drop the queue
            m_updateQueue.empty();
        }
    } );

    initHeaders();
    request( BaaS::PUT, doc.toUtf8() );

}
Exemplo n.º 4
0
void Parse::update(QString doc)
{
    if (!isReady()) {
        m_updateQueue.append(doc);
        return;
    }

    ensureEndPointHasPrefix("classes");

    m_conn = connect(this, &BaaS::replyFinished, [=]( QJsonDocument json){
        disconnect(m_conn);
        if ( isLastRequestSuccessful() ) {
            currentObject = json.object();
            emit currentObjectChanged(currentObject);
            if(!m_updateQueue.isEmpty()) {
                update(m_updateQueue.takeFirst());
            }
        }
        else {
            // error, drop the queue
            m_updateQueue.empty();
        }
    } );

    initHeaders();
    request( BaaS::PUT, doc.toUtf8() );

}
Exemplo n.º 5
0
//Objects related
void Parse::create(QString doc)
{
    if (!isReady()) {
        m_createQueue.append(doc);
        return;
    }

    qWarning()<<"create:"<<doc;

    ensureEndPointHasPrefix("classes");

    m_conn = connect(this, &BaaS::replyFinished, [=]( QJsonDocument json){
        disconnect(m_conn);
        if ( getHttpCode() == 201 ){
            currentObject = json.object();
            emit currentObjectChanged(currentObject);
            if(!m_createQueue.isEmpty()) {
                create(m_createQueue.takeFirst());
            }
        }
        else {
            // error, drop the queue
            m_createQueue.empty();
        }
    } );

    initHeaders();
    request( BaaS::POST, doc.toUtf8() );
}
Exemplo n.º 6
0
void PropertiesDock::mapDocumentChanged(MapDocument *mapDocument)
{
    if (mMapDocument)
        mMapDocument->disconnect(this);

    mMapDocument = mapDocument;
    mPropertyBrowser->setMapDocument(mapDocument);

    if (mapDocument) {
        connect(mapDocument, SIGNAL(currentObjectChanged(Object*)),
                SLOT(currentObjectChanged(Object*)));
        connect(mapDocument, SIGNAL(tilesetFileNameChanged(Tileset*)),
                SLOT(tilesetFileNameChanged(Tileset*)));
        connect(mapDocument, SIGNAL(editCurrentObject()),
                SLOT(bringToFront()));

        currentObjectChanged(mapDocument->currentObject());
    } else {
        currentObjectChanged(0);
    }
}
Exemplo n.º 7
0
void Parse::postProcessGet(QJsonObject obj) {

    qWarning()<<getEndPoint();


    if (getEndPoint() == "classes/Pml?include=owner&order=-updatedAt&limit=2000") {
        qWarning()<<"obj:"<<obj;
        generatePmlXml(obj);
    }

    emit currentObjectChanged( obj);
}