mirror of
https://github.com/keepassxreboot/keepassxc.git
synced 2024-10-01 01:26:01 -04:00
Disable entry level Auto-Type
This commit is contained in:
parent
b8f9ac85ec
commit
3f78e5f7a2
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
|
* Copyright (C) 2023 KeePassXC Team <team@keepassxc.org>
|
||||||
* Copyright (C) 2010 Felix Geyer <debfx@fobos.de>
|
* Copyright (C) 2010 Felix Geyer <debfx@fobos.de>
|
||||||
* Copyright (C) 2017 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
|
||||||
@ -205,6 +205,11 @@ bool Entry::autoTypeEnabled() const
|
|||||||
return m_data.autoTypeEnabled;
|
return m_data.autoTypeEnabled;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool Entry::groupAutoTypeEnabled() const
|
||||||
|
{
|
||||||
|
return group() && group()->resolveAutoTypeEnabled();
|
||||||
|
}
|
||||||
|
|
||||||
int Entry::autoTypeObfuscation() const
|
int Entry::autoTypeObfuscation() const
|
||||||
{
|
{
|
||||||
return m_data.autoTypeObfuscation;
|
return m_data.autoTypeObfuscation;
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
|
* Copyright (C) 2023 KeePassXC Team <team@keepassxc.org>
|
||||||
* Copyright (C) 2010 Felix Geyer <debfx@fobos.de>
|
* Copyright (C) 2010 Felix Geyer <debfx@fobos.de>
|
||||||
* Copyright (C) 2017 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
|
||||||
@ -91,6 +91,7 @@ public:
|
|||||||
QStringList tagList() const;
|
QStringList tagList() const;
|
||||||
const TimeInfo& timeInfo() const;
|
const TimeInfo& timeInfo() const;
|
||||||
bool autoTypeEnabled() const;
|
bool autoTypeEnabled() const;
|
||||||
|
bool groupAutoTypeEnabled() const;
|
||||||
int autoTypeObfuscation() const;
|
int autoTypeObfuscation() const;
|
||||||
QString defaultAutoTypeSequence() const;
|
QString defaultAutoTypeSequence() const;
|
||||||
QString effectiveAutoTypeSequence() const;
|
QString effectiveAutoTypeSequence() const;
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
|
* Copyright (C) 2023 KeePassXC Team <team@keepassxc.org>
|
||||||
* Copyright (C) 2010 Felix Geyer <debfx@fobos.de>
|
* Copyright (C) 2010 Felix Geyer <debfx@fobos.de>
|
||||||
* Copyright (C) 2021 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
|
||||||
@ -1977,6 +1977,16 @@ bool DatabaseWidget::currentEntryHasNotes()
|
|||||||
return !currentEntry->resolveMultiplePlaceholders(currentEntry->notes()).isEmpty();
|
return !currentEntry->resolveMultiplePlaceholders(currentEntry->notes()).isEmpty();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool DatabaseWidget::currentEntryHasAutoTypeEnabled()
|
||||||
|
{
|
||||||
|
auto currentEntry = currentSelectedEntry();
|
||||||
|
if (!currentEntry) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return currentEntry->autoTypeEnabled() && currentEntry->groupAutoTypeEnabled();
|
||||||
|
}
|
||||||
|
|
||||||
GroupView* DatabaseWidget::groupView()
|
GroupView* DatabaseWidget::groupView()
|
||||||
{
|
{
|
||||||
return m_groupView;
|
return m_groupView;
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
|
* Copyright (C) 2023 KeePassXC Team <team@keepassxc.org>
|
||||||
* Copyright (C) 2010 Felix Geyer <debfx@fobos.de>
|
* Copyright (C) 2010 Felix Geyer <debfx@fobos.de>
|
||||||
* Copyright (C) 2021 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
|
||||||
@ -116,6 +116,7 @@ public:
|
|||||||
#ifdef WITH_XC_SSHAGENT
|
#ifdef WITH_XC_SSHAGENT
|
||||||
bool currentEntryHasSshKey();
|
bool currentEntryHasSshKey();
|
||||||
#endif
|
#endif
|
||||||
|
bool currentEntryHasAutoTypeEnabled();
|
||||||
|
|
||||||
QByteArray entryViewState() const;
|
QByteArray entryViewState() const;
|
||||||
bool setEntryViewState(const QByteArray& state) const;
|
bool setEntryViewState(const QByteArray& state) const;
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
|
* Copyright (C) 2023 KeePassXC Team <team@keepassxc.org>
|
||||||
* Copyright (C) 2012 Felix Geyer <debfx@fobos.de>
|
* Copyright (C) 2012 Felix Geyer <debfx@fobos.de>
|
||||||
* Copyright (C) 2017 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
|
||||||
@ -468,7 +468,9 @@ void EntryPreviewWidget::updateEntryAutotypeTab()
|
|||||||
}
|
}
|
||||||
|
|
||||||
m_ui->entryAutotypeTree->addTopLevelItems(items);
|
m_ui->entryAutotypeTree->addTopLevelItems(items);
|
||||||
setTabEnabled(m_ui->entryTabWidget, m_ui->entryAutotypeTab, m_currentEntry->autoTypeEnabled());
|
setTabEnabled(m_ui->entryTabWidget,
|
||||||
|
m_ui->entryAutotypeTab,
|
||||||
|
m_currentEntry->autoTypeEnabled() && m_currentEntry->groupAutoTypeEnabled());
|
||||||
}
|
}
|
||||||
|
|
||||||
void EntryPreviewWidget::updateGroupHeaderLine()
|
void EntryPreviewWidget::updateGroupHeaderLine()
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
|
* Copyright (C) 2023 KeePassXC Team <team@keepassxc.org>
|
||||||
* Copyright (C) 2010 Felix Geyer <debfx@fobos.de>
|
* Copyright (C) 2010 Felix Geyer <debfx@fobos.de>
|
||||||
* Copyright (C) 2020 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
|
||||||
@ -929,8 +929,9 @@ void MainWindow::setMenuActionState(DatabaseWidget::Mode mode)
|
|||||||
m_ui->menuEntryCopyAttribute->setEnabled(singleEntrySelected);
|
m_ui->menuEntryCopyAttribute->setEnabled(singleEntrySelected);
|
||||||
m_ui->menuEntryTotp->setEnabled(singleEntrySelected);
|
m_ui->menuEntryTotp->setEnabled(singleEntrySelected);
|
||||||
m_ui->menuTags->setEnabled(entriesSelected);
|
m_ui->menuTags->setEnabled(entriesSelected);
|
||||||
m_ui->actionEntryAutoType->setEnabled(singleEntrySelected);
|
m_ui->actionEntryAutoType->setEnabled(singleEntrySelected && dbWidget->currentEntryHasAutoTypeEnabled());
|
||||||
m_ui->actionEntryAutoType->menu()->setEnabled(singleEntrySelected);
|
m_ui->actionEntryAutoType->menu()->setEnabled(singleEntrySelected
|
||||||
|
&& dbWidget->currentEntryHasAutoTypeEnabled());
|
||||||
m_ui->actionEntryAutoTypeSequence->setText(
|
m_ui->actionEntryAutoTypeSequence->setText(
|
||||||
singleEntrySelected ? dbWidget->currentSelectedEntry()->effectiveAutoTypeSequence()
|
singleEntrySelected ? dbWidget->currentSelectedEntry()->effectiveAutoTypeSequence()
|
||||||
: Group::RootAutoTypeSequence);
|
: Group::RootAutoTypeSequence);
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
|
* Copyright (C) 2023 KeePassXC Team <team@keepassxc.org>
|
||||||
* Copyright (C) 2010 Felix Geyer <debfx@fobos.de>
|
* Copyright (C) 2010 Felix Geyer <debfx@fobos.de>
|
||||||
* Copyright (C) 2017 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
|
||||||
@ -1293,3 +1293,29 @@ void TestGroup::testPreviousParentGroup()
|
|||||||
QVERIFY(group1->previousParentGroupUuid() == group2->uuid());
|
QVERIFY(group1->previousParentGroupUuid() == group2->uuid());
|
||||||
QVERIFY(group1->previousParentGroup() == group2);
|
QVERIFY(group1->previousParentGroup() == group2);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void TestGroup::testAutoTypeState()
|
||||||
|
{
|
||||||
|
Database db;
|
||||||
|
auto* root = db.rootGroup();
|
||||||
|
|
||||||
|
auto* entry1 = new Entry();
|
||||||
|
entry1->setGroup(root);
|
||||||
|
|
||||||
|
auto subGroup = new Group();
|
||||||
|
subGroup->setParent(root);
|
||||||
|
auto* entry2 = new Entry();
|
||||||
|
entry2->setGroup(subGroup);
|
||||||
|
|
||||||
|
// Disable Auto-Type from root group
|
||||||
|
root->setAutoTypeEnabled(Group::TriState::Disable);
|
||||||
|
QVERIFY(!entry1->groupAutoTypeEnabled());
|
||||||
|
QVERIFY(!entry2->groupAutoTypeEnabled());
|
||||||
|
|
||||||
|
// Enable Auto-Type for sub group
|
||||||
|
subGroup->setAutoTypeEnabled(Group::TriState::Enable);
|
||||||
|
QVERIFY(root->autoTypeEnabled() == Group::TriState::Disable);
|
||||||
|
QVERIFY(subGroup->autoTypeEnabled() == Group::TriState::Enable);
|
||||||
|
QVERIFY(!entry1->groupAutoTypeEnabled());
|
||||||
|
QVERIFY(entry2->groupAutoTypeEnabled());
|
||||||
|
}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
|
* Copyright (C) 2023 KeePassXC Team <team@keepassxc.org>
|
||||||
* Copyright (C) 2010 Felix Geyer <debfx@fobos.de>
|
* Copyright (C) 2010 Felix Geyer <debfx@fobos.de>
|
||||||
* Copyright (C) 2017 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
|
||||||
@ -49,6 +49,7 @@ private slots:
|
|||||||
void testUsernamesRecursive();
|
void testUsernamesRecursive();
|
||||||
void testMoveUpDown();
|
void testMoveUpDown();
|
||||||
void testPreviousParentGroup();
|
void testPreviousParentGroup();
|
||||||
|
void testAutoTypeState();
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // KEEPASSX_TESTGROUP_H
|
#endif // KEEPASSX_TESTGROUP_H
|
||||||
|
Loading…
Reference in New Issue
Block a user