mirror of
https://github.com/overte-org/overte.git
synced 2025-08-08 04:37:23 +02:00
Merge pull request #11861 from druiz17/fix-modal
Fix replace content dialog not closing
This commit is contained in:
commit
c66a500fcf
1 changed files with 44 additions and 30 deletions
|
@ -6139,11 +6139,12 @@ bool Application::askToReplaceDomainContent(const QString& url) {
|
||||||
"and restoring content, visit the documentation page at: ", MAX_CHARACTERS_PER_LINE) +
|
"and restoring content, visit the documentation page at: ", MAX_CHARACTERS_PER_LINE) +
|
||||||
"\nhttps://docs.highfidelity.com/create-and-explore/start-working-in-your-sandbox/restoring-sandbox-content";
|
"\nhttps://docs.highfidelity.com/create-and-explore/start-working-in-your-sandbox/restoring-sandbox-content";
|
||||||
|
|
||||||
bool agreeToReplaceContent = false; // assume false
|
ModalDialogListener* dig = OffscreenUi::asyncQuestion("Are you sure you want to replace this domain's content set?",
|
||||||
agreeToReplaceContent = QMessageBox::Yes == OffscreenUi::question("Are you sure you want to replace this domain's content set?",
|
|
||||||
infoText, QMessageBox::Yes | QMessageBox::No, QMessageBox::No);
|
infoText, QMessageBox::Yes | QMessageBox::No, QMessageBox::No);
|
||||||
|
|
||||||
if (agreeToReplaceContent) {
|
QObject::connect(dig, &ModalDialogListener::response, this, [=] (QVariant answer) {
|
||||||
|
QString details;
|
||||||
|
if (static_cast<QMessageBox::StandardButton>(answer.toInt()) == QMessageBox::Yes) {
|
||||||
// Given confirmation, send request to domain server to replace content
|
// Given confirmation, send request to domain server to replace content
|
||||||
qCDebug(interfaceapp) << "Attempting to replace domain content: " << url;
|
qCDebug(interfaceapp) << "Attempting to replace domain content: " << url;
|
||||||
QByteArray urlData(url.toUtf8());
|
QByteArray urlData(url.toUtf8());
|
||||||
|
@ -6160,25 +6161,38 @@ bool Application::askToReplaceDomainContent(const QString& url) {
|
||||||
QString newHomeAddress = addressManager->getHost() + DOMAIN_SPAWNING_POINT;
|
QString newHomeAddress = addressManager->getHost() + DOMAIN_SPAWNING_POINT;
|
||||||
qCDebug(interfaceapp) << "Setting new home bookmark to: " << newHomeAddress;
|
qCDebug(interfaceapp) << "Setting new home bookmark to: " << newHomeAddress;
|
||||||
DependencyManager::get<LocationBookmarks>()->setHomeLocationToAddress(newHomeAddress);
|
DependencyManager::get<LocationBookmarks>()->setHomeLocationToAddress(newHomeAddress);
|
||||||
methodDetails = "SuccessfulRequestToReplaceContent";
|
details = "SuccessfulRequestToReplaceContent";
|
||||||
} else {
|
} else {
|
||||||
methodDetails = "UserDeclinedToReplaceContent";
|
details = "UserDeclinedToReplaceContent";
|
||||||
}
|
}
|
||||||
|
QJsonObject messageProperties = {
|
||||||
|
{ "status", details },
|
||||||
|
{ "content_set_url", url }
|
||||||
|
};
|
||||||
|
UserActivityLogger::getInstance().logAction("replace_domain_content", messageProperties);
|
||||||
|
QObject::disconnect(dig, &ModalDialogListener::response, this, nullptr);
|
||||||
|
});
|
||||||
} else {
|
} else {
|
||||||
methodDetails = "ContentSetDidNotOriginateFromMarketplace";
|
methodDetails = "ContentSetDidNotOriginateFromMarketplace";
|
||||||
}
|
|
||||||
} else {
|
|
||||||
methodDetails = "UserDoesNotHavePermissionToReplaceContent";
|
|
||||||
static const QString warningMessage = simpleWordWrap("The domain owner must enable 'Replace Content' "
|
|
||||||
"permissions for you in this domain's server settings before you can continue.", MAX_CHARACTERS_PER_LINE);
|
|
||||||
OffscreenUi::warning("You do not have permissions to replace domain content", warningMessage,
|
|
||||||
QMessageBox::Ok, QMessageBox::Ok);
|
|
||||||
}
|
|
||||||
QJsonObject messageProperties = {
|
QJsonObject messageProperties = {
|
||||||
{ "status", methodDetails },
|
{ "status", methodDetails },
|
||||||
{ "content_set_url", url }
|
{ "content_set_url", url }
|
||||||
};
|
};
|
||||||
UserActivityLogger::getInstance().logAction("replace_domain_content", messageProperties);
|
UserActivityLogger::getInstance().logAction("replace_domain_content", messageProperties);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
methodDetails = "UserDoesNotHavePermissionToReplaceContent";
|
||||||
|
static const QString warningMessage = simpleWordWrap("The domain owner must enable 'Replace Content' "
|
||||||
|
"permissions for you in this domain's server settings before you can continue.", MAX_CHARACTERS_PER_LINE);
|
||||||
|
OffscreenUi::asyncWarning("You do not have permissions to replace domain content", warningMessage,
|
||||||
|
QMessageBox::Ok, QMessageBox::Ok);
|
||||||
|
|
||||||
|
QJsonObject messageProperties = {
|
||||||
|
{ "status", methodDetails },
|
||||||
|
{ "content_set_url", url }
|
||||||
|
};
|
||||||
|
UserActivityLogger::getInstance().logAction("replace_domain_content", messageProperties);
|
||||||
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue