aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorLibravatar Keshav <keshavnrj@gmail.com>2022-06-13 00:49:52 +0530
committerLibravatar Keshav <keshavnrj@gmail.com>2022-06-13 00:49:52 +0530
commit92382d7bd5d4130cfbda395520d198954eded4d1 (patch)
treeb5d53feefeccf938262ff777872ef8792ea9f336 /src
parent522eb75aebaac26257f9e6a2811fc0f3309b0f76 (diff)
downloadwhatsie-92382d7bd5d4130cfbda395520d198954eded4d1.tar.gz
whatsie-92382d7bd5d4130cfbda395520d198954eded4d1.zip
fix: logout flow during changepassword
Diffstat (limited to 'src')
-rw-r--r--src/mainwindow.cpp26
1 files changed, 19 insertions, 7 deletions
diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp
index 13bfe5f..913ca0d 100644
--- a/src/mainwindow.cpp
+++ b/src/mainwindow.cpp
@@ -40,7 +40,8 @@ void MainWindow::initAutoLock() {
1000);
connect(autoLockEventFilter, &AutoLockEventFilter::autoLockTimerTimeout, this,
[=]() {
- if (settings.value("appAutoLocking", defaultAppAutoLock).toBool()) {
+ if ((settingsWidget && !settingsWidget->isVisible()) &&
+ settings.value("appAutoLocking", defaultAppAutoLock).toBool()) {
this->lockApp();
}
});
@@ -188,7 +189,9 @@ void MainWindow::updateWindowTheme() {
}
QList<QWidget *> widgets = this->findChildren<QWidget *>();
- foreach (QWidget *w, widgets) { w->setPalette(qApp->palette()); }
+ foreach (QWidget *w, widgets) {
+ w->setPalette(qApp->palette());
+ }
setNotificationPresenter(webEngine->page()->profile());
if (lockWidget != nullptr) {
@@ -216,7 +219,8 @@ bool MainWindow::isLoggedIn() {
static bool loggedIn = false;
if (webEngine && webEngine->page()) {
webEngine->page()->runJavaScript(
- "window.localStorage.getItem('WAToken2')", [=](const QVariant &result) {
+ "window.localStorage.getItem('last-wid-md')",
+ [=](const QVariant &result) {
qDebug() << Q_FUNC_INFO << result;
if (result.isValid() && result.toString().isEmpty() == false) {
loggedIn = true;
@@ -235,7 +239,15 @@ void MainWindow::tryLogOut() {
webEngine->page()->runJavaScript(
"document.querySelector(\"span[data-testid|='menu']\").click();"
"document.querySelector(\"#side > header > div > div > span > div > "
- "span > div > ul > li:nth-child(5) > div\").click()",
+ "span > div > ul > li:nth-child(4) > div\").click();"
+ "var dialogEle,dialogEleLastElem;"
+ "function logoutC(){"
+ " dialogEle=document.activeElement.querySelectorAll(\":last-child\");"
+ " dialogEleLastElem=dialogEle[dialogEle.length-1];"
+ " dialogEleLastElem.click();"
+ "}"
+ "setTimeout(logoutC, 600);"
+ "",
[=](const QVariant &result) { qDebug() << Q_FUNC_INFO << result; });
}
}
@@ -641,7 +653,7 @@ void MainWindow::change_lock_password() {
settingsWidget->autoAppLockSetChecked(false);
settingsWidget->updateAppLockPasswordViewer();
tryLogOut();
- QTimer::singleShot(1500, this, [=]() {
+ QTimer::singleShot(1000, this, [=]() {
if (isLoggedIn()) {
forceLogOut();
doAppReload();
@@ -654,14 +666,14 @@ void MainWindow::change_lock_password() {
void MainWindow::appAutoLockChanged() {
bool enabled = settings.value("appAutoLocking", defaultAppAutoLock).toBool();
if (enabled) {
- qApp->installEventFilter(autoLockEventFilter);
autoLockEventFilter->setTimeoutmillis(
settings.value("autoLockDuration", defaultAppAutoLockDuration).toInt() *
1000);
+ qApp->installEventFilter(autoLockEventFilter);
autoLockEventFilter->resetTimer();
} else {
- qApp->removeEventFilter(autoLockEventFilter);
autoLockEventFilter->stopTimer();
+ qApp->removeEventFilter(autoLockEventFilter);
}
}