27 Commits

Author SHA1 Message Date
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
a67a574b89
Reduce function call overhead
The arg() function of the QString class has a variable length argument
which allows to reduce the number of chained calls to the same function.
With proper formatting, readability is not affected.
2018-10-31 14:23:06 +01:00
Gianluca Recchia
f31d65bdaf Replace deprecated parts of the code (#2419)
Performing a dev build against the latest version of Qt failed
because of some deprecated members. They have been replaced
according to the Qt documentation.

Further, Q_OS_MACOS is now the only macro available to identify a
machine running macOS, the others are now deprecated.
See https://doc.qt.io/qt-5/qtglobal.html#Q_OS_OSX and
https://doc.qt.io/qt-5/qtglobal.html#Q_OS_MAC.
2018-10-26 15:19:04 +02: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
Janek Bevendorff
e443cde452 Add a new database settings wizard
This patch implements a new database wizard to guide users through the process
of setting up a new database and choosing sane encryption settings.

It also reimplements the master key settings to be more
user-friendly. Users can now add, change, or remove individual composite
key components instead of having to set all components at once. This
avoids confusion about a password being reset if the user only wants to
add a key file.

With these changes comes a major refactor of how database composite keys and key
components are handled. Copying of keys is prohibited and each key
exists only once in memory and is referenced via shared pointers. GUI
components for changing individual keys are encapsulated into separate
classes to be more reusable. The password edit and generator widgets
have also been refactored to be more reusable.
2018-09-25 21:12:47 +02:00
Jonathan White
b74fb3e208
Convert private static vars into member vars
* CSV Import and Entry Model
2018-09-15 12:10:25 -04:00
Jonathan White
470a74ee24
Merge pull request #1770 from pasdam/feature/useQuuid
Replaced Uuid with QUuid
2018-07-08 20:32:54 -04:00
Tarquin Winot
0142e070cc Add tab delimiter in CSV import. (#1842)
* Add tab delimiter in CSV import. Closes #1798
* Corrected several code style issues
2018-07-08 20:31:12 -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
Edward Jones
3def6a3bc4 Fix weird base strings and reduce concatenation 2018-03-13 20:40:39 +00:00
Nick Fox
ed46f9ac7e Implement #1208: CSV Import Created and Modified Dates 2018-01-14 00:42:36 +01:00
thez3ro
c3c67f18b8
add test for DB creation 2017-11-02 20:07:41 +01:00
Josef Vitu
852e89c0df Use the emit keyword correctly 2017-09-24 18:00:40 -04:00
Vladimir Svyatski
a42ac00d3c Requested code changes 2017-06-27 14:39:58 +03:00
Vladimir Svyatski
701f3d6054 🐛 Add proper plural processing in CSV importer (found issues during localization) 2017-06-27 12:49:41 +03:00
Louis-Bertrand Varin
e0e8521eb9 Removing m_writer from CsvImportWidget.h 2017-06-15 10:26:37 -04:00
thez3ro
a53b111182
Update and fix copyright headers 2017-06-14 15:54:43 +02:00
seatedscribe
eb7f4d2eaa
Apply requested changes 2017-04-27 22:11:26 +02:00
seatedscribe
2e2e37098f [CSV import GUI] add option to choose dropdown menu field names from CSV
This should also close #458
2017-04-27 21:21:21 +02:00
seatedscribe
06bbd6e066
Get rid of Q_{EMIT,SLOTS,SIGNALS} 2017-03-16 21:46:53 +01:00
seatedscribe
984602b7a0
Enhance FormatStatusText(), other minor cosmetics 2017-03-08 22:59:35 +01:00
seatedscribe
f4791c19e1
Assign uuid to newborn groups 2017-03-06 23:05:06 +01:00
seatedscribe
39057a6aa0
Better widget positions, removed futile message when no errors shows up 2017-03-06 00:59:40 +01:00
seatedscribe
41f9c3d2a1 Better handle of parser status messages (critical/not critical)
Use of messageWidget for displaying parser status messages
setRootGroup assigns the right label to the root db folder
test uses portable QTemporaryFile instead of hardcoded file
2017-03-05 21:27:29 +01:00
seatedscribe
a7e358c27d Syntax style, spaces and pretty indentation 2017-03-05 21:27:29 +01:00
seatedscribe
afdf02b4be Implement import of databases in CSV (Comma Separated Values) format (i.e. from other password managers) 2017-03-05 21:27:29 +01:00