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); } }
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()); } }
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() ); }
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() ); }
//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() ); }
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); } }
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); }