Commit Graph

84 Commits

Author SHA1 Message Date
Sami Vänttinen
891f67a1cd Select group when adding credentials from browser extension (#2637) 2019-01-30 09:48:22 -05:00
Wojtek Gumuła
c630214915 Warn user if deleting entries that are referenced. (#1744)
On warning, references can be replaced with original values or ignored.
Removal process can be also skipped for each conflicting entry. Resolves #852.
2018-12-24 18:15:46 -05:00
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
Gianluca Recchia
da9afd3f6f
Reduce number of unneeded copies
This patch aims at reducing the number of copies for obejcts that could
be referenced rather than copied, because they're not modified during
the computation.
2018-10-31 15:16:04 +01:00
Gianluca Recchia
4876beabed
Improve performance of a few for-loops
Some for-loops needlessly copied the collection they were looping over.
2018-10-31 14:23:06 +01:00
Jonathan White
fa687f246e
Fix issues with group functions (#2410) 2018-10-30 08:42:35 -04:00
Jonathan White
c1e9f45df9 Introduce synchronize merge method
* Create history-based merging that keeps older data in history instead of discarding or deleting it
* Extract merge logic into the Merger class
* Allows special merge behavior
* Improve handling of deletion and changes on groups
* Enable basic change tracking while merging
* Prevent unintended timestamp changes while merging
* Handle differences in timestamp precision
* Introduce comparison operators to allow for more sophisticated comparisons (ignore special properties, ...)
* Introduce Clock class to handle datetime across the app

Merge Strategies:
* Default (use inherited/fallback method)
* Duplicate (duplicate conflicting nodes, apply all deletions)
* KeepLocal (use local values, but apply all deletions)
* KeepRemote (use remote values, but apply all deletions)
* KeepNewer (merge history only)
* Synchronize (merge history, newest value stays on top, apply all deletions)
2018-09-30 09:36:39 -04:00
brad2014
32456e1b24 Fix typo in Group::findGroupByPath found by sonarcloud (#2233)
* Group::findGroupByPath now limited to search from root (matching current usage)
* Factors out Group::findGroupByPathRecursion (on prenormalized strings).
2018-09-18 22:44:39 -04: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
5410d78bbb Properly save custom header data
Ensure adding custom data upgrades to KDBX4
Implement review feedback
2018-02-21 13:23:14 +01:00
Christian Kieschnick
0b54710734 Introduced missing CustomData on Group and Entry
Introduce missing CustomData-attributes of KDBX4 format to allow
storing of plugin data for groups and entries - adopt Metadata to use
the same storage mechanism
Add simple view for CustomData as part of EditWidgetProperties
Tracking of CustomData-Modification using SIGNAL-SLOT update-mechanism
2018-02-21 13:23:14 +01:00
thez3ro
a9479fd662
refactor autotype sequences and entry-point functions 2018-02-04 23:13:15 +01:00
frostasm
6007e0de71 Refactor DetailsWidget 2018-02-04 15:51:30 +02:00
Louis-Bertrand Varin
2cd5006260 Formatting 2017-11-21 14:06:40 -05:00
Louis-Bertrand Varin
94ea323836 Extracting default clone flags. 2017-11-21 14:06:40 -05:00
Louis-Bertrand Varin
9603c91877 Merge : Synchronising groups. 2017-11-21 14:06:40 -05:00
thez3ro
1a87e30b95
add preview panel for entries and groups 2017-10-26 12:19:23 +02:00
louib
6e1fd0694f CLI : basic entry manipulation commands. (#919)
* CLI : basic entry manipulation commands.

* Code review.
2017-09-06 09:14:41 -04:00
louib
1220b7d501 Feature : Update entries across groups when merging (#807)
* Feature : Update entries across groups when merging

* Styling
2017-09-05 10:28:47 -04:00
louib
b2107b5e27 Adding Locate command. (#829)
* Adding Locate command.

* Adding group searching in locate
2017-08-05 12:20:26 -04:00
louib
3b23e68540 Refactoring : Introducing Command class for CLI commands (#778) 2017-07-17 15:16:53 -04:00
louib
48ea024d7e Adding support for listing a group. (#652)
* Adding support for listing a group.

* added findGroupByPath

* Removing useless asserts.

* Code review.
2017-06-21 17:34:49 -04:00
thez3ro
a53b111182
Update and fix copyright headers 2017-06-14 15:54:43 +02:00
louib
54ad927044 Moving print group in Group class. (#586) 2017-05-21 13:05:44 -04:00
louib
a2e82dc883 Feature : clip command (#578) 2017-05-19 14:04:11 -04:00
Janek Bevendorff
8d487d31a4
Replace Q_EMIT, Q_SIGNALS and Q_SLOTS macros with MOC keywords 2017-03-10 16:12:02 +01:00
TheZ3ro
6927158daa Add unlock dialog on Autotype and show default Autotype sequence (#89)
* Add unlockdialog on autotype. Fix #10
* Show default autotype sequence for existing entries
* NOTE: New entries/groups do not show the default autotype sequence
2016-11-11 16:26:07 -05:00
Jonathan White
e25cd9ba48 Add Merge database utility function (#47)
Thank you to @TheZ3ro and @monomon for there major contributions to this PR!
2016-11-07 22:37:42 -05:00
Felix Geyer
38245aa2a9 Add iconScaledPixmap() convenience functions. 2016-01-24 20:12:33 +01:00
Felix Geyer
4752adf9d3 Move pixmap caching to Metadata. 2016-01-24 20:12:21 +01:00
Felix Geyer
33650c4a04 Add non-const version of Group::groupsRecursive(). 2015-01-11 16:20:24 +01:00
Florian Geyer
204cd8d971 Move exporter to separate class. 2014-05-16 12:07:22 +02:00
Florian Geyer
8bf4826003 Move search into separate class. 2014-05-15 23:50:40 +02:00
Felix Geyer
5de62a5ef4 Add Group::resolveAutoTypeEnabled(). 2014-04-26 18:30:22 +02:00
Felix Geyer
7893a2e84d Rename Group::includeInSearch() to resolveSearchingEnabled().
Make it public and drop the resolveInherit parameter.
2014-04-26 18:27:52 +02:00
Felix Geyer
98c821df05 Add Group::exportToDb(). 2013-11-22 13:36:46 +01:00
Felix Geyer
a992c76d6a Allow passing entry cloning flags to Group::clone(). 2013-11-22 13:34:34 +01:00
Felix Geyer
cb804eb143 Document clone() methods. 2013-11-22 10:30:50 +01:00
Felix Geyer
6504b6f2bd Drop Qt module name from include statements.
This is a preparation to be able to build KeePassX against Qt 5.
2013-10-03 15:18:16 +02:00
Felix Geyer
5588792344 Make KeePass2XmlReader::parseGroup() safe against reordered xml elements. 2013-04-29 22:31:50 +02:00
Felix Geyer
5a96e19ce9 Copy custom icons when copying/moving entries/groups to another database. 2013-04-07 18:32:43 +02:00
Felix Geyer
bee570c3cf Add Group::clone().
Move all the data we want to clone into a GroupData struct.
2013-04-04 21:48:55 +02:00
Felix Geyer
1c7e8f6921 Small optimizations. 2013-03-26 23:53:34 +01:00
Felix Geyer
8fb2f9db7c Move inline keyword to function definition. 2012-08-04 22:06:41 +02:00
Felix Geyer
e9a96ff80a Mark m_pixmapCacheKey as mutable so we don't have to const_cast. 2012-07-25 12:18:16 +02:00
Felix Geyer
33b4cd8636 Don't add new entries to EntryModel when in search mode.
Only allow moving entries from one group to the other.
2012-07-21 22:21:49 +02:00
Florian Geyer
f6e1af30b3 Move recycle bin creation method to Group class. 2012-07-21 11:58:00 +02:00
Florian Geyer
d218924b4f Add expiry option to group edit. 2012-05-18 10:52:05 +02:00
Felix Geyer
ce268260b1 Display expired entries and groups struck out. 2012-05-15 20:02:08 +02:00