mirror of
https://github.com/keepassxreboot/keepassxc.git
synced 2026-01-03 01:25:48 -05:00
Improve inactivity timer
* Fix #11957 * Prevent resetting the timer hundreds of times per second * Improve code flow for inactivity timer in general
This commit is contained in:
parent
f262c291ef
commit
8075a98f1b
4 changed files with 26 additions and 36 deletions
|
|
@ -265,7 +265,7 @@ MainWindow::MainWindow()
|
|||
m_ui->actionAllowScreenCapture->setVisible(osUtils->canPreventScreenCapture());
|
||||
|
||||
m_inactivityTimer = new InactivityTimer(this);
|
||||
connect(m_inactivityTimer, SIGNAL(inactivityDetected()), this, SLOT(lockDatabasesAfterInactivity()));
|
||||
connect(m_inactivityTimer, SIGNAL(inactivityDetected()), this, SLOT(lockAllDatabases()));
|
||||
applySettingsChanges();
|
||||
|
||||
m_ui->actionDatabaseNew->setShortcut(Qt::CTRL + Qt::SHIFT + Qt::Key_N);
|
||||
|
|
@ -1656,14 +1656,9 @@ void MainWindow::setShortcut(QAction* action, QKeySequence::StandardKey standard
|
|||
|
||||
void MainWindow::applySettingsChanges()
|
||||
{
|
||||
int timeout = config()->get(Config::Security_LockDatabaseIdleSeconds).toInt() * 1000;
|
||||
if (timeout <= 0) {
|
||||
timeout = 60;
|
||||
}
|
||||
|
||||
m_inactivityTimer->setInactivityTimeout(timeout);
|
||||
if (config()->get(Config::Security_LockDatabaseIdle).toBool()) {
|
||||
m_inactivityTimer->activate();
|
||||
auto timeout = config()->get(Config::Security_LockDatabaseIdleSeconds).toInt() * 1000;
|
||||
m_inactivityTimer->activate(timeout);
|
||||
} else {
|
||||
m_inactivityTimer->deactivate();
|
||||
}
|
||||
|
|
@ -1833,13 +1828,6 @@ void MainWindow::closeModalWindow()
|
|||
}
|
||||
}
|
||||
|
||||
void MainWindow::lockDatabasesAfterInactivity()
|
||||
{
|
||||
if (!m_ui->tabWidget->lockDatabases()) {
|
||||
m_inactivityTimer->activate();
|
||||
}
|
||||
}
|
||||
|
||||
bool MainWindow::isTrayIconEnabled() const
|
||||
{
|
||||
return m_trayIcon && m_trayIcon->isVisible();
|
||||
|
|
@ -1894,7 +1882,7 @@ void MainWindow::bringToFront()
|
|||
void MainWindow::handleScreenLock()
|
||||
{
|
||||
if (config()->get(Config::Security_LockDatabaseScreenLock).toBool()) {
|
||||
lockDatabasesAfterInactivity();
|
||||
lockAllDatabases();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1944,7 +1932,7 @@ void MainWindow::closeAllDatabases()
|
|||
|
||||
void MainWindow::lockAllDatabases()
|
||||
{
|
||||
lockDatabasesAfterInactivity();
|
||||
m_ui->tabWidget->lockDatabases();
|
||||
}
|
||||
|
||||
void MainWindow::displayDesktopNotification(const QString& msg, QString title, int msTimeoutHint)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue