mirror of
https://github.com/keepassxreboot/keepassxc.git
synced 2025-02-02 09:34:58 -05:00
Redesign DatabaseSettingsWidget
This commit is contained in:
parent
f7d3c90218
commit
995d6646be
BIN
share/icons/application/32x32/actions/document-encrypt.png
Normal file
BIN
share/icons/application/32x32/actions/document-encrypt.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.0 KiB |
@ -17,10 +17,13 @@
|
|||||||
|
|
||||||
#include "DatabaseSettingsWidget.h"
|
#include "DatabaseSettingsWidget.h"
|
||||||
#include "ui_DatabaseSettingsWidget.h"
|
#include "ui_DatabaseSettingsWidget.h"
|
||||||
|
#include "ui_DatabaseSettingsWidgetGeneral.h"
|
||||||
|
#include "ui_DatabaseSettingsWidgetEncryption.h"
|
||||||
|
|
||||||
#include <QMessageBox>
|
#include <QMessageBox>
|
||||||
|
|
||||||
#include "core/Global.h"
|
#include "core/Global.h"
|
||||||
|
#include "core/FilePath.h"
|
||||||
#include "core/AsyncTask.h"
|
#include "core/AsyncTask.h"
|
||||||
#include "core/Database.h"
|
#include "core/Database.h"
|
||||||
#include "core/Group.h"
|
#include "core/Group.h"
|
||||||
@ -32,18 +35,31 @@
|
|||||||
DatabaseSettingsWidget::DatabaseSettingsWidget(QWidget* parent)
|
DatabaseSettingsWidget::DatabaseSettingsWidget(QWidget* parent)
|
||||||
: DialogyWidget(parent)
|
: DialogyWidget(parent)
|
||||||
, m_ui(new Ui::DatabaseSettingsWidget())
|
, m_ui(new Ui::DatabaseSettingsWidget())
|
||||||
|
, m_uiGeneral(new Ui::DatabaseSettingsWidgetGeneral())
|
||||||
|
, m_uiEncryption(new Ui::DatabaseSettingsWidgetEncryption())
|
||||||
|
, m_uiGeneralPage(new QWidget())
|
||||||
|
, m_uiEncryptionPage(new QWidget())
|
||||||
, m_db(nullptr)
|
, m_db(nullptr)
|
||||||
{
|
{
|
||||||
m_ui->setupUi(this);
|
m_ui->setupUi(this);
|
||||||
|
m_uiGeneral->setupUi(m_uiGeneralPage);
|
||||||
|
m_uiEncryption->setupUi(m_uiEncryptionPage);
|
||||||
|
|
||||||
connect(m_ui->buttonBox, SIGNAL(accepted()), SLOT(save()));
|
connect(m_ui->buttonBox, SIGNAL(accepted()), SLOT(save()));
|
||||||
connect(m_ui->buttonBox, SIGNAL(rejected()), SLOT(reject()));
|
connect(m_ui->buttonBox, SIGNAL(rejected()), SLOT(reject()));
|
||||||
connect(m_ui->historyMaxItemsCheckBox, SIGNAL(toggled(bool)),
|
connect(m_uiGeneral->historyMaxItemsCheckBox, SIGNAL(toggled(bool)),
|
||||||
m_ui->historyMaxItemsSpinBox, SLOT(setEnabled(bool)));
|
m_uiGeneral->historyMaxItemsSpinBox, SLOT(setEnabled(bool)));
|
||||||
connect(m_ui->historyMaxSizeCheckBox, SIGNAL(toggled(bool)),
|
connect(m_uiGeneral->historyMaxSizeCheckBox, SIGNAL(toggled(bool)),
|
||||||
m_ui->historyMaxSizeSpinBox, SLOT(setEnabled(bool)));
|
m_uiGeneral->historyMaxSizeSpinBox, SLOT(setEnabled(bool)));
|
||||||
connect(m_ui->transformBenchmarkButton, SIGNAL(clicked()), SLOT(transformRoundsBenchmark()));
|
connect(m_uiEncryption->transformBenchmarkButton, SIGNAL(clicked()), SLOT(transformRoundsBenchmark()));
|
||||||
connect(m_ui->kdfComboBox, SIGNAL(currentIndexChanged(int)), SLOT(kdfChanged(int)));
|
connect(m_uiEncryption->kdfComboBox, SIGNAL(currentIndexChanged(int)), SLOT(kdfChanged(int)));
|
||||||
|
|
||||||
|
m_ui->categoryList->addCategory(tr("General"), FilePath::instance()->icon("categories", "preferences-other"));
|
||||||
|
m_ui->categoryList->addCategory(tr("Encryption"), FilePath::instance()->icon("actions", "document-encrypt"));
|
||||||
|
m_ui->stackedWidget->addWidget(m_uiGeneralPage);
|
||||||
|
m_ui->stackedWidget->addWidget(m_uiEncryptionPage);
|
||||||
|
|
||||||
|
connect(m_ui->categoryList, SIGNAL(categoryChanged(int)), m_ui->stackedWidget, SLOT(setCurrentIndex(int)));
|
||||||
}
|
}
|
||||||
|
|
||||||
DatabaseSettingsWidget::~DatabaseSettingsWidget()
|
DatabaseSettingsWidget::~DatabaseSettingsWidget()
|
||||||
@ -56,77 +72,77 @@ void DatabaseSettingsWidget::load(Database* db)
|
|||||||
|
|
||||||
Metadata* meta = m_db->metadata();
|
Metadata* meta = m_db->metadata();
|
||||||
|
|
||||||
m_ui->dbNameEdit->setText(meta->name());
|
m_uiGeneral->dbNameEdit->setText(meta->name());
|
||||||
m_ui->dbDescriptionEdit->setText(meta->description());
|
m_uiGeneral->dbDescriptionEdit->setText(meta->description());
|
||||||
m_ui->recycleBinEnabledCheckBox->setChecked(meta->recycleBinEnabled());
|
m_uiGeneral->recycleBinEnabledCheckBox->setChecked(meta->recycleBinEnabled());
|
||||||
m_ui->defaultUsernameEdit->setText(meta->defaultUserName());
|
m_uiGeneral->defaultUsernameEdit->setText(meta->defaultUserName());
|
||||||
if (meta->historyMaxItems() > -1) {
|
if (meta->historyMaxItems() > -1) {
|
||||||
m_ui->historyMaxItemsSpinBox->setValue(meta->historyMaxItems());
|
m_uiGeneral->historyMaxItemsSpinBox->setValue(meta->historyMaxItems());
|
||||||
m_ui->historyMaxItemsCheckBox->setChecked(true);
|
m_uiGeneral->historyMaxItemsCheckBox->setChecked(true);
|
||||||
} else {
|
} else {
|
||||||
m_ui->historyMaxItemsSpinBox->setValue(Metadata::DefaultHistoryMaxItems);
|
m_uiGeneral->historyMaxItemsSpinBox->setValue(Metadata::DefaultHistoryMaxItems);
|
||||||
m_ui->historyMaxItemsCheckBox->setChecked(false);
|
m_uiGeneral->historyMaxItemsCheckBox->setChecked(false);
|
||||||
}
|
}
|
||||||
int historyMaxSizeMiB = qRound(meta->historyMaxSize() / qreal(1048576));
|
int historyMaxSizeMiB = qRound(meta->historyMaxSize() / qreal(1048576));
|
||||||
if (historyMaxSizeMiB > 0) {
|
if (historyMaxSizeMiB > 0) {
|
||||||
m_ui->historyMaxSizeSpinBox->setValue(historyMaxSizeMiB);
|
m_uiGeneral->historyMaxSizeSpinBox->setValue(historyMaxSizeMiB);
|
||||||
m_ui->historyMaxSizeCheckBox->setChecked(true);
|
m_uiGeneral->historyMaxSizeCheckBox->setChecked(true);
|
||||||
} else {
|
} else {
|
||||||
m_ui->historyMaxSizeSpinBox->setValue(Metadata::DefaultHistoryMaxSize);
|
m_uiGeneral->historyMaxSizeSpinBox->setValue(Metadata::DefaultHistoryMaxSize);
|
||||||
m_ui->historyMaxSizeCheckBox->setChecked(false);
|
m_uiGeneral->historyMaxSizeCheckBox->setChecked(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
m_ui->algorithmComboBox->clear();
|
m_uiEncryption->algorithmComboBox->clear();
|
||||||
for (auto& cipher: asConst(KeePass2::CIPHERS)) {
|
for (auto& cipher: asConst(KeePass2::CIPHERS)) {
|
||||||
m_ui->algorithmComboBox->addItem(cipher.second, cipher.first.toByteArray());
|
m_uiEncryption->algorithmComboBox->addItem(cipher.second, cipher.first.toByteArray());
|
||||||
}
|
}
|
||||||
int cipherIndex = m_ui->algorithmComboBox->findData(m_db->cipher().toByteArray());
|
int cipherIndex = m_uiEncryption->algorithmComboBox->findData(m_db->cipher().toByteArray());
|
||||||
if (cipherIndex > -1) {
|
if (cipherIndex > -1) {
|
||||||
m_ui->algorithmComboBox->setCurrentIndex(cipherIndex);
|
m_uiEncryption->algorithmComboBox->setCurrentIndex(cipherIndex);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Setup kdf combo box
|
// Setup kdf combo box
|
||||||
m_ui->kdfComboBox->blockSignals(true);
|
m_uiEncryption->kdfComboBox->blockSignals(true);
|
||||||
m_ui->kdfComboBox->clear();
|
m_uiEncryption->kdfComboBox->clear();
|
||||||
for (auto& kdf: asConst(KeePass2::KDFS)) {
|
for (auto& kdf: asConst(KeePass2::KDFS)) {
|
||||||
m_ui->kdfComboBox->addItem(kdf.second, kdf.first.toByteArray());
|
m_uiEncryption->kdfComboBox->addItem(kdf.second, kdf.first.toByteArray());
|
||||||
}
|
}
|
||||||
m_ui->kdfComboBox->blockSignals(false);
|
m_uiEncryption->kdfComboBox->blockSignals(false);
|
||||||
|
|
||||||
auto kdfUuid = m_db->kdf()->uuid();
|
auto kdfUuid = m_db->kdf()->uuid();
|
||||||
int kdfIndex = m_ui->kdfComboBox->findData(kdfUuid.toByteArray());
|
int kdfIndex = m_uiEncryption->kdfComboBox->findData(kdfUuid.toByteArray());
|
||||||
if (kdfIndex > -1) {
|
if (kdfIndex > -1) {
|
||||||
m_ui->kdfComboBox->setCurrentIndex(kdfIndex);
|
m_uiEncryption->kdfComboBox->setCurrentIndex(kdfIndex);
|
||||||
kdfChanged(kdfIndex);
|
kdfChanged(kdfIndex);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Setup kdf parameters
|
// Setup kdf parameters
|
||||||
auto kdf = m_db->kdf();
|
auto kdf = m_db->kdf();
|
||||||
m_ui->transformRoundsSpinBox->setValue(kdf->rounds());
|
m_uiEncryption->transformRoundsSpinBox->setValue(kdf->rounds());
|
||||||
if (kdfUuid == KeePass2::KDF_ARGON2) {
|
if (kdfUuid == KeePass2::KDF_ARGON2) {
|
||||||
auto argon2Kdf = kdf.staticCast<Argon2Kdf>();
|
auto argon2Kdf = kdf.staticCast<Argon2Kdf>();
|
||||||
m_ui->memorySpinBox->setValue(argon2Kdf->memory() / (1<<10));
|
m_uiEncryption->memorySpinBox->setValue(static_cast<int>(argon2Kdf->memory()) / (1 << 10));
|
||||||
m_ui->parallelismSpinBox->setValue(argon2Kdf->parallelism());
|
m_uiEncryption->parallelismSpinBox->setValue(argon2Kdf->parallelism());
|
||||||
}
|
}
|
||||||
|
|
||||||
m_ui->dbNameEdit->setFocus();
|
m_uiGeneral->dbNameEdit->setFocus();
|
||||||
}
|
}
|
||||||
|
|
||||||
void DatabaseSettingsWidget::save()
|
void DatabaseSettingsWidget::save()
|
||||||
{
|
{
|
||||||
Metadata* meta = m_db->metadata();
|
Metadata* meta = m_db->metadata();
|
||||||
|
|
||||||
meta->setName(m_ui->dbNameEdit->text());
|
meta->setName(m_uiGeneral->dbNameEdit->text());
|
||||||
meta->setDescription(m_ui->dbDescriptionEdit->text());
|
meta->setDescription(m_uiGeneral->dbDescriptionEdit->text());
|
||||||
meta->setDefaultUserName(m_ui->defaultUsernameEdit->text());
|
meta->setDefaultUserName(m_uiGeneral->defaultUsernameEdit->text());
|
||||||
meta->setRecycleBinEnabled(m_ui->recycleBinEnabledCheckBox->isChecked());
|
meta->setRecycleBinEnabled(m_uiGeneral->recycleBinEnabledCheckBox->isChecked());
|
||||||
meta->setSettingsChanged(QDateTime::currentDateTimeUtc());
|
meta->setSettingsChanged(QDateTime::currentDateTimeUtc());
|
||||||
|
|
||||||
bool truncate = false;
|
bool truncate = false;
|
||||||
|
|
||||||
int historyMaxItems;
|
int historyMaxItems;
|
||||||
if (m_ui->historyMaxItemsCheckBox->isChecked()) {
|
if (m_uiGeneral->historyMaxItemsCheckBox->isChecked()) {
|
||||||
historyMaxItems = m_ui->historyMaxItemsSpinBox->value();
|
historyMaxItems = m_uiGeneral->historyMaxItemsSpinBox->value();
|
||||||
} else {
|
} else {
|
||||||
historyMaxItems = -1;
|
historyMaxItems = -1;
|
||||||
}
|
}
|
||||||
@ -136,8 +152,8 @@ void DatabaseSettingsWidget::save()
|
|||||||
}
|
}
|
||||||
|
|
||||||
int historyMaxSize;
|
int historyMaxSize;
|
||||||
if (m_ui->historyMaxSizeCheckBox->isChecked()) {
|
if (m_uiGeneral->historyMaxSizeCheckBox->isChecked()) {
|
||||||
historyMaxSize = m_ui->historyMaxSizeSpinBox->value() * 1048576;
|
historyMaxSize = m_uiGeneral->historyMaxSizeSpinBox->value() * 1048576;
|
||||||
} else {
|
} else {
|
||||||
historyMaxSize = -1;
|
historyMaxSize = -1;
|
||||||
}
|
}
|
||||||
@ -150,15 +166,15 @@ void DatabaseSettingsWidget::save()
|
|||||||
truncateHistories();
|
truncateHistories();
|
||||||
}
|
}
|
||||||
|
|
||||||
m_db->setCipher(Uuid(m_ui->algorithmComboBox->currentData().toByteArray()));
|
m_db->setCipher(Uuid(m_uiEncryption->algorithmComboBox->currentData().toByteArray()));
|
||||||
|
|
||||||
// Save kdf parameters
|
// Save kdf parameters
|
||||||
auto kdf = KeePass2::uuidToKdf(Uuid(m_ui->kdfComboBox->currentData().toByteArray()));
|
auto kdf = KeePass2::uuidToKdf(Uuid(m_uiEncryption->kdfComboBox->currentData().toByteArray()));
|
||||||
kdf->setRounds(m_ui->transformRoundsSpinBox->value());
|
kdf->setRounds(m_uiEncryption->transformRoundsSpinBox->value());
|
||||||
if (kdf->uuid() == KeePass2::KDF_ARGON2) {
|
if (kdf->uuid() == KeePass2::KDF_ARGON2) {
|
||||||
auto argon2Kdf = kdf.staticCast<Argon2Kdf>();
|
auto argon2Kdf = kdf.staticCast<Argon2Kdf>();
|
||||||
argon2Kdf->setMemory(m_ui->memorySpinBox->value() * (1<<10));
|
argon2Kdf->setMemory(static_cast<quint64>(m_uiEncryption->memorySpinBox->value()) * (1 << 10));
|
||||||
argon2Kdf->setParallelism(m_ui->parallelismSpinBox->value());
|
argon2Kdf->setParallelism(static_cast<quint32>(m_uiEncryption->parallelismSpinBox->value()));
|
||||||
}
|
}
|
||||||
|
|
||||||
QApplication::setOverrideCursor(QCursor(Qt::WaitCursor));
|
QApplication::setOverrideCursor(QCursor(Qt::WaitCursor));
|
||||||
@ -183,30 +199,30 @@ void DatabaseSettingsWidget::reject()
|
|||||||
void DatabaseSettingsWidget::transformRoundsBenchmark()
|
void DatabaseSettingsWidget::transformRoundsBenchmark()
|
||||||
{
|
{
|
||||||
QApplication::setOverrideCursor(QCursor(Qt::WaitCursor));
|
QApplication::setOverrideCursor(QCursor(Qt::WaitCursor));
|
||||||
m_ui->transformBenchmarkButton->setEnabled(false);
|
m_uiEncryption->transformBenchmarkButton->setEnabled(false);
|
||||||
|
m_uiEncryption->transformRoundsSpinBox->setFocus();
|
||||||
|
|
||||||
// Create a new kdf with the current parameters
|
// Create a new kdf with the current parameters
|
||||||
auto kdf = KeePass2::uuidToKdf(Uuid(m_ui->kdfComboBox->currentData().toByteArray()));
|
auto kdf = KeePass2::uuidToKdf(Uuid(m_uiEncryption->kdfComboBox->currentData().toByteArray()));
|
||||||
kdf->setRounds(m_ui->transformRoundsSpinBox->value());
|
kdf->setRounds(m_uiEncryption->transformRoundsSpinBox->value());
|
||||||
if (kdf->uuid() == KeePass2::KDF_ARGON2) {
|
if (kdf->uuid() == KeePass2::KDF_ARGON2) {
|
||||||
auto argon2Kdf = kdf.staticCast<Argon2Kdf>();
|
auto argon2Kdf = kdf.staticCast<Argon2Kdf>();
|
||||||
if (!argon2Kdf->setMemory(m_ui->memorySpinBox->value() * (1<<10))) {
|
if (!argon2Kdf->setMemory(static_cast<quint64>(m_uiEncryption->memorySpinBox->value()) * (1 << 10))) {
|
||||||
m_ui->memorySpinBox->setValue(argon2Kdf->memory() / (1<<10));
|
m_uiEncryption->memorySpinBox->setValue(static_cast<int>(argon2Kdf->memory() / (1 << 10)));
|
||||||
}
|
}
|
||||||
if (!argon2Kdf->setParallelism(m_ui->parallelismSpinBox->value())) {
|
if (!argon2Kdf->setParallelism(static_cast<quint32>(m_uiEncryption->parallelismSpinBox->value()))) {
|
||||||
m_ui->parallelismSpinBox->setValue(argon2Kdf->parallelism());
|
m_uiEncryption->parallelismSpinBox->setValue(argon2Kdf->parallelism());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Determine the number of rounds required to meet 1 second delay
|
// Determine the number of rounds required to meet 1 second delay
|
||||||
int rounds = AsyncTask::runAndWaitForFuture([kdf]() {
|
int rounds = AsyncTask::runAndWaitForFuture([&kdf]() {
|
||||||
return kdf->benchmark(1000);
|
return kdf->benchmark(1000);
|
||||||
});
|
});
|
||||||
|
|
||||||
m_ui->transformRoundsSpinBox->setValue(rounds);
|
m_uiEncryption->transformRoundsSpinBox->setValue(rounds);
|
||||||
|
m_uiEncryption->transformBenchmarkButton->setEnabled(true);
|
||||||
QApplication::restoreOverrideCursor();
|
QApplication::restoreOverrideCursor();
|
||||||
m_ui->transformBenchmarkButton->setEnabled(true);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void DatabaseSettingsWidget::truncateHistories()
|
void DatabaseSettingsWidget::truncateHistories()
|
||||||
@ -219,12 +235,13 @@ void DatabaseSettingsWidget::truncateHistories()
|
|||||||
|
|
||||||
void DatabaseSettingsWidget::kdfChanged(int index)
|
void DatabaseSettingsWidget::kdfChanged(int index)
|
||||||
{
|
{
|
||||||
Uuid id(m_ui->kdfComboBox->itemData(index).toByteArray());
|
Uuid id(m_uiEncryption->kdfComboBox->itemData(index).toByteArray());
|
||||||
if (id == KeePass2::KDF_ARGON2) {
|
|
||||||
m_ui->memorySpinBox->setEnabled(true);
|
bool memoryEnabled = id == KeePass2::KDF_ARGON2;
|
||||||
m_ui->parallelismSpinBox->setEnabled(true);
|
m_uiEncryption->memoryUsageLabel->setEnabled(memoryEnabled);
|
||||||
} else {
|
m_uiEncryption->memorySpinBox->setEnabled(memoryEnabled);
|
||||||
m_ui->memorySpinBox->setEnabled(false);
|
|
||||||
m_ui->parallelismSpinBox->setEnabled(false);
|
bool parallelismEnabled = id == KeePass2::KDF_ARGON2;
|
||||||
}
|
m_uiEncryption->parallelismLabel->setEnabled(parallelismEnabled);
|
||||||
|
m_uiEncryption->parallelismSpinBox->setEnabled(parallelismEnabled);
|
||||||
}
|
}
|
||||||
|
@ -31,6 +31,8 @@ class Database;
|
|||||||
namespace Ui
|
namespace Ui
|
||||||
{
|
{
|
||||||
class DatabaseSettingsWidget;
|
class DatabaseSettingsWidget;
|
||||||
|
class DatabaseSettingsWidgetGeneral;
|
||||||
|
class DatabaseSettingsWidgetEncryption;
|
||||||
}
|
}
|
||||||
|
|
||||||
class DatabaseSettingsWidget: public DialogyWidget
|
class DatabaseSettingsWidget: public DialogyWidget
|
||||||
@ -57,6 +59,10 @@ private:
|
|||||||
void truncateHistories();
|
void truncateHistories();
|
||||||
|
|
||||||
const QScopedPointer<Ui::DatabaseSettingsWidget> m_ui;
|
const QScopedPointer<Ui::DatabaseSettingsWidget> m_ui;
|
||||||
|
const QScopedPointer<Ui::DatabaseSettingsWidgetGeneral> m_uiGeneral;
|
||||||
|
const QScopedPointer<Ui::DatabaseSettingsWidgetEncryption> m_uiEncryption;
|
||||||
|
QWidget* m_uiGeneralPage;
|
||||||
|
QWidget* m_uiEncryptionPage;
|
||||||
Database* m_db;
|
Database* m_db;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -7,320 +7,45 @@
|
|||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>1082</width>
|
<width>1082</width>
|
||||||
<height>506</height>
|
<height>578</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QVBoxLayout" name="verticalLayout" stretch="1,2,5,1">
|
<layout class="QVBoxLayout" name="verticalLayout" stretch="0,0">
|
||||||
<item>
|
<item>
|
||||||
<spacer name="verticalSpacer_2">
|
<layout class="QHBoxLayout" name="horizontalLayout_2" stretch="0,1">
|
||||||
<property name="orientation">
|
|
||||||
<enum>Qt::Vertical</enum>
|
|
||||||
</property>
|
|
||||||
<property name="sizeHint" stdset="0">
|
|
||||||
<size>
|
|
||||||
<width>0</width>
|
|
||||||
<height>0</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
</spacer>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout_5" stretch="0,1,0">
|
|
||||||
<item>
|
<item>
|
||||||
<spacer name="horizontalSpacer">
|
<widget class="CategoryListWidget" name="categoryList" native="true"/>
|
||||||
<property name="orientation">
|
|
||||||
<enum>Qt::Horizontal</enum>
|
|
||||||
</property>
|
|
||||||
<property name="sizeHint" stdset="0">
|
|
||||||
<size>
|
|
||||||
<width>0</width>
|
|
||||||
<height>0</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
</spacer>
|
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QWidget" name="widget" native="true">
|
<widget class="QStackedWidget" name="stackedWidget">
|
||||||
<property name="maximumSize">
|
<property name="currentIndex">
|
||||||
<size>
|
<number>-1</number>
|
||||||
<width>400</width>
|
|
||||||
<height>16777215</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
</property>
|
||||||
<layout class="QGridLayout" name="gridLayout">
|
|
||||||
<item row="11" column="1">
|
|
||||||
<widget class="QCheckBox" name="historyMaxSizeCheckBox">
|
|
||||||
<property name="text">
|
|
||||||
<string>Max. history size:</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="0" column="2">
|
|
||||||
<widget class="QLineEdit" name="dbNameEdit"/>
|
|
||||||
</item>
|
|
||||||
<item row="7" column="2">
|
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout_3">
|
|
||||||
<item>
|
|
||||||
<widget class="QSpinBox" name="memorySpinBox">
|
|
||||||
<property name="suffix">
|
|
||||||
<string> MB</string>
|
|
||||||
</property>
|
|
||||||
<property name="minimum">
|
|
||||||
<number>1</number>
|
|
||||||
</property>
|
|
||||||
<property name="maximum">
|
|
||||||
<number>1048576</number>
|
|
||||||
</property>
|
|
||||||
<property name="value">
|
|
||||||
<number>64</number>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</item>
|
|
||||||
<item row="0" column="1" alignment="Qt::AlignRight">
|
|
||||||
<widget class="QLabel" name="dbNameLabel">
|
|
||||||
<property name="text">
|
|
||||||
<string>Database name:</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="10" column="1">
|
|
||||||
<widget class="QCheckBox" name="historyMaxItemsCheckBox">
|
|
||||||
<property name="text">
|
|
||||||
<string>Max. history items:</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="4" column="1">
|
|
||||||
<widget class="QLabel" name="kdfLabel">
|
|
||||||
<property name="text">
|
|
||||||
<string>Key Derivation Function</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="3" column="2">
|
|
||||||
<widget class="QComboBox" name="algorithmComboBox">
|
|
||||||
<item>
|
|
||||||
<property name="text">
|
|
||||||
<string>AES: 256 Bit (default)</string>
|
|
||||||
</property>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<property name="text">
|
|
||||||
<string>Twofish: 256 Bit</string>
|
|
||||||
</property>
|
|
||||||
</item>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="3" column="1" alignment="Qt::AlignRight">
|
|
||||||
<widget class="QLabel" name="algorithmLabel">
|
|
||||||
<property name="text">
|
|
||||||
<string>Encryption Algorithm:</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="1" column="1" alignment="Qt::AlignRight">
|
|
||||||
<widget class="QLabel" name="dbDescriptionLabel">
|
|
||||||
<property name="text">
|
|
||||||
<string>Database description:</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="1" column="2">
|
|
||||||
<widget class="QLineEdit" name="dbDescriptionEdit"/>
|
|
||||||
</item>
|
|
||||||
<item row="4" column="2">
|
|
||||||
<widget class="QComboBox" name="kdfComboBox"/>
|
|
||||||
</item>
|
|
||||||
<item row="10" column="2">
|
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
|
||||||
<item>
|
|
||||||
<widget class="QSpinBox" name="historyMaxItemsSpinBox">
|
|
||||||
<property name="sizePolicy">
|
|
||||||
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
|
|
||||||
<horstretch>0</horstretch>
|
|
||||||
<verstretch>0</verstretch>
|
|
||||||
</sizepolicy>
|
|
||||||
</property>
|
|
||||||
<property name="maximum">
|
|
||||||
<number>2000000000</number>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</item>
|
|
||||||
<item row="11" column="2">
|
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
|
||||||
<item>
|
|
||||||
<widget class="QSpinBox" name="historyMaxSizeSpinBox">
|
|
||||||
<property name="sizePolicy">
|
|
||||||
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
|
|
||||||
<horstretch>0</horstretch>
|
|
||||||
<verstretch>0</verstretch>
|
|
||||||
</sizepolicy>
|
|
||||||
</property>
|
|
||||||
<property name="suffix">
|
|
||||||
<string> MiB</string>
|
|
||||||
</property>
|
|
||||||
<property name="minimum">
|
|
||||||
<number>1</number>
|
|
||||||
</property>
|
|
||||||
<property name="maximum">
|
|
||||||
<number>2000000000</number>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</item>
|
|
||||||
<item row="6" column="2">
|
|
||||||
<widget class="QSpinBox" name="transformRoundsSpinBox">
|
|
||||||
<property name="sizePolicy">
|
|
||||||
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
|
|
||||||
<horstretch>0</horstretch>
|
|
||||||
<verstretch>0</verstretch>
|
|
||||||
</sizepolicy>
|
|
||||||
</property>
|
|
||||||
<property name="alignment">
|
|
||||||
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
|
|
||||||
</property>
|
|
||||||
<property name="minimum">
|
|
||||||
<number>1</number>
|
|
||||||
</property>
|
|
||||||
<property name="maximum">
|
|
||||||
<number>1000000000</number>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="5" column="2">
|
|
||||||
<widget class="QToolButton" name="transformBenchmarkButton">
|
|
||||||
<property name="sizePolicy">
|
|
||||||
<sizepolicy hsizetype="MinimumExpanding" vsizetype="MinimumExpanding">
|
|
||||||
<horstretch>0</horstretch>
|
|
||||||
<verstretch>0</verstretch>
|
|
||||||
</sizepolicy>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>Benchmark 1-second delay</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="2" column="2">
|
|
||||||
<widget class="QLineEdit" name="defaultUsernameEdit">
|
|
||||||
<property name="enabled">
|
|
||||||
<bool>true</bool>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="2" column="1">
|
|
||||||
<widget class="QLabel" name="defaultUsernameLabel">
|
|
||||||
<property name="text">
|
|
||||||
<string>Default username:</string>
|
|
||||||
</property>
|
|
||||||
<property name="alignment">
|
|
||||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="6" column="1">
|
|
||||||
<widget class="QLabel" name="transformRoundsLabel">
|
|
||||||
<property name="text">
|
|
||||||
<string>Transform rounds:</string>
|
|
||||||
</property>
|
|
||||||
<property name="alignment">
|
|
||||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="7" column="1">
|
|
||||||
<widget class="QLabel" name="memoryUsageLabel">
|
|
||||||
<property name="text">
|
|
||||||
<string>Memory Usage:</string>
|
|
||||||
</property>
|
|
||||||
<property name="alignment">
|
|
||||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="8" column="1">
|
|
||||||
<widget class="QLabel" name="parallelismLabel">
|
|
||||||
<property name="text">
|
|
||||||
<string>Parallelism:</string>
|
|
||||||
</property>
|
|
||||||
<property name="alignment">
|
|
||||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="8" column="2">
|
|
||||||
<widget class="QSpinBox" name="parallelismSpinBox">
|
|
||||||
<property name="suffix">
|
|
||||||
<string> thread</string>
|
|
||||||
</property>
|
|
||||||
<property name="minimum">
|
|
||||||
<number>1</number>
|
|
||||||
</property>
|
|
||||||
<property name="maximum">
|
|
||||||
<number>128</number>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="9" column="1">
|
|
||||||
<widget class="QCheckBox" name="recycleBinEnabledCheckBox">
|
|
||||||
<property name="text">
|
|
||||||
<string>Use recycle bin</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
|
||||||
<spacer name="horizontalSpacer_2">
|
|
||||||
<property name="orientation">
|
|
||||||
<enum>Qt::Horizontal</enum>
|
|
||||||
</property>
|
|
||||||
<property name="sizeHint" stdset="0">
|
|
||||||
<size>
|
|
||||||
<width>0</width>
|
|
||||||
<height>0</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
</spacer>
|
|
||||||
</item>
|
|
||||||
</layout>
|
</layout>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<spacer name="verticalSpacer">
|
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||||
<property name="orientation">
|
<item>
|
||||||
<enum>Qt::Vertical</enum>
|
<widget class="QDialogButtonBox" name="buttonBox">
|
||||||
</property>
|
<property name="standardButtons">
|
||||||
<property name="sizeHint" stdset="0">
|
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
|
||||||
<size>
|
</property>
|
||||||
<width>20</width>
|
</widget>
|
||||||
<height>40</height>
|
</item>
|
||||||
</size>
|
</layout>
|
||||||
</property>
|
|
||||||
</spacer>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QDialogButtonBox" name="buttonBox">
|
|
||||||
<property name="standardButtons">
|
|
||||||
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
<tabstops>
|
<customwidgets>
|
||||||
<tabstop>dbNameEdit</tabstop>
|
<customwidget>
|
||||||
<tabstop>dbDescriptionEdit</tabstop>
|
<class>CategoryListWidget</class>
|
||||||
<tabstop>historyMaxItemsCheckBox</tabstop>
|
<extends>QWidget</extends>
|
||||||
<tabstop>historyMaxItemsSpinBox</tabstop>
|
<header>gui/CategoryListWidget.h</header>
|
||||||
<tabstop>historyMaxSizeCheckBox</tabstop>
|
<container>1</container>
|
||||||
<tabstop>historyMaxSizeSpinBox</tabstop>
|
</customwidget>
|
||||||
<tabstop>buttonBox</tabstop>
|
</customwidgets>
|
||||||
</tabstops>
|
|
||||||
<resources/>
|
<resources/>
|
||||||
<connections/>
|
<connections/>
|
||||||
</ui>
|
</ui>
|
192
src/gui/DatabaseSettingsWidgetEncryption.ui
Normal file
192
src/gui/DatabaseSettingsWidgetEncryption.ui
Normal file
@ -0,0 +1,192 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<ui version="4.0">
|
||||||
|
<class>DatabaseSettingsWidgetEncryption</class>
|
||||||
|
<widget class="QWidget" name="DatabaseSettingsWidgetEncryption">
|
||||||
|
<layout class="QFormLayout" name="formLayout">
|
||||||
|
<property name="leftMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="topMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="rightMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="bottomMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<item row="0" column="0">
|
||||||
|
<widget class="QLabel" name="algorithmLabel">
|
||||||
|
<property name="text">
|
||||||
|
<string>Encryption Algorithm:</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="1">
|
||||||
|
<widget class="QComboBox" name="algorithmComboBox">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>AES: 256 Bit (default)</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>Twofish: 256 Bit</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="0">
|
||||||
|
<widget class="QLabel" name="kdfLabel">
|
||||||
|
<property name="text">
|
||||||
|
<string>Key Derivation Function:</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="1">
|
||||||
|
<widget class="QComboBox" name="kdfComboBox">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="0">
|
||||||
|
<widget class="QLabel" name="transformRoundsLabel">
|
||||||
|
<property name="text">
|
||||||
|
<string>Transform rounds:</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="1">
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout" stretch="40,40,0">
|
||||||
|
<item>
|
||||||
|
<widget class="QSpinBox" name="transformRoundsSpinBox">
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>150</width>
|
||||||
|
<height>0</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>150</width>
|
||||||
|
<height>16777215</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
|
||||||
|
</property>
|
||||||
|
<property name="minimum">
|
||||||
|
<number>1</number>
|
||||||
|
</property>
|
||||||
|
<property name="maximum">
|
||||||
|
<number>1000000000</number>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QToolButton" name="transformBenchmarkButton">
|
||||||
|
<property name="focusPolicy">
|
||||||
|
<enum>Qt::WheelFocus</enum>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Benchmark 1-second delay</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<spacer name="horizontalSpacer">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>40</width>
|
||||||
|
<height>20</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
<item row="3" column="0">
|
||||||
|
<widget class="QLabel" name="memoryUsageLabel">
|
||||||
|
<property name="text">
|
||||||
|
<string>Memory Usage:</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="3" column="1">
|
||||||
|
<widget class="QSpinBox" name="memorySpinBox">
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>150</width>
|
||||||
|
<height>0</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>150</width>
|
||||||
|
<height>16777215</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="suffix">
|
||||||
|
<string> MB</string>
|
||||||
|
</property>
|
||||||
|
<property name="minimum">
|
||||||
|
<number>1</number>
|
||||||
|
</property>
|
||||||
|
<property name="maximum">
|
||||||
|
<number>1048576</number>
|
||||||
|
</property>
|
||||||
|
<property name="value">
|
||||||
|
<number>64</number>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="4" column="0">
|
||||||
|
<widget class="QLabel" name="parallelismLabel">
|
||||||
|
<property name="text">
|
||||||
|
<string>Parallelism:</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="4" column="1">
|
||||||
|
<widget class="QSpinBox" name="parallelismSpinBox">
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>150</width>
|
||||||
|
<height>0</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>150</width>
|
||||||
|
<height>16777215</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="suffix">
|
||||||
|
<string> thread</string>
|
||||||
|
</property>
|
||||||
|
<property name="minimum">
|
||||||
|
<number>1</number>
|
||||||
|
</property>
|
||||||
|
<property name="maximum">
|
||||||
|
<number>128</number>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
<resources/>
|
||||||
|
<connections/>
|
||||||
|
</ui>
|
154
src/gui/DatabaseSettingsWidgetGeneral.ui
Normal file
154
src/gui/DatabaseSettingsWidgetGeneral.ui
Normal file
@ -0,0 +1,154 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<ui version="4.0">
|
||||||
|
<class>DatabaseSettingsWidgetGeneral</class>
|
||||||
|
<widget class="QWidget" name="DatabaseSettingsWidgetGeneral">
|
||||||
|
<layout class="QVBoxLayout" name="verticalLayout">
|
||||||
|
<property name="leftMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="topMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="rightMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="bottomMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<item>
|
||||||
|
<widget class="QGroupBox" name="groupBox">
|
||||||
|
<property name="title">
|
||||||
|
<string>Database Meta Data</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QFormLayout" name="formLayout">
|
||||||
|
<item row="0" column="0">
|
||||||
|
<widget class="QLabel" name="dbNameLabel">
|
||||||
|
<property name="text">
|
||||||
|
<string>Database name:</string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="1">
|
||||||
|
<widget class="QLineEdit" name="dbNameEdit"/>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="0">
|
||||||
|
<widget class="QLabel" name="dbDescriptionLabel">
|
||||||
|
<property name="text">
|
||||||
|
<string>Database description:</string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="1">
|
||||||
|
<widget class="QLineEdit" name="dbDescriptionEdit"/>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="0">
|
||||||
|
<widget class="QLabel" name="defaultUsernameLabel">
|
||||||
|
<property name="text">
|
||||||
|
<string>Default username:</string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="1">
|
||||||
|
<widget class="QLineEdit" name="defaultUsernameEdit">
|
||||||
|
<property name="enabled">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QGroupBox" name="groupBox_2">
|
||||||
|
<property name="title">
|
||||||
|
<string>History Settings</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||||
|
<item>
|
||||||
|
<layout class="QGridLayout" name="gridLayout">
|
||||||
|
<item row="0" column="0">
|
||||||
|
<widget class="QCheckBox" name="historyMaxItemsCheckBox">
|
||||||
|
<property name="text">
|
||||||
|
<string>Max. history items:</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="0">
|
||||||
|
<widget class="QCheckBox" name="historyMaxSizeCheckBox">
|
||||||
|
<property name="text">
|
||||||
|
<string>Max. history size:</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="1">
|
||||||
|
<widget class="QSpinBox" name="historyMaxSizeSpinBox">
|
||||||
|
<property name="suffix">
|
||||||
|
<string> MiB</string>
|
||||||
|
</property>
|
||||||
|
<property name="minimum">
|
||||||
|
<number>1</number>
|
||||||
|
</property>
|
||||||
|
<property name="maximum">
|
||||||
|
<number>2000000000</number>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="1">
|
||||||
|
<widget class="QSpinBox" name="historyMaxItemsSpinBox">
|
||||||
|
<property name="maximum">
|
||||||
|
<number>2000000000</number>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="0">
|
||||||
|
<widget class="QCheckBox" name="recycleBinEnabledCheckBox">
|
||||||
|
<property name="text">
|
||||||
|
<string>Use recycle bin</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<spacer name="horizontalSpacer">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>40</width>
|
||||||
|
<height>20</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<spacer name="verticalSpacer">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Vertical</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>20</width>
|
||||||
|
<height>40</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
<resources/>
|
||||||
|
<connections/>
|
||||||
|
</ui>
|
Loading…
x
Reference in New Issue
Block a user