Skip to content

Commit c51752d

Browse files
committed
Release 2.4.0
- New Database Wizard [#1952] - Advanced Search [#1797] - Automatic update checker [#2648] - KeeShare database synchronization [#2109, #1992, #2738, #2742, #2746, #2739] - Improve favicon fetching; transition to Duck-Duck-Go [#2795, #2011, #2439] - Remove KeePassHttp support [#1752] - CLI: output info to stderr for easier scripting [#2558] - CLI: Add --quiet option [#2507] - CLI: Add create command [#2540] - CLI: Add recursive listing of entries [#2345] - CLI: Fix stdin/stdout encoding on Windows [#2425] - SSH Agent: Support OpenSSH for Windows [#1994] - macOS: TouchID Quick Unlock [#1851] - macOS: Multiple improvements; include CLI in DMG [#2165, #2331, #2583] - Linux: Prevent Klipper from storing secrets in clipboard [#1969] - Linux: Use polling based file watching for NFS [#2171] - Linux: Enable use of browser plugin in Snap build [#2802] - TOTP QR Code Generator [#1167] - High-DPI Scaling for 4k screens [#2404] - Make keyboard shortcuts more consistent [#2431] - Warn user if deleting referenced entries [#1744] - Allow toolbar to be hidden and repositioned [#1819, #2357] - Increase max allowed database timeout to 12 hours [#2173] - Password generator uses existing password length by default [#2318] - Improve alert message box button labels [#2376] - Show message when a database merge makes no changes [#2551] - Browser Integration Enhancements [#1497, #2253, #1904, #2232, #1850, #2218, #2391, #2396, #2542, #2622, #2637, #2790] - Overall Code Improvements [#2316, #2284, #2351, #2402, #2410, #2419, #2422, #2443, #2491, #2506, #2610, #2667, #2709, #2731]
2 parents 6fe821c + 348a7e5 commit c51752d

File tree

972 files changed

+181974
-77209
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

972 files changed

+181974
-77209
lines changed

.clang-format

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ BraceWrapping:
3030
BeforeCatch: false
3131
BeforeElse: false
3232
IndentBraces: false
33-
BreakBeforeBinaryOperators: None
33+
BreakBeforeBinaryOperators: NonAssignment
3434
BreakBeforeBraces: Custom
3535
BreakBeforeTernaryOperators: true
3636
BreakConstructorInitializersBeforeComma: true

.github/CONTRIBUTING.md

Lines changed: 64 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ The Branch Strategy is based on [git-flow-lite](http://nvie.com/posts/a-successf
9494
* **master** – points to the latest public release
9595
* **develop** – points to the development of the next release, contains tested and reviewed code
9696
* **feature/**[name] – points to a branch with a new feature, one which is candidate for merge into develop (subject to rebase)
97-
* **hotfix/**[id]-[description] – points to a branch with a fix for a particular issue ID
97+
* **hotfix/**[name] – points to a branch with a fix for a particular issue ID
9898

9999

100100
### Git commit messages
@@ -103,14 +103,16 @@ The Branch Strategy is based on [git-flow-lite](http://nvie.com/posts/a-successf
103103
* Use the imperative mood ("Move cursor to…" not "Moves cursor to…")
104104
* Limit the first line to 72 characters or less
105105
* Reference issues and pull requests liberally
106-
* If your pull request fixes an existing issue, add "…, resolves #ISSUENUMBER" to your main commit
107-
* When only changing documentation, include `[ci skip]` in the commit description
106+
* If your pull request fixes an existing issue, add "Fixes #ISSUENUMBER" to your pull request description
108107

109108
### Coding styleguide
110109

111-
This project follows the [Qt Coding Style](https://wiki.qt.io/Qt_Coding_Style). All submissions are expected to follow this style.
110+
The coding style of the project is enforced using llvm's `clang-format` formatting tool. A thorough description
111+
of the coding style can be found in the `.clang-format` file, but the main conventions are presented here.
112112

113-
In particular, code must stick to the following rules:
113+
Formatting can be performed automatically by calling `make format` from the `build/` directory.
114+
115+
Note that [formatting can be disabled on a piece of code](https://clang.llvm.org/docs/ClangFormatStyleOptions.html#disabling-formatting-on-a-piece-of-code) if manual formatting is deemed more readable.
114116

115117
#### Naming convention
116118
`lowerCamelCase`
@@ -122,15 +124,67 @@ For names made of multiple concatenated words, the first letter of the whole is
122124
For **C++ files** (*.cpp .h*): 4 spaces
123125
For **Qt-UI files** (*.ui*): 2 spaces
124126

125-
#### Pointers
127+
#### Includes
128+
```c
129+
// Class includes
130+
#include "MyWidget.h"
131+
#include "ui_MyWidget.h"
132+
133+
// Application includes
134+
#include "core/Config.h"
135+
#include "core/FilePath.h"
136+
137+
// Global includes
138+
#include <QWidget>
139+
#include <stdin>
140+
```
141+
142+
#### Classes
143+
```c
144+
// Note: order is important, stay organized!
145+
class MyWidget : public QWidget
146+
{
147+
Q_OBJECT
148+
149+
public:
150+
explicit MyWidget(QWidget* parent);
151+
~MyWidget() override;
152+
153+
signals:
154+
void alert();
155+
156+
public slots:
157+
void processEvent(Event* event);
158+
159+
private slots:
160+
void myEvent(Event* event);
161+
162+
private:
163+
const QScopedPointer<Ui::MyWidget> m_ui;
164+
int m_counter;
165+
};
166+
167+
// Note: alignment of variable initialization
168+
MyWidget::MyWidget(QWidget* parent)
169+
: QWidget(parent)
170+
, m_ui(new Ui::MyWidget())
171+
{
172+
173+
}
174+
```
175+
176+
#### Pointers / References
126177
```c
127178
int* count;
179+
const QString& string;
128180
```
129181

130182
#### Braces
131183
```c
132184
if (condition) {
133185
doSomething();
186+
} else {
187+
doSomethingElse();
134188
}
135189

136190
void ExampleClass::exampleFunction()
@@ -141,15 +195,18 @@ void ExampleClass::exampleFunction()
141195

142196
#### Switch statement
143197
```c
198+
// Note: avoid declaring variables in a switch statement
144199
switch (a) {
145200
case 1:
146201
doSomething();
147202
break;
148203

149-
default:
204+
// Note: use braces if necessary
205+
default: {
150206
doSomethingElse();
151207
break;
152208
}
209+
}
153210
```
154211

155212
#### Member variables

.github/ISSUE_TEMPLATE.md

Lines changed: 0 additions & 40 deletions
This file was deleted.
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
---
2+
name: Bug Report
3+
about: provide information about a problem
4+
title:
5+
labels: bug
6+
assignees: ''
7+
8+
---
9+
10+
[TIP]: # ( Provide a general summary of the issue in the title above ^^ )
11+
[TIP]: # ( DO NOT include screenshots of your actual database! )
12+
13+
## Expected Behavior
14+
[NOTE]: # ( Tell us what you expected to happen )
15+
16+
17+
## Current Behavior
18+
[NOTE]: # ( Tell us what actually happens )
19+
20+
21+
## Possible Solution
22+
[NOTE]: # ( Not required, but suggest a fix/reason for the bug )
23+
24+
25+
## Steps to Reproduce
26+
[NOTE]: # ( Provide a link to a live example, or an unambiguous set of steps to )
27+
[NOTE]: # ( reproduce this bug. Include code to reproduce, if relevant )
28+
1.
29+
2.
30+
3.
31+
32+
## Context
33+
[NOTE]: # ( How has this issue affected you? What unique circumstances do you have? )
34+
35+
36+
## Debug Info
37+
[NOTE]: # ( Paste debug info from Help → About here )
38+
KeePassXC - VERSION
39+
Revision: REVISION
40+
41+
Libraries:
42+
- LIBS
43+
44+
Operating system: OS
45+
CPU architecture: ARCH
46+
Kernel: KERNEL
47+
48+
Enabled extensions:
49+
- EXTENSIONS
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
---
2+
name: Feature Request
3+
about: tell us about a new capability you want to see
4+
title:
5+
labels: new feature
6+
assignees: ''
7+
8+
---
9+
10+
[TIP]: # ( Provide a general summary of the feature in the title above ^^ )
11+
[TIP]: # ( DO NOT include screenshots of your actual database! )
12+
13+
## Summary
14+
[NOTE]: # ( Provide a brief overview of what the new feature is all about )
15+
16+
17+
## Desired Behavior
18+
[NOTE]: # ( Tell us how the new feature should work, be specific )
19+
20+
21+
## Possible Solution
22+
[NOTE]: # ( Not required, but suggest ideas on how to implement the addition or change )
23+
24+
25+
## Context
26+
[NOTE]: # ( Why does this feature matter to you? What unique circumstances do you have? )
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
---
2+
name: Release Preview Bug report
3+
about: report a bug with a release preview (eg, 2.4.0-beta1)
4+
title: "[PRE-RELEASE] "
5+
labels: PRE-RELEASE BUG
6+
assignees: droidmonkey
7+
8+
---
9+
10+
[TIP]: # ( Provide a general summary of the issue in the title above ^^ )
11+
[TIP]: # ( DO NOT include screenshots of your actual database! )
12+
13+
## Expected Behavior
14+
[NOTE]: # ( Tell us what you expected to happen )
15+
16+
17+
## Current Behavior
18+
[NOTE]: # ( Tell us what actually happens )
19+
20+
21+
## Possible Solution
22+
[NOTE]: # ( Not required, but suggest a fix/reason for the bug )
23+
24+
25+
## Steps to Reproduce
26+
[NOTE]: # ( Provide a link to a live example, or an unambiguous set of steps to )
27+
[NOTE]: # ( reproduce this bug. Include code to reproduce, if relevant )
28+
1.
29+
2.
30+
3.
31+
32+
## Context
33+
[NOTE]: # ( How has this issue affected you? What unique circumstances do you have? )
34+
35+
36+
## Debug Info
37+
[NOTE]: # ( Paste debug info from Help → About here )
38+
KeePassXC - VERSION
39+
Revision: REVISION
40+
41+
Libraries:
42+
- LIBS
43+
44+
Operating system: OS
45+
CPU architecture: ARCH
46+
Kernel: KERNEL
47+
48+
Enabled extensions:
49+
- EXTENSIONS

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 24 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,36 @@
1-
<!--- Provide a general summary of your changes in the title above -->
1+
[TIP]: # ( Provide a general summary of your changes in the title above ^^ )
22

3-
## Description
4-
<!--- Describe your changes in detail -->
3+
## Type of change
4+
[NOTE]: # ( Please remove all lines which don't apply. )
5+
- ✅ Bug fix (non-breaking change which fixes an issue)
6+
- ✅ Refactor (significant modification to existing code)
7+
- ✅ New feature (non-breaking change which adds functionality)
8+
- ✅ Breaking change (fix or feature that would cause existing functionality to change)
9+
- ✅ Documentation (non-code change)
510

6-
## Motivation and context
7-
<!--- Why is this change required? What problem does it solve? -->
8-
<!--- If it fixes an open issue, please link to the issue here. -->
11+
## Description and Context
12+
[NOTE]: # ( Describe your changes in detail, why is this change required? )
13+
[NOTE]: # ( Describe the context of your change. Explain large code modifications. )
14+
[NOTE]: # ( If it fixes an open issue, please add "Fixes #XXX" as necessary )
915

10-
## How has this been tested?
11-
<!--- Please describe in detail how you tested your changes. -->
12-
<!--- Include details of your testing environment, and the tests you ran to -->
13-
<!--- see how your change affects other areas of the code, etc. -->
1416

15-
## Screenshots (if appropriate):
17+
## Screenshots
18+
[TIP]: # ( Do not include screenshots of your actual database! )
19+
20+
21+
## Testing strategy
22+
[NOTE]: # ( Please describe in detail how you tested your changes. )
23+
[TIP]: # ( We expect new code to be covered by unit tests and documented with doc blocks! )
1624

17-
## Types of changes
18-
<!--- What types of changes does your code introduce? -->
19-
<!--- Please remove all lines which don't apply. -->
20-
- ✅ Bug fix (non-breaking change which fixes an issue)
21-
- ✅ New feature (non-breaking change which adds functionality)
22-
- ✅ Breaking change (fix or feature that would cause existing functionality to change)
2325

2426
## Checklist:
25-
<!--- Please go over all the following points. -->
26-
<!--- Again, remove any lines which don't apply. -->
27-
<!--- Pull Requests that don't fulfill all [REQUIRED] requisites are likely -->
28-
<!--- to be sent back to you for correction or will be rejected. -->
27+
[NOTE]: # ( Please go over all the following points. )
28+
[NOTE]: # ( Again, remove any lines which don't apply. )
29+
[NOTE]: # ( Pull Requests that don't fulfill all [REQUIRED] requisites are likely )
30+
[NOTE]: # ( to be sent back to you for correction or will be rejected. )
2931
- ✅ I have read the **CONTRIBUTING** document. **[REQUIRED]**
3032
- ✅ My code follows the code style of this project. **[REQUIRED]**
3133
- ✅ All new and existing tests passed. **[REQUIRED]**
3234
- ✅ I have compiled and verified my code with `-DWITH_ASAN=ON`. **[REQUIRED]**
33-
- ✅ My change requires a change to the documentation and I have updated it accordingly.
35+
- ✅ My change requires a change to the documentation, and I have updated it accordingly.
3436
- ✅ I have added tests to cover my changes.

.gitignore

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,13 @@ release*/
1111

1212
.DS_Store
1313
.version
14+
desktop.ini
1415
\.scannerwork/
16+
17+
/snap/.snapcraft/
18+
/parts/
19+
/stage/
20+
/prime/
21+
/*.snap
22+
/*_source.tar.bz2
23+

.tx/config

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
[main]
22
host = https://www.transifex.com
33

4-
[keepassxc.keepassx_ents]
4+
[keepassxc.keepassxc]
55
source_file = share/translations/keepassx_en.ts
66
file_filter = share/translations/keepassx_<lang>.ts
77
source_lang = en

0 commit comments

Comments
 (0)