From 149249b789e90efbb8abb005f0e9d81bad591d43 Mon Sep 17 00:00:00 2001 From: Serein <2075337935@qq.com> Date: Sat, 9 Dec 2023 20:57:03 +0800 Subject: [PATCH] fix bug --- src/controller/ui/evento_edit.cpp | 85 +++++++++++++++---------------- 1 file changed, 42 insertions(+), 43 deletions(-) diff --git a/src/controller/ui/evento_edit.cpp b/src/controller/ui/evento_edit.cpp index f640a94..f7af654 100644 --- a/src/controller/ui/evento_edit.cpp +++ b/src/controller/ui/evento_edit.cpp @@ -4,59 +4,58 @@ #include "information_service.h" #include "type_model.h" -EventoEditController *EventoEditController::getInstance() { - static EventoEditController instance; - return &instance; +EventoEditController* EventoEditController::getInstance() { + static EventoEditController instance; + return &instance; } -EventoEditController *EventoEditController::create(QQmlEngine *qmlEngine, - QJSEngine *jsEngine) { - auto instance = getInstance(); - QJSEngine::setObjectOwnership(instance, QQmlEngine::CppOwnership); - return instance; +EventoEditController* EventoEditController::create(QQmlEngine* qmlEngine, QJSEngine* jsEngine) { + auto instance = getInstance(); + QJSEngine::setObjectOwnership(instance, QQmlEngine::CppOwnership); + return instance; } void EventoEditController::preload() { - InformationService::getInstance().load_EditInfo(); + InformationService::getInstance().load_EditInfo(); } -void EventoEditController::createEvento( - const QString &title, const QString &description, const QString &eventStart, - const QString &eventEnd, const QString ®isterStart, - const QString ®isterEnd, int index, int locationId, - const QVariantList &departmentIds, const QString &tag) { - auto typeId = TypeModel::getInstance()->getID(index); - if (property("isEditMode").toBool()) { - EventoService::getInstance().edit( - EventoHelper::getInstance()->property("id").toInt(), title, description, - eventStart, eventEnd, registerStart, registerEnd, typeId, locationId, - departmentIds, tag); - } else { - EventoService::getInstance().create(title, description, eventStart, - eventEnd, registerStart, registerEnd, - typeId, locationId, departmentIds, tag); - } +void EventoEditController::createEvento(const QString& title, const QString& description, + const QString& eventStart, const QString& eventEnd, + const QString& registerStart, const QString& registerEnd, + int index, int locationId, + const QVariantList& departmentIds, const QString& tag) { + auto typeId = TypeModel::getInstance()->getID(index); + if (property("isEditMode").toBool()) { + EventoService::getInstance().edit(EventoHelper::getInstance()->property("id").toInt(), + title, description, eventStart, eventEnd, registerStart, + registerEnd, typeId, locationId, departmentIds, tag); + } else { + EventoService::getInstance().create(title, description, eventStart, eventEnd, registerStart, + registerEnd, typeId, locationId, departmentIds, tag); + } } -void EventoEditController::update(const DTO_Evento &event) { - setProperty("eventStart", - event.gmtEventStart.toString("yyyy-MM-ddThh:mm:ss")); - setProperty("eventEnd", event.gmtEventEnd.toString("yyyy-MM-ddThh:mm:ss")); - setProperty("registerStart", - event.gmtRegistrationStart.toString("yyyy-MM-ddThh:mm:ss")); - setProperty("registerEnd", - event.gmtRegistrationEnd.toString("yyyy-MM-ddThh:mm:ss")); - QString departmentIds = u"["_qs; - for (const auto &department : event.departments) { - departmentIds += QString::number(department.id) + ","; - } - *(departmentIds.end()) = u']'; - setProperty("departmentIds", departmentIds); +void EventoEditController::update(const DTO_Evento& event) { + QString departmentIds = u"["_qs; + for (const auto& department : event.departments) { + departmentIds += QString::number(department.id) + ","; + } + *(departmentIds.end()) = u']'; + QMetaObject::invokeMethod( + this, + [&]() { + setProperty("eventStart", event.gmtEventStart.toString("yyyy-MM-ddThh:mm:ss")); + setProperty("eventEnd", event.gmtEventEnd.toString("yyyy-MM-ddThh:mm:ss")); + setProperty("registerStart", + event.gmtRegistrationStart.toString("yyyy-MM-ddThh:mm:ss")); + setProperty("registerEnd", event.gmtRegistrationEnd.toString("yyyy-MM-ddThh:mm:ss")); + setProperty("departmentIds", departmentIds); + }, + Qt::BlockingQueuedConnection); } void EventoEditController::loadEditInfo() { - if (m_isEditMode) - update( - EventoService::getInstance().edit(EventoHelper::getInstance()->m_id)); - preload(); + if (m_isEditMode) + update(EventoService::getInstance().edit(EventoHelper::getInstance()->m_id)); + preload(); }