mirror of
https://github.com/keepassxreboot/keepassxc.git
synced 2024-12-25 07:19:42 -05:00
Refactor Database Settings (#9485)
Includes following changes: * Encryption Settings now has a similar key with the new database wizard for switching between Advanced and Simple Settings * The extra UI layer DatabaseSettingsDialog.ui has been removed. DatabaseSettingsDialog class now inherits EditWidget instead of DialogyWidget (just like Application Settings). * Extra classes for separate page settings (DatabaseSettingsPageFdoSecrets, DatabaseSettingsPageKeeShare) have been removed. Instead the widgets are used directly in DatabaseSettingsDialog. Same could be done later to Application --------- Co-authored-by: Jonathan White <support@dmapps.us>
This commit is contained in:
parent
88b76244cf
commit
fbdd97b1be
@ -1599,14 +1599,6 @@ To prevent this error from appearing, you must go to "Database Settings / S
|
|||||||
<source><p>In addition to a password, you can use a secret file to enhance the security of your database. This file can be generated in your database's security settings.</p><p>This is <strong>not</strong> your *.kdbx database file!</p></source>
|
<source><p>In addition to a password, you can use a secret file to enhance the security of your database. This file can be generated in your database's security settings.</p><p>This is <strong>not</strong> your *.kdbx database file!</p></source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
|
||||||
<source>Click to add a key file.</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source><a href="#" style="text-decoration: underline">I have a key file</a></source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<source>Use hardware key [Serial: %1]</source>
|
<source>Use hardware key [Serial: %1]</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
@ -1639,6 +1631,14 @@ Are you sure you want to continue with this file?.</source>
|
|||||||
<source>Refresh Hardware Keys</source>
|
<source>Refresh Hardware Keys</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Click to add a key file.</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source><a href="#" style="text-decoration: underline">I have a key file</a></source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>DatabaseSettingWidgetMetaData</name>
|
<name>DatabaseSettingWidgetMetaData</name>
|
||||||
@ -1673,6 +1673,14 @@ Are you sure you want to continue with this file?.</source>
|
|||||||
<source>Maintenance</source>
|
<source>Maintenance</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>KeeShare</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Secret Service Integration</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Remote Sync</source>
|
<source>Remote Sync</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
|
@ -115,6 +115,7 @@ set(keepassx_SOURCES
|
|||||||
gui/ApplicationSettingsWidget.cpp
|
gui/ApplicationSettingsWidget.cpp
|
||||||
gui/Icons.cpp
|
gui/Icons.cpp
|
||||||
gui/SearchWidget.cpp
|
gui/SearchWidget.cpp
|
||||||
|
gui/SettingsWidget.cpp
|
||||||
gui/SortFilterHideProxyModel.cpp
|
gui/SortFilterHideProxyModel.cpp
|
||||||
gui/SquareSvgWidget.cpp
|
gui/SquareSvgWidget.cpp
|
||||||
gui/ShortcutSettingsPage.cpp
|
gui/ShortcutSettingsPage.cpp
|
||||||
@ -167,7 +168,6 @@ set(keepassx_SOURCES
|
|||||||
gui/osutils/OSUtilsBase.cpp
|
gui/osutils/OSUtilsBase.cpp
|
||||||
gui/osutils/ScreenLockListener.cpp
|
gui/osutils/ScreenLockListener.cpp
|
||||||
gui/osutils/ScreenLockListenerPrivate.cpp
|
gui/osutils/ScreenLockListenerPrivate.cpp
|
||||||
gui/settings/SettingsWidget.cpp
|
|
||||||
gui/widgets/ElidedLabel.cpp
|
gui/widgets/ElidedLabel.cpp
|
||||||
gui/widgets/KPToolBar.cpp
|
gui/widgets/KPToolBar.cpp
|
||||||
gui/widgets/PopupHelpWidget.cpp
|
gui/widgets/PopupHelpWidget.cpp
|
||||||
|
@ -9,7 +9,6 @@ if(WITH_XC_FDOSECRETS)
|
|||||||
widgets/RowButtonHelper.cpp
|
widgets/RowButtonHelper.cpp
|
||||||
|
|
||||||
# per database settings page
|
# per database settings page
|
||||||
DatabaseSettingsPageFdoSecrets.cpp
|
|
||||||
widgets/DatabaseSettingsWidgetFdoSecrets.cpp
|
widgets/DatabaseSettingsWidgetFdoSecrets.cpp
|
||||||
|
|
||||||
# prompt dialog
|
# prompt dialog
|
||||||
|
@ -1,49 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (C) 2019 Aetf <aetf@unlimitedcodeworks.xyz>
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 2 or (at your option)
|
|
||||||
* version 3 of the License.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "DatabaseSettingsPageFdoSecrets.h"
|
|
||||||
|
|
||||||
#include "fdosecrets/widgets/DatabaseSettingsWidgetFdoSecrets.h"
|
|
||||||
|
|
||||||
#include "gui/Icons.h"
|
|
||||||
|
|
||||||
QString DatabaseSettingsPageFdoSecrets::name()
|
|
||||||
{
|
|
||||||
return QObject::tr("Secret Service Integration");
|
|
||||||
}
|
|
||||||
|
|
||||||
QIcon DatabaseSettingsPageFdoSecrets::icon()
|
|
||||||
{
|
|
||||||
return icons()->icon(QStringLiteral("freedesktop"));
|
|
||||||
}
|
|
||||||
|
|
||||||
QWidget* DatabaseSettingsPageFdoSecrets::createWidget()
|
|
||||||
{
|
|
||||||
return new DatabaseSettingsWidgetFdoSecrets;
|
|
||||||
}
|
|
||||||
|
|
||||||
void DatabaseSettingsPageFdoSecrets::loadSettings(QWidget* widget, QSharedPointer<Database> db)
|
|
||||||
{
|
|
||||||
auto settingsWidget = qobject_cast<DatabaseSettingsWidgetFdoSecrets*>(widget);
|
|
||||||
settingsWidget->loadSettings(db);
|
|
||||||
}
|
|
||||||
|
|
||||||
void DatabaseSettingsPageFdoSecrets::saveSettings(QWidget* widget)
|
|
||||||
{
|
|
||||||
auto settingsWidget = qobject_cast<DatabaseSettingsWidgetFdoSecrets*>(widget);
|
|
||||||
settingsWidget->saveSettings();
|
|
||||||
}
|
|
@ -1,36 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (C) 2019 Aetf <aetf@unlimitedcodeworks.xyz>
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 2 or (at your option)
|
|
||||||
* version 3 of the License.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef KEEPASSXC_DATABASESETTINGSPAGEFDOSECRETS_H
|
|
||||||
#define KEEPASSXC_DATABASESETTINGSPAGEFDOSECRETS_H
|
|
||||||
|
|
||||||
#include "gui/dbsettings/DatabaseSettingsDialog.h"
|
|
||||||
|
|
||||||
class DatabaseSettingsPageFdoSecrets : public IDatabaseSettingsPage
|
|
||||||
{
|
|
||||||
Q_DISABLE_COPY(DatabaseSettingsPageFdoSecrets)
|
|
||||||
public:
|
|
||||||
DatabaseSettingsPageFdoSecrets() = default;
|
|
||||||
|
|
||||||
QString name() override;
|
|
||||||
QIcon icon() override;
|
|
||||||
QWidget* createWidget() override;
|
|
||||||
void loadSettings(QWidget* widget, QSharedPointer<Database> db) override;
|
|
||||||
void saveSettings(QWidget* widget) override;
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // KEEPASSXC_DATABASESETTINGSPAGEFDOSECRETS_H
|
|
@ -34,6 +34,9 @@
|
|||||||
|
|
||||||
#include "FileDialog.h"
|
#include "FileDialog.h"
|
||||||
#include "MessageBox.h"
|
#include "MessageBox.h"
|
||||||
|
#ifdef WITH_XC_BROWSER
|
||||||
|
#include "browser/BrowserSettingsPage.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
class ApplicationSettingsWidget::ExtraPage
|
class ApplicationSettingsWidget::ExtraPage
|
||||||
{
|
{
|
||||||
@ -97,6 +100,9 @@ ApplicationSettingsWidget::ApplicationSettingsWidget(QWidget* parent)
|
|||||||
m_generalUi->setupUi(m_generalWidget);
|
m_generalUi->setupUi(m_generalWidget);
|
||||||
addPage(tr("General"), icons()->icon("preferences-other"), m_generalWidget);
|
addPage(tr("General"), icons()->icon("preferences-other"), m_generalWidget);
|
||||||
addPage(tr("Security"), icons()->icon("security-high"), m_secWidget);
|
addPage(tr("Security"), icons()->icon("security-high"), m_secWidget);
|
||||||
|
#ifdef WITH_XC_BROWSER
|
||||||
|
addSettingsPage(new BrowserSettingsPage());
|
||||||
|
#endif
|
||||||
|
|
||||||
if (!autoType()->isAvailable()) {
|
if (!autoType()->isAvailable()) {
|
||||||
m_generalUi->generalSettingsTabWidget->removeTab(1);
|
m_generalUi->generalSettingsTabWidget->removeTab(1);
|
||||||
|
@ -72,7 +72,6 @@
|
|||||||
|
|
||||||
#ifdef WITH_XC_BROWSER
|
#ifdef WITH_XC_BROWSER
|
||||||
#include "browser/BrowserService.h"
|
#include "browser/BrowserService.h"
|
||||||
#include "browser/BrowserSettingsPage.h"
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(Q_OS_UNIX) && !defined(Q_OS_MACOS) && !defined(QT_NO_DBUS)
|
#if defined(Q_OS_UNIX) && !defined(Q_OS_MACOS) && !defined(QT_NO_DBUS)
|
||||||
@ -222,7 +221,6 @@ MainWindow::MainWindow()
|
|||||||
m_ui->settingsWidget->addSettingsPage(new ShortcutSettingsPage());
|
m_ui->settingsWidget->addSettingsPage(new ShortcutSettingsPage());
|
||||||
|
|
||||||
#ifdef WITH_XC_BROWSER
|
#ifdef WITH_XC_BROWSER
|
||||||
m_ui->settingsWidget->addSettingsPage(new BrowserSettingsPage());
|
|
||||||
connect(
|
connect(
|
||||||
browserService(), &BrowserService::requestUnlock, m_ui->tabWidget, &DatabaseTabWidget::performBrowserUnlock);
|
browserService(), &BrowserService::requestUnlock, m_ui->tabWidget, &DatabaseTabWidget::performBrowserUnlock);
|
||||||
#endif
|
#endif
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C) 2018 KeePassXC Team <team@keepassxc.org>
|
* Copyright (C) 2023 KeePassXC Team <team@keepassxc.org>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@ -22,8 +22,6 @@ SettingsWidget::SettingsWidget(QWidget* parent)
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
SettingsWidget::~SettingsWidget() = default;
|
|
||||||
|
|
||||||
void SettingsWidget::discard()
|
void SettingsWidget::discard()
|
||||||
{
|
{
|
||||||
}
|
}
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C) 2018 KeePassXC Team <team@keepassxc.org>
|
* Copyright (C) 2023 KeePassXC Team <team@keepassxc.org>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@ -31,8 +31,7 @@ class SettingsWidget : public QWidget
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
explicit SettingsWidget(QWidget* parent = nullptr);
|
explicit SettingsWidget(QWidget* parent = nullptr);
|
||||||
Q_DISABLE_COPY(SettingsWidget);
|
~SettingsWidget() override = default;
|
||||||
~SettingsWidget() override;
|
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
/**
|
/**
|
||||||
@ -50,7 +49,7 @@ public slots:
|
|||||||
*
|
*
|
||||||
* @return true on success, false on failure
|
* @return true on success, false on failure
|
||||||
*/
|
*/
|
||||||
virtual bool save() = 0;
|
virtual bool saveSettings() = 0;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Discard settings.
|
* Discard settings.
|
||||||
@ -62,6 +61,8 @@ signals:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
bool m_advancedMode = false;
|
bool m_advancedMode = false;
|
||||||
|
|
||||||
|
Q_DISABLE_COPY(SettingsWidget);
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // KEEPASSXC_SETTINGSWIDGET_H
|
#endif // KEEPASSXC_SETTINGSWIDGET_H
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C) 2018 KeePassXC Team <team@keepassxc.org>
|
* Copyright (C) 2023 KeePassXC Team <team@keepassxc.org>
|
||||||
* Copyright (C) 2012 Felix Geyer <debfx@fobos.de>
|
* Copyright (C) 2012 Felix Geyer <debfx@fobos.de>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
@ -17,8 +17,6 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include "DatabaseSettingsDialog.h"
|
#include "DatabaseSettingsDialog.h"
|
||||||
#include "ui_DatabaseSettingsDialog.h"
|
|
||||||
|
|
||||||
#include "DatabaseSettingsWidgetDatabaseKey.h"
|
#include "DatabaseSettingsWidgetDatabaseKey.h"
|
||||||
#include "DatabaseSettingsWidgetEncryption.h"
|
#include "DatabaseSettingsWidgetEncryption.h"
|
||||||
#include "DatabaseSettingsWidgetGeneral.h"
|
#include "DatabaseSettingsWidgetGeneral.h"
|
||||||
@ -28,10 +26,10 @@
|
|||||||
#include "../remote/DatabaseSettingsWidgetRemote.h"
|
#include "../remote/DatabaseSettingsWidgetRemote.h"
|
||||||
#include "DatabaseSettingsWidgetMaintenance.h"
|
#include "DatabaseSettingsWidgetMaintenance.h"
|
||||||
#ifdef WITH_XC_KEESHARE
|
#ifdef WITH_XC_KEESHARE
|
||||||
#include "keeshare/DatabaseSettingsPageKeeShare.h"
|
#include "keeshare/DatabaseSettingsWidgetKeeShare.h"
|
||||||
#endif
|
#endif
|
||||||
#ifdef WITH_XC_FDOSECRETS
|
#ifdef WITH_XC_FDOSECRETS
|
||||||
#include "fdosecrets/DatabaseSettingsPageFdoSecrets.h"
|
#include "fdosecrets/widgets/DatabaseSettingsWidgetFdoSecrets.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "core/Database.h"
|
#include "core/Database.h"
|
||||||
@ -40,50 +38,29 @@
|
|||||||
|
|
||||||
#include <QScrollArea>
|
#include <QScrollArea>
|
||||||
|
|
||||||
class DatabaseSettingsDialog::ExtraPage
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
ExtraPage(IDatabaseSettingsPage* page, QWidget* widget)
|
|
||||||
: settingsPage(page)
|
|
||||||
, widget(widget)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
void loadSettings(QSharedPointer<Database> db) const
|
|
||||||
{
|
|
||||||
settingsPage->loadSettings(widget, db);
|
|
||||||
}
|
|
||||||
void saveSettings() const
|
|
||||||
{
|
|
||||||
settingsPage->saveSettings(widget);
|
|
||||||
}
|
|
||||||
|
|
||||||
private:
|
|
||||||
QSharedPointer<IDatabaseSettingsPage> settingsPage;
|
|
||||||
QWidget* widget;
|
|
||||||
};
|
|
||||||
|
|
||||||
DatabaseSettingsDialog::DatabaseSettingsDialog(QWidget* parent)
|
DatabaseSettingsDialog::DatabaseSettingsDialog(QWidget* parent)
|
||||||
: DialogyWidget(parent)
|
: EditWidget(parent)
|
||||||
, m_ui(new Ui::DatabaseSettingsDialog())
|
|
||||||
, m_generalWidget(new DatabaseSettingsWidgetGeneral(this))
|
, m_generalWidget(new DatabaseSettingsWidgetGeneral(this))
|
||||||
, m_securityTabWidget(new QTabWidget(this))
|
, m_securityTabWidget(new QTabWidget(this))
|
||||||
, m_databaseKeyWidget(new DatabaseSettingsWidgetDatabaseKey(this))
|
, m_databaseKeyWidget(new DatabaseSettingsWidgetDatabaseKey(this))
|
||||||
, m_encryptionWidget(new DatabaseSettingsWidgetEncryption(this))
|
, m_encryptionWidget(new DatabaseSettingsWidgetEncryption(this))
|
||||||
#ifdef WITH_XC_BROWSER
|
#ifdef WITH_XC_BROWSER
|
||||||
, m_browserWidget(new DatabaseSettingsWidgetBrowser(this))
|
, m_browserWidget(new DatabaseSettingsWidgetBrowser(this))
|
||||||
|
#endif
|
||||||
|
#ifdef WITH_XC_KEESHARE
|
||||||
|
, m_keeShareWidget(new DatabaseSettingsWidgetKeeShare(this))
|
||||||
|
#endif
|
||||||
|
#ifdef WITH_XC_FDOSECRETS
|
||||||
|
, m_fdoSecretsWidget(new DatabaseSettingsWidgetFdoSecrets(this))
|
||||||
#endif
|
#endif
|
||||||
, m_maintenanceWidget(new DatabaseSettingsWidgetMaintenance(this))
|
, m_maintenanceWidget(new DatabaseSettingsWidgetMaintenance(this))
|
||||||
, m_remoteWidget(new DatabaseSettingsWidgetRemote(this))
|
, m_remoteWidget(new DatabaseSettingsWidgetRemote(this))
|
||||||
{
|
{
|
||||||
m_ui->setupUi(this);
|
connect(this, SIGNAL(accepted()), SLOT(save()));
|
||||||
|
connect(this, SIGNAL(rejected()), SLOT(reject()));
|
||||||
|
|
||||||
connect(m_ui->buttonBox, SIGNAL(accepted()), SLOT(save()));
|
addPage(tr("General"), icons()->icon("preferences-other"), m_generalWidget);
|
||||||
connect(m_ui->buttonBox, SIGNAL(rejected()), SLOT(reject()));
|
addPage(tr("Security"), icons()->icon("security-high"), m_securityTabWidget);
|
||||||
|
|
||||||
m_ui->categoryList->addCategory(tr("General"), icons()->icon("preferences-other"));
|
|
||||||
m_ui->stackedWidget->addWidget(m_generalWidget);
|
|
||||||
m_ui->categoryList->addCategory(tr("Security"), icons()->icon("security-high"));
|
|
||||||
m_ui->stackedWidget->addWidget(m_securityTabWidget);
|
|
||||||
|
|
||||||
auto* scrollArea = new QScrollArea(parent);
|
auto* scrollArea = new QScrollArea(parent);
|
||||||
scrollArea->setFrameShape(QFrame::NoFrame);
|
scrollArea->setFrameShape(QFrame::NoFrame);
|
||||||
@ -93,106 +70,99 @@ DatabaseSettingsDialog::DatabaseSettingsDialog(QWidget* parent)
|
|||||||
scrollArea->setWidgetResizable(true);
|
scrollArea->setWidgetResizable(true);
|
||||||
scrollArea->setWidget(m_databaseKeyWidget);
|
scrollArea->setWidget(m_databaseKeyWidget);
|
||||||
|
|
||||||
|
m_securityTabWidget->setObjectName("securityTabWidget");
|
||||||
m_securityTabWidget->addTab(scrollArea, tr("Database Credentials"));
|
m_securityTabWidget->addTab(scrollArea, tr("Database Credentials"));
|
||||||
m_securityTabWidget->addTab(m_encryptionWidget, tr("Encryption Settings"));
|
m_securityTabWidget->addTab(m_encryptionWidget, tr("Encryption Settings"));
|
||||||
|
|
||||||
m_securityTabWidget->setCurrentIndex(0);
|
m_securityTabWidget->setCurrentIndex(0);
|
||||||
|
|
||||||
m_ui->categoryList->addCategory(tr("Remote Sync"), icons()->icon("remote-sync"));
|
addPage(tr("Remote Sync"), icons()->icon("remote-sync"), m_remoteWidget);
|
||||||
m_ui->stackedWidget->addWidget(m_remoteWidget);
|
|
||||||
|
|
||||||
#ifdef WITH_XC_BROWSER
|
#ifdef WITH_XC_BROWSER
|
||||||
m_ui->categoryList->addCategory(tr("Browser Integration"), icons()->icon("internet-web-browser"));
|
addPage(tr("Browser Integration"), icons()->icon("internet-web-browser"), m_browserWidget);
|
||||||
m_ui->stackedWidget->addWidget(m_browserWidget);
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef WITH_XC_KEESHARE
|
#ifdef WITH_XC_KEESHARE
|
||||||
addSettingsPage(new DatabaseSettingsPageKeeShare());
|
addPage(tr("KeeShare"), icons()->icon("preferences-system-network-sharing"), m_keeShareWidget);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef WITH_XC_FDOSECRETS
|
#ifdef WITH_XC_FDOSECRETS
|
||||||
addSettingsPage(new DatabaseSettingsPageFdoSecrets());
|
addPage(tr("Secret Service Integration"), icons()->icon(QStringLiteral("freedesktop")), m_fdoSecretsWidget);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
m_ui->categoryList->addCategory(tr("Maintenance"), icons()->icon("hammer-wrench"));
|
addPage(tr("Maintenance"), icons()->icon("hammer-wrench"), m_maintenanceWidget);
|
||||||
m_ui->stackedWidget->addWidget(m_maintenanceWidget);
|
|
||||||
|
|
||||||
m_ui->stackedWidget->setCurrentIndex(0);
|
setCurrentPage(0);
|
||||||
connect(m_ui->categoryList, SIGNAL(categoryChanged(int)), m_ui->stackedWidget, SLOT(setCurrentIndex(int)));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
DatabaseSettingsDialog::~DatabaseSettingsDialog() = default;
|
DatabaseSettingsDialog::~DatabaseSettingsDialog() = default;
|
||||||
|
|
||||||
void DatabaseSettingsDialog::load(const QSharedPointer<Database>& db)
|
void DatabaseSettingsDialog::load(const QSharedPointer<Database>& db)
|
||||||
{
|
{
|
||||||
m_ui->categoryList->setCurrentCategory(0);
|
m_generalWidget->loadSettings(db);
|
||||||
m_generalWidget->load(db);
|
m_databaseKeyWidget->loadSettings(db);
|
||||||
m_databaseKeyWidget->load(db);
|
m_encryptionWidget->loadSettings(db);
|
||||||
m_encryptionWidget->load(db);
|
m_remoteWidget->loadSettings(db);
|
||||||
#ifdef WITH_XC_BROWSER
|
#ifdef WITH_XC_BROWSER
|
||||||
m_browserWidget->load(db);
|
m_browserWidget->loadSettings(db);
|
||||||
#endif
|
#endif
|
||||||
m_maintenanceWidget->load(db);
|
#ifdef WITH_XC_KEESHARE
|
||||||
m_remoteWidget->load(db);
|
m_keeShareWidget->loadSettings(db);
|
||||||
for (const ExtraPage& page : asConst(m_extraPages)) {
|
#endif
|
||||||
page.loadSettings(db);
|
#ifdef WITH_XC_FDOSECRETS
|
||||||
}
|
m_fdoSecretsWidget->loadSettings(db);
|
||||||
m_db = db;
|
#endif
|
||||||
}
|
m_maintenanceWidget->loadSettings(db);
|
||||||
|
|
||||||
void DatabaseSettingsDialog::addSettingsPage(IDatabaseSettingsPage* page)
|
m_db = db;
|
||||||
{
|
|
||||||
const int category = m_ui->categoryList->currentCategory();
|
|
||||||
QWidget* widget = page->createWidget();
|
|
||||||
widget->setParent(this);
|
|
||||||
m_extraPages.append(ExtraPage(page, widget));
|
|
||||||
m_ui->stackedWidget->addWidget(widget);
|
|
||||||
m_ui->categoryList->addCategory(page->name(), page->icon());
|
|
||||||
m_ui->categoryList->setCurrentCategory(category);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Show page and tab with database database key settings.
|
* Show page and tab with database database key settings.
|
||||||
*/
|
*/
|
||||||
void DatabaseSettingsDialog::showDatabaseKeySettings()
|
void DatabaseSettingsDialog::showDatabaseKeySettings(int index)
|
||||||
{
|
{
|
||||||
m_ui->categoryList->setCurrentCategory(1);
|
setCurrentPage(1);
|
||||||
m_securityTabWidget->setCurrentIndex(0);
|
m_securityTabWidget->setCurrentIndex(index);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DatabaseSettingsDialog::showRemoteSettings()
|
void DatabaseSettingsDialog::showRemoteSettings()
|
||||||
{
|
{
|
||||||
m_ui->categoryList->setCurrentCategory(2);
|
setCurrentPage(2);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DatabaseSettingsDialog::save()
|
void DatabaseSettingsDialog::save()
|
||||||
{
|
{
|
||||||
if (!m_generalWidget->save()) {
|
if (!m_generalWidget->saveSettings()) {
|
||||||
m_ui->categoryList->setCurrentCategory(0);
|
setCurrentPage(0);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!m_databaseKeyWidget->save()) {
|
if (!m_databaseKeyWidget->saveSettings()) {
|
||||||
m_ui->categoryList->setCurrentCategory(1);
|
setCurrentPage(1);
|
||||||
m_securityTabWidget->setCurrentIndex(0);
|
m_securityTabWidget->setCurrentIndex(0);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!m_encryptionWidget->save()) {
|
if (!m_encryptionWidget->saveSettings()) {
|
||||||
m_ui->categoryList->setCurrentCategory(1);
|
setCurrentPage(1);
|
||||||
m_securityTabWidget->setCurrentIndex(1);
|
m_securityTabWidget->setCurrentIndex(1);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!m_remoteWidget->save()) {
|
if (!m_remoteWidget->saveSettings()) {
|
||||||
m_ui->categoryList->setCurrentCategory(2);
|
setCurrentPage(2);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Browser settings don't have anything to save
|
// Browser settings don't have anything to save
|
||||||
|
|
||||||
for (const ExtraPage& extraPage : asConst(m_extraPages)) {
|
#ifdef WITH_XC_KEESHARE
|
||||||
extraPage.saveSettings();
|
m_keeShareWidget->saveSettings();
|
||||||
}
|
#endif
|
||||||
|
#ifdef WITH_XC_FDOSECRETS
|
||||||
|
m_fdoSecretsWidget->saveSettings();
|
||||||
|
#endif
|
||||||
|
|
||||||
emit editFinished(true);
|
emit editFinished(true);
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
|
* Copyright (C) 2023 KeePassXC Team <team@keepassxc.org>
|
||||||
* Copyright (C) 2012 Felix Geyer <debfx@fobos.de>
|
* Copyright (C) 2012 Felix Geyer <debfx@fobos.de>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
@ -15,11 +16,11 @@
|
|||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef KEEPASSX_DATABASESETTINGSWIDGET_H
|
#ifndef KEEPASSXC_DATABASESETTINGSDIALOG_H
|
||||||
#define KEEPASSX_DATABASESETTINGSWIDGET_H
|
#define KEEPASSXC_DATABASESETTINGSDIALOG_H
|
||||||
|
|
||||||
#include "config-keepassx.h"
|
#include "config-keepassx.h"
|
||||||
#include "gui/DialogyWidget.h"
|
#include "gui/EditWidget.h"
|
||||||
|
|
||||||
#include <QPointer>
|
#include <QPointer>
|
||||||
|
|
||||||
@ -30,27 +31,17 @@ class DatabaseSettingsWidgetDatabaseKey;
|
|||||||
#ifdef WITH_XC_BROWSER
|
#ifdef WITH_XC_BROWSER
|
||||||
class DatabaseSettingsWidgetBrowser;
|
class DatabaseSettingsWidgetBrowser;
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef WITH_XC_KEESHARE
|
||||||
|
class DatabaseSettingsWidgetKeeShare;
|
||||||
|
#endif
|
||||||
|
#ifdef WITH_XC_FDOSECRETS
|
||||||
|
class DatabaseSettingsWidgetFdoSecrets;
|
||||||
|
#endif
|
||||||
class DatabaseSettingsWidgetMaintenance;
|
class DatabaseSettingsWidgetMaintenance;
|
||||||
class DatabaseSettingsWidgetRemote;
|
class DatabaseSettingsWidgetRemote;
|
||||||
class QTabWidget;
|
class QTabWidget;
|
||||||
|
|
||||||
namespace Ui
|
class DatabaseSettingsDialog : public EditWidget
|
||||||
{
|
|
||||||
class DatabaseSettingsDialog;
|
|
||||||
}
|
|
||||||
|
|
||||||
class IDatabaseSettingsPage
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
virtual ~IDatabaseSettingsPage() = default;
|
|
||||||
virtual QString name() = 0;
|
|
||||||
virtual QIcon icon() = 0;
|
|
||||||
virtual QWidget* createWidget() = 0;
|
|
||||||
virtual void loadSettings(QWidget* widget, QSharedPointer<Database> db) = 0;
|
|
||||||
virtual void saveSettings(QWidget* widget) = 0;
|
|
||||||
};
|
|
||||||
|
|
||||||
class DatabaseSettingsDialog : public DialogyWidget
|
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
@ -60,8 +51,7 @@ public:
|
|||||||
Q_DISABLE_COPY(DatabaseSettingsDialog);
|
Q_DISABLE_COPY(DatabaseSettingsDialog);
|
||||||
|
|
||||||
void load(const QSharedPointer<Database>& db);
|
void load(const QSharedPointer<Database>& db);
|
||||||
void addSettingsPage(IDatabaseSettingsPage* page);
|
void showDatabaseKeySettings(int index = 0);
|
||||||
void showDatabaseKeySettings();
|
|
||||||
void showRemoteSettings();
|
void showRemoteSettings();
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
@ -72,26 +62,22 @@ private slots:
|
|||||||
void reject();
|
void reject();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
enum Page
|
|
||||||
{
|
|
||||||
General = 0,
|
|
||||||
Security = 1
|
|
||||||
};
|
|
||||||
|
|
||||||
QSharedPointer<Database> m_db;
|
QSharedPointer<Database> m_db;
|
||||||
const QScopedPointer<Ui::DatabaseSettingsDialog> m_ui;
|
|
||||||
QPointer<DatabaseSettingsWidgetGeneral> m_generalWidget;
|
QPointer<DatabaseSettingsWidgetGeneral> m_generalWidget;
|
||||||
QPointer<QTabWidget> m_securityTabWidget;
|
QPointer<QTabWidget> m_securityTabWidget;
|
||||||
QPointer<DatabaseSettingsWidgetDatabaseKey> m_databaseKeyWidget;
|
QPointer<DatabaseSettingsWidgetDatabaseKey> m_databaseKeyWidget;
|
||||||
QPointer<DatabaseSettingsWidgetEncryption> m_encryptionWidget;
|
QPointer<DatabaseSettingsWidgetEncryption> m_encryptionWidget;
|
||||||
#ifdef WITH_XC_BROWSER
|
#ifdef WITH_XC_BROWSER
|
||||||
QPointer<DatabaseSettingsWidgetBrowser> m_browserWidget;
|
QPointer<DatabaseSettingsWidgetBrowser> m_browserWidget;
|
||||||
|
#endif
|
||||||
|
#ifdef WITH_XC_KEESHARE
|
||||||
|
QPointer<DatabaseSettingsWidgetKeeShare> m_keeShareWidget;
|
||||||
|
#endif
|
||||||
|
#ifdef WITH_XC_FDOSECRETS
|
||||||
|
QPointer<DatabaseSettingsWidgetFdoSecrets> m_fdoSecretsWidget;
|
||||||
#endif
|
#endif
|
||||||
QPointer<DatabaseSettingsWidgetMaintenance> m_maintenanceWidget;
|
QPointer<DatabaseSettingsWidgetMaintenance> m_maintenanceWidget;
|
||||||
QPointer<DatabaseSettingsWidgetRemote> m_remoteWidget;
|
QPointer<DatabaseSettingsWidgetRemote> m_remoteWidget;
|
||||||
|
|
||||||
class ExtraPage;
|
|
||||||
QList<ExtraPage> m_extraPages;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // KEEPASSX_DATABASESETTINGSWIDGET_H
|
#endif // KEEPASSXC_DATABASESETTINGSDIALOG_H
|
||||||
|
@ -1,39 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<ui version="4.0">
|
|
||||||
<class>DatabaseSettingsDialog</class>
|
|
||||||
<widget class="QWidget" name="DatabaseSettingsDialog">
|
|
||||||
<layout class="QVBoxLayout" name="verticalLayout" stretch="0,0">
|
|
||||||
<item>
|
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout_2" stretch="0,1">
|
|
||||||
<item>
|
|
||||||
<widget class="CategoryListWidget" name="categoryList" native="true"/>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QStackedWidget" name="stackedWidget">
|
|
||||||
<property name="currentIndex">
|
|
||||||
<number>-1</number>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QDialogButtonBox" name="buttonBox">
|
|
||||||
<property name="standardButtons">
|
|
||||||
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</widget>
|
|
||||||
<customwidgets>
|
|
||||||
<customwidget>
|
|
||||||
<class>CategoryListWidget</class>
|
|
||||||
<extends>QWidget</extends>
|
|
||||||
<header>gui/CategoryListWidget.h</header>
|
|
||||||
<container>1</container>
|
|
||||||
</customwidget>
|
|
||||||
</customwidgets>
|
|
||||||
<resources/>
|
|
||||||
<connections/>
|
|
||||||
</ui>
|
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C) 2018 KeePassXC Team <team@keepassxc.org>
|
* Copyright (C) 2023 KeePassXC Team <team@keepassxc.org>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@ -31,7 +31,7 @@ DatabaseSettingsWidget::~DatabaseSettingsWidget() = default;
|
|||||||
*
|
*
|
||||||
* @param db database object to be configured
|
* @param db database object to be configured
|
||||||
*/
|
*/
|
||||||
void DatabaseSettingsWidget::load(QSharedPointer<Database> db)
|
void DatabaseSettingsWidget::loadSettings(QSharedPointer<Database> db)
|
||||||
{
|
{
|
||||||
m_db = std::move(db);
|
m_db = std::move(db);
|
||||||
initialize();
|
initialize();
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C) 2018 KeePassXC Team <team@keepassxc.org>
|
* Copyright (C) 2023 KeePassXC Team <team@keepassxc.org>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@ -18,7 +18,7 @@
|
|||||||
#ifndef KEEPASSXC_DATABASESETTINGSWIDGET_H
|
#ifndef KEEPASSXC_DATABASESETTINGSWIDGET_H
|
||||||
#define KEEPASSXC_DATABASESETTINGSWIDGET_H
|
#define KEEPASSXC_DATABASESETTINGSWIDGET_H
|
||||||
|
|
||||||
#include "gui/settings/SettingsWidget.h"
|
#include "gui/SettingsWidget.h"
|
||||||
|
|
||||||
class Database;
|
class Database;
|
||||||
|
|
||||||
@ -34,7 +34,7 @@ public:
|
|||||||
Q_DISABLE_COPY(DatabaseSettingsWidget);
|
Q_DISABLE_COPY(DatabaseSettingsWidget);
|
||||||
~DatabaseSettingsWidget() override;
|
~DatabaseSettingsWidget() override;
|
||||||
|
|
||||||
virtual void load(QSharedPointer<Database> db);
|
virtual void loadSettings(QSharedPointer<Database> db);
|
||||||
|
|
||||||
const QSharedPointer<Database> getDatabase() const;
|
const QSharedPointer<Database> getDatabase() const;
|
||||||
|
|
||||||
|
@ -82,7 +82,7 @@ void DatabaseSettingsWidgetBrowser::showEvent(QShowEvent* event)
|
|||||||
QWidget::showEvent(event);
|
QWidget::showEvent(event);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool DatabaseSettingsWidgetBrowser::save()
|
bool DatabaseSettingsWidgetBrowser::saveSettings()
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C) 2022 KeePassXC Team <team@keepassxc.org>
|
* Copyright (C) 2023 KeePassXC Team <team@keepassxc.org>
|
||||||
* Copyright (C) 2018 Sami Vänttinen <sami.vanttinen@protonmail.com>
|
* Copyright (C) 2018 Sami Vänttinen <sami.vanttinen@protonmail.com>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
@ -47,7 +47,7 @@ public:
|
|||||||
public slots:
|
public slots:
|
||||||
void initialize() override;
|
void initialize() override;
|
||||||
void uninitialize() override;
|
void uninitialize() override;
|
||||||
bool save() override;
|
bool saveSettings() override;
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void removeSelectedKey();
|
void removeSelectedKey();
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C) 2018 KeePassXC Team <team@keepassxc.org>
|
* Copyright (C) 2023 KeePassXC Team <team@keepassxc.org>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@ -46,10 +46,10 @@ DatabaseSettingsWidgetDatabaseKey::DatabaseSettingsWidgetDatabaseKey(QWidget* pa
|
|||||||
vbox->setSizeConstraint(QLayout::SetMinimumSize);
|
vbox->setSizeConstraint(QLayout::SetMinimumSize);
|
||||||
vbox->setSpacing(20);
|
vbox->setSpacing(20);
|
||||||
|
|
||||||
// primary password option
|
// Primary password option
|
||||||
vbox->addWidget(m_passwordEditWidget);
|
vbox->addWidget(m_passwordEditWidget);
|
||||||
|
|
||||||
// additional key options
|
// Additional key options
|
||||||
m_additionalKeyOptionsToggle->setObjectName("additionalKeyOptionsToggle");
|
m_additionalKeyOptionsToggle->setObjectName("additionalKeyOptionsToggle");
|
||||||
vbox->addWidget(m_additionalKeyOptionsToggle);
|
vbox->addWidget(m_additionalKeyOptionsToggle);
|
||||||
vbox->addWidget(m_additionalKeyOptions);
|
vbox->addWidget(m_additionalKeyOptions);
|
||||||
@ -71,12 +71,12 @@ DatabaseSettingsWidgetDatabaseKey::DatabaseSettingsWidgetDatabaseKey(QWidget* pa
|
|||||||
|
|
||||||
DatabaseSettingsWidgetDatabaseKey::~DatabaseSettingsWidgetDatabaseKey() = default;
|
DatabaseSettingsWidgetDatabaseKey::~DatabaseSettingsWidgetDatabaseKey() = default;
|
||||||
|
|
||||||
void DatabaseSettingsWidgetDatabaseKey::load(QSharedPointer<Database> db)
|
void DatabaseSettingsWidgetDatabaseKey::loadSettings(QSharedPointer<Database> db)
|
||||||
{
|
{
|
||||||
DatabaseSettingsWidget::load(db);
|
DatabaseSettingsWidget::loadSettings(db);
|
||||||
|
|
||||||
if (!m_db->key() || m_db->key()->keys().isEmpty()) {
|
if (!m_db->key() || m_db->key()->keys().isEmpty()) {
|
||||||
// database has no key, we are about to add a new one
|
// Database has no key, we are about to add a new one
|
||||||
m_passwordEditWidget->changeVisiblePage(KeyComponentWidget::Page::Edit);
|
m_passwordEditWidget->changeVisiblePage(KeyComponentWidget::Page::Edit);
|
||||||
m_passwordEditWidget->setPasswordVisible(true);
|
m_passwordEditWidget->setPasswordVisible(true);
|
||||||
// Focus won't work until the UI settles
|
// Focus won't work until the UI settles
|
||||||
@ -126,7 +126,7 @@ void DatabaseSettingsWidgetDatabaseKey::uninitialize()
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
bool DatabaseSettingsWidgetDatabaseKey::save()
|
bool DatabaseSettingsWidgetDatabaseKey::saveSettings()
|
||||||
{
|
{
|
||||||
m_isDirty |= (m_passwordEditWidget->visiblePage() == KeyComponentWidget::Page::Edit);
|
m_isDirty |= (m_passwordEditWidget->visiblePage() == KeyComponentWidget::Page::Edit);
|
||||||
m_isDirty |= (m_keyFileEditWidget->visiblePage() == KeyComponentWidget::Page::Edit);
|
m_isDirty |= (m_keyFileEditWidget->visiblePage() == KeyComponentWidget::Page::Edit);
|
||||||
@ -135,7 +135,7 @@ bool DatabaseSettingsWidgetDatabaseKey::save()
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (m_db->key() && !m_db->key()->keys().isEmpty() && !m_isDirty) {
|
if (m_db->key() && !m_db->key()->keys().isEmpty() && !m_isDirty) {
|
||||||
// key unchanged
|
// Key unchanged
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C) 2018 KeePassXC Team <team@keepassxc.org>
|
* Copyright (C) 2023 KeePassXC Team <team@keepassxc.org>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@ -15,8 +15,8 @@
|
|||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef KEEPASSXC_DATABASESETTINGSPAGECHANGEDBKEY_H
|
#ifndef KEEPASSXC_DATABASESETTINGSWIDGETDATABASEKEY_H
|
||||||
#define KEEPASSXC_DATABASESETTINGSPAGECHANGEDBKEY_H
|
#define KEEPASSXC_DATABASESETTINGSWIDGETDATABASEKEY_H
|
||||||
|
|
||||||
#include "DatabaseSettingsWidget.h"
|
#include "DatabaseSettingsWidget.h"
|
||||||
#include "config-keepassx.h"
|
#include "config-keepassx.h"
|
||||||
@ -42,12 +42,12 @@ public:
|
|||||||
Q_DISABLE_COPY(DatabaseSettingsWidgetDatabaseKey);
|
Q_DISABLE_COPY(DatabaseSettingsWidgetDatabaseKey);
|
||||||
~DatabaseSettingsWidgetDatabaseKey() override;
|
~DatabaseSettingsWidgetDatabaseKey() override;
|
||||||
|
|
||||||
void load(QSharedPointer<Database> db) override;
|
void loadSettings(QSharedPointer<Database> db) override;
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
void initialize() override;
|
void initialize() override;
|
||||||
void uninitialize() override;
|
void uninitialize() override;
|
||||||
bool save() override;
|
bool saveSettings() override;
|
||||||
void discard() override;
|
void discard() override;
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
@ -77,4 +77,4 @@ private:
|
|||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // KEEPASSXC_DATABASESETTINGSPAGECHANGEDBKEY_H
|
#endif // KEEPASSXC_DATABASESETTINGSWIDGETDATABASEKEY_H
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C) 2018 KeePassXC Team <team@keepassxc.org>
|
* Copyright (C) 2023 KeePassXC Team <team@keepassxc.org>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@ -73,7 +73,7 @@ DatabaseSettingsWidgetEncryption::DatabaseSettingsWidgetEncryption(QWidget* pare
|
|||||||
|
|
||||||
connect(m_ui->decryptionTimeSlider, SIGNAL(valueChanged(int)), SLOT(updateDecryptionTime(int)));
|
connect(m_ui->decryptionTimeSlider, SIGNAL(valueChanged(int)), SLOT(updateDecryptionTime(int)));
|
||||||
|
|
||||||
// conditions under which a key re-transformation is needed
|
// Conditions under which a key re-transformation is needed
|
||||||
connect(m_ui->decryptionTimeSlider, SIGNAL(valueChanged(int)), SLOT(markDirty()));
|
connect(m_ui->decryptionTimeSlider, SIGNAL(valueChanged(int)), SLOT(markDirty()));
|
||||||
connect(m_ui->compatibilitySelection, SIGNAL(currentIndexChanged(int)), SLOT(markDirty()));
|
connect(m_ui->compatibilitySelection, SIGNAL(currentIndexChanged(int)), SLOT(markDirty()));
|
||||||
connect(m_ui->algorithmComboBox, SIGNAL(currentIndexChanged(int)), SLOT(markDirty()));
|
connect(m_ui->algorithmComboBox, SIGNAL(currentIndexChanged(int)), SLOT(markDirty()));
|
||||||
@ -256,7 +256,7 @@ void DatabaseSettingsWidgetEncryption::markDirty()
|
|||||||
m_isDirty = true;
|
m_isDirty = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool DatabaseSettingsWidgetEncryption::save()
|
bool DatabaseSettingsWidgetEncryption::saveSettings()
|
||||||
{
|
{
|
||||||
Q_ASSERT(m_db);
|
Q_ASSERT(m_db);
|
||||||
if (!m_db) {
|
if (!m_db) {
|
||||||
@ -269,7 +269,7 @@ bool DatabaseSettingsWidgetEncryption::save()
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (m_db->key() && !m_db->key()->keys().isEmpty() && !m_isDirty) {
|
if (m_db->key() && !m_db->key()->keys().isEmpty() && !m_isDirty) {
|
||||||
// nothing has changed, don't re-transform
|
// Nothing has changed, don't re-transform
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C) 2018 KeePassXC Team <team@keepassxc.org>
|
* Copyright (C) 2023 KeePassXC Team <team@keepassxc.org>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@ -40,7 +40,7 @@ public:
|
|||||||
public slots:
|
public slots:
|
||||||
void initialize() override;
|
void initialize() override;
|
||||||
void uninitialize() override;
|
void uninitialize() override;
|
||||||
bool save() override;
|
bool saveSettings() override;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void showEvent(QShowEvent* event) override;
|
void showEvent(QShowEvent* event) override;
|
||||||
|
@ -537,6 +537,7 @@
|
|||||||
<tabstop>transformBenchmarkButton</tabstop>
|
<tabstop>transformBenchmarkButton</tabstop>
|
||||||
<tabstop>memorySpinBox</tabstop>
|
<tabstop>memorySpinBox</tabstop>
|
||||||
<tabstop>parallelismSpinBox</tabstop>
|
<tabstop>parallelismSpinBox</tabstop>
|
||||||
|
<tabstop>advancedSettingsButton</tabstop>
|
||||||
</tabstops>
|
</tabstops>
|
||||||
<resources/>
|
<resources/>
|
||||||
<connections/>
|
<connections/>
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C) 2018 KeePassXC Team <team@keepassxc.org>
|
* Copyright (C) 2023 KeePassXC Team <team@keepassxc.org>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@ -82,7 +82,7 @@ void DatabaseSettingsWidgetGeneral::showEvent(QShowEvent* event)
|
|||||||
m_ui->dbNameEdit->setFocus();
|
m_ui->dbNameEdit->setFocus();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool DatabaseSettingsWidgetGeneral::save()
|
bool DatabaseSettingsWidgetGeneral::saveSettings()
|
||||||
{
|
{
|
||||||
auto* meta = m_db->metadata();
|
auto* meta = m_db->metadata();
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C) 2018 KeePassXC Team <team@keepassxc.org>
|
* Copyright (C) 2023 KeePassXC Team <team@keepassxc.org>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@ -38,7 +38,7 @@ public:
|
|||||||
public slots:
|
public slots:
|
||||||
void initialize() override;
|
void initialize() override;
|
||||||
void uninitialize() override;
|
void uninitialize() override;
|
||||||
bool save() override;
|
bool saveSettings() override;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void showEvent(QShowEvent* event) override;
|
void showEvent(QShowEvent* event) override;
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C) 2021 KeePassXC Team <team@keepassxc.org>
|
* Copyright (C) 2023 KeePassXC Team <team@keepassxc.org>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@ -40,7 +40,7 @@ public:
|
|||||||
public slots:
|
public slots:
|
||||||
void initialize() override;
|
void initialize() override;
|
||||||
void uninitialize() override{};
|
void uninitialize() override{};
|
||||||
inline bool save() override
|
inline bool saveSettings() override
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
};
|
};
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C) 2018 KeePassXC Team <team@keepassxc.org>
|
* Copyright (C) 2023 KeePassXC Team <team@keepassxc.org>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@ -51,7 +51,7 @@ void DatabaseSettingWidgetMetaData::uninitialize()
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
bool DatabaseSettingWidgetMetaData::save()
|
bool DatabaseSettingWidgetMetaData::saveSettings()
|
||||||
{
|
{
|
||||||
Metadata* meta = m_db->metadata();
|
Metadata* meta = m_db->metadata();
|
||||||
meta->setName(m_ui->databaseName->text());
|
meta->setName(m_ui->databaseName->text());
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C) 2018 KeePassXC Team <team@keepassxc.org>
|
* Copyright (C) 2023 KeePassXC Team <team@keepassxc.org>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@ -38,7 +38,7 @@ public:
|
|||||||
public slots:
|
public slots:
|
||||||
void initialize() override;
|
void initialize() override;
|
||||||
void uninitialize() override;
|
void uninitialize() override;
|
||||||
bool save() override;
|
bool saveSettings() override;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void showEvent(QShowEvent* event) override;
|
void showEvent(QShowEvent* event) override;
|
||||||
|
@ -69,7 +69,7 @@ void DatabaseSettingsWidgetRemote::uninitialize()
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
bool DatabaseSettingsWidgetRemote::save()
|
bool DatabaseSettingsWidgetRemote::saveSettings()
|
||||||
{
|
{
|
||||||
if (m_modified) {
|
if (m_modified) {
|
||||||
auto ans = MessageBox::question(this,
|
auto ans = MessageBox::question(this,
|
||||||
|
@ -43,7 +43,7 @@ public:
|
|||||||
public slots:
|
public slots:
|
||||||
void initialize() override;
|
void initialize() override;
|
||||||
void uninitialize() override;
|
void uninitialize() override;
|
||||||
bool save() override;
|
bool saveSettings() override;
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void saveCurrentSettings();
|
void saveCurrentSettings();
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
#ifndef KEEPASSXC_REPORTSWIDGET_H
|
#ifndef KEEPASSXC_REPORTSWIDGET_H
|
||||||
#define KEEPASSXC_REPORTSWIDGET_H
|
#define KEEPASSXC_REPORTSWIDGET_H
|
||||||
|
|
||||||
#include "gui/settings/SettingsWidget.h"
|
#include "gui/SettingsWidget.h"
|
||||||
|
|
||||||
class Database;
|
class Database;
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2018 KeePassXC Team <team@keepassxc.org>
|
* Copyright (C) 2023 KeePassXC Team <team@keepassxc.org>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@ -69,7 +69,7 @@ void NewDatabaseWizardPage::initializePage()
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
m_pageWidget->load(m_db);
|
m_pageWidget->loadSettings(m_db);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool NewDatabaseWizardPage::validatePage()
|
bool NewDatabaseWizardPage::validatePage()
|
||||||
@ -79,7 +79,7 @@ bool NewDatabaseWizardPage::validatePage()
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool valid = m_pageWidget->save();
|
bool valid = m_pageWidget->saveSettings();
|
||||||
m_pageWidget->uninitialize();
|
m_pageWidget->uninitialize();
|
||||||
return valid;
|
return valid;
|
||||||
}
|
}
|
||||||
|
@ -2,7 +2,6 @@ if(WITH_XC_KEESHARE)
|
|||||||
set(keeshare_SOURCES
|
set(keeshare_SOURCES
|
||||||
SettingsPageKeeShare.cpp
|
SettingsPageKeeShare.cpp
|
||||||
SettingsWidgetKeeShare.cpp
|
SettingsWidgetKeeShare.cpp
|
||||||
DatabaseSettingsPageKeeShare.cpp
|
|
||||||
DatabaseSettingsWidgetKeeShare.cpp
|
DatabaseSettingsWidgetKeeShare.cpp
|
||||||
group/EditGroupWidgetKeeShare.cpp
|
group/EditGroupWidgetKeeShare.cpp
|
||||||
group/EditGroupPageKeeShare.cpp
|
group/EditGroupPageKeeShare.cpp
|
||||||
|
@ -1,49 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (C) 2018 KeePassXC Team <team@keepassxc.org>
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 2 or (at your option)
|
|
||||||
* version 3 of the License.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "DatabaseSettingsPageKeeShare.h"
|
|
||||||
|
|
||||||
#include "core/Database.h"
|
|
||||||
#include "gui/Icons.h"
|
|
||||||
#include "keeshare/DatabaseSettingsWidgetKeeShare.h"
|
|
||||||
|
|
||||||
QString DatabaseSettingsPageKeeShare::name()
|
|
||||||
{
|
|
||||||
return "KeeShare";
|
|
||||||
}
|
|
||||||
|
|
||||||
QIcon DatabaseSettingsPageKeeShare::icon()
|
|
||||||
{
|
|
||||||
return icons()->icon("preferences-system-network-sharing");
|
|
||||||
}
|
|
||||||
|
|
||||||
QWidget* DatabaseSettingsPageKeeShare::createWidget()
|
|
||||||
{
|
|
||||||
return new DatabaseSettingsWidgetKeeShare();
|
|
||||||
}
|
|
||||||
|
|
||||||
void DatabaseSettingsPageKeeShare::loadSettings(QWidget* widget, QSharedPointer<Database> db)
|
|
||||||
{
|
|
||||||
DatabaseSettingsWidgetKeeShare* settingsWidget = reinterpret_cast<DatabaseSettingsWidgetKeeShare*>(widget);
|
|
||||||
settingsWidget->loadSettings(db);
|
|
||||||
}
|
|
||||||
|
|
||||||
void DatabaseSettingsPageKeeShare::saveSettings(QWidget* widget)
|
|
||||||
{
|
|
||||||
DatabaseSettingsWidgetKeeShare* settingsWidget = reinterpret_cast<DatabaseSettingsWidgetKeeShare*>(widget);
|
|
||||||
settingsWidget->saveSettings();
|
|
||||||
}
|
|
@ -1,33 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (C) 2018 KeePassXC Team <team@keepassxc.org>
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 2 or (at your option)
|
|
||||||
* version 3 of the License.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef KEEPASSXC_DATABASESETTINGSPAGEKEESHARE_H
|
|
||||||
#define KEEPASSXC_DATABASESETTINGSPAGEKEESHARE_H
|
|
||||||
|
|
||||||
#include "gui/dbsettings/DatabaseSettingsDialog.h"
|
|
||||||
|
|
||||||
class DatabaseSettingsPageKeeShare : public IDatabaseSettingsPage
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
QString name() override;
|
|
||||||
QIcon icon() override;
|
|
||||||
QWidget* createWidget() override;
|
|
||||||
void loadSettings(QWidget* widget, QSharedPointer<Database> db) override;
|
|
||||||
void saveSettings(QWidget* widget) override;
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // KEEPASSXC_DATABASESETTINGSPAGEKEESHARE_H
|
|
@ -1,6 +1,6 @@
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2018 KeePassXC Team <team@keepassxc.org>
|
* Copyright (C) 2023 KeePassXC Team <team@keepassxc.org>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@ -36,7 +36,7 @@ DatabaseSettingsWidgetKeeShare::~DatabaseSettingsWidgetKeeShare()
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
void DatabaseSettingsWidgetKeeShare::loadSettings(QSharedPointer<Database> db)
|
void DatabaseSettingsWidgetKeeShare::loadSettings(const QSharedPointer<Database>& db)
|
||||||
{
|
{
|
||||||
m_db = db;
|
m_db = db;
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C) 2018 KeePassXC Team <team@keepassxc.org>
|
* Copyright (C) 2023 KeePassXC Team <team@keepassxc.org>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@ -37,7 +37,7 @@ public:
|
|||||||
explicit DatabaseSettingsWidgetKeeShare(QWidget* parent = nullptr);
|
explicit DatabaseSettingsWidgetKeeShare(QWidget* parent = nullptr);
|
||||||
~DatabaseSettingsWidgetKeeShare();
|
~DatabaseSettingsWidgetKeeShare();
|
||||||
|
|
||||||
void loadSettings(QSharedPointer<Database> db);
|
void loadSettings(const QSharedPointer<Database>& db);
|
||||||
void saveSettings();
|
void saveSettings();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
@ -54,6 +54,7 @@
|
|||||||
#include "gui/databasekey/KeyFileEditWidget.h"
|
#include "gui/databasekey/KeyFileEditWidget.h"
|
||||||
#include "gui/databasekey/PasswordEditWidget.h"
|
#include "gui/databasekey/PasswordEditWidget.h"
|
||||||
#include "gui/dbsettings/DatabaseSettingsDialog.h"
|
#include "gui/dbsettings/DatabaseSettingsDialog.h"
|
||||||
|
#include "gui/dbsettings/DatabaseSettingsWidgetEncryption.h"
|
||||||
#include "gui/entry/EditEntryWidget.h"
|
#include "gui/entry/EditEntryWidget.h"
|
||||||
#include "gui/entry/EntryView.h"
|
#include "gui/entry/EntryView.h"
|
||||||
#include "gui/group/EditGroupWidget.h"
|
#include "gui/group/EditGroupWidget.h"
|
||||||
@ -1604,7 +1605,7 @@ void TestGui::testDatabaseSettings()
|
|||||||
int autosaveDelayTestValue = 2;
|
int autosaveDelayTestValue = 2;
|
||||||
|
|
||||||
dbSettingsCategoryList->setCurrentCategory(1); // go into security category
|
dbSettingsCategoryList->setCurrentCategory(1); // go into security category
|
||||||
auto securityTabWidget = dbSettingsStackedWidget->findChild<QTabWidget*>();
|
auto securityTabWidget = dbSettingsStackedWidget->findChild<QTabWidget*>("securityTabWidget");
|
||||||
QCOMPARE(securityTabWidget->currentIndex(), 0);
|
QCOMPARE(securityTabWidget->currentIndex(), 0);
|
||||||
|
|
||||||
// Interact with the password edit option
|
// Interact with the password edit option
|
||||||
|
Loading…
Reference in New Issue
Block a user