|
|
@@ -287,19 +287,38 @@ void Systray::destroyEditFileLocallyLoadingDialog()
|
|
|
|
|
|
void Systray::createResolveConflictsDialog(const OCC::ActivityList &allConflicts)
|
|
|
{
|
|
|
- const auto callDialog = new QQmlComponent(_trayEngine, QStringLiteral("qrc:/qml/src/gui/ResolveConflictsDialog.qml"));
|
|
|
+ const auto conflictsDialog = new QQmlComponent(_trayEngine, QStringLiteral("qrc:/qml/src/gui/ResolveConflictsDialog.qml"));
|
|
|
const QVariantMap initialProperties{
|
|
|
{"allConflicts", QVariant::fromValue(allConflicts)},
|
|
|
};
|
|
|
|
|
|
- if(callDialog->isError()) {
|
|
|
- qCWarning(lcSystray) << callDialog->errorString();
|
|
|
+ if(conflictsDialog->isError()) {
|
|
|
+ qCWarning(lcSystray) << conflictsDialog->errorString();
|
|
|
+ delete conflictsDialog;
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
// This call dialog gets deallocated on close conditions
|
|
|
// by a call from the QML side to the destroyDialog slot
|
|
|
- callDialog->createWithInitialProperties(initialProperties);
|
|
|
+ auto dialog = conflictsDialog->createWithInitialProperties(initialProperties);
|
|
|
+ if (!dialog) {
|
|
|
+ delete dialog;
|
|
|
+ delete conflictsDialog;
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ dialog->setParent(QGuiApplication::instance());
|
|
|
+
|
|
|
+ auto dialogWindow = qobject_cast<QQuickWindow*>(dialog);
|
|
|
+ if (!dialogWindow) {
|
|
|
+ delete dialog;
|
|
|
+ delete conflictsDialog;
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ dialogWindow->show();
|
|
|
+ dialogWindow->raise();
|
|
|
+ dialogWindow->requestActivate();
|
|
|
+
|
|
|
+ delete conflictsDialog;
|
|
|
}
|
|
|
|
|
|
bool Systray::raiseDialogs()
|