Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions src/common/dbus/updatedbusproxy.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -221,14 +221,14 @@
return m_managerInter->asyncCall(QStringLiteral("CanRollback"));
}

void UpdateDBusProxy::ConfirmRollback(bool confirm)
QDBusPendingCall UpdateDBusProxy::ConfirmRollback(bool confirm)

Check warning on line 224 in src/common/dbus/updatedbusproxy.cpp

View workflow job for this annotation

GitHub Actions / cppcheck

The function 'ConfirmRollback' is never used.
{
QList<QVariant> argumentList;
argumentList << QVariant::fromValue(confirm);
m_managerInter->asyncCallWithArgumentList(QStringLiteral("ConfirmRollback"), argumentList);
return m_managerInter->asyncCallWithArgumentList(QStringLiteral("ConfirmRollback"), argumentList);
}

QDBusPendingCall UpdateDBusProxy::Poweroff(bool reboot)

Check warning on line 231 in src/common/dbus/updatedbusproxy.cpp

View workflow job for this annotation

GitHub Actions / cppcheck

The function 'Poweroff' is never used.
{
QList<QVariant> argumentList;
argumentList << QVariant::fromValue(reboot);
Expand Down
2 changes: 1 addition & 1 deletion src/common/dbus/updatedbusproxy.h
Original file line number Diff line number Diff line change
Expand Up @@ -77,9 +77,9 @@
bool p2pUpdateEnable();

QDBusPendingCall CanRollback();
void ConfirmRollback(bool confirm);
QDBusPendingCall ConfirmRollback(bool confirm);

bool managerInterIsValid() const { return m_managerInter && m_managerInter->isValid(); }

Check warning on line 82 in src/common/dbus/updatedbusproxy.h

View workflow job for this annotation

GitHub Actions / cppcheck

The function 'managerInterIsValid' is never used.

QDBusPendingCall Poweroff(bool reboot = false);

Expand Down
37 changes: 30 additions & 7 deletions src/dde-abrecovery/recoverydialog.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -60,13 +60,7 @@ void Manage::showDialog()
// 能够进入到弹框页面,说明是满足一切版本回退的条件
// true: 确认 , 要恢复旧版本
qInfo() << "Notify button clicked, state: " << state;
if (state) {
m_updateDBusProxy->ConfirmRollback(true);
m_recoveryWidget->updateRestoringWaitUI();
} else {
// false: 取消并重启
m_updateDBusProxy->ConfirmRollback(false);
}
doConfirmRollback(state);
});


Expand Down Expand Up @@ -113,9 +107,16 @@ void Manage::recoveryCanRestore()
QJsonDocument doc = QJsonDocument::fromJson(backupData.toUtf8());
QJsonObject obj = doc.object();
qlonglong backupTime = obj["time"].toVariant().toLongLong();
bool noConfirm = obj["auto"].toBool();

m_backupTime = QDateTime::fromSecsSinceEpoch(backupTime).toString("yyyy/MM/dd hh:mm:ss");
showDialog();

// 存在auto=true,就不需要用户确认是否回退,直接执行回退流程
if (noConfirm) {
doConfirmRollback(true);
}

} else {
exitApp();
}
Expand Down Expand Up @@ -159,6 +160,28 @@ void Manage::requestReboot()
});
}

void Manage::doConfirmRollback(bool confirm)
{
if (confirm) {
m_recoveryWidget->updateRestoringWaitUI();
QDBusPendingCall call = m_updateDBusProxy->ConfirmRollback(true);
QDBusPendingCallWatcher *watcher = new QDBusPendingCallWatcher(call, this);
connect(watcher, &QDBusPendingCallWatcher::finished, [this, watcher] {
QDBusPendingReply<void> reply = *watcher;
if (reply.isError()) {
qWarning() << "Confirm rollback error: " << reply.error().message();
} else {
qInfo() << "Confirm rollback success";
}
watcher->deleteLater();
exitApp();
});
} else {
// false: 取消并重启
m_updateDBusProxy->ConfirmRollback(false);
}
}

RecoveryWidget::RecoveryWidget(QWidget *parent)
: QWidget(parent)
, m_backupVersion("")
Expand Down
2 changes: 2 additions & 0 deletions src/dde-abrecovery/recoverydialog.h
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,8 @@ class Manage : public QObject
explicit Manage(QObject *parent = nullptr);
void showDialog();

void doConfirmRollback(bool confirm);

private:
void recoveryCanRestore();

Expand Down