Commit Graph

11 Commits

Author SHA1 Message Date
Janek Bevendorff
d612cad09a Refactor Database and Database widgets (#2491)
The Database, DatabaseWidget, and DatabaseTabWidget classes share many responsibilities in inconsistent ways resulting in impenetrable and unmaintainable code and a diverse set of bugs and architecture restrictions. This patch reworks the architecture, responsibilities of, and dependencies between these classes.

The core changes are:

* Move loading and saving logic from widgets into the Database class
* Get rid of the DatabaseManagerStruct and move all the information contained in it into the Database
* Let database objects keep track of modifications and dirty/clean state instead of handing this to external widgets
* Move GUI interactions for loading and saving from the DatabaseTabWidget into the DatabaseWidget (resolves #2494 as a side-effect)
* Heavily clean up DatabaseTabWidget and degrade it to a slightly glorified QTabWidget
* Use QSharedPointers for all Database objects
* Remove the modifiedImmediate signal and replace it with a markAsModified() method
* Implement proper tabName() method instead of reading back titles from GUI widgets (resolves #1389 and its duplicates #2146 #855)
* Fix unwanted AES-KDF downgrade if database uses Argon2 and has CustomData
* Improve code

This patch is also the first major step towards solving issues #476 and #2322.
2018-11-22 11:47:31 +01:00
pasdam
ad4423d226 Replaced Uuid with QUuid 2018-07-06 22:23:49 -04:00
Louis-Bertrand Varin
8324d03f0a Formatting the code. 2018-03-31 16:01:30 -04:00
Janek Bevendorff
a595239624 Refactor and extend file format tests 2018-01-18 01:51:37 +01:00
Janek Bevendorff
a6ddc22fb8 Refactor database readers/writers and XML handling
* Refactor Kdbx*Reader
* Refactor KdbxWriter
* Refactor KdbxXmlReader
* Refactor KdbxXmlWriter
2018-01-13 14:24:58 -05:00
Janek Bevendorff
ccfd7a065c Fix coding style and GUI test 2018-01-13 14:24:57 -05:00
Jonathan White
bef7ba2cfe Implements KDBX4 format with Argon2 KDF
* Adds KDBX4 reader/writer interfaces
* Adds KDBX4 XML reader/write interfaces
* Implements test cases for KDBX4
* Fully compatible with KeePass2
* Corrects minor issues with Argon2 KDF
2018-01-13 14:24:55 -05:00
Janek Bevendorff
15648991fc Refactor Kdf class, remove fields concept 2018-01-13 14:23:28 -05:00
Janek Bevendorff
0d6ca0945b Reformat code, fix minor style issues, make kdf() getter const 2018-01-13 14:23:27 -05:00
Janek Bevendorff
d1a19a1009 Refactor Endian namespace 2018-01-13 14:23:27 -05:00
angelsl
3461cbfb06 Rename KeePass2{,Xml}{R,W} to Kdbx3{,Xml}{R,W}, and add a redirection class
This class will in future select Kdbx4{R,W} as appropriate.
2018-01-13 14:23:26 -05:00