Compare commits

...

2877 Commits

Author SHA1 Message Date
Jonathan White
c51752df39 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]
2019-03-19 18:59:14 -04:00
Jonathan White
348a7e5111 Update translations 2019-03-19 18:58:44 -04:00
Jonathan White
f67b60623e Update translation source file 2019-03-19 18:56:17 -04:00
Jonathan White
10568f4200 Bump to 2.4.0; add Changelog 2019-03-19 18:56:17 -04:00
Jonathan White
ce5cf3573a Update release-tool
* Use signtool instead of osslsigncode
* Sign exe and dll files when building
* Check full tag name
* Check that snapcraft is in release build mode
2019-03-19 18:56:17 -04:00
Jonathan White
fb5faf0ff5 Ran make format 2019-03-19 18:56:17 -04:00
Jonathan White
306bf0f292 Allow snap builds to use keepassxc-proxy
* Updated browser extension settings for snap usage
* Support Snap 3.0 Changes
* Add missing stage packages
* Correct proxy communication with snaps
2019-03-19 14:46:29 -04:00
Jonathan White
fb5746e4f7 Improve legacy browser settings message 2019-03-19 14:46:29 -04:00
Jonathan White
37b18a532c Allow database creation without password
* The warning about not having a password is now properly shown (previously it did not let you continue at all)
* General cleanup of the master key editing workflow
2019-03-19 14:46:29 -04:00
Jonathan White
e20d652cca Use existing extension when creating backup file
* passwords.kdbx -> passwords.old.kdbx
* passwords.db -> passwords.old.db
* passwords -> passwords.old
2019-03-19 14:46:29 -04:00
varjolintu
14e868d2f7 Allow creating new groups with Browser Integration
Added a confirmation dialog
2019-03-17 20:13:44 -04:00
Kyle Kneitinger
84f5adb24a Remediate errors in various favicon fetch scenarios (#2779)
Fixes stuck "Download favicon" button on icon download attempts for IP
address hosts by skipping attempts to get 2nd level domain resources
(which resulted in calls to 0.0.0.<rightmost octet of original IP>).

Fixes some cases when DuckDuckGo fallback fails to find icon of >2-level
domains, by adding a request to a DDG URL based on entry's 2nd level
domain.

Repurposes EditWidgetIcons' private fetchCanceled slot (which as of #2439,
is unused by any code) into public abortRequests slot, which is
connected to the entry edit widget's accepted and rejected signals (in
other words, Ok or Cancel was pressed).
2019-03-17 18:28:55 -04:00
ckieschnick
11ecaf4fa4 Hotfix/2657 prevent share overwrite (#2746)
* Fix problem with export from newly saved database

Newly created/saved databases (or used with DatabaseWidget::saveAs)
were not exported/imported correctly.
Fixed the problem by reinitializing the ShareObserver on
DatabaseWidget::saveAs.

* Introduce warnings and prevent conflicting shares

Introduced several warnings and errors to indicate improper settings.
Prevent export when a path is used multiple times (only the file path is
checked - may ignore multiple similar ways to reference a share).

* Improve KeeShare integration in DatabaseWidget

Moved initial KeeShare association to constructor.
Introduced Q_UNUSED to indicate need for assignment statement.
2019-03-15 22:39:46 -04:00
ckieschnick
ebb87e6379 Add share indication label in group view (#2742)
* When viewing a shared group, the sharing state is indicated by a label
similar to the search label.
* Banner shows on children of shared groups
* When searching, share banner is hidden
* Fixed issue where group/entry information was not updated after change
2019-03-07 10:57:13 -05:00
Johan Fleury
a2bd08ca8a fix(YubiKey): call yk_release on errors
Fix #2643 and #2721
2019-03-06 21:45:10 -05:00
varjolintu
f997e86869 Small browser fixes for 2.4.0 release 2019-03-06 20:46:12 -05:00
Christian Kieschnick
f09f00a6b8 Add clear functionality to group share settings
Settings in a group can now be cleared using a single button press on
'clear'.
2019-03-06 20:40:42 -05:00
Christian Kieschnick
c369130338 Improve messages and fix issue in ShareObserver
Fixed smaller issue with error check before the actual write.
Extended the error messages in ShareObserver to differentiate between
the error cases.
2019-03-06 20:40:27 -05:00
Vladimir Svyatski
9d44a756bb Add missing colon to SettingsWidgetKeeShare.ui 2019-03-01 09:19:11 -05:00
Jonathan White
ff87207cf4 Add doc strings to EntrySearcher functions 2019-02-25 18:09:54 -05:00
Jonathan White
bbf678975f Fix TouchID operation after database refactor
* Fix #2720
2019-02-25 18:09:54 -05:00
Jonathan White
d0d1b25e5c Updates to EntrySearcher
* Only search custom named attributes
* Search attribute values in addition to keys
* Optimize search process
2019-02-25 18:09:54 -05:00
Jonathan White
5cf50d9fae Multiple code improvements
* Fixed unending timer in BulkFileWatcher causing high CPU usage after first save
* Fix multiple SIGNAL connections found with GammaRay
* Remove horizontal scrollbar from EditWidget due to ghosting (maybe Qt bug)
2019-02-25 18:09:54 -05:00
Johan Fleury
e8ec45ef97 Always close epoll/kqueue file descriptor (#2723)
Resolves #2643, resolves #2721
2019-02-24 13:38:50 +01:00
Janek Bevendorff
9bc20f0b42 Prevent unnecessary key transformations, resolves #2704
The database master key settings widget does not actually
need to (re-)transform the master key, it only needs to update
the Key object on the database. Transformation can be deferred
until the Database is persisted to disk. This avoids delays
and unnecessary user interaction with challenge-response
dongles by eliminating redundant key transformations.
2019-02-18 17:21:02 +01:00
Jonathan White
0c587999c6 Code quality updates for 2.4.0 (#2709)
* Minor code quality fixes found by Codacy
* Fix unused variables when WITH_XC_NETWORKING is OFF
* Fix #2684, resolve entry references from the root group
* Fix #2697 and Fix #2699, listen specifically for 
WM_QUERYENDSESSION and WM_ENDSESSION on 
Windows to gracefully shutdown KeePassXC
* Cleanup proxy code and add explicit closure for
shutdown messages
2019-02-18 08:26:56 -05:00
louib
fa3c959212 Fix quiet option for Merge (CLI) (#2695) 2019-02-15 08:56:29 -05:00
Jonathan White
8cf3ee866e Updated contributors in about dialog (#2683)
* Updated contributors and translators in about dialog

* Move contributor and maintainer text from
AboutDialog.ui to AboutDialog.cpp in static
strings
2019-02-15 08:56:11 -05:00
Jonathan White
877a0924c1 Icon cleanup
* Shrank large SVG's using Inkscape 'Optimized SVG'
* Added pngcrush script to 'make icons'
* Ran 'make icons'
2019-02-05 16:09:17 -05:00
Jonathan White
79b8647fd7 Updated kdbx file icon
* Tweaked share/icons/svg/application-x-keepassxc.svg for better scaling
* Added ico build script for Windows
2019-02-05 16:09:17 -05:00
Jonathan White
8e596165ab Add MacOS entitlements to fix TouchID integration
* Fix #2676
2019-02-05 16:09:17 -05:00
Jonathan White
b4de4369eb Fix favicon corruption on loading database
* Fix #2251 and Fix #2674
* Icons stored with duplicate UUID's will be
assigned a new UUID on load. This causes entries
using the duplicate UUID to display the default icon.
2019-02-05 16:09:17 -05:00
Jonathan White
cc932eff30 Fix issues with TOTP
* otp setting is properly loaded and saved (Fix #2671)
* Removing the key from TOTP Setup clears all TOTP
settings for entry
* Santize TOTP key prior to storing in OTP format
2019-02-05 16:09:17 -05:00
Jonathan White
d3a424cc74 Correct window transitions from browser plugin
* Eliminated multiple state variables
* Fix #1643, window is brought to front
2019-02-05 16:09:17 -05:00
Jonathan White
ca39f6e159 Fix Yubikey detection in Database Settings/Wizard
* Fixes #2608
2019-02-05 16:09:17 -05:00
Jonathan White
c9f91b2de5 Various Windows Build Fixes
* Fix #1846, kdbx is registered to KeePassXC with
an icon (locked database icon)
* Fix #2489, OpenSSL and Crypto libraries are packaged
to support https connections
* Fix minor typo in KeeShare (missing "?")
2019-02-05 16:09:17 -05:00
Aetf
e60f4278f7 Fix group signals (#2670)
* Fix group not emitting signals when modified through copyDataFrom
* Fix Group::GroupData equals wrongly compares timeInfo
2019-02-01 17:03:28 -05:00
Jonathan White
42cfe01ad2 Fix WIX packaging with beta builds 2019-01-30 22:26:33 -05:00
Jonathan White
5a34f90319 Update translations
* Corrected use of QCoreApplication::translate -> QObject::tr
* Corrected plural usage in EntryAttachmentsWidget.cpp
2019-01-30 20:54:35 -05:00
Jonathan White
8bfc539234 Merge pull request #2659 from keepassxreboot/cmake_cleanup
Cleanup CMakeFiles and revert Dockerfile changes
2019-01-30 19:45:41 -05:00
Jonathan White
b56ef2b758 Fix typo in release-tool 2019-01-30 16:25:45 -05:00
Jonathan White
37f63406c4 Softer warning message for pre-release builds 2019-01-30 15:17:50 -05:00
Jonathan White
c8a99ee3a4 Revert commit c682b4 because it broke appimages 2019-01-30 15:03:07 -05:00
Jonathan White
21d1e981ca Cleanup CMakeFiles prior to release
* Remove Git revision finding code in favor of a simple command call: git rev-parse --short=7 HEAD
* Added GIT_HEAD_OVERRIDE to explicitly define the hash for the current commit in case git is not available 
* Made WIX default over NSIS in release tool 
* Rename version.h to git-info.h
2019-01-30 15:03:03 -05:00
Jonathan White
7f3ce65d96 Merge pull request #2610 from brainplot/performance-fixes
Performance fixes
2019-01-30 10:26:37 -05:00
Gianluca Recchia
0dac53df54 Restore formatting 2019-01-30 09:50:11 -05:00
Gianluca Recchia
c01e14c879 Wrap static literal strings with QStringLiteral
The strings in the deprecation map are never modified in the program and
they're known at compile time. An internal resizable buffer is not
needed for these strings so we can allocate them statically.
2019-01-30 09:50:11 -05:00
Gianluca Recchia
2cf837801d Avoid creation of temporary containers 2019-01-30 09:50:10 -05:00
Gianluca Recchia
39b96c13e8 Avoid copying QSharedPointers when not needed 2019-01-30 09:50:10 -05:00
Gianluca Recchia
6df9c6f9b2 Remove unused variable 2019-01-30 09:50:10 -05:00
Gianluca Recchia
ffea029001 Replace QMap with QHash when the key is a pointer
QHash gives faster lookups than QMap when the key is a pointer.
2019-01-30 09:50:10 -05:00
Gianluca Recchia
9a5bbea2e4 Use QFileInfo's exists() static method
The exists() static method is documented to be faster than its
equivalent member method.

See https://doc.qt.io/qt-5/qfileinfo.html#exists-1
2019-01-30 09:50:06 -05:00
Sami Vänttinen
891f67a1cd Select group when adding credentials from browser extension (#2637) 2019-01-30 09:48:22 -05:00
Weslly
779b529da2 Update checking feature (#2648)
* Check on startup (toggleable setting) and manually
* Option to check for pre-releases (eg, 2.4.0-beta1)
* Only included if WITH_XC_NETWORKING is enabled
2019-01-30 09:11:50 -05:00
Jonathan White
5c9b062f13 Remove redundant issue templates 2019-01-28 23:29:33 -05:00
Jonathan White
1989b86c60 Add release preview bug report & revert previous commit 2019-01-28 23:25:46 -05:00
Jonathan White
f8b21d8d16 Add release preview bug report template 2019-01-28 23:18:55 -05:00
Constantine Grantcharov
c682b48fb9 Refactoring of Dockerfile
- reorganized the libraries for better readability
- added logic to clean-up apt-cache after fetch inorder to shrink layer
size; in-line with Docker best practices
2019-01-28 22:46:42 -05:00
Louis-Bertrand Varin
d74c8a30db Update README after KeePassHTTP deprecation. 2019-01-28 22:40:44 -05:00
Jonathan White
1d24b52fa6 Allow for KDF seeds between 8 and 32 bytes
Correcting undocumented feature from KeePass2
Fixes #2581
2019-01-28 22:40:11 -05:00
Jonathan White
f446774605 Prevent use of wayland theme on Linux
* Wayland theme is buggy yet enforced by default
on Qt 5.11+ on Gnome desktop environment
* Resolves #2006
2019-01-28 22:39:20 -05:00
Jonathan White
7e1b16250c Performed project-wide code formatting
* Updated format CMake command to properly
ignore new directories and files
* Added output when command is run
* Resolves #2623
2019-01-28 22:38:59 -05:00
Jonathan White
c74664097b Fix crash when canceling save of new database (#2601)
* Fix crash when canceling save of new database
* Standardize use of DatabaseWidget::save() function
* Close new database tabs that are "discarded"
* Fixes #2604. autoSaveOnExit setting
* Re-implement autosave functionality
2019-01-25 07:20:39 -05:00
Sami Vänttinen
d66299260c Clearer error messages for KeePassXC-Browser (#2622) 2019-01-24 22:45:30 -05:00
Gianluca Recchia
395a88a5ef Prevent post-compilation Qt downgrades (#2576)
* Abort the app if a Qt downgrade is detected

The app will now exit immediately if it was compiled with a Qt version
higher than the one present on the machine.

* Add function for checking the Qt version at runtime

* Re-register global D-Bus menu only if DE is Unity
2019-01-24 22:45:05 -05:00
Jonathan White
b21936f94d Correct issues with issue templates 2019-01-21 20:54:45 -05:00
Jonathan White
1bb5a5794d Split issue templates into bug & feature request 2019-01-21 20:50:32 -05:00
AlexJoss
cbf92598e2 Add gui dialog when merge makes no changes (#2551)
* Add gui dialog when merge makes no changes
* Add gui dialog when merge makes changes
2019-01-21 14:28:37 -05:00
Sami Vänttinen
0da9efdbd4 Fix updating reference passwords from KeePassXC-Browser (#2218)
* Allow updating reference passwords

* Fix function change after refactor
2019-01-21 14:24:57 -05:00
Carlo Teubner
94430c300b CLI: fix missing check for correct credentials (#2629)
* CLI: fix missing check for correct credentials

Before this fix, most/all CLI commands had incorrect behaviour when bad
credentials were supplied: they would carry on regardless, with
potentially catastrophic results.  In particular, the "add" subcommand
seemed to corrupt the database.  "ls" would always report an empty
database.  Haven't tested any others.

Also fixed a related missing check specific to the "merge" subcommand.
2019-01-21 14:24:29 -05:00
Jonathan White
b59fd6d06a Merge pull request #2109 from hicknhack-software/feature/sharing_groups
Implement group synchronization feature
2019-01-19 10:03:21 -05:00
Jonathan White
18e234aefc Fixed storing trust of share and persistent message 2019-01-19 09:31:27 -05:00
Jonathan White
8c5da624e5 KeeShare code formatting and spelling correction 2019-01-18 23:22:04 -05:00
Jonathan White
9b4a680f7e Merge branch 'develop' into feature/sharing_groups 2019-01-16 22:54:36 -05:00
Jonathan White
a8e266129a Corrected formatting and cleanup 2019-01-16 22:53:29 -05:00
louib
726bbb2d94 We should output to stderr on EXIT_FAILURE (#2558)
Making sure we use stderr to output the help
message when there is an invalid number of
arguments, or when there's any error related
to the arguments.
2019-01-16 12:32:06 -05:00
boppybibbles
d09ca076dc Toolbar and tool buttons style. (#2357)
* Toolbar and tool buttons style.

- Add ability to change toolbar state and tool buttons style via
application settings widget.
- Save/restore toolbar state on app start/finish.
- Resolves #2343.

* Implicitly convert enum to QVariant
2019-01-16 11:04:32 -05:00
Sami Vänttinen
f8c6c9f72c Fix native hiding of macOS windows (#2583) 2019-01-16 11:03:54 -05:00
Carlo Teubner
d6ce6b85d5 Edit entry widget: password generator: fix flicker (#2584)
When using the password generator inside the Edit Entry screen and
clicking the 'Accept' button, a new password would briefly be shown
before the password generator was hidden (even though the original
generated password would be applied to the entry).

This issue was only visible when passwords were shown in plain text.

Note that this is purely a cosmetic issue.
2019-01-16 11:03:33 -05:00
Sami Vänttinen
b6bb2ca06a Fix macOS makefiles for cli and proxy (#2580) 2019-01-16 11:03:11 -05:00
sajolida
16d32c59ba Give visual feedback while starting (#2593)
Adds  StartupNotify to the .desktop file to provide proper launch feedback.
See freedesktop spec https://specifications.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html
2019-01-11 09:26:51 +01:00
Jonathan White
d11bb247b3 Simplify CMakeLists 2019-01-10 07:57:13 -07:00
Christian Kieschnick
c954c95da4 Fixed BulkFileWatcher multi signal problem
BulkFileWatcher emitted multiple file change signals (like
QFileSystemWatcher) for the watched files. Introduced a delay by waiting
until the end of the event loop to aggregate signals emitted by
QFileSystemWatcher before emitting custom signals.
2019-01-09 16:25:35 +01:00
Christian Kieschnick
a978880b0b Fixed QuaZip for windows, renaming
QuaZip should now usable under windows (fixed include in FindQuaZip)

Renamed the representation from secure and unsecure to signed and
unsigned
2019-01-07 12:02:21 +01:00
Christian Kieschnick
383b8b77eb Implemented feedback regarding build and ui
Changed build options to use only WITH_XC_KEESHARE and
WITH_XC_KEESHARE_SECURE - WITH_XC_KEESHARE_INSECURE remains as internal
variable to highlight differences (may allow to build schemes later)

Message widget in KeeShare settings for groups is not closeable anymore
2019-01-07 10:38:38 +01:00
Jonathan White
f46062cc4a Minor bug fixes and formatting 2019-01-06 11:06:41 -05:00
Christian Kieschnick
2bfe66e840 Another attempt to make GCC happy 2019-01-04 12:38:34 +01:00
Christian Kieschnick
51d63f0e83 Fixed GCC issues for const initialization
Fixed issues reported by GCC for initialization of const variables
2019-01-04 12:28:36 +01:00
Christian Kieschnick
b204451d06 More ci issues (missing initialize for const)
Fixed issues detected in TestSharing
2019-01-04 12:11:20 +01:00
Christian Kieschnick
6e25da6a19 Fixed issues detected by test suite and ci
Fixed serialization for KeeShareSettings::ScopedCertificate
Fixed tests for KeeShareSettings serialization
Fixed tests Cli features - tests translation for recycle bin since the
tests are executed with the system locale
Fixed initialization issue in ShareObserver
2019-01-04 12:04:46 +01:00
Christian Kieschnick
ba604390d2 Fixed ci builds
ubuntu:14.04 does not have quazip5 libraries in the standard repository, therefore only insecure builds are created using the ci server
2019-01-04 11:03:15 +01:00
Christian Kieschnick
080b02e9d5 KeeShare uses only one flag - checks for QuaZip
Changed flag for KeeShare to
* enable insecure sharing in all cases
* enable secure sharing if QuaZip was found
2019-01-04 09:33:00 +01:00
Christian Kieschnick
3d02013513 Changed KeeShareSettings to explicitly ask
KeeShareSettings now allow to trust, untrust or ask on next import from
a specific publisher with a specific container
2019-01-03 18:22:41 +01:00
Christian Kieschnick
2e18388825 Fixed bug in FileWatcher, improved unsafe sharing
BulkFileWatcher didn't recognize added files in observed directory

Improved UI for unsecured sharing only (hide certificate ui, added
warnings and adjusted indicators)
2019-01-03 17:50:36 +01:00
Christian Kieschnick
d4c391deb2 Splitted KeeShare into secure and insecure parts
KeeShare is now supported in a secure and insecure flavor (set
CMake-Flags accordingly to allow or disallow the corresponding import
and exports)
2019-01-03 10:05:08 +01:00
Christian Kieschnick
52dcc2855e Fixed signal slot connections
Fixed connection to renamed CustomData::customDataModified() signal
Fixed connection to renamed Database::databaseModified() signal
Fixed connection to renamed Group::groupModified() signal
2019-01-02 09:14:34 -05:00
Jonathan White
21de6f6163 Merge branch 'develop'
Conflicts:
	src/core/Tools.cpp
	src/sshagent/SSHAgent.cpp
2018-12-30 16:32:57 -05:00
JTL
dd5665c656 Multiple macOS fixes and include keepassxc-cli in DMG (#2165)
* Fixes including keepassxc-cli when building KeePassXC dmg on Mac.
resolves #1697
* Fix Qt search path and Properties display on macOS
* Simplify packaging POST_BUILD fixups
* Various fixes to get cli to run on macos
* Correct cli tests on macOS
* Several macOS related GUI test fixes
2018-12-28 18:32:25 -05:00
Jonathan White
b96b86bfa7 Cleanup and replumb back to functional state 2018-12-28 17:54:52 -05:00
George Shakhnazaryan
b1ff346f63 Allow Enter key to select recent DB on OS X
* Override `keyPressEvent`on WelcomeWidget on OS X to `openDatabaseFromFile`.

openDatabaseFromFile is already invoked via the QListWidget::itemActivated signal,
  but this signal doesn't fire on OS X for Enter.
QListWidget::itemActivated activates on an OS specific activation key. [1]
On Windows/X11, this is Enter, which lets the user easily
  navigate with just the keyboard.
On OS X, this is Ctrl+O, which is already bound to Open Database. This means that itemActivated cannot fire via the keyboard.

Per StackOverflow [2], the recommended solution is to catch
the enter/return key press manually.

This seems like a common problem with Qt. [3] [4]

[1] https://doc.qt.io/archives/qt-4.8/qlistwidget.html#itemActivated
[2] https://stackoverflow.com/questions/31650780/when-does-a-qtreeview-emit-the-activated-signal-on-mac
[3] https://forum.qt.io/topic/36147/pyside-itemactivated-not-triggered-on-mac-os-x-with-return-key
[4] https://github.com/dolphin-emu/dolphin/pull/6099
2018-12-25 16:00:02 -05:00
Toni Spets
c34b0069ff SSH Agent: Add support for OpenSSH for Windows (#1994)
* Fixed missing includes in Bootstrap.cpp
2018-12-25 14:28:02 -05:00
varjolintu
5488f1bfc3 Switch browser integration to use native raising of windows 2018-12-24 18:17:56 -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
Kyle Kneitinger
4d4c839afa Customize buttons on MessageBox and confirm before recycling (#2376)
* Add confirmation prompt before moving groups to the recycling bin

Spawn a yes/no QMessage box when "Delete Group" is selected on a group
that is not already in the recycle bin (note: the prompt for deletion
from the recycle bin was already implemented).  This follows the same
pattern and language as entry deletion.

Fixes #2125

* Make prompts for destructive operations use action words on buttons

Replace yes/no, yes/cancel (and other such buttons on prompts that cause
data to be destroyed) use language that indicates the action that it is
going to take. This makes destructive/unsafe and/or irreversible operations
more clear to the user.

Address feedback on PR #2376

* Refactor MessageBox class to allow for custom buttons

Replaces arguments and return values of type QMessageBox::StandardButton(s)
with MessageBox::Button(s), which reimplements the entire set of
QMessageBox::StandardButton and allows for custom KeePassXC buttons,
such as "Skip". Modifies all calls to MessageBox functions to use
MessageBox::Button(s).

Addresses feedback on #2376

* Remove MessageBox::addButton in favor of map lookup

Replaced the switch statement mechanism in MessageBox::addButton with
a map lookup to address CodeFactor Complex Method issue. This has a
side-effect of a small performance/cleanliness increase, as an
extra QPushButton is no longer created/destroyed (to obtain it's label
text) everytime a MessageBox button based on QMessageBox::StandardButton
is created; now the text is obtained once, at application start up.
2018-12-19 23:14:11 -05:00
louib
8ac9d0a131 Add create command to keepassxc-cli (#2540)
* Add tests for CLI::Create
2018-12-19 23:10:46 -05:00
Jonathan White
9e2be34897 Merge branch 'develop'
Conflicts:
	CMakeLists.txt
	cmake/CLangFormat.cmake
	snapcraft.yaml
	src/CMakeLists.txt
	src/core/Database.cpp
	src/core/Database.h
	src/core/Tools.cpp
	src/crypto/CryptoHash.h
	src/crypto/ssh/ASN1Key.h
	src/crypto/ssh/OpenSSHKey.cpp
	src/format/Kdbx4Reader.cpp
	src/gui/DatabaseTabWidget.cpp
	src/gui/DatabaseTabWidget.h
	src/gui/DatabaseWidget.cpp
	src/gui/DatabaseWidget.h
	src/gui/DetailsWidget.cpp
	src/gui/DetailsWidget.ui
	src/gui/EditWidgetProperties.cpp
	src/gui/EntryPreviewWidget.cpp
	src/gui/EntryPreviewWidget.ui
	src/gui/FileDialog.cpp
	src/gui/dbsettings/DatabaseSettingsDialog.cpp
	src/gui/dbsettings/DatabaseSettingsDialog.h
	src/gui/group/EditGroupWidget.cpp
	src/gui/group/EditGroupWidget.h
	src/sshagent/ASN1Key.h
	src/sshagent/OpenSSHKey.cpp
	src/sshagent/SSHAgent.cpp
	tests/CMakeLists.txt
2018-12-18 22:28:56 -05:00
varjolintu
a070f1bce7 Handle retrieving credentials from HTTP Basic Auth 2018-12-11 15:34:32 -05:00
louib
cb3c4893dc Move unlockDatabase to CLI/Utils (#2539)
Move unlockDatabase from Database to to cli/Utils
2018-12-11 16:49:51 +01:00
Carlo Teubner
b6eeabab5e KeePass2Reader: fix error message logic (#2523) 2018-12-02 10:05:54 -05:00
Carlo Teubner
bdee748a6a Make Entry::m_tmpHistoryItem a QScopedPointer (#2524)
* Make m_tmpHistoryItem a QScopedPointer

Most of the time, `m_tmpHistoryItem` should be null by the time an
`Entry` is destroyed. However, if a caller ever calls `beginUpdate()`
without later calling `endUpdate()` -- perhaps because an exception was
throw in the meantime -- it may not be null. This change avoids a memory 
leak in that case.

Found via https://lgtm.com/projects/g/keepassxreboot/keepassxc/alerts
2018-12-01 16:08:55 -05:00
Carlo Teubner
1af293847c LayeredStream dtor: fully qualify 'close()' call
`close()` is a virtual function. Since we are calling it from a
destructor, make it clear that we are specifically calling the base
class (`QIODevice`) implementation, as opposed to an implementation in
any derived class.

[Found by lgtm.com](https://lgtm.com/projects/g/keepassxreboot/keepassxc/alerts)
2018-12-01 14:07:10 -05:00
Janek Bevendorff
9be538a5f6 Update translations from Transifex 2018-12-01 10:54:55 +01:00
Jonathan White
294188dea1 Fix typo in EditEntryWidget after code cleanup #2 2018-11-28 21:51:57 -05:00
Jonathan White
c66f293f1e Merge pull request #2443 from brainplot/code-cleanup
Code cleanup and performance improvements - Part 2
2018-11-28 20:03:33 -05:00
Gianluca Recchia
e81841550b Correct checks for containers' emptiness 2018-11-28 18:29:15 -05:00
Gianluca Recchia
fc930bae69 Restore correct formatting
Many lines were not conformant with the project's formatting rules.
This patch should fix all formatting and whitespace issues in the code
base.
A clang-format directive was put around the connect() calls containing
SIGNALs and SLOTs whose signatures would be denormalized because of the
formatting rules.
2018-11-28 18:29:15 -05:00
Gianluca Recchia
f9625189cb Fix typo in parameter name
A typo in a parameter name caused an inconsistency between declaration
and definition of a function.
2018-11-28 18:29:14 -05:00
Gianluca Recchia
a9fa8915d9 Use QVariant::toUrl() instead of QVariant::value<QUrl>() 2018-11-28 18:29:14 -05:00
Gianluca Recchia
9d106d6bfc Remove unused variables 2018-11-28 18:29:13 -05:00
Gianluca Recchia
b39522f874 Avoid allocating temporary containers 2018-11-28 18:29:05 -05:00
louib
49b82ea6a2 Global const for KeyFileOption (CLI) (#2505) 2018-11-28 16:15:15 -05:00
Jonathan White
1a2721529d Correct simultaneous saving with Yubikey
* Move mutex lock to right before challenge call and wait for up to 1 second for unlock
* Fix bug where ALREADY_RUNNING was interpreted as success and causing database corruption
2018-11-28 16:14:17 -05:00
Jonathan White
d84ba23c81 Correct refactor issues with entry selection and search (#2518)
* Align entryview selection change signals with groupview
* Eliminate redundent and confusing signals/slots
* Correct group selection canceling search
2018-11-28 16:13:56 -05:00
louib
fff0f11b33 Adding --quiet option to the CLI. (#2507) 2018-11-28 11:24:12 -05:00
Lantizia
4e49de1afb Ability to set 7-digit TOTP codes from the UI (#2517) 2018-11-28 11:23:06 -05:00
Jonathan White
a67cac1322 Address comments 2018-11-24 17:31:20 -05:00
Jonathan White
4aab93084a Update Github templates 2018-11-24 17:31:20 -05:00
Kyle Kneitinger
a90a577ee1 Add favicon fetch button next to entry's url edit textbox (#2439)
When WITH_XC_NETWORKING is defined, create a QToolButton beside the Edit Entry -> Entry -> URL, which when pressed, acts as though the Edit Entry -> Icon -> Download Favicon button is pressed.  This button is disabled (grayed-out) when the URL text is empty, and enabled when the text is present.

Fixes #936

* Add favicon download button 
* Remove the progress dialog that appears when
downloading an entry's URL's favicon since (when working correctly) it disappears before it can be read. When downloading icons from the button
located next to the URL text box, display a message panel that confirms the download was a success.

* Do not show successful icon download msg if icon alread exists
2018-11-24 17:30:55 -05:00
Janek Bevendorff
3c362ac822 Refactor DatabaseOpenWidget/Dialog and Auto-Type Database unlocking.
This patch removes redundant lock widget members of the DatabaseWidget
and consolidates all unlocking functionality into a single
DatabaseOpenWidget (with the exception of KeePass1OpenWidget).
Distinction between different unlock actions is now done via a dedicated
Intent enum class instead of using individual widgets.

Further, the DatabaseUnlockDialog has been generalized so that it is
usable for unlock intents other than just Auto-Type and is now also
used for merging databases which is less confusing to the user.

The KeePassXC main window is no longer a parent of the
DatabaseUnlockDialog and has the Qt::ForeignWindow flag set, which
should cause fewer issues with Auto-Type trying to type into KeePassXC
after unlock instead of the intended target window.

In addition, its instance has been moved into the DatabaseTabWidget
class so that it is no longer bound to individual DatabaseWidgets,
potentially allowing for database selection during Auto-Type. The actual
selection has not yet been implemented, but Auto-Type has been adjusted
to use the currently selected tab instead of the first one as an
intermediary improvement.
2018-11-24 15:51:05 +01:00
Jonathan White
ff7191eef3 Re-implement AutoOpen functionality after refactor (#2504)
The database refactor in #2491 removed auto-open functionality.
2018-11-23 19:24:59 +01:00
Janek Bevendorff
785a64cc3b Fix bugs introduced by database refactor #2491 (#2503)
* Fix SSHAgent identity removal on database lock
* Refactor storage and manipulation of SSHAgent keys to streamline process with multiple db's
* Clear password field when widget is hidden, resolves #2502
2018-11-23 07:49:55 -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
Jonathan White
917c4cc18b Merge pull request #1797 from keepassxreboot/feature/better-search
Implement advanced search
2018-11-17 11:51:27 -05:00
Jonathan White
340076974e Correct logic error in EntrySearcher and add more tests 2018-11-17 09:55:57 -05:00
Jonathan White
880c3aeb34 Add search help pop-up
* Support ! modifier (same as '-')
* Create reusable PopupHelpWidget as self-contained popup that can
be positioned around a parent widget and will follow the movement
and sizing of the window
* Eliminated KEEPASSXC_MAIN_WINDOW macro and replaced with
getMainWindow() function
* Add tests to cover search help show/hide
2018-11-17 09:04:15 -05:00
Jonathan White
d6ffee5e99 Implement search auto-clear and goto group
* Search clears if the search box does not have focus for 5 minutes (fixes #2178)
* Goto group from search results after double clicking the group name (fixes #2043)
2018-11-17 09:02:36 -05:00
Jonathan White
4b983251cb Add advanced search term parser
* Support quoted strings & per-field searching
* Support regex and exact matching
* Simplify search sequence
* Make search widget larger
* Add regex converter to Tools namespace
2018-11-17 08:49:50 -05:00
Jonathan White
4b57fcb563 Clean up Entry Model/View code 2018-11-17 08:49:47 -05:00
Jonathan White
d8d758f0e1 Streamlined searcher code
* Remove searching of group title and notes
* End search when selecting a new group
* Correct entry searcher tests to align with new code
2018-11-17 08:49:02 -05:00
Jonathan White
a5e7da67d8 Correct CI badges in readme 2018-11-17 08:28:23 -05:00
Jonathan White
ee9c71e11e Fix multiple issues with entries and keyboard shortcuts (#2431)
* Cleanup entry change notification with entryview focus in/out
* Change Open URL shortcut to CTRL+SHIFT+U to conform with an "action" 
including SHIFT
* Change Copy URL shortcut to CTRL+U to conform with "copy" without SHIFT
* Entry specific toolbar and menu items are disabled unless the entry
row has focus (prevents unintended actions)
* Reword security setting for password visibility in entry edit view
* Add shortcut to hide/unhide usernames (CTRL+SHIFT+B)
* Organize entry menu

* Fix #1588 - show keyboard shortcuts in context menu
* Fix #2403 - Change auto-type shortcut to CTRL + SHIFT + V
* Fix #2096 - Add (CTRL+F) to search bar background
* Fix #2031 & Fix #2266 - add shortcut to hide/unhide passwords (CTRL+SHIFT+C)
* Fix #2166 - Add reveal password button to entry preview
2018-11-16 10:00:59 -05:00
louib
f06742cf41 CLI Merge: Only save database file when modified. (#2466)
* Merge: detect if database was changed.
* Adding unit test.
* Only saving on change.
2018-11-09 21:59:16 -05:00
Felix Fontein
a7dd9f19f4 CLI: add commands to show and copy TOTP to clipboard (#2454)
* Add CLI commands show --totp and totp-clip for handling TOTPs, resolves #2429.
* Adding tests for new CLI TOTP commands
* Update keepassxc-cli man page.
2018-11-09 21:58:42 -05:00
varjolintu
91bccf75d5 Include older settings type to conversion 2018-11-09 19:17:28 -05:00
louib
c339470496 Updating CLI man page authorship (#2456) 2018-11-09 19:15:50 -05:00
louis
b1d481893e Adding tests for modified signal on merge. 2018-11-09 19:15:15 -05:00
Weslly
d7f5a15f68 Add missing header to cmakelists when building without YubiKey 2018-11-09 19:14:43 -05:00
louib
91160c5f36 Document list -R option. 2018-11-09 19:10:16 -05:00
louis
156b480f93 Better error message for invalid db file 2018-11-09 19:09:55 -05:00
Jonathan White
82bf00de73 Merge pull request #2433 from brainplot/code-cleanup
* Remove redundant headers from the build system
* Pin AutoTypeAction's vtable to a translation unit
* Remove redundant check for the version flag
* Improve performance of a few for-loops
* Replace old for-loops with range-based for-loops
* Remove redundant null-checks for pointer deletion 
* Reduce QString::arg function call overhead
* Reduce number of unneeded copies when calling functions
* Enhance readability when accessing static members 
* Convert to nullptrs where necessary
* Reduce unnecessary copies using std::move
* Normalize signature of SIGNAL() and SLOT()
* Add missing `override` keyword for some member functions which override functions of their base class
2018-10-31 13:32:21 -04:00
Gianluca Recchia
e06eae423e Add missing 'override' for overridden functions 2018-10-31 15:16:04 +01:00
Gianluca Recchia
0f604aa8c7 Normalize signature of SIGNAL() and SLOT()
See https://stackoverflow.com/q/18091058/6335279
2018-10-31 15:16:04 +01:00
Gianluca Recchia
379c41d20c Reduce unnecessary copies using move semantics 2018-10-31 15:16:04 +01:00
Gianluca Recchia
896a66e6d8 Improve readability and type-safety
Use nullptr instead of 0 or NULL to initialize a null pointer. In some
cases, readability was enhanced by replacing 0 with more meaningful
values according to the type of the pointer being initialized.
2018-10-31 15:16:04 +01:00
Gianluca Recchia
7208635502 Enhance readability when accessing static members
The sole purpose of a few objects was calling a static member of the
class they belonged to. This is not needed, as you can access a static
member with the <class_name>::<member_name> notation.
2018-10-31 15:16:04 +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
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
18fd20f898 Remove redundant null-checks for pointer deletion
Deleting a null pointer is defined behavior and results in a no-op at
the assembly level, so it's perfectly safe.
2018-10-31 14:23:06 +01:00
Gianluca Recchia
4ac1601696 Replace old for-loops with range-based for-loops 2018-10-31 14:23:06 +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
Gianluca Recchia
e2ee82169c Remove redundant check for the version flag
Just a couple lines above, the application would already exit if the
version option is set. This extra check is not needed.
2018-10-31 14:19:01 +01:00
Gianluca Recchia
7a823e8dc7 Pin AutoTypeAction's vtable to a translation unit
AutoTypeAction class had no out-of-line definitions and because of this
the compiler would place its vtable everywhere the class is used.
By simply defining the virtual destructor in the .cpp file, the issue
goes away.

Also, a few classes derived from AutoTypeAction had missing 'override'
qualifiers, which have now been added.
2018-10-31 14:19:01 +01:00
Gianluca Recchia
09fbb6d35a Remove redundant headers from the build system
Headers are not to be placed amongst the source files in the CMake
script. The preprocessor and the linker will take care of glue all the
files together. Also, the "include_directories()" statement at the top
of the file already tells CMake where to look for all the needed
header files.
2018-10-31 14:19:01 +01:00
st-sloth
4ae5ddf80f Add more expiration presets 2018-10-30 11:09:08 -04:00
hidden by cloudflare
2ad8036823 Added Linux, MacOS, and Windows support for Tor Browser. (#2387)
Add path for native-messaging-hosts on Linux, Windows, and macOS for Tor Browser
2018-10-30 11:07:59 -04:00
Darwin Shameran
5bf4f51389 Don't obscure password field after invalid password attempt if setting is off (#2353) 2018-10-30 09:16:49 -04:00
Gianluca Recchia
4e1d3bfd73 Extract the OS event filter implementation (#2422) 2018-10-30 08:46:12 -04:00
Jonathan White
fa687f246e Fix issues with group functions (#2410) 2018-10-30 08:42:35 -04:00
Janek Bevendorff
7263dcddfe Fix stdin/stdout encoding on Windows. (#2425)
QTextStream uses the system default locale, but this breaks in
various situations: (1) It does not work on the native Windows shell
(cmd.exe, Powershell), since the default Windows locale is Windows-1252,
but the shell uses Windows-850. (2) It also breaks on *nix systems where
the locale is Latin1 or C, which is the case for most CI systems or
build servers.

We allow overriding the detected codec by setting the ENCODING_OVERRIDE
environment variable, but otherwise prefer Windows-850 on Windows and
UTF-8 on any other system, even if LANG is set to something else.

This resolves #2413
2018-10-28 19:55:00 +01:00
Nathan Merritt
c9cab250c7 Only check for scheme matches when an entry has a scheme (#2426) 2018-10-28 13:51:20 -04: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
Sami Vänttinen
efdb43dc53 Browser connection keys and rules are stored in custom data instead of attributes (#1497) 2018-10-24 10:49:53 -04:00
Kyle Kneitinger
cfa1eca249 Make preview panel expiration date use local time (#2382)
Adds call to toLocalTime() to convert expiration date string
to correct timezone instead of UTC, which matches the date string
in the database view.
2018-10-24 08:11:58 -04:00
Kyle Kneitinger
d990f12f56 Convert preview panel close button from checkbox to momentary (#2384)
The {group,entry}CloseButton QToolButton, had the "checkable" property set.
This caused it to act like a toggle flip flop instead of a momentary push
button.  After removing that property, the signal it was changed to use
was clicked() instead of toggled(bool).  Trigger upon click is
consistent with the rest of the UI's momentary buttons.
2018-10-24 08:11:18 -04:00
Gianluca Recchia
1d9f46ebc5 Fix the position of the Q_REQUIRED_RESULT macro (#2411)
The Q_REQUIRED_RESULT macro was appended to a few method declarations.
It should've been prepended instead.
2018-10-24 08:09:12 -04:00
Chih-Hsuan Yen
6ea869bb18 Replace all .svgz in paths to .svg (#2405) 2018-10-24 08:08:37 -04:00
Sami Vänttinen
5c92082f7c Add warning message to browser integration settings when keepassxc-proxy is not found (#2396) 2018-10-23 09:03:18 -04:00
Janek Bevendorff
b45f0e3e46 Enable high-DPI scaling to support 4k screens.
This enables coordinate system scaling for high-DPI
displays, which enforces correct proportions even
on small 4k displays. The icons are scaled up without
interpolation, which makes them crisp, but a bit
pixelated. A new scalable icon set will solve this
problem, but is not scope of this patch.

Resolves #548, #1381, #1710, #1888

In addition, this patch enforces the KeePassXC icon
theme for the KMessageBox close icon, since using
the system theme produces very ugly icons on some
Linux systems.
2018-10-21 20:34:46 +02:00
Jonathan White
a44138dd5c Multiple fixes to MainWindow and some cleanup
* Fix MainWindow startup when minimize to tray was enabled
* Reduce duplicate code in DatabaseWidget.cpp
* Fix snapcraft build dependencies
* Add support for CTRL+TAB, CTRL+PGUP, CTRL+SHIFT+TAB, CTRL+PGDN to control database tabs from any focus location
* Add CTRL+SHIFT+M shortcut to minimize to tray
* Allow minimize instead of app exit without tray icon
2018-10-20 15:30:48 +02:00
Jonathan White
c749f7018e Merge pull request #2351 from keepassxreboot/feature/coverage
Improve test coverage, reformat CMakeFiles, and cleanup CLI
2018-10-19 19:44:36 -04:00
Janek Bevendorff
77adbef401 Reformat CMakeLists.txt files 2018-10-19 22:16:44 +02:00
Janek Bevendorff
0ca7fd369a Implement review feedback 2018-10-19 22:16:44 +02:00
Janek Bevendorff
bea31f9bcc Rename TestClock to MockClock and move it to the mock directory 2018-10-19 21:49:55 +02:00
Janek Bevendorff
108e4efc8a Fix tests on Windows 2018-10-19 21:49:55 +02:00
Janek Bevendorff
113c8eb702 Add CLI tests and improve coding style and i18n
The CLI module was lacking unit test coverage and showed some severe
coding style violations, which this patch addresses.

In addition, all uses of qCritical() with untranslatble raw char*
sequences were removed in favor of proper locale strings. These are
written to STDERR through QTextStreams and support output
redirection for testing purposes. With this change, error messages don't
depend on the global Qt logging settings and targets anymore and go
directly to the terminal or into a file if needed.

This patch also fixes a bug discovered during unit test development,
where the extract command would just dump the raw XML contents without
decrypting embedded Salsa20-protected values first, making the XML
export mostly useless, since passwords are scrambled.

Lastly, all CLI commands received a dedicated -h/--help option.
2018-10-19 21:49:54 +02:00
Janek Bevendorff
18b22834c1 Update and fix test coverage report generation
Generation of unit test coverage reports used to be quite complicated
and required a lot of different settings, including a custom CMake
build type. This patch updates the coverage CMake module to only
require -DWITH_COVERAGE=ON to be set on a normal Debug build in order
to create a coverage target.

This patch also moves away from lcov in favor of gcovr, since lcov appears
to be broken in GCC 8. However, the routines for generating lcov reports
still exist, so provided lcov receives updates and there is sufficient
reason to switch back, it is easy to do so.
2018-10-19 21:45:53 +02:00
Sami Vänttinen
b8d2d5d877 Choose database for saving or updating entries from KeePassXC-Browser (#2391) 2018-10-19 14:44:08 -04:00
Adolfo E. García
bb16dc6d01 Add QR code generator for TOTP export (#1167)
* Resolves #764
* Add libqrencode and qtsvg dependencies 
* Ensure QR code remains square
* Auto-close QR code dialog when database is locked
* Add databaseLocked() Signal to databaseWidget
* Correct otpauth URI output in Totp::writeSettings(...)
2018-10-19 14:42:49 -04:00
varjolintu
80749958b7 Fix checking subdomains 2018-10-18 08:14:42 -04:00
林博仁(Buo-ren, Lin)
d3069eb734 Add Git tracking ignore rules for snapcraft
This patch implements gitignore(5) rules for snapcraft, this prevents
snap build artifacts from listed as untracked files.

[ci skip]
2018-10-16 14:27:31 -04:00
Jake Howard
ca328242bc Don't show application if we're only showing the help / version 2018-10-14 16:20:28 -04:00
Kyle Kneitinger
265325057a Create config file deprecation mechanism & rename Details->Preview (#2371)
Rename UI elements involved with the bottom preview panel to use the
terminology "entry preview panel" instead of "details view" or "preview
panel". Change all associated variables, widgets, and classes to
reference EntryPreviewPanel. Create Config::upgrade() function and
deprecation mapping to help rename/remove previous config settings in a
clean manner.

Fixes #2327
2018-10-08 21:11:44 -04:00
vi-n
4ff63c2bf5 Add a CLI option to list elements recursively (#2345) 2018-10-03 19:18:34 +02:00
Jonathan White
66a36b3af1 Add WITH_APP_BUNDLE to INSTALL.md 2018-10-03 10:12:19 -04:00
Sami Vänttinen
aa7216b9d9 Fix TouchID compiling on macOS (#2332)
Pull request #1952 introduced a compilation error on macOS due to missing header includes.
2018-10-03 14:16:32 +02:00
Christian Kieschnick
28e7540096 Update ci files
* Removed libquazip-headers from trusty ci images
Trusty does not provide libquazip-headers (they are part of
libquazip-dev most likely)
* Bump rebuild counter
2018-10-01 10:51:13 -04:00
Michael Starke
1a42c58975 Add documentation for sharing groups
* Add Sharing section to Quickstart Guide
* Add pictures and text in quickstart to match extended functionality
2018-10-01 10:39:53 -04:00
Christian Kieschnick
eca9c658f4 Add sharing of groups between databases
* Add source folder keeshare for sharing with corresponding define WITH_XC_KEESHARE
* Move common crypto parts to src/crypto/ssh
* Extended OpenSSHKey
* Move filewatching to own file (currently in two related classes DelayedFileWatcher and BulkFileWatcher)
* Small improvements for style and code in several classes
* Sharing is secured using RSA-Keys which are generated on demand
* Publisher signs the container using their private key
* Client can verify the signed container and choose to decline an import,
import only once or trust the publisher and automatically import all
data of this source henceforth
* Integration of settings into Group-Settings, Database-Settings and Application-Settings
* Introduced dependency QuaZip as dependency to allow combined export of
key container and the (custom format) certificate
2018-10-01 10:39:37 -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
Darwin Shameran
b40e5686dc Add option to not show password placeholder when field is empty (#2333)
* Add option to not show password placeholder when field is empty
* Set the option to show an empty passwd field instead of dots to true by default
2018-09-29 07:44:23 -04:00
Janek Bevendorff
a4c6529d60 Migrate to linuxdeploy for building AppImages
AppImage recipes are the legacy method for building AppImages, whereas
linuxdeploy is meant to replace them. It takes care of finding and
deploying all needed libraries and Qt plugins automagically, but it's
still under heavy development, so some manual work using appimagetool
and a few fixes are required to make it work for KeePassXC.

This patch moves building of AppImages directly into the release-tool,
both as a separate module (release-tool appimage) as well as a flag
(--appimage) for the build module. The release and CI Dockerfiles were
updated accordingly to support the new build process. The release
Dockerfile also received a Qt update to version 5.10.1.

In theory, it is now possible to use release-tool appsign for embedding
PGP signatures into AppImages, but it fails in practice due to ELF
header size limitations.
2018-09-29 13:12:09 +02:00
vasporig
61d7e6bc6c Do polling based file watching for NFS on linux, resolves #1799 2018-09-25 21:25:52 -04:00
Weslly
44c9469221 Remove obsolete database repair feature 2018-09-25 21:20:47 -04:00
Kyle Kneitinger
d4112fe2bf Use length of existing password for the password generator (#2318)
Add optional length parameter to PasswordGeneratorWidget::reset()
(default=0), which when >0 sets the legth SpinBox's value to the value
passed in. The EditEntryWidget already called reset() when the password
was known, so the current length was just added to this call (accounts
for empty passwords)

If entry edit is cancelled, return the password generator length to the
application default or last committed length if available. This is done
by calling reseting the password generator in EditEntryWidget::cancel()
when the edit page is being closed

Fixes #2180
2018-09-25 20:44:19 -04:00
William Gathoye
e7c5e17a8e Convert all svgz to svg (#2113) 2018-09-25 16:12:47 -04:00
Janek Bevendorff
5295a68906 Enable color output in Docker images 2018-09-25 21:12:47 +02: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
Janek Bevendorff
e4ded388b4 Merge pull request #2317 from fishman/develop
Fix icons not using default theme
2018-09-23 18:43:04 +02:00
Reza Jelveh
cbe81d2d1b Fix icons not using default theme
KeepassXC tries to load the theme icon first and then falls back to the internal icon unless the check is explicitely disabled. Remove the check from most icons

Fixes #756
2018-09-22 21:29:09 +02:00
Weslly
f8b997bcf4 Add support for opening file:// urls (#2311)
* Add support for opening file:// urls
* Open file urls without file:// scheme
2018-09-20 23:49:56 -04:00
Kyle Kneitinger
341635f6bd Replace Google with DuckDuckGo as the optional fallback favicon fetcher (#2309)
* Replace Google with DuckDuckGo for optional fallback favicon fetch URL
Modify the work initially done in #36, and most recently modified in #1786,
to use DuckDuckGo's https://icons.duckduckgo.com/ip3/www.example.com.ico
favicon endpoint.

Fixes #2258

* Close failed favicon fetch progress bars

Name the UrlFetchProgressDialog() with the corresponding URL in order to
be identified by name by its parent when the failed request is handeled
in EditWidgetIcons::fetchFinished(). fetchFinished() retrieves the
relevant UrlFetchProgressDialog() and calls close() on it.

Fixes: #2265
2018-09-20 21:52:51 -04:00
Jonathan White
a64d2ec716 Revert appveyor addition and DeployQt cmake 2018-09-19 12:25:39 -04:00
Gianluca Recchia
f1a13a1f2b Remove duplicate statement from CMakeLists.txt 2018-09-18 22:50:56 -04:00
mosin
1a9511da29 Update INSTALL.md (#2299)
* add build option for SSH Agent
2018-09-18 22:45:44 -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
Max Kolhagen
d9fcdd2920 Add TouchID support on macOS 2018-09-18 22:42:05 -04:00
Jonathan White
5aeb30e845 Merge pull request #2249 from keepassxreboot/fix/snapcraft-build
Snapcraft update and bump to 2.4.0-preview
2018-09-18 10:43:04 -04:00
Jonathan White
c8f18e49f1 Disable Wayland due to Qt bug
https://forum.snapcraft.io/t/problem-launching-qt-snaps-in-wayland/7055/5
2018-09-16 10:28:39 -04:00
Jonathan White
4ce42fa6d4 Bumped version number to 2.4.0-preview 2018-09-16 10:28:39 -04:00
Jonathan White
c88390e3be Support building snaps on Ubuntu 18.04 and Launchpad 2018-09-16 10:28:34 -04:00
Jonathan White
c0aa1ef145 Merge pull request #2284 from keepassxreboot/refactor/static-init
Refactor browser settings and TOTP
2018-09-16 08:29:51 -04:00
Jonathan White
823a916220 Fix TOTP epoch time; add null checks for settings 2018-09-15 17:08:39 -04:00
Jonathan White
1dc9f10c7f Complete refactor of TOTP integration
* Eliminate TOTP logic from GUI elements
* Consolidate TOTP functionality under the Totp namespace
* Eliminate guessing about state and encoders
* Increased test cases
* Add entry view column for TOTP [#2132]
* General code cleanup, reduction of unnecessary steps, separation of concerns
* Rename SetupTotpDialog to TotpSetupDialog for consistency
2018-09-15 12:10:26 -04: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
53a17c2355 Reduce use of static vars in browser plugin
* Convert BrowserSettings into instanced class
* Moved HostInstaller init into class constructor
2018-09-15 12:10:15 -04:00
varjolintu
57e60681f2 Fix Match URL scheme setting 2018-09-11 09:49:33 -04:00
Michal
7592f40de2 Some Python code improvements (#2264)
* Usage of "enumerate()" with start parameter
* Use the with keyword when dealing with file objects
According to: https://docs.python.org/3.6/tutorial/inputoutput.html
* String format using ".format()"
* Chained comparisons are faster than using the "and" operator
2018-09-02 18:31:00 -04:00
TheZ3ro
08a36b4d40 Prevent Klipper from storing secrets in clipboard history (#1969) 2018-08-29 11:13:55 -04:00
Jonathan White
ca27fb06d5 Merge branch 'master'
Conflicts:
	INSTALL.md
	release-tool
	src/browser/BrowserOptionDialog.cpp
	src/browser/BrowserService.cpp
	src/browser/BrowserService.h
	src/browser/NativeMessagingBase.h
	src/browser/NativeMessagingHost.h
	src/core/Uuid.cpp
	src/gui/DatabaseTabWidget.cpp
	src/gui/DatabaseWidget.cpp
	src/gui/EditWidget.cpp
	src/gui/MainWindow.cpp
	src/gui/MainWindow.ui
	src/proxy/NativeMessagingHost.h
	src/sshagent/ASN1Key.cpp
2018-08-24 09:42:38 -04:00
Janek Bevendorff
8b5530d2ba Merge pull request #2229 from keepassxreboot/feature/fix-release-tool-build
Fix --snapcraft flag
2018-08-23 20:41:23 +02:00
Janek Bevendorff
a19895850c Fix --snapcraft flag 2018-08-23 19:14:52 +02:00
Jonathan White
6fe821c30e Release 2.3.4
- Show all URL schemes in entry view [#1768]
- Disable merge when database is locked [#1975]
- Fix intermittent crashes with favorite icon downloads [#1980]
- Provide potential crash warning to Qt 5.5.x users [#2211]
- Disable apply button when creating new entry/group to prevent data loss [#2204]
- Allow for 12 hour timeout to lock idle database [#2173]
- Multiple SSH Agent fixes [#1981, #2117]
- Multiple Browser Integration enhancements [#1993, #2003, #2055, #2116, #2159, #2174, #2185]
- Fix browser proxy application not closing properly [#2142]
- Add real names and Patreon supporters to about dialog [#2214]
- Add settings button to toolbar, Donate button, and Report a Bug button to help menu [#2214]
- Enhancements to release-tool to appsign intermediate build products [#2101]
2018-08-22 11:25:04 -04:00
Jonathan White
b0812c2235 Update translations 2018-08-22 11:24:55 -04:00
Jonathan White
d6cae74176 Release 2.3.4 version bump
* Corrects INSTALL.md build instructions for Windows (#2126)
* Rephrase Qt 5.5.x warning to include on-screen keyboard combo
2018-08-22 11:23:18 -04:00
Jonathan White
67304c71a0 Enhancements to About dialog and add settings button to toolbar
* Added Patreon contributors
* Added real names to project maintainers
* Cleaned up layout
* Added settings button to main toolbar
* Added actions for "Donate" and "Report a Bug" to help menu
2018-08-20 21:27:37 -04:00
Jonathan White
bb73df5d77 Provide warning to users with Qt 5.5.x about potential crash 2018-08-19 23:39:14 -04:00
varjolintu
95a60087f9 Add browser extension links to settings page 2018-08-19 23:36:59 -04:00
varjolintu
38e48e7591 Use Chrome registry settings with Vivaldi 2018-08-19 22:45:29 -04:00
varjolintu
1d80bddde3 Quit the proxy when reading zero or less from stdin 2018-08-19 22:43:33 -04:00
Jacob Sachs
1d71059580 allow 12 hour timeout for lockDatabaseIdle 2018-08-19 22:42:24 -04:00
Jonathan White
8db604e787 Fix occasional divide by zero crash 2018-08-18 10:31:40 -04:00
Jonathan White
3b1e15ea1a Disable apply button when creating new entry/group
* Workaround to prevent data loss if apply is hit but not OK or Cancel
* Refactor required to fix this issue
2018-08-18 10:31:40 -04:00
varjolintu
d70a474bac Allows a separate ID key for browser extension association 2018-08-13 16:31:05 -04:00
Jonathan White
41ebc10c03 Corrects ordering of command/opts in cli manpage 2018-07-25 12:59:55 +02:00
Toni Spets
07efabed03 SSH Agent: Show MD5 fingerprint of keys
Fixes #2050
2018-07-16 18:45:20 -04:00
varjolintu
057cf6aed3 Handle URL port and scheme when requesting credentials 2018-07-14 17:09:41 -04:00
Jonathan White
add4ba21fa Show all url schemas in entry view (#1768)
* Show all url schemas in entry view
* Fix UUID being built improperly with invalid user input
2018-07-14 17:08:04 -04:00
Toni Spets
3727d37101 SSH Agent: Expect passphrases to be in UTF-8
The previous default was to expect passphrases to be ASCII or
rather Latin-1. It would be reasonable to expect modern keys to
use UTF-8 instead.

This is a non-breaking change if passphrases only use characters
that fall within ASCII.

Fixes #2102
2018-07-14 17:07:07 -04:00
varjolintu
c67f7afa49 Deny expired credentials 2018-07-13 09:15:22 -04:00
Jonathan White
ded0aab586 Fix typos in release tool 2018-07-10 21:43:01 -04:00
Jonathan White
4b51b39a83 Add exe signing support to release-tool
* Add automatic portable zip building
* Cleanup build variables
* Align command line parameters between modes
2018-07-09 14:06:19 -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
Jonathan White
d06819eb6c Merge pull request #1881 from louib/disable_merge_when_locked
Disable merge button when db is locked.
2018-07-08 19:52:58 -04:00
Nick Fox
c19df0130b Allows printing version with -v when an instance is already running
Fixes #1362 by checking if the -v argument was used when deciding
whether to print the "keepassxc is already running" error message
2018-07-08 19:51:11 -04:00
seatedscribe
c5cd4b6783 Hotfix for #570. Select password locking if an empty password is entered 2018-07-08 19:49:01 -04:00
Jonathan White
a025bcd7db Build snaps using custom Docker image
* Added --snapcraft option to release-tool build command
2018-07-08 11:42:34 -04:00
Jonathan White
c47882b887 Fixed regression 2018-07-06 22:32:44 -04:00
pasdam
b4d806ad41 Fixed issues with initial commit 2018-07-06 22:23:52 -04:00
pasdam
ad4423d226 Replaced Uuid with QUuid 2018-07-06 22:23:49 -04:00
TheZ3ro
dcece140a0 Merge pull request #1819 from vsvyatski/develop
Remove empty context menu from the main menu
2018-07-03 22:05:46 +02:00
Vladimir Svyatski
5d3b6953af Merge remote-tracking branch 'upstream/develop' into develop 2018-06-27 23:40:20 +03:00
Toni Spets
8c70856a82 SSH Agent: Fix invalid iqmp output for RSA keys
This fixes loading RSA keys to Pageant.
2018-06-26 22:52:47 -04:00
Jonathan White
9805f2331d Add support for SonarCloud analysis 2018-06-24 19:47:24 -04:00
Jonathan White
4e7aeca3b7 Add support for SonarCloud analysis 2018-06-20 20:37:50 -04:00
Jonathan White
f9eef6d986 Merge pull request #2011 from keepassxreboot/fix/favicon-multiselect
Allow multiple image selections when adding favicons
2018-06-20 20:32:40 -04:00
Janek Bevendorff
5df8ddfc3f Merge pull request #2055 from varjolintu/title_match_removal
Remove title matching
2018-06-18 13:54:33 +02:00
varjolintu
0ad598119f Fix macOS build 2018-06-16 11:03:18 -04:00
varjolintu
fc8e0e7b19 Remove title matching 2018-06-16 08:44:08 +03:00
varjolintu
e825b55a99 Fix entry sorting by title 2018-06-15 19:52:28 -04:00
Jonathan White
f4f8be56ce Added AppVeyor and CodeCov badges 2018-06-10 23:24:02 -04:00
seregaxvm
e124f17c64 Add advanced password generator features (#1841)
* Split between simple and advanced features
* Finetune password character groups
* Support for hex passwords
2018-06-10 22:37:09 -04:00
Adolfo E. García
83917299db Add AppVeyor support (#1380) 2018-06-10 18:16:30 -04:00
Jonathan White
76102ee9f0 Correct plurals and logic gate 2018-06-09 16:58:46 -04:00
Jonathan White
2e292699b7 Add more comprehensive messages when adding custom icons
* Error messages now display for 15 seconds and are closable
* Add button is always enabled
2018-06-09 16:58:46 -04:00
Jonathan White
b07d4efe5f Allow multiple image selections when adding favicons 2018-06-09 16:58:41 -04:00
Corentin Dancette
959acb7988 update link in readme 2018-06-03 11:41:13 -04:00
Janek Bevendorff
558cb3d0b5 Merge pull request #1957 from michalkaptur/improved_tools_coverage
improved unit test coverage in Tools
2018-05-23 09:48:32 +02:00
Vladimir Svyatski
28d949fa5f Merge remote-tracking branch 'upstream/develop' into develop 2018-05-22 21:42:53 +03:00
Michal Kaptur
486b99b39d Add some unit tests to Tools
Clean up and test 3 methods from Tools:
- humanReadableFileSize
- isHex
- isBase64
2018-05-22 09:28:54 +02:00
Jonathan White
b16447b13d Fix occasional crash when favicon progress dialog is closed (#1980)
* Changed progress dialog to a true percentage calculation
* Removed some unnecessary code
2018-05-20 21:12:06 -04:00
Janek Bevendorff
b9fa06c890 Merge pull request #1975 from keepassxreboot/hotfix/prevent-locked-merge
Disable merge when database is locked
2018-05-19 07:37:45 +02:00
Jonathan White
2eb3159f8a Disable merge when database is locked 2018-05-18 17:06:38 -04:00
Janek Bevendorff
8a0aae775a Merge pull request #1971 from keepassxreboot/fix/snapcraft
Build snaps using custom Docker image
2018-05-18 10:09:27 +02:00
Jonathan White
dbc7593328 Build snaps using custom Docker image
* Added --snapcraft option to release-tool build command
2018-05-16 22:40:36 -04:00
Janek Bevendorff
e5e6e8cbd5 Merge pull request #1964 from maggu2810/qt-5.11
fix missing include for Qt 5.11
2018-05-16 10:32:49 +02:00
Markus Rathgeb
3bbc6ac0e6 fix missing include for Qt 5.11
Qt 5.11 cleanes up the internal headers and so consumers could fail by
missing includes.

See: https://bugs.gentoo.org/655844
Signed-off-by: Markus Rathgeb <maggu2810@gmail.com>
2018-05-16 10:15:30 +02:00
TheZ3ro
a6486f0adc Merge pull request #1818 from varjolintu/unix_socket_location
Change Unix socket location
2018-05-16 09:41:44 +02:00
varjolintu
bf5f82ff27 Change Unix socket location 2018-05-16 07:37:25 +03:00
Janek Bevendorff
98131c3e5e Merge pull request #1948 from yan12125/issue1909
SSH Agent: Don't mark the entry dirty when the public key is changed
2018-05-15 09:18:22 +02:00
Chih-Hsuan Yen
1d499d2f29 SSH Agent: Don't mark the entry dirty when the public key is changed
That occurs when the key is decrypted and/or added to the agent, and
neither of them indicates changes in entry data.

Fixes #1909
2018-05-12 23:01:01 +08:00
Vladimir Svyatski
30ccc102d2 Merge remote-tracking branch 'upstream/develop' into develop 2018-05-10 22:34:38 +03:00
Janek Bevendorff
dee7572c5d Merge pull request #1927 from keepassxreboot/hotfix/snapcraft
Update snapcraft to use ppa packages
2018-05-09 22:46:02 +02:00
Jonathan White
f524d51624 Update snapcraft to use ppa packages 2018-05-09 13:45:12 -04:00
Janek Bevendorff
b02bd59e0c Merge branch 'master' into develop 2018-05-09 19:25:58 +02:00
Janek Bevendorff
0a155d89a3 Release 2.3.3
- Fix crash when browser integration is enabled [#1923]
2018-05-09 19:25:19 +02:00
Janek Bevendorff
27b08725fc Update translations 2018-05-09 19:25:16 +02:00
Janek Bevendorff
34ed6fdd1c Bump version to 2.3.3 2018-05-09 19:22:16 +02:00
Jonathan White
4f304aa384 Fix Windows 32-bit building with ASLR 2018-05-09 13:03:55 +02:00
varjolintu
3d3bc7a062 Null check 2018-05-09 11:16:08 +02:00
Jonathan White
aae6d09fd3 Merge branch 'master' into develop
Conflicts:
	src/CMakeLists.txt
	src/autotype/xcb/AutoTypeXCB.cpp
	src/browser/BrowserAction.cpp
	src/browser/BrowserService.cpp
	src/browser/BrowserService.h
	src/browser/BrowserSettings.h
	src/browser/NativeMessagingHost.cpp
	src/browser/NativeMessagingHost.h
	src/gui/EditWidgetIcons.cpp
	src/gui/EditWidgetIcons.h
	src/gui/MainWindow.cpp
	src/proxy/NativeMessagingHost.cpp
	tests/TestOpenSSHKey.cpp
2018-05-07 23:24:30 -04:00
Jonathan White
2bb72eba02 Release 2.3.2
- Enable high entropy ASLR on Windows [#1747]
- Enhance favicon fetching [#1786]
- Fix crash on Windows due to autotype [#1691]
- Fix dark tray icon changing all icons [#1680]
- Fix --pw-stdin not using getPassword function [#1686]
- Fix placeholders being resolved in notes [#1907]
- Enable auto-type start delay to be configurable [#1908]
- Browser: Fix native messaging reply size [#1719]
- Browser: Increase maximum buffer size [#1720]
- Browser: Enhance usability and functionality [#1810, #1822, #1830, #1884, #1906]
- SSH Agent: Parse aes-256-cbc/ctr keys [#1682]
- SSH Agent: Enhance usability and functionality [#1677, #1679, #1681, #1787]
2018-05-07 23:20:10 -04:00
Jonathan White
902584855b Update translations 2018-05-07 23:20:04 -04:00
Jonathan White
3b7e63a773 Bump version number to 2.3.2 & fix Win build 2018-05-07 23:17:32 -04:00
varjolintu
9d7e7c1ca8 Disable STDIN listening when not needed 2018-05-06 20:21:40 -04:00
Jonathan White
13a313ff66 Remove resolving placeholders for notes 2018-05-06 15:44:27 -04:00
Jonathan White
9ed2a74421 Configurable global autotype start delay 2018-05-06 20:54:11 +02:00
Sami Vänttinen
48295efe0d Implement best matches only option with browser integration (#1822) 2018-05-05 17:51:03 -04:00
Sami Vänttinen
963ac75389 Lower the main window after unlock request from extension (#1884) 2018-05-04 17:31:17 -04:00
Sami Vänttinen
635d6fe82c Bring browser credentials messagebox to the front (#1830) 2018-05-04 16:56:19 -04:00
Sami Vänttinen
658298bc31 Ignore non-connected databases from search with Browser Integration (#1810) 2018-05-04 16:06:07 -04:00
louib
f25c8d3d2a Adding a GUI test. 2018-04-30 17:07:07 -04:00
TheZ3ro
5c7aaf5754 Merge pull request #1850 from varjolintu/create_totp_attribute
Pass TOTP with credential data to KeePassXC-Browser
2018-04-29 18:12:11 +02:00
louib
64917bd9fb Disable merge button when db is locked. 2018-04-27 21:29:00 -04:00
varjolintu
a910821506 Fix Windows build with socket size 2018-04-27 15:28:12 -04:00
varjolintu
2110ae4d33 Create KPH attribute for browser integration 2018-04-27 11:19:02 +03:00
Jonathan White
062503a903 Fix windows building
Regression occured in 3a92e4
2018-04-26 23:12:10 -04:00
Vladimir Svyatski
bbfac92672 Add requested changes to PR #1819. 2018-04-10 08:27:23 +03:00
Vladimir Svyatski
2df6fd03fb Merge branch 'feature/hide-toolbar' into develop 2018-04-09 22:39:21 +03:00
Vladimir Svyatski
214f4b7dc2 Merge remote-tracking branch 'upstream/develop' into develop 2018-04-09 22:38:02 +03:00
Vladimir Svyatski
57860fc33c Fix to apply "Hide toolbar" without restart 2018-04-09 22:33:08 +03:00
Vladimir Svyatski
d843ad414a Use the "Hide toolbar" setting 2018-04-09 22:07:55 +03:00
Vladimir Svyatski
677b8caa63 Add UI setting "Hide toolbar (icons)" 2018-04-09 21:43:41 +03:00
TheZ3ro
5a84978dab Merge pull request #1814 from keepassxreboot/fix/mac-build-error
Fix build error on macOS
2018-04-06 23:12:16 +02:00
Vladimir Svyatski
ddc4b9b7d5 Remove empty context menu from the main menu 2018-04-06 23:23:52 +03:00
Weslly
586961013d Disable clang-format on Tools.cpp include order 2018-04-05 08:59:42 -03:00
Steven Noonan
056bbaa921 Improve fetch favicon (#1786)
* Eliminate dependency on libcurl in favor of Qt5Network code
* Supports older Qt versions without QNetworkRequest::FollowRedirectsAttribute

* Show a progress dialog when downloading the favicon. The main utility
  of this is giving the user the option to cancel a download attempt
  (e.g. if it's taking too long). Canceling will try the next fallback URL in the list.

* Try three different ways to obtain the favicon, in this order:
  1) Direct to fully-qualified domain (e.g. https://foo.bar.example.com/favicon.ico)
  2) Direct to 2nd-level domain (e.g. https://example.com/favicon.ico)
  3) Google lookup for 2nd-level domain name (if enabled in settings)

I changed the Google lookup, because a match is more likely to be found
for the 2nd level domain than for the fully-qualified name.

Google's error behavior is strange. If it doesn't find a match, it
doesn't return an error. Instead, it returns a generic default icon,
which is not really the desired result. This also means that unless we
have some way to detect that we've received the generic icon, we can't
fall back to any alternatives.

Signed-off-by: Steven Noonan <steven@uplinklabs.net>
2018-04-04 22:18:58 -04:00
Weslly
9b6c589b9c Fix build error on mac introduced on 8324d03f0a 2018-04-04 23:09:02 -03:00
Steven Noonan
c21f4b5ec2 OpenSSHKey: correctly parse aes-256-cbc/ctr keys (#1682)
AES-256 uses a 32-byte (256-bit) key size. This un-breaks the loader and
tests added for AES-256-CBC and AES-256-CTR PEM keys.

* OpenSSHKey: correctly parse encrypted PEM AES-256-CBC/AES-256-CTR keys
* OpenSSHKey: use correct key derivation for AES-256
2018-04-04 21:58:34 -04:00
Thomas Luzat
d1c5a1a5f8 SSH Agent: Fix wrong slot reference (#1787)
Fixes an error message and non-working functionality introduced by a
wrong slot referenced in PR #1679.
2018-04-04 21:42:14 -04:00
TheZ3ro
ea55a2ad29 Merge pull request #1811 from varjolintu/macos_socket_location
Change socket location in macOS to temporary dir
2018-04-04 21:55:19 +02:00
varjolintu
c773d85876 Change socket location in macOS to temporary dir 2018-04-04 11:16:00 +03:00
Sami Vänttinen
3a92e4aab9 Socket buffer size fix (#1720) 2018-04-02 22:13:07 -04:00
Jonathan Hult
72bbf12747 Update link to note about HTTP in README [ci skip] (#1637) 2018-04-02 22:11:50 -04:00
TheZ3ro
dd246f1ff0 Merge pull request #1191 from louib/code_formatting
Code formatting
2018-04-02 15:52:05 +02:00
Louis-Bertrand Varin
8324d03f0a Formatting the code. 2018-03-31 16:01:30 -04:00
Louis-Bertrand Varin
74efc57369 Removed http/ from excluded dirs. 2018-03-31 12:15:51 -04:00
Louis-Bertrand Varin
3eb917055e Add ClangFormat exceptions 2018-03-31 12:15:09 -04:00
Janek Bevendorff
0b6eb3b30e Use xargs to avoid long command lines 2018-03-31 12:15:09 -04:00
Louis-Bertrand Varin
07bc9a7b4b Add ClangFormat rules 2018-03-31 12:15:09 -04:00
Jonathan White
410d88bf99 Remove KeePassHttp plugin and qhttp (#1752)
Remove KeePassHttp plugin and qhttp
2018-03-31 11:36:18 -04:00
Janek Bevendorff
bd654ea1db Merge pull request #1702 from dwilches/hotfix/1313-grey-out-apply-button
Grey out Apply button when there are no changes
2018-03-31 13:54:43 +02:00
Daniel Wilches
240939ce3b Request confirmation to discard unsaved changes
Solves #1181
2018-03-29 18:35:08 -07:00
Daniel Wilches
78ef6f0d04 Grey out Apply button when there are no changes
Resolves #1313

What this commit does:
* Whenever the Apply button is pressed, and if the save was successful, then the Apply button is disabled.
* Each subwidget used by EditEntryWidget has now a signal called `widgetUpdated` that is emitted when the widgets' internal content changes. The EditEntryWidget subscribes to that signal to know when to enable the Apply button (by calling `entryUpdated()`).
* There are some views that are not isolated in their own widgets (`m_advancedUi`, for example) so in those cases I invoked `entryUpdated()` directly whenever I detected an update:
  * some updates occur directly in a Qt widget like when editing the text of a QLineItem, so in that case I connected the widget's signals directly to the `entryUpdated()` slot.
  * some updates occur in EditEntryWidget, so in those cases the invocation to `entryUpdated()` is made as soon as the change is detected (for example when the user has confirmed an action in a dialog).

A known problem: there are some situations when the Apply button will get enabled even if there are no changes, this is because the app changes the value of a field by itself so it's considered an update (for example, clicking on the "Reveal" button changes the text shown in a text field).
The solution to this can be a bit complicated: disabling temporarily the `entryUpdated()` whenever the app is going to do an action with such side-effects.
So I preferred to let the Apply button get enabled in those cases.
2018-03-29 18:35:08 -07:00
Valeriy Malov
0650b3084e Do not ignore MainWindow closeEvent when closing to tray
Ignoring closeEvent signals that the application doesn't want the widget
to be closed. This may cause unwanted shutdown interruption. There's no
difference between close() and hide() unless WA_DeleteOnClose is set, so
it's better to just accept the event if we're hiding the window
afterwards anyway.

Resolves #856
2018-03-22 12:29:25 +01:00
Janek Bevendorff
e92d5e80ee Merge branch 'release/2.3.2' into develop 2018-03-18 01:14:42 +01:00
dinony
7e75d04055 Docs (#1749)
Update build instructions
2018-03-18 01:10:00 +01:00
Janek Bevendorff
ed2da34d7a Merge pull request #1725 from Throne3d/fix/1647-translations
Improve translation base strings
2018-03-18 00:01:27 +01:00
Jonathan White
4a207f079b Enable high entropy ASLR for Windows builds 2018-03-17 12:13:47 -04:00
Piraty
123701080d Keep openSSH-portable's blowfish code unmodified
and use a stub "includes.h".

This also fixes build issues against musl-libc, which does not
implicitly include <sys/types.h>
2018-03-17 11:03:36 +01:00
Olivier Le Moal
3353b329fc Fix wrong reply size in NativeMessagingBase
* Using length() on QString won't return correct size in bytes when string
contains UTF-8 chars.
2018-03-13 22:32:31 +01:00
Edward Jones
963a7802d1 Fix pluralization of confirmation prompts 2018-03-13 20:41:16 +00:00
Edward Jones
e66adfbf68 Make more strings translatable
Includes making certain modifiers (like "[locked]") positionable, in
case languages put this before the word
2018-03-13 20:41:12 +00:00
Edward Jones
3def6a3bc4 Fix weird base strings and reduce concatenation 2018-03-13 20:40:39 +00:00
Edward Jones
e718e9f5e5 Fix file dialog filter translations 2018-03-13 19:55:37 +00:00
Joan Bruguera
970cedf972 Add again wrongly removed conditional macro for Mac.
Add again the wrongly removed conditional macro for Mac, along with a TODO asking for further documentation on its significance.
2018-03-12 21:30:25 +01:00
Joan Bruguera
f305517724 Skip the tray restore/hide test of #1595 if there's no tray (fix CI build). 2018-03-12 21:30:25 +01:00
Joan Bruguera
8646586c1a Add GUI test for issue #1595 (minus the minimize at startup case). 2018-03-12 21:30:25 +01:00
Joan Bruguera
bf9c1b3205 Cover the fix/WA for Linux #1595 behind compile time flags & comment. 2018-03-12 21:30:25 +01:00
Joan Bruguera
467867016d Fix toggle window from tray can't hide the window on Windows (#1595)
Fix unreliable check on toggleWindow() which causes Windows systems to be unable to hide the window by clicking on the tray icon (see issue #1595).
2018-03-12 21:30:25 +01:00
Joan Bruguera
319c8201be Fix flickering & not restoring from tray on some Linuxes (#1595).
Fix/work around KeePassXC flickering and not restoring from tray on some Linux systems, which happens if the window is hidden and minimized by code at the same time (see issue #1595).
2018-03-12 21:30:25 +01:00
varjolintu
f620ad979f Fix extension URL 2018-03-11 10:59:20 -04:00
Thomas Luzat
64f5ee6399 SSH Agent: Helpful error message for adding keys
This adds more helpful error messages when adding keys to an agent
fails.

Closes #1667.
2018-03-11 10:57:30 -04:00
Thomas Luzat
46099fdd71 SSH Agent: Update available attachments immediately
The list of available attachments for SSH agent is now updated
immediately when adding or removing file attachments.

Closes #1668.
2018-03-11 10:57:14 -04:00
Steven Noonan
dc1aead2a2 OpenSSHKey: when writing to agent, ensure comment string is at least one byte
This unbreaks adding keys to gpg-agent.

Signed-off-by: Steven Noonan <steven@uplinklabs.net>
2018-03-10 23:59:37 -05:00
Toni Spets
d156457405 Always hide password on unlock
Fixes #1692
2018-03-10 23:54:12 -05:00
Janek Bevendorff
2b91e4d27c Fix inconsistent mutex unlocking due to double slot execution, fixes #1561 2018-03-10 10:52:18 +01:00
Alessio Di Mauro
f164847f9b Replace in.readLine() with Utils::getPassword()
Fixes #1673.
2018-03-09 11:21:58 +01:00
Thomas Luzat
082ecc3f37 Fix dark tray icon option making all icons dark
Introduces a separate path for tray icons which are neither locked nor
unlocked.

Closes #1556.
2018-03-08 21:34:15 +01:00
Thomas Luzat
46e8e3dbbc Test speedup (#1678)
* Tests: Speed up AutoType testing

Decrease default autotype delay to 1 to improve test suite speed by
seconds. This shaves multiple seconds off the whole test suite. In some
cases, the largest part.

Also, initialize config just creating the test instance, just in case
that it ever depends on the configuration values at that point already.

* Tests: Speed up Kdbx4 testing

This speeds up the Kdbx4 tests by using parameters optimized for speed
for the key derivation functions. On an i7-6700K the tests run close to
50% faster with this change (about 1.5s vs. 3s).
2018-03-08 10:20:25 +01:00
Janek Bevendorff
aa6327716f Merge branch 'master' into develop 2018-03-06 22:56:18 +01:00
Janek Bevendorff
2fcaeeaec8 Release 2.3.1
- Fix unnecessary automatic upgrade to KDBX 4.0 and prevent challenge-response key being stripped [#1568]
- Abort saving and show an error message when challenge-response fails [#1659]
- Support inner stream protection on all string attributes [#1646]
- Fix favicon downloads not finishing on some websites [#1657]
- Fix freeze due to invalid STDIN data [#1628]
- Correct issue with encrypted RSA SSH keys [#1587]
- Fix crash on macOS due to QTBUG-54832 [#1607]
- Show error message if ssh-agent communication fails [#1614]
- Fix --pw-stdin and filename parameters being ignored [#1608]
- Fix Auto-Type syntax check not allowing spaces and special characters [#1626]
- Fix reference placeholders in combination with Auto-Type [#1649]
- Fix qtbase translations not being loaded [#1611]
- Fix startup crash on Windows due to missing SVG libraries [#1662]
- Correct database tab order regression [#1610]
- Fix GCC 8 compilation error [#1612]
- Fix copying of advanced attributes on KDE [#1640]
- Fix member initialization of CategoryListWidgetDelegate [#1613]
- Fix inconsistent toolbar icon sizes and provide higher-quality icons [#1616]
- Improve preview panel geometry [#1609]
2018-03-06 22:54:58 +01:00
Janek Bevendorff
d68d41a878 Update translations 2018-03-06 22:54:54 +01:00
Janek Bevendorff
642daa641b Bump version to 2.3.1 and update CHANGELOG 2018-03-06 22:54:01 +01:00
Janek Bevendorff
323c271d01 Remove qsvg imageformat plugin to prevent crash when trying to load SVG icons, resolves #1602 2018-03-06 22:23:52 +01:00
Janek Bevendorff
2f821af0a0 Raise error if challenge-response failed during KDBX4 key transformation, resolves #1656 2018-03-06 22:08:09 +01:00
Janek Bevendorff
63a17f697c Fix freeze and high CPU usage on invalid STDIN data, resolves #1620 2018-03-06 21:55:32 +01:00
Steven Noonan
386b78b896 attributes: unbreak copy-to-clipboard on KDE
The 'text' property of the QAction gets mangled by KDE when it adds its
own accelerator shortcuts. But the data property is ours. Use that for
keying instead.

Signed-off-by: Steven Noonan <steven@uplinklabs.net>
2018-03-06 19:22:38 +01:00
Thomas Luzat
4c9dcf5c98 KdbxXmlReader: Support Protected attribute on most nodes
Similar to KeePass2 most elements are checked for a

Protected="True"

attribute. Previously, files KDBX 3.1 files with protected Binary
entries, as seen in the wild, could not be read (mangled passwords and
file attachments).
2018-03-06 19:11:10 +01:00
Toni Spets
084758908a SSH Agent: Show error messages if something fails 2018-03-06 18:59:42 +01:00
Janek Bevendorff
4ce0005711 Merge pull request #1657 from keepassxreboot/hotfix/1573-curl-download-hang
Add User-Agent header and set request timeout to avoid infinite download hangs
2018-03-06 17:13:14 +01:00
Janek Bevendorff
63d34ac348 Add User-Agent header and set request timeout to avoid infinite download hangs
Resolves #1573, resolves #1645
2018-03-06 16:06:44 +01:00
thez3ro
10170a555e add test case for recursive placeholders 2018-03-06 15:56:27 +01:00
Benoit Mortgat
18628612b2 Allow references in part of a field
When a field value is of the form ...{REF:...}...
Then:

* Auto-type does not work with that field
* References to this field are not properly resolved

This commit fixes both issues.
2018-03-05 23:31:29 +01:00
Janek Bevendorff
83974732f3 Merge pull request #1641 from tycho/lto-fixup
KdbxReader::readDatabase: abort if reading magic numbers fails
2018-03-05 20:31:51 +01:00
Steven Noonan
cdd6852709 KdbxReader::readDatabase: abort if reading magic numbers fails
Building with -flto caught the fact that we were ignoring the return
value of readMagicNumbers(), which potentially left the value of 'sig2'
uninitialized.

Signed-off-by: Steven Noonan <steven@uplinklabs.net>
2018-03-05 09:12:22 -08:00
thez3ro
5f9f27604b fix autotype custom attributes 2018-03-04 23:08:58 +01:00
Janek Bevendorff
d3a80513a7 Fix GCC 8 memset warning and set -Werror only for debug builds, resolves #1558 2018-03-04 21:18:13 +01:00
Janek Bevendorff
02b923b0e5 Make cipher and KDF settings properly translatable 2018-03-04 21:01:00 +01:00
Janek Bevendorff
2fd2085bb5 Fix qtbase translations not being loaded (regression) 2018-03-04 21:01:00 +01:00
Janek Bevendorff
df185b4343 Add more 32x32 icons 2018-03-04 18:43:27 +01:00
Janek Bevendorff
d1d97bed73 Set toolbar icon size to 22x22 to avoid downsampling 2018-03-04 14:37:31 +01:00
Janek Bevendorff
da00a6c687 Fix inconsistent icon sizes 2018-03-04 14:37:31 +01:00
Janek Bevendorff
8cd4d839aa Avoid use of possibly uninitialized value in CategoryListWidgetDelegate 2018-03-03 20:37:53 +01:00
Toni Spets
b0a61f437a SSH Agent: Fix handling of encrypted RSA keys
Also fix multiple UI issues caused by said keys.

Fixes #1560
2018-03-03 16:34:08 +01:00
Janek Bevendorff
a06e85f6ce Merge branch 'release/2.3.1' into develop 2018-03-03 13:33:47 +01:00
Michael Lass
97a890e8a0 Open previously opened databases in correct order
Databases are re-opened by traversing LastOpenedDatabases from front to
back, i.e. the last element in the list will be the active tab. However,
the most-recently used database is currently stored at the beginning of
the list. This leads to the least-recently used database to be the
ative tab on next startup.

Previously, this has been fixed in 4c76c97 by opening the databases in
reversed order. This change was accidentally reverted in 165d664.
Instead, change the order of LastOpenedDatabases itself, so no reversal
on opening the databases is necessary.

Resolves #1572
2018-03-03 13:33:00 +01:00
Janek Bevendorff
a5dc1964a9 Resize details widget to minimum by default 2018-03-03 12:59:06 +01:00
Janek Bevendorff
ea5c6c1eb5 Process basic file, password and keyfile command line parameters
Resolves #1358, resolves #1533, resolves #1600
2018-03-03 10:18:16 +01:00
Janek Bevendorff
c0cb0f9487 Merge branch 'release/2.3.1' into develop 2018-03-03 02:34:48 +01:00
Janek Bevendorff
ee8499f65c Do not delete MacPasteboard instance on exit, resolves #1543 2018-03-03 02:33:43 +01:00
Janek Bevendorff
199f0932bf Add additional KDBX4 upgrade tests for composite key integrity 2018-03-01 19:26:18 -05:00
Janek Bevendorff
e6c19fdcb1 Add MockChallengeResponseKey and additional composite key component test 2018-03-01 19:26:18 -05:00
Janek Bevendorff
f08a49fd0c Merge branch 'release/2.3.1' into develop 2018-03-01 18:00:11 +01:00
Janek Bevendorff
6f6a63f5e9 Re-transform key on implicit KDBX 4 upgrade to avoid losing challenge-response, resolves #1584 2018-03-01 17:59:01 +01:00
Janek Bevendorff
0d4aff55bc Don't upgrade to KDBX 4 when CustomData are present only in meta data section, resolves #1565 2018-03-01 17:59:01 +01:00
TheZ3ro
2e8846ef8d Merge pull request #1585 from keepassxreboot/hotfix/release-when-gittag
Release build when checking out a git-tag
2018-03-01 17:09:16 +01:00
thez3ro
923d24b448 release build when checking out a git-tag 2018-03-01 14:47:16 +01:00
Thomas Klausner
fae8979463 Fix build on NetBSD. (#1557)
* Fix build on NetBSD.
2018-02-28 16:33:27 +01:00
Jonathan White
8be53e68ee Force snapcraft builds to be release builds 2018-02-28 16:33:01 +01:00
Jonathan White
81e2db7170 Properly rename argon2 symbols on Win32 builds 2018-02-28 16:32:54 +01:00
Thomas Klausner
3f7f1aa47f Fix build on NetBSD. (#1557)
* Fix build on NetBSD.
2018-02-28 16:31:21 +01:00
Janek Bevendorff
c167a0d190 Merge pull request #1544 from keepassxreboot/fix/compile-time
Correct compile time issues with 2.3.0
2018-02-28 11:38:23 +01:00
Jonathan White
5a90993938 Force snapcraft builds to be release builds 2018-02-27 21:42:57 -05:00
Jonathan White
e17bee8e31 Properly rename argon2 symbols on Win32 builds 2018-02-27 21:34:54 -05:00
Janek Bevendorff
3c274135ce Merge branch 'master' into develop 2018-02-27 22:41:57 +01:00
Janek Bevendorff
4c0ed74341 Release 2.3.0
- Add support for KDBX 4.0, Argon2 and ChaCha20 [#148, #1179, #1230, #1494]
- Add SSH Agent feature [#1098, #1450, #1463]
- Add preview panel with details of the selected entry [#879, #1338]
- Add more and configurable columns to entry table and allow copying of values by double click [#1305]
- Add KeePassXC-Browser API as a replacement for KeePassHTTP [#608]
- Deprecate KeePassHTTP [#1392]
- Add support for Steam one-time passwords [#1206]
- Add support for multiple Auto-Type sequences for a single entry [#1390]
- Adjust YubiKey HMAC-SHA1 challenge-response key generation for KDBX 4.0 [#1060]
- Replace qHttp with cURL for website icon downloads [#1460]
- Remove lock file [#1231]
- Add option to create backup file before saving [#1385]
- Ask to save a generated password before closing the entry password generator [#1499]
- Resolve placeholders recursively [#1078]
- Add Auto-Type button to the toolbar [#1056]
- Improve window focus handling for Auto-Type dialogs [#1204, #1490]
- Auto-Type dialog and password generator can now be exited with ESC [#1252, #1412]
- Add optional dark tray icon [#1154]
- Add new "Unsafe saving" option to work around saving problems with file sync services [#1385]
- Add IBus support to AppImage and additional image formats to Windows builds [#1534, #1537]
- Add diceware password generator to CLI [#1406]
- Add --key-file option to CLI [#816, #824]
- Add DBus interface for opening and closing KeePassXC databases [#283]
- Add KDBX compression options to database settings [#1419]
- Discourage use of old fixed-length key files in favor of arbitrary files [#1326, #1327]
- Correct reference resolution in entry fields [#1486]
- Fix window state and recent databases not being remembered on exit [#1453]
- Correct history item generation when configuring TOTP for an entry [#1446]
- Correct multiple TOTP bugs [#1414]
- Automatic saving after every change is now a default [#279]
- Allow creation of new entries during search [#1398]
- Correct menu issues on macOS [#1335]
- Allow compilation on OpenBSD [#1328]
- Improve entry attachments view [#1139, #1298]
- Fix auto lock for Gnome and Xfce [#910, #1249]
- Don't remember key files in file dialogs when the setting is disabled [#1188]
- Improve database merging and conflict resolution [#807, #1165]
- Fix macOS pasteboard issues [#1202]
- Improve startup times on some platforms [#1205]
- Hide the notes field by default [#1124]
- Toggle main window by clicking tray icon with the middle mouse button [#992]
- Fix custom icons not copied over when databases are merged [#1008]
- Allow use of DEL key to delete entries [#914]
- Correct intermittent crash due to stale history items [#1527]
- Sanitize newline characters in title, username and URL fields [#1502]
- Reopen previously opened databases in correct order [#774]
- Use system's zxcvbn library if available [#701]
- Implement various i18n improvements [#690, #875, #1436]
2018-02-27 22:38:05 +01:00
Janek Bevendorff
1db064425a Update translations 2018-02-27 22:37:59 +01:00
Janek Bevendorff
d8866c64d2 Update CHANGELOG for 2.3.0 2018-02-27 22:36:40 +01:00
varjolintu
3cde0d988e Kills keepassxc-proxy and KeePassXC during install or uninstall under Windows 2018-02-27 21:29:00 +01:00
Janek Bevendorff
59f17ab8f3 Fix missing Qt platform styles and CA bundles in Windows release deployment 2018-02-27 21:16:59 +01:00
Janek Bevendorff
4c8d426f23 Use copy instead of rename for unsafe saving on Linux
Resolves #1511
See https://bugreports.qt.io/browse/QTBUG-64008
2018-02-27 21:05:13 +01:00
Janek Bevendorff
395afe59eb Update release-tool to use generic /usr/local/opt/qt path on macOS 2018-02-27 20:11:03 +01:00
Janek Bevendorff
6531f94f86 Try to change both the REALPATH and the symlink location 2018-02-27 20:11:03 +01:00
Janek Bevendorff
e231774b05 Don't hardcode HINTS to macdeployqt 2018-02-27 20:11:03 +01:00
Janek Bevendorff
e1558d6300 Avoid double file extension replacement in backup filename 2018-02-27 15:53:31 +01:00
Jonathan White
c13c6ade29 Fix regression in Qt packaging on Windows 2018-02-27 00:22:13 -05:00
Janek Bevendorff
114f87c6b4 Bundle selected Qt plugins on Windows 2018-02-26 22:53:53 -05:00
Janek Bevendorff
c1a397e624 Bundle image format and input context plugins with AppImage 2018-02-26 22:53:53 -05:00
Janek Bevendorff
cc3cc35565 Update library paths in AppImage recipe and Dockerfiles 2018-02-26 22:53:53 -05:00
Janek Bevendorff
7fbdcd3fed Add tests for newline sanitization 2018-02-26 17:27:17 +01:00
Janek Bevendorff
f1cf697547 Strip newlines from title, username and URL when saving entries, resolves #1502 2018-02-26 17:27:17 +01:00
Janek Bevendorff
9bb8dd7a7a Merge branch 'release/2.3.0' into develop 2018-02-26 01:58:38 +01:00
Janek Bevendorff
0668c2be94 Inform user that KeePassXC-Browser is not supported for Snaps at the moment 2018-02-26 01:57:02 +01:00
Janek Bevendorff
2e9f247e29 Enable proper KeePassXC-Browser interaction for AppImage 2018-02-26 01:57:02 +01:00
Janek Bevendorff
09d3896304 Force Docker rebuild 2018-02-26 01:11:57 +01:00
Janek Bevendorff
ad92b11f12 Use edlided label for details widget title and adjust layout spacing 2018-02-26 01:11:57 +01:00
Janek Bevendorff
a06a1f84e0 Don't hardcode install_name_tool change path, resolves #1518 2018-02-26 00:55:06 +01:00
Jonathan White
686adbe65a Set paperclip column to be fixed size; correct test failures 2018-02-25 19:38:00 +01:00
Jonathan White
77e345570d Correct test failures; moved gui calls into gui objects 2018-02-25 19:38:00 +01:00
Jonathan White
fd71b4a22e Convert from unicode to image based paperclip 2018-02-25 19:38:00 +01:00
Jonathan White
8c4df37062 Only show entry update message when hitting apply 2018-02-25 19:27:06 +01:00
Jonathan White
5e2e12977d Correct intermittent crash due to stale history items 2018-02-25 19:27:06 +01:00
Janek Bevendorff
8dad78194f Fix libgcrypt and libgpg-errror paths in AppImage, resolves #1522 2018-02-25 12:16:41 +01:00
Weslly
daaa3c5b41 Enable focus outline for global auto-type shortcut on macOS 2018-02-23 17:28:40 +01:00
Janek Bevendorff
32a4078240 Add .version file when generating source tarball 2018-02-23 00:59:45 +01:00
Janek Bevendorff
3089894d20 Allow KeePassXC version overrides from file in addition to Git tags 2018-02-23 00:59:45 +01:00
Janek Bevendorff
70c13f919a Merge branch 'release/2.3.0' into develop 2018-02-22 14:26:24 +01:00
Jonathan White
69283e83d8 Correct zxcvbn build on windows & snap build 2018-02-21 21:59:42 -05:00
Janek Bevendorff
ea33caa1a8 Update PPA Qt version 2018-02-21 22:58:32 +01:00
Janek Bevendorff
9f5b5bb424 Fix macOS build 2018-02-21 22:30:37 +01:00
Janek Bevendorff
1b95efd1fa Merge branch 'release/2.3.0' into develop 2018-02-21 22:21:44 +01:00
Janek Bevendorff
10bd73cd4a Fixed English (US) translation mixed with Vietnamese 2018-02-21 19:43:01 +01:00
Janek Bevendorff
0237b21aad Merge branch 'release/2.3.0' into develop 2018-02-21 17:55:08 +01:00
Janek Bevendorff
7c6eddeae7 Pull translations from transifex 2018-02-21 17:53:38 +01:00
Janek Bevendorff
148dbc5d41 Merge branch 'release/2.3.0' into develop 2018-02-21 13:23:45 +01:00
Janek Bevendorff
f15088f496 Ask user before deleting custom plugin data and disable button if no data selected 2018-02-21 13:23:14 +01:00
Janek Bevendorff
da52da37b3 Add additional tests for saving and reading KDBX files with custom data 2018-02-21 13:23:14 +01: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
Janek Bevendorff
114f00e1e8 Add CustomData regression tests 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
Janek Bevendorff
698b44f71c Update zxcvbn library 2018-02-21 06:18:33 -05:00
Janek Bevendorff
d0c583b5e2 Merge branch 'release/2.3.0' into develop 2018-02-21 09:41:20 +01:00
Jonathan White
cd3e1fc27e Ask to apply generated password when commiting an entry edit
* Rename saveEntry to commitEntry to accurately capture its purpose
* Add message to user when commit is successful
* Made all inline messages in edit entry view 2 sec visibility
2018-02-21 09:38:27 +01:00
Jonathan White
397d804cdd Add tests & minor edits 2018-02-21 09:04:46 +01:00
Jonathan White
ca30d1832d Add support for foreground and background entry colors
* Add foreground/background color elements to advanced tab
* Center paperclip icon
2018-02-21 09:04:46 +01:00
Weslly
6a85556b33 Fix about dialog size policy 2018-02-19 09:40:26 +01:00
Nick Spain
7dfcad6f8f Write regression test for #1447 2018-02-18 16:17:12 +01:00
Nick Spain
5c51d11651 Fix Issue #1447 by using entry's group when not creating entry 2018-02-18 16:17:12 +01:00
Janek Bevendorff
924d472de5 Add support for pre-releases 2018-02-18 10:20:34 +01:00
Janek Bevendorff
d36e9875c5 Enable word wrap for long lines
Make all text except contributor names translatable
2018-02-18 00:19:38 +01:00
thez3ro
7713a7b750 Add test case for reference resolution in cloned entries
Improve test suite to use smart pointers where possible
2018-02-17 18:04:29 +01:00
Janek Bevendorff
4c52aa9c88 Check maxDepth on placeholder resolution to avoid infinite recursion 2018-02-17 18:04:29 +01:00
thez3ro
c5dd64d18a Resolve reference in entry field, prevent recorsive loop, fix EditEntry association bug 2018-02-17 18:04:29 +01:00
Janek Bevendorff
536db062f4 Fix Auto-Type message not raised when no matching entry was found 2018-02-17 15:19:36 +01:00
Janek Bevendorff
b80ddef274 Merge branch 'release/2.3.0' into develop 2018-02-11 15:43:01 +01:00
Janek Bevendorff
b143e93e5a Merge pull request #1463 from hifi/feature/sshagent-encrypted-old-keys
SSH Agent: Support AES-128-CBC encrypted keys
2018-02-11 15:41:39 +01:00
Toni Spets
d58e3ca34d SSH Agent: Support old AES-128-CBC encrypted keys 2018-02-11 15:31:06 +01:00
Toni Spets
d2359df2b0 SymmetricCipher: Add support for AES-128-CBC 2018-02-11 15:31:06 +01:00
Toni Spets
80d85965e9 SSH Agent: Fix translation arguments 2018-02-11 15:31:06 +01:00
Janek Bevendorff
828dbf76eb Merge pull request #1473 from keepassxreboot/feature/fix-faulty-initialization-windows
Fix Windows regression due to faulty static variable initialization
2018-02-11 15:29:00 +01:00
Janek Bevendorff
ab3775d4c5 Fix regression introduced in 6723f42
Use of QString for static DefaultSeparator lead to crashes on Windows
2018-02-11 15:12:20 +01:00
Janek Bevendorff
13dc1e02ab Merge pull request #1406 from keepassxreboot/feature/cli-passgen
Add diceware and passgen to the cli interface
2018-02-07 20:26:15 +01:00
thez3ro
1bfbb9242c fix cli commands, translations and codestyle 2018-02-07 17:35:20 +01:00
thez3ro
6723f4215a centralize every password generator default option. add extended ASCII to XC_HTTP generator 2018-02-07 17:35:20 +01:00
thez3ro
33b95836b9 update cli manpage 2018-02-07 17:35:20 +01:00
thez3ro
4782b20d61 renamed passgen to generate and use diceware default wordcount 2018-02-07 17:35:20 +01:00
thez3ro
e57a2e0fa9 add default charset when not specified
explicitly state the wordcount default value
2018-02-07 17:35:20 +01:00
thez3ro
e9612ee9e6 use default password lenght + minor fixes 2018-02-07 17:35:20 +01:00
thez3ro
27f8aa095a add diceware and passgen to the cli interface 2018-02-07 17:35:20 +01:00
Jonathan White
490e92167d Replace qhttp client with curl for favicon downloading (#1460)
Replace qhttp client with curl for favicon downloading
2018-02-07 07:10:56 -05:00
Janek Bevendorff
61a3d5ffda Merge pull request #1458 from keepassxreboot/feature/relock-after-autotype
Relock database after successful autotype
2018-02-06 11:45:37 +01:00
thez3ro
b33259b1f2 relock database after successful autotype 2018-02-05 20:12:24 +01:00
TheZ3ro
4206fd94e3 Merge pull request #1390 from keepassxreboot/feature/multiple-autotype-matches
Add support for multiple autotype sequences for a single entry
2018-02-05 11:09:43 +01:00
thez3ro
aa54c7b6b3 fix MatchView activation with Enter/Return on macOS 2018-02-04 23:32:51 +01:00
thez3ro
16fad1aba1 fix duplicate autotype sequences 2018-02-04 23:13:15 +01:00
thez3ro
b4cf98998e convert inAutoType from boolean block to QMutex 2018-02-04 23:13:15 +01:00
thez3ro
a76c92ed9a change inAutotype logic, preventing multiple autotype call 2018-02-04 23:13:15 +01:00
thez3ro
ba4ef52e9e improve Window Associations UI/UX 2018-02-04 23:13:15 +01:00
thez3ro
12a4b9aaa3 reorder functions by logic 2018-02-04 23:13:15 +01:00
thez3ro
a9479fd662 refactor autotype sequences and entry-point functions 2018-02-04 23:13:15 +01:00
thez3ro
b5cabbeb43 add support for multiple autotype sequence, fix #559 2018-02-04 23:13:15 +01:00
thez3ro
065a85e05c fix effective autotype sequence 2018-02-04 23:13:15 +01:00
Janek Bevendorff
a5745eee5d Merge branch 'release/2.3.0' into develop 2018-02-04 23:06:23 +01:00
Janek Bevendorff
92e42b581f Merge pull request #1457 from keepassxreboot/feature/fix-qstandardpaths-include
Re-add QStandardPaths include to fix compilation error on macOS
2018-02-04 23:05:30 +01:00
Janek Bevendorff
a8471f1617 Re-add QStandardPaths include to fix compilation error on macOS,
resolves #1455
2018-02-04 22:56:31 +01:00
Janek Bevendorff
e0809a2ffe Merge pull request #1456 from prometheanfire/fix-keepass-browser-popup
Fix keepass-browser based popups on tiling WMs
2018-02-04 22:50:34 +01:00
Matthew Thode
78e962e30a Fix keepass-browser based popups on tiling WMs
If we set the window flags after showing/activating the window the
window will not pop up.

Fixes: https://github.com/keepassxreboot/keepassxc/issues/1452
2018-02-04 15:43:45 -06:00
Janek Bevendorff
a5993afb60 Merge pull request #1450 from hifi/feature/sshagent-old-keys
SSH Agent: Support old unencrypted DSA and RSA keys
2018-02-04 20:54:20 +01:00
Toni Spets
cbb70cdc7c SSH Agent: Support old unencrypted DSA and RSA keys 2018-02-04 15:59:08 +02:00
Janek Bevendorff
90eea14b8c Merge pull request #1338 from frostasm/refactor-details-widget
Refactor details widget
2018-02-04 14:56:29 +01:00
frostasm
b264614b9d Use ElidedLabel in DetailsWidget 2018-02-04 15:51:30 +02:00
frostasm
6007e0de71 Refactor DetailsWidget 2018-02-04 15:51:30 +02:00
Janek Bevendorff
c4b9d54085 Merge branch 'release/2.3.0' into develop 2018-02-04 14:10:20 +01:00
Janek Bevendorff
3ba42ee32e Merge pull request #1453 from keepassxreboot/feature/fix-settings-persistence
Fix settings not being persisted on exit
2018-02-04 14:09:00 +01:00
Janek Bevendorff
3443c36087 Update translation source file 2018-02-04 13:56:53 +01:00
Janek Bevendorff
7cc3d911ba Fix plural handling in KDF settings 2018-02-04 13:56:49 +01:00
Janek Bevendorff
527868a6b3 Guarantee that configuration values are committed to disk on exit 2018-02-04 13:56:46 +01:00
Janek Bevendorff
af9e1e79cd Merge pull request #1451 from hifi/feature/sshagent-select-key
SSH Agent: Always use freshly selected key
2018-02-03 11:22:32 +01:00
Toni Spets
e987479d04 SSH Agent: Always use freshly selected key 2018-02-03 08:19:08 +02:00
Janek Bevendorff
ba04ad8603 Merge pull request #1430 from keepassxreboot/hotfix/compiler
Minor cmake updates
2018-02-01 21:45:36 +01:00
Jonathan White
d911987787 Ensure yubikey libs are dynamic; bump to c99 2018-02-01 21:40:47 +01:00
Janek Bevendorff
8218c728a8 Merge pull request #1446 from keepassxreboot/feature/1445-fix-totp-history
Create history item when setting up a TOTP seed
2018-02-01 20:22:14 +01:00
Janek Bevendorff
17e3f1c21f Create history item when setting up a TOTP seed, resolves #1445 2018-02-01 19:16:17 +01:00
Janek Bevendorff
9c51e1af18 Merge pull request #1441 from keepassxreboot/feature/update-contributors
Update list of contributors
2018-01-31 00:42:52 +01:00
Janek Bevendorff
a326d72be9 Update list of contributors 2018-01-31 00:24:51 +01:00
Janek Bevendorff
fc556d15f8 Merge pull request #1242 from keepassxreboot/feature/nightly-builds
Add support for snapshot vs release builds
2018-01-30 22:03:18 +01:00
Jonathan White
053d998103 Appimage docker container bump to resolve dependencies 2018-01-30 21:21:24 +01:00
Jonathan White
d8649f7a60 Check for tag to automatically determine release build 2018-01-30 21:21:24 +01:00
Jonathan White
5b72407746 Deconflict snapshot warning with http deprecation warning 2018-01-30 21:21:23 +01:00
Jonathan White
3e2443a861 Add support for nightly builds to release tool 2018-01-30 21:21:23 +01:00
Janek Bevendorff
bed921c593 Merge pull request #1385 from keepassxreboot/refactor/saving
Correct saving files to DropBox/Drive/OneDrive
2018-01-28 21:19:15 +01:00
Jonathan White
8c8a61ddfe Disable auto save for GUI tests 2018-01-28 14:06:17 -05:00
Jonathan White
6a4b275d40 Minor changes to address comments 2018-01-28 11:31:56 -05:00
Jonathan White
3db9a86a4c After 3 failed saves, offer to disable safe saves
* User is prompted to disable safe saves after three failed attempts
* Completely retooled basic settings to group settings logically
* Added setting for "atomic saves"
2018-01-28 11:28:39 -05:00
Jonathan White
d7f408e455 Correct saving files to DropBox/Drive/OneDrive
* Replaces QSaveFile with QTemporaryFile
* Added backup before save config setting
* This method may cause data loss (see comments)
2018-01-28 11:28:33 -05:00
Janek Bevendorff
490f77137d Merge pull request #1436 from keepassxreboot/feature/fix-locale-source-string
Make 'Welcome to KeePassXC $VERSION' string properly translatable
2018-01-28 16:52:18 +01:00
Janek Bevendorff
07a2077c1e Make 'Welcome to KeePassXC $VERSION' string properly translatable, resolves #1236 2018-01-28 16:44:36 +01:00
Janek Bevendorff
2849e19d49 Merge pull request #283 from didier13150/feature/dbus
Add DBus support
2018-01-28 14:12:33 +01:00
thez3ro
98a89e4f2c add function for locking DBs from DBus, fix #687 2018-01-25 23:48:58 +01:00
Didier Fabert
e560650bf3 Add DBus support: control keepassxc on desktop events (load database when log in, close all databases when log out) 2018-01-25 23:48:58 +01:00
Janek Bevendorff
46c58b3202 Merge pull request #1425 from keepassxreboot/feature/generify-attachment-test-to-kdbx3
Move duplicate attachment test to TestKeePass2Format
2018-01-25 02:35:00 +01:00
Janek Bevendorff
b7c5283a66 Move duplicate attachment test to TestKeePass2Format, so it's also run for KDBX3 2018-01-25 02:27:42 +01:00
Janek Bevendorff
998fc9890e Merge pull request #1423 from keepassxreboot/feature/fix-kdbx4-attachment-mapping
Feature/fix kdbx4 attachment mapping
2018-01-25 02:03:22 +01:00
Janek Bevendorff
6a97a6dafc Add test for catching KDBX4 attachment mapping errors 2018-01-25 01:49:19 +01:00
Janek Bevendorff
c18d6b5ae5 Fix KDBX4 reader/writer attachment mapping error
Write duplicate attachments to the binary inner header only once and
skip duplicate entries when reading a KDBX4 file.
This fixes a an attachment mapping problem when an attachment appears
more than once in a database (which occurs frequently when editing attachment
entries and history is turned on)
2018-01-25 01:16:40 +01:00
Janek Bevendorff
ee03d44053 Merge pull request #1421 from keepassxreboot/feature/fix-test-compile-errors
Move useful QTest template specializations to global header file
2018-01-25 00:30:22 +01:00
Janek Bevendorff
7a6850d5fe Move useful QTest template specializations to global header file
Fix KDBX test linker errors on Windows
2018-01-24 13:32:37 +01:00
Janek Bevendorff
6e2500385c Merge pull request #1419 from keepassxreboot/feature/compression
Add compression options to database settings
2018-01-24 10:18:09 +01:00
Janek Bevendorff
aabf5f09ab Unset explicit label alignment to let platform choose 2018-01-24 00:47:33 +01:00
Janek Bevendorff
75d2895db6 Add compression option to database settings 2018-01-24 00:20:44 +01:00
TheZ3ro
50beac2baf Merge pull request #1388 from hicknhack-software/hotfix/1387_entry-size
Add extend entry-size calculation (resolved #1387)
2018-01-23 19:36:57 +01:00
Janek Bevendorff
8dd6cdeb69 Fix history truncation based on max size and extend unit tests 2018-01-23 02:31:29 +01:00
Christian Kieschnick
258438f01f Fix code-style issues
Fixed issues pointed out during review
2018-01-23 00:57:04 +01:00
Christian Kieschnick
943dc6cdd6 Add tests for modified, fix history for autotype
Added tests to ensure #1387 works
Fixed issue detected during testing - AutoTypeAssociations were not
pushed to history
2018-01-23 00:57:01 +01:00
Christian Kieschnick
045f157a63 Add extend entry-size calculation (resolved #1387)
Extended the calculation for the size of history items to match KeePass2
Small refactoring regarding readability in EntryAttachements
2018-01-23 00:56:58 +01:00
Janek Bevendorff
83f1a53d32 Merge pull request #1414 from keepassxreboot/feature/1360-fix-totp-crash
Fix multiple TOTP issues, resolves #1360
2018-01-23 00:40:12 +01:00
Janek Bevendorff
0f5307437c Fix multiple TOTP issues, resolves #1360
- Fix crash when deleting TOTP entry
- Fix memory leak when selecting TOTP entries
- Fix TOTP update timeout on DetailsWidget
- Fix TOTP settings attributes not being applied before first call to totpSeed()
2018-01-23 00:22:04 +01:00
Janek Bevendorff
28ebdb72a0 Merge pull request #1412 from keepassxreboot/feature/exit-autotype-dialog
Quit autotype dialog with esc key
2018-01-23 00:21:34 +01:00
thez3ro
745d255808 add cyclic arrowkey navigation for entryview 2018-01-23 00:12:36 +01:00
thez3ro
e4088d5e6c quit autotype dialog with esc key 2018-01-22 15:44:42 +01:00
Janek Bevendorff
9c641ddf6b Merge pull request #1407 from keepassxreboot/feature/update-translations
Update translations
2018-01-21 16:09:43 +01:00
Janek Bevendorff
c824b0694e Only update source files and pull in translations, don't push anything 2018-01-21 15:54:47 +01:00
Janek Bevendorff
36b4d5a120 Update locale files and pull in latest translations 2018-01-21 15:54:47 +01:00
Janek Bevendorff
bbc5ff5103 Use actual full en_US translation for English and drop en_plurals file 2018-01-21 15:54:46 +01:00
Janek Bevendorff
3c98ce43c6 Fix file selection filter on *nix systems 2018-01-21 15:54:46 +01:00
Janek Bevendorff
8da3efa2c2 Add disambiguation info to source strings 2018-01-21 15:54:46 +01:00
Janek Bevendorff
3605bec8e0 Change 'unget' error message to untranslatable qWarning 2018-01-21 15:54:46 +01:00
Janek Bevendorff
0c0c558ff7 Fix Auto-Type locale source strings 2018-01-21 15:54:46 +01:00
Janek Bevendorff
7a4e74950c Add missing Q_DECLARE_TR_FUNCTIONS to Kdbx classes
Remove obsolete Kdbx3XmlWriter header
2018-01-21 15:54:46 +01:00
Janek Bevendorff
0a876c8af9 Merge pull request #1305 from fonic/improved_entry_view
Improve and extend entry view table
2018-01-21 15:34:19 +01:00
Fonic
8c78aca69e Code cleanup
Comprehensive code cleanup:
- formatting
- comments
- obsolete code
2018-01-21 15:17:05 +01:00
Fonic
9ff648177c Update entry model test to account for additional column 'Paperclip'
Update comparison values of modelProxy->columnCount() to account for
additional column 'Paperclip'
2018-01-21 15:17:05 +01:00
Fonic
161d0ea50f Add column 'Paperclip' to entry view table
Add additional column 'Paperclip' to entry view table:
- add column itself
- add display role data provider
- add sort role data provider
- update total column count
2018-01-21 15:17:05 +01:00
Fonic
e3a5a22b84 Update state syncer to account for new features
Update state syncer (class DatabaseWidgetStateSync) to account for new
features:
- properly sync view state when switching tabs
- properly read/write view state from/to config

Update classes EntryModel and EntryView to consistenly name list/search
modes. Before, both classes defined list mode as 'group mode' and search
mode as 'entry list mode', which differed from naming in other classes
such as DatabaseWidget.
2018-01-21 15:17:05 +01:00
Fonic
18be1a0254 Add 'copy-on-doubleclick' feature to entry view table
Add 'copy-on-doubleclick' feature to entry view table by extending
already existing DatabaseWidget::entryActivationSignalReceived().

Currently, username, password and notes are copyied on doubleclick,
while doubleclicking URL still opens browser as before.

Can easily be extended to account for other/additional columns
(switch-case).
2018-01-21 15:17:05 +01:00
Fonic
66291ecc38 Update GUI test to account for changed column indices
Update clicks within entry view referencing column indices to account
for changed column indices due to new way of showing/hiding column Entry
Model::ParentGroup. This column now has fixed index 0 wether it's shown
or hidden, thus all indices need to be shifted by +1 when not in search
mode
2018-01-21 15:17:05 +01:00
Fonic
31d73626e5 Add header context menu to entry view table
Add header context menu to entry view table (accessible using right
click on header), providing:
- Actions to toggle 'Hide Usernames' / 'Hide Passwords'
- Actions to toggle column visibility
- Actions to resize columns
- Action to reset view to defaults
2018-01-21 15:17:05 +01:00
Fonic
268035ff9e Update entry model test to account for additional columns
Update comparison values of modelProxy->columnCount() to account for
additional columns 'Password', 'Notes', 'Expires', 'Created', 'Modified',
'Accessed' and 'Attachments'
2018-01-21 15:17:05 +01:00
Fonic
34a7ba4477 Add additional columns to entry view table
Add additional columns 'Password', 'Notes', 'Expires', 'Created',
'Modified', 'Accessed' and 'Attachments' to entry view table:
- add columns themselves
- add display role data providers
- introduce/apply sort role
- add sort role data providers
- add settings to display usernames/passwords visible/hidden
- minor addition to EntryModel::columnCount() as advised by Qt
  documentation
2018-01-21 15:17:05 +01:00
Janek Bevendorff
5e30214e4c Merge pull request #1408 from hifi/fix/sshagent-recyclebin
Ignore SSH keys in Recycle Bin, fixes #1396
2018-01-20 17:18:58 +01:00
Toni Spets
5231d07fdf Ignore SSH keys in Recycle Bin, fixes #1396 2018-01-20 17:59:46 +02:00
Janek Bevendorff
cfe8ca9836 Always initialize m_httpClient to nullptr to avoid accidental dereferencing, resolves #1410 2018-01-20 14:45:22 +01:00
Janek Bevendorff
6667b79ac0 Merge pull request #1394 from varjolintu/multiple_browser_fixes
Multiple browser related fixes
2018-01-20 00:57:19 +01:00
varjolintu
8ac909b0eb Multiple browser related fixes 2018-01-20 00:47:26 +01:00
Janek Bevendorff
ee3ccf151a Merge pull request #1392 from keepassxreboot/feature/browser-settings-rework
Browser integration settings rework and KeePassHTTP deprecation
2018-01-19 23:31:05 +01:00
Janek Bevendorff
a6fd52d1f9 Show KeePassHTTP deprecation notice three times and use MessageWidget 2018-01-19 20:44:15 +01:00
Janek Bevendorff
30f77b07bb Improve KMessageWidget visuals 2018-01-19 20:40:56 +01:00
Janek Bevendorff
f520a0f272 Deprecate KeePassHTTP and introduce WITH_XC_NETWORKING CMake option 2018-01-19 20:40:54 +01:00
Janek Bevendorff
f2b3181735 Rework browser integration settings 2018-01-19 20:40:51 +01:00
Janek Bevendorff
780608894e Merge pull request #1397 from keepassxreboot/feature/fix-kdbx-tests
Refactor and extend file format tests
2018-01-19 09:51:03 +01:00
Janek Bevendorff
e20cecf7aa Remove obsolete ToDbExporter tests 2018-01-18 01:51:41 +01:00
Janek Bevendorff
679a7b6ec2 Add test for KDBX 2 -> 3 upgrade 2018-01-18 01:51:39 +01:00
Janek Bevendorff
a595239624 Refactor and extend file format tests 2018-01-18 01:51:37 +01:00
Janek Bevendorff
cdefc7ea9b Fix KDBX reader tests not being executed 2018-01-18 01:51:34 +01:00
Janek Bevendorff
92dd4c0d99 Merge pull request #1398 from keepassxreboot/feature/add-entry-while-searching
Create new entry while searching
2018-01-18 01:47:43 +01:00
thez3ro
00ce60ef20 create new entry while searching 2018-01-18 01:16:46 +01:00
Janek Bevendorff
edb7b56f1a Merge pull request #1393 from keepassxreboot/hotfix/kdbx4-attachments
Correct missing attachments in KDBX 4 write
2018-01-17 09:46:09 +01:00
Jonathan White
ef8751a795 Correct missing attachments in KDBX 4 write 2018-01-16 23:51:22 -05:00
Janek Bevendorff
243edda7f2 Merge pull request #1386 from keepassxreboot/feature/fix-browser-quirks
Fix browser integration quirks
2018-01-15 08:18:20 +01:00
Janek Bevendorff
7665bc6c63 Properly active key association dialog and main window upon unlock request 2018-01-15 01:16:32 +01:00
Janek Bevendorff
48ac3790c2 Show "key already exists" warning only if key really exists 2018-01-15 01:16:32 +01:00
Janek Bevendorff
28a67f9957 Remove old chrome extension IDs and add new official extension ID 2018-01-15 01:16:32 +01:00
Janek Bevendorff
98591c3bc0 Add tests for FileKey::Type 2018-01-14 18:26:28 -05:00
Janek Bevendorff
871332ecf0 Add warning when using legacy key file formats. 2018-01-14 18:26:28 -05:00
Janek Bevendorff
21a6c0fd89 Fix linker definition clashes between libargon2 and libsodium on Windows 2018-01-14 11:21:17 -05:00
Janek Bevendorff
002d374f0c Merge pull request #1359 from njfox/feature/csv-import-dates
Implement #1208: CSV Import Created and Modified Dates
2018-01-14 00:48:50 +01:00
Nick Fox
ed46f9ac7e Implement #1208: CSV Import Created and Modified Dates 2018-01-14 00:42:36 +01:00
Janek Bevendorff
8d5dbd74b6 Merge pull request #1379 from keepassxreboot/feature/fix-macos-building-signing
Fix compilation on macOS and DMG format compatibility issues
2018-01-13 23:58:00 +01:00
Janek Bevendorff
c2ead0e265 Fix macOS building and code signing, resolves #1344 2018-01-13 23:49:24 +01:00
Janek Bevendorff
43a620b9ff Explicitly include <QMimeData>, resolves #1366 2018-01-13 23:49:24 +01:00
Janek Bevendorff
7a55ab64d8 Merge pull request #1230 from keepassxreboot/feature/kdbx4
New Feature: KDBX4
2018-01-13 23:45:08 +01:00
Janek Bevendorff
1575088585 Add 'KDBX 4' to Argon2 KDF name and select first category in the database settings by default 2018-01-13 22:45:10 +01:00
Janek Bevendorff
96e271e8be Force Docker rebuild to fetch fixed version of libgpg-error-127 2018-01-13 14:25:02 -05:00
Janek Bevendorff
90380adc90 Fix test compilation errors
* Use legacy AES-KDF mode for KeePass1Reader
2018-01-13 14:25:02 -05:00
Janek Bevendorff
824607080a Install needed PPA packages for deployment 2018-01-13 14:25:01 -05:00
Janek Bevendorff
337a21f6d6 Save AES-KDF round parameter as quint64 2018-01-13 14:25:01 -05:00
Janek Bevendorff
6df54cfe8d Do not assert KDF UUID and improve error message 2018-01-13 14:25:00 -05:00
Janek Bevendorff
b04c8c2b6e Explicitly support AES-KDF in KDBX4 and don't convert KDBX4 files with AES-KDF back to KDBX3 when saving 2018-01-13 14:25:00 -05:00
Janek Bevendorff
d327c16904 Increase Argon2 warning threshold and set parallelism default value to number of available processors 2018-01-13 14:24:59 -05:00
Janek Bevendorff
c51585c279 Fix type conversion error in older Qt versions 2018-01-13 14:24:59 -05:00
Janek Bevendorff
df728083cc Add challenge response to key before transformation, resolves #1060
* Re-implement KDBX4 challenge-response key assembly with transform
seed instead of master seed
2018-01-13 14:24:59 -05: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
72a1c65d00 Fix memory leaks in tests 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
Janek Bevendorff
54fb0d9bd3 Show warning when using inappropriate transform round number
Increase default AES-KDF rounds to 100k
2018-01-13 14:24:57 -05:00
Janek Bevendorff
995d6646be Redesign DatabaseSettingsWidget 2018-01-13 14:24:56 -05:00
Janek Bevendorff
f7d3c90218 Fix compilation error 2018-01-13 14:24:56 -05:00
angelsl
564188b0d3 Report database read failure reason in tests 2018-01-13 14:24:55 -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
Jonathan White
7dba788d09 Correct failure in GUI tests due to widget name 2018-01-13 14:24:54 -05:00
Jonathan White
738f870e70 Correct regression in database modification signal 2018-01-13 14:24:43 -05:00
Jonathan White
542ee42313 Add Argon2Kdf and enable parameters in db settings
Note: This implementation is not yet connected to the
database itself and will corrupt existing kdbx3 db's.

* Implemented memory and parallelism parameters for Argon2Kdf
* Using libargon2; libsodium does not support Argon2d algorithm
* Moved basic rounds parameter into Kdf class
* Reimplemented benchmark algorithm; previous was utterly broken
2018-01-13 14:23:30 -05:00
Jonathan White
9140893cd3 Correct Endian function use in Random tests 2018-01-13 14:23:29 -05:00
Jonathan White
2866bc626a Removed dead code 2018-01-13 14:23:29 -05:00
Jonathan White
61c4fe8992 Formatting and consistency fixes 2018-01-13 14:23:29 -05:00
Janek Bevendorff
4592de8fb6 Make benchmark() method non-virtual 2018-01-13 14:23:28 -05:00
Janek Bevendorff
15648991fc Refactor Kdf class, remove fields concept 2018-01-13 14:23:28 -05:00
Janek Bevendorff
d00ccd2eb5 Add AsyncTask helper functions 2018-01-13 14:23:27 -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
angelsl
e5ec585f98 Use GCRY_MD_FLAG_SECURE in CryptoHash 2018-01-13 14:23:26 -05:00
angelsl
6a0d05e1ef Add support for various algorithms for kdbx4
* Add SHA512 support to CryptoHash
* Add ChaCha20 support
* Add HMAC support
* Add new HmacBlockStream, used in KDBX 4
* Add support for ChaCha20 protected stream
2018-01-13 14:23:26 -05:00
angelsl
4532108678 Add support for KDFs and cyphers to the db settings widget 2018-01-13 14:23:25 -05:00
angelsl
33974d710a Move constants in KeePass2.h to KeePass2.cpp and add a list of KDFs and ciphers 2018-01-13 14:23:25 -05:00
angelsl
a5ec7fc704 Make HashedBlockStream::atEnd report EOF correctly 2018-01-13 14:23:24 -05:00
angelsl
663b8dcb08 Remove unused SymmetricCipherSalsa20 2018-01-13 14:23:24 -05:00
angelsl
656836950e Add support for stream cipher subclasses in SymmetricCipherStream 2018-01-13 14:23:24 -05:00
angelsl
23347b392f Fix typo in Endian and add uint{16,32,64}ToBytes 2018-01-13 14:23:24 -05:00
angelsl
2e19af5032 Pull out KDFs into their own class hierarchy
In preparation for multiple KDFs in KDBX 4
2018-01-13 14:23:20 -05:00
Janek Bevendorff
6aaa89a23c Merge pull request #1370 from varjolintu/browser_cpu_fix
High CPU fix for Linux
2018-01-11 09:32:50 +01:00
varjolintu
acceb8efc9 High CPU fix for Linux 2018-01-11 08:52:17 +02:00
Janek Bevendorff
92ab7bece2 Merge pull request #1329 from adolfogc/refactor/database-widget
Refactor src/DatabaseWidget.cpp
2018-01-09 12:59:32 +01:00
Adolfo E. García
540bcd8d70 Refactor src/DatabaseWidget.cpp
Based on input from PR #1167's code review.
2018-01-09 12:47:12 +01:00
Janek Bevendorff
6476b6b1f0 Merge pull request #1356 from varjolintu/fix/macports
Fix for building with MacPorts
2018-01-06 17:08:10 +01:00
varjolintu
4316999254 Fix for building with MacPorts 2018-01-06 17:38:57 +02:00
Janek Bevendorff
5fe18400c5 Merge pull request #1355 from yan12125/browser-improve-proxy-path-handling
Improve proxy path handling for the browser plugin
2018-01-06 12:52:39 +01:00
Yen Chi Hsuan
9b5ed176cd Improve proxy path handling for the browser plugin
If "Update KeePassXC binary path automatically to native messaging
scripts on startup" is not selected (default behavior), native messaging
host JSON contains wrong path " ".
2018-01-06 18:22:10 +08:00
Janek Bevendorff
5e38faa09d Merge pull request #1354 from weslly/fix/autotype-regression
Fix auto-type regression introduced at #1174
2018-01-06 03:27:12 +01:00
Weslly
6a75fd84ab Fix auto-type regression when using {delay=x} 2018-01-05 23:53:45 -02:00
Jonathan White
8f99764f24 Merge pull request #1231 from keepassxreboot/refactor/remove-lockfile
Remove lock file and cleanup file handling
2018-01-04 20:55:09 -05:00
Jonathan White
1a7b874c60 Consistency using filepath and minor code fixes 2018-01-04 19:09:36 -05:00
Jonathan White
36e5377e6a Corrected use of canonicalfile info in autoopen code 2018-01-04 19:09:36 -05:00
Jonathan White
a80d1bbd2b Addressed comments; further streamlined code 2018-01-04 19:09:36 -05:00
Jonathan White
c2d04499ab Remove lock file and cleanup file handling [#1002] 2018-01-04 19:09:36 -05:00
Janek Bevendorff
a5a5c6723e Merge pull request #608 from varjolintu/feature/chromeKeePassXC
Support for browser extension(s) with Native Messaging
2018-01-04 23:08:37 +01:00
Janek Bevendorff
d80c6b4b7d Update CI Dockerfile to include libsodium and bump minimum supported Qt version 2018-01-04 22:56:03 +01:00
varjolintu
06518c5736 keepassxc-browser 2018-01-04 21:42:20 +01:00
Janek Bevendorff
a7e6e4ef45 Merge pull request #1351 from keepassxreboot/hotfix/undef_fortify
undefine FORTIFY_SOURCE before trying to define it. In case it's already defined by the distro
2018-01-03 20:50:12 +01:00
thez3ro
506057d202 undefine FORTIFY_SOURCE before trying to define it. In case it's already defined by the distro 2018-01-03 20:19:23 +01:00
Janek Bevendorff
ffddcb5060 Merge pull request #1258 from frostasm/pass-command-line-filenames-to-already-running-instance
Pass command line filenames to already running instance
2018-01-03 16:03:17 +01:00
frostasm
3720c5ef79 Add test for drag and drop database files into main window 2018-01-03 16:12:05 +02:00
frostasm
165d664524 Pass (using IPC) command line filenames to already running instance 2018-01-03 16:12:05 +02:00
frostasm
7b9b23b143 Implement drag&drop support in main form to open database files 2018-01-03 16:12:05 +02:00
Janek Bevendorff
cdaf25cb3e Merge pull request #1174 from keepassxreboot/feature/autotype-warning-on-long-sequences
Add warning on long Auto Type sequences
2018-01-03 13:26:46 +01:00
thez3ro
6d046f251e Remove minus since it's an invalid literal 2018-01-03 12:56:18 +01:00
thez3ro
e803076063 improve regex filtering 2018-01-03 12:56:18 +01:00
thez3ro
203960b4b5 rename to executeAutoType 2018-01-03 12:56:18 +01:00
thez3ro
3d5ff723e9 fix codestyle 2018-01-03 12:56:18 +01:00
thez3ro
a02a49a184 add test for syntax checking 2018-01-03 12:56:18 +01:00
Marco
8ca444aee0 add a method to perform the autotype sequence showing graphical dialogs
Dialogs are show when the syntax of the autotype statement is wrong or contains long delays or statements which are repeated very often
2018-01-03 12:56:18 +01:00
Marco
7ceac05395 add support for custom commands. all autotype tests are getting passed now 2018-01-03 12:56:18 +01:00
Marco
4893d99774 move autotype syntax warning and error dialogs from AutoType to DatabaseWidget in the gui folder and replaced it with a checkSyntax call.
this fixes part of why autotype test fails
2018-01-03 12:56:18 +01:00
Marco
393017cf3b fix for loops now have diffrent variables. dont know why it worked before 2018-01-03 12:56:18 +01:00
Marco
6057c9f27d fix comments 2018-01-03 12:56:18 +01:00
thez3ro
a4bdc9a71d fix syntax error 2018-01-03 12:56:18 +01:00
Marco
fbfc2e4d07 create message boxes for saving editing autotypes statements, fix multiple messages problem on autotype execution
You now get an error when you try to save incorrect autotype statements and warnings if you have high delays or much repetiton in your statement.

Also you will now only get one warning if you want to perfom high delayed or often repeated statements.
2018-01-03 12:56:18 +01:00
Marco
7bb9ea201c fix typo 2018-01-03 12:56:18 +01:00
Marco
70127bad4b extract syntax checking methods as static methods to the Autotype class 2018-01-03 12:56:18 +01:00
Marco
2bf68b7970 fix regular expressions for delays and repetition 2018-01-03 12:56:18 +01:00
Marco
d524aea779 Extended autotype syntax to allow all things in keepass2 2018-01-03 12:56:18 +01:00
Marco
4fcedc2187 check autotype syntax, high repetion, reformat code
TODO: specify what should happen when autotypesyntax incorrect
2018-01-03 12:56:18 +01:00
Marco
45cb97ec85 🐛 #216 add warning on long autotypes, enable user and pw repetition
Auto Type now shows a warning when you try to  repeat something too often.
Also you can now repeat your password and username
2018-01-03 12:56:18 +01:00
Janek Bevendorff
f5070dfa26 Merge pull request #1346 from keepassxreboot/hotfix/sshagent_autouic
Fix sshagent autouic
2018-01-03 12:36:49 +01:00
thez3ro
a89f57a2df Fix sshagent autouic 2018-01-03 01:02:44 +01:00
Weslly
ad8fca259f Merge pull request #1335 from keepassxreboot/hotfix/prevent-menu-moves
Prevent shadowing of application settings on MacOS
2017-12-28 21:20:18 -02:00
Jonathan White
0bea8a881d Prevent shadowing of application settings on MacOS 2017-12-28 18:10:56 -05:00
Janek Bevendorff
f4be4c594a Merge pull request #1330 from sts10/patch-1
Fixes internal link in README
2017-12-28 08:46:23 +01:00
Sam Schlinkert
716a5d1543 Fixes link to Note about KeePassHTTP section
Fixes internal link to "Note about KeePassHTTP" section in the README.
2017-12-27 22:59:40 -05:00
Janek Bevendorff
c7eb466e63 Merge pull request #1328 from keepassxreboot/feature/openbsd-support
Enable OpenBSD support
2017-12-27 20:50:06 +01:00
Janek Bevendorff
71f38f17cd Restrict Q_OS_UNIX ifdefs to non-Mac platforms 2017-12-27 20:35:05 +01:00
Rafael Sadowski
e29d3497eb s/Q_OS_LINUX/Q_OS_UNIX/g
Enable support for UNIX like OS.
2017-12-27 20:35:05 +01:00
Rafael Sadowski
8f4c2f5c58 Fix cmake build on OpenBSD 2017-12-27 20:35:05 +01:00
Janek Bevendorff
528e93004f Merge pull request #1154 from rk4n/feature/dark-tray-icon
Add dark tray icon parameter to settings.
2017-12-27 17:00:05 +01:00
Janek Bevendorff
23f8d58859 Add default value for DarkTrayIcon option and fix style issues 2017-12-27 16:46:56 +01:00
Vlad N
4fa00b74ad Moved dark icon logic into FilePath. 2017-12-27 16:44:26 +01:00
Vlad N
55271311c4 Added dark tray icon parameter to settings. 2017-12-27 16:44:25 +01:00
Janek Bevendorff
f80b5af432 Merge pull request #1326 from keepassxreboot/feature/refactor-keyfile-generator
Generate random 128-byte stream instead of legacy XML format when creating key files
2017-12-27 01:28:11 +01:00
Janek Bevendorff
60b3037e4a Add additional unit tests for key file generation 2017-12-27 01:21:49 +01:00
Janek Bevendorff
901bf62213 Generate random 128-byte stream instead of legacy XML format when creating key files
Add API documentation for FileKey class
Resolves #1325
2017-12-26 22:37:45 +01:00
Janek Bevendorff
ac6a9e7696 Merge pull request #1323 from keepassxreboot/feature/teamcity-build-icon
Replace Travis build icon with TeamCity build icon
2017-12-26 16:28:45 +01:00
Janek Bevendorff
d2555db952 Replace Travis build icon with TeamCity build icon 2017-12-26 13:46:33 +01:00
Janek Bevendorff
3e37cfa8ed Merge pull request #1320 from keepassxreboot/hotfix/ssh-agent-regression
Correct regression to ssh-agent from entry attachment refactor
2017-12-26 13:24:58 +01:00
Janek Bevendorff
f8b7ffcf8c Add WITH_XC_SSHAGENT flag to build config and use cmake3 package 2017-12-26 13:07:10 +01:00
Janek Bevendorff
d571f22ec0 Merge pull request #1322 from phoerious/feature/teamcity-ci
Add TeamCity integration
2017-12-26 13:05:14 +01:00
Janek Bevendorff
910c630f8e Add CI Dockerfile 2017-12-26 03:39:12 +01:00
Jonathan White
cc1ab94a4f Correct regression to ssh-agent from entry attachment refactor 2017-12-25 23:22:10 +01:00
Janek Bevendorff
497eb3c587 Merge pull request #1319 from keepassxreboot/hotfix/testcsvparser-encoding
Correct encoding ambiguity in CSV Parser unicode test
2017-12-25 21:24:35 +01:00
Jonathan White
d217da421f Correct test failures in mingw 2017-12-25 11:10:30 -05:00
Janek Bevendorff
d7a83f1b83 Merge pull request #1298 from frostasm/improve-entry-attachments-view
Improve entry attachments view
2017-12-25 14:12:15 +01:00
frostasm
80636ab083 Use EntryAttachmentsWidget in details view 2017-12-25 14:36:43 +02:00
frostasm
c490c21cd5 Move attachments view to the separate widget EntryAttachmentsWidget 2017-12-25 14:36:43 +02:00
frostasm
ed0bda98a6 Fix failing entry model test for attachment name and size 2017-12-25 14:36:41 +02:00
frostasm
0c200d360b Add attachments tab to details view 2017-12-24 20:10:12 +02:00
frostasm
90a64dbde2 Add drag and drop support for attachments view in EditEntryWidget 2017-12-24 20:10:12 +02:00
frostasm
bf5b96362f Use a table view to display the list of attachments in EditEntryWidget 2017-12-24 20:10:12 +02:00
Janek Bevendorff
0a9b250d73 Merge pull request #1307 from keepassxreboot/feature/fix-qtbase-translations
Fix missing qtbase translations
2017-12-24 14:56:42 +01:00
Jonathan White
6c2ccada13 Support built-in translations in Snap 2017-12-23 17:47:46 +01:00
Janek Bevendorff
a4cf32dce0 Bundle qtbase translations with macOS and AppImage releases 2017-12-23 17:47:46 +01:00
Janek Bevendorff
c579736158 Bundle qtbase translations on Windows 2017-12-23 17:47:46 +01:00
Janek Bevendorff
5b525eb9ca Refactor Translator class to load qtbase translations from local directory if available 2017-12-23 17:47:46 +01:00
Janek Bevendorff
b807215aec Merge pull request #1316 from yan12125/fix-preview-panel-url-label-font-size
Fix font size of URL label in the preview panel
2017-12-23 16:28:57 +01:00
Yen Chi Hsuan
fc39e8f27d Fix font size of URL label in the preview panel 2017-12-23 16:20:59 +08:00
Janek Bevendorff
fd27e6f928 Merge pull request #1153 from smarsching/issue-1148-msi-package
Build MSI packages
2017-12-22 13:26:26 +01:00
Sebastian Marsching
470ddb4704 Merge branch 'develop' into issue-1148-msi-package 2017-12-22 12:14:59 +01:00
louib
8037a79673 Add \n in merge request message. (#1310) 2017-12-20 18:08:18 -05:00
Janek Bevendorff
0c5ccba9be Merge pull request #1308 from orivej/feature/cmake-minimum-required
Fix use of cmake_minimum_required
2017-12-20 09:47:51 +01:00
Orivej Desh
f6a48f2672 Fix use of cmake_minimum_required
cmake_minimum_required() must be used before project(), otherwise it has no effect on internal cmake code that runs when project() is invoked. In particular CMP0025 does not default to NEW and CMake does not detect Clang features on Darwin, which is necessary to compile the project with the upstream (non Apple) compiler.
2017-12-20 08:25:55 +00:00
Janek Bevendorff
959103a416 Merge pull request #1303 from keepassxreboot/hotfix/snapcraft
Updated snapcraft build file
2017-12-19 09:09:57 +01:00
Jonathan White
b268671afd Updated snapcraft build file
* Removed snapd-xdg-open support; built into snapd
* Updated desktop-qt5 stage packages
2017-12-19 00:08:12 -05:00
Aleksa Sarai
9f8943c89b keepassxc-cli show: resolve references in output (#1280)
* core: database: make UUID searching case-insensitive

4c4d8a5e84 ("Implement search for reference placeholder based on
fields other than ID") changed the semantics of searching-by-reference
in KeePassXC. Unforuntately it contained a bug where it implicitly
became case-sensitive to UUIDs, which broke existing databases that used
references (especially since the default reference format uses a
different case to the UUID used while searching).

The tests didn't catch this because ->toHex() preserves the case that it
was provided, they have been updated to check that UUIDs are case
insensitive.

* cli: show: resolve references in output

Previously, `keepassxc-cli show` would not resolve references. This
would make it quite hard to script around its output (since there's not
interface to resolve references manually either). Fix this by using
resolveMultiplePlaceholders as with all other users of ->password() and
related entry fields.

Fixes: keepassxreboot/keepassxc#1260

* tests: entry: add tests for ref-cloned entries

This ensures that the most "intuitive" current usage of references
(through the clone feature of the GUI) remains self-consistent and
always produces the correct results. In addition, explicitly test that
case insensitivity works as expected. These should avoid similar
regressions in reference handling in the future.

* http: resolve references in AccessControlDialog

The access control dialog previously would not show the "real" username
or "real" title when asking for permission to give access to entries.
Fix this by resolving it, as we do in many other places.

Fixes: keepassxreboot/keepassxc#1269


Signed-off-by: Aleksa Sarai <cyphar@cyphar.com>
2017-12-17 10:44:12 -05:00
Aleksa Sarai
8e231dfa95 cli: show: add --attributes flag (#1289)
In order for scripting to be much simpler with `keepassxc-cli show`,
provide a simple --attributesk API which effectively is just a CLI
interface for entry->attributes()->value(...). This allows for more
extensibility and prevents changes in our output formatting from
breaking existing users of keepassxc-cli (if they use --attributes).

Signed-off-by: Aleksa Sarai <cyphar@cyphar.com>
2017-12-16 19:14:39 -05:00
Janek Bevendorff
d8f408ee83 Merge pull request #1224 from hifi/fix/sshagent-ui
SSH Agent: Split private key selection
2017-12-16 12:36:54 +01:00
Toni Spets
76e6d498cf SSH Agent: Split private key selection 2017-12-16 09:59:51 +02:00
Toni Spets
d2a59c556e Refactor fixed font selection into Font class 2017-12-16 09:59:51 +02:00
Janek Bevendorff
9b632eaaca Merge pull request #1277 from keepassxreboot/feature/releasetool-mac-signing
Separate code and GPG signing and add support for macOS codesign to release-tool
2017-12-15 10:03:52 +01:00
Janek Bevendorff
b457c8c1fa Replace signtool with osslsigncode 2017-12-15 09:51:55 +01:00
Janek Bevendorff
f257145ee0 Separate code and GPG signing and add support for macOS codesign 2017-12-15 09:51:55 +01:00
louib
8b1c8f69f7 Removing password output from Estimate. (#1281)
* Removing password output from Estimate.

* clang-format
2017-12-14 20:22:59 -05:00
Janek Bevendorff
57845851c0 Merge branch 'master' into develop 2017-12-13 19:00:04 +01:00
Janek Bevendorff
4723f66d23 Release 2.2.4
- Prevent database corruption when locked [#1219]
- Fixes apply button not saving new entries [#1141]
- Switch to Consolas font on Windows for password edit [#1229]
- Multiple fixes to AppImage deployment [#1115, #1228]
- Fixes multiple memory leaks [#1213]
- Resize message close to 16x16 pixels [#1253]
2017-12-13 18:58:56 +01:00
Janek Bevendorff
6f68d05545 Update translations 2017-12-13 18:58:52 +01:00
Janek Bevendorff
8c682c80ce Bump version to 2.2.4 2017-12-13 18:55:54 +01:00
Janek Bevendorff
525e66d566 Update release-tool with new AppStream info filename 2017-12-13 18:53:51 +01:00
Janek Bevendorff
3cde0a5b96 Add StartupWMClass to desktop file (backport from develop) 2017-12-13 18:45:23 +01:00
Janek Bevendorff
882f0ab8a5 Correct desktop and appdata file paths (backport from develop) 2017-12-13 18:45:23 +01:00
Germano Massullo
4cfa687a3f Fixed typo in XML tag
Signed-off-by: Germano Massullo <germano.massullo@gmail.com>
2017-12-13 13:14:32 +01:00
Jonathan White
0141fa2f1c Correct memory leaks in TestGroup.cpp 2017-12-12 23:46:25 -05:00
Germano Massullo
24b1ec2592 Fixed typo in XML tag
Signed-off-by: Germano Massullo <germano.massullo@gmail.com>
2017-12-12 23:44:02 +01:00
Jonathan White
28ad6ed552 Merge branch 'master' into develop 2017-12-11 21:10:25 -05:00
Jonathan White
cf94610f46 Release 2.2.3
- Prevent database corruption when locked [#1219]
- Fixes apply button not saving new entries [#1141]
- Switch to Consolas font on Windows for password edit [#1229]
- Multiple fixes to AppImage deployment [#1115, #1228]
- Fixes multiple memory leaks [#1213]
- Resize message close to 16x16 pixels [#1253]
2017-12-11 21:01:14 -05:00
Jonathan White
c7836f1157 Update translations 2017-12-11 21:01:00 -05:00
Jonathan White
228843b010 Version bump to 2.2.3 and changelog 2017-12-11 20:59:41 -05:00
Sebastian Marsching
ab31619745 Build MSI package when making a release. 2017-12-09 15:02:57 +01:00
Jonathan White
1bc2d58ae1 Corrected file link to INSTALL.md 2017-12-08 17:17:33 -05:00
Janek Bevendorff
89c59498d1 Merge pull request #1261 from chuinul/translate-extendedASCII
Enable translations for 'Extended ASCII' button
2017-12-08 22:29:35 +01:00
Nicolas Garnier
74dac174db Enable translations for 'Extended ASCII' button 2017-12-08 10:52:40 +01:00
Matt Signorini
fef8f5c453 Tidied up code. 2017-12-06 17:10:25 +01:00
Matt Signorini
8f48ede957 Add keypress handler to the password generator widget so that esc quits
in standalone mode.
2017-12-06 17:10:25 +01:00
thez3ro
8a71c680ac resize message-close to 16x16 pixels 2017-12-05 22:03:55 +01:00
TheZ3ro
5584481bef Merge pull request #1249 from mikewoudenberg/develop
Adds listener for Gnome specific screensaver activation
2017-12-05 17:32:44 +01:00
TheZ3ro
f2a464f626 Merge branch 'develop' into develop 2017-12-05 17:26:14 +01:00
TheZ3ro
44399991f4 Merge pull request #1144 from dupondje/fix_wmclass
Add WMClass to the desktop file to have proper linking to the desktop file
2017-12-04 22:51:13 +01:00
Jean-Louis Dupond
afe2967473 Add WMClass to the desktop file to have proper linking to the desktop file 2017-12-04 20:38:58 +01:00
louib
471e684151 Rename EntropyMeter -> Estimate (#1250)
* EntropyMeter -> Estimate
* Cleaning estimate
* Documentation
* clang-formatting /cli
2017-12-04 09:46:23 -05:00
Sebastian Marsching
1ce77e6f15 Remove WIX from default list of CPack generators.
This ensures that MSI packages are only built when explicitly requested
by using the "-G" parameter of cpack.
2017-12-03 17:49:15 +01:00
Mike Woudenberg
938cf8fce2 Adds listener for Gnome specific screensaver activation 2017-12-03 13:17:43 +01:00
Weslly
18c4df98ff Merge pull request #1178 from frostasm/implement-resolving-for-references-placeholders
Implement search for reference placeholder based on fields other than ID
2017-11-30 17:10:02 -02:00
frostasm
c4bbb76da4 Remove "Can't resolve placeholder" warning (#1137) 2017-11-30 20:07:16 +02:00
frostasm
d99dee9c40 Small refactoring related to references placeholders 2017-11-30 20:07:16 +02:00
Serhii Moroz
5c7d34677d Merge pull request #1 from Logout22/implement-resolving-for-references-placeholders
Implement resolving for references placeholders
2017-11-30 20:07:16 +02:00
frostasm
4c4d8a5e84 Implement search for reference placeholder based on fields other than ID 2017-11-30 20:07:16 +02:00
Martin Unzner
b44092ac43 Add capability to resolve UUID 2017-11-30 20:07:16 +02:00
frostasm
806dd5d783 Add unit test to search for referenced entries based on fields other than ID 2017-11-30 20:07:16 +02:00
Martin Unzner
d4d0f4c131 Add failing test for complete entry resolution 2017-11-30 20:07:16 +02:00
frostasm
8c7ef64fab Show "Can't resolve placeholder" warning only in debug mode 2017-11-30 20:07:16 +02:00
TheZ3ro
fb6636d182 Merge pull request #1053 from alterratz/feature/autoopen
added autoopen functionality (#477)
2017-11-30 15:13:41 +01:00
alterratz
58faae95af Merge branch 'develop' into feature/autoopen 2017-11-28 17:43:40 +01:00
alterratz
468519cd46 Merge branch 'develop' into feature/autoopen 2017-11-28 17:29:05 +01:00
Michal Kaptur
0ff75e7a88 Fixed memory leaks in non-gui tests
Fixed 2 memory leaks in production code and a few in testcases. As a
result leak_check_at_exit ASAN option does not need to turned off for
non-gui tests.
Smart pointers should be used elsewhere for consistency, but the sooner
this fixes are delivered, the lesser memory leaks are introduced.
2017-11-27 23:36:09 +01:00
Janek Bevendorff
d2063cc357 Merge pull request #1235 from keepassxreboot/feature/warnings-as-errors
Treat warning as errors
2017-11-27 22:48:03 +01:00
Janek Bevendorff
d35f3fc573 Treat warning as errors 2017-11-27 20:57:55 +01:00
Weslly
d1c26e4535 Merge pull request #1232 from weslly/fix/toolbarhide
Remove empty context menu from toolbar
2017-11-26 23:31:39 -02:00
Weslly
5fa76dfd66 Remove ShowToolbar from config 2017-11-26 22:59:48 -02:00
Weslly
525d5de30c Remove empty context menu from toolbar 2017-11-26 22:23:15 -02:00
Rich Brown
54d500737a Create docs directory and QUICKSTART.md instructions; editorial pass … (#1227)
Create docs directory and QUICKSTART.md instructions; editorial pass on README and INSTALL
2017-11-26 22:36:46 +01:00
Janek Bevendorff
8651736e61 Merge branch 'release/2.2.3' into develop 2017-11-26 18:23:48 +01:00
Janek Bevendorff
b20918b60e Add update information to AppImage and use KeePassXC PPA for YubiKey libs, resolves #1157 2017-11-26 18:18:34 +01:00
Janek Bevendorff
8905fe5a54 Use Consolas on Windows for PasswordEdit instead of the default Courier New, resolves #1226 2017-11-26 17:53:15 +01:00
Janek Bevendorff
a519ec6220 Merge pull request #1225 from hifi/fix/opensshkey-test-init
Add missing crypto init to OpenSSHKey test
2017-11-25 16:19:46 +01:00
Toni Spets
a0bfa710be Add missing crypto init to OpenSSHKey test 2017-11-25 11:32:13 +02:00
TheZ3ro
bff80dfc70 Merge pull request #1188 from keepassxreboot/feature/forget-last-path
Forget keyfile path by honoring settings
2017-11-23 23:35:23 +01:00
Jonathan White
e17b3d24bf Corrected database corruption when locked [#1113] 2017-11-23 21:32:56 +01:00
thez3ro
135e8419ae refactor saveLastDir code 2017-11-22 22:20:38 +01:00
thez3ro
cd1e0571a5 forget keyfile path, fix #1151 2017-11-22 22:20:38 +01:00
Janek Bevendorff
b0e6bcfaa0 Merge pull request #1165 from louib/feature_merge_enhancements
Merge : Synchronising groups.
2017-11-21 23:17:26 +01:00
Louis-Bertrand Varin
f25c23c051 Adding tests for Group::clone 2017-11-21 14:24:24 -05: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
2ff56fe86c Only updating custom group icon if set. 2017-11-21 14:06:40 -05:00
Louis-Bertrand Varin
9603c91877 Merge : Synchronising groups. 2017-11-21 14:06:40 -05:00
Janek Bevendorff
feba525e7c Merge pull request #757 from vsvyatski/develop
Add menu shortcut for consistency
2017-11-21 02:25:41 +01:00
Vladimir Svyatski
236846baa7 Add menu shortcut Alt+m (underlined letter) for "Empty recycle bin" for consistency with other items in the same submenu which all have "Alt+underlined letter" style shortcuts. 2017-11-21 02:12:55 +01:00
Balázs Meskó
a4d1293eaf I18n fixes in Service.cpp (#875)
Fix plural strings
2017-11-21 02:12:14 +01:00
Weslly
42abc858a4 Merge pull request #1207 from weslly/rename-totp-class
Rename QTotp class name to Totp
2017-11-20 22:39:12 -02:00
Weslly
19ac36b965 Change QTotp class name to Totp 2017-11-20 22:25:09 -02:00
Janek Bevendorff
0eb79368ea Merge pull request #1206 from joelsmith/feature/steamtotp
Add initial Steam TOTP support
2017-11-21 01:21:36 +01:00
Joel Smith
8ca52ba8f9 Add initial Steam TOTP support
* Add the concept of custom TOTP encoders, each with potential for custom
  code alphabet, length, step interval and code direction (i.e. reversed)
* Select custom encoder via overload of the digits field of a loaded entry
* Allow selection of custom encoders via the "TOTP Settings" field's
  size, as currently done by KeeTrayTOTP for Steam. Use "S" for the
  short name of the Steam custom encoder
* Allow selection of custom encoders via the "otp" field by appending
  a "&encoder=<name>" field to the URL query. For example,
  "&encoder=steam"
* Update TOTP set-up dialog to permit selection between (default,
  steam, custom) settings.
2017-11-20 17:08:01 -07:00
Janek Bevendorff
1cb91fabb6 Merge pull request #1202 from weslly/feature/mac-pasteboard
Improve macOS pasteboard handling
2017-11-20 20:35:27 +01:00
Weslly
afe48da4b1 Change MacPasteboard init object to QScopedPointer 2017-11-20 17:25:27 -02:00
Weslly
806248ebd4 Review fixes 2017-11-20 16:50:56 -02:00
Weslly
dc7322cc4a Improve macOS pasteboard handling 2017-11-20 16:09:42 -02:00
Janek Bevendorff
415e6a46f8 Merge pull request #1205 from weslly/fix/startup-slowdown
Fix startup delay
2017-11-20 18:54:18 +01:00
Weslly
f0a34de3c0 Revert 5bc000c to fix startup delay 2017-11-20 15:36:30 -02:00
Weslly
a953db6d9c Merge pull request #1204 from weslly/fix/unlock-dialog-focus
Focus database unlock dialog on macOS
2017-11-20 10:59:44 -02:00
Weslly
3b8d49104c Focus database unlock dialog on macOS, fix #1023 2017-11-20 04:26:53 -02:00
Janek Bevendorff
ac73e25d88 Merge pull request #1098 from hifi/feature/sshagent
SSH agent client support (KeeAgent compatible)
2017-11-19 13:51:46 +01:00
Toni Spets
4840c2c64f SSH agent support 2017-11-19 14:38:59 +02:00
Toni Spets
248ae9d4ba SymmetricCipher: Add keySize(), don't rely on state for sizes
This additionally makes keySize() and blockSize() work before
setting the key and IV. Required for SSH agent decryption.
2017-11-19 14:38:59 +02:00
Toni Spets
a81a5fa31b SymmetricCipher: Support CTR mode
Includes AES-256-CTR non-stream tests
2017-11-19 14:38:59 +02:00
TheZ3ro
8625e2c051 Merge pull request #1170 from adolfogc/refactor/base32-implementation
Refactor base32 implementation
2017-11-17 19:34:32 +01:00
Adolfo E. García
cc6be754f7 Remove deprecated Optional.h 2017-11-12 12:09:35 -06:00
Adolfo E. García
c9895dd5c7 Improve Base32.cpp 2017-11-12 12:09:35 -06:00
TheZ3ro
b28333ea0d Merge pull request #1139 from frostasm/add-support-for-working-with-multiple-attachments
Add support for working with multiple entry attachments at once
2017-11-12 16:55:07 +01:00
frostasm
f34b090b42 Add support for working with multiple entry attachments at once 2017-11-12 17:41:53 +02:00
frostasm
2987895370 Fix usage of LastAttachmentDir in entry attachments 2017-11-12 17:41:53 +02:00
TheZ3ro
f141325258 Merge pull request #1166 from adolfogc/hotfix/1156
Fix TOTP Segfault in DetailsWidget #1156
2017-11-12 15:33:53 +01:00
Adolfo E. García
3427a1aff4 Fix #1156
- Fix multiple activations of updateTotp by different QTimer instance timeouts.
- Fix call to updateTotp with invalid, uninitialized state
- Fix tooltip description
2017-11-11 16:25:20 -06:00
TheZ3ro
35136090cb Merge pull request #1132 from AsavarTzeth/fix-1131
Fix id and appdata validation failures (#1131)
2017-11-08 18:04:35 +01:00
AsavarTzeth
4853014a61 Fix id and appdata validation failures (#1131)
According to the AppStream specification org.keepassxc is not a valid
id. The product name is missing. This results in failures if one tries
to validate the file and makes it unusable where validation is enforced.

Additionally it seems specification don't allow the `<icon>` tag with
component type desktop-application. I am not sure this tag is strictly
necessary. In any case validation tests require this to be removed.

Fixing both of these issues ensure the AppStream appdata is compliant
and works anywhere passing validations is a requirement.

Also provide some other fixes and improvements to the appdata.

Minor validation failures:

- Fix missing captions for screenshots (`appstreamcli`)
- Fix descriptions cannot start with `<ul>` tag (`appstream-util`)

Other enhancements:

- Add more URL types, but could not add donation type because "&" is not
  allowed in the `<url>` tag and using "%26" causes
  `appstreamcli validate` to fail.
- Add `<developer_name>`, which in cases such as KeePassXC is a team name.
2017-11-08 17:51:37 +01:00
TheZ3ro
7ef61b47e3 Merge pull request #1141 from keepassxreboot/hotfix/apply-button-save
Fix apply button not saving new entries
2017-11-06 20:27:15 +01:00
Janek Bevendorff
c280eac309 Merge pull request #1171 from yan12125/patch-1
COPYING: remove a duplicated entry
2017-11-06 12:00:38 +01:00
Yen Chi Hsuan
78408cf54b COPYING: remove a duplicated entry
Already in line 46~48 :)
2017-11-06 16:05:39 +08:00
TheZ3ro
2106be6a04 Merge pull request #1164 from keepassxreboot/fix/add_db_creation_test
Add test for DB creation, re-use ChnageMasterKeyWidget instance in CsvImportWizard
2017-11-03 12:13:06 +01:00
thez3ro
d6e8e1be6e use QTemporaryFile when creating a database for guitest 2017-11-02 20:07:41 +01:00
thez3ro
c3c67f18b8 add test for DB creation 2017-11-02 20:07:41 +01:00
TheZ3ro
c8911c0dfd Merge pull request #1142 from frostasm/allow-to-change-preview-panel-height
Allow to change the height of the preview panel (fix #1135)
2017-11-02 19:56:01 +01:00
frostasm
afaa0a3493 Fix formatting brackets in DatabaseWidgetStateSync::setActive function 2017-11-02 20:47:54 +02:00
frostasm
8b00d0580b Synchronize the height of the preview panel for all open databases 2017-11-02 19:09:36 +02:00
frostasm
6bbd42bfd1 Allow to change the height of the preview panel (#1135) 2017-11-02 19:09:36 +02:00
TheZ3ro
4e6a171a42 Merge pull request #1146 from frostasm/save-main-window-geometry-only-if-window-visible
Save the geometry of main window only if the window is visible
2017-10-30 23:36:10 +01:00
Sebastian Marsching
3e9067fe8e Add build of MSI packages (#1148) 2017-10-30 15:41:20 +01:00
frostasm
ffe344ce90 Save the geometry of main window only if the window is visible 2017-10-29 11:19:43 +02:00
TheZ3ro
e100ba8362 Merge pull request #1145 from keepassxreboot/hotfix/prevent_crash_empty_database
Prevent crash with empty database
2017-10-28 21:48:45 +02:00
thez3ro
7e54bd4956 prevent crash with empty database 2017-10-28 21:30:24 +02:00
Jonathan White
4e7f2c6a4f Fix apply button not saving new entries 2017-10-28 09:23:45 -04:00
TheZ3ro
5718f3dca2 Merge pull request #1072 from frostasm/add-support-for-placeholders-on-keepasshttp-custom-fields
Add support for placeholders on the KeePassHTTP custom fields (#1067)
2017-10-26 16:22:38 +02:00
frostasm
2027429d87 Add support for placeholders on the KeePassHTTP custom fields 2017-10-26 14:30:20 +03:00
TheZ3ro
cfe4299301 Merge pull request #1124 from keepassxreboot/feature/hide_notes
Make notes hidden by default
2017-10-26 13:25:16 +02:00
thez3ro
9840470df8 hide note option 2017-10-26 13:13:31 +02:00
Joe Brown
ff01a7da1e Hint is displayed when notes section is hidden.
The alignment is a bit off, however.  A better option may be simply
disabling the QPlainTextEdit widget and stashing the actual notes
in another buffer somewhere.
2017-10-26 13:12:32 +02:00
Joe Brown
fdceeb368e Do not hide notes by default. 2017-10-26 13:12:32 +02:00
Joe Brown
0c2d71c2ce Notes section no longer visible by default.
There is a simple checkbox that allows your notes to become visible
again.  This is always disabled by default, as the use case
referenced in issue #342 (and my own use case) has confidential data
in that field.

Passes all tests (YubiKey is N/A) on Ubuntu 16.04.2 with Qt 5.5.1.
2017-10-26 13:12:32 +02:00
Joe Brown
5bc000cc31 Use fixed-width font for Notes
Fixed width, and a smaller font size, make for easier readability
in the notes section.
2017-10-26 13:12:32 +02:00
TheZ3ro
3b9ffa194d Merge pull request #879 from keepassxreboot/feature/preview-panel
Add preview panel for entries and groups, closes #454 and #558
2017-10-26 12:40:07 +02:00
Jonathan White
f3d85ae219 Cleaned up url display code 2017-10-26 12:19:23 +02:00
Jonathan White
b9fd609bb2 Resolve placeholders in entry details url 2017-10-26 12:19:23 +02:00
thez3ro
8416d69f1e fix protected transalation 2017-10-26 12:19:23 +02:00
thez3ro
71ae2a3458 remember last selected tab, hide passwords by default 2017-10-26 12:19:23 +02:00
thez3ro
9279bf7628 fix group layout, add autotype associations 2017-10-26 12:19:23 +02:00
thez3ro
d0f8d43739 remove root group from path, resize icons to 16x16 2017-10-26 12:19:23 +02:00
thez3ro
eb65822665 layout update 2017-10-26 12:19:23 +02:00
thez3ro
4a5fc2104f fix notes label 2017-10-26 12:19:23 +02:00
thez3ro
0e6fedc056 fix group parent, add details update by keyboard 2017-10-26 12:19:23 +02:00
thez3ro
1a87e30b95 add preview panel for entries and groups 2017-10-26 12:19:23 +02:00
TheZ3ro
03eda06a38 Merge pull request #910 from Typz/xfce-lock
Detect session lock on Xfce/XUbuntu 16.04
2017-10-25 17:59:38 +02:00
Francois Ferrand
263bee3c09 Detect session lock on Xfce/XUbuntu 16.04
The current code does not work with XUbuntu 16.04, which uses
light-locker to lock the screen.

I am not using a screensaver, but I suspect the screensaver activation
may have been detected by the existing events, and using it could thus
mask the issue.
2017-10-25 17:09:00 +02:00
Janek Bevendorff
0c3f352c63 Merge pull request #1119 from louib/no_reload_prompt_when_locked
Disable reload prompt when db is locked
2017-10-25 16:45:51 +02:00
Louis-Bertrand Varin
055ba4f14e Q_NULLPTR -> nullptr 2017-10-25 10:15:37 -04:00
Louis-Bertrand Varin
ecfbad0443 Disable reload prompt when db is locked 2017-10-24 20:26:02 -04:00
TheZ3ro
8f0e717404 Merge pull request #1116 from keepassxreboot/fix/view_menu
Remove view menu and disable save button
2017-10-24 20:56:00 +02:00
thez3ro
4076b37378 disable the save button if there isn't anything to save 2017-10-24 20:40:53 +02:00
thez3ro
ca59ae4f4f remove useless View menu 2017-10-24 20:40:53 +02:00
Janek Bevendorff
be88e93820 Merge branch 'release/2.2.3' into develop 2017-10-24 18:00:38 +02:00
Janek Bevendorff
83fd387f2f Fix desktop integration 2017-10-24 17:58:27 +02:00
Janek Bevendorff
cd6aac9acf Remove libdbus and libsystemd blacklisting 2017-10-24 17:58:27 +02:00
Janek Bevendorff
05d02b702a Restrict global menu fix to Qt < 5.9.0, resolves #691 2017-10-24 17:58:27 +02:00
Janek Bevendorff
f6933a8868 Ensure that YubiKey is only polled once, even if showEvent() is called twice 2017-10-24 17:58:27 +02:00
Janek Bevendorff
51b42bc7b8 Move back to Ubuntu 14.04, but with custom libyubikey and libykpers-1 builds, resolves #1114 2017-10-24 17:58:27 +02:00
TheZ3ro
e95f36c725 Merge pull request #1038 from frostasm/resolve-placeholders-in-window-association-title
AutoType: resolve placeholders for title in window associations
2017-10-23 23:38:54 +02:00
frostasm
b6387f7709 AutoType: resolve placeholders in window associations list 2017-10-23 22:55:22 +03:00
frostasm
1f5a0c0130 Add test for resolved placeholders in window association title 2017-10-23 22:55:22 +03:00
frostasm
7f2bd47849 AutoType: resolve placeholders for title in window associations 2017-10-23 22:55:22 +03:00
Janek Bevendorff
4c2bc56d2e Merge pull request #1108 from keepassxreboot/feature/clean-up-dockerfile
Reduce external dependencies and install YubiKey deps from EPEL
2017-10-22 23:09:34 +02:00
Janek Bevendorff
010690a9c7 Reduce external dependencies and install YubiKey deps from EPEL 2017-10-22 21:17:33 +02:00
Jonathan White
1a4303bbce Added tests for retention of entry history after merge 2017-10-21 22:49:20 -04:00
Janek Bevendorff
d4343a5e42 Merge branch 'master' into develop 2017-10-22 00:30:37 +02:00
Janek Bevendorff
6d46717cfc Release 2.2.2
- Fixed entries with empty URLs being reported to KeePassHTTP clients [#1031]
- Fixed YubiKey detection and enabled CLI tool for AppImage binary [#1100]
- Added AppStream description [#1082]
- Improved TOTP compatibility and added new Base32 implementation [#1069]
- Fixed error handling when processing invalid cipher stream [#1099]
- Fixed double warning display when opening a database [#1037]
- Fixed unlocking databases with --pw-stdin [#1087]
- Added ability to override QT_PLUGIN_PATH environment variable for AppImages [#1079]
- Fixed transform seed not being regenerated when saving the database [#1068]
- Fixed only one YubiKey slot being polled [#1048]
- Corrected an issue with entry icons while merging [#1008]
- Corrected desktop and tray icons in Snap package [#1030]
- Fixed screen lock and Google fallback settings [#1029]
2017-10-22 00:28:08 +02:00
Janek Bevendorff
3088371631 Update translations 2017-10-22 00:28:04 +02:00
Janek Bevendorff
880a8da68a Bump version to 2.2.2 and update changelog 2017-10-22 00:27:26 +02:00
Janek Bevendorff
067da8223d Fix build after merge 2017-10-21 22:38:24 +02:00
Janek Bevendorff
b510243dd8 Merge branch 'release/2.2.2' into develop 2017-10-21 22:23:27 +02:00
Janek Bevendorff
e2c6f50108 Support starting keepassxc-cli via 'cli' argument 2017-10-21 22:05:13 +02:00
Janek Bevendorff
51ed7a59da Fix Exec replacement 2017-10-21 22:05:13 +02:00
Janek Bevendorff
94ea91ec63 Switch from Ubuntu 14.04 to CentOS 7 2017-10-21 22:05:13 +02:00
Janek Bevendorff
76ac8dda54 Fix missing semicolon 2017-10-21 22:05:13 +02:00
Janek Bevendorff
fe77360874 Merge pull request #1076 from adolfogc/cmake-fixes
Improve CMakeLists.txt
2017-10-21 20:01:23 +02:00
Peter Nirschl
a895729b9e 🐛 Fix result propagation in SymmetricCipherGcrypt::process
The boolean 'ok' has always been set to true, regardless of possible errors.
2017-10-21 20:00:28 +02:00
Adolfo E. García
fdc7471a7b Make QtMacExtras optional 2017-10-21 10:12:28 -06:00
Adolfo E. García
7198f20d69 Improve building of macOS target 2017-10-21 10:12:28 -06:00
Adolfo E. García
de065c728f Enable option WITH_ASAN for macOS builds 2017-10-21 10:12:28 -06:00
Adolfo E. García
2fa3f5072d Simplify the ZLIB version check 2017-10-21 10:12:28 -06:00
Janek Bevendorff
aba2acb062 Use QSharedPointer 2017-10-21 14:19:00 +02:00
Louis-Bertrand Varin
a1aad5d165 Using QScopedPointer 2017-10-21 14:19:00 +02:00
Louis-Bertrand Varin
0fe06b3fbb Fix double warning display for database open 2017-10-21 14:19:00 +02:00
Janek Bevendorff
7cc6f6f2a3 Merge pull request #1059 from frostasm/add-auto-hide-functionality-to-inline-message-widget
Add auto hide functionality to inline message widget (#1006)
2017-10-21 13:47:06 +02:00
Janek Bevendorff
a298d2976f Merge pull request #1097 from keepassxreboot/meta/contributing
Remove emoji in commit messages from style guide
2017-10-21 13:40:16 +02:00
Janek Bevendorff
09e94397aa Remove emoji in commit messages from style guide 2017-10-21 13:27:25 +02:00
Adolfo E. García
86cd2c09a4 Improve readability of code 2017-10-21 13:15:02 +02:00
Adolfo E. García
f1d99dd0ed Improve testing of Base32 2017-10-21 13:15:02 +02:00
Adolfo E. García
c731f8e5c0 Fix bug in Base32::decode and add bounds check
The bug that was fixed, was affecting how the number of bytes of decoded data was  calculated and thus, even though it didn't truncate the result, it was causing the array to be resized unnecessarily.
2017-10-21 13:15:02 +02:00
Adolfo E. García
24f560aaa2 Replace Optional with QVariant 2017-10-21 13:15:02 +02:00
Adolfo E. García
905e104ba2 Revert formatting change 2017-10-21 13:15:02 +02:00
Adolfo E. García
d21ae0f94a Fix for loop's variable increment style 2017-10-21 13:15:02 +02:00
Adolfo E. García
95b0ad15ef Fix code style 2017-10-21 13:15:02 +02:00
Adolfo E. García
19eb6a8a60 Add new Base32 implementation 2017-10-21 13:15:02 +02:00
Jonathan White
85f652290b Add signtool function (Windows Only) to release-tool script 2017-10-20 18:12:10 -04:00
Janek Bevendorff
f634f20ccc Merge branch 'release/2.2.2' into develop 2017-10-20 23:08:04 +02:00
thez3ro
feb6baad05 add KeePassHTTP-Connector 2017-10-20 21:59:15 +02:00
Jonathan White
37aa4f0257 Unlock previously opened databases with --pw-stdin 2017-10-20 01:21:32 +02:00
Janek Bevendorff
190d3a1da9 Merge pull request #1078 from frostasm/implement-recursive-resolving-for-placeholders
Implement recursive resolving for placeholders
2017-10-19 21:50:57 +02:00
Janek Bevendorff
8592f7e672 Merge branch 'release/2.2.2' into develop 2017-10-19 21:45:49 +02:00
frostasm
f0fcc19915 Implement recursive resolving for placeholders 2017-10-19 22:40:26 +03:00
frostasm
e81d8beb19 Refactor Entry::resolvePlaceholder function 2017-10-19 22:40:26 +03:00
frostasm
5e0df62d7a Add processing of the url placeholders 2017-10-19 22:40:26 +03:00
Janek Bevendorff
d3208bddb0 Enhance lupdate-qt5 check 2017-10-19 21:24:31 +02:00
Janek Bevendorff
eb977b8021 Check AppStream info file before merging releases 2017-10-19 21:24:31 +02:00
Janek Bevendorff
b30eb59791 Extend desktop file and name it according to the freedesktop specification 2017-10-19 21:24:31 +02:00
Janek Bevendorff
72a6c34450 Add AppStream AppData file, resolves #1066 2017-10-19 21:24:31 +02:00
frostasm
f38fe5a9dd Disable automatic hiding of an information message for YubiKey 2017-10-19 22:22:10 +03:00
frostasm
75cfe1c5dd Add the auto hide functionality to the MessageWidget 2017-10-19 22:22:10 +03:00
Janek Bevendorff
ec8c99c3b2 Fix remaining uses of KEEPASSXC_SNAP_BUILD 2017-10-19 15:52:46 +02:00
Janek Bevendorff
6d433fecef Set KEEPASSXC_DIST_TYPE when building AppImages and Snaps 2017-10-19 15:52:46 +02:00
Janek Bevendorff
bae9dbc407 Add distribution information to debug info screen 2017-10-19 15:52:46 +02:00
Janek Bevendorff
1cbbcc0d87 Allow starting AppImage with custom extended QT_PLUGIN_PATH, resolves #1077 2017-10-19 15:52:46 +02:00
Janek Bevendorff
c0182df05e Add CLion build directories 2017-10-19 15:52:46 +02:00
Jonathan White
7d6baf53fa Merge pull request #1047 from aidanhs/aphs-fix-dockerfile
Fix builds in Docker
2017-10-18 23:05:32 -04:00
rockihack
c6f83b9ca6 Fix: Regenerate transform seed and transform master key on save. 2017-10-18 23:04:37 -04:00
Adolfo E. García
1374c68274 Add .DS_Store (mac os) to .gitignore 2017-10-15 06:56:52 -04:00
alterratz
6c3d6b7c28 Merge branch 'develop' into feature/autoopen 2017-10-13 22:38:51 +02:00
Bernhard Rieder
0fc8c37f23 changed file:/ to file:// 2017-10-12 23:30:51 +02:00
Janek Bevendorff
ab21f718ba Merge branch 'release/2.2.2' into develop 2017-10-12 14:10:20 +02:00
Janek Bevendorff
42c7256a55 Merge pull request #1056 from frostasm/add-auto-type-action-in-toolbar
Add button for auto-type in the toolbar (#1026)
2017-10-12 11:25:55 +02:00
frostasm
24333d0a19 Add toolbar button for copy url to clipboard 2017-10-12 11:46:01 +03:00
frostasm
60215cf2cf Add button for auto-type in the toolbar (#1026) 2017-10-12 11:46:01 +03:00
Jonathan White
3bc8a79b9b Both slots on Yubikey are now polled for challenge/response 2017-10-09 09:39:47 -04:00
Bernhard Rieder
6d569a86f9 added autoopen functionality (#477) 2017-10-09 13:26:24 +02:00
Aidan Hobson Sayers
84508e91da Disable apparmor to use fuse
Necessary for an Ubuntu 16.04, Docker 17.09.0-ce host
See https://github.com/moby/moby/issues/9448#issuecomment-289950103
2017-10-07 23:37:39 +01:00
Aidan Hobson Sayers
38cbb42b58 Use the renamed QT ppa (with packages named the same) 2017-10-07 23:37:34 +01:00
TheZ3ro
549fef8eb5 Merge pull request #992 from guzzard/middle-mouse-click-status-icon
Toggle main window by middle mouse clicking tray icon
2017-10-07 18:30:55 +02:00
TheZ3ro
e9dd6e6c90 Merge branch 'develop' into middle-mouse-click-status-icon 2017-10-07 17:57:38 +02:00
Louis-Bertrand Varin
2e81751131 Backporting #1008 2017-10-07 11:03:24 -04:00
louib
242faa138b Add custom icons when merging. (#1008)
* Adding missing custom icons on merge.
* qDebug when adding icon
* Adding test for merge custom icons.
2017-10-07 10:40:29 -04:00
Jonathan White
157f1134bf Select custom icon radio button after successful download 2017-10-07 08:49:14 -04:00
Jonathan White
4277364e91 Fixed cast warning 2017-10-07 07:36:25 -04:00
Weslly
0d5fec6dfc Merge pull request #1039 from weslly/fix/macos-man-dir
Fix macOS man path
2017-10-06 20:59:04 -03:00
Weslly
8a8eecbe8b Fix macOS man path 2017-10-06 00:15:23 -03:00
frostasm
4e903e4c50 Fix memory leak in DatabaseTabWidget::openDatabase function 2017-10-05 18:03:01 -04:00
frostasm
2481367ab4 Fix memory leak in DatabaseTabWidget::openDatabase function 2017-10-05 18:01:54 -04:00
Jonathan White
5098866413 Rewrote resolveUrl function to conform to various test cases 2017-10-03 18:40:32 -04:00
Jonathan White
91d746c5c0 Corrected issues with desktop and tray icons in snap build 2017-10-03 15:43:52 -04:00
rockihack
e53754d202 Fix build on mac os with qt 5.9.1 2017-10-03 15:01:54 -04:00
thez3ro
eb21eeb214 Fix GoogleFallback/Screnlock settings 2017-10-03 17:37:26 +02:00
Jonathan White
14e3d9d576 Merge remote-tracking branch 'origin/master' into develop
# Conflicts:
#	src/core/Group.cpp
2017-10-01 11:10:10 -04:00
Jonathan White
2bce9c8add Release 2.2.1
- Corrected multiple snap issues [#934, #1011]
- Corrected multiple custom icon issues [#708, #719, #994]
- Corrected multiple Yubikey issues [#880]
- Fixed single instance preventing load on occasion [#997]
- Keep entry history when merging databases [#970]
- Prevent data loss if passwords were mismatched [#1007]
- Fixed crash after merge [#941]
- Added configurable auto-type default delay [#703]
- Unlock database dialog window comes to front [#663]
- Translation and compiling fixes
2017-10-01 11:01:17 -04:00
Jonathan White
c8f5824554 Update translations 2017-10-01 10:59:14 -04:00
Jonathan White
7d3c18e1fb Version number bump 2017-10-01 10:58:00 -04:00
Jonathan White
dce691157e Added snapd-xdg-open to snap to enable URL loading 2017-09-30 11:35:16 -04:00
Jonathan White
611a74d74d Added tests to confirm mismatched passwords block saving 2017-09-29 18:11:53 -04:00
Jonathan White
de5f8082de Check for mismatched passwords BEFORE saving to prevent data loss 2017-09-29 18:11:53 -04:00
Jonathan White
59786d7bd7 Mask passwords in URL column in Entry View 2017-09-29 16:14:41 -04:00
Jonathan White
cb0b948603 Multiple fixes to custom icon downloading
* Fixes #904, icons are saved at or below 128x128
* Fixes #403, crash occurs due to dialog on non-gui thread
* Fixes #232, icon hashes calculated and compared against
2017-09-29 09:01:55 -04:00
Jonathan White
2e4f1a21b4 Clear LastDatabases and LastKeyFiles when they are disabled in settings 2017-09-28 12:07:21 -04:00
Jonathan White
649a14db84 Set "Don't Modify for Non-Data Changes" to true by default 2017-09-28 12:07:21 -04:00
Jonathan White
9ebe0b61eb Correct latent single instance lock file preventing launch
* Fixes #893
2017-09-27 18:33:59 -04:00
Josef Vitu
be312bbe4f Prevent unnecessary memory allocations 2017-09-24 18:01:01 -04:00
Josef Vitu
852e89c0df Use the emit keyword correctly 2017-09-24 18:00:40 -04:00
Adolfo E. García
522e132200 New base32 implementation (#984)
* Add new base32 encode/decode implementation
* Remove old base32 implementation
* Updates licensing info
2017-09-24 18:00:12 -04:00
Martin Wallin
0c62d8454d Toggle main window with by middle mouse clicking tray icon 2017-09-24 21:36:07 +02:00
Yen Chi Hsuan
5a18b8de77 Use CMake's variable instead of hardcoded path to install man pages 2017-09-24 09:26:25 -04:00
Jonathan White
4b6dbcaec4 Maintain entry history when merging databases (#970) 2017-09-23 12:27:05 -04:00
Jonathan White
8e7fa3d3d6 Corrected multiple Yubikey bugs (#880)
* Fixed database not showing modified after failed save
* Fixed Yubikey not being redetected after replug
* Fixed single shot challenge resulting in failed saves
2017-09-23 11:45:20 -04:00
Jonathan White
df3051038e Clear database open dialog before and after merging a database (#958) 2017-09-23 11:43:29 -04:00
louib
8e8d9f39cb Merge : making sure the group is populated. (#942) 2017-09-20 11:39:10 -04:00
TheZ3ro
f73150c998 Fixing travis build (#969) 2017-09-19 10:41:38 -04:00
Jonathan White
daef0a358c Snap fixes; enable yubikey; add cli command 2017-09-19 13:29:31 +02:00
Louis-Bertrand Varin
422bc4da30 Fixing travis build 2017-09-15 22:34:22 +02:00
Louis-Bertrand Varin
faf36190bd Fixes #940 : segfault when searching after merging 2017-09-15 22:34:22 +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
TheZ3ro
321d4e9c87 Merge pull request #922 from dvd2000/patch-1
Typo fix in Install.md
2017-09-05 14:47:57 +02:00
David Sapienza
6608de6cfe Typo fix
"document a the following link" -> "document at the following link"
2017-09-05 10:39:20 +02:00
louib
e217774678 Updating .clang-format (#915) 2017-08-31 09:24:36 -04:00
Jake Howard
091a35293a Bind delete key to delete records 2017-08-30 18:01:05 -04:00
rockihack
b95eaa5843 Fix build on mac os with qt 5.9.1 2017-08-30 17:52:21 -04:00
Janek Bevendorff
5e309feaeb Merge pull request #888 from louib/feature_keepassxc_cli_manpage
Adding manpage for keepassxc-cli
2017-08-28 14:34:00 +02:00
Janek Bevendorff
e72c56520e Merge pull request #887 from Noettore/hotfix/847-search_focus_at_startup
Solve issue #847: Keyboard autofocus on search field at startup
2017-08-28 14:32:56 +02:00
Ettore Dreucci
12b5cf0331 replaced hard function call with signal connection
Signed-off-by: Ettore Dreucci <ettore.dreucci@gmail.com>
2017-08-23 00:21:08 +02:00
Louis-Bertrand Varin
0987521cd3 Adding reporting bugs section. 2017-08-22 17:16:59 -04:00
louib
8b46feb085 Adding manpage 2017-08-22 09:57:10 -04:00
Ettore Dreucci
03bd346432 Solve issue #847: Keyboard autofocus on search filed at startup
Signed-off-by: Ettore Dreucci <ettore.dreucci@gmail.com>
2017-08-21 02:18:25 +02:00
Janek Bevendorff
cd46a08f4a Merge pull request #882 from luzpaz/misc-typo-fixes
misc. typo fixes
2017-08-18 22:27:59 +02:00
luzpaz
09d6d3c545 misc. typo fixes
non-user-facing trivial source comment fixes
2017-08-18 16:18:55 -04:00
TheZ3ro
d59ca0a9cc Merge pull request #865 from yan12125/use-correct-zlib-include-path
🐛 Use correct ZLib include path
2017-08-17 10:27:46 +02:00
Yen Chi Hsuan
ea1554915b 🐛 Use correct ZLib include path
Fixes #801
2017-08-17 11:09:37 +08:00
louib
b2107b5e27 Adding Locate command. (#829)
* Adding Locate command.

* Adding group searching in locate
2017-08-05 12:20:26 -04:00
Janek Bevendorff
ca2e448684 Merge pull request #842 from keepassxreboot/extract_tr_messages
Normalizing translated messages in Extract.
2017-08-01 23:47:09 +02:00
louib
b4dcfd650a Normalizing translated messages in Extract. 2017-08-01 17:04:47 -04:00
Yen Chi Hsuan
23b818f9e6 Support --key-file in keepassxc-cli extract (#824) 2017-08-01 16:57:19 -04:00
louib
839a61ef59 Moving keyFile after password. (#830)
* Moving keyFile after password.

* Using tr() in unlockFromStdin.
2017-07-31 10:17:08 -04:00
louib
6f9224784e Clearing deleted entries on applying. (#814) 2017-07-30 13:38:10 -04:00
louib
fe877486ff Handle FileKey::load errors (--key-file) (#825) 2017-07-29 17:24:24 -04:00
TheZ3ro
ece6969edf Merge pull request #774 from michaellass/reload-order
Open previously opened databases in correct order
2017-07-28 00:16:16 +02:00
Michael Lass
4c76c97762 Open previously opened databases in correct order
In LastOpenedDatabases, the most recently opened file is listed first and the
least recently opened one is listed last. If the databases are re-opened in this
order, LastOpenedDatabases is reversed afterwards. To avoid this, load the files
in reverse order, so LastOpenedDatabases is not modified.
2017-07-27 21:37:48 +02:00
louib
1d30283514 Feature : --key-file option for CLI (#816)
* removing readFromLine

* Removing gui-prompt

* execute uses an arg list.

* Testing with key-file

* Fixing the -a option in EntropyMeter.
2017-07-25 13:41:52 -04:00
John Lindgren
34886dc7e0 Let Qt figure out geometry of the about window. Closes: #780. 2017-07-23 02:35:21 +02:00
louib
1edabc4b3c Feature : Clip command using native programs. (#792)
* Adding a timeout option
* Using native apps.
* Renaming PasswordInput -> Utils
2017-07-22 19:40:30 -04:00
Janek Bevendorff
90468e8095 Merge branch 'release/2.2.1' into develop 2017-07-20 14:15:14 +02:00
Josh Soref
f71d0c0da8 Add ellipsis
The rule for ellipsis is simple:
If the described action requires interruption (typically by a dialog)
which requires user input, then ellipsis should be used to indicate
that triggering the menu will not immediately trigger the desired action.

Examples:
"Save" does not need an ellipsis in general (when the file name is known)
"Open..." needs an ellipsis, as one must select a file to open.
"Save as..." needs an ellipsis, as in order to save the file as something,
one must select a file name.
"About" does not need an ellipsis, while it may open a dialog, that dialog
is the desired result.
2017-07-20 14:12:58 +02:00
Markus Napp
c0f668c4bb Fix clone dialog text 2017-07-20 14:09:33 +02:00
thez3ro
cdad46377b Fix Single Istance behavior 2017-07-19 00:23:58 +02:00
thez3ro
8ed8e57012 use percentEncoding for url query 2017-07-18 18:40:18 +02:00
thez3ro
691e60d72b check if url is valid 2017-07-18 18:40:18 +02:00
thez3ro
a888de19cd update m_url scheme after fallback to http 2017-07-18 18:40:18 +02:00
thez3ro
9ceadac299 fix google favicon download over https 2017-07-18 18:40:18 +02:00
thez3ro
bb50db40d2 resolve URL only with HTTP enabled 2017-07-18 18:40:18 +02:00
thez3ro
35c6df2535 resolve URL for correct favicon downloading, fixes #240 #238 2017-07-18 18:40:18 +02:00
Josh Soref
98c812a297 Set up is used as a verb phrase not a noun 2017-07-18 16:31:25 +02:00
Josh Soref
32100be47a change help accesskey to h 2017-07-18 16:31:04 +02:00
louib
3b23e68540 Refactoring : Introducing Command class for CLI commands (#778) 2017-07-17 15:16:53 -04:00
Weslly
99e3af8ff7 Merge pull request #761 from aviks/patch-1
Fix url to build environment instructions
2017-07-10 18:26:13 -03:00
Avik Sengupta
e4c78f92d4 Fix url to build environment instructions
and format better.
2017-07-10 20:35:07 +01:00
Janek Bevendorff
4fed655621 Fix PasswordGeneratorWidget sizes and size policies to avoid squished buttons 2017-07-09 13:01:26 +02:00
Janek Bevendorff
1030cce4c7 Merge branch 'release/2.2.1' into develop 2017-07-08 12:50:24 +02:00
Janek Bevendorff
8a0085f0f8 Query lupdate-qt5 first and fall back to lupdate if it does not exist 2017-07-08 12:49:35 +02:00
Janek Bevendorff
fab9f2a9fb Update English translation source files 2017-07-08 12:49:35 +02:00
Janek Bevendorff
e4ae2f9176 Remove HTML garbage from GitHub contributors link 2017-07-08 12:49:35 +02:00
Janek Bevendorff
5e891c2caa Improve update tool to allow either updating source files, pushing or pulling changes without doing the other 2017-07-08 12:49:35 +02:00
Janek Bevendorff
7580c385da Merge pull request #737 from kyodev/kyodev-patch-2
AppImage fixes for 32 bit architectures
2017-07-03 08:49:46 +02:00
Kyodev
0d8a3fb389 add 32bits architecture 2017-07-03 03:22:18 +02:00
Kyodev
55d863adb8 fix url for functions.sh
* the url for script functions.sh was changed, see [functions.sh](https://github.com/AppImage/AppImages/raw/master/functions.sh)

* for information, **bug** on appImage: functions.sh don't build on debian, see [pull request](https://github.com/AppImage/AppImages/pull/252) then release-tool don't work.   
  the PR was accepted, and it is **important** for debian platforms
2017-07-03 01:33:59 +02:00
Janek Bevendorff
6e44eed9fe Merge branch 'release/2.2.1' into develop 2017-07-01 10:09:06 +02:00
Janek Bevendorff
2d127b8942 Use [*] placeholder in window title to get rid of Qt warning 2017-07-01 10:06:50 +02:00
Benoit Pierre
7ab6af00bc fix X11 auto-type 2017-06-30 23:14:21 +02:00
Janek Bevendorff
e53ac65518 Use form layout 2017-06-29 21:00:54 +02:00
Toni Spets
1158294323 Add UI to configure default auto-type delay 2017-06-29 21:00:54 +02:00
Toni Spets
4ecd9e7e23 Make default auto-type delay of 25ms overridable with {DELAY=X}
Additionally this fixes the increased delay when you had your own
custom delay configured and it always added 25ms on top of it.
2017-06-29 21:00:54 +02:00
Janek Bevendorff
13c678344e Merge pull request #704 from hifi/split-autotype-options
Split auto-type title and URL matching into separate options (fixes #638)
2017-06-29 11:01:31 +02:00
Janek Bevendorff
8a7de4408d Fix minimum dialog size and clean up HTML tag soup 2017-06-29 10:59:57 +02:00
Janek Bevendorff
138e3fb9f4 Merge pull request #714 from cworobetz/develop
📝 Remove reference to Google Groups from CONTRIBUTING.md
2017-06-29 10:55:47 +02:00
Cooper Worobetz
8fa875a542 📝 Remove reference to Google Groups from CONTRIBUTING.md 2017-06-28 23:47:53 -07:00
Toni Spets
ceeeee3d76 Split auto-type title and URL matching into separate options 2017-06-29 06:03:57 +03:00
Janek Bevendorff
a763b3d140 Update feature list 2017-06-29 03:51:40 +02:00
Janek Bevendorff
ea8f9c3d0d Merge pull request #711 from keepassxreboot/meta/issue-template
Update issue template to ask for debug info from new About dialog
2017-06-29 03:47:09 +02:00
Janek Bevendorff
9a22ac6ee6 Update issue template to ask for debug info from new About dialog 2017-06-29 03:39:39 +02:00
Janek Bevendorff
8a36322e28 Merge branch 'release/2.2.1' into develop 2017-06-29 03:23:14 +02:00
Weslly
a766052243 Fix edit entry header entity encoding 2017-06-29 02:50:47 +02:00
Janek Bevendorff
31ec840a8d Merge pull request #708 from keepassxreboot/feature/make-google-fallback-optional
Make favicon Google fallback optional and off by default
2017-06-29 00:50:21 +02:00
Janek Bevendorff
e555937214 Make favicon Google fallback optional and off by default 2017-06-29 00:32:47 +02:00
Janek Bevendorff
3799833cfa Merge pull request #707 from weslly/fix/settings-apply
Fix apply button on settings window (repost)
2017-06-28 22:22:46 +02:00
Weslly
231f90a8e5 Fix apply button on settings window 2017-06-28 17:09:32 -03:00
Janek Bevendorff
4a6fddf280 Merge pull request #705 from weslly/fix/settings-apply
Fix apply button on settings window
2017-06-28 21:34:38 +02:00
Weslly
2822f5fd0a Fix apply button on settings window 2017-06-28 13:56:20 -03:00
Janek Bevendorff
0359c1845a Merge pull request #701 from LocutusOfBorg/zxcvbn
detect system zxcvbn library
2017-06-28 16:13:25 +02:00
Julian Andres Klode
34ff6d5f6b Change from ZXCVBN_FOUND to ZXCVBN_LIBRARIES to be aligned with other libraries 2017-06-28 15:19:09 +02:00
Gianfranco Costamagna
640b09c6b2 Add code to detect a system library for zxcvbn, with fallback to the embedded one in case it is not found 2017-06-28 15:13:57 +02:00
Janek Bevendorff
079e383319 Merge pull request #690 from vsvyatski/develop
Added proper plural processing in CSV importer (localization)
2017-06-27 13:49:33 +02: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
Janek Bevendorff
45c2a98b5b Merge pull request #672 from keepassxreboot/hotfix/666-appimage-qt-library-path
Use correct Qt library path, resolves #666
2017-06-26 18:16:46 +02:00
Janek Bevendorff
6b9137ac6c Use correct Qt library path, resolves #666 2017-06-26 16:56:29 +02:00
Janek Bevendorff
35e86efbce Require CMake 3.1.0 and update Dockerfile 2017-06-26 16:41:16 +02:00
Janek Bevendorff
549eaefdb8 Fix release tool build checks 2017-06-26 16:41:04 +02:00
Weslly
b553af8fd0 Bring unlock database dialog to the front 2017-06-26 16:40:36 +02:00
Jonathan White
9d1c58a218 Merge pull request #664 from keepassxreboot/feature/fix-release-building
Fix release building and require CMake 3.1+
2017-06-25 20:59:09 -04:00
Janek Bevendorff
13cc117caa Require CMake 3.1.0 and update Dockerfile 2017-06-26 02:26:15 +02:00
Janek Bevendorff
2727f75919 Fix release tool build checks 2017-06-26 02:26:11 +02:00
Jonathan White
0f2f6621b5 Merge remote-tracking branch 'origin/master' into develop 2017-06-25 20:23:05 -04:00
Jonathan White
caa49a8ef3 Release 2.2.0
- Added YubiKey 2FA integration for unlocking databases [#127]
- Added TOTP support [#519]
- Added CSV import tool [#146, #490]
- Added KeePassXC CLI tool [#254]
- Added diceware password generator [#373]
- Added support for entry references [#370, #378]
- Added support for Twofish encryption [#167]
- Enabled DEP and ASLR for in-memory protection [#371]
- Enabled single instance mode [#510]
- Enabled portable mode [#645]
- Enabled database lock on screensaver and session lock [#545]
- Redesigned welcome screen with common features and recent databases [#292]
- Multiple updates to search behavior [#168, #213, #374, #471, #603, #654]
- Added auto-type fields {CLEARFIELD}, {SPACE}, {{}, {}} [#267, #427, #480]
- Fixed auto-type errors on Linux [#550]
- Prompt user prior to executing a cmd:// URL [#235]
- Entry attributes can be protected (hidden) [#220]
- Added extended ascii to password generator [#538]
- Added new database icon to toolbar [#289]
- Added context menu entry to empty recycle bin in databases [#520]
- Added "apply" button to entry and group edit windows [#624]
- Added macOS tray icon and enabled minimize on close [#583]
- Fixed issues with unclean shutdowns [#170, #580]
- Changed keyboard shortcut to create new database to CTRL+SHIFT+N [#515]
- Compare window title to entry URLs [#556]
- Implemented inline error messages [#162]
- Ignore group expansion and other minor changes when making database "dirty" [#464]
- Updated license and copyright information on souce files [#632]
- Added contributors list to about dialog [#629]
2017-06-25 17:52:43 -04:00
Jonathan White
9a6a787191 Update translations 2017-06-25 17:52:35 -04:00
Jonathan White
836c996544 Cleanup before release
* Cleanup cpack commands
* Add default config for portable install
* Force translation downloads
* Reduce translation download threshold to 40%
2017-06-25 17:50:47 -04:00
Weslly
3a5f19f7fd Merge pull request #663 from weslly/fix/unlock-dialog
Bring unlock database dialog to the front
2017-06-25 14:40:26 -03:00
Weslly
e708ef96d1 Bring unlock database dialog to the front 2017-06-25 12:21:32 -03:00
Jonathan White
b8028ff318 Updated snapcraft file to compile on Ubuntu 17.04 2017-06-24 11:24:41 -04:00
Jonathan White
9a7e6850d6 Merge remote-tracking branch 'origin/develop' into release/2.2.0 2017-06-23 14:21:30 -04:00
louib
fdbed324f7 Outputing newline after password prompt. (#659) 2017-06-22 16:25:24 -04:00
louib
95baf25648 failure when showing help (#658) 2017-06-21 19:09:44 -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
Jonathan White
6dfeea1980 Merge remote-tracking branch 'origin/develop' into release/2.2.0 2017-06-21 17:20:57 -04:00
Jonathan White
9d6cf95cf0 Merge pull request #629 from keepassxreboot/feature/contributors
Added contributors to about dialog
2017-06-21 17:20:19 -04:00
Jonathan White
97c8603478 Removed font size on text labels in about dialog 2017-06-21 17:09:00 -04:00
Jonathan White
7654983d3d Added contributors to about dialog; general cleanup 2017-06-21 17:08:54 -04:00
Weslly
3c2b4b1560 Merge pull request #654 from weslly/feature/search-scope-option
Add option to limit search to current group
2017-06-21 16:35:53 -03:00
Janek Bevendorff
cb63df2bac Merge pull request #656 from weslly/feature/disable-stdin-echo
Disable stdin echo when entering passwords on cli
2017-06-21 17:26:37 +02:00
Weslly
400073c7cc Disable stdin echo when entering passwords on cli 2017-06-21 11:15:59 -03:00
Weslly
7438d6db18 Change text color of search label 2017-06-21 07:23:53 -04:00
Weslly
719323e9c3 Add option to limit search to current group 2017-06-21 01:01:50 -03:00
Jonathan White
a3020b6787 Bumped version to 2.2.0 and populated CHANGELOG 2017-06-20 23:14:44 -04:00
Jonathan White
702a68307a Allow multiple instances when debugging (#651) 2017-06-20 16:17:35 -04:00
louib
344235b1e1 Fix CLI help and version options. (#650)
* Correct handling of --help and --version

* Moving arguments building up.

* Only manipulating argv is the command is valid.

* Not a failure when --help

* Not using showVersion()
2017-06-19 11:09:19 -04:00
Jonathan White
8d70167acf Add support for portable config settings (#645)
* Add support for portable config settings

* Use applicationDirPath instead of currentPath
2017-06-19 10:49:02 -04:00
louib
b75b9fb7d6 Adding gui prompt to List command. (#643) 2017-06-18 14:43:02 -04:00
Janek Bevendorff
f817eaa5c8 Merge pull request #644 from louib/adding_save_database_file
Adding saveToFile function to Database.
2017-06-15 23:11:24 +02:00
Louis-Bertrand Varin
574c5cf1b2 clang-format Database.cpp 2017-06-15 10:31:14 -04:00
Louis-Bertrand Varin
e0e8521eb9 Removing m_writer from CsvImportWidget.h 2017-06-15 10:26:37 -04:00
Louis-Bertrand Varin
46f7d97176 Using saveToFile in Merge command. 2017-06-14 20:00:09 -04:00
Louis-Bertrand Varin
f3f6f6a493 Adding saveToFile function. 2017-06-14 19:50:19 -04:00
TheZ3ro
139658b5c3 Merge pull request #632 from keepassxreboot/fix/copyrightNotice
Update and fix copyright headers
2017-06-14 19:15:53 +02:00
thez3ro
11607b108c fix base32 copyright 2017-06-14 15:54:43 +02:00
thez3ro
62748f6d4c Add missing icon to COPYING 2017-06-14 15:54:43 +02:00
thez3ro
a53b111182 Update and fix copyright headers 2017-06-14 15:54:43 +02:00
Jonathan White
6ffca842e6 Add "Apply" button to entry and group edit windows (#624) 2017-06-13 20:55:53 -04:00
Weslly
107684e393 Merge pull request #634 from weslly/fix/macos-dialog-localizations
Fix macOS file dialog localization
2017-06-11 17:32:42 -03:00
Weslly
08930ddffb Fix macOS file dialog localization 2017-06-10 10:50:53 -03:00
Jonathan White
458c76d3b7 Update release tool and snapcraft.yaml (#610)
* Release tool checks snapcraft file for version and added removable-media plug

* Added 'check' command to release tool. Code cleanup.
2017-06-06 10:35:15 -04:00
TheZ3ro
1847312c7a Merge pull request #622 from keepassxreboot/fix/passgen-buttons
Fix password generator button's enable behavior
2017-06-05 23:38:02 +02:00
thez3ro
3015baf6e6 fix password generator button's enable behavior 2017-06-04 21:06:27 +02:00
TheZ3ro
3c51455fa3 Merge pull request #606 from hifi/add-copy-to-pwgen
Add copy button to password generator (#595)
2017-06-04 20:44:04 +02:00
TheZ3ro
1028172dfc Merge branch 'develop' into add-copy-to-pwgen 2017-06-04 20:33:56 +02:00
Yen Chi Hsuan
2b6059dee3 🐛 Fix building with Qt 5.9 (closes #528) 2017-06-01 17:05:07 -04:00
Janek Bevendorff
79ba3a28e6 Merge pull request #603 from hifi/fix-search-leak
🔒 Fix search information leak
2017-05-29 00:19:25 +02:00
Toni Spets
398201f592 Add copy button to password generator (#595) 2017-05-28 20:47:33 +03:00
Toni Spets
6f4b5fc71a 🔒 Fix search information leak 2017-05-28 18:08:38 +03:00
TheZ3ro
9fc83c7cd5 Merge pull request #602 from hifi/fix-bugs-link
Fix about dialog report bugs link functionality
2017-05-28 10:21:57 +02:00
TheZ3ro
e6cddf797a Merge branch 'develop' into fix-bugs-link 2017-05-28 10:12:55 +02:00
TheZ3ro
8a1b83048f Merge pull request #601 from keepassxreboot/hotfix/compile-error
Fixed variable naming error that prevented compiling on Windows
2017-05-28 09:31:03 +02:00
Toni Spets
ac5c0c5efa Fix about dialog report bugs link functionality 2017-05-28 08:11:02 +03:00
Jonathan White
bfee734669 Fixed variable naming error that prevented compiling on Windows 2017-05-27 21:33:30 -04:00
TheZ3ro
22d533c451 Merge pull request #510 from antongulenko/single-instance
Single instance
2017-05-27 13:06:23 +02:00
TheZ3ro
adf61d9878 Merge branch 'develop' into single-instance 2017-05-27 09:18:13 +02:00
louib
dcc8094ce4 Add the GUI prompt option to the merge command. (#589) 2017-05-25 13:07:24 -04:00
louib
c3bd5d21aa Adding a GUI prompt for password. (#587) 2017-05-22 17:53:41 -04:00
Janek Bevendorff
a75746c7c1 Merge pull request #588 from louib/find_by_name
Find entry by title.
2017-05-21 21:26:55 +02:00
Louis-Bertrand Varin
eeafe77614 Find entry by title. 2017-05-21 13:51:16 -04: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
6c050c55d9 Merge pull request #583 from keepassxreboot/feature/macos-minimize-onclose
Add trayicon on macOS and enable minimize onClose
2017-05-19 18:51:17 +02:00
Janek Bevendorff
379e17c3bc Merge branch 'develop' into feature/macos-minimize-onclose 2017-05-19 18:08:40 +02:00
thez3ro
c0640e49ee revert old if structure 2017-05-19 14:30:09 +02:00
TheZ3ro
07d4668670 Merge pull request #582 from weslly/feature/macos-minimize-onclose
Fix quit submenu on macOS tray icon
2017-05-19 14:19:11 +02:00
Weslly
1c54d24962 Fix quit submenu on macOS tray icon 2017-05-19 00:50:24 -03:00
Janek Bevendorff
aa64b2ee69 Merge pull request #580 from keepassxreboot/feature/430-fix-unclean-shutdown
Feature/430 fix unclean shutdown
2017-05-17 23:18:46 +02:00
Janek Bevendorff
00dc4b9ace Ignore double close event on macOS, resolves #430 2017-05-17 22:44:09 +02:00
Janek Bevendorff
c69a978589 Merge pull request #545 from keepassxreboot/feature/lock-db-on-session-lock-#134
Lock database on ScreenSaver/SessionLock
2017-05-17 22:43:39 +02:00
thez3ro
b69b50c6c6 fix codestyle and use C++11 keywords 2017-05-17 13:04:02 +02:00
Louis-Bertrand Varin
970525cfd4 Styling + CFNotificationName -> CFStringRef 2017-05-17 13:04:02 +02:00
thez3ro
533136fb0e Add file header, use nullptr instead of NULL, fix code style 2017-05-17 13:04:02 +02:00
Jonathan White
3218cb9ace Moved locking checkboxes into security settings 2017-05-17 13:04:02 +02:00
Jonathan White
147c000ef1 Corrected nullptr crash on Windows when going to sleep 2017-05-17 13:04:02 +02:00
thez3ro
8ddd0b2f6f Revert travis settings 2017-05-17 13:04:02 +02:00
thez3ro
1b7b2ff456 Added freedesktop DBus, fixed codestyle 2017-05-17 13:04:02 +02:00
Claudio Bantaloukas
289e98ed5b remove commented code 2017-05-17 13:04:02 +02:00
Claudio Bantaloukas
d1acd75068 Moved "Lock databases on screen lock" setting to security settings
widget.
Changed wording and preference variable name for conformity with
existing settings.
2017-05-17 13:04:02 +02:00
Claudio Bantaloukas
44085df592 Avoid warning in MacOS implementation 2017-05-17 13:04:02 +02:00
Claudio Bantaloukas
a3af8fc0ea Fix Linux ScreenLockListener implementation 2017-05-17 13:04:02 +02:00
Claudio Bantaloukas
c6ecf48ccd enable OS X build with Xcode 8.2 2017-05-17 13:04:02 +02:00
Claudio Bantaloukas
2de5a9d281 Lock database when OS is locked (Windows, DBus, macOS implementations) #134 2017-05-17 13:04:02 +02:00
Janek Bevendorff
a6bc3e9790 Merge pull request #571 from yan12125/feature/allow-disable-app-bundle
Allow disabling .app bundles on Mac
2017-05-14 20:02:19 +02:00
Yen Chi Hsuan
c53f5baceb Merge branch 'develop' into feature/allow-disable-app-bundle 2017-05-14 22:58:17 +08:00
Yen Chi Hsuan
3822625e77 Allow disabling .app bundles on Mac 2017-05-14 22:51:12 +08:00
Louis-Bertrand Varin
00ae123736 Adding .clang-format file. 2017-05-14 09:20:13 -04:00
Robert van Bregt
c167693ae4 add fix for mac qt build environment
Signed-off-by: Robert van Bregt <robert@robertvanbregt.nl>
2017-05-14 09:19:35 -04:00
Jens Rutschmann
9a59a124aa Compare window title with entry URLs during autotype matching. (#556)
* Compare window title with entry URLs during autotype matching.

* Adapted option label to reflect that both entry title and URL are used for auto-type window matching.
2017-05-13 19:02:54 -04:00
TheZ3ro
03f00c5526 Merge pull request #566 from metbril/patch-1
Update README.md
2017-05-12 18:43:49 +02:00
TheZ3ro
bdb6153b3e Merge pull request #562 from keepassxreboot/feature/unlocked-tray-icon
Use a dedicated tray icon when the database is unlocked.
2017-05-12 18:42:48 +02:00
Robert
70357be029 Update README.md
changed reference to new build instructions
2017-05-12 10:54:01 +02:00
thez3ro
8d6db27b34 add tray icon to MacOS X 2017-05-11 13:44:08 +02:00
Jan Hellwig
c06e55df81 Use a dedicated tray icon when the database is unlocked. 2017-05-11 12:27:40 +02:00
Anton Gulenko
58463bc3dc Fixed string literals 2017-05-09 14:13:25 +02:00
VukoDrakkeinen
d1310b3337 Raise existing instance
Closes #193
2017-05-09 14:06:45 +02:00
thez3ro
b3160a17ea enable minimize on close for macOS 2017-05-08 23:27:54 +02:00
Janek Bevendorff
9f819061cd Merge pull request #550 from keepassxreboot/bugfix/autotype-delay
Added small delays to autotype on Linux
2017-05-07 11:36:51 +02:00
Jonathan White
e4e2e886e8 Added small delays to autotype on Linux 2017-05-06 23:31:28 -04:00
Janek Bevendorff
278baaac80 Merge pull request #549 from keepassxreboot/hotfix/cmake_updates
Cleanup CMake files
2017-05-07 00:56:41 +02:00
Jonathan White
5c8809e55d Update cmake files, fixes #331 2017-05-06 11:51:43 -04:00
Jonathan White
af4f56abfd Support vscode 2017-05-05 20:20:27 -04:00
TheZ3ro
1870b957f5 Merge pull request #519 from weslly/feature/totp
Add TOTP support
2017-05-04 11:15:05 +02:00
Weslly
3640053415 Parse TOTP input string before first save 2017-05-03 22:00:58 -03:00
Weslly
d3ed14ebb7 Display TOTP code split in halfs 2017-05-03 21:26:08 -03:00
Weslly
4c9b8c7794 Review fixes 2017-05-03 21:04:12 -03:00
Weslly
bf57a28654 Add TOTP support 2017-05-03 20:55:14 -03:00
TheZ3ro
7040bef27e Merge pull request #538 from keepassxreboot/feature/extendedAscii
Add support for extended ASCII in password generator
2017-05-01 18:13:09 +02:00
thez3ro
40b4dc3b61 Only printable extended ASCII 2017-05-01 01:18:42 +02:00
thez3ro
b474d34cf0 Add Extended ASCII to password generator 2017-04-28 21:36:43 +02:00
Louis-Bertrand Varin
fa7c945363 Adding EASCII character class. 2017-04-28 19:01:02 +02:00
TheZ3ro
c40a7a5265 Merge pull request #536 from weslly/hotfix/elcapitan
Fix compile issue on OSX El Capitan
2017-04-28 16:43:36 +02:00
Weslly
a94efddfe6 Fix compile issue on OSX El Capitan 2017-04-28 11:03:15 -03:00
TheZ3ro
99d97acb1d Merge pull request #490 from seatedscribe/feature/csv-field-names
[CSV import window] add option to choose dropdown menu field names from CSV
2017-04-28 14:48:53 +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
louib
ad79162061 Merge pull request #520 from vsvyatski/develop
Add context menu entry to clean the Recycle Bin in databases
2017-04-22 19:14:45 -04:00
Vladimir Svyatski
c613f44991 Finish test cases for emptying recycle bin 2017-04-23 00:50:26 +03:00
Vladimir Svyatski
583f60a3f3 Add recycle bin test cases body 2017-04-22 19:25:52 +03:00
Vladimir Svyatski
5792bf1a85 Add skeleton for TestDatabase.cpp and test data for unit tests for the "empty recycle bin" functionality 2017-04-22 12:38:36 +03:00
Vladimir Svyatski
75c16d1cbb Add requested source code changes 2017-04-21 18:07:57 +03:00
Vladimir Svyatski
dea65b637c Add context menu entry to clean the Recycle Bin in databases
This implements the feature request (issue) #503.
2017-04-21 15:41:58 +03:00
TheZ3ro
b01953a5a3 Merge pull request #515 from yan12125/fix-new-database-shortcut
🐛 Really set the shortcut for "New database" to Ctrl+Shift+N
2017-04-21 10:47:02 +02:00
TheZ3ro
47aec87a56 Merge branch 'develop' into fix-new-database-shortcut 2017-04-21 10:40:07 +02:00
Yen Chi Hsuan
b706e8f1fd 🐛 Really set the shortcut for "New database" to Ctrl+Shift+N
Ref: #316
Fixes #513
2017-04-21 12:59:20 +08:00
Jonathan White
1f469a7acc Merge pull request #464 from louib/feature/ignoreGroupExpansion
Ignore group expansion and other minor changes when marking database as dirty
2017-04-20 21:09:56 -04:00
Louis-Bertrand Varin
07050f6e9c Generalizing option to non-data changes. 2017-04-20 19:24:43 -04:00
louib
ab3e009d76 Merge pull request #517 from weslly/fix-compile
Fix OSX El Capitan compilation issue
2017-04-20 19:12:20 -04:00
Weslly
5fbf4af596 Fix OSX El Capitan compilation issue 2017-04-20 17:53:12 -03:00
louib
943c3155af Merge pull request #514 from vsvyatski/develop
Add a scrollbar in the AddEntry window when on "small" screen
2017-04-20 11:17:58 -04:00
Vladimir Svyatski
9477437256 🐛 Fix for the issue #108: Add a scrollbar in the AddEntry window when on "small" screen 2017-04-20 16:56:54 +03:00
Vladimir Svyatski
c7b4b8d3c3 Merge remote-tracking branch 'upstream/develop' into develop 2017-04-19 08:32:13 +03:00
Vladimir Svyatski
52a264cc2b Moved the "Clear history" menu item caption from MainWindow (Database > Recent Databases > Clear history) to the string resources. As a result it is no longer hardcoded and can be translated. 2017-04-18 21:52:16 -04:00
Vladimir Svyatski
dc3e223875 Moved the "Clear history" menu item caption from MainWindow (Database > Recent Databases > Clear history) to the string resources. As a result it is no longer hardcoded and can be translated. 2017-04-18 16:04:32 +03:00
Mike Kasberg
70bd598ead Fix #447 - Menu Accelerators for Database & Tools 2017-04-16 19:33:53 -04:00
TheZ3ro
f03aec1709 Merge pull request #502 from weslly/patch-2
Set fixed size for entry clone dialog
2017-04-14 14:13:55 +02:00
Weslly
3c85d29ece Set fixed size for entry clone dialog 2017-04-14 09:02:22 -03:00
TheZ3ro
2099f977fb Merge pull request #501 from weslly/patch-1
Remove maximum size from label in clone dialog
2017-04-14 12:17:55 +02:00
Weslly
6f25c4750d Remove maximum size from label in clone dialog 2017-04-14 07:09:20 -03:00
TheZ3ro
4e40b6cf3e Merge pull request #500 from weslly/hotfix/clone-dialog-layout
Fix clone dialog layout
2017-04-14 10:50:36 +02:00
Weslly
7620baee80 Fix clone dialog layout 2017-04-13 22:43:51 -03:00
Janek Bevendorff
4c491d850d Merge pull request #495 from keepassxreboot/hotfix/snapcraft
Add autotype plugin to snapcraft build
2017-04-12 03:30:43 +02:00
Jonathan White
e2c088a5c9 Add autotype plugin to snapcraft build 2017-04-11 19:13:02 -04:00
Janek Bevendorff
82b3013b0f Merge pull request #487 from seatedscribe/feature/cmake-deprecated
Substitute deprecated commands with feature_summary
2017-04-11 16:27:58 +02:00
seatedscribe
73b0188126 Substitute deprecated commands with feature_summary 2017-04-10 22:05:53 +02:00
Janek Bevendorff
82abdeb15f Merge pull request #485 from keepassxreboot/hotfix/nodep-on-debug
Disable DEP and ASLR for Debug builds
2017-04-10 01:15:36 +02:00
Jonathan White
4cd461f57a Disable DEP and ASLR for Debug builds. This allows for debugging with GDB. 2017-04-09 18:52:54 -04:00
Jonathan White
5696178de4 Merge pull request #373 from keepassxreboot/feature/new-password-generator
New Diceware passphrase generator
2017-04-09 12:36:56 -04:00
Typz
5f5f7ec3dd Reference Safari extension to support KeepassHTTP 2017-04-09 12:06:45 -04:00
Louis-Bertrand Varin
c9498868e9 Removing pledge campaign. 2017-04-09 11:59:50 -04:00
Louis-Bertrand Varin
f95e33cf7b Updating readme with logo 2017-04-09 11:59:50 -04:00
Jonathan White
c0f62e5633 Merge pull request #427 from weslly/feature/autotype-clearfield
Add auto-type {CLEARFIELD}
2017-04-09 11:56:40 -04:00
Jonathan White
3de4395d5e Merge remote-tracking branch 'origin/master' into develop 2017-04-09 10:28:15 -04:00
Jonathan White
cb283bb95a Release 2.1.4 2017-04-09 10:20:52 -04:00
Jonathan White
b81d8bf97a Update translations 2017-04-09 10:20:52 -04:00
Jonathan White
918db68c52 Bumped version to 2.1.4, updated CHANGELOG 2017-04-09 09:54:55 -04:00
Janek Bevendorff
047fe9a422 Merge pull request #483 from weslly/fix/menu-roles
Set menu roles for application menu on macOS
2017-04-09 14:29:06 +02:00
Weslly
8a78616351 Set menu roles for application menu on macOS 2017-04-09 07:44:17 -03:00
Weslly
89382f6306 Implement support for auto-type {{} and {}} 2017-04-08 23:29:32 -04:00
Louis-Bertrand Varin
beba23ea2e Prioritize explicit databases. 2017-04-08 17:46:06 -04:00
Weslly
aba0633a78 Bring HTTP Confirmation window to the front 2017-04-08 17:40:43 -04:00
Weslly
0aa20f931d Change windows clearfield key sequence to avoid keyboard layout errors 2017-04-08 02:13:51 -03:00
Weslly
eefea5444e Change auto-type sequence on mac to support other keyboard layouts 2017-04-08 02:13:51 -03:00
thez3ro
a6e142dd02 support different keyboard layout 2017-04-08 02:13:51 -03:00
Weslly
6c1f023768 More accurate hotkey sequence 2017-04-08 02:13:51 -03:00
thez3ro
ea1ffe7fb5 use QT key instead of native ones 2017-04-08 02:13:51 -03:00
Weslly
36250f5180 Use AutoTypePlatformWin::sendKey instead of creating a new function 2017-04-08 02:13:51 -03:00
Weslly
268f09160d Add command modifier support for AutoTypePlatformMac::sendKey 2017-04-08 02:13:51 -03:00
thez3ro
7620395f92 Add auto-type {CLEARFIELD} on XCB 2017-04-08 02:13:51 -03:00
Weslly
28678f4e06 Add auto-type {CLEARFIELD} on Windows 2017-04-08 02:13:51 -03:00
Weslly
720ae949aa Rename ClearField keypress helper function 2017-04-08 02:13:51 -03:00
Weslly
32fe0493c4 Add auto-type {CLEARFIELD} on mac 2017-04-08 02:13:51 -03:00
Francois Ferrand
86e88c18b0 More compact search widget
* Move the search icon (with popup menu) and clear icon inside the
line edit
* Move the search widget to the right-side of toolbar
2017-04-06 07:19:56 -04:00
Jonathan White
e684e230a6 Bumped up version of KeePassHTTP to 1.8.4.2
* No protocol changes required
* Fixes #439
2017-04-04 22:58:33 -04:00
Louis-Bertrand Varin
a8b647e886 Typo in label for ignoreGroup. 2017-04-04 10:23:48 -04:00
Louis-Bertrand Varin
bce747e7f9 Ignore group expansion. 2017-04-04 10:21:45 -04:00
Weslly
b7546b45b3 Fix compiler warnings 2017-03-29 17:28:19 -04:00
thez3ro
f183260ad6 make stackedWidget index using enum 2017-03-29 17:27:14 -04:00
louib
0f057a8351 Merge pull request #437 from keepassxreboot/fix/recentDatabases
Fix RecentDatabases
2017-03-29 15:10:09 -04:00
thez3ro
7ca13b3d51 fix RecentDatabases, closes #386 2017-03-29 17:09:33 +02:00
Jonathan White
1418712b4c Added xvfb to Dockerfile 2017-03-26 23:25:17 -04:00
Janek Bevendorff
e5021ffa01 Merge pull request #436 from keepassxreboot/hofix/dockerfile
Updated Dockerfile to meet new library requirements
2017-03-26 16:07:55 +02:00
Jonathan White
572212c374 Updated Dockerfile to meet new library requirements 2017-03-26 09:55:06 -04:00
TheZ3ro
e0c6981b40 Merge pull request #417 from seatedscribe/feature/csv-import-button
Adds a button for CSV import option
2017-03-25 21:26:30 +01:00
TheZ3ro
0d60cadffc Merge branch 'develop' into feature/csv-import-button 2017-03-25 21:04:09 +01:00
TheZ3ro
26bc2a8c3e Merge pull request #425 from hifi/empty-bools
Treat empty booleans in XML as false
2017-03-23 11:06:48 +01:00
Toni Spets
07dafd697e Treat empty booleans in XML as false 2017-03-23 06:58:44 +02:00
seatedscribe
e48f86b289 Horizontal layout for import buttons 2017-03-22 22:34:29 +01:00
seatedscribe
e5c2b44572 Commit review request 2017-03-22 22:33:00 +01:00
seatedscribe
9307834ef0 Add a button for CSV import option 2017-03-22 22:33:00 +01:00
Janek Bevendorff
99036ec151 Merge pull request #422 from weslly/feature/osx-proxy-icon
Add proxy icon to title bar in OSX
2017-03-22 12:05:53 +01:00
Weslly
5776f43b98 Add proxy icon to title bar in OSX 2017-03-21 23:01:44 -03:00
thez3ro
0c755846fe fix camel case 2017-03-22 00:04:36 +01:00
thez3ro
19d1fa8e7d change button position 2017-03-22 00:00:23 +01:00
thez3ro
8937647d5f let every string as separator 2017-03-22 00:00:23 +01:00
thez3ro
7541f57aeb some UI fix 2017-03-22 00:00:23 +01:00
thez3ro
b6a7771a23 hide comboBoxWordList if only one worlist present 2017-03-22 00:00:23 +01:00
thez3ro
1d32695f10 permit only wordcount > 0 2017-03-22 00:00:23 +01:00
thez3ro
044feea23a remove short wordlists 2017-03-22 00:00:23 +01:00
thez3ro
0ba19cce4d fix wordlist file install 2017-03-22 00:00:23 +01:00
thez3ro
67c6e10f5f add underscore as separator 2017-03-22 00:00:23 +01:00
thez3ro
98e2c311c3 fix wordCount instead of length 2017-03-22 00:00:23 +01:00
thez3ro
be9bd16b4c Add diceware tests 2017-03-22 00:00:23 +01:00
thez3ro
d9ccde94c9 New Diceware passphrase generator, close #21 2017-03-22 00:00:23 +01:00
Janek Bevendorff
93dcf8231f Merge pull request #420 from weslly/feature/window-modified-indicator
Set window modified indicator when database has unsaved changes
2017-03-21 14:27:43 +01:00
Weslly
b6cfc82b4e Review fixes 2017-03-21 06:04:26 -03:00
Weslly
d50fe46f0e Merge branch 'develop' into feature/window-modified-indicator 2017-03-21 00:11:19 -03:00
Weslly
18b5b76a80 Get modified status directly from database object instead of using window title 2017-03-20 23:29:36 -03:00
Weslly
a87fab8d18 Set window modified indicator when database has unsaved changes 2017-03-20 21:11:17 -03:00
Janek Bevendorff
7608405a1f Merge pull request #391 from louib/fix/checkPermissions
Adding warning messages when config access error.
2017-03-19 23:36:19 +01:00
Louis-Bertrand Varin
d8ad360b38 Using format strings. 2017-03-19 16:05:52 -04:00
Louis-Bertrand Varin
a3840963e1 Checking config access errors in settings. 2017-03-18 14:00:31 -04:00
Louis-Bertrand Varin
e6b4528028 Adjust indentation. 2017-03-18 13:31:15 -04:00
Louis-Bertrand Varin
55a32c58a9 Moving access error to MainWindow. 2017-03-18 13:19:57 -04:00
Louis-Bertrand Varin
da85252347 Hide config errors by default. 2017-03-18 13:19:57 -04:00
Louis-Bertrand Varin
15a288aa5b Adding warning messages when config access error. 2017-03-18 13:19:57 -04:00
Janek Bevendorff
c4d6fa855c Force event processing after adding entries to prevent test failure 2017-03-17 07:49:19 -04:00
Janek Bevendorff
80fc1e5309 Merge pull request #146 from seatedscribe/feature/import-csv-format
Implement import of databases in CSV (Comma Separated Values) format
2017-03-17 00:09:45 +01:00
seatedscribe
506a2b99c5 Revert dialog index back to zero 2017-03-16 22:55:26 +01:00
seatedscribe
06bbd6e066 Get rid of Q_{EMIT,SLOTS,SIGNALS} 2017-03-16 21:46:53 +01:00
seatedscribe
3fcf342fbc Merge remote-tracking branch 'upstream/develop' into feature/import-csv-format 2017-03-16 21:25:38 +01:00
Florin Andrei
7e515d9d5b Update README.md
typo
2017-03-16 21:21:11 +01:00
Janek Bevendorff
a045594b57 Merge pull request #405 from keepassxreboot/fix/copyURL
Fix regex for placeholders and add regression test
2017-03-16 21:12:13 +01:00
thez3ro
0e5a1cc8e4 resolve placeholders for custom attributes 2017-03-16 20:38:56 +01:00
thez3ro
e3602e3c75 fix regex for placeholders, fix #402, add regression test 2017-03-16 20:32:29 +01:00
TheZ3ro
4cccf28b4d Merge pull request #254 from keepassxreboot/feature/keepassxc-cli
KeePassXC CLI
2017-03-16 19:01:23 +01:00
thez3ro
558c75a452 Add ASAN to keepassxc-cli 2017-03-16 18:41:12 +01:00
Louis-Bertrand Varin
a661c17eca Adding group uuid to list. 2017-03-16 10:09:50 -04:00
Louis-Bertrand Varin
fd9d372e6a Adding second prompt for merge. 2017-03-16 10:09:50 -04:00
Louis-Bertrand Varin
cf23343911 Using openDatabaseFile in List. 2017-03-16 10:09:50 -04:00
Louis-Bertrand Varin
780e23301b Using openDatabaseFile in Merge. 2017-03-16 10:09:50 -04:00
Louis-Bertrand Varin
993f90cb2c Extracting openDatabaseFile. 2017-03-16 10:09:50 -04:00
Louis-Bertrand Varin
db1bf88934 Handling entry not found. 2017-03-16 10:09:50 -04:00
Louis-Bertrand Varin
15c2727a1d Adding the show command. 2017-03-16 10:09:50 -04:00
thez3ro
e01e9715b9 text for inserting password 2017-03-16 10:09:50 -04:00
Louis-Bertrand Varin
98911af396 Fixed indentation. 2017-03-16 10:09:50 -04:00
Louis-Bertrand Varin
f579345059 Change cli commands description. 2017-03-16 10:09:50 -04:00
Louis-Bertrand Varin
64dfada038 Adding available commands. 2017-03-16 10:09:50 -04:00
Louis-Bertrand Varin
7ca475f968 Add list to keepassxc-cli 2017-03-16 10:09:50 -04:00
Louis-Bertrand Varin
7636a559f9 Remove unused imports. 2017-03-16 10:09:50 -04:00
Louis-Bertrand Varin
b85941531d Keepass -> KeePass. 2017-03-16 10:09:50 -04:00
Louis-Bertrand Varin
782d1f17d1 Using ++argv 2017-03-16 10:09:50 -04:00
Louis-Bertrand Varin
e1e8f33f67 Install path on Mac. 2017-03-16 10:09:50 -04:00
Louis-Bertrand Varin
805600ad44 Installing keepassxc-cli executable. 2017-03-16 10:09:50 -04:00
Louis-Bertrand Varin
342d49d050 Missing zxcvbn dependency. 2017-03-16 10:09:50 -04:00
Louis-Bertrand Varin
992d8a90c7 Migrate entropy-meter to keepassxc-cli 2017-03-16 10:09:50 -04:00
Louis-Bertrand Varin
9b92e7f8e8 Use EXIT_FAILURE/SUCCESS 2017-03-16 10:09:50 -04:00
Louis-Bertrand Varin
bf9b23539e Add dependency + adjust styling. 2017-03-16 10:09:50 -04:00
Louis-Bertrand Varin
9cfc862b07 Disable core dumps (keepassxc-cli). 2017-03-16 10:09:50 -04:00
Louis-Bertrand Varin
52991f3d66 Add first keepassxc-cli version. 2017-03-16 10:09:50 -04:00
Janek Bevendorff
37441e3fac Merge pull request #394 from keepassxreboot/feature/asan
Add CMake option to enable address sanitizer checks
2017-03-16 00:41:15 +01:00
Janek Bevendorff
8b04040d7e Add WITH_ASAN option to README 2017-03-16 00:20:38 +01:00
Janek Bevendorff
9608464ed1 Show error message when trying to use WITH_ASAN on Windows or OS X 2017-03-15 15:23:55 +01:00
Janek Bevendorff
2587bac300 Enable ASAN option in Travis build 2017-03-15 15:23:52 +01:00
Janek Bevendorff
504bd40263 Prevent massive end-of-process leak sanitizer dump 2017-03-15 15:23:50 +01:00
Janek Bevendorff
28ec015ef4 Add -DWITH_ASAN=ON requirement to pull request template 2017-03-15 15:23:47 +01:00
Janek Bevendorff
65d4a0a8cd Add ASAN option to CMake 2017-03-15 15:23:44 +01:00
Janek Bevendorff
30847570bc Merge pull request #395 from stmllr/patch-1
Update feature description and build instructions for Yubikey
2017-03-15 15:23:20 +01:00
Steffen Müller
51b7ec2b26 List all cmake build options 2017-03-15 15:04:43 +01:00
Steffen Müller
f12c6bf748 Update feature and build instructions for Yubikey 2017-03-14 14:55:25 +01:00
louib
1b10aae74c Updating README.md (#390)
* Adding Yubikey 2FA to feature list
* Added project url
2017-03-10 21:25:56 -05:00
Janek Bevendorff
3e84c0a91a Merge pull request #127 from keepassxreboot/feature/yubikey
Add Yubikey 2FA for unlocking databases
2017-03-10 22:48:00 +01:00
Janek Bevendorff
2ff57c2eb7 Coding style fixes 2017-03-10 20:42:59 +01:00
Janek Bevendorff
bb04144fe8 Merge branch 'develop' into feature/yubikey 2017-03-10 18:53:38 +01:00
Janek Bevendorff
2f2f3e26c3 Merge pull request #389 from keepassxreboot/feature/fix-old-gcc
Enable -fstack-protector-strong flag only for GCC >= 4.9 and Clang
2017-03-10 18:53:09 +01:00
Janek Bevendorff
34f037be92 Enable -fstack-protector-strong flag only for GCC >= 4.9 and Clang 2017-03-10 18:42:10 +01:00
Janek Bevendorff
429bef6830 Remove unused debug function 2017-03-10 18:06:22 +01:00
Janek Bevendorff
15dd783d2c Merge branch 'develop' into feature/yubikey 2017-03-10 18:01:14 +01:00
Janek Bevendorff
7851d3d987 Merge pull request #371 from rockihack/DEP+ASLR
Enable DEP and ASLR.
2017-03-10 17:50:58 +01:00
Janek Bevendorff
8a942422da Harden Linux binary 2017-03-10 17:46:15 +01:00
rockihack
914b848e58 Enable DEP+ASLR for cmake modules (autotype dll). 2017-03-10 17:46:12 +01:00
rockihack
1984595d0d Enable DEP and ASLR. 2017-03-10 17:46:08 +01:00
Janek Bevendorff
a58f84a1ff Merge pull request #387 from keepassxreboot/feature/clean-code
Clean up code, replace Q_* macros with MOC keywords
2017-03-10 17:45:15 +01:00
Janek Bevendorff
8d487d31a4 Replace Q_EMIT, Q_SIGNALS and Q_SLOTS macros with MOC keywords 2017-03-10 16:12:02 +01:00
Janek Bevendorff
4c0e2af6e3 Remove UTF-8 BOM 2017-03-10 16:12:00 +01:00
Janek Bevendorff
cb51ec61f7 Replace remaining instances of Q_FOREACH with C++11 range-based for loops 2017-03-10 16:11:57 +01:00
Janek Bevendorff
2872f1706c Fix Qt deprecation warnings 2017-03-10 16:11:55 +01:00
Janek Bevendorff
da0afd3939 Fix compiler warnings 2017-03-10 16:11:52 +01:00
seatedscribe
984602b7a0 Enhance FormatStatusText(), other minor cosmetics 2017-03-08 22:59:35 +01:00
seatedscribe
705b74b3ba Merge remote-tracking branch 'upstream/develop' into feature/import-csv-format 2017-03-08 22:52:39 +01:00
Jonathan White
31494ec327 Enhance attribute entry and add protected attributes (#220)
* Allow protected attributes to be hidden
* Entry area is resizable
* Added test cases for protected attributes
2017-03-07 22:38:18 -05:00
Janek Bevendorff
a1e1a33308 Merge pull request #378 from keepassxreboot/feature/view-references
Highlight reference field in Database view
2017-03-07 22:33:06 +01:00
thez3ro
78acdf9095 pointer to referenceRegExp 2017-03-07 20:16:51 +01:00
thez3ro
40851409fb reuse referenceRegExp 2017-03-07 17:20:57 +01:00
thez3ro
a03e354504 highlight reference field in Database view 2017-03-07 17:20:57 +01:00
Jonathan White
e91a41401c Added current pledgie campaign 2017-03-06 22:08:43 -05:00
seatedscribe
f4791c19e1 Assign uuid to newborn groups 2017-03-06 23:05:06 +01:00
Janek Bevendorff
2ec500f926 Reorder link dependencies 2017-03-06 13:51:52 +01:00
Janek Bevendorff
3c1271b1c4 Merge branch 'develop' into feature/yubikey 2017-03-06 13:49:48 +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
TheZ3ro
1e1428c73d Merge pull request #370 from mrrsm/feature/references
Add feature to handle field references, resolves #75
2017-03-05 17:34:11 +01:00
TheZ3ro
4b8a2450bd Merge branch 'develop' into feature/references 2017-03-05 17:26:16 +01:00
Jonathan White
b6b2e812c1 Removed Google Groups Link and Added IRC info 2017-03-05 09:52:13 -05:00
Ryan Matthews
97150034bc Fix clone entry gui test 2017-03-04 19:49:33 -05:00
Ryan Matthews
1fe75f9420 Add feature to handle references, resolves #75
- Create popup for clone options
  - Add ability to resolve references for autotype/http/copying
2017-03-04 19:49:33 -05:00
Janek Bevendorff
6bd342f63a Merge pull request #374 from louib/fix/crashDeleteSearch
Fixes crash when deleting in search mode, resolves #369.
2017-03-04 19:33:13 +01:00
Louis-Bertrand Varin
b2fa6fca82 Fixes crash when deleting in search mode. 2017-03-04 12:19:18 -05:00
Janek Bevendorff
5df7b9aa85 Merge branch 'develop' into feature/yubikey 2017-03-03 22:04:55 +01:00
Janek Bevendorff
37c9ad8e8d Merge pull request #368 from keepassxreboot/feature/xc-flag-changes
Compile auto-type by default and encapsulate all networking code using WITH_XC_HTTP
2017-03-03 12:38:11 +01:00
Jonathan White
7ec8d4c3f6 Fixed WITH_XC_AUTOTYPE and WITH_XC_HTTP descriptions 2017-03-02 22:07:42 -05:00
Jonathan White
e81564387c Cleanup 2017-03-02 19:49:32 -05:00
Jonathan White
3139ae1528 WITH_XC_AUTOTYPE defaults to ON and WITH_XC_HTTP includes ALL networking 2017-03-02 18:44:01 -05:00
Jonathan White
cdce9e27fb Merge pull request #344 from rockihack/windows-dacl
Prevent memory dumps on windows.
2017-03-02 17:34:53 -05:00
Janek Bevendorff
9049d01a5e Merge branch 'master' into develop 2017-03-02 22:53:25 +01:00
Janek Bevendorff
76dcfb5ed0 Release 2.1.3
- Fix possible overflow in zxcvbn library [#363]
- Revert HiDPI setting to avoid problems on laptop screens [#332]
- Set file meta properties in Windows executable [#330]
- Suppress error message when auto-reloading a locked database [#345]
- Improve usability of question dialog when database is already locked by a different instance [#346]
- Fix compiler warnings in QHttp library [#351]
- Use unified toolbar on Mac OS X [#361]
- Fix an issue on X11 where the main window would be raised instead of closed on Alt+F4 [#362]
2017-03-02 21:56:54 +01:00
Janek Bevendorff
8a69421dc9 Update translations 2017-03-02 21:56:51 +01:00
Janek Bevendorff
e2d098dd9b Bump version to 2.1.3, update CHANGELOG 2017-03-02 21:56:22 +01:00
rockihack
cdf54b07c5 Add more detailed comment. 2017-03-02 19:24:31 +01:00
Janek Bevendorff
4e9bf53035 Merge branch 'release/2.1.3' into develop 2017-03-02 13:53:13 +01:00
John Lindgren
d45c2cf0f2 closeEvent() should always hide the window, never raise it.
This fixes an issue on X11 where Alt-F4 would not close the window, due
to toggleWindow() believing the window is inactive and trying to raise
it.  Avoid the problem by closing the window unconditionally.
2017-03-02 13:52:57 +01:00
Hanno
3e76f7af0f Fix stack buffer overflow in zxcvbn.
The array PossChars is filled with a 48 byte string plus a trailing zero
byte. Therefore it needs to be 49 bytes long.
2017-03-02 13:38:14 +01:00
John Lindgren
ac0178d2c7 closeEvent() should always hide the window, never raise it.
This fixes an issue on X11 where Alt-F4 would not close the window, due
to toggleWindow() believing the window is inactive and trying to raise
it.  Avoid the problem by closing the window unconditionally.
2017-03-02 06:22:57 -05:00
Janek Bevendorff
7eb7dbe0be Merge branch 'develop' into feature/yubikey 2017-03-01 23:37:52 +01:00
Janek Bevendorff
93c212f28d Merge branch 'release/2.1.3' into develop 2017-03-01 23:37:14 +01:00
Janek Bevendorff
52ab7b8865 Use unified toolbar on OS X 2017-03-01 23:36:27 +01:00
Jonathan White
4061fc7cf8 Delete a custom icon with multiple entries using it (#357)
* Made it possible to delete a custom icon with multiple entries using it
2017-02-28 22:45:40 -05:00
louib
8f15ad06f3 Merge pull request #358 from keepassxreboot/feature/update-readme
Update README to reflect current text from our website
2017-02-28 21:21:43 -05:00
Janek Bevendorff
5654dc9907 Update README to reflect current text from our website 2017-02-28 14:42:46 +01:00
Janek Bevendorff
a31c423d9e Fix compiler warnings in QHttp library 2017-02-26 22:13:22 -05:00
rockihack
6d69f0b547 Grant minimal access rights to the user associated with the process token. 2017-02-26 22:59:21 +01:00
Janek Bevendorff
04b3b3dbc5 Assign role 'NoRole' instead of 'Accept' to not mess with button order 2017-02-26 13:33:28 -05:00
Janek Bevendorff
6125988f35 Mark CMake library variables as advanced 2017-02-26 18:39:03 +01:00
Janek Bevendorff
0a85279bcb Enable Yubikey in release-tool by default 2017-02-26 00:08:48 +01:00
Janek Bevendorff
3715286eba Hide close button on YubiKey user interaction message 2017-02-25 22:09:55 +01:00
Janek Bevendorff
3230206b69 Merge branch 'develop' into feature/yubikey 2017-02-25 22:04:57 +01:00
Janek Bevendorff
0f1c518592 Merge pull request #347 from keepassxreboot/feature/optimize-message-widget
Feature/optimize message widget
2017-02-25 22:03:56 +01:00
Janek Bevendorff
9ba88838ba Use white close icon and add more padding to message widget 2017-02-25 21:45:34 +01:00
Janek Bevendorff
48366d245c Add CMake feature description 2017-02-25 17:14:10 +01:00
Janek Bevendorff
44206cf088 Fix stub compilation 2017-02-25 17:04:00 +01:00
Janek Bevendorff
84f2520924 Fix message widget style on OS X 2017-02-25 16:50:24 +01:00
Janek Bevendorff
6e2254c13d Don't fall back to ugly Qt close icon 2017-02-25 16:09:26 +01:00
Janek Bevendorff
1f6f7b614c Merge branch 'release/2.1.3' into develop 2017-02-25 04:20:08 +01:00
Janek Bevendorff
4ec2fe556a Fix impossible dialog by providing a proper question with approriate answers, resolves #202 2017-02-24 22:10:19 -05:00
Janek Bevendorff
311e7802e5 Don't show error message when trying to reload a locked database 2017-02-25 03:15:32 +01:00
rockihack
153dc620c8 Add #ifdef Q_OS_WIN guard. 2017-02-25 01:35:47 +01:00
rockihack
d0ebaff7b4 Prevent memory dumps on windows. 2017-02-25 01:12:01 +01:00
Janek Bevendorff
e25e7ff4a2 Merge branch 'develop' into feature/yubikey 2017-02-25 01:09:59 +01:00
Janek Bevendorff
0b48e68a3c Merge pull request #340 from keepassxreboot/feature/rework-settings
User interface rework of settings and "About" dialog
2017-02-25 01:08:45 +01:00
Janek Bevendorff
c248944dc1 Remove window title bar context help button 2017-02-25 00:52:51 +01:00
Janek Bevendorff
204bf81dd1 Resize About dialog to minimum size, even out layout spacings and open it as a dialog 2017-02-25 00:41:53 +01:00
Jonathan White
f25ad83a02 Removed header from autotype window listview; replaced with groupbox 2017-02-24 16:59:16 -05:00
Janek Bevendorff
a001553c5e Fix warnings about Crypto already having been initialized 2017-02-24 21:06:23 +01:00
Janek Bevendorff
9a94c6d85e Remove debug output to reduce console spam when running in debug mode 2017-02-24 20:50:06 +01:00
Janek Bevendorff
46942413db Fix unit test crash 2017-02-24 19:47:03 +01:00
Janek Bevendorff
434d0fb1c0 Merge branch 'develop' into feature/yubikey 2017-02-24 18:48:32 +01:00
Janek Bevendorff
2721317fc3 Block and unblock autoreload in timed mutex style to prevent a double challenge when saving the database and the YubiKey requires user interaction 2017-02-24 18:43:15 +01:00
Janek Bevendorff
18844d096a Make other YubiKey driver methods thread-safe 2017-02-24 17:50:19 +01:00
Janek Bevendorff
b10cb1c83c Show YubiKey message from MainWindow to ensure it's always shown when a challenge is generated 2017-02-24 17:27:27 +01:00
Janek Bevendorff
ed085776c7 Make HTTP port input field smaller 2017-02-24 16:36:51 +01:00
Janek Bevendorff
492e320628 Shorten KeePassHTTP checkbox description and only enable settings when it's checked 2017-02-24 16:36:14 +01:00
Janek Bevendorff
d6c48a5cf1 Show message when user needs to touch their YubiKey (still buggy when using multiple databases) 2017-02-24 03:25:08 +01:00
Janek Bevendorff
44ac7d152b Use better variable names 2017-02-24 01:09:24 +01:00
Janek Bevendorff
70816f90b2 Make challenge() member thread-safe 2017-02-24 01:05:31 +01:00
Janek Bevendorff
093fe5c7ef Use QSharedPointer instead of cloning YkChallengeResponseKey and make it a QObject to allow emitting signals 2017-02-23 23:52:36 +01:00
Janek Bevendorff
5e664e3a06 Use consistent terminology 2017-02-23 02:11:48 +01:00
Janek Bevendorff
0f8c12aaf4 Fix Qt Designer HTML lapses 2017-02-23 01:58:29 +01:00
Janek Bevendorff
8a75acb985 Remove productVersion() which is included in prettyProductName() 2017-02-23 01:16:56 +01:00
Janek Bevendorff
1cef08e92b Only query operating system stats on Qt >= 5.4 2017-02-23 01:08:26 +01:00
Janek Bevendorff
1d79d342c0 Rework About dialog 2017-02-23 00:49:23 +01:00
Janek Bevendorff
a58700c78f Fix selection background on Windows 2017-02-22 23:35:49 +01:00
Janek Bevendorff
79ab7a1062 Use better default row width for history view and enable alternating row colors 2017-02-22 19:10:13 +01:00
Janek Bevendorff
fcadee550e Fix layout of group edit widget 2017-02-22 18:36:51 +01:00
Janek Bevendorff
852d194b39 Adjust message widget color to look less dirty 2017-02-22 18:29:15 +01:00
Janek Bevendorff
08e50ac72b Use correct icons for group edit 2017-02-22 18:02:44 +01:00
Janek Bevendorff
d98249814d Rework HTTP settings 2017-02-22 17:53:39 +01:00
Janek Bevendorff
9715ba0c8a Rework security settings, set sane default timeout value 2017-02-22 16:08:06 +01:00
Janek Bevendorff
7abebabf4f Rework general settings page 2017-02-22 15:36:37 +01:00
Janek Bevendorff
0892d1c744 Merge branch 'develop' into fix/settingsAlignment 2017-02-22 14:15:50 +01:00
Janek Bevendorff
a938b7aadb Merge branch 'release/2.1.3' into develop 2017-02-22 14:13:58 +01:00
Janek Bevendorff
d24c9322cc Use dedicated icon for each category 2017-02-22 14:05:59 +01:00
Janek Bevendorff
ad2ccae5db Fix funny resizing bug and increase min-padding 2017-02-22 04:24:34 +01:00
Janek Bevendorff
74afd8e819 Make widget scalable and set minimum width based on the widget text 2017-02-22 03:39:13 +01:00
Janek Bevendorff
cee297b218 Move category tab widgets to separate widget and hide history category when there is no history 2017-02-22 01:05:36 +01:00
Edward Jones
873871a42c Update text in HTTP settings and a hard-to-translate command line hint 2017-02-21 22:36:11 +01:00
Janek Bevendorff
851c7b891e Show icons in vertical tab bar
TODO: use the correct icons, move vertical tab bar into separate widget
2017-02-21 21:34:13 +01:00
Janek Bevendorff
0064f5dcfd Merge branch 'develop' into fix/settingsAlignment 2017-02-21 13:15:57 +01:00
Janek Bevendorff
e93e4a9931 Allow opening of unprotected databases (but don't allow creating them) 2017-02-21 02:40:23 +01:00
Janek Bevendorff
91761a2bea Only poll YubiKey for currently visible tab 2017-02-21 02:19:11 +01:00
Janek Bevendorff
8e91a89a37 Force at least one encryption key (no more unencrypted databases) 2017-02-21 01:53:57 +01:00
Janek Bevendorff
b2650c5a96 Hide UI elements when KeePassXC was compiled without -DWITH_XC_YUBIKEY 2017-02-21 01:06:32 +01:00
Janek Bevendorff
8d3e0687a0 Restructure doc comments and make hard-coded strings translatable 2017-02-21 00:28:01 +01:00
Janek Bevendorff
2d4e08e060 Warn user when no authentication factor was chosen 2017-02-20 23:35:03 +01:00
Janek Bevendorff
5d068dfb23 Show busy indicator while scanning for YubiKeys 2017-02-20 23:20:32 +01:00
Janek Bevendorff
c49aa6beef Show error message when trying to use challenge response without YubiKey 2017-02-20 22:50:12 +01:00
Janek Bevendorff
c7defdc06f Add redetect button to ChangeMasterKeyWidget and only poll for Yubikeys when the challenge response group is enabled 2017-02-20 22:41:39 +01:00
Janek Bevendorff
eb23dda99b Remember if challenge-response was used for each database and allow to re-detect Yubikeys without closing the database first 2017-02-20 22:07:01 +01:00
Janek Bevendorff
7174549441 Align YubiKey combobox with rest of interface 2017-02-20 20:35:46 +01:00
Janek Bevendorff
a27147a75e Merge branch 'develop' into feature/yubikey 2017-02-20 20:24:38 +01:00
Jonathan White
070ad695ec Updated snapcraft build to include networking 2017-02-20 14:16:04 +01:00
Janek Bevendorff
a37a90c8c7 Merge branch 'release/2.1.3' into develop 2017-02-20 01:17:30 +01:00
Janek Bevendorff
22f161d178 Merge branch 'release/2.1.3' into develop 2017-02-20 01:14:13 +01:00
Janek Bevendorff
a56bcc8903 Set windows EXE resource properties, resolves #329 2017-02-20 00:33:11 +01:00
TheZ3ro
7613f1b726 Merge pull request #332 from keepassxreboot/hotfix/323-revert-hidpi-scaling
Revert "Enable High DPI scaling", resolves #323
2017-02-20 00:18:11 +01:00
Janek Bevendorff
cc44a833d5 Revert "Enable High DPI scaling", resolves #323
This reverts commit 188cac34ce.
2017-02-19 23:42:05 +01:00
Janek Bevendorff
f5e75b5933 Merge pull request #321 from keepassxreboot/feature/relative-path-digest-file
Only use relative path in DIGEST file
2017-02-18 15:49:48 +01:00
Janek Bevendorff
0c47c2016d Only use relative path in DIGEST file 2017-02-18 14:32:40 +01:00
TheZ3ro
5adc1a12dd Merge pull request #326 from keepassxreboot/feature/debug-config-file
Load a different config when debug option enabled
2017-02-18 14:28:08 +01:00
thez3ro
2ad5e6f06a load a different config with debug option, close #290 2017-02-18 13:52:52 +01:00
Janek Bevendorff
03ab20a4b8 Merge release 2.1.2 into develop 2017-02-17 16:22:26 +01:00
Janek Bevendorff
b9279f73fa Release 2.1.2
- Ask for save location when creating a new database [#302]
- Remove Libmicrohttpd dependency to clean up the code and ensure better OS X compatibility [#317, #265]
- Prevent Qt from degrading Wifi network performance on certain platforms [#318]
- Visually refine user interface on OS X and other platforms [#299]
- Remove unusable tray icon setting on OS X [#293]
- Fix compositing glitches on Ubuntu and prevent flashing when minimizing to the tray at startup [#307]
- Fix AppImage tray icon on Ubuntu [#277, #273]
- Fix global menu disappearing after restoring KeePassXC from the tray on Ubuntu [#276]
- Fix result order in entry search [#320]
- Enable HiDPI scaling on supported platforms [#315]
- Remove empty directories from installation target [#282]
2017-02-17 16:21:39 +01:00
Janek Bevendorff
d8923123fa Update translations 2017-02-17 16:21:35 +01:00
Janek Bevendorff
9d55369c57 Update CHANGELOG 2017-02-17 16:20:35 +01:00
Janek Bevendorff
217e95e425 Bump version to 2.1.2 2017-02-17 15:56:05 +01:00
louib
d44b811b0d Merge pull request #320 from keepassxreboot/hotfix/319-search-sort-order
Fix sort order when searching
2017-02-17 09:48:38 -05:00
Janek Bevendorff
b61ecabed3 Fix sort order when searching, resolves #319 2017-02-17 14:18:18 +01:00
Janek Bevendorff
e0e6f2b8e9 Merge branch 'release/2.1.2' into develop 2017-02-17 04:03:12 +01:00
Janek Bevendorff
ebdb10e7f9 Add release folder, CLion and KDevelop project files 2017-02-16 21:25:04 -05:00
Janek Bevendorff
c2f3396753 Re-implement favicon fetching with QHttp, resolves #306 2017-02-16 21:25:04 -05:00
Janek Bevendorff
1b8366f040 Enable High DPI scaling, resolves #221 2017-02-16 20:57:17 -05:00
Janek Bevendorff
7df6d27900 Fix and clean up CMake files 2017-02-17 02:43:25 +01:00
Jonathan White
e9e92d0892 Fully functional http plugin with qhttp 2017-02-17 02:43:25 +01:00
Janek Bevendorff
86f2c9d350 Always release socket to allow consecutive HTTPS connections 2017-02-17 02:43:25 +01:00
Janek Bevendorff
a0ebbf997d Fix Host header always having port 65535 when URI does not contain explicit port 2017-02-17 02:43:25 +01:00
Janek Bevendorff
9d5d3081dc Implement basic SSL client and server sockets 2017-02-17 02:43:25 +01:00
Jonathan White
5274826e5c Implemented qhttp in server protocol 2017-02-17 02:43:25 +01:00
Janek Bevendorff
79bd1f8121 Merge pull request #316 from keepassxreboot/fix/new-entry-shortcut
Revert new entry shortcut
2017-02-17 01:24:54 +01:00
thez3ro
b10b713e48 fix/revert new entry shortcut 2017-02-17 01:03:39 +01:00
Janek Bevendorff
6dcb83f913 Disable 'Cancel' button on ChangeMasterKeyWidget when setting an initial password for a new database, follow-up to #302 2017-02-17 00:09:36 +01:00
Janek Bevendorff
daf0b72eed Right-align expires checkbox 2017-02-16 10:35:39 +01:00
Janek Bevendorff
ac52f73af2 Pixel-perfect entry edit widgets 2017-02-16 10:35:39 +01:00
Janek Bevendorff
832465a2a3 Correct link in about dialog, fix typo and make text selectable 2017-02-16 10:35:39 +01:00
Janek Bevendorff
3768145c9b Make 'General' the default tab in HTTP settings (was 'Advanced' before) 2017-02-16 10:35:39 +01:00
Janek Bevendorff
337161be02 Change size policy of alphabet buttons to avoid tiny button sizes 2017-02-16 10:35:39 +01:00
Janek Bevendorff
510904ebea Use proper layout for database settings and fix spacings on OS X 2017-02-16 10:35:39 +01:00
Janek Bevendorff
a37b98d95d Fix edit entry form alignment and autotype settings '+'/'-' buttons 2017-02-16 10:35:39 +01:00
Janek Bevendorff
35788f8654 Fix DatabaseOpenWidget alignment on Mac OS X 2017-02-16 10:35:39 +01:00
Janek Bevendorff
ec17199feb Ask for save location when creating new DB and change default name to 'Passwords.kdbx', resolves #285 2017-02-15 22:52:43 -05:00
TheZ3ro
fa63b3ee01 Merge pull request #311 from louib/fix/github-linguist
Add github-linguist language hints.
2017-02-16 00:03:33 +01:00
Louis-Bertrand Varin
68f033fbbe Add github-linguist language hints. 2017-02-15 16:36:02 -05:00
Janek Bevendorff
37c7318097 Merge branch 'develop' into feature/yubikey 2017-02-15 00:24:28 +01:00
Janek Bevendorff
012d0ee885 Remove lambda to be compatible with Qt 5.2 2017-02-14 22:21:53 +01:00
Janek Bevendorff
9b211928a9 Fix tabbar with only a single tab not hidden anymore when minimizing to tray at startup 2017-02-14 22:21:53 +01:00
Janek Bevendorff
fed210dc38 Also show when minimize on startup is enabled, but not minimize to tray 2017-02-14 22:21:53 +01:00
Janek Bevendorff
b73549fd35 Fix a bug where the window would sometimes not show up after restoring from tray
After this patch, the window will not have the window manager's restore animation anymore, but will be reliably shown
2017-02-14 22:21:53 +01:00
Janek Bevendorff
5bb6c4d9e4 Check for isVisible() instead of isNativeMenuBar() to make global menu hack work with appmenu-qt5, follow-up fix for #271 2017-02-14 22:21:53 +01:00
Janek Bevendorff
7a344930ec Don't try to show window when 'Minimize at startup' is enabled, prevents rendering glitches in Unity, resolves #304 2017-02-14 22:21:53 +01:00
TheZ3ro
b2702efc93 Merge pull request #294 from keepassxreboot/fix/recent-list-size
Fix recentListWidget size
2017-02-12 00:40:43 +01:00
thez3ro
d530c21cd7 fix recentListWidget size 2017-02-12 00:27:33 +01:00
TheZ3ro
7f51160879 Merge pull request #292 from keepassxreboot/feature/redesign-welcome-screen
Welcome screen redesign
2017-02-12 00:07:28 +01:00
thez3ro
5c80c31a70 hide recent database; fix wording 2017-02-11 23:56:26 +01:00
Janek Bevendorff
ef53600d74 Merge pull request #293 from louib/fix/systrayOptionVisibleMac
Fix : systray option visible mac
2017-02-11 20:10:19 +01:00
Louis-Bertrand Varin
81cdcb4b62 Hide systray options on Mac 2017-02-11 13:49:19 -05:00
thez3ro
ee981c4c19 closes #204. Welcome screen redesign 2017-02-11 19:34:53 +01:00
Janek Bevendorff
589f76afca Merge pull request #291 from keepassxreboot/meta/releasetool-osx
Fix release-tool for OS X
2017-02-11 18:55:18 +01:00
Janek Bevendorff
c33ce8e0e4 Add missing target branch check 2017-02-11 18:29:50 +01:00
Janek Bevendorff
12f62df49a Parse CHANGELOG before checking out target branch 2017-02-11 17:19:46 +01:00
Janek Bevendorff
b367e105fa re-implement realpath when it does NOT exist 2017-02-11 17:08:53 +01:00
Janek Bevendorff
7ffbcebe4e Replace echo -e with printf to achieve better cross-platform compatibility 2017-02-11 17:05:28 +01:00
Janek Bevendorff
415b114dac Don't install empty icon directories, resolves #281 2017-02-11 08:20:45 -05:00
TheZ3ro
606a1f48c8 Merge pull request #289 from keepassxreboot/fix/ui-fix
insert newDatabase icon in ToolBar
2017-02-11 14:10:56 +01:00
thez3ro
91ce14a410 fix/add new database KeyShortcut 2017-02-11 13:49:33 +01:00
thez3ro
aef17b414c add document-new 22x22 icon 2017-02-11 12:47:41 +01:00
thez3ro
a70bf1ffb1 fix #203: insert newDatabase icon in ToolBar 2017-02-11 11:12:49 +01:00
Louis-Bertrand Varin
7e8679b6c3 Hiding tray settings for mac. 2017-02-10 21:59:33 -05:00
Louis-Bertrand Varin
f1e7167c65 Add spacers to align left. 2017-02-10 21:33:36 -05:00
Louis-Bertrand Varin
145f64bdfc Regroup minimize window. 2017-02-10 20:49:53 -05:00
Louis-Bertrand Varin
3821ea2c74 Reorder items. 2017-02-10 17:06:26 -05:00
Janek Bevendorff
ef082c2e1f Remove check for Qt >= 5.7 2017-02-09 21:23:46 -05:00
Janek Bevendorff
8a26cfad79 Re-register global D-Bus menu when restoring window from tray, resolves #271 2017-02-09 21:23:46 -05:00
Janek Bevendorff
38d64a34a1 Improve minimize to tray 2017-02-09 21:23:46 -05:00
Jonathan White
586e6f1e1b Merge pull request #162 from keepassxreboot/migrate/78-inline-messages
KeePassX PR Migration: #78 Inline Messages
2017-02-09 20:56:21 -05:00
Janek Bevendorff
bf419d18a9 Update KMessageWidget files in COPYING also [skip ci] 2017-02-10 02:50:46 +01:00
Janek Bevendorff
94f8650ca4 Rename KMessageWidget files to match our coding style 2017-02-10 02:34:16 +01:00
Janek Bevendorff
41d5111684 Use KMessageWidget also for new error messages 2017-02-10 02:26:10 +01:00
Janek Bevendorff
b6ea06ba24 Update KMessageWidget 2017-02-10 02:26:07 +01:00
Janek Bevendorff
84222e8078 Add license notice for KMessageWidget 2017-02-10 02:26:05 +01:00
Pedro Alves
6e7f826e19 Added licence header. 2017-02-10 02:26:02 +01:00
Pedro Alves
13c85cdfcb Replace MessageBox with MessageWidget in remaining classes.
Chnage to one method to set MessageWidget text passing type as
parameter.
Only messages with questions requiring user input reamin using
MessageBox dialog.
Use signal/slots to set message in MessageWidget and hide message,
signal/slots only used when required.Maybe need to change all calls to
signals/slots in the future.
2017-02-10 02:26:00 +01:00
Pedro Alves
c2826bb1af Replace MessageBox Dialog with inline MessageWidget in
EditWidget and in UnlockDatabaseWidget.
Add missing method to show Information Message.
2017-02-10 02:25:58 +01:00
Pedro Alves
8fa070f01c Show inline message when unable to load the Key File. 2017-02-10 02:25:55 +01:00
Pedro Alves
3c4af1a194 Replace MessageBox dialogs that don't require user interaction with
inline MessageWidget in ChangeMasterKeyWidget.
2017-02-10 02:25:53 +01:00
Pedro Alves
a710181388 Replaced MessageBox dialogs with inline MessageWidget in
DatabaseOpenWidget.
2017-02-10 02:25:51 +01:00
Pedro Alves
c6ad476cb7 Added kmessagewidget from subsurface project
(https://github.com/torvalds/subsurface, commit:
82a946152b7f1da177344937acbc9d3cb5b0ccbf).
Added MessageWidget class.
2017-02-10 02:25:48 +01:00
Janek Bevendorff
d1b403333c Unset XDG_DATA_DIRS before launching app, resolves #194, reverts #273 2017-02-10 01:55:09 +01:00
Jonathan White
425427c96c Merge pull request #174 from keepassxreboot/meta/release-preparation
Release preparation script
2017-02-09 19:47:33 -05:00
Janek Bevendorff
ac4346719b Merge pull request #268 from keepassxreboot/fix/custom-attribute
Fix autotype custom-attribute placeholder
2017-02-09 17:21:25 +01:00
Janek Bevendorff
e2c9fe8d12 Merge branch 'develop' into fix/custom-attribute 2017-02-09 17:12:24 +01:00
Janek Bevendorff
423de39ad0 Merge pull request #267 from keepassxreboot/fix/autotype-space
Allow space keyword in autotype sequence
2017-02-08 18:16:33 +01:00
Janek Bevendorff
6c45fcbfc7 Don't try to use theme icons for the system tray, resolves #194
Qt also looks in the program's working directory for icons, but apparently, the Ubuntu system tray doesn't, resulting in missing tray icons
2017-02-08 17:55:50 +01:00
thez3ro
51c668a0fd fix tests with new CustomAttribute format 2017-02-08 01:14:52 +01:00
thez3ro
8408e7fdb4 fix #218 custom attribute like KeePass interface 2017-02-08 01:04:05 +01:00
thez3ro
2975eb315f use space from XCB KeySym 2017-02-08 00:33:52 +01:00
thez3ro
0ac05dbb0f fix #256 space in autotype sequence 2017-02-08 00:11:16 +01:00
Jonathan White
7db7747cb0 Merge remote-tracking branch 'origin/master' into develop 2017-02-06 20:29:21 -05:00
Janek Bevendorff
343a1e2a76 Also build http 2017-02-07 01:24:18 +01:00
Jonathan White
44c58a66d1 Release 2.1.1 2017-02-06 19:04:48 -05:00
Janek Bevendorff
8fc11c0791 Update translations 2017-02-07 00:49:32 +01:00
Jonathan White
db75d94961 Added release version and changelist 2017-02-06 18:43:11 -05:00
Janek Bevendorff
26ff528a85 Merge branch 'meta/release-preparation' into release/2.1.1 2017-02-06 23:27:05 +01:00
Janek Bevendorff
f7e9f85668 Install Qt 5.8 inside Docker container 2017-02-06 21:13:24 +01:00
Janek Bevendorff
75eb0c6951 Properly HTML-escape strings with user-defined contents in message boxes (#247)
* Properly HTML-escape strings with user-defined contents in message boxes, resolves #236

* Also escape group names in EditWidget title
2017-02-06 14:23:51 -05:00
Louis-Bertrand Varin
26fdb19344 Typo is snap description. 2017-02-05 14:08:37 -05:00
Janek Bevendorff
e31638d3dd Fix formatting and coding style 2017-02-01 01:03:30 +01:00
Janek Bevendorff
e12cd83b80 Check for existence of realpath instead of operating system 2017-02-01 00:53:58 +01:00
Janek Bevendorff
040b476359 Manually implement realpath for OS X 2017-01-31 19:25:15 +01:00
Janek Bevendorff
d7633f40ba Add Windows installer branding bitmaps 2017-01-30 21:28:59 +01:00
Janek Bevendorff
80fc8d4da9 Replace /bin/bash with /usr/bin/env bash 2017-01-30 18:36:11 +01:00
Janek Bevendorff
9a92d20001 Revert icon patch, because upstream patched fast
See 69bf4718be
2017-01-29 22:19:44 +01:00
Janek Bevendorff
2b18089641 Patch desktop integration script so that it finds the keepassxc.png icons 2017-01-29 21:58:54 +01:00
Janek Bevendorff
1da87d1d19 Only create bin-release dir on Linux 2017-01-29 20:58:09 +01:00
Janek Bevendorff
0c54276fe2 Support building on OS X (untested) 2017-01-29 20:46:57 +01:00
Janek Bevendorff
dda9a95163 Move packages to main release folder instead of bin-release on Windows 2017-01-29 12:53:52 +01:00
Janek Bevendorff
34fa456106 Add summary line to individual help pages 2017-01-29 12:52:05 +01:00
Louis-Bertrand Varin
0091cb3f23 Fixes database modified after discard 2017-01-28 22:21:44 -05:00
Janek Bevendorff
9fe4504623 Fix heredoc 2017-01-29 02:50:44 +01:00
Janek Bevendorff
08d68300bd Disable GTK2 style again for now, since it seems to cause trouble with the tray icon 2017-01-29 02:46:02 +01:00
Janek Bevendorff
e326e2c6b3 Bundle GTK2 platform style 2017-01-29 02:24:12 +01:00
Janek Bevendorff
e94dc226b5 Downgrade to Ubuntu 14.04 2017-01-29 02:23:55 +01:00
Jonathan White
2afd21c7ba Merge pull request #167 from keepassxreboot/migrate/122-twofish
KeePassX PR Migration: #122 Twofish cypher support
2017-01-28 17:49:20 -05:00
Janek Bevendorff
bd2edea1c9 Ignore .github folder in exports 2017-01-28 23:40:57 +01:00
Janek Bevendorff
00cd0e1ae3 Use correct AppImage-Recipe.sh 2017-01-28 23:24:12 +01:00
Janek Bevendorff
05aefc6489 Show error when invalid command specified 2017-01-28 23:17:48 +01:00
Janek Bevendorff
5652018cde Merge branch 'develop' into meta/release-preparation 2017-01-28 23:02:57 +01:00
Janek Bevendorff
a63ba6bc4f Update translations before merging branches 2017-01-28 23:02:26 +01:00
Janek Bevendorff
c043be3aa4 Copy windows binaries to release-bin directory 2017-01-28 22:45:07 +01:00
Janek Bevendorff
b7180893c6 Fix check for Msys 2017-01-28 22:23:51 +01:00
Janek Bevendorff
96ca7a8cbc Fix CMake options on Windows 2017-01-28 22:19:23 +01:00
Janek Bevendorff
c87c811719 Make release script more modular and useful on other platforms 2017-01-28 22:12:38 +01:00
Janek Bevendorff
4dab30ce6f Break instead of returning 2017-01-28 17:53:19 +01:00
Janek Bevendorff
75dc21c66d Implement Twofish CBC encryption and decryption tests 2017-01-28 17:53:17 +01:00
Timothy Redaelli
b0a4d7278a Add Algorithm label / ComboBox in Database settings form 2017-01-28 17:53:14 +01:00
Timothy Redaelli
a01607e869 Add support for Twofish in KeePass2 code 2017-01-28 17:53:11 +01:00
Janek Bevendorff
a3fd3205a9 KeePassX PR Migration: #190 Search for Group Names (#168)
* Search Group details in addition to entry details; feature parity with KeePass
* Remove assertions to prevent crashes in Debug mode when search result is empty
2017-01-28 11:27:20 -05:00
Janek Bevendorff
55084499ac Merge pull request #237 from keepassxreboot/feature/51-remember-cmd-exec-decision
Add 'Remember my choice' checkbox, resolves #51
2017-01-28 18:08:58 +02:00
Janek Bevendorff
3e6f76826b Don't show cmd:// prefix in confirmation dialog 2017-01-28 14:24:33 +01:00
Janek Bevendorff
01e9d39b63 Add 'Remember my choice' checkbox
Allow user to store preference when asked whether to execute command, resolves #51
2017-01-28 14:18:43 +01:00
Janek Bevendorff
0116d4176a Merge pull request #235 from Throne3d/fix/51-prompt-before-cmd
Prompt the user before executing a command in a cmd:// URL
2017-01-28 02:11:17 +02:00
Edward Jones
7ea306a61a Prompt the user before executing a command in a cmd:// URL
Fixes #51.
(Does not have a "don't ask me anymore" option.)
2017-01-28 00:05:14 +00:00
Janek Bevendorff
cdaab550e9 Merge pull request #234 from Throne3d/improve-contributingmd
Update CONTRIBUTING.md
2017-01-28 01:50:16 +02:00
Edward Jones
aa6f617715 Update CONTRIBUTING.md
* Replace instances of 'KeePassX Reboot' with 'KeePassXC'
* Lowercase headers to be consistent with README
* Add more headers to the table of contents
* Make the link to the issue tracker more prominent (preferred over
Google Groups, apparently)
* Add information about the #keepassxc-dev IRC channel on Freenode
* Add 'hotfix' to the branch strategy (seems in the standard and
is also used)
* Rephrase some paragraphs to make them clearer, fix a few typos
2017-01-27 23:32:13 +00:00
Janek Bevendorff
7e4592c1e7 Merge pull request #233 from louib/fix/downloadIconCrash
Fixes #225 : downloading favicon crash
2017-01-27 21:57:35 +02:00
Janek Bevendorff
b97024c8f6 Add more KeePassXC branding to the Windows installer 2017-01-27 20:42:27 +01:00
thez3ro
0f44f6752e Fix entropy_meter script 2017-01-27 20:39:32 +01:00
Louis-Bertrand Varin
3c9054c36f Fixes #225 : downloading favicon crash 2017-01-27 13:49:33 -05:00
Janek Bevendorff
61379d4e05 Merge pull request #229 from keepassxreboot/hotfix/192-password-generator-button-padding
Use consistent button min-heights, resolves #192
2017-01-27 19:48:42 +02:00
Janek Bevendorff
fd2b779bb8 Use consistent button min-heights, resolves #192 2017-01-27 18:48:12 +01:00
Janek Bevendorff
202e8ac3a1 Merge pull request #230 from keepassxreboot/hotfix/228-password-generator-text-size
Don't make font size of password strength labels smaller than 8pt, resolves #228
2017-01-27 19:47:03 +02:00
Janek Bevendorff
6796f20683 Remove hardcoded font size from UI file 2017-01-27 18:11:17 +01:00
Janek Bevendorff
cdc9fddc44 Don't make font size of password strength labels smaller than 8pt, resolves #228 2017-01-27 17:59:03 +01:00
Janek Bevendorff
6409661a9f Merge pull request #227 from louib/feature/generateButton
Reuse password generator icon.
2017-01-27 18:27:21 +02:00
Louis-Bertrand Varin
4ed03c2db2 Reuse password generator icon. 2017-01-26 21:00:52 -05:00
Janek Bevendorff
7b2a9f7ea8 Merge pull request #226 from louib/fix/generatorCrash
Fixes #199 : Disable buttonGenerate when no classes.
2017-01-27 03:40:09 +02:00
Louis-Bertrand Varin
0d222e138f else on the same line. 2017-01-26 20:35:24 -05:00
Louis-Bertrand Varin
a80c415fc0 Disable buttonGenerate when no classes. 2017-01-26 20:35:17 -05:00
Janek Bevendorff
3f1a75f40a Merge pull request #222 from rockihack/fix-global-autotype
MacOS: Fix Global Autotype in Google Chrome, resolves #212
2017-01-26 21:50:35 +01:00
Janek Bevendorff
ad4bf1ac84 Merge pull request #222 from rockihack/fix-global-autotype
MacOS: Fix Global Autotype in Google Chrome, resolves #212
2017-01-26 22:37:27 +02:00
rockihack
11dec27dd1 MacOS: Fix Global Autotype when frontmost window title is empty. 2017-01-26 21:09:57 +01:00
Janek Bevendorff
66253e142b Install qwindows platform abstraction plugin on Windows 2017-01-26 20:08:53 +01:00
Jonathan White
b22b67c7d9 Merge remote-tracking branch 'origin/hotfix/195-qt5.8-compilation' into develop 2017-01-25 21:25:26 -05:00
Jonathan White
d8662b709a Merge remote-tracking branch 'origin/hotfix/195-qt5.8-compilation' into release/2.1.1 2017-01-25 21:23:58 -05:00
Janek Bevendorff
e826309d59 Merge pull request #219 from keepassxreboot/feature/search-clone-entry
Clone an entry when in search mode
2017-01-26 04:21:52 +02:00
Janek Bevendorff
1554722a83 Add missing find_package call 2017-01-26 02:58:46 +01:00
Jonathan White
16ed89c471 Implement ability to clone an entry when in search mode.
* Cloned entries have "- Clone" appended to their name
2017-01-25 20:02:32 -05:00
Akinori MUSHA
6ccae6cc37 Pressing escape quits search 2017-01-25 19:37:53 -05:00
Janek Bevendorff
292ed892c1 Fix Windows linker and runtime errors when building against static Qt 2017-01-26 01:15:12 +01:00
Aleix Pol
bb8b91a100 Fix build with newer Qt5 2017-01-25 13:28:33 +01:00
Jonathan White
1310b34e9c Added NSIS installer to CPack packager for Windows 2017-01-25 13:22:28 +01:00
Janek Bevendorff
86cdb64b1d Re-enable checks 2017-01-25 13:22:26 +01:00
Janek Bevendorff
0456815bd5 Fix AppImage not launching on all platforms 2017-01-25 13:22:23 +01:00
Janek Bevendorff
1c12cd6b9e Add wget, file, fuse and python for building AppImages inside the container 2017-01-25 13:22:21 +01:00
Janek Bevendorff
3c687d29d8 Make regexp less strict 2017-01-25 13:22:18 +01:00
Jonathan White
bb70edfdb3 Merge remote-tracking branch 'origin/hotfix/147-keepasshttp' into develop 2017-01-25 07:19:45 -05:00
Jonathan White
a3f189f452 Merge pull request #170 from keepassxreboot/feature/169-signal-handlers
Implement clean shutdown after receiving Unix signals, resolves #169
2017-01-24 22:33:23 -05:00
Jonathan White
70727895f7 Added ifdef guard 2017-01-24 22:24:34 -05:00
louib
cdbf58b2c1 Preserve group/entry focus when replacing db. (#176) 2017-01-24 22:17:16 -05:00
Jonathan White
fe9bcc254a Merge pull request #196 from keepassxreboot/hotfix/147-keepasshttp
KeePassHTTP hotfix, resolves #147 and slightly increases security.
2017-01-24 19:12:04 -05:00
Janek Bevendorff
b0270550c5 Update README 2017-01-25 00:03:00 +01:00
Janek Bevendorff
597faee248 Replace localhost with 127.0.0.1 in the description 2017-01-24 22:39:43 +01:00
Janek Bevendorff
42c0815cda Merge pull request #193 from ryanrolds/context-menu-order
Adjusted order of entry's context menu
2017-01-24 21:27:06 +02:00
Ryan Olds
a5f12db6ba Moved autotype after copyattribute 2017-01-24 10:31:49 -08:00
Ryan Olds
62808f8342 Adjusted order of entry's context menu 2017-01-23 19:23:21 -08:00
Janek Bevendorff
c6e89f938d Do not enable KeePassHTTP by default 2017-01-24 03:19:27 +01:00
Janek Bevendorff
1edc116532 Only require libmicrohttpd when building with -DWITH_XC_HTTP=On, resolves #179 2017-01-24 00:26:16 +01:00
Janek Bevendorff
40aa92c5f7 Only listen to local loopback instead of user-configured host as discussed in issue #147
Also issue warning when trying to bind to a port below 1024 and use default port in that case
2017-01-24 00:08:48 +01:00
Janek Bevendorff
4eb39dc5ff Remove obsolete forward-declaration and disable QSocketNotifier after firing 2017-01-23 22:33:43 +01:00
Janek Bevendorff
b5cf6c7161 Add missing #ifdef around slot 2017-01-23 22:33:39 +01:00
Janek Bevendorff
198691182b Implement clean shutdown after receiving Unix signals, resolves #169
The database wasn't saved properly and lockfiles were not removed when receiving the signals SIGINT, SIGTERM, SIGQUIT or SIGHUP. This patch implements signal handling and performs a clean shutdown after receiving SIGINT SIGTERM or SIGQUIT and ignores SIGHUP.

Since this uses POSIX syscalls for signal and socket handling, there is no Windows implementation at the moment.
2017-01-23 22:33:36 +01:00
Jonathan White
72b81bf403 Merge remote-tracking branch 'origin/release/2.1.0' into develop 2017-01-22 14:25:40 -05:00
Janek Bevendorff
8a3ac7a26e Release 2.1.0 2017-01-22 20:16:34 +01:00
Janek Bevendorff
8878d7c5dc Formatting 2017-01-22 20:15:58 +01:00
Jonathan White
9a7b8da279 Merge remote-tracking branch 'origin/meta/release-preparation' into release/2.1.0 2017-01-22 14:08:52 -05:00
Janek Bevendorff
1f9ab7ca5d Fix path to CHANGELOG 2017-01-22 20:02:27 +01:00
Janek Bevendorff
2c00cb555c Add missing pull request reference 2017-01-22 19:58:22 +01:00
Janek Bevendorff
dcbc7ff217 Merge branch 'meta/release-preparation' into release/2.1.0 2017-01-22 19:52:26 +01:00
Janek Bevendorff
20f42aa2cc Update CHANGELOG 2017-01-22 19:49:23 +01:00
Jonathan White
19fef019ed Updated snapcraft file for release 2017-01-22 10:40:24 -08:00
Janek Bevendorff
ea02de0cc9 Add hint about merging back into develop and pushing changes 2017-01-22 19:14:56 +01:00
Janek Bevendorff
1525ffc225 Add release preparation script and AppImage recipe 2017-01-22 18:42:56 +01:00
Janek Bevendorff
5458d77980 Merge pull request #165 from keepassxreboot/test/newtravis
Travis builds release and debug using clang and gcc
2017-01-15 06:06:35 +02:00
Jonathan White
a545dc9264 Removed snapcraft and unspecified unique gcc build 2017-01-14 22:53:35 -05:00
Jonathan White
b7c658e8f8 Travis now performs Debug and Release builds 2017-01-14 22:53:31 -05:00
Janek Bevendorff
de69ecc35f Merge pull request #141 from keepassxreboot/feature/searchui-enhance
Enhanced search ui keypress actions

Also resolves #163: icons gone when running release-compiled binary from the build directory
2017-01-15 05:41:35 +02:00
Jonathan White
b6f754c29a Changed built-in clear search button with custom one to fix pixelation 2017-01-14 22:29:16 -05:00
Jonathan White
39e0708b3b Correcting missing icons when running release from build directory 2017-01-14 21:41:18 -05:00
Kyle Manna
5a3ed27fed tests: yk: Initialize Crypto class
Initialize the Crypto class before running the tests as YubiKey
detection code depends on it for random data.
2017-01-14 17:58:05 -08:00
Kyle Manna
a7cf39c7cd gui: ChangeMasterKeyWidget: Clear YubiKeys detected
* Clear the YubiKey detected list on each load.
* In the event the YubiKey was removed, it will no longer be displayed.
* If it's still present it won't be duplicated.
2017-01-14 17:39:57 -08:00
Jonathan White
01464a7860 Added clear text button, accurate down arrow behavior, and fixed sizing 2017-01-14 20:27:34 -05:00
Janek Bevendorff
e17576a6f7 Merge branch 'develop' into feature/yubikey 2017-01-15 03:20:21 +02:00
Kyle Manna
f33cd15419 gui: Clear YubiKeys detected on each load
* Clear the YubiKey detected list on each load.
* In the event the YubiKey was removed, it will no longer be displayed.
* If it's still present it won't be duplicated.
2017-01-14 17:08:48 -08:00
Louis-Bertrand Varin
fd3fefd6f1 Use placeholder for search widget. 2017-01-14 20:07:05 -05:00
Jonathan White
36df21d823 Enhanced search ui keypress actions
* Pressing down arrow will always focus on entry view
* Pressing enter opens currently selected entry
* Pressing CTRL+F focuses and selects search text
* Rewrote test cases to cover the new functionality
2017-01-14 19:47:35 -05:00
Kyle Manna
05774854ef travis-ci: Add YubiKey development libraries
* With these packages cmake will detect the YubiKey headers and
  libraries and build in YubiKey support.
2017-01-14 16:15:36 -08:00
Janek Bevendorff
9dadafe20a Merge pull request #160 from louib/feature/updateKdbxExtract
Fixes #156 : update kdbx-extract
2017-01-14 22:26:23 +02:00
Janek Bevendorff
6fd7427cae Merge branch 'develop' into feature/updateKdbxExtract 2017-01-14 22:21:41 +02:00
Louis-Bertrand Varin
9065588a76 Remove unused dependencies. 2017-01-14 15:11:00 -05:00
Janek Bevendorff
b4b47ec8fd Merge pull request #161 from keepassxreboot/migrate/191-spelling
KeePassX PR Migration: #191 Spelling (missing commits)
2017-01-14 21:41:25 +02:00
Janek Bevendorff
ea9f313416 Fix GUI test 2017-01-14 20:33:27 +01:00
Josh Soref
af8e770106 spelling: successfully 2017-01-14 20:13:42 +01:00
Josh Soref
10f03795f9 spelling: transform 2017-01-14 20:13:34 +01:00
Josh Soref
2ad7c5c675 spelling: toggle 2017-01-14 20:13:25 +01:00
Josh Soref
084a1dd7d2 spelling: whose 2017-01-14 20:12:32 +01:00
Janek Bevendorff
d1793d9bcf Ask PR authors to remove lines that don't apply instead of changing emoji (#159)
* Ask user to remove lines that don't apply instead of changing emoji
* Replace KeePassXR with KeePassXC
* Add help text how to find KeePassXC version [skip ci]
* Combine documentation requirements into one [skip ci]
2017-01-14 14:09:59 -05:00
Louis-Bertrand Varin
d7ed33809f Use QCommandLineParser 2017-01-14 14:08:10 -05:00
Louis-Bertrand Varin
798041fe11 Extract readKeyFromLine. 2017-01-14 13:25:30 -05:00
Janek Bevendorff
995420ee87 Merge pull request #158 from keepassxreboot/migrate/191-spelling
KeePassX PR Migration: #191 Spelling
2017-01-14 20:09:51 +02:00
Josh Soref
341ff3de37 spelling: recycle 2017-01-14 17:32:03 +01:00
Josh Soref
ce06fcdbe0 spelling: occurred 2017-01-14 17:32:03 +01:00
Josh Soref
b8c93b3572 spelling: finish 2017-01-14 17:32:03 +01:00
Josh Soref
4ea6faae81 spelling: executor 2017-01-14 17:32:03 +01:00
Josh Soref
ca8ddd5f39 spelling: decrypt 2017-01-14 17:31:38 +01:00
Josh Soref
3924f628b4 spelling: full 2017-01-14 17:31:38 +01:00
Josh Soref
53e0893b51 spelling: correct 2017-01-14 17:31:38 +01:00
Josh Soref
d988b9e6d2 spelling: characters 2017-01-14 17:31:38 +01:00
Josh Soref
6060f41458 spelling: available 2017-01-14 17:31:38 +01:00
Josh Soref
569ea3ebdd spelling: attachments 2017-01-14 17:31:38 +01:00
Josh Soref
40eafa8adc spelling: associations 2017-01-14 17:31:38 +01:00
Janek Bevendorff
1ca5b72073 Merge pull request #143 from louib/feature/merge_databases_script
Feature : merge databases program
2017-01-14 15:09:47 +02:00
Janek Bevendorff
d7c308c688 Merge branch 'develop' into feature/merge_databases_script 2017-01-14 14:49:03 +02:00
Louis-Bertrand Varin
1e0191a37c Remove unused dependencies. 2017-01-13 19:45:33 -05:00
TheZ3ro
a8d9e8ba7c Merge pull request #153 from louib/fix/databaseLockTypo
Add missing space in messages.
2017-01-12 10:20:14 +01:00
Louis-Bertrand Varin
1a5c18c9bd Add missing space in messages. 2017-01-11 21:12:43 -05:00
Louis-Bertrand Varin
421e6303ae Rename merge-databases -> kdbx-merge 2017-01-11 21:05:16 -05:00
Louis-Bertrand Varin
a79366f105 Use QCommandLineParser
* Switch to using QCommandLineParser
* Implement the --same-password option
* extract `getKeyFromLine` function
2017-01-11 21:00:11 -05:00
Tarquin Winot
f85198c60f Replace old-style C conversions in entropy estimator (#150) 2017-01-10 17:37:58 -05:00
Louis-Bertrand Varin
2afa1f0dc8 Use 2 passwords for merging. 2017-01-08 22:46:30 -05:00
Kyle Manna
ef06165ea2 keys: CompositeKey: Change Q_FOREACH to C++11 for()
* Use the C++11 range based loop as recommended from
  https://github.com/keepassxreboot/keepassxc/pull/119

Signed-off-by: Kyle Manna <kyle@kylemanna.com>
2017-01-08 18:47:54 -08:00
Pedro Alves
d398d367c1 Allow a previously yubikey protected database to be saved without the yubikey challenge-response code. 2017-01-08 16:48:12 -08:00
Kyle Manna
951fa96848 YubiKey: Fix database locking
* Save the master seed upon first challenge so it can be used as a
  challenge at a later point.
* When verifyKey() is called, verify that the challenge is successful.
* Uncheck YubiKey box to not leak information about how the database is
  protected.

Signed-off-by: Kyle Manna <kyle@kylemanna.com>
2017-01-08 16:48:06 -08:00
Kyle Manna
77cc99acd3 YubiKey: Clean-up master seed challenge
* Tweak the logic so it more closely resembles other code (i.e.
  trasnformKey()). Matches existing style better.
* Save the challengeResponseKey in the database structure so that
  it can be referred to later (i.e. database unlocking).

Signed-off-by: Kyle Manna <kyle@kylemanna.com>
2017-01-08 16:47:39 -08:00
Kyle Manna
62190d79be YubiKey: Whitespace clean-up
* This was bugging me.  Oops.
* No functional changes.

Signed-off-by: Kyle Manna <kyle@kylemanna.com>
2017-01-08 16:43:30 -08:00
Kyle Manna
f7ee528d41 YubiKey: Retry to recover hotplugging
* Attempt one retry in the event the event the device was removed and
  re-inserted.

Signed-off-by: Kyle Manna <kyle@kylemanna.com>
2017-01-08 16:43:23 -08:00
Kyle Manna
faa055010f challenge: Propagate failed challenge to caller
* If a removed Yubikey is to blame, re-inserting the Yubikey won't
  resolve the issue.  Hot plug isn't supported at this point.
* The caller should detect the error and cancel the database write.

Signed-off-by: Kyle Manna <kyle@kylemanna.com>
2017-01-08 16:40:25 -08:00
Kyle Manna
ba8fd25604 gui: Add YubiKey support to widgets
* Add YubiKey support to the GUI widgets.

Signed-off-by: Kyle Manna <kyle@kylemanna.com>
2017-01-08 16:31:50 -08:00
Kyle Manna
9556d8e6da tests: Add YubiKey Tests
* Basic testing for YubiKey code.

Signed-off-by: Kyle Manna <kyle@kylemanna.com>
2017-01-07 23:20:27 -08:00
Kyle Manna
5b8b4c8c7b keys: yk: Implement ChallengeResponseKey for YubiKey
* Implement a YubiKey challenge response class.  One object will be
  created for each challenge response key available.

Signed-off-by: Kyle Manna <kyle@kylemanna.com>
2017-01-07 23:20:16 -08:00
Kyle Manna
82aed2caab keys: yk: Add YubiKey hardware driver support
* Use compile time detection of the YubiKey libraries and link against
  the libraries if present.  Can be disabled with:

      $ cmake -DCMAKE_DISABLE_FIND_PACKAGE_YubiKey=FALSE

* A stub file provides empty calls for all the function calls integrated
  in to the UI to support this.  In the future a more modular approach
  maybe better, but opting for simplicity initially.

Signed-off-by: Kyle Manna <kyle@kylemanna.com>
2017-01-07 23:18:59 -08:00
Kyle Manna
add4846d79 format: Add challenge response result to final key hash
* The challengeMasterSeed() function return empty if not present
  maintaining backwards compatability.
* This commit is where the challenge response result is computed into
  the final key  used to encrypt or decrypt the database.

Signed-off-by: Kyle Manna <kyle@kylemanna.com>
2017-01-07 23:18:55 -08:00
Kyle Manna
e354a0ee0e database: Pass master seed to challenge response keys
* Pass the master seed from the database to CompositeKey::challenge()
  function which will in turn issue challenges to all selected
  drivers.

Signed-off-by: Kyle Manna <kyle@kylemanna.com>
2017-01-07 23:16:39 -08:00
Kyle Manna
ccd6704b8f keys: CompositeKey: Add ChallengeResponseKey support
* Each Challenge Response Key consists of a list of regular keys and now
  challenge response keys.
* Copy ChallengeResponseKeys when copying the object.
* Challenge consists of challenging each driver in the list and hashing
  the concatenated data result using SHA256.

Signed-off-by: Kyle Manna <kyle@kylemanna.com>
2017-01-07 23:14:43 -08:00
Kyle Manna
9bdb41a727 keys: Add ChallengeResponseKey header
* Add initial header file for forthcoming challenge response support.
* A ChallengeResponseKey operates by submitting some challenge data and
  getting a deterministic result.
* In the case of the forthcoming YubiKey integration, the master seed is
  submitted as the challenge to the YubiKey hardware and the YubiKey
  returns a HMAC-SHA1 response.

Signed-off-by: Kyle Manna <kyle@kylemanna.com>
2017-01-07 23:03:47 -08:00
Louis-Bertrand Varin
a40f84d519 Read the password from stdin. 2017-01-07 15:14:54 -05:00
Louis-Bertrand Varin
bdb49a36bf Reverting .gitignore 2017-01-07 13:12:30 -05:00
Louis-Bertrand Varin
1458ba6f6f qInfo -> qDebug and missing imports. 2017-01-06 20:24:50 -05:00
Louis-Bertrand Varin
007073354f Revert cmake in .gitignore. 2017-01-06 20:19:26 -05:00
Louis-Bertrand Varin
be827211d2 Removing unused imports. 2017-01-06 16:32:18 -05:00
Louis-Bertrand Varin
5bc3924756 Merge databases script. 2017-01-06 16:29:07 -05:00
louib
ff6d78244b Updated INSTALL documentation. (#140)
* KeePassCR -> KeePassXC in INSTALL
* Added .md extension to INSTALL.
2017-01-04 18:47:29 -05:00
Jonathan White
5f1b9a17ca Fix testgui for Windows (PR #137)
Introduces TemporaryFile class to act as a proxy to fix autoreload test cases failing on windows due to the behavior of QTemporaryFile.
2017-01-03 22:27:41 -05:00
Jonathan White
534364454d Merge branch 'feature/cmake-fix-#50-#123' into develop
* Fixes #50 and #123
2017-01-02 22:27:20 -05:00
Jonathan White
0e65b9b9f8 Corrected autotype lib building for Windows 2017-01-02 22:25:37 -05:00
thez3ro
07a41f58d7 Add autotype library linking
Added Autotype switch + updated Travis to always test all extension
2017-01-02 22:25:36 -05:00
Jonathan White
5b04e195b0 Merge pull request #132 from keepassxreboot/improve_search_ui
Improve UI of the search edit widget
2017-01-02 20:04:21 -05:00
Jonathan White
9fa2dae68c Merge branch 'develop' into improve_search_ui 2017-01-02 17:51:42 -05:00
Danny Su
9000bc138f Update Website URL in About Dialog (#136) 2017-01-02 17:50:42 -05:00
Jonathan White
9660510cc7 Cleaned up SearchWidget code 2016-12-23 23:14:50 -05:00
thez3ro
298665e32a Improve UI of the search edit #131 2016-12-23 18:13:08 +01:00
Akinori MUSHA
d0a3c08840 Improve UI of the search edit (resurrecting 5c7c7f54)
- The copy action (Control+C) when no text is selected copies the
  password of the current entry.  This should be reasonable when
  Control+B copies the username.

- Down at EOL moves the focus to the entry view.  Enter and Tab should
  do that, but it would be handy for user to be able to get to the third
  entry by hitting Down three times.
2016-12-22 17:16:59 +09:00
Danny Su
63a1b49745 Fix build for 64-bit Windows (#130)
Building on 64-bit Windows gets to 99% and fails on this particular file due to the `stdafx.h` inclusion.
The macro in `entropy-meter.cpp` is different than `src/zxcvbn/zxcvbn.cpp`.
After copying the macro from `zxcvbn.cpp` and rebuilding, the Windows build succeeded.
2016-12-20 18:41:15 -05:00
greenbasilisk
9547ac0afd Fix build issue for openSuse (#126)
* Corrects missing symbols when linking
2016-12-11 21:50:17 -05:00
Jonathan White
fa891edb7c Added extensions section in about dialog; fixed url as well 2016-12-07 22:40:09 -05:00
thez3ro
65992ba6ae Option to select extension compile-time. Fix #50 #123 2016-12-04 19:57:24 +01:00
Jonathan White
791a749c2f Search scopes to currently selected group (and children) (#118)
* Added test cases for case sensitive and group search
2016-11-28 19:02:21 -05:00
Janek Bevendorff
9261d8ae9d Force focus on password field, resolves #116 (#117)
Also remove redudant code for minimizing to tray
2016-11-26 09:37:25 -05:00
TheZ3ro
405b82588b Add Autotype Entry-Attributes, Fix Group default sequence (#107) 2016-11-25 12:26:59 -05:00
Jonathan White
0dfd2003f9 Implement autoreload of database file (#93) 2016-11-25 12:13:28 -05:00
Jonathan White
3d249365c2 Merge remote-tracking branch 'origin/feature/autoreload-db' into develop 2016-11-25 12:04:44 -05:00
Jonathan White
7fb33653ad Implemented major autoreload functionality
* Ignore autoreload on save / save-as
* Consolidated db save code
* Corrected bug (crash) in merge entry code due to not cloning the entry
* Enhanced known modified status of database
* Implemented test cases for autoreload
2016-11-25 12:03:36 -05:00
Jonathan White
3cccfd97d2 Set travis to only create snapcraft after gcc build 2016-11-25 10:12:45 -05:00
Andreas Nüßlein
0c40cdc990 XR -> XC (#114) 2016-11-24 13:15:34 -05:00
Jonathan White
81392a71dd Only perform snapcraft build on develop or master, re-enabled clang 2016-11-23 22:28:08 -05:00
TheZ3ro
b2f3cc6903 Add some password-related feature (#92)
* Add Standalone Password Generator. Closes #18 
* Add an entropy meter for passwords. Closes #84
* Don't require password repeat when it is visible. Fixes #27
2016-11-23 21:59:24 -05:00
Janek Bevendorff
19a960856c Fix minimize at startup and decouple various tray and minimization options (#109)
* Hide window on startup when configured to start minimized, fixes #105
* Decouple different systray and minimization options, fixes #64
* Commit missing changes in main.cpp to minimize at startup

* Remove obsolete code
2016-11-23 18:15:51 -05:00
Devinsuit
02d2ac904d Update broken link #112 (#113) 2016-11-23 18:08:11 -05:00
Jonathan White
29f93597f2 Updated English translation file and fixed typos in HTTP language 2016-11-14 21:54:56 -05:00
Jonathan White
20c3ca7d37 Merge remote-tracking branch 'origin/develop' into feature/autoreload-db
# Conflicts:
#	src/gui/DatabaseWidget.cpp
#	src/gui/DatabaseWidget.h
2016-11-11 16:47:01 -05:00
Jonathan White
9bb2cfcd51 Moved transifex to new url
Signed-off-by: Jonathan White <support@dmapps.us>
2016-11-11 16:30:57 -05: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
Leo Arias
0657d343bf Add icon and desktop file to snapcraft build (#91) 2016-11-11 11:34:32 -05:00
Jonathan White
37aedc8b03 Cleaned up code and added spots for todo work. Fully Working! 2016-11-09 07:38:14 -05:00
Leo Arias
3c89ce97c2 Build the snap in travis (#87) 2016-11-08 19:49:48 -05:00
TheZ3ro
753b9c9e67 Add Autotype on Windows and MacOS (#63)
* Add Autotype on Windows, including Windows 10
* Add MacOS autotype, fix macdeployqt build
* Make QT_BINARY_DIR overwritable at compile time
2016-11-08 16:13:57 -05:00
Jonathan White
06b1baa454 Automatic reload the database when the file is externally modified 2016-11-07 23:03:01 -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
Leo Arias
e00c6f9c77 Add the packaging metadata to build the keepassxc snap (#83) 2016-11-07 14:57:06 -05:00
Leo Arias
68cc06dc1f Fix the call to cmake (#82) 2016-11-05 17:37:28 -04:00
Leo Arias
1901655669 Update the links to the new repository location (#81) 2016-11-05 16:17:30 -04:00
Jonathan White
753d1d50d0 Add delay feature to autotype (#77)
* Implement {DELAY=X} in autotype
2016-11-04 18:05:47 -04:00
Jonathan White
ac108cd708 Added guard to prevent missing prereqs for coverage.. 2016-11-04 00:52:00 -04:00
Jonathan White
29be837b97 Updated README badges and added code coverage 2016-11-04 00:47:04 -04:00
Jonathan White
682eac3dbc Updated name to KeePassXC in README 2016-11-03 00:17:51 -04:00
Jonathan White
ccec84aef2 Rename application to KeePassXC and change icon (#70) 2016-11-03 00:05:30 -04:00
Jonathan White
13983d0e51 Make search always visible (PR #67)
* Moved search bar to toolbar and consolidated search options into dropdown list
* Updated GUI tests to be atomic and rewrote search tests
* Searches are saved between databases
* Search is cleared when all databases are closed
* Implemented global search shortcut (CTRL+F) and a notification bar when in search mode
2016-11-02 21:01:02 -04:00
Jonathan White
3f80134f07 Merge pull request #66 from JosefVitu/fix-tests
Fix memory leaks and typos in various tests
2016-10-29 09:18:05 -04:00
Josef Vitu
ad36ec4dfd Fix tests 2016-10-28 18:51:09 +02:00
Jonathan White
82ace81974 Merge pull request #57 from JosefVitu/lock-on-minimize
Implement automatic locking when minimizing
2016-10-28 10:31:25 -04:00
Jonathan White
13c3743ff5 Merge branch 'develop' into lock-on-minimize 2016-10-28 10:24:21 -04:00
Jonathan White
46904fb110 Merge pull request #65 from JosefVitu/fix-#34
Fix advanced HTTP settings (close #34)
2016-10-28 10:22:51 -04:00
Josef Vitu
8f3ffdcc2a Fix advanced HTTP settings (close #34) 2016-10-28 15:25:57 +02:00
Josef Vitu
6c3c0087dd 🔒 Implement automatic locking when minimizing 2016-10-28 13:22:17 +02:00
Jonathan White
2e9b42688f Merge pull request #62 from keepassxreboot/feature/docs-#24
Update CONTRIBUTING.md with Branch Strategy
2016-10-27 15:07:47 -04:00
thez3ro
589b6465f8 📝 Update CONTRIBUTING.md with Branch Strategy. close #24 [ci skip] 2016-10-27 19:28:39 +02:00
TheZ3ro
6c7c5443d4 Updated Pull Request Template and Contribute documents
* 📝 Update Installation instruction from the Wiki
* 📝 Update PR template with emojis 🎉
* 📝 Update CONTRIBUTING.md with CodeStyle
2016-10-26 08:19:28 -04:00
Jonathan White
fdad028e73 Merge pull request #59 from jkt628/develop
search directory configured via environment
2016-10-26 08:10:30 -04:00
Jack Thomasson
3ec29d3b52 search directory configured via environment
use absolute path to database file
2016-10-25 10:18:23 -06:00
Jonathan White
e97add0c46 Merge pull request #55 from jkt628/develop
utility to launch keepassx with database passwords fetched from kdewa…
2016-10-24 21:14:41 -04:00
Jack Thomasson
0138209004 utility to launch keepassx with database passwords fetched from kdewallet 2016-10-24 18:20:17 -06:00
Jonathan White
f7fd78d715 Merge pull request #53 from keepassxreboot/feature/fix-win-build
Fix winsock and autotype error when compiling on Windows
2016-10-24 19:09:39 -04:00
Jonathan White
bbd8447afa Merge branch 'develop' into feature/fix-win-build 2016-10-24 19:04:16 -04:00
Jonathan White
cf2bbbfef1 Merge pull request #54 from jkt628/develop
add command line option --pw-stdin to accept password from stdin
2016-10-24 18:15:41 -04:00
Jack Thomasson
7000e80465 add command line option --pw-stdin to accept password from stdin 2016-10-24 12:22:02 -06:00
thez3ro
24a17c05ab 🏁 Fix winsock and autotype error when compiling on Windows 2016-10-24 19:45:35 +02:00
Jonathan White
7c4129033a Merge pull request #52 from pugaoffitlh/develop
Added issues link to Readme
2016-10-21 11:16:18 -04:00
David Puga
83e3267f0e 📝 added issues link to issues
[ci skip]
2016-10-20 20:08:01 -07:00
Jonathan White
62cfbf73e1 Merge pull request #46 from keepassxreboot/feature/trayicon-#37
Show locked tray icon when database is locked
2016-10-19 22:45:56 -04:00
TheZ3ro
f539d69984 Add PNG tray-icons for locked db [ci skip] 2016-10-18 11:44:37 +02:00
TheZ3ro
ba86c1e1da Institute CONTRIBUTING, ISSUE template, and PR template
* DOC: Add ISSUE and PR template, add CONTRIBUTING
* DOC: incorporated feedback from @samrocketman, @Manko10, and @droidmonkey
* README now points to CONTRIBUTING instead of repeating it
* Added code style link and minor tweaks to CONTRIBUTING
2016-10-17 22:16:37 -04:00
Jonathan White
cfb7de0fe9 Updated transifex configuration and translation files (#35) 2016-10-13 18:32:13 -04:00
Jonathan White
334859726c Updated readme 2016-10-11 20:06:28 -04:00
Manolis Agkopian
119af3d760 Fetch favicon from the root of the website and use Google as a fallback (#36)
* Replace favicon fetching using Google with fetching from the root of the website
* Follow up to 3 http redirects for the favicon
* Add download favicon from Google as fallback
* Move code responsible for fetching the favicon from Google on its own function to reduce repetitiveness.
2016-10-11 18:04:44 -04:00
thez3ro
3bbf11e26f Unlocked tray icon #37 2016-10-10 00:02:28 -04:00
Jonathan White
5bb27b2989 Fixed Travis image link 2016-10-05 23:15:58 -04:00
Jonathan White
c4b3f08618 Download favorite icon of entry url and add to the custom icon registry (#30)
* Favicon download button.
* Simplified icon grabbing code
2016-10-05 23:10:06 -04:00
Jonathan White
6ac773d5ae Updated readme file 2016-10-05 23:03:13 -04:00
Jonathan White
e19559fe81 Merge pull request #29 from Manko10/develop
Update link to new upstream repository for pull requests
2016-10-05 18:51:34 -04:00
Janek Bevendorff
7dd30d4db1 Update link to new upstream repository for pull requests 2016-10-05 18:21:26 +02:00
Jonathan White
9b8b7b490a Merge branch 'keepassx_203' into develop 2016-10-02 21:51:08 -04:00
Felix Geyer
5ec9d0685d Finalize changelog. 2016-10-02 21:50:15 -04:00
Felix Geyer
004c412501 Update translations. 2016-10-02 21:50:15 -04:00
Felix Geyer
f05caf7623 Prepare for 2.0.3 release. 2016-10-02 21:50:15 -04:00
Jonathan White
7d165f133a Merge branch 'keepassx_master' into develop 2016-10-02 21:49:24 -04:00
Felix Geyer
fff9e7ac46 Convert Q_FOREACH loops to C++11 for loops.
Q_FOREACH will de deprecated soon.
2016-10-02 21:45:55 -04:00
Felix Geyer
ad834f0f58 Merge branch '2.0' 2016-10-02 21:45:55 -04:00
Felix Geyer
8a50ee8b22 Close database without asking when unmodified.
Don't ask for confirmation when closing/locking a database and
- it's in edit entry mode
- there haven't been any modifications

Refs #511
2016-10-02 21:45:54 -04:00
Felix Geyer
cf8186312a Refactor parts of EditEntryWidget::saveEntry() into updateEntryData(). 2016-10-02 21:45:54 -04:00
Felix Geyer
8f87b5cfd4 Split EditWidgetIcons::save() into state() and reset(). 2016-10-02 21:45:54 -04:00
Felix Geyer
61ce733c6f Make Entry::endUpdate() return whether the entry has been modified. 2016-10-02 21:45:54 -04:00
Felix Geyer
c78822f6e6 Merge branch '2.0' 2016-10-02 21:45:54 -04:00
Felix Geyer
a10a30f390 Fix name of Qt translation file.
In Qt5 it's qtbase_<lang> instead of qt_<lang>
2016-10-02 21:44:33 -04:00
Felix Geyer
7c7014d951 Drop obsolete GCRYPT_HAS_SALSA20 ifdef. 2016-10-02 21:44:33 -04:00
Jonathan White
dee331d52d Fixed Travis CI build process 2016-10-02 21:30:17 -04:00
Jonathan
2146392a2f Merge pull request #8 from daniellandau/save-with-ctrl-return
Save entry with ctrl+return keyboard shortcut
2016-10-02 10:10:33 -04:00
Jonathan White
e011a6eb25 Fixed typo from merge 2016-10-02 10:02:54 -04:00
Jonathan White
5eadd10612 Merge remote-tracking branch 'origin/keepassx_merge' 2016-09-29 22:37:45 -04:00
Felix Geyer
c2a80ce570 Remember auto-type window size.
Resize columns once when the entry list is set.

Based on https://github.com/keepassx/keepassx/pull/158

Closes #478
2016-09-29 22:08:37 -04:00
Felix Geyer
3415073051 Display an error message when opening the database fails.
Closes #462
2016-09-29 22:08:29 -04:00
Felix Geyer
ba68e0a4a1 Show proper error message when key is wrong for .kdb files. 2016-09-29 22:08:20 -04:00
Felix Geyer
8a7e98820a Fix typo.
# Conflicts:
#	src/format/KeePass2Reader.cpp
2016-09-29 22:08:10 -04:00
Felix Geyer
d61e4d69b5 Update optional dependencies in the README.
# Conflicts:
#	README.md
2016-09-29 22:05:32 -04:00
Felix Geyer
9b8912c483 Print libXtst instead of libXtest in the feature summary.
The protocol is called XTEST but the library libxtst.

Closes #440

# Conflicts:
#	src/autotype/CMakeLists.txt
2016-09-29 21:58:56 -04:00
Felix Geyer
878995366a Ask the user before moving an entry to the recycle bin.
Closes #447
2016-09-02 12:00:12 +02:00
Felix Geyer
1635a5211f Pass entryFlags to clone() when recursing into sub-groups.
Based on https://github.com/keepassx/keepassx/pull/178 by Mois Moshev <mois@monomon.me>

Closes #525
2016-09-02 11:47:22 +02:00
Felix Geyer
595b1011dd Refresh fileInfo after creating the file.
Fixes canonicalFilePath() returning an empty string.
2016-09-02 11:35:39 +02:00
Felix Geyer
9bb291235d Fix monospace font on Windows.
Closes #424
2016-09-02 11:35:39 +02:00
Felix Geyer
7d4ef0b8d0 Generate new password whenever the generator widget is opened.
Closes #414
2016-09-02 11:35:39 +02:00
Florian Geyer
8d16522d39 Repair UUID of inconsistent history items.
Closes #130
2016-08-03 23:48:40 +02:00
Felix Geyer
cd1192b409 Allow deleting the recycle bin.
Closes #46
2016-08-03 23:45:04 +02:00
Felix Geyer
bf2fd63131 Fix crash when deleting parent group of recycle bin.
In these cases delete the group instead of trying to move it to the recycle bin.

Closes #520
2016-08-03 23:27:02 +02:00
Daniel Landau
029da87346 Save and exit entry editing with Ctrl+Return
When the cursor is on most fields, you can use Return to end editing and
save, but on the Notes field Return just changes the line. This commit
adds a shortcut to the whole widget to save with Ctrl+Return, so that
saving and exiting is quick even when editing notes.
2016-08-02 16:10:54 +03:00
Felix Geyer
9532bedd7d Update min. length for password generator.
Update the minimum length for the password generator depending on the chosen
options.

Closes #420
2016-07-31 22:07:47 +02:00
Felix Geyer
e9c8363b70 Save to canonical file path so we don't overwrite symlinks.
When saving a database we previously replaced symlinks with a regular file.

Closes #442
2016-07-31 18:29:43 +02:00
Felix Geyer
fb57ed2bcd Add proper error handling when QSaveFile::open() fails.
Based on pull request by Valeriy <jazzvoid@gmail.com>

Closes #450
2016-07-31 17:07:31 +02:00
Felix Geyer
57ec558396 Detect image format solely on content.
Otherwise reading fails if the file extension is wrong.

Closes #512
2016-07-31 15:36:29 +02:00
Felix Geyer
6e2de1cd79 Display proper error message when reading an icon fails.
Refs #512
2016-07-31 14:44:45 +02:00
Felix Geyer
8ace3ab7f2 Don't consider windows with WithdrawnState as top level windows.
Fixes many bogus windows in auto-type window list when using gnome-shell.
2016-07-31 14:44:45 +02:00
Felix Geyer
18e4dca6c9 Explicitly include QFile in TestKeePass2Writer.
Closes #452
2016-07-31 14:44:45 +02:00
Jonathan White
99bb5d33f2 Incorporated fix for IPV6 remote server 2016-07-07 19:32:31 -04:00
Felix Geyer
d4ed4f9325 Remember auto-type window size.
Resize columns once when the entry list is set.

Based on https://github.com/keepassx/keepassx/pull/158

Closes #478
2016-05-25 16:55:06 +02:00
Jonathan White
bb2e1ee8da Revert "Fix IPv6 support and warn when binding fails"
Yikes this fix doesn't compile.
2016-05-24 02:21:17 -04:00
Jonathan White
51bfbc964e Fix IPv6 support and warn when binding fails
Thanks to @eugenesan
2016-05-24 02:12:33 -04:00
Felix Geyer
48eca3e11f Display an error message when opening the database fails.
Closes #462
2016-05-20 16:49:32 +02:00
Felix Geyer
57c1a0f4b6 Show proper error message when key is wrong for .kdb files. 2016-04-09 16:09:53 +02:00
Felix Geyer
bde4d63fdb Fix typo. 2016-04-09 16:02:49 +02:00
Jonathan White
cbb1269b39 Merge from eugenesan/keepassx to implement 1.8.4.1 improvements 2016-04-03 10:49:00 -04:00
Jonathan White
175167b311 Temporary fix for new keepasshttp version
Updates internal version number to prevent warnings on browser plugins. Does not implement host change protocol added in this version.
2016-03-26 09:09:35 -04:00
Jonathan White
029052fa18 Updated readme 2016-03-14 21:19:34 -04:00
Jonathan White
a454469949 Fixed test cases not building 2016-03-14 21:17:18 -04:00
Jonathan
0562ed720b Merge pull request #1 from liangwang/master
update header file for Qt5
2016-03-14 21:12:48 -04:00
Liang Wang
cbe8a9649c update header file for Qt5 2016-03-14 11:34:21 -04:00
Jonathan White
f48fdc1d71 Updated Readme 2016-02-28 11:00:05 -05:00
Jonathan White
7f7753a004 Fixed various Qt5 changes in the http code 2016-02-28 10:52:02 -05:00
Jonathan White
aba4fa94be Merge remote-tracking branch 'keepassx/master'
# Conflicts:
#	README.md
#	share/translations/keepassx_de.ts
#	src/CMakeLists.txt
#	src/gui/MainWindow.h
2016-02-27 19:11:09 -05:00
Felix Geyer
4eea7c8297 Remove KEEPASSX_EXPORT attribute from Tools::binaryFind().
It's an inline function. Declaring it as KEEPASSX_EXPORT breaks
building on Windows.

Closes #373
2016-02-13 11:54:54 +01:00
Felix Geyer
4867d26f7d Update optional dependencies in the README. 2016-02-13 11:24:11 +01:00
Felix Geyer
9bd3ab717e Print libXtst instead of libXtest in the feature summary.
The protocol is called XTEST but the library libxtst.

Closes #440
2016-02-13 11:13:15 +01:00
Felix Geyer
d6d92ce90a Merge branch '2.0' 2016-02-08 18:13:29 +01:00
Felix Geyer
3679b21701 Fix typo in changelog. 2016-02-02 01:22:48 +01:00
Felix Geyer
49f58b4ed8 Prepare 2.0.2 release. 2016-02-02 01:21:39 +01:00
Felix Geyer
235361faf4 Explicitly cast char constant to QChar. 2016-02-02 00:57:28 +01:00
Felix Geyer
208b803fbe Fix KeePass2Repair to retain multi-byte UTF-8 chars.
Since char is (often) unsigned the ch < 0x20 check matched all
multi-byte encoded UTF-8 chars.
2016-02-02 00:41:16 +01:00
Felix Geyer
8a92cec03f Keep valid surrogate pairs in stripInvalidXml10Chars(). 2016-02-02 00:38:58 +01:00
Felix Geyer
00f068b93e Fix typo in changelog. 2016-01-31 20:00:44 +01:00
Felix Geyer
654353e26b Update translations. 2016-01-31 19:03:25 +01:00
Felix Geyer
d670ef2638 Prepare for 2.0.1 release. 2016-01-31 18:49:35 +01:00
Felix Geyer
aff935b3c7 Properly handle a missing key filename. 2016-01-31 17:08:50 +01:00
Felix Geyer
107c0673c7 Make sure we don't write negative icon ids into the database. 2016-01-31 17:06:51 +01:00
Felix Geyer
c14d04b3e8 Fix crash when icon id is larger than INT_MAX.
In these cases icon id was interpreted as a negative number.
The QList access with a negative index resulted in a crash.
2016-01-31 16:44:34 +01:00
Felix Geyer
7a017041bf Allow opening databases that have no password and keyfile.
Closes #391
2016-01-31 16:17:24 +01:00
Felix Geyer
bfae81ec70 Use C++11 keyword directly in new methods. 2016-01-29 17:25:32 +01:00
Felix Geyer
71d4cb781d Merge branch '2.0' 2016-01-29 17:22:37 +01:00
Felix Geyer
eb56bd8973 Add repair functionality to strip invalid XML chars.
Refs #392
2016-01-28 23:07:04 +01:00
Felix Geyer
93585aded7 Always display scaled custom icons.
Closes #322
2016-01-26 22:44:38 +01:00
Felix Geyer
38245aa2a9 Add iconScaledPixmap() convenience functions. 2016-01-24 20:12:33 +01:00
Felix Geyer
1f33e6f044 Add Metadata::customIconScaledPixmap(). 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
2d741afe3e Strip invalid XML chars when writing databases.
These characters are unprintable or just plain invalid.
QXmlStreamReader throws and error when reading XML documents with such chars.

Closes #392
2016-01-24 17:20:16 +01:00
Florian Geyer
5e6b17aba4 Disable password generator button when showing entry in history mode.
Closes #422
2016-01-22 22:55:28 +01:00
Florian Geyer
c51098e2cf Flush temporary file before opening attachment.
Closes #390
2015-12-16 21:38:20 +01:00
Felix Geyer
ecfbf72a57 Merge branch '2.0' 2015-12-15 21:05:00 +01:00
Felix Geyer
24275d8dc4 Bump version. 2015-12-06 22:19:05 +01:00
Felix Geyer
94d82948f6 Update translations. 2015-12-06 21:06:06 +01:00
Felix Geyer
54fb1abb96 Update changelog. 2015-12-06 21:03:00 +01:00
Felix Geyer
a3b936fcd0 Coding style fixes. 2015-12-06 20:27:09 +01:00
Felix Geyer
efc4cd5969 Merge remote-tracking branch 'github/pr/74' 2015-12-06 19:21:38 +01:00
Felix Geyer
17ab438c5a Make sure Windows doesn't load DLLs from the current working directory. 2015-12-06 14:32:06 +01:00
Felix Geyer
77b4bfb14e Cleanup string argument numbers. 2015-12-06 14:31:23 +01:00
Felix Geyer
7839280cb3 Check if the tray icon is visible before minimizing to it. 2015-11-01 23:32:37 +01:00
Felix Geyer
9e1ea264e2 Use availableGeometry() to calculate the dialog position.
availableGeometry() excludes ares where windows can't be placed (e.g. panels).
2015-11-01 23:26:40 +01:00
Felix Geyer
b02ec98ec6 Show AutoTypeSelectDialog on the active desktop.
This wasn't always the case on X11 with virtual desktops.

Closes #359
2015-11-01 23:23:01 +01:00
Felix Geyer
2fa531745f Check XML key file for valid base64 before using it.
QByteArray::fromBase64() doesn't validate the input.

Closes #366
2015-11-01 18:32:15 +01:00
Felix Geyer
0c36c40a5d Make TestGui work with offscreen QPA.
For some reason hasFocus() returns true here.
Use isVisible() instead as it's a stronger check anyway.
2015-11-01 13:37:03 +01:00
Felix Geyer
6337e673f9 travis-ci: Restore accidentally removed cmake args. 2015-10-15 20:58:00 +02:00
Felix Geyer
e800892cc1 travis-ci: Install xvfb package to run the gui tests. 2015-10-15 20:56:39 +02:00
Felix Geyer
a21e893749 travis-ci: Switch to the Ubuntu trusty image. 2015-10-15 20:28:50 +02:00
Felix Geyer
dff3fc0572 Coding style fixes. 2015-10-15 18:02:31 +02:00
Felix Geyer
5de0ec94e0 Stop using deprecated methods from QtAlgorithms. 2015-10-13 22:52:07 +02:00
Felix Geyer
a408b01111 Add WITH_DEV_BUILD mode.
It disables/warns about deprecated methods.
2015-10-13 22:51:31 +02:00
Felix Geyer
6e45cf0dab Use C++11 keywords directly. 2015-10-11 10:47:30 +02:00
Felix Geyer
dc7b6623a9 Merge branch '2.0' 2015-10-11 10:44:30 +02:00
Felix Geyer
820941fd40 Auto-Type: Only require a substring match for regex.
This matches the behavior of KeePass.

Refs #357
2015-10-10 17:36:08 +02:00
Felix Geyer
862941abf6 TestAutoType: Restore AutoTypeEntryTitleMatch before every test. 2015-10-10 17:23:57 +02:00
Felix Geyer
e98c30f633 Disable systray on OS X.
It's not useful on that platform.

Refs #326
2015-10-10 17:10:29 +02:00
Felix Geyer
316a7e6fb7 Expose version of used libraries in the About dialog. 2015-10-10 17:10:29 +02:00
Felix Geyer
58ed99d562 OS X: Restore main window when clicking on the docker icon.
Apparently this worked previously. Maybe a regression in Qt?

Refs #326
2015-10-10 17:10:27 +02:00
Felix Geyer
840642394f Cope with focusWidget/activeWindow returning windows that are minimized. 2015-10-10 12:07:28 +02:00
Frank Nießen
9484af5329 Minimize-On-Startup: call configuredMinimizeWindow() function of MainWindow to hide it after database is unlocked 2015-10-08 20:30:03 +02:00
Frank Nießen
3cf1a16398 Minimize-On-Startup: add function to minimize mainwindow if all four tray settings are true 2015-10-08 19:25:42 +02:00
Frank Nießen
0f0af12353 Minimize-On-Startup: get and set new setting from/to config object 2015-10-08 19:09:58 +02:00
Frank Nießen
7cb9a4ee4a Minimize-On-Startup: translation (de) for new checkbox in ui 2015-10-08 19:09:58 +02:00
Frank Nießen
28a1eb86da Minimize-On-Startup: new checkbox in ui 2015-10-08 19:09:41 +02:00
Frank Nießen
86f12d9e83 cleaner handling of TrayIconEnabled 2015-10-08 16:27:29 +02:00
Frank Nießen
539f86fd0b respect setting of parent checkboxes for minimizeToTray 2015-10-08 15:13:22 +02:00
Frank Nießen
c93b12ff05 better handling and display for systray checkbox buttons 2015-10-06 21:12:59 +02:00
Frank Nießen
319edca870 add translation for new checkbox button 2015-10-06 21:11:51 +02:00
Florian Geyer
ebeedba072 Reset visibility state of password field on unlocking.
Closes #354
2015-09-28 22:30:29 +02:00
Felix Geyer
568dfde074 Fix minimum size of AboutDialog.
Also make the dialog non-resizeable.

Closes #352
2015-09-28 22:08:33 +02:00
Felix Geyer
5a59287927 Revert "travis-ci: Restore some sanity."
This reverts commit 20726ae75c.

The packages fail to install, probably conflict with some other
installed packages.
I can't be bothered to debug this. Let's hope Travis CI updates
the build environment to something more usable soon.
2015-09-27 23:20:27 +02:00
Felix Geyer
b8c1829857 Improve tray icon behavior on OS X.
Previously the main window had issues on restore:
- was sometimes hidden again.
- window was unresponsive, all actions disabled.
2015-09-27 23:16:18 +02:00
Felix Geyer
4f2d56a55f Fix another small memory leak. 2015-09-26 12:41:53 +02:00
Felix Geyer
6b49f8f26b Free input device list.
Fixes a memory leak.
2015-09-26 12:41:53 +02:00
Felix Geyer
fc8cb7cd14 Check if XListInputDevices returns an error.
Refs #351
2015-09-26 12:41:52 +02:00
Felix Geyer
727094abc6 Unload auto-type plugins if they run in an unsupported environment.
Refs #351
2015-09-26 12:41:47 +02:00
Felix Geyer
20726ae75c travis-ci: Restore some sanity. 2015-09-26 11:48:31 +02:00
Felix Geyer
3b2a39fd38 Merge branch '2.0' 2015-09-26 11:44:27 +02:00
Felix Geyer
bcb54bc38a Avoid dereferencing QLists. 2015-09-25 21:34:56 +02:00
Felix Geyer
14aac09318 Avoid implicit casts from bool to int. 2015-09-25 21:34:56 +02:00
Felix Geyer
9d42db9849 Mark more methods as override. 2015-09-25 21:34:56 +02:00
Felix Geyer
ee81c7c00e Remove WITH_LTO option.
It's broken and probably not worth the potential again.

Refs #353
2015-09-25 21:34:51 +02:00
Felix Geyer
2edf414aa4 Fix compiler warning on OS X and Windows. 2015-09-24 18:45:23 +02:00
Felix Geyer
54f44f5267 Show a better message when trying to open an old database format.
Refs #338
2015-09-23 23:16:49 +02:00
Felix Geyer
6ab54bc95a Check if libXi is installed and explicitly link against it. 2015-09-23 22:26:49 +02:00
Felix Geyer
c8ae31a248 Remove backported Qt5 test macros. 2015-09-23 22:21:21 +02:00
Florian Geyer
66a01e4fef Better output of translation file paths in cmake message. 2015-09-23 20:15:09 +02:00
Felix Geyer
d559db4fb1 Merge branch '2.0' 2015-09-21 23:23:51 +02:00
Felix Geyer
673dff2268 Auto-Type: Raise target window after showing the select dialog.
kwin >= 5.4 (since commit cfa1d61) prefers to focus the main window
instead of following the focus chain.

We ask the window manager nicely to focus the window we want to
type into. kwin seems to follow that (in the default configuration).
2015-09-21 23:12:10 +02:00
Felix Geyer
6f5871434d Update required version of build-dependencies.
Refs #350
2015-09-19 11:28:03 +02:00
Felix Geyer
685f249fd0 Merge remote-tracking branch 'github/pr/128'
https://github.com/keepassx/keepassx/pull/128
2015-09-19 11:22:17 +02:00
Nairolf21
26ccd577b5 Update dependencies to build KeepassX 2015-09-18 01:13:53 -07:00
Felix Geyer
bb38be40f6 Enable Ctrl+M shortcut to minimize window on all platforms.
Closes #329
2015-09-13 22:33:07 +02:00
Felix Geyer
f236c32063 Clear clipboard when locking databases.
Closes #342
2015-09-13 12:38:19 +02:00
Felix Geyer
236edae60b travis-ci: Backport OS X improvements from master. 2015-09-12 23:35:59 +02:00
Felix Geyer
5a13402b51 Activate window in TestGui.
It doesn't seem to get the focus automatically when run inside Xvfb.
QTRY_VERIFY(searchEdit->hasFocus()) failed as a result of this.
2015-09-12 23:12:17 +02:00
Felix Geyer
82aa02a980 travis-ci: Switch to Qt 5.4.2 ppa. 2015-09-12 21:46:15 +02:00
Felix Geyer
3dd98deecc Use QStandardPaths::DataLocation instead of AppDataLocation.
AppDataLocation is only available in Qt >= 5.4.
2015-09-12 18:41:48 +02:00
Felix Geyer
2e23fb203a Pass -std=c++11 to the C++ compiler unconditionally.
All supported compiler should understand it.
2015-09-12 16:16:18 +02:00
Felix Geyer
625e9a2547 Make TestGui agnostic to added "&" in tab title.
Fixes tests on OS X / Qt 5.5.0.
2015-09-12 15:48:38 +02:00
Felix Geyer
aab2b7df1c travis-ci: Remove conflicting libgcrypt11-dev package. 2015-09-12 15:43:18 +02:00
Felix Geyer
31bd44bec5 travis-ci: Output test failures on OS X. 2015-09-12 15:39:21 +02:00
Felix Geyer
11532b603a travis-ci: Use more force. 2015-09-12 15:38:48 +02:00
Felix Geyer
523c88b80d travis-ci: Install libgcrypt from Ubuntu 14.04.
This is getting really ugly but we need libgcrypt >= 1.6.
2015-09-12 15:31:24 +02:00
Felix Geyer
7cf1bb7e38 travis-ci: Pass Qt5 installation path to cmake. 2015-09-12 15:26:45 +02:00
Felix Geyer
eb9fdb43c1 travis-ci: install and use gcc 4.7.
gcc 4.6 doesn't support all C++11 feature we need.
2015-09-12 15:24:42 +02:00
Felix Geyer
0362f45547 Don't try to install homebrew packages that are already there.
brew install <existing package> returns an error code.
2015-09-12 14:43:37 +02:00
Felix Geyer
31f55fdb26 Install cmake binaries provided by upstream.
cmake 2.8.7 in Ubuntu 12.04 is too old.
2015-09-12 14:34:59 +02:00
Felix Geyer
26928a63e8 Try to work around travis providing an ancient build environment. 2015-09-12 14:12:27 +02:00
Paultergeist
abacec5787 Fixed compile error on Mac 2015-09-12 14:00:53 +02:00
Benjamin Robin
d84af2def0 Fix the open recent database menu.
With at least Qt 5.5 the action text is automatically modified from
/home/ben/db.kdbx to /&home/ben/db.kdbx

So add the path of the database to the action using setData

Signed-off-by: Benjamin Robin <dev@benjarobin.fr>
2015-09-12 14:00:03 +02:00
Felix Geyer
7fa0eddc5f Make C++11 mandatory. 2015-09-12 13:55:50 +02:00
Felix Geyer
0e85c98d02 Remove backported definitions from Global.h. 2015-09-12 13:51:49 +02:00
Felix Geyer
ae2b27d400 Connect rowsAboutToBeMoved() and rowsMoved() again.
Accidentally removed in 4fcce6f98f3d481514825ebdffc024c36bd5389c
2015-09-12 13:51:49 +02:00
Felix Geyer
7c424e1b85 Merge updated modeltest from Qt 5. 2015-09-12 13:51:49 +02:00
Felix Geyer
ba1ca4ec08 Rename x11 auto-type plugin to xcb.
This matches what QGuiApplication::platformName() returns.
2015-09-12 13:51:49 +02:00
Felix Geyer
20b13a4a2e Ger rid of last Qt 4 version check. 2015-09-12 13:51:49 +02:00
Felix Geyer
460b23b1eb Use QElapsedTimer everywhere. 2015-09-12 13:51:49 +02:00
Felix Geyer
9882f16614 Remove Tools::currentDateTimeUtc(). 2015-09-12 13:51:49 +02:00
Felix Geyer
60daa2b41b Require libgcrypt >= 1.6.0.
Remove our own Salsa20 implementation as libgcrypt ships one
with that version.
2015-09-12 13:51:49 +02:00
Felix Geyer
d81565df55 qttools5-dev-tools is also required for building on Debian. 2015-09-12 13:51:49 +02:00
Felix Geyer
e2ac176d3c Remove second argument of QSKIP call.
Has been removed in Qt 5.
2015-09-12 13:51:49 +02:00
Felix Geyer
ec8c0bb3e7 Setup new build dependencies. 2015-09-12 13:51:49 +02:00
Felix Geyer
b904fe5acd Adapt X11 auto-type plugin to handle xcb instead of xlib events. 2015-09-12 13:51:49 +02:00
Felix Geyer
3b07098731 Port native event filter to Qt 5. 2015-09-12 13:51:49 +02:00
Felix Geyer
03a330a4dd Port Tools::platform() to Qt 5.
The Q_WS_* definitions are gone.
2015-09-12 13:51:49 +02:00
Felix Geyer
6502da549b Fix build failure in AutoTypePlatformX11::SendEvent(). 2015-09-12 13:51:49 +02:00
Felix Geyer
a71e25a8ba Fix GUI tests. 2015-09-12 13:51:49 +02:00
Felix Geyer
9e05f41747 Port to Qt 5 plugin system. 2015-09-12 13:51:49 +02:00
Felix Geyer
208b0f39e6 Adapt to QtConcurrent being a separate module now. 2015-09-12 13:51:49 +02:00
Felix Geyer
5ad9edc3fd QDesktopServices::storageLocation() calls to QStandardPaths. 2015-09-12 13:51:49 +02:00
Felix Geyer
c714fc89f1 Add missing include statements. 2015-09-12 13:51:49 +02:00
Felix Geyer
e3cde7b55e Adapt to setSupportedDragActions() begin removed.
Models have a virtual supportedDragActions() now.
2015-09-12 13:51:49 +02:00
Felix Geyer
5a745da07b Remove QCOmmandLineParser.
It is part of Qt >= 5.2.
2015-09-12 13:51:49 +02:00
Felix Geyer
531018e58d Remove QSaveFile and QLockFile.
They are part of Qt >= 5.1.
2015-09-12 13:51:49 +02:00
Felix Geyer
813c64a055 Port cmake files to Qt 5. 2015-09-12 13:51:49 +02:00
Felix Geyer
a954e9a4d8 Update translations. 2015-09-06 23:41:29 +02:00
Felix Geyer
95c449481e Prepare beta 2 release. 2015-09-06 23:39:54 +02:00
Felix Geyer
0b43607aa1 Make sure we use the native file dialog on Windows and OS X. 2015-09-06 13:32:12 +02:00
Felix Geyer
e75efb8bfb Improve setting the default file extension in FileDialog.
Largely from PR #105 by Charles Brunet <charles@cbrunet.net>
2015-09-05 19:10:26 +02:00
Felix Geyer
d83fee89bd Fix building WITH_CXX11 on OS X. 2015-09-05 19:03:24 +02:00
Akinori MUSHA
b773dbe645 Test if hitting the Down key moves the focus to the entry view. 2015-08-05 19:02:17 +09:00
Akinori MUSHA
5c7c7f54fa Improve UI of the search edit.
- The copy action (Control+C) when no text is selected copies the
  password of the current entry.  This should be reasonable when
  Control+B copies the username.

- Down at EOL moves the focus to the entry view.  Enter and Tab should
  do that, but it would be handy for user to be able to get to the third
  entry by hitting Down three times.
2015-08-05 19:02:17 +09:00
Felix Geyer
98417d6465 Set default extension when selected filename doesn't have one.
Closes #79
2015-07-25 18:16:33 +02:00
Felix Geyer
0ea64afe92 Fix type of default value for options. 2015-07-25 18:13:57 +02:00
Felix Geyer
a862f62fe8 Set a default filename when saving a new database.
Closes #308
2015-07-25 17:47:45 +02:00
Felix Geyer
5bd525a6dd Use correct keycode when unregistering global shortcuts.
charToKeySym() is already correctly used in registerGlobalShortcut().
2015-07-22 20:38:03 +02:00
Felix Geyer
af3d896bdf Make setNativeLocks() non-fatal on OS X. 2015-07-21 23:12:20 +02:00
Felix Geyer
ceeb72a277 Pull QLockFile updates from the qtbase repository. 2015-07-21 23:11:02 +02:00
Felix Geyer
2c17fdcff0 Correct link order of testhashedblockstream.
Fixes FTBFS on Windows.
2015-07-21 23:08:12 +02:00
Florian Geyer
41a7c96968 Close search before locking database and add additional check on current group.
Closes #309.
2015-07-20 22:45:57 +02:00
Felix Geyer
98d9dae087 Test if reset() and close() write only one final block. 2015-07-20 21:51:32 +02:00
Felix Geyer
2033174d95 Test if we correctly detect errors when writing. 2015-07-20 21:35:48 +02:00
Felix Geyer
606e36acf3 Detect and display more errors when writing databases. 2015-07-20 21:35:48 +02:00
Felix Geyer
0422943d52 Explicitly close/reset streams so we can detect errors. 2015-07-20 21:35:48 +02:00
Felix Geyer
0024f2e30f Signal errors in QXmlStreamWriter upstream.
Unfortunately the method is only avaiable in Qt >= 4.8.
Not much we can do about that.
2015-07-20 21:35:43 +02:00
Felix Geyer
abe5e8ecea Don't write final block(s) if we already have. 2015-07-20 21:33:51 +02:00
Felix Geyer
61503a8047 SymmetricCipherStream: Add error handling when reading from the device. 2015-07-20 19:54:18 +02:00
Felix Geyer
fcb5deff0a SymmetricCipherStream: Fix error string when detecting an error while writing. 2015-07-20 19:53:17 +02:00
Felix Geyer
fdec16c3a0 Fix copyright file match for username-copy.png. 2015-07-19 21:16:22 +02:00
Felix Geyer
84ee8b993f Explicity hide the tray icon before deleting it.
In some conditions the tray icon stayed visible until the application
was closed.
Tested on Kubuntu 15.04 (KDE Plasma 5.2).
2015-07-19 21:14:08 +02:00
Felix Geyer
3d1c27ceb7 Copy the database in TestGui before opening it.
We don't want to create lock files in the source tree.
2015-07-19 19:33:47 +02:00
Felix Geyer
7d3fb58cf5 Fix lock file location in saveDatabaseAs().
Previously the directory of the lock file path was empty when
saving to a new file.
saveFile.open() doesn't create the file and canonicalPath()
only works when the file exists.
2015-07-19 00:41:35 +02:00
Felix Geyer
df5da2fcef Fix lock file handling in saveDatabaseAs(). 2015-07-18 22:46:45 +02:00
Felix Geyer
1226d1dbd5 Prepare next release. 2015-07-18 21:20:38 +02:00
Felix Geyer
607007f94f Display country in language list.
But only if the translation specifies one.
2015-07-18 18:38:41 +02:00
Felix Geyer
6327eaf587 Fix tab name for read-only databases. 2015-07-18 18:29:19 +02:00
Felix Geyer
b1fd99f4c4 Enable document mode of DatabaseTabWidget.
This fixes a visual artifact when the GTK style is used and
only one database tab is open.

Closes #131
2015-07-18 18:27:17 +02:00
Felix Geyer
d1331053c8 Document GetGitRevisionDescription.cmake license. 2015-07-18 17:37:48 +02:00
Felix Geyer
c6fe0da569 Abort closing the app if saving a database failed. 2015-07-18 17:36:08 +02:00
Florian Geyer
b9fe2c1bf9 Small clean up. 2015-07-18 13:23:36 +02:00
Florian Geyer
3efc8f457a Display git revision in about dialog. 2015-07-18 13:14:13 +02:00
Felix Geyer
65e8732eeb Remove --password command line option.
Passing passwords on the command line is unsafe.
2015-07-17 21:31:36 +02:00
Felix Geyer
e82015d419 Update translations. 2015-07-17 20:54:28 +02:00
Florian Geyer
fa0fe6d33d Make tab order consistent. 2015-07-16 23:50:35 +02:00
Felix Geyer
8be135adf9 Merge remote-tracking branch 'github/pr/54' 2015-07-16 23:12:52 +02:00
Jerome Leclanche
d04927ce7f Use a better GenericName 2015-07-16 23:07:21 +02:00
Felix Geyer
6889cc2f20 Another Qt 4.6 compatibility fix. 2015-07-16 22:55:50 +02:00
Felix Geyer
8325b20d36 Make QElapsedTimer optional in QLockFile.
This restores compatibility with Qt 4.6.
2015-07-16 21:52:08 +02:00
Felix Geyer
826cd472c8 Group all copy to clipboard menu entries together. 2015-07-16 20:09:23 +02:00
Felix Geyer
8ecab15c33 Merge remote-tracking branch 'github/pr/112'
Closes #149
2015-07-16 20:06:44 +02:00
Felix Geyer
c9520214e2 Merge remote-tracking branch 'github/pr/72' 2015-07-16 20:04:26 +02:00
Felix Geyer
6d1ca363af Remove support for clearing the Klipper history.
KDE Plasma 5 doesn't provide the DBus interface anymore and
this avoids the QtDBus dependency.
2015-07-16 20:02:10 +02:00
Felix Geyer
2170794d9c Guess the scheme when opening URLs.
Closes #293
2015-07-16 19:52:34 +02:00
Felix Geyer
719ac64851 Fix unused variable warning. 2015-07-16 19:49:41 +02:00
Felix Geyer
d3a7e0dee9 Merge remote-tracking branch 'github/pr/108' 2015-07-16 19:32:07 +02:00
Felix Geyer
240919335f Add missing EmptyUuids.xml test file. 2015-07-14 22:20:56 +02:00
Felix Geyer
ceb6a0383e Add ability to export databases to CSV files.
Based on implementation by Florian Geyer <blueice@fobos.de>

Closes #57
2015-07-14 22:14:34 +02:00
Felix Geyer
0185b112e1 Merge remote-tracking branch 'github/pr/92'
https://github.com/keepassx/keepassx/pull/92
2015-07-13 22:43:58 +02:00
Felix Geyer
af84261eb6 Avoid calling QDesktopServices::openUrl() when cmd is empty. 2015-07-13 22:41:03 +02:00
Felix Geyer
274f86fd04 Merge branch 'pr-94'
https://github.com/keepassx/keepassx/pull/94

Closes #244
2015-07-13 22:36:56 +02:00
Felix Geyer
bcc3108c3d Coding style cleanup. 2015-07-13 22:36:20 +02:00
Felix Geyer
5f1b286630 Merge branch 'pr-95'
https://github.com/keepassx/keepassx/pull/95

Closes #283
2015-07-13 22:22:45 +02:00
Felix Geyer
8ad48d6774 Protect against emitting inactivityDetected() while it'is still processed. 2015-07-13 21:25:48 +02:00
Felix Geyer
721bec9794 Make sure we don't lock the database while a dialog is open.
This can happen when
- the user is picking out a file to save the database as
- a dialog asking the user to save/discard/cancel the current database
  changes is active

It is dangerous to lock the databases while these actions are still
in progress.

Closes #208
2015-07-13 21:25:38 +02:00
Felix Geyer
c6105a08ab KeePass2XmlReader: Don't fail wheh nreading empty UUIDs.
Closes #298
2015-07-13 21:01:55 +02:00
Felix Geyer
154f1673e9 QSaveFile: Flush temporary file and fsync before renaming.
Closes #301
2015-07-13 21:01:53 +02:00
Felix Geyer
577609b3e3 Make calling QSaveFile::commit() non-fatal if it's not open. 2015-07-13 21:00:50 +02:00
Florian Geyer
f22069bb11 Use higher increment for transform rounds in benchmark.
Thanks to Sami Farin for providing a patch.

Closes #305.
2015-07-12 21:48:55 +02:00
Codifier
280a1aceb9 Bug #149
Moved the actionEntryCopyUsername and actionEntryCopyPassword actions to the root level of the context menu, for easier access and changed their labels to 'Copy username' and 'Copy password', respectively.
2015-07-12 20:54:02 +02:00
denk-mal
0390c67c4d allow multiple databeses on command line 2015-06-23 11:40:54 +02:00
denk-mal
1f6161132e makr filename parameter as optinal 2015-06-23 11:22:15 +02:00
denk-mal
fc74e16097 add optionsfield to set http port 2015-06-22 14:11:15 +02:00
Frank Nießen
b03f54ffcd remove duplicate 'using namespace KeepassHttpProtocol' 2015-06-21 21:45:18 +02:00
Frank Nießen
26f33a1c12 add fake workaround for the nasty bahvior of QJSON 2015-06-21 21:43:20 +02:00
Frank Nießen
6e8aeea76d set error to response if list is empty (avoid ChromeIPass hanging) (reverted from commit c736ba7059) 2015-06-21 20:46:09 +02:00
denk-mal
c736ba7059 set error to response if list is empty (avoid ChromeIPass hanging) 2015-06-19 13:19:30 +02:00
denk-mal
3eb4b3b208 Sort switch statement to real order (easier code reading ;-) ) 2015-06-19 13:17:28 +02:00
denk-mal
5982763bed implement a (nonperfect) hide-to-tray on win close 2015-06-18 15:23:41 +02:00
denk-mal
6b7f7bb777 disable calls to missing m_cipher.isValid() 2015-06-18 15:22:25 +02:00
denk-mal
5b9338e40e set actual version of keepasshttp (1.8.4.0) 2015-06-18 13:13:50 +02:00
denk-mal
eab4861383 Call Init for request and response object to avoid crashes on first plugin contact 2015-06-18 12:58:28 +02:00
Andy Zeigler
bcd3de1180 Add keyboard shortcut (Ctrl-Alt-U) for copy URL to clipboard. 2015-06-12 19:29:02 -07:00
Florian Geyer
f4361dd4d5 Fix enabled state of copy notes action. 2015-06-05 18:37:22 +02:00
Ivan
4008e6ab58 Fixed compile issue with latest merged changes from upstream 2015-05-22 21:23:21 -07:00
Ivan
a115bbdc6f Merge branch 'master' of https://github.com/keepassx/keepassx 2015-05-22 21:06:32 -07:00
Felix Geyer
fc43aa1717 Update translations. 2015-05-15 00:20:23 +02:00
Felix Geyer
d553698b20 Travis CI: Pass --output-on-failure to ctest. 2015-05-14 20:46:59 +02:00
Felix Geyer
7db9c78855 Ignore libgcrypt errors in CryptoHash::CryptoHash().
Postponed until after 2.0 when I'll use excpetions.

Should be safe as we check basic functioning in Crypto::testSha256().
2015-05-14 20:44:17 +02:00
Felix Geyer
7a2c02f0df Initialize some instance variables in ctor.
Discovered by Coverity.

Most likely doesn't fix any actual bug but better be safe.
2015-05-14 16:58:53 +02:00
Felix Geyer
c535736853 Add GUI for changing default group auto-type sequence.
Closes #175
2015-05-14 12:59:36 +02:00
Felix Geyer
a8bf6a9782 Refactor Tools::disableCoreDumps().
- Use all available methods.
- Don't print a warning when no method is implmeneted on the platform.
2015-05-14 12:58:00 +02:00
Amir Pakdel
0458dad6dc Code cleanups 2015-05-13 14:34:48 -04:00
Felix Geyer
68373730bf Fix compiler warnings where keysyms are printed.
%lX expectes unsigned long which KeySym is an alias for.
2015-05-12 23:57:36 +02:00
Felix Geyer
5d9039ea89 Silence compiler warning about an unused variable. 2015-05-12 23:40:02 +02:00
Felix Geyer
7e1faadd11 Merge remote-tracking branch 'github/pr/96'
Closes #218
2015-05-12 23:35:19 +02:00
Felix Geyer
fceb93061d Merge remote-tracking branch 'github/pr/97'
Closes #290
2015-05-12 22:31:51 +02:00
Amir Pakdel
c9d007fcdf Always clearing ChangeMasterKeyWidget.m_key 2015-05-12 16:31:14 -04:00
Felix Geyer
eeb940c0dc Fix plugin path detection when installed with DESTDIR.
This is in no way perfect but should cover most common cases.

Closes #291
2015-05-12 22:24:59 +02:00
Felix Geyer
05b5446e94 Protect opened databases with a file lock.
Closes #18
2015-05-12 22:24:45 +02:00
Amir Pakdel
b45437d502 Refactored DatabaseWidget::currentEntryHas*() 2015-05-12 15:54:39 -04:00
Amir Pakdel
a599787a25 Bug #290
Show realted menu option to current entry only if the corresponding
field is not empty.
2015-05-12 15:50:10 -04:00
Amir Pakdel
58061af959 Bug #218
Do not accept faulty files as Key File. Moreover, do not clear keys
unless we have a key to add.
2015-05-12 15:17:39 -04:00
Ivan
33ed4fd7cf Merge branch 'master' of https://github.com/keepassx/keepassx 2015-05-12 11:03:48 -07:00
Amir Pakdel
8bf1bb0517 Bug #283
Updated messages related to saivng and closing a database to make
them more clear about what is going to happen.
2015-05-12 13:46:48 -04:00
Amir Pakdel
d26cff520f Bug #244
Supporting cmd:// URLs
2015-05-12 12:25:43 -04:00
dartraiden
04aa10cee7 Russian translation for .desktop file 2015-05-12 00:14:58 +03:00
Felix Geyer
ade684d501 Crypto::selfTest(): test AES in ECB mode. 2015-05-10 00:02:08 +02:00
Felix Geyer
4362c3ea38 Handle cipher errors in TransformKeyBenchmarkThread. 2015-05-09 23:38:04 +02:00
Felix Geyer
e0d4b4b625 Adapt Salsa20 backend to the new interface. 2015-05-09 23:21:50 +02:00
Felix Geyer
cfffdae573 Improve error reporing of layered streams. 2015-05-09 23:21:50 +02:00
Felix Geyer
f6243675c9 Warn if result of processInPlace() is unchecked.
Fix callers accordingly.
2015-05-09 23:21:50 +02:00
Felix Geyer
a762cef0a9 Catch and handle all errors from libgcrypt. 2015-05-09 23:21:44 +02:00
Felix Geyer
a7f4e2d0cd Add Twofish tests to Crypto::selfTest(). 2015-05-09 18:15:01 +02:00
Felix Geyer
ae013c2196 Don't run gcrypt self tests.
Seems to be broken on some distros that enable hmac verification
of the binary but ship the signature in a separate package.

We have our own test cases for the algorithms we care about.
2015-05-09 17:32:52 +02:00
Felix Geyer
eefe844dcd Merge remote-tracking branch 'github/pr/80'
https://github.com/keepassx/keepassx/pull/80
2015-05-06 20:56:57 +02:00
Felix Geyer
94111c3662 Merge remote-tracking branch 'github/pr/90'
https://github.com/keepassx/keepassx/pull/90
2015-05-06 20:53:56 +02:00
dartraiden
3fca61dc24 spelling correction, fixed typos 2015-05-06 19:38:43 +03:00
Felix Geyer
e41bf008e9 Use Q_BYTE_ORDER for endianness detection.
A hardcoded list of architectures is always incomplete.
2015-05-03 20:00:23 +02:00
Felix Geyer
6c9c0fd5c5 Look for a close button when pressing the escape key. 2015-05-03 19:59:11 +02:00
Felix Geyer
f3d956ceed Display a Close button for history items.
Previously we had Ok and Cancel with the same action.
2015-05-03 18:59:19 +02:00
Felix Geyer
b9c9c56059 Use common EditEntryWidget::clear() method. 2015-05-03 18:58:44 +02:00
Felix Geyer
bed58cde84 Fix crash when pressing "cancel" on a history item. 2015-05-03 18:48:58 +02:00
Felix Geyer
855d79e28f Document the libxtst dependency. 2015-05-01 19:34:57 +02:00
Felix Geyer
a044467d10 Install desktop file and icons to DATADIR instead of the hardcoded share/. 2015-04-14 23:23:14 +02:00
Felix Geyer
ecb2e337ef Hide Auto-Type action when it's not available. 2015-04-14 23:12:10 +02:00
Felix Geyer
2dde18b179 Adjust coding style. 2015-04-14 23:10:37 +02:00
Felix Geyer
6411b9bd66 Merge remote-tracking branch 'github/pr/82'
https://github.com/keepassx/keepassx/pull/82

Closes #145
2015-04-14 23:07:14 +02:00
Ivan
d70ee509b4 Merge branch 'master' of https://github.com/keepassx/keepassx 2015-04-11 15:41:25 -07:00
Felix Geyer
cf0bc32b27 Store icons with a resolution of up to 128x128 px.
Follows what KeePass 2.29 will implement.
2015-04-08 18:22:13 +02:00
Felix Geyer
93ab7eb058 Use CMAKE_INSTALL_DATADIR to look for the data dir. 2015-04-08 18:07:53 +02:00
Felix Geyer
bd3ae05fcf Rename Extras menu to Tools and move Lock Databases action to it. 2015-04-05 10:48:08 +02:00
Felix Geyer
b055d524e8 Merge branch 'lockdb' 2015-04-05 10:38:58 +02:00
Felix Geyer
9e051e835b Close databases when they are locked.
Previously we've only hidden access to them.

Closes #275
2015-04-05 10:38:36 +02:00
Ivan
e20968bdfe Merge branch 'master' of https://github.com/keepassx/keepassx 2015-04-04 23:31:12 -07:00
Felix Geyer
3ab1072e9e Scale new custom icons down to 64x64 if they are larger. 2015-03-31 22:31:04 +02:00
Joe Harvell
00df73ced0 Issue #270 - turning off key location memory
Add general settting for whether or not to remember last key files
2015-03-14 22:06:53 -05:00
Felix Geyer
940a5026c1 Properly auto-type line breaks and tabs in text. 2015-03-13 22:24:29 +01:00
Felix Geyer
2631277184 Always sleep some time after the keymap has changed.
This works around a problem where sometimes chars are typed as if some
random modifiers are pressed.
2015-03-13 21:58:04 +01:00
Felix Geyer
b86b640860 Process events from the event loop before typing the first char. 2015-03-13 19:45:57 +01:00
Felix Geyer
2dfc740782 Rework handling of modifiers in auto-type.
Release all modifiers that are pressed and change the result.
2015-03-13 19:43:52 +01:00
Felix Geyer
e4985f4ff7 Get the xtest keyboard instead of the core keyboard.
If we don't find it fall back to the core keyboard.
2015-03-13 19:41:49 +01:00
Felix Geyer
22f579a59e Restore keyboard mapping only if we actually changed it. 2015-03-13 19:40:52 +01:00
Ben Boeckel
c9d12e93c2 cmake: remove the LOCATION query
Newer CMake deprecates the property. It isn't necessary anyways since
add_test will recognize targets as the executable name and make the full
path automatically.
2015-02-26 00:30:06 -05:00
Felix Geyer
778f01bcf1 Increase sleep time after remapping a keycode. 2015-02-24 22:00:44 +01:00
Felix Geyer
ccb7a4c96d Blacklist the KDE 5 root window. 2015-02-24 21:59:47 +01:00
IvanF
9e124e4a75 Removed unused qhttpserver code
Updated README.md
2015-01-30 00:58:52 -08:00
IvanF
db37b7b933 Updated README.md 2015-01-30 00:42:45 -08:00
IvanF
2e94066e50 Fixes to get code to compile with latest upstream. 2015-01-30 00:35:38 -08:00
IvanF
61c6962bf2 Deleted unused and unrelated files
Merged lots of changes from upstream that were missed or ignored
2015-01-30 00:29:01 -08:00
IvanF
9cbdd58af5 Fixed HTTP settings and service start-up 2015-01-30 00:04:27 -08:00
IvanF
eea9d7db97 Added http service start to MainWindow
Added http settings pane to SettingsWidget
Settings are probably broken still
2015-01-29 01:19:15 -08:00
IvanF
235baa3dcc Merge branch 'master' of https://github.com/keepassx/keepassx
Conflicts:
	README.md
	src/core/Config.cpp
	src/gui/DatabaseTabWidget.cpp
	src/gui/DatabaseTabWidget.h
	src/gui/DatabaseWidget.cpp
	src/gui/DatabaseWidget.h
	src/gui/MainWindow.cpp
	src/gui/MainWindow.h
	src/gui/MainWindow.ui
	src/gui/SearchWidget.ui
	src/gui/SettingsWidget.cpp
	src/gui/SettingsWidgetGeneral.ui
2015-01-29 00:17:39 -08:00
IvanF
f04f4302a2 Deleted local qjson, now using system qjson
Modified CmakeLists to require qjson
Replaced non-standard qjson calls with standard ones
2015-01-28 22:42:02 -08:00
Felix Geyer
33650c4a04 Add non-const version of Group::groupsRecursive(). 2015-01-11 16:20:24 +01:00
Victor Häggqvist
019cf9684c change tabindex, put password inputs after each other 2015-01-01 02:25:43 +01:00
Felix Geyer
835c411d12 Merge branch 'knu-fix_opening_attachment'
https://github.com/keepassx/keepassx/pull/71
2014-12-22 16:11:48 +01:00
Akinori MUSHA
e4758c1984 Fix the temporary filename template so that the original suffix is preserved. 2014-12-22 23:47:16 +09:00
Felix Geyer
eb22f0a2d8 Raise an error when parsing duplicate attributes/attachments. 2014-12-03 23:36:53 +01:00
Felix Geyer
3ea0592b53 Add hasKey() convenience methods. 2014-12-03 23:36:24 +01:00
Felix Geyer
876a75b572 Disable attachment buttons when none is selected. 2014-12-03 23:26:42 +01:00
Felix Geyer
c39898dad9 Support opening attachments directly. 2014-12-03 21:50:17 +01:00
Felix Geyer
07a3d7a696 Merge branch 'elrob-master'
https://github.com/keepassx/keepassx/pull/68
2014-12-02 08:34:30 +01:00
Rob Speller
7f412fbd7f Remove confusing grammar
Sentence still had 'either' because the sentence used to include twofish
2014-12-01 22:21:49 +00:00
Florian Geyer
2adc64939f Correct handling of keyfile argument.
Closes #223.
2014-12-01 22:47:22 +01:00
Felix Geyer
71d39865b3 Introduce a strict mode in KeePass2XmlReader.
Many errors are now ignored when not in strict mode so we can still parse
files that have been written by broken/incomplete implementations.
2014-12-01 21:52:51 +01:00
Felix Geyer
226c061c01 Remove Twofish reference from the README.
It isn't supported anymore.
2014-11-30 23:38:08 +01:00
Felix Geyer
dd2fbebb81 Add a translations section to the README. 2014-11-30 23:34:16 +01:00
Felix Geyer
889c742a33 Expand the build-dependency section of the README. 2014-11-30 23:31:25 +01:00
Felix Geyer
5cc3334325 Small README corrections. 2014-11-30 23:25:04 +01:00
Felix Geyer
e58be44523 Wrap overly long lines in README.md. 2014-11-30 23:23:29 +01:00
Felix Geyer
34a7321786 Merge branch 'hbetts-readme'
https://github.com/keepassx/keepassx/pull/46
2014-11-30 23:20:52 +01:00
Felix Geyer
07e4fbacd4 Remove ModifiedOnExpandedStateChanges config option.
I'm pretty sure noone knew what it actually does.
This is the sort of option users shouldn't be bothered with.
2014-11-30 23:04:17 +01:00
Felix Geyer
8fd69e084e Merge branch 'knu-untoggle_find'
https://github.com/keepassx/keepassx/pull/66
2014-11-30 22:54:23 +01:00
Akinori MUSHA
dd79105baa Complete remove the toggle search action. 2014-11-19 11:46:38 +09:00
Akinori MUSHA
b1c3814972 Make Ctrl+F not toggle the search mode but always enable it.
Switching back from other applications, the previous behavior of Ctrl+F
would often bother you in that it would dismiss the search widget if it
was already enabled when you meant by the key you wanted to perform a
search.

Making Ctrl+F always set you in search mode should save user from having
to care about the mode which is persistent across application switching
and database locking.
2014-11-18 19:46:53 +09:00
Felix Geyer
57107ea560 Enable debug mode for Travis CI builds. 2014-11-04 18:51:46 +01:00
Felix Geyer
4b3a82592c Define QT_NO_DEBUG for build type None.
Debian sets the the build type to None for package builds.
Make sure we don't enable asserts there.

Closes #237
2014-11-04 18:50:59 +01:00
Felix Geyer
6ecb8690f2 Update translations. 2014-11-02 15:42:39 +01:00
Felix Geyer
1c365b8417 Add Travis CI config. 2014-11-02 12:55:46 +01:00
Felix Geyer
315df0b8a8 Coding style fixes. 2014-11-02 11:46:51 +01:00
Felix Geyer
87468b648b Use specific monospace fonts as fallback on Mac OS X.
Qt (4.8.6) doesn't seem to be able to resolve the generic monospace
font family.

Closes #214
2014-11-02 11:44:03 +01:00
Felix Geyer
4cdb9a645d Add an option to display a tray icon.
Also implement "Minimize to tray" functionality.
2014-11-02 11:44:03 +01:00
Felix Geyer
870d7355ca Fix reading window title from _NET_WM_NAME.
XGetWindowProperty() returns 0 on success.

Closes #236
2014-11-02 11:44:03 +01:00
Florian Geyer
f1aa6aca26 Fix copy custom attributes menu. 2014-10-09 21:36:08 +02:00
Florian Geyer
72b59d541a Clear available languages when loading settings.
Thanks to Victor Häggqvist for spotting this.
2014-09-05 10:12:35 +02:00
Felix Geyer
0e8aa0bc6c Merge branch 'yayachiken-yayachiken-dev'
https://github.com/keepassx/keepassx/pull/58
2014-06-16 18:08:49 +02:00
David Kolossa
3a0648cf25 ! binds stronger than ==
This should just avoid useless copying if more than 1 attribute is
selected (and the option to copy attributes is unavailable).

This also fixes a clang warning.
2014-06-16 15:40:28 +02:00
David Kolossa
2e76385cae Fixed typo in INSTALL 2014-06-16 13:08:39 +02:00
Felix Geyer
867d14f7aa Merge branch 'movestill-fixConfigPath'
https://github.com/keepassx/keepassx/pull/49
2014-06-15 13:20:17 +02:00
Felix Geyer
0d6117bf4c Do some basic self-checks when initializing the crypto backend. 2014-06-15 11:17:40 +02:00
Felix Geyer
b417bf9187 Enable C++11 by default. 2014-06-13 21:33:36 +02:00
Sebastien Fricker
06e08557ac New setting: enablin/disabling the automatic reload on changes 2014-06-09 10:51:24 +02:00
Sebastien Fricker
95fdefdcc7 Merge github.com:keepassx/keepassx
Conflicts:
	src/gui/DatabaseWidget.cpp
2014-06-09 09:54:29 +02:00
Felix Geyer
7137990a21 Clear clipboard only if copied text is still present.
Closes #198
2014-05-26 18:41:48 +02:00
Felix Geyer
916ab99d62 Skip TestQSaveFile::transactionalWriteErrorRenaming as user root.
You can't deny root access to a file.

Closes #201
2014-05-26 18:24:43 +02:00
Felix Geyer
5a31e055cf Show the window title when no entry matches for auto-type.
Closes #188
2014-05-18 12:09:46 +02:00
Felix Geyer
28694ae687 Add initial support for translations. 2014-05-18 01:33:22 +02:00
Felix Geyer
becd3a0019 Increase the EntryView default column size a bit. 2014-05-17 19:01:43 +02:00
Felix Geyer
8cc1e6008e Use plurals in translations. 2014-05-17 18:17:31 +02:00
Felix Geyer
910788c038 Mark some strings as untranslatable. 2014-05-17 18:17:31 +02:00
Felix Geyer
9391de74c7 Block non-user updates in DatabaseWidgetStateSync. 2014-05-17 18:17:31 +02:00
Florian Geyer
c806f9ebf4 Correct tr-calls. 2014-05-17 18:13:22 +02:00
Felix Geyer
e776de8eeb Remember and synchronize entry column sizes.
Closes #159
2014-05-17 12:51:16 +02:00
Felix Geyer
a25b28ffee Rename config option window/Geometry to GUI/MainWindowGeometry. 2014-05-17 11:38:48 +02:00
Felix Geyer
0e75e6ff03 Make DatabaseWidget splitter non-collapsible. 2014-05-17 11:27:04 +02:00
Felix Geyer
76da4a6cd4 Use QSplitter::setStretchFactor() convenience method. 2014-05-17 11:25:45 +02:00
Felix Geyer
8a4100adbd Make DatabaseWidget::emit{Group,Entry}ContextMenuRequested() private. 2014-05-17 11:22:45 +02:00
Felix Geyer
584f4b50bf Coding style fix. 2014-05-17 11:21:50 +02:00
Felix Geyer
9ac01c930d Drop DatabaseWidget::groupView() and entryView(). 2014-05-17 11:21:17 +02:00
Felix Geyer
d874f58a39 Synchronize DatabaseWidget splitter sizes. 2014-05-17 11:16:27 +02:00
Florian Geyer
05de45dadb Improve tab order. 2014-05-16 19:49:58 +02:00
Felix Geyer
4ab887c773 Initally select first entry in EntryView.
Closes #104
2014-05-16 19:10:30 +02:00
Florian Geyer
552ca7bf71 Stop search timer when closing search. 2014-05-16 18:56:01 +02:00
Felix Geyer
2d8ba2b394 Focus the search field instead of closing it when pressing the shortcut.
Closes #124
2014-05-16 13:10:26 +02:00
Felix Geyer
a6d44034a4 Put test executables into their default location. 2014-05-16 13:10:26 +02:00
Florian Geyer
77af79498c Move QTEST_GUILESS_MAIN statements before test cases. 2014-05-16 12:32:52 +02:00
Florian Geyer
ea3375490c Introduce interface for exporter. 2014-05-16 12:32:06 +02:00
Florian Geyer
204cd8d971 Move exporter to separate class. 2014-05-16 12:07:22 +02:00
Florian Geyer
c2940a8f18 Extend TestEntrySearcher. 2014-05-16 10:51:22 +02:00
Florian Geyer
4f60df029d Refactor TestEntrySearcher. 2014-05-16 00:26:09 +02:00
Florian Geyer
819cfd459a Move match method out of entry class. 2014-05-16 00:19:58 +02:00
Florian Geyer
c90ac914bb Refactor TestEntrySearcher. 2014-05-15 23:59:26 +02:00
Florian Geyer
8bf4826003 Move search into separate class. 2014-05-15 23:50:40 +02:00
Felix Geyer
e361b0dd81 Fix typo canDeleteCurrentGoup() -> canDeleteCurrentGroup(). 2014-05-15 22:56:36 +02:00
Felix Geyer
ce7e01a1b1 const-ify several methods. 2014-05-15 22:53:59 +02:00
Felix Geyer
cda5e990ac Show in-edit-mode warning when database is locked. 2014-05-15 22:51:13 +02:00
Florian Geyer
50cbd80925 Remove obsolete method in EntryView. 2014-05-15 18:55:17 +02:00
Felix Geyer
75d3e6261b Coding style fix. 2014-05-15 18:41:11 +02:00
Felix Geyer
bf39d0b1be Enable entry title matching but always ask before performing auto-type. 2014-05-15 18:34:12 +02:00
Felix Geyer
147cd4ed7b Add option to use the entry title for auto-type window matching. 2014-05-15 18:30:57 +02:00
Florian Geyer
9363d23e09 Remove dependency to Group- and EntryView from MainWindow. 2014-05-15 18:05:58 +02:00
Sebastien Fricker
7a8d4577f1 Automatic reload of a database when it get modified
When the database if modified by an other instance of KeePassX, KeePassX
detect it and reload automatically the database.
2014-05-03 16:59:41 +02:00
Florian Geyer
b718e9d8f2 Make sure copy actions are disabled when database is locked.
Closes #189
2014-05-03 08:28:56 +02:00
Jascha Dachtera
65eb71e645 Merge branch 'master' of https://github.com/keepassx/keepassx 2014-05-02 21:29:12 +02:00
Tim Gion
d6c30b0886 Fixed location of config file on Mac (and probably Windows). 2014-04-30 22:26:39 -04:00
Hutson Betts
7c7f0b93ae Add README.md file.
Add a dedicated README.md to the KeePassX repository to explain the
purpose of KeePassX, and to inform it's audience as to how they can
contribute.
2014-04-28 22:09:24 -05:00
Felix Geyer
e263c475c9 Increase default number of transform rounds to 100000.
Even low-end smartphone should be able to handle that.
2014-04-26 18:34:33 +02:00
Felix Geyer
c917096d3c Show the inherited value in EditGroupWidget. 2014-04-26 18:34:26 +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
Jascha Dachtera
47e885ddbf Merge branch 'master' of https://github.com/jdachtera/keepassx 2014-04-18 13:59:58 +02:00
Jascha Dachtera
65626f0da2 Merge branch 'master' of https://github.com/keepassx/keepassx
Use SymmetricCipherGcrypt directly in Protocol.cpp to make it work with the latest master
revision.
2014-04-18 13:59:24 +02:00
Jascha Dachtera
8584901f9e Merge branch 'master' of https://github.com/keithbennett/keepassx
Use SymmetricCipherGcrypt directly in Protocol.cpp to make it work with the latest master
revision.
2014-04-18 13:51:45 +02:00
Florian Geyer
ad26d962dc Add option in settings for using group icons for newly created entries.
Closes #174
2014-04-14 23:38:09 +02:00
Florian Geyer
967a9f0195 Add check if parent group has custom icon.
Refs #174
2014-04-14 23:20:24 +02:00
Charles Brunet
6c663a19bf Use folder icon when not defaut icon 2014-04-14 22:59:38 +02:00
Felix Geyer
b194c29166 Show a dialog when no window matches for auto-type. 2014-04-14 22:57:25 +02:00
Felix Geyer
0b9167c78b Add an option to always ask before performing auto-type.
Closes #120
2014-04-14 22:57:18 +02:00
Felix Geyer
63ae460a80 Fix the alpha 6 release date. 2014-04-12 15:45:09 +02:00
Felix Geyer
43a1d54bba Prepare 2.0 alpha 6 release. 2014-04-12 15:29:20 +02:00
Felix Geyer
2963752585 Disallow global auto-typing when the database is locked. 2014-04-12 15:29:03 +02:00
Keith Bennett
e2d446e446 Added back missing copyright notices. 2014-03-24 19:29:11 +00:00
Florian Geyer
1decdc6c11 Only save geometry when close event is accepted. 2014-03-24 20:03:40 +01:00
Florian Geyer
6659745e2b Rename settings key for window geometry. 2014-03-24 20:03:40 +01:00
Florian Geyer
1e2d1a1b17 Refactor saving of window geometry.
Closes #154
2014-03-24 20:03:40 +01:00
Florian Geyer
f300ca5b7b Remember window size.
Refs #154
2014-03-24 20:03:40 +01:00
Keith Bennett
54306473f3 Added README.md 2014-03-23 19:25:15 +00:00
Keith Bennett
c7158234dc Removed assert test for indexFromEntry.
When no row is selected, row equals -1. Some operations call
indexFromEntry when there is no row selected and these should
be allowed to succeed.
2014-03-23 19:09:49 +00:00
Keith Bennett
b28cb19ae3 Added keybinding for copy URL 2014-03-23 19:09:48 +00:00
Keith Bennett
86a01b6984 Ensure that external DB changes are always detected.
QFileSystemWatcher seems to reset itself occasionally. This patch
works around the issue by re-applying the QFileSystemWatcher
whenever a change is handled.
2014-03-23 19:09:48 +00:00
Keith Bennett
b432103b82 Return password quality to keepasshttp client. 2014-03-23 19:09:45 +00:00
Keith Bennett
75564c8fb5 Fixed password generation for keepasshttp 2014-03-23 19:09:43 +00:00
Keith Bennett
b87097a7ab Added global autotype support for OSX. 2014-03-23 17:25:40 +00:00
Keith Bennett
6ef5f34070 Split the new association message across multiple lines. 2014-03-23 17:25:40 +00:00
Keith Bennett
b953ea9042 Tidied up layout of the search field. 2014-03-23 17:25:40 +00:00
Keith Bennett
61ada66e3a Updated keepasshttp version number. 2014-03-23 17:25:39 +00:00
Keith Bennett
a9a724714f Stop qsearchfield from swallowing keypresses. 2014-03-23 17:25:39 +00:00
Keith Bennett
612ef0ef9b Fixed a typo. 2014-03-23 17:25:39 +00:00
Keith Bennett
a627870bbb Added a new DatabaseWidget modal state.
Commit d8857bf4 attempted to fix currentMode() while the DB had not
yet been opened. However, the fix meant that the title bar always
displayed the state as being "locked". This change works around the
issue by introducing a new modal state for when the DB is not yet
open.
2014-03-23 17:25:39 +00:00
Keith Bennett
fae4f69b8c Quieten compilation warnings. 2014-03-23 17:25:39 +00:00
Keith Bennett
b27ba03d42 Replaced qhttpserver with libmicrohttp.
The qhttpserver seems to be riddled with memory leaks and was
continuously crashing. I don't know Qt well enough to fix it so
I have replaced it with libmicrohttp. This is not nearly as
elegant but it is much more stable.
2014-03-23 17:25:39 +00:00
Keith Bennett
2cd6787141 Fixed compilation using qjson subtree. 2014-03-22 17:06:08 +00:00
Francois Ferrand
21204971ff re-apply: Cleaner qobject2qvariant(). 2014-03-22 17:06:08 +00:00
Keith Bennett
c570a13a1f Merge commit '5c71260c12798afe3c331d08477bb241acdb78ca' as 'src/http/qjson' 2014-03-22 17:05:45 +00:00
Keith Bennett
5c71260c12 Squashed 'src/http/qjson/' content from commit c6d92ba
git-subtree-dir: src/http/qjson
git-subtree-split: c6d92bada76be2c46dcf6f585f03b2fba47f9da3
2014-03-22 17:05:45 +00:00
Keith Bennett
e105970945 Removed qjson so we can replace it with a subtree. 2014-03-22 17:04:59 +00:00
Keith Bennett
0c33019f93 Fixed building of qocoa subtree. 2014-03-22 17:04:59 +00:00
Keith Bennett
16598a8386 Merge commit 'f52f6e2d44bc3a08a5b2fa281459af8baac68f0d' as 'src/gui/qocoa' 2014-03-22 17:02:43 +00:00
Keith Bennett
f52f6e2d44 Squashed 'src/gui/qocoa/' content from commit ffe23cb
git-subtree-dir: src/gui/qocoa
git-subtree-split: ffe23cbb2f221bc9eacd1de2134c2947fed71c12
2014-03-22 17:02:43 +00:00
Keith Bennett
304cebefe4 Removed qocoa so we can replace it with a subtree. 2014-03-22 17:01:53 +00:00
Keith Bennett
d7a8a43024 Temporary fixup for the password generator. 2014-03-22 17:01:52 +00:00
Keith Bennett
73f91db939 Merged keepassx-http. 2014-03-22 14:49:32 +00:00
Felix Geyer
b9370c6e79 More careful null checking and member initalization. 2014-03-22 12:10:49 +01:00
Florian Geyer
54bb7462f6 Add find action to entries menu.
Closes #122
2014-03-08 11:42:26 +01:00
Florian Geyer
4a08101a60 Remove obsolete ArgumentParser files. 2014-03-08 10:45:40 +01:00
Felix Geyer
809be5f89e Use the correct modifiers after remapping.
Sometimes the keysym is not mapped to the first column (no modifiers)
but to a diffferent column that needs modifiers.
Therefore we need re-read the table and search the whole row for the
correct keysym.
2014-01-19 23:32:00 +01:00
Felix Geyer
bf9a755bea Check all modifiers before declaring the remap keycode invalid.
Sometimes XChangeKeyboardMapping() maps the keysym to a modifier.
2014-01-19 21:40:25 +01:00
Felix Geyer
34b82da9aa Initialize cur_focus before it's used. 2014-01-19 20:09:19 +01:00
Felix Geyer
e0c59395da Merge branch 'AlbertWeichselbraun-bug-116-autotype-single-keycode' 2014-01-19 20:06:12 +01:00
Felix Geyer
b07de47e35 Add transform key benchmark to TestKeys. 2014-01-19 15:26:32 +01:00
Felix Geyer
586de64293 Restore compatibility with old Qt versions. 2014-01-19 10:46:53 +01:00
Felix Geyer
9321943e64 Install mime info package on Linux. 2014-01-18 23:43:44 +01:00
Felix Geyer
c00550078c Add KeePass 2 document icons. 2014-01-18 23:35:34 +01:00
Felix Geyer
2190260a68 Small optimization in SymmetricCipherGcrypt::processInPlace(). 2014-01-18 20:47:45 +01:00
Felix Geyer
678c4a8ece Set the application name and version in QApplication. 2014-01-18 15:31:24 +01:00
Felix Geyer
c2781274a0 Fix include guards of config-keepassx.h. 2014-01-18 15:30:58 +01:00
Felix Geyer
bc14898b13 Replace ArgumentParser with a backport of QCommandLineParser from Qt 5.2. 2014-01-18 15:23:55 +01:00
Felix Geyer
b6497d9245 Coding style fixes. 2014-01-14 21:00:27 +01:00
Felix Geyer
79d827ffa4 Add 22x22 icons for actions that are in the toolbar. 2014-01-14 19:55:38 +01:00
Felix Geyer
811eb2714f Add copy username and password actions to the clipboard.
Also add corresponding icons that I've put together from
various Oxygen icons.
2014-01-14 19:53:42 +01:00
Felix Geyer
a914b837a1 Drop new database action from the toolbar.
It's not a common operation.
2014-01-14 19:40:20 +01:00
Felix Geyer
04c9332a99 Drop superfluous PasswordGeneratorWidget::togglePassword slot. 2014-01-13 21:40:23 +01:00
Felix Geyer
97f374a189 Use monospace font in the password generator combo box. 2014-01-13 21:39:55 +01:00
Felix Geyer
6f3648d63e Uncheck the correct widget in ChangeMasterKeyWidget.
We want to enable the password group but mask the password in the line edit.
2014-01-13 00:24:29 +01:00
Felix Geyer
350cf4b00a Move password generator widget to the right row. 2014-01-13 00:24:29 +01:00
Felix Geyer
3af2307468 Reworked the PasswordGeneratorWidget.
It's loosely based on OS X PasswordAssistant. Generation happens as soon as a
change is made, and on open of the widget. A combobox has been added to allow
one to choose from some randomally-generated alternatives, and the UI is
generally been made a bit more compact.

Written by Michael Curtis <michael@moltenmercury.org> and revised by me.

Closes #119

https://github.com/keepassx/keepassx/pull/38
2014-01-13 00:24:25 +01:00
Felix Geyer
29c997e1bc Add an option to show passwords by default.
Closes #93
2014-01-12 17:23:47 +01:00
Felix Geyer
223c5a1651 Use an icon for the button that shows/masks passwords.
Closes #38

Additionally make use of the new PasswordEdit class where possible.
2014-01-12 17:13:10 +01:00
Felix Geyer
8b437821a2 Add ability to load icons with on/off state. 2014-01-12 17:13:10 +01:00
Felix Geyer
4ded95a060 Add PasswordEdit class.
It displays passwords in monospace which closes #51
2014-01-12 17:13:03 +01:00
Felix Geyer
0b6b149351 Use the libgcrypt SALSA20 cipher if available. 2014-01-12 13:42:56 +01:00
Felix Geyer
eee909e948 Parse the libgcrypt version in the cmake module. 2014-01-12 13:42:19 +01:00
Felix Geyer
8c7e655274 Add compatibility with libgcrypt 1.6.
Closes #129
2014-01-12 12:39:39 +01:00
Felix Geyer
8e86437e89 Disable settings spinboxes by default.
They get enabled when the corresponding checkboxes are checked.
2014-01-07 21:58:49 +01:00
Felix Geyer
a8edad1e27 Add option to lock databases after user inactivity.
Closes #62
2014-01-07 21:57:38 +01:00
Felix Geyer
41162ea2e8 Only try to click the focused button when pressing enter.
It makes no sense when pressing the escape button.
2014-01-02 10:51:51 +01:00
Felix Geyer
0cbf59209b Prepare the next alpha release. 2013-12-20 12:41:45 +01:00
Albert Weichselbraun
0f91e0d141 Better naming & actually save m_currentRemapKeysym. 2013-12-16 09:41:43 +01:00
Albert Weichselbraun
6a50a76466 Track the last remapped keysym in m_currentRemapKeycode to enforce
a new computation of m_remapKeycode when the keyboard layout
changes.
(This fixes a potential problem with AddKeysym overwriting
 used keysyms after applying a new keyboard layout).
2013-12-16 09:28:16 +01:00
Felix Geyer
1fce1ac905 Remove wrong check in TestGui.
When the window is not wide enough some actions are hidden.
2013-12-08 16:11:49 +01:00
Felix Geyer
b9a955c048 Add some more actions to the toolbar. 2013-12-05 22:14:01 +01:00
Felix Geyer
5a577e5e4c Document license of document-encrypt.png. 2013-12-05 22:12:13 +01:00
Felix Geyer
f648172625 Rename EntryAttributes::URLNameKey to URLKey. 2013-12-02 00:10:47 +01:00
Florian Geyer
4b41dd30e6 Merge branch 'attributes'. 2013-12-02 00:01:20 +01:00
Felix Geyer
2a416d1f1d Make sure the remapping keycode is reset to NoSymbol.
Previously the dtor of AutoTypePlatformX11 wasn't called.
2013-12-01 23:32:53 +01:00
Felix Geyer
23f338b0c3 Add some error handling in case we can't remap a key. 2013-12-01 19:14:07 +01:00
Felix Geyer
cdcea91b50 Use nanosleep() instead of the deprecated usleep(). 2013-12-01 19:09:20 +01:00
Felix Geyer
4549c97e51 Merge branch 'bug-116-autotype-single-keycode' of github.com:AlbertWeichselbraun/keepassx
https://github.com/keepassx/keepassx/pull/32

Closes #116
2013-12-01 18:40:31 +01:00
Florian Geyer
fc3cc12038 Optimize deletion of copy to clipboard actions. 2013-12-01 15:58:19 +01:00
Albert Weichselbraun
62ea117f45 Significantly reduce the number of re-mappings required by
a) dynamically fetching the modifier masks for Mod1 to Mod5 (Alt, AltGr, Meta,
    etc.)

 b) integrating commit bfec222 from Felix Geyer <debfx@fobos.de> which creates a
    unicode -> x11 keysym mapping table by parsing keysymdefs.h.

    This avoids adding new keysyms because keyboard layouts seem to prefer the
    lower keysyms over unicode | 0x01000000 mapping.
    An example of this is the euro sign with a German keyboard layout.
2013-12-01 15:34:27 +01:00
Felix Geyer
3d8ff5b585 Hide auto-type settings when the plugin is not available.
Closes #121
2013-12-01 12:20:05 +01:00
Florian Geyer
a3b95c1c38 Remove unnecessary removeAction call in MainWindow. 2013-12-01 10:36:50 +01:00
Florian Geyer
2308099260 Small refactoring in DatabaseWidget. 2013-12-01 09:59:43 +01:00
Florian Geyer
4a3da3abe7 Hard code copy action for default attributes. 2013-12-01 09:43:41 +01:00
Florian Geyer
3e4811791a Delete actions after removal from menu. 2013-11-30 16:19:48 +01:00
Florian Geyer
34f12ac39c Remove duplicate menu entries to copy username and password. 2013-11-30 16:05:10 +01:00
Felix Geyer
af98c2636c Fix compatibility with Qt < 4.7. 2013-11-30 13:47:39 +01:00
Felix Geyer
f21b331844 Drop OS specific instructions from INSTALL file.
Moved to https://www.keepassx.org/dev/projects/keepassx/wiki/Install_instructions
2013-11-30 12:50:24 +01:00
Felix Geyer
ea628af580 Merge branch 'staging' 2013-11-30 12:15:16 +01:00
Veeti Paananen
9cae8a412a Save password generator settings
Remember the used values for the password generator and restore them the
next time the user opens the generation dialog.
2013-11-30 11:27:39 +01:00
Felix Geyer
47b7befd2f Set default build type to RelWithDebInfo. 2013-11-24 22:09:52 +01:00
Felix Geyer
2fcc369c41 Enable the foritfy source build flag only for optimized builds.
https://github.com/keepassx/keepassx/pull/27
2013-11-24 21:40:19 +01:00
Ben Boeckel
66b3d22041 Use QString::toLatin1() rather than ::toAscii()
The toAscii (and fromAscii) are removed from Qt5 in favor of Latin1.
2013-11-24 21:19:20 +01:00
Felix Geyer
03e4b2d13c Merge branch 'master' of github.com:nohn/keepassx into master
https://github.com/keepassx/keepassx/pull/29
2013-11-24 21:11:15 +01:00
Albert Weichselbraun
c83579ecdb Merge commit '755241df5c' into bug-116-autotype-single-keycode 2013-11-23 09:37:09 +01:00
Albert Weichselbraun
a26119ea20 Use a dedicated keycode for keys that require another modifier than shift. 2013-11-23 09:07:16 +01: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
f2dfef8c41 Add flags to Entry::clone() for customized cloning. 2013-11-22 13:32:13 +01:00
Felix Geyer
cb804eb143 Document clone() methods. 2013-11-22 10:30:50 +01:00
Felix Geyer
74e912ccd3 Remember the dir when opening/saving attachments. 2013-11-22 10:30:50 +01:00
Felix Geyer
1f47033835 Make sure icon() and iconPixmap() never crash. 2013-11-22 10:30:50 +01:00
Albert Weichselbraun
3fcfc348ed Cleanup: use break rather than nested if/else constructs. 2013-11-18 06:17:56 +01:00
Albert Weichselbraun
6b33298a6e Merge branch 'bug-116-autotype-new' into bug-116-autotype 2013-11-17 21:10:29 +01:00
Albert Weichselbraun
68e1fc0cd0 Use XKeysymToKeycode together with XkbTranslateKeyCode for translating KeySyms to the corresponding keycode and modifier sequences. 2013-11-17 21:08:55 +01:00
Sebastian Nohn
31796d33fb ignore build dir 2013-11-17 13:38:42 +01:00
Felix Geyer
755241df5c Focus entryView when pressing enter in the search field. 2013-11-17 10:55:58 +01:00
Felix Geyer
9080864167 Fix tab focus order in ui files. 2013-11-17 10:15:50 +01:00
Albert Weichselbraun
d25e883983 Fixed bug #116 - certain characters not working with de keyboard layout 2013-11-17 07:48:25 +01:00
Felix Geyer
091e87aeb3 EditEntryWidget: move the URL field beneath the password. 2013-11-16 22:30:39 +01:00
Charles Brunet
4a870f61f1 Added option to minimize window when copying data to clipboard
https://github.com/keepassx/keepassx/pull/24
2013-10-29 20:54:56 +01:00
Felix Geyer
5daf0853c9 Coding style fixes. 2013-10-13 18:08:50 +02:00
Felix Geyer
ef3d7b7772 Merge branch 'modulo-bias'
https://github.com/keepassx/keepassx/pull/21
2013-10-12 19:12:51 +02:00
Felix Geyer
7dde8a771f Use QUINT32_MAX in tests instead of hardcoding the number. 2013-10-12 19:11:57 +02:00
Felix Geyer
3dd4681e69 Fix EntryView not emitting activated() signals on return key press.
AutoTypeSelectDialog relies on this behavior.
2013-10-10 22:47:32 +02:00
Felix Geyer
98d888063b Add tests for Random::randomUInt() and randomUIntRange(). 2013-10-09 23:11:18 +02:00
Felix Geyer
9c788a6e84 Support custom backends in Random.
Useful for tests.
2013-10-09 22:06:32 +02:00
Felix Geyer
e087baeb48 Avoid modulo bias in Random::randomUInt(). 2013-10-09 21:59:24 +02:00
Felix Geyer
b64276c4e8 Make use of the TestGui::clickIndex() helper function. 2013-10-08 22:40:47 +02:00
Felix Geyer
f7dd63a126 Add gui tests for deleting entries from the recycle bin. 2013-10-08 22:36:27 +02:00
Felix Geyer
a68a86f19b Test that the delete action moves entries to the recycle bin. 2013-10-08 22:14:02 +02:00
Felix Geyer
984b23de70 Add tests for the multi-entry delete feature. 2013-10-08 22:11:40 +02:00
Felix Geyer
d5b70b1bef Add a QMessageBox wrapper class to help gui tests.
QMessageBox displays modal dialogs which blocks the gui tests.
To work around this we add a MessageBox wrapper class where
the tests can set the answer for the next dialog.
The answer is then returned without actually showing the dialog.
2013-10-08 22:09:20 +02:00
Felix Geyer
551637f0c2 Allow removing multiple entries. 2013-10-08 21:36:01 +02:00
Felix Geyer
8778df5789 Drop entries from search results when moved to the recycle bin. 2013-10-08 21:13:20 +02:00
Felix Geyer
67338aac7b Avoid using QApplication in core. 2013-10-08 17:37:12 +02:00
Felix Geyer
626351c5da Add several private header files to CMakeLists.txt. 2013-10-03 16:26:01 +02: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
Jens Dieskau
035271d469 Only edit entries on doubleclick (not single) or with enter key.
https://github.com/keepassx/keepassx/pull/19
2013-09-29 17:35:34 +02:00
Felix Geyer
5c84aa308d Improve error messages for reading and wriiting databases.
Closes #7
2013-06-30 14:43:02 +02:00
Felix Geyer
e1c82a4453 Print a cmake feature log.
This let's users know when the dependnecies for auto-type are missing.
Available only in cmake >= 2.8.3.

Closes #71
2013-06-30 14:07:25 +02:00
Francois Ferrand
41be9e8178 Implement option to search all open databases. 2013-05-02 13:58:01 +02:00
Francois Ferrand
be24872bba Notifications pseudo-code. 2013-05-02 13:58:01 +02:00
Francois Ferrand
db56546871 Filter GetAllLogins entries, to return only entries with an URL. 2013-05-02 13:58:01 +02:00
Francois Ferrand
53b30e267c Fix entry partial matching rules. 2013-05-02 13:58:01 +02:00
Francois Ferrand
8f33c5235b Fix StringField copy. 2013-05-02 13:58:00 +02:00
Francois Ferrand
d8857bf42d Fix currentMode() while DB is not yet open. 2013-05-02 13:58:00 +02:00
Francois Ferrand
a85ac07576 Qocoa compilation fix for MacOS. 2013-05-02 13:58:00 +02:00
Felix Geyer
db6ac26794 Initialize variables to silence compiler warnings. 2013-05-01 12:03:03 +02:00
Felix Geyer
a505d85792 Fix compatbility with clang 3.2.
Pass --param=ssp-buffer-size=4 to clang instead of
-mllvm -stack-protector-buffer-size=4 which clang 3.2 doesn't seem
to support anymore.
2013-04-30 18:38:44 +02:00
Francois Ferrand
d2ab008aa0 Auto-reload settings. 2013-04-30 17:31:08 +02:00
Felix Geyer
6df30df992 Really fix parsing when the db contains two Root (Group) elements. 2013-04-30 17:04:54 +02:00
Felix Geyer
0ec29b2354 Raise error if we don't find exactly one root group. 2013-04-29 22:31:50 +02:00
Felix Geyer
f1bebe904a Add tests for broken databases.
Make sure we detect the error and don't crash.
2013-04-29 22:31:50 +02:00
Felix Geyer
e16720d06d When parsing make sure that databases contain at least the root group. 2013-04-29 22:31:50 +02:00
Felix Geyer
3be7fa6b3b Raise error when required xml elements are missing. 2013-04-29 22:31:50 +02:00
Felix Geyer
e99e3ae6ca Initalize SymmetricCipherGcrypt::m_blockSize. 2013-04-29 22:31:50 +02:00
Felix Geyer
d182586557 Make sure KeePass1Reader::key() isn't used before the variables are set. 2013-04-29 22:31:50 +02:00
Felix Geyer
1f5564760f Make sure groupId and groupLevel are set in KeePass1Reader::readGroup(). 2013-04-29 22:31:50 +02:00
Felix Geyer
2be045eb8f Initalize m_database in EditGroupWidget ctor. 2013-04-29 22:31:50 +02:00
Felix Geyer
7a89510916 Make more key/value-type functions safe against reordered xml elements. 2013-04-29 22:31:50 +02:00
Felix Geyer
5588792344 Make KeePass2XmlReader::parseGroup() safe against reordered xml elements. 2013-04-29 22:31:50 +02:00
Felix Geyer
3acb33e05a Make KeePass2XmlReader::parseEntry() safe against reordered xml elements. 2013-04-29 22:31:50 +02:00
Felix Geyer
61ee763515 Add Entry::copyDataFrom(). 2013-04-29 22:31:49 +02:00
Felix Geyer
3658a65380 Use Q_NULLPTR instead of 0. 2013-04-29 22:31:49 +02:00
Felix Geyer
fd18bc0330 Use standard GNU install dirs and make them overridable. 2013-04-29 22:17:31 +02:00
Francois Ferrand
f4ff8b17f7 Use search field for search.
Search options are presented in a context menu on the search field, as well as
links in search header.
2013-04-29 18:05:08 +02:00
Francois Ferrand
d5c8787451 Detect background changes to database file.
This gives the option to reload the database.

TODO:
 - Settings for reloadBehavior (ask, reloadUnchanged, ignore)
 - Improve notification, by using a header instead of dialog: nicer, less
intrusive, gives more options to user, and works better when multiple databases
are open.
 - Keep tab order on reload.
2013-04-29 09:11:26 +02:00
Florian Geyer
b499a6df77 Fix coding style. 2013-04-27 11:40:10 +02:00
Florian Geyer
cabec57631 Make argument keys immutable. 2013-04-27 11:40:10 +02:00
Florian Geyer
63f7a0685f Small ArgumentParser refactoring. 2013-04-27 11:40:10 +02:00
Florian Geyer
94e6d3f89b Fix coding style. 2013-04-27 11:23:51 +02:00
Florian Geyer
94ac9c9ea1 Rename config key for last opened databases. 2013-04-27 11:22:38 +02:00
Francois Ferrand
850c7c7ecf Option to automatically reopen databases which were last opened. 2013-04-24 13:30:30 +02:00
Francois Ferrand
7ff475977e Favicon download button. 2013-04-22 11:25:01 +02:00
Francois Ferrand
478d30b529 Fix typo. 2013-04-19 17:20:26 +02:00
Francois Ferrand
d6597400de Support IPv6 as well as IPv4. 2013-04-19 11:30:11 +02:00
Francois Ferrand
af394ff65c Settings UI integration. 2013-04-19 11:29:46 +02:00
Francois Ferrand
f6fa6d6563 KeyPassX/Http settings. 2013-04-19 11:29:46 +02:00
Florian Geyer
bbf183bef7 Add settings option to control if previous databases are opened on startup.
Closes #36
2013-04-18 22:42:22 +02:00
Florian Geyer
6f92188323 Open last used databases on startup.
Refs #36
2013-04-18 22:37:04 +02:00
Florian Geyer
f0985ff9d9 Remember opened databases on quit.
Refs #36
2013-04-18 21:52:08 +02:00
Francois Ferrand
fd7a49f4a6 Sort entries. 2013-04-18 17:57:00 +02:00
Francois Ferrand
47d7598e99 Fix confirmation allowing access to all entries. 2013-04-18 17:57:00 +02:00
Francois Ferrand
e2ba754f91 Default icon. 2013-04-18 17:57:00 +02:00
Francois Ferrand
c98aad698a Cleanup reference/pointer declarations. 2013-04-18 17:57:00 +02:00
Francois Ferrand
75f0d132e5 Add removeSharedEncryptionKeys() and removeStoredPermissions() 2013-04-18 17:57:00 +02:00
Francois Ferrand
f82725139a Support "KPH: " extra fields. 2013-04-18 17:57:00 +02:00
Florian Geyer
ba3baf3595 Open EditEntryWidget when empty url column is activated. 2013-04-14 19:14:06 +02:00
Francois Ferrand
b9e58c77af Use splitter in 'Additional attributes'. 2013-04-12 15:18:10 +02:00
Francois Ferrand
ad67eac257 Confirmation dialog to list entries. 2013-04-12 15:17:56 +02:00
Francois Ferrand
eef51f26f0 Cleaner qobject2qvariant(). 2013-04-12 15:17:19 +02:00
Francois Ferrand
ea992bc3e6 Support KeyPassHttp protocol.
Allows using passIfox (firefox) and Chromeipass (chrome).
2013-04-12 15:16:56 +02:00
Francois Ferrand
20f3f23576 Customizable toolbar icon size. 2013-04-11 12:11:33 +02:00
Florian Geyer
34c6b416b0 Add enum for EntryModel column. 2013-04-07 22:17:32 +02:00
Florian Geyer
bf906a7867 Open url when an entry is activated via its url column.
Closes #55
2013-04-07 22:17:32 +02:00
Felix Geyer
5786e2620a Add unit test for Metadata::copyCustomIcons(). 2013-04-07 19:38:18 +02:00
Felix Geyer
fe42861bed Add safety check so we don't insert empty icons. 2013-04-07 19:37:44 +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
8ed0379136 Enable the frame for QLineEdits in EditWidgetProperties. 2013-04-07 12:49:05 +02:00
Felix Geyer
4e2f5b1a5b Return true from dropMimeData() when IgnoreAction is passed. 2013-04-07 12:43:20 +02:00
Felix Geyer
317f603262 Support copying entries and groups using drag'n'drop.
Closes #74
2013-04-07 12:43:19 +02:00
Felix Geyer
701013baab Turn two for loops into Q_FOREACH. 2013-04-07 12:43:13 +02:00
Felix Geyer
4b3bee6400 Add extra checks so we never return empty QMimeData from mimeData(). 2013-04-07 11:50:42 +02:00
Felix Geyer
91868969ca Make sure we don't add entries/groups multiple times to the drag'n'drop data. 2013-04-07 11:47:50 +02:00
Tobias Tangemann
ef46b3e8ad Disable menu icons for osx.
https://gitorious.org/keepassx/keepassx/merge_requests/23
2013-04-06 18:02:43 +02:00
Felix Geyer
9e87230102 Use -fvisibility-inlines-hidden only for C++ files.
gcc emits a warning that the flag cannot be used for C.
2013-04-06 17:45:05 +02:00
Florian Geyer
2558e6db79 First draft of an argument parser.
Possibility to set custom config path.
2013-04-06 11:00:45 +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
be288d26ca Change Entry::clone() to set a random uuid. 2013-04-04 21:25:11 +02:00
Felix Geyer
b055780984 Add and install a desktop file. 2013-04-04 21:18:14 +02:00
Felix Geyer
e805a6ff82 Coding style fix. 2013-03-30 17:27:28 +01:00
Felix Geyer
60335452a4 Add compiler flags to hide all symbols by default. 2013-03-30 00:14:32 +01:00
Felix Geyer
3a822c24e2 Add some more header files to CMakeLists.txt.
This makes them show up in the Qt Creator project.
2013-03-29 23:36:07 +01:00
Felix Geyer
98372f9df8 Drop unnecessary dllimport/dllexport statements in QtIOCompressor. 2013-03-29 16:31:26 +01:00
Felix Geyer
5550d7af0d Fix autotype test (build) failures on Mac OS and Windows.
We need to tell Windows what symbols the main program exports
and the autotype plugin imports.

On both systems the linker needs the path of the main program that
loads the plugin.
2013-03-29 16:27:02 +01:00
Felix Geyer
98e59215b8 Bump version and update changelog. 2013-03-29 09:46:03 +01:00
Felix Geyer
1c7e8f6921 Small optimizations. 2013-03-26 23:53:34 +01:00
Florian Geyer
57b0c17733 Improve entry test. 2013-03-24 21:57:34 +01:00
Florian Geyer
6ee781a608 Add regression test for issue #56. 2013-03-24 21:57:34 +01:00
Florian Geyer
97b488b2ba Ignore an unused variable. 2013-03-24 21:57:34 +01:00
Florian Geyer
13393ed2d3 Fix removal of history entries in release builds.
Closes #56
2013-03-24 21:57:34 +01:00
Felix Geyer
26d3acb9d8 Fix typo in filename. 2013-03-24 14:16:34 +01:00
Felix Geyer
82eca1a5bf Coding style fixes. 2013-03-24 14:04:08 +01:00
Felix Geyer
095bf158b6 Close AutoTypeSelectDialog when there are no entries left.
This happens when the entries were deleted or the database
has been closed.
2013-03-24 14:00:23 +01:00
Felix Geyer
21a80101ba Add TestEntryModel::testDatabaseDelete().
It tests that EntryModel in EntryList mode correctly
removes entries from the model when that database of
these entries is deleted.
2013-03-24 14:00:23 +01:00
Felix Geyer
c7593a3047 Stop suppressing signals in Group dtor.
That way we emit entry/group removed signals.

Move cleanupParent() call to the bottom so we
maintain the group tree structure for objects that
connect to those signals.
2013-03-24 14:00:23 +01:00
Felix Geyer
72d17c045f Handle deleting groups more consistently.
Delete the entries and child groups in Group dtor
no what if the group has a database or not.
2013-03-24 14:00:23 +01:00
Felix Geyer
7be87051ab Add asserts in GroupModel::groupAboutToRemove(). 2013-03-24 14:00:23 +01:00
Felix Geyer
db08058c4e Ignore an unused variable. 2013-03-24 13:58:13 +01:00
Felix Geyer
83a2f4c610 Add LGPL-3 license text for the Oxygen icons. 2013-03-24 11:54:20 +01:00
Felix Geyer
b1b602678e Improve the application icon.
The one one has a shadow that looks better especially on a
dark background.

https://gitorious.org/keepassx/keepassx/merge_requests/18
2013-03-24 11:40:18 +01:00
Felix Geyer
fcb1ab2688 Add scalable versions of the Oxygen icons.
This is required by its license. They aren't actually used by KeePassX.

Closes #70
2013-03-23 22:21:49 +01:00
Felix Geyer
3847944c44 Add some comments to copyright file. 2013-03-23 22:06:30 +01:00
Felix Geyer
cf2327f5aa Remove wrong copyright paragraph. 2013-03-23 22:03:26 +01:00
Felix Geyer
248fd12abd Copyright format syntax fixes. 2013-03-23 22:01:37 +01:00
Felix Geyer
eb6612b787 Fix database icons license issues.
Pull C62_Tux.png, C63_Feather.png, C64_Apple.png, C65_Apple.png
and C65_W.png from the latest KeePass 2 version.

Replace C68_BlackBerry.png with another icon from openclipart.org.
It's unclear where this KeePass 2 icon is from.

Closes #69
2013-03-23 21:50:23 +01:00
Felix Geyer
c6edeaddb7 Add icon for the auto-type action. 2013-03-22 19:51:39 +01:00
Felix Geyer
5dadedbf70 Implement the GUI for the password generator.
Closes #52
2013-03-12 22:42:06 +01:00
Felix Geyer
2ed3201b14 Add PasswordGenerator backend.
Refs #52
2013-03-12 21:55:11 +01:00
Florian Geyer
006eadfb9e Fix include statements. 2013-03-12 19:27:17 +01:00
Florian Geyer
870417d9c4 Add dummy PasswordGeneratorWidget.
Refs #52
2013-03-10 22:33:03 +01:00
Florian Geyer
f9dc314e72 Revert "Show correct group name when opening an entry from seach results."
Did not want to push this.

This reverts commit 4daac65cc5.
2013-03-10 20:03:22 +01:00
Florian Geyer
36ad91b447 Entry edit: merge notes and main widget.
Closes #59
2013-03-10 19:47:08 +01:00
Florian Geyer
4daac65cc5 Show correct group name when opening an entry from seach results. 2012-12-27 10:50:48 +01:00
Felix Geyer
23c787c4dd Use effectiveWinId() instead of winId() in widgetsToX11Windows().
winId() creates native handles as a side effect.
This sometimes triggers a bug that causes DatabaseTabWidget to
not be updated anymore.
2012-11-20 23:52:46 +01:00
Felix Geyer
8b0409b228 Handle KeyRelease events of global shortcuts. 2012-11-20 23:52:46 +01:00
Felix Geyer
54641a2304 Initialize global auto-type key variables. 2012-11-20 23:52:46 +01:00
Florian Geyer
50148e9640 Check if a database is present before trying to create the CopyAttributesMenu.
Closes #50
2012-11-10 18:46:01 +01:00
Florian Geyer
e85dbda62a Update timeinfo when cloning an entry. 2012-11-06 23:34:16 +01:00
Florian Geyer
107a2e4a5c Fix sort order when closing the search and an entry was moved. 2012-11-03 18:57:31 +01:00
Felix Geyer
41973d0e92 Revert "Handle DeferredDelete events in Tools::wait()."
Caused a crash when performing auto-type from AutoTypeSelectDialog.

This reverts commit 6b3fed1ce5.
2012-11-03 15:12:04 +01:00
Florian Geyer
363396037d Remove redundant resolvePlaceholders call. 2012-11-02 17:48:16 +01:00
Florian Geyer
e9b704d21f Make sure the presets menu has a parent. 2012-11-02 16:33:10 +01:00
Florian Geyer
bd90ba9326 Move initial auto-type timeout to plugins. 2012-11-02 15:49:25 +01:00
Felix Geyer
9144765d56 Use a fixed sleep call instead of QTest::qWaitForWindowShown().
The latter seems to be broken and always seeps until it hits
the timeout (2s).
2012-11-02 15:43:45 +01:00
Felix Geyer
6b3fed1ce5 Handle DeferredDelete events in Tools::wait(). 2012-11-02 15:43:45 +01:00
Florian Geyer
8347fd36ba More auto-type tests. 2012-11-02 15:09:54 +01:00
Florian Geyer
848abfc1a7 Handle entry/group title with %1 etc. correctly. 2012-11-02 10:31:06 +01:00
Florian Geyer
64394c0b15 Correct window title when database name contains %1. 2012-11-02 10:15:37 +01:00
Florian Geyer
8748c76de2 Refactor updateWindowTitle function. 2012-11-02 01:07:39 +01:00
Florian Geyer
a77c426b2d Adjust title when settings widget is active. 2012-11-02 00:41:34 +01:00
Florian Geyer
b0280e9d93 Small refactoring in EditWidget and EditEntryWidget. 2012-10-29 23:44:10 +01:00
Florian Geyer
25f15073cc Refactor EditEntryWidget. 2012-10-29 23:11:42 +01:00
Florian Geyer
34a1eef252 Clear out includes. 2012-10-29 22:50:57 +01:00
Florian Geyer
771a041750 Refactor EditWidgetProperties. 2012-10-29 22:41:37 +01:00
Florian Geyer
ff0d53d945 Add properties tab in EditEntryWidget. 2012-10-29 19:59:09 +01:00
Florian Geyer
afe2c00841 Rename "EditGroupWidgetProperties" to "EditWidgetProperties". 2012-10-29 19:29:18 +01:00
Florian Geyer
9a7a88eea2 Rename "Advanced" to "Properties" in EditGroupWidget. 2012-10-29 19:05:51 +01:00
Felix Geyer
0b328a7ee0 kdbx-extract: delete database. 2012-10-29 15:01:58 +01:00
Felix Geyer
e92981b476 kdbx-extract: Don't abort if parsing the XML data fails. 2012-10-29 15:01:53 +01:00
Florian Geyer
ac56ac98f7 Extend auto-type test. 2012-10-28 18:18:24 +01:00
Felix Geyer
d7cbec1a02 Make sure that TestGui doesn't leave a temp file behind.
Swap the parent/child relationship between QTemporaryFile and Config
because the QTemporaryFile dtor is called before its chidren are destroyed.
2012-10-28 18:07:23 +01:00
Felix Geyer
58b6fb36f8 Add missing files for the last commit. 2012-10-28 15:42:19 +01:00
Felix Geyer
606dbc6eb4 Add infrastructure for auto-type tests. 2012-10-28 15:33:44 +01:00
Felix Geyer
f1719cfc5f Small optimizations. 2012-10-28 11:27:10 +01:00
Felix Geyer
4ff9681667 Fix another typo in the changelog. 2012-10-28 11:25:08 +01:00
Florian Geyer
f5eafe6522 Assert that the tmp group has no children when import is finished. 2012-10-28 10:25:43 +01:00
Andreas Piesk
00908856c3 don't abort import if there are entries with invalid groups,
log it and assign them to the root-group
2012-10-28 09:36:27 +01:00
Florian Geyer
22655e67ff Fix typo in changelog. 2012-10-27 11:18:06 +02:00
Felix Geyer
16094be4a3 Reduce required cmake version to 2.8.8 again.
It doesn't seem to be required in all cases.
2012-10-27 10:52:54 +02:00
Felix Geyer
8d9b209014 Bump version to 2.0 alpha 3. 2012-10-27 10:29:45 +02:00
Felix Geyer
f7d10707e7 Update changelog. 2012-10-27 10:29:35 +02:00
Felix Geyer
0399feff4d Include some more Qt plugins in the Mac OS package.
Require at least cmake 2.8.9 for packages which fixes a bug
when using multiple Qt plugins.
2012-10-27 10:24:01 +02:00
Felix Geyer
deabb54828 Fix font rendering on Mac OS HiDPI screens. 2012-10-27 10:07:44 +02:00
Felix Geyer
c1a45d6258 Fix typo. 2012-10-27 00:26:43 +02:00
Felix Geyer
5d46ecdbe6 Don't use deprecated Qt methods. 2012-10-27 00:06:12 +02:00
Florian Geyer
ddd5e8a209 Add menu entry to copy an entry attribute to clipboard. 2012-10-24 20:03:33 +02:00
Felix Geyer
18337927f5 Fix includes for ptrace(PT_DENY_ATTACH, ...). 2012-10-23 17:06:50 +02:00
Felix Geyer
21f1eb2d14 Drop WITH_PIE option as it's broken.
It builds the autotype plugin as a PIE which doesn't work.
2012-10-23 17:05:46 +02:00
Felix Geyer
34f595cc78 Build icon into the main executable on Windows. 2012-10-23 14:52:59 +02:00
Felix Geyer
7d57d08b32 Enable CPack on Windows. 2012-10-22 20:40:03 +02:00
Felix Geyer
8b8e55aa17 Store the filename instead of a QTemporaryFile in TestGui.
On Windows QTemporaryFile keeps the file handle open
which conflicts with QSaveFile.
2012-10-22 17:52:08 +02:00
Felix Geyer
9eac5f35d8 Close file in TestQSaveFile::autoFlush() so we can remove it. 2012-10-22 17:50:58 +02:00
Felix Geyer
47d3c7e05a Disable TestQSaveFile::transactionalWriteErrorRenaming() on Windows.
QSaveFile::setPermissions() is not implemented in the QIODevice
based version for Qt 4.
2012-10-22 17:49:42 +02:00
Felix Geyer
59847f4f30 Make QSaveFile work on Windows when the target file already exists. 2012-10-22 17:48:13 +02:00
Felix Geyer
caec47b1e5 Fix drag'n'drop of multiple entries.
Previously only the first entry was moved.
2012-10-21 22:31:21 +02:00
Florian Geyer
08415bd824 Improve headline in EditEntryWidget. 2012-10-21 21:50:05 +02:00
Florian Geyer
92bf7c94d0 Whitespace separated search terms are AND concatenated. 2012-10-21 21:09:27 +02:00
Felix Geyer
4d263a09db Include config-keepassx.h in Tools.cpp for the HAVE_* defines. 2012-10-21 19:24:17 +02:00
Felix Geyer
59da03d660 Make TriState strings translatable. 2012-10-21 15:11:09 +02:00
Felix Geyer
b17cb60b5c Coding style fixes. 2012-10-21 15:09:01 +02:00
Felix Geyer
788cc02685 Make sure all auto-type settings are saved and the UI is reset before loading entries. 2012-10-21 12:47:30 +02:00
Felix Geyer
169e6327ea Disable core dumps and tracing on *nix.
But only when built in release mode.

Closes #4
2012-10-21 12:33:00 +02:00
Florian Geyer
807924c0bc Refactor EditGroupWidget. 2012-10-20 17:53:33 +02:00
Florian Geyer
1558dd8309 Make group autotype setting editable via GUI. 2012-10-20 17:26:23 +02:00
Florian Geyer
dd82c9f8f9 Search in root group by default. 2012-10-20 16:57:14 +02:00
Felix Geyer
e166722026 Implement database locking.
Closes #35
2012-10-12 12:12:00 +02:00
Felix Geyer
8117809901 Add small comment. 2012-10-12 12:11:34 +02:00
Felix Geyer
7286b1847d Add Database::verifyKey().
And make Database::hasKey() const.
2012-10-12 12:10:41 +02:00
Felix Geyer
b8b4d35763 Add CompositeKey::isEmpty(). 2012-10-12 12:10:13 +02:00
Felix Geyer
78c125af4e Check if all required database headers were present. 2012-10-12 12:09:22 +02:00
Felix Geyer
18d3fe55f8 Add support for database format 3.01 (HeaderHash).
Add test for the format 3.00 and upgrade Compressed.kdbx, NonAscii.kdbx
and ProtectedStrings.kdbx to 3.01.

Add a test for an incorrect HeaderHash.
2012-09-25 22:33:36 +02:00
Felix Geyer
40ccd219f4 Allow only selecting one row in AutoTypeSelectView. 2012-09-25 17:51:49 +02:00
Felix Geyer
ba7b787dd3 Minimize the main window with Command + M on Mac OS.
Closes #42
2012-09-01 11:14:05 +02:00
Florian Geyer
de1a94ff61 Add presets for expire date.
Closes #44
2012-08-18 17:33:41 +02:00
Florian Geyer
6c695e3fd0 Remember show toolbar option.
Closes #43
2012-08-15 19:50:31 +02:00
Felix Geyer
0bac9752ba Use QTime instead of QElapsedTimer with Qt 4.6.
The latter has been introduced in Qt 4.7.
2012-08-05 19:19:01 +02:00
Felix Geyer
138ca8d3a3 Select the first entry when the model has been reset.
This avoids overriding setEntryList().
2012-08-05 18:51:19 +02:00
Felix Geyer
6e206704f9 Make sure the clipboard is cleared before the QApplication instance is destroyed.
Also add safety check so we don't try to use the clipboard if it's not available.
2012-08-04 22:06:41 +02:00
Felix Geyer
013a924e43 Activate the auto-type select dialog after showing it.
That way it is brought to the front even when the main window is minimized.
2012-08-04 22:06:41 +02:00
Felix Geyer
54433637eb Disable dragging items from the AutoTypeSelectView. 2012-08-04 22:06:41 +02:00
Felix Geyer
8fb2f9db7c Move inline keyword to function definition. 2012-08-04 22:06:41 +02:00
Felix Geyer
9c378216f6 Coding style fixes. 2012-08-04 22:06:41 +02:00
Felix Geyer
668103a00f Show group and entry view context menus from MainWindow.
This allows us to drop the duplicate actions in DatabaseWidget.
2012-08-04 22:06:41 +02:00
Florian Geyer
15c18dd899 Do not try to open a non-existing database. 2012-07-28 10:19:32 +02:00
Felix Geyer
886187baee Show a busy cursor while doing master key transformations. 2012-07-27 18:54:35 +02:00
Felix Geyer
3a2f387892 Add action to open the entry URL.
Closes #37
2012-07-27 18:38:52 +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
6b13d18137 Rename KEEPASSX_QTEST_CORE_MAIN to QTEST_GUILESS_MAIN which is available in Qt 5. 2012-07-25 12:18:16 +02:00
Felix Geyer
2185afefed Speed up TestGui by removing unnecessary waits.
Backport QTRY_VERIFY and QTRY_COMPARE from Qt 5.
2012-07-25 12:18:16 +02:00
Felix Geyer
5786d0c279 Regain focus after native file dialogs have been closed.
For some reason this happens on Mac OS X.
We work around it by calling activateWindow().

Closes #39
2012-07-25 12:18:16 +02:00
Florian Geyer
c0e91e4f16 Refactor wildcard matcher test. 2012-07-24 20:35:36 +02:00
Florian Geyer
53ce522c08 Disable recent databases menu when in settings widget. 2012-07-23 23:50:17 +02:00
Florian Geyer
9f21b54c4e Prevent selection of both entries when an entry is cloned via shortcut. 2012-07-23 22:27:02 +02:00
Florian Geyer
8bff332be0 Add shortcuts for entry creation, editing, cloning and deletion.
Closes #40
2012-07-23 21:54:24 +02:00
Florian Geyer
0755702fe3 Show last used databases in file menu.
Refs #36
2012-07-23 21:16:55 +02:00
Felix Geyer
a16f7e7cca Use WildcardMatcher for simple Auto-Type window patterns. 2012-07-23 18:11:10 +02:00
Felix Geyer
92efb3d20b Move autoTypeSequence() and windowMatches() to the AutoType class. 2012-07-23 18:06:04 +02:00
Felix Geyer
4f0600421c Fall back to WM_NAME if _NET_WM_NAME does not exist. 2012-07-23 17:51:21 +02:00
Felix Geyer
ad0d120ae6 Coding style fixes. 2012-07-23 15:11:05 +02:00
Felix Geyer
ecea101962 Return Q_NULLPTR instead of 0 when the return type is a pointer. 2012-07-23 14:58:57 +02:00
Felix Geyer
fcc936ceff Disable searching and auto-type for the Backup group imported from KeePass1. 2012-07-23 13:21:17 +02:00
Felix Geyer
7820bf2510 For global auto-type use the default sequence of the entry before the group. 2012-07-23 12:56:00 +02:00
Felix Geyer
4a357e791e Set Auto-Type sequence edit to read only when in history mode.
Not the other way aroud.
2012-07-23 12:42:05 +02:00
Felix Geyer
cf15d1741f Optimize WildcardMatcher a bit. 2012-07-23 12:33:37 +02:00
Felix Geyer
9ad4cc8783 Subclass QSortFilterProxyModel to hide the group column in EntryView.
QTreeView::hideColumn() does not work well with keyboard search.
2012-07-22 22:02:06 +02:00
Felix Geyer
edb644baef Add TestGui::testCloneEntry(). 2012-07-22 22:02:06 +02:00
Florian Geyer
7bd080760e Make wildcard matcher case insensitive. 2012-07-22 14:58:15 +02:00
Florian Geyer
4f78c32461 Add custom wildcard matcher. 2012-07-22 14:43:45 +02:00
Felix Geyer
9a2aba56fc Set name of the root group when importing KeePass 1 databases. 2012-07-21 22:21:49 +02:00
Felix Geyer
20e4643560 Implement global auto-type dialog.
It allows to select an entry when there are multiple entries
that match the window title.
2012-07-21 22:21:49 +02:00
Felix Geyer
34ad5d61f6 Allow EntryModel to be used with entries from different databases. 2012-07-21 22:21:49 +02:00
Felix Geyer
39b9260719 Rename methods in EntryModel and EntryView from "search" to "entry list mode". 2012-07-21 22:21:49 +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
Felix Geyer
a50d2709e7 Replace EntryAttachments and EntryAttributes operator=() with copyDataFrom().
QObjects are not supposed to have assignment operators.
2012-07-20 12:15:19 +02:00
Felix Geyer
c7107de2a7 Improve window select combo box.
Create the WindowSelectComboBox subclass that refreshes the window
list whenever the popup is opened.
2012-07-20 12:15:14 +02:00
Felix Geyer
b5c3873cfd Update auto-type association editing.
Correctly set enabled status of all elements.
Fix crash when clicking on the view and the entry has no auto-type associations.
2012-07-20 10:28:18 +02:00
Felix Geyer
ef579cbe3c Refactor Entry::truncateHistory().
This allows us to drop Entry::getSize() and EntryAttachments::attachmentsSize()
which have weird semantics.
2012-07-20 00:45:34 +02:00
Felix Geyer
0c1fecfb2b const_cast "this" instead of the member variable. 2012-07-19 23:32:31 +02:00
Felix Geyer
b6d9c2e486 Import Auto-Type associations in KeePass1Reader. 2012-07-19 23:21:12 +02:00
Felix Geyer
8cf6289d9c Close search when the escape button is pressed. 2012-07-19 19:42:26 +02:00
Felix Geyer
8619682da3 Replace some more Q_WS_* with Q_OS_*. 2012-07-19 19:42:26 +02:00
Felix Geyer
308d3ad84b Use constructor initialization lists where possible. 2012-07-19 19:42:14 +02:00
Felix Geyer
4152e93bb7 Add a cache for FilePath::icon(). 2012-07-18 21:22:36 +02:00
Felix Geyer
f01076856b Don't add double "/" to paths. 2012-07-18 21:22:36 +02:00
Felix Geyer
3100c202e8 Install the auto-type plugin. 2012-07-18 21:22:36 +02:00
Felix Geyer
2a45f57386 Support proper plugin finding.
So we don't have to hardcode the location anymore.
2012-07-18 21:22:36 +02:00
Felix Geyer
7fef3bd701 Rename DataPath to FilePath. 2012-07-18 21:22:26 +02:00
Felix Geyer
4781fc19fe Add a few drag'n'drop tests. 2012-07-17 23:29:25 +02:00
Felix Geyer
490414716d Generate new random transform seed when changing transform rounds. 2012-07-17 10:57:08 +02:00
Felix Geyer
7e9343c697 Fix CompositKey self assignment. 2012-07-17 10:57:08 +02:00
Felix Geyer
f767a098d6 Add GUI test for changing the database transform rounds.
Refs #34
2012-07-17 10:56:56 +02:00
Felix Geyer
66422437d3 Regenerate key in Database::setTransformRounds().
Merge Database::updateKey() into Database::setTransformRounds() and
regenerate the key if the database already has a key.

Closes #34
2012-07-17 10:33:54 +02:00
Felix Geyer
2b694bab16 Refactor TestGui a bit. 2012-07-17 10:16:59 +02:00
Felix Geyer
965dba63d7 Use Q_OS_MAC instead of the nonexistent Q_OS_MACOS.
Thanks to Richard Johnson for spotting this.

Closes #33
2012-07-16 17:49:12 +02:00
Felix Geyer
676be9da16 Coding style fixes. 2012-07-16 17:47:21 +02:00
Felix Geyer
237d954b65 Add auto-type settings to EditEntryWidget. 2012-07-16 17:40:28 +02:00
Felix Geyer
af166a66b3 Add AutoTypeAssociationsModel class. 2012-07-16 17:39:20 +02:00
Felix Geyer
3c913f196f In TestGui::testEditEntry() wait for the delayed Database::modified() signal. 2012-07-16 17:37:59 +02:00
Felix Geyer
7db6850528 Add AutoTypeAssociations::removeEmpty(). 2012-07-16 17:37:18 +02:00
Felix Geyer
7abaf0e215 Fix bug in Entry::autoTypeSequence() with default window sequences.
When using the default sequence autoTypeSequence() returned an empty string.
2012-07-16 17:34:19 +02:00
Felix Geyer
0b8f07f58e Don't re-register the global shortcut when the keyboard mapping changes.
This breaks after the first global auto-type.
2012-07-16 17:33:23 +02:00
Felix Geyer
85d532953f Emit globalShortcutTriggered() directly.
There is no need for a queued connection call.
2012-07-16 17:29:42 +02:00
Felix Geyer
f98d834edb Move Auto-Type associations handling from Entry into an own class. 2012-07-16 09:54:04 +02:00
Felix Geyer
f4a4930f42 Entry::autoTypeSequence() returns null string when no window matches.
Return QString() when a windowTitle is passed but doesn't match any
auto-type association.
2012-07-15 11:30:30 +02:00
Felix Geyer
6d5b31f527 Normalize signal/slot signatures. 2012-07-14 19:34:38 +02:00
Felix Geyer
288fa732ca Add global shortcut widget to SettingsWidget and register shortcut on startup. 2012-07-14 19:09:28 +02:00
Felix Geyer
d3af39a7ae Reset and unregister global shortcut when it's not locked anymore. 2012-07-14 19:07:13 +02:00
Felix Geyer
fa51f7e10e Make AutoType::performGlobalAutoType() a slot. 2012-07-14 19:06:05 +02:00
Felix Geyer
651c00239a Add an auto-type entry action. 2012-07-12 22:35:51 +02:00
Felix Geyer
bc207714da Add initial auto-type implementation.
The platform dependent bits are separated in plugins.
A plugin for X11 using Xlib is already done.
2012-07-12 22:33:20 +02:00
Felix Geyer
073f3f9dfc Add ListDeleter class.
A class that deletes all elements of a QList when it goes out of scope.
2012-07-12 22:28:44 +02:00
Felix Geyer
549c3ce598 Fix memory leak in QSaveFile. 2012-07-12 21:30:37 +02:00
Felix Geyer
9de4cbbbd6 Use Q_OS_* defines instead of Q_WS_*. 2012-07-12 13:58:40 +02:00
Felix Geyer
13eb1f6330 Add Tools::sleep() and Tools::wait(). 2012-07-12 13:51:50 +02:00
Felix Geyer
4b6cae0fcd Fix some compiler warnings.
Implements parts of
https://gitorious.org/keepassx/keepassx/merge_requests/18
2012-07-08 11:27:11 +02:00
Felix Geyer
98df309d28 Coding style fixes. 2012-07-08 10:29:38 +02:00
Felix Geyer
fb4367f9ef Remove some unneeded includes. 2012-07-08 10:27:31 +02:00
Felix Geyer
ce633b54be Prevent opening a database multiple times in the same instance.
Refs #18
2012-07-08 10:26:42 +02:00
Felix Geyer
2e38b01d80 Add Save and SaveAs gui tests. 2012-07-06 19:21:19 +02:00
Felix Geyer
b579eb954e Use QSaveFile to save databases. 2012-07-06 18:50:52 +02:00
Felix Geyer
78849c43f1 Make sure tmpDir is not empty. 2012-07-06 16:40:38 +02:00
Felix Geyer
2f98d95b66 Import QSaveFile from libkdeqt5staging.
It's planned to become part of Qt 5.1.
2012-07-06 14:36:04 +02:00
Felix Geyer
d826ae5daf Add assert to make sure the temp file could be opened successfully. 2012-07-03 12:39:03 +02:00
Felix Geyer
40f194fe4b Update copyright file. 2012-07-02 23:01:23 +02:00
Felix Geyer
9b66eae12c Add a changelog. 2012-07-02 22:57:59 +02:00
Felix Geyer
853d9eaa4a Bump version to alpha 2. 2012-07-02 22:23:20 +02:00
Felix Geyer
a4121f8b5a Set BIN_INSTALL_DIR to "." instead of an empty string on Windows and Mac OS. 2012-07-02 22:13:13 +02:00
Felix Geyer
e050385e27 Increase wait time in TestGui::testSearch() a bit. 2012-07-02 22:12:07 +02:00
Felix Geyer
6ca3b8aa81 Make google cpplint happy. 2012-07-02 20:00:06 +02:00
Felix Geyer
1bb646fb91 Don't pass -ansi to g++ when WITH_CXX11 is enabled. 2012-07-02 19:52:06 +02:00
Felix Geyer
a9724ad894 Fix building with LTO. 2012-07-02 19:22:26 +02:00
Felix Geyer
909e01bde5 Make DatabaseOpenWidget a bit prettier. 2012-07-02 18:47:12 +02:00
Felix Geyer
d0fd9af5e6 Hide history row when viewing history items. 2012-07-02 00:16:24 +02:00
Felix Geyer
61984a5748 Keep widget frame when displaying history items. 2012-07-02 00:08:31 +02:00
Felix Geyer
1b9c2bb16b Improve array size assert. 2012-07-01 22:21:49 +02:00
Felix Geyer
782223a643 Coding style fixes. 2012-07-01 21:58:45 +02:00
Felix Geyer
c844c6b712 Convert icon filename QVector to a plain char* array. 2012-07-01 21:35:07 +02:00
Felix Geyer
fd6546c5df Move modeltest to the front so it's always passed to the linker before Qt. 2012-07-01 21:29:54 +02:00
Felix Geyer
85031658d1 Add Q_STATIC_ASSERT macro, backported from Qt 5. 2012-07-01 21:27:11 +02:00
Felix Geyer
6ce53b142d clang: Use __has_feature() to detect C++11 features. 2012-07-01 20:24:43 +02:00
Felix Geyer
ee3bc89a54 Coding style fixes. 2012-06-30 00:22:07 +02:00
Felix Geyer
ca13ad8d25 Delete open databases when DatabaseTabWidget is destructed. 2012-06-29 23:40:51 +02:00
Florian Geyer
9ae6d2cd05 Update last databases on open and save as. 2012-06-29 23:30:13 +02:00
Felix Geyer
d2fc4e8abd Mark DatabaseOpenWidget ctor es explicit. 2012-06-29 23:17:36 +02:00
Felix Geyer
dedce07530 Add KeePass1 import GUI test. 2012-06-29 15:54:34 +02:00
Felix Geyer
baa5a74ba0 Convert iconCount() and expiredIconIndex() to constants. 2012-06-29 15:22:43 +02:00
Felix Geyer
e144f7c85a Mark overriden methods as Q_DECL_OVERRIDE. 2012-06-29 14:37:29 +02:00
Felix Geyer
4e6cf15a09 Fix compiler warning about __GXX_EXPERIMENTAL_CXX0X__ being undefined. 2012-06-29 14:34:17 +02:00
Felix Geyer
2287250a07 Define COMPILER_EXPLICIT_OVERRIDES when using gcc >= 4.7. 2012-06-29 14:18:12 +02:00
Felix Geyer
68155e8f89 Make use of Q_NULLPTR. 2012-06-29 14:15:16 +02:00
Felix Geyer
af142fc433 Optionally enable C++ 11. 2012-06-29 14:14:58 +02:00
Felix Geyer
92af92ccbe Convert DatabaseOpenDialog into a widget on DatabaseWidget. 2012-06-29 10:36:35 +02:00
Florian Geyer
900beae046 Add menu action to toggle toolbar visibility.
Closes #31
2012-06-25 00:30:26 +02:00
Florian Geyer
dad4376030 Fix typo. 2012-06-25 00:09:40 +02:00
Florian Geyer
204822b66f Improve auto save handling. 2012-06-24 19:30:30 +02:00
Felix Geyer
b0ad864fe0 Always convert explicitly from QByteArray to QString. 2012-06-24 18:23:27 +02:00
Felix Geyer
d0016bf6c4 Fix reading non-ASCII passwords that are protected.
Closes #28
2012-06-24 18:22:18 +02:00
Felix Geyer
f690522725 Coding style fixes. 2012-06-24 11:32:54 +02:00
Felix Geyer
38d2b124d8 Fix datetime serialization appending two 'Z' at the end with Qt >= 4.8. 2012-06-24 11:25:06 +02:00
Felix Geyer
513ba6d19d Write empty strings as short empty XML elements.
For example instead of
<DatabaseName></DatabaseName>
we now write
<DatabaseName/>

Closes #29
2012-06-23 20:15:14 +02:00
Florian Geyer
e578ca9a82 Avoid multiple editFinished signals from group view. 2012-06-14 23:43:06 +02:00
Florian Geyer
a720903083 Use temporary settings file for gui test. 2012-06-14 23:07:49 +02:00
Florian Geyer
056447fad9 Add editFinished signal which can be used to auto save the database. 2012-06-14 21:18:04 +02:00
Florian Geyer
27794021d9 Simplify enableAutoSaveOnExit function. 2012-06-12 10:11:13 +02:00
Florian Geyer
2c88810459 Coding style fixes. 2012-06-12 10:00:02 +02:00
Thom Troy
bd5dd130e5 Add auto save on exit 2012-06-12 10:00:02 +02:00
Thom Troy
e439e057a0 Fix extra check that wasn't needed 2012-06-12 10:00:01 +02:00
Thom Troy
17f4e23215 Added automatically saving DB after change 2012-06-12 10:00:01 +02:00
Florian Geyer
871cdc5bb8 Coding style fixes. 2012-06-11 18:52:16 +02:00
Thom Troy
a5f7d0277f Implement browse key file in ChangeMasterKeyWidget 2012-06-11 18:20:46 +02:00
Thom Troy
5217199d0a Implement create key file in ChangeMasterKeyWidget 2012-06-11 18:20:46 +02:00
Florian Geyer
01706483fb Fix history view showing wrong item. 2012-06-10 18:11:00 +02:00
Florian Geyer
21e257e64d Re-add truncation of history entries. 2012-06-06 19:59:10 +02:00
Franklin Strube
21302782e1 allow any filetype to be opened as a database 2012-06-06 10:46:42 +02:00
Felix Geyer
8e8efc67e6 Use "*" as filter for all files instead of "*.*". 2012-06-06 10:21:17 +02:00
Felix Geyer
d3fcf2e0c4 Move singleton instance code to static member functions. 2012-05-31 14:51:44 +02:00
Florian Geyer
8d6b200dd7 Improve performance of EntryHistoryModel. 2012-05-30 18:07:50 +02:00
Florian Geyer
9f1ab080ee Make history view sortable. 2012-05-30 16:51:36 +02:00
Florian Geyer
2448976643 Switch back to WelcomeWidget when settings widget is closed and there are no open databases. 2012-05-30 15:20:09 +02:00
Florian Geyer
cf5f56af6f Rename setting so it refers only to group expanded state changes. 2012-05-30 11:27:09 +02:00
Florian Geyer
5003499700 Add settings option if visual changes mark databases as modified. 2012-05-29 22:10:03 +02:00
Florian Geyer
8aefb1ed82 Indicate read-only state in window title. 2012-05-28 19:01:38 +02:00
Felix Geyer
5201001f3a Switch back to WelcomeWidget when the last database has been closed. 2012-05-28 18:53:39 +02:00
Felix Geyer
f145cb69de Switch to DatabaseTabWidget when the current tab changed and the welcome widget is shown. 2012-05-28 18:49:16 +02:00
Felix Geyer
a8ab3a5ca1 Coding style fixes. 2012-05-28 12:12:33 +02:00
Felix Geyer
1342a66881 Add instructions for build on Mac OS X. 2012-05-28 12:12:33 +02:00
Florian Geyer
a22308b13b Add missing general settings widget. 2012-05-28 10:46:25 +02:00
Florian Geyer
f18db06471 Store remember last opened files setting. 2012-05-28 00:09:54 +02:00
Florian Geyer
6f48983efe Remember last opened files. 2012-05-27 23:41:33 +02:00
Florian Geyer
20c95737cb Fix clipboard timeout. 2012-05-27 20:58:44 +02:00
Florian Geyer
6cd65ae9a7 Add edit finished signal to settings widget. 2012-05-27 20:29:15 +02:00
Florian Geyer
f53768fc84 Add welcome widget. 2012-05-27 20:15:06 +02:00
Felix Geyer
d707fb4760 Store clear clipboard settings. 2012-05-27 20:10:41 +02:00
Felix Geyer
7194a3d7a8 Store defaults in Config. 2012-05-27 20:05:57 +02:00
Felix Geyer
4a2ca8c7c8 Add another icon. 2012-05-27 19:54:18 +02:00
Felix Geyer
b00a8350a6 Update copyright information. 2012-05-27 19:48:53 +02:00
Felix Geyer
3f4f9abb36 Support RTL layout in LineEdit. 2012-05-27 19:43:34 +02:00
Florian Geyer
adbce87ccd Improve update of enabled state of group actions. 2012-05-27 17:06:04 +02:00
Florian Geyer
6fb6e1dc82 Add more icons to actions in context menu. 2012-05-27 16:59:25 +02:00
Florian Geyer
56509eab5f Fix enabled state of group actions. 2012-05-27 16:53:27 +02:00
Felix Geyer
3e72cd11a3 Change SearchWidget to use a grid layout and remove double margins. 2012-05-27 16:17:10 +02:00
Felix Geyer
089bcba89f Add more icons. 2012-05-27 15:39:44 +02:00
Florian Geyer
92e4055f85 Add icons to actions in context menu. 2012-05-27 15:20:53 +02:00
Florian Geyer
b5797503a8 Hide search sensitivity checkbox. 2012-05-27 15:07:32 +02:00
Florian Geyer
182258761f Add some asserts. 2012-05-27 15:07:32 +02:00
Florian Geyer
57aef7f1ec Option to search in current/root group.
Closes #24
2012-05-27 15:07:32 +02:00
Florian Geyer
3fdcbfe002 Cleanup of search widget. 2012-05-27 15:07:32 +02:00
Florian Geyer
a92ddc6d0b Add case sensitivity option to search. 2012-05-27 15:07:28 +02:00
Felix Geyer
10321adc0b Fix icons/application/22x22/action folder name. 2012-05-27 12:49:09 +02:00
Felix Geyer
264c69d046 Add some action icons. 2012-05-27 12:46:22 +02:00
Felix Geyer
de95b6c347 Add DataPath::icon() parameter to only use local icons. 2012-05-27 12:43:58 +02:00
Felix Geyer
fb499154bd Remove some double margins. 2012-05-27 11:24:56 +02:00
Felix Geyer
82d697b657 Add convenience method EditWidget::setHeadline(). 2012-05-27 11:12:12 +02:00
Felix Geyer
21a2e9583b Add (not yet functional) SettingsWidget. 2012-05-27 11:09:52 +02:00
Felix Geyer
9fc62a1d81 Move code to set headline label font to EditWidget. 2012-05-27 10:35:49 +02:00
Florian Geyer
4751f40c2b Add a function to database widget to access enabled state of actions. 2012-05-26 19:40:02 +02:00
Felix Geyer
267e88001b Show context menus with popup() instead of exec().
exec() blocks the event loop.
2012-05-26 17:01:48 +02:00
Felix Geyer
50391e144d Coding style fixes. 2012-05-26 16:47:58 +02:00
Felix Geyer
c6253fc025 Make copy constructor and assignment operator of singleton classes private. 2012-05-26 16:45:59 +02:00
Felix Geyer
f43ad8d062 Support copying username and password to the clipboard. 2012-05-26 16:37:57 +02:00
Felix Geyer
bbd039e487 Return gracefully from actions if they shouldn't have been enabled. 2012-05-25 13:43:22 +02:00
Felix Geyer
3834531488 Simplify MainWindow::setMenuActionState(). 2012-05-25 13:43:22 +02:00
Felix Geyer
28bfd39bca Allow selecting multiple rows in entry view. 2012-05-25 13:43:14 +02:00
Felix Geyer
5c0a83eae5 Add context menus for group and entry view. 2012-05-25 13:42:59 +02:00
Felix Geyer
e323fd169e Use QDesktopServices::storageLocation() on Mac OS too. 2012-05-25 13:42:59 +02:00
Felix Geyer
842eb22e1e Mark some UI strings as untranslatable. 2012-05-25 13:42:55 +02:00
Felix Geyer
a1a71a88bb Fix cmake file formatting. 2012-05-21 23:37:29 +02:00
Felix Geyer
76eb935024 Small fixes in Application. 2012-05-21 22:11:26 +02:00
Florian Geyer
b5249d196d Rename KeePassApp to Application and move it to gui directory. 2012-05-21 22:04:40 +02:00
Florian Geyer
d445bf1ecd Use a signal to connect to a slot in main window.
Coding style fixes.

http://gitorious.org/keepassx/keepassx/merge_requests/10
2012-05-21 22:04:40 +02:00
Tobias Tangemann
679398be00 Handle OSX Finder events 2012-05-21 22:04:40 +02:00
Felix Geyer
3bc3bfb15e Support gcc 4.0.
gcc 4.0 doesn't understand -Werror=...
2012-05-21 21:50:48 +02:00
Felix Geyer
fa79da37b6 Support creating Mac OS X bundles that embed all dependencies. 2012-05-21 21:50:40 +02:00
Felix Geyer
ca7c59d313 Fix data path on Mac OS. 2012-05-21 17:55:09 +02:00
Felix Geyer
bde397503e Coding style fixes. 2012-05-21 11:57:29 +02:00
Felix Geyer
5297722ede Include header cleanup. 2012-05-20 23:08:23 +02:00
Felix Geyer
d8d288fca2 Add Q_OBJECT macro to KeePass1OpenDialog and generate the moc file. 2012-05-20 22:23:36 +02:00
Felix Geyer
04edcf39f7 Remove unneeded include. 2012-05-20 22:22:25 +02:00
Florian Geyer
9faf550fa1 Use line edit widget for search edit. 2012-05-20 21:09:34 +02:00
Florian Geyer
e5e7e5e406 Add line edit widget with integrated clear button. 2012-05-20 21:09:26 +02:00
Florian Geyer
3be90b02d6 Add option to restore from a history item.
Closes #23
2012-05-20 13:07:45 +02:00
Florian Geyer
8904869350 Add button to remove all history entries.
Refs #23
2012-05-20 13:07:45 +02:00
Florian Geyer
4797926be6 History items can now be removed.
Refs #23
2012-05-20 13:07:45 +02:00
Florian Geyer
e4a5cd214f Improve search.
Find as you type.
Add shortcut.
Hide search widgets when not used.

Refs #24
2012-05-20 12:57:50 +02:00
Felix Geyer
4a1423da88 Don't set values that are already the default. 2012-05-19 15:08:48 +02:00
Felix Geyer
f8bea82ce8 Emit error on invalid HistoryMaxItems and HistoryMaxSize values. 2012-05-19 15:05:07 +02:00
Felix Geyer
f1ad94b472 DatabaseSettingsWidget improvements.
Merge checkboxes with labels.
Set max. history size in MiB instead of bytes.
2012-05-19 15:04:05 +02:00
Felix Geyer
fef931392f Simplify DatabaseSettingsWidget by passing a Database pointer to it. 2012-05-19 14:52:00 +02:00
Florian Geyer
7425771c78 Add search enabled option to group edit. 2012-05-18 16:19:28 +02:00
Florian Geyer
f032f001f3 Remove frames from edit boxes when showing a history entry. 2012-05-18 15:45:19 +02:00
Florian Geyer
12a8662ae9 Add advanced tab in group edit. 2012-05-18 14:44:15 +02:00
Florian Geyer
4ec9df76cd Add toHex function to Uuid. 2012-05-18 14:41:34 +02:00
Florian Geyer
d218924b4f Add expiry option to group edit. 2012-05-18 10:52:05 +02:00
Florian Geyer
810a6e4b39 Display history items.
Refs #23
2012-05-17 23:29:37 +02:00
Florian Geyer
d0557677c7 Set initial state of clone entry action to disabled. 2012-05-16 13:56:25 +02:00
Florian Geyer
b61c47d42f Sort entry view by group/title when switching to search/view respectively. 2012-05-16 10:57:03 +02:00
Florian Geyer
eb82df5994 Add entry clone functionality. 2012-05-16 10:30:25 +02:00
Felix Geyer
7ebee78c75 Create src/gui/{entry,group}/ and move corresponding files to these dirs. 2012-05-16 10:22:04 +02:00
Florian Geyer
b08d2d45b7 Add gui test for search. 2012-05-16 10:18:27 +02:00
Florian Geyer
ea6f2477ef Add button to clear search field. 2012-05-16 10:18:27 +02:00
Felix Geyer
00ae8aabf1 Switch database tab when hovering over it in drag and drop.
Closes #26
2012-05-16 10:05:58 +02:00
Felix Geyer
ee1a7b6e62 Enable calendar popup in the expiry time widget. 2012-05-16 10:05:58 +02:00
Felix Geyer
5ef3cdb428 Add some more asserts to make sure we only store UTC QDateTimes. 2012-05-16 10:05:58 +02:00
Florian Geyer
fb5a5041d5 Fix crash when editing an entry in search results. 2012-05-16 01:33:32 +02:00
Felix Geyer
a5eb93255b Enable alternating row colors in EntryView. 2012-05-15 20:04:20 +02:00
Felix Geyer
ce268260b1 Display expired entries and groups struck out. 2012-05-15 20:02:08 +02:00
Florian Geyer
e5062cb745 Coding style fixes. 2012-05-15 18:51:45 +02:00
Florian Geyer
da713b0993 Use default icon if no icon is selected in entry/group edit. 2012-05-15 18:46:59 +02:00
Florian Geyer
621ec80bbe Use static constants for default icon numbers. 2012-05-15 18:46:59 +02:00
Florian Geyer
62073fa74d Don't fail upon deletion of a custom icon if history items contain the icon, but set a default icon. 2012-05-15 18:46:59 +02:00
Florian Geyer
1415829eaf Use EditWidgetIcons for entry icon selection as well.
Closes #22
2012-05-15 18:46:59 +02:00
Florian Geyer
6a1d6e8dd3 Add icon selection for groups.
Refs #22
2012-05-15 18:46:59 +02:00
Florian Geyer
1cb64f0c9f Make icons edit ui a widget. 2012-05-15 18:46:59 +02:00
Florian Geyer
6f4e855b02 Rename EditEntryWidgetIcons to EditWidgetIcons. 2012-05-15 18:46:59 +02:00
Florian Geyer
7e1f7a8729 Coding style improvements. 2012-05-15 18:46:59 +02:00
Felix Geyer
56ac80f475 Assign some keyboard shortcuts. 2012-05-15 18:16:04 +02:00
Felix Geyer
b90807c4d3 Coding style fixes. 2012-05-15 17:48:48 +02:00
Florian Geyer
0c7e1f1a6b Entry edit widget inherits from base edit widget. 2012-05-15 11:58:09 +02:00
Florian Geyer
eb3a0be809 Group edit widget inherits from base edit widget. 2012-05-15 11:58:09 +02:00
Florian Geyer
f596cc4eec Add base edit widget. 2012-05-15 11:58:03 +02:00
Felix Geyer
7986fd3e31 Use stylesheets to color the password edit background. 2012-05-14 20:24:00 +02:00
Felix Geyer
a407e0082b Coding style improvements. 2012-05-14 19:10:42 +02:00
Felix Geyer
924130e0fe Use Q_FOREACH instead of QListIterator. 2012-05-14 17:56:43 +02:00
Felix Geyer
cd41727583 Get rid of Database pointer in Metadata. 2012-05-14 17:04:05 +02:00
Felix Geyer
10e24e7343 Connect to selectionModel()->currentChanged() instead of reimplementing currentChanged(). 2012-05-14 16:50:28 +02:00
Felix Geyer
120be979e9 Add missing break in switch statements. 2012-05-14 16:45:32 +02:00
Felix Geyer
53fb28624e Fix memory leak in Entry::truncateHistory(). 2012-05-14 16:29:22 +02:00
Felix Geyer
b88a0d8de3 Coding style improvements. 2012-05-14 16:27:59 +02:00
Florian Geyer
89361b3bea Readability fix in custom icon model. 2012-05-13 21:27:56 +02:00
Florian Geyer
a197cdcce5 Improve selection when adding/removing a custom icon. 2012-05-13 21:19:45 +02:00
Florian Geyer
a57e8f9864 Preserve order of custom icons.
Closes #25
2012-05-13 20:50:41 +02:00
Florian Geyer
459cf051bf Truncate history of all items when history limits are changed. 2012-05-13 19:43:01 +02:00
Florian Geyer
8cd5b1f582 Use current index changed slot instead of selection changed signal in group view to update the entry view. 2012-05-13 19:21:23 +02:00
Florian Geyer
60e65bec35 Add search test. 2012-05-13 19:21:23 +02:00
Florian Geyer
0e19b47755 Disable some menu actions while searching. 2012-05-13 19:21:23 +02:00
Florian Geyer
6b6c109903 Add search.
Refs #24
2012-05-13 19:21:10 +02:00
Florian Geyer
f836629dda Don't reset entry model if the same group is set. 2012-05-13 19:03:41 +02:00
Florian Geyer
746a535c7d Create recycle bin with search state and auto type disabled. 2012-05-13 19:03:41 +02:00
Florian Geyer
078fe3ccf1 Pass database instead of metadata to edit entry widget. 2012-05-13 19:02:07 +02:00
Felix Geyer
af726d465d Fix typo. 2012-05-13 13:33:55 +02:00
Felix Geyer
23792eb069 Remove some asserts in KeePass1Reader. 2012-05-13 13:32:28 +02:00
Felix Geyer
0387da48a4 Add transform round benchmark button to DatabaseWidget. 2012-05-12 15:39:55 +02:00
Felix Geyer
efb40a6567 Fix transform round benchmark. 2012-05-12 15:39:33 +02:00
Felix Geyer
05c41c083e Implement GUI to import KeePass 1 databases.
Closes #2
2012-05-12 10:13:00 +02:00
Florian Geyer
4807ec3368 Include groups in custom icon delete check.
Refs #22
2012-05-12 02:14:06 +02:00
Florian Geyer
e4b6289c0b Prevent deletion of custom icon if it is still used by other entries.
Refs #22
2012-05-12 00:30:29 +02:00
Florian Geyer
15fa09167b Toggle enabled status of add/remove custom icon buttons based on radio button selection. 2012-05-12 00:28:05 +02:00
Florian Geyer
a1dec7594d Extend history item tests. 2012-05-11 20:14:52 +02:00
Florian Geyer
1c24b2c5c4 Add gui option for history max items and size to database settings widget. 2012-05-11 20:14:52 +02:00
Florian Geyer
1a74feb253 Improve history limits.
Closes #16
2012-05-11 20:14:43 +02:00
jacek81
8c87a87da6 Added history limits enforcement 2012-05-11 20:04:51 +02:00
Felix Geyer
860a2131b3 Emit dataChanged() when the entry icon has changed. 2012-05-11 14:14:12 +02:00
Felix Geyer
0b592c69b0 Emit defaultKeyModified() only when the data has actually changed. 2012-05-11 14:13:22 +02:00
Felix Geyer
587a647c11 New TODO comment style.
Qt Creator 2.5 is able to parse those.
2012-05-11 12:39:06 +02:00
Felix Geyer
8faac078fd Make EntryView sortable. 2012-05-11 12:01:01 +02:00
Florian Geyer
44489bf6f8 Fix creation of history item when a new entry is added.
Add corresponding gui test.
2012-05-11 09:16:45 +02:00
Florian Geyer
887e4067ec Improve selection handling in edit icon widget. 2012-05-11 08:40:02 +02:00
Felix Geyer
3738115b6d Test if we can re-open imported KeePass 1 databases. 2012-05-10 23:00:29 +02:00
Felix Geyer
65bdc207b7 Make sure we don't create DeletedObjects when importing databases. 2012-05-10 22:54:26 +02:00
Felix Geyer
366d8a0f0e Set master key after reading the database. 2012-05-10 22:46:36 +02:00
Felix Geyer
9d8e276950 Set uuids for entries. 2012-05-10 21:35:26 +02:00
Felix Geyer
2ecd11eb35 Add test for a non-ascii password. 2012-05-10 21:29:10 +02:00
Felix Geyer
cf4e574c50 Support Twofish encrypted KeePass 1 databases.
Refs #2
2012-05-10 21:06:33 +02:00
Felix Geyer
225e5dac66 Add tests for opening KeePass 1 databases with different keyfiles. 2012-05-10 19:34:55 +02:00
Felix Geyer
c02b5abc6e Fix composite keys in KeePass1Reader. 2012-05-10 19:33:49 +02:00
Felix Geyer
7fd8154ea8 Add support for parsing KeePass 1 keyfiles.
Refs #2
2012-05-10 19:33:16 +02:00
Felix Geyer
cc6f524168 Add Tools::readFromDevice() and make FileKey use it. 2012-05-10 19:00:36 +02:00
Felix Geyer
6eebd95de1 Move FileKey::isHex() to Tools. 2012-05-10 18:34:51 +02:00
Felix Geyer
ce0007acd2 Improve file dialog filter for adding custom icons. 2012-05-10 18:09:42 +02:00
Felix Geyer
5a08e4619c Add icon model tests. 2012-05-10 13:59:54 +02:00
Felix Geyer
8204f2007a Icon model fixes. 2012-05-10 13:59:36 +02:00
Florian Geyer
0d2ce4c038 Add icon selection for entries.
Refs #22.
2012-05-10 12:05:29 +02:00
Felix Geyer
65f2790170 Parse KeePass 1 database meta streams.
Refs #2
2012-05-10 11:44:25 +02:00
Felix Geyer
79b15e2ac6 Implement support for parsing groups and entries from KeePass 1 databases.
Still missing:
- Key files.
- Twofish encryption.

Refs #2
2012-05-09 23:16:32 +02:00
Felix Geyer
6234065898 Make sure TimeInfo only contains UTC values. 2012-05-09 23:16:32 +02:00
Andreas Piesk
7568582b05 compile with QT < 4.7 (RHEL6 an clones) 2012-05-09 22:15:28 +02:00
Florian Geyer
93a868a571 Don't show message box when creation of database is canceled. 2012-05-09 20:56:22 +02:00
Florian Geyer
f20d892573 Fix use of wrong slot when connecting the close request signal of the database widget. 2012-05-09 20:11:37 +02:00
Florian Geyer
07aa46c2d6 Activate corresponding tab when closing a database. 2012-05-09 20:11:27 +02:00
Florian Geyer
09248fdb14 Select newly created entries. 2012-05-09 20:03:13 +02:00
Felix Geyer
8122ab2b2c Use quint64 everywhere for the transform rounds number. 2012-05-08 22:31:09 +02:00
Felix Geyer
ebce183925 Start implementing support for reading KeePass 1 databases.
For now only decrypting the database works.

Still missing:
- Actually parsing the database.
- Key files.

Refs #1
2012-05-08 22:06:12 +02:00
Felix Geyer
38e421d9c1 Fix padding handling in SymmetricCipherStream.
The implementation had two issues:
- It didn't add a block full of padding when the input size was a multiple
  of the block size.
- It didn't strip the padding when reading data.
2012-05-08 21:46:01 +02:00
Felix Geyer
7790f2e7ba Add CompositeKey::transformKeyBenchmark().
This method tests how many key transformation rounds can be calculated
within a specific time.
2012-05-07 14:41:31 +02:00
Felix Geyer
d5fc1bf0b4 Improve performance of the key transformation. 2012-05-07 14:31:18 +02:00
Felix Geyer
7649c781dc Improve error handling in HashedBlockStream. 2012-05-06 20:19:20 +02:00
Felix Geyer
35cb4343e6 Set proper text for the toggle toolbar action. 2012-05-06 20:17:26 +02:00
Felix Geyer
f753728e97 Only use one additional thread in CompositeKey::transform(). 2012-05-03 12:21:42 +02:00
Felix Geyer
18c7fae463 Add icons used by KMessageWidget. 2012-05-03 00:15:31 +02:00
Felix Geyer
539ea5bd44 Add generic DataPath::icon() method. 2012-05-02 23:48:17 +02:00
1020 changed files with 369606 additions and 10005 deletions

88
.clang-format Normal file
View File

@@ -0,0 +1,88 @@
---
Language: Cpp
AccessModifierOffset: -4
AlignAfterOpenBracket: Align
AlignConsecutiveAssignments: false
AlignConsecutiveDeclarations: false
AlignEscapedNewlinesLeft: false
AlignOperands: true
AlignTrailingComments: false
AllowAllParametersOfDeclarationOnNextLine: false
AllowShortBlocksOnASingleLine: false
AllowShortCaseLabelsOnASingleLine: false
AllowShortFunctionsOnASingleLine: None
AllowShortIfStatementsOnASingleLine: false
AllowShortLoopsOnASingleLine: false
AlwaysBreakAfterDefinitionReturnType: None
AlwaysBreakAfterReturnType: None
AlwaysBreakBeforeMultilineStrings: false
AlwaysBreakTemplateDeclarations: false
BinPackArguments: false
BinPackParameters: false
BraceWrapping:
AfterClass: true
AfterFunction: true
AfterControlStatement: false
AfterEnum: true
AfterNamespace: true
AfterStruct: true
AfterUnion: true
BeforeCatch: false
BeforeElse: false
IndentBraces: false
BreakBeforeBinaryOperators: NonAssignment
BreakBeforeBraces: Custom
BreakBeforeTernaryOperators: true
BreakConstructorInitializersBeforeComma: true
ColumnLimit: 120
CommentPragmas: '^ IWYU pragma:'
ConstructorInitializerAllOnOneLineOrOnePerLine: false
ConstructorInitializerIndentWidth: 4
ContinuationIndentWidth: 4
Cpp11BracedListStyle: true
DerivePointerAlignment: false
DisableFormat: false
ExperimentalAutoDetectBinPacking: false
ForEachMacros: [ foreach, Q_FOREACH, BOOST_FOREACH ]
IncludeCategories:
- Regex: '^"(llvm|llvm-c|clang|clang-c)/'
Priority: 2
- Regex: '^(<|"(gtest|isl|json)/)'
Priority: 3
- Regex: '.*'
Priority: 1
IndentCaseLabels: false
IndentWidth: 4
IndentWrappedFunctionNames: false
KeepEmptyLinesAtTheStartOfBlocks: true
MacroBlockBegin: ''
MacroBlockEnd: ''
MaxEmptyLinesToKeep: 1
NamespaceIndentation: All
ObjCBlockIndentWidth: 4
ObjCSpaceAfterProperty: false
ObjCSpaceBeforeProtocolList: true
PenaltyBreakBeforeFirstCallParameter: 19
PenaltyBreakComment: 300
PenaltyBreakFirstLessLess: 120
PenaltyBreakString: 1000
PenaltyExcessCharacter: 1000000
PenaltyReturnTypeOnItsOwnLine: 60
PointerAlignment: Left
ReflowComments: true
SortIncludes: true
SpaceAfterCStyleCast: false
SpaceBeforeAssignmentOperators: true
SpaceBeforeParens: ControlStatements
SpaceInEmptyParentheses: false
SpacesBeforeTrailingComments: 1
SpacesInAngles: false
SpacesInContainerLiterals: true
SpacesInCStyleCastParentheses: false
SpacesInParentheses: false
SpacesInSquareBrackets: false
Standard: Cpp11
TabWidth: 4
UseTab: Never
...

13
.gitattributes vendored Normal file
View File

@@ -0,0 +1,13 @@
src/version.h.cmake export-subst
.gitattributes export-ignore
.gitignore export-ignore
.github export-ignore
.travis.yml export-ignore
.tx export-ignore
snapcraft.yaml export-ignore
make_release.sh export-ignore
AppImage-Recipe.sh export-ignore
# github-linguist language hints
*.h linguist-language=C++
*.cpp linguist-language=C++

226
.github/CONTRIBUTING.md vendored Normal file
View File

@@ -0,0 +1,226 @@
# Contributing to KeePassXC
:+1::tada: First off, thanks for taking the time to contribute! :tada::+1:
The following is a set of guidelines for contributing to KeePassXC on GitHub.
These are just guidelines, not rules. Use your best judgment, and feel free to propose changes to this document in a pull request.
#### Table of contents
[What should I know before I get started?](#what-should-i-know-before-i-get-started)
* [Open Source Contribution Policy](#open-source-contribution-policy)
[How can I contribute?](#how-can-i-contribute)
* [Feature requests](#feature-requests)
* [Bug reports](#bug-reports)
* [Discuss with the team](#discuss-with-the-team)
* [Your first code contribution](#your-first-code-contribution)
* [Pull requests](#pull-requests)
* [Translations](#translations)
[Styleguides](#styleguides)
* [Git branch strategy](#git-branch-strategy)
* [Git commit messages](#git-commit-messages)
* [Coding styleguide](#coding-styleguide)
## What should I know before I get started?
### Open Source Contribution Policy
**Source**: [Version 0.3, 20151118](https://medium.com/@jmaynard/a-contribution-policy-for-open-source-that-works-bfc4600c9d83#.i9ntbhmad)
#### Policy
We will accept contributions of good code that we can use from anyone.
#### What this means
- “We will accept”: This means that we will incorporate your contribution into the projects codebase, adapt it as needed, and give you full credit for your work.
- “contributions”: This means just about anything you wish to contribute to the project, as long as it is good code we can use. The easier you make it for us to accept your contribution, the happier we are, but if its good enough, we will do a reasonable amount of work to use it.
- “of good code”: This means that we will accept contributions that work well and efficiently, that fit in with the goals of the project, that match the projects coding style, and that do not impose an undue maintenance workload on us going forward. This does not mean just program code, either, but documentation and artistic works as appropriate to the project.
- “that we can use”: This means that your contribution must be given freely and irrevocably, that you must have the right to contribute it for our unrestricted use, and that your contribution is made under a license that is compatible with the license the project has chosen and that permits us to include, distribute, and modify your work without restriction.
- “from anyone”: This means exactly that. We dont care about anything but your code. We dont care about your race, religion, national origin, biological gender, perceived gender, sexual orientation, lifestyle, political viewpoint, or anything extraneous like that. We will neither reject your contribution nor grant it preferential treatment on any basis except the code itself. We do, however, reserve the right to tell you to go away if you behave too obnoxiously toward us.
#### If Your Contribution Is Rejected
If we reject your contribution, it means only that we do not consider it suitable for our project in the form it was submitted. It is not personal. If you ask civilly, we will be happy to discuss it with you and help you understand why it was rejected, and if possible improve it so we can accept it.
#### Revision History
* 0.1, 20111118: Initial draft.
* 0.2, 20111118: Added “If Your Contribution Is Rejected” section.
* 0.3, 20111119: Added “irrevocably” to “we can use” and changed “it” to “your contribution” in the “if rejected” section. Thanks to Patrick Maupin.
## How can I contribute?
### Feature requests
We're always looking for suggestions to improve our application. If you have a suggestion to improve an existing feature, or would like to suggest a completely new feature for KeePassXC, please use the [issue tracker on GitHub][issues-section].
### Bug reports
Our software isn't always perfect, but we strive to always improve our work. You may file bug reports in the issue tracker.
Before submitting a bug report, check if the problem has already been reported. Please refrain from opening a duplicate issue. If you want to add further information to an existing issue, simply add a comment on that issue.
### Discuss with the team
As with feature requests, you can talk to the KeePassXC team about bugs, new features, other issues and pull requests on the dedicated issue tracker, or in the IRC channel on Freenode (`#keepassxc-dev` on `irc.freenode.net`, or use a [webchat link](https://webchat.freenode.net/?channels=%23keepassxc-dev)).
### Your first code contribution
Unsure where to begin contributing to KeePassXC? You can start by looking through these `beginner` and `help-wanted` issues:
* [Beginner issues][beginner] issues which should only require a few lines of code, and a test or two.
* ['Help wanted' issues][help-wanted] issues which should be a bit more involved than `beginner` issues.
Both issue lists are sorted by total number of comments. While not perfect, looking at the number of comments on an issue can give a general idea of how much an impact a given change will have.
### Pull requests
Along with our desire to hear your feedback and suggestions, we're also interested in accepting direct assistance in the form of code.
All pull requests must comply with the above requirements and with the [styleguides](#styleguides).
### Translations
Translations are managed on [Transifex](https://www.transifex.com/keepassxc/keepassxc/) which offers a web interface.
Please join an existing language team or request a new one if there is none.
## Styleguides
### Git branch strategy
The Branch Strategy is based on [git-flow-lite](http://nvie.com/posts/a-successful-git-branching-model/).
* **master** points to the latest public release
* **develop** points to the development of the next release, contains tested and reviewed code
* **feature/**[name] points to a branch with a new feature, one which is candidate for merge into develop (subject to rebase)
* **hotfix/**[name] points to a branch with a fix for a particular issue ID
### Git commit messages
* Use the present tense ("Add feature" not "Added feature")
* Use the imperative mood ("Move cursor to…" not "Moves cursor to…")
* Limit the first line to 72 characters or less
* Reference issues and pull requests liberally
* If your pull request fixes an existing issue, add "Fixes #ISSUENUMBER" to your pull request description
### Coding styleguide
The coding style of the project is enforced using llvm's `clang-format` formatting tool. A thorough description
of the coding style can be found in the `.clang-format` file, but the main conventions are presented here.
Formatting can be performed automatically by calling `make format` from the `build/` directory.
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.
#### Naming convention
`lowerCamelCase`
For names made of only one word, the first letter should be lowercase.
For names made of multiple concatenated words, the first letter of the whole is lowercase, and the first letter of each subsequent word is capitalized.
#### Indention
For **C++ files** (*.cpp .h*): 4 spaces
For **Qt-UI files** (*.ui*): 2 spaces
#### Includes
```c
// Class includes
#include "MyWidget.h"
#include "ui_MyWidget.h"
// Application includes
#include "core/Config.h"
#include "core/FilePath.h"
// Global includes
#include <QWidget>
#include <stdin>
```
#### Classes
```c
// Note: order is important, stay organized!
class MyWidget : public QWidget
{
Q_OBJECT
public:
explicit MyWidget(QWidget* parent);
~MyWidget() override;
signals:
void alert();
public slots:
void processEvent(Event* event);
private slots:
void myEvent(Event* event);
private:
const QScopedPointer<Ui::MyWidget> m_ui;
int m_counter;
};
// Note: alignment of variable initialization
MyWidget::MyWidget(QWidget* parent)
: QWidget(parent)
, m_ui(new Ui::MyWidget())
{
}
```
#### Pointers / References
```c
int* count;
const QString& string;
```
#### Braces
```c
if (condition) {
doSomething();
} else {
doSomethingElse();
}
void ExampleClass::exampleFunction()
{
doSomething();
}
```
#### Switch statement
```c
// Note: avoid declaring variables in a switch statement
switch (a) {
case 1:
doSomething();
break;
// Note: use braces if necessary
default: {
doSomethingElse();
break;
}
}
```
#### Member variables
Use prefix: `m_*`
Example: `m_variable`
#### GUI widget names
Widget names must be related to the desired program behavior, and preferably end with the widget's classname.
Example: `<widget class="QCheckBox" name="rememberCheckBox">`
[beginner]:https://github.com/keepassxreboot/keepassx/issues?q=is%3Aopen+is%3Aissue+label%3Abeginner+label%3A%22help+wanted%22+sort%3Acomments-desc
[help-wanted]:https://github.com/keepassxreboot/keepassx/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22+sort%3Acomments-desc
[issues-section]:https://github.com/keepassxreboot/keepassxc/issues

49
.github/ISSUE_TEMPLATE/bug-report.md vendored Normal file
View File

@@ -0,0 +1,49 @@
---
name: Bug Report
about: provide information about a problem
title:
labels: bug
assignees: ''
---
[TIP]: # ( Provide a general summary of the issue in the title above ^^ )
[TIP]: # ( DO NOT include screenshots of your actual database! )
## Expected Behavior
[NOTE]: # ( Tell us what you expected to happen )
## Current Behavior
[NOTE]: # ( Tell us what actually happens )
## Possible Solution
[NOTE]: # ( Not required, but suggest a fix/reason for the bug )
## Steps to Reproduce
[NOTE]: # ( Provide a link to a live example, or an unambiguous set of steps to )
[NOTE]: # ( reproduce this bug. Include code to reproduce, if relevant )
1.
2.
3.
## Context
[NOTE]: # ( How has this issue affected you? What unique circumstances do you have? )
## Debug Info
[NOTE]: # ( Paste debug info from Help → About here )
KeePassXC - VERSION
Revision: REVISION
Libraries:
- LIBS
Operating system: OS
CPU architecture: ARCH
Kernel: KERNEL
Enabled extensions:
- EXTENSIONS

View File

@@ -0,0 +1,26 @@
---
name: Feature Request
about: tell us about a new capability you want to see
title:
labels: new feature
assignees: ''
---
[TIP]: # ( Provide a general summary of the feature in the title above ^^ )
[TIP]: # ( DO NOT include screenshots of your actual database! )
## Summary
[NOTE]: # ( Provide a brief overview of what the new feature is all about )
## Desired Behavior
[NOTE]: # ( Tell us how the new feature should work, be specific )
## Possible Solution
[NOTE]: # ( Not required, but suggest ideas on how to implement the addition or change )
## Context
[NOTE]: # ( Why does this feature matter to you? What unique circumstances do you have? )

View File

@@ -0,0 +1,49 @@
---
name: Release Preview Bug report
about: report a bug with a release preview (eg, 2.4.0-beta1)
title: "[PRE-RELEASE] "
labels: PRE-RELEASE BUG
assignees: droidmonkey
---
[TIP]: # ( Provide a general summary of the issue in the title above ^^ )
[TIP]: # ( DO NOT include screenshots of your actual database! )
## Expected Behavior
[NOTE]: # ( Tell us what you expected to happen )
## Current Behavior
[NOTE]: # ( Tell us what actually happens )
## Possible Solution
[NOTE]: # ( Not required, but suggest a fix/reason for the bug )
## Steps to Reproduce
[NOTE]: # ( Provide a link to a live example, or an unambiguous set of steps to )
[NOTE]: # ( reproduce this bug. Include code to reproduce, if relevant )
1.
2.
3.
## Context
[NOTE]: # ( How has this issue affected you? What unique circumstances do you have? )
## Debug Info
[NOTE]: # ( Paste debug info from Help → About here )
KeePassXC - VERSION
Revision: REVISION
Libraries:
- LIBS
Operating system: OS
CPU architecture: ARCH
Kernel: KERNEL
Enabled extensions:
- EXTENSIONS

36
.github/PULL_REQUEST_TEMPLATE.md vendored Normal file
View File

@@ -0,0 +1,36 @@
[TIP]: # ( Provide a general summary of your changes in the title above ^^ )
## Type of change
[NOTE]: # ( Please remove all lines which don't apply. )
- ✅ Bug fix (non-breaking change which fixes an issue)
- ✅ Refactor (significant modification to existing code)
- ✅ New feature (non-breaking change which adds functionality)
- ✅ Breaking change (fix or feature that would cause existing functionality to change)
- ✅ Documentation (non-code change)
## Description and Context
[NOTE]: # ( Describe your changes in detail, why is this change required? )
[NOTE]: # ( Describe the context of your change. Explain large code modifications. )
[NOTE]: # ( If it fixes an open issue, please add "Fixes #XXX" as necessary )
## Screenshots
[TIP]: # ( Do not include screenshots of your actual database! )
## Testing strategy
[NOTE]: # ( Please describe in detail how you tested your changes. )
[TIP]: # ( We expect new code to be covered by unit tests and documented with doc blocks! )
## Checklist:
[NOTE]: # ( Please go over all the following points. )
[NOTE]: # ( Again, remove any lines which don't apply. )
[NOTE]: # ( Pull Requests that don't fulfill all [REQUIRED] requisites are likely )
[NOTE]: # ( to be sent back to you for correction or will be rejected. )
- ✅ I have read the **CONTRIBUTING** document. **[REQUIRED]**
- ✅ My code follows the code style of this project. **[REQUIRED]**
- ✅ All new and existing tests passed. **[REQUIRED]**
- ✅ I have compiled and verified my code with `-DWITH_ASAN=ON`. **[REQUIRED]**
- ✅ My change requires a change to the documentation, and I have updated it accordingly.
- ✅ I have added tests to cover my changes.

22
.gitignore vendored
View File

@@ -1 +1,23 @@
CMakeLists.txt.*
build*/
cmake-build-*/
release*/
.idea/
*.iml
*.kdev4
\.vscode/
*.swp
.DS_Store
.version
desktop.ini
\.scannerwork/
/snap/.snapcraft/
/parts/
/stage/
/prime/
/*.snap
/*_source.tar.bz2

8
.tx/config Normal file
View File

@@ -0,0 +1,8 @@
[main]
host = https://www.transifex.com
[keepassxc.keepassxc]
source_file = share/translations/keepassx_en.ts
file_filter = share/translations/keepassx_<lang>.ts
source_lang = en
type = QT

416
CHANGELOG Normal file
View File

@@ -0,0 +1,416 @@
2.4.0 (2019-03-19)
=========================
- 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.3.4 (2018-08-21)
=========================
- Show all URL schemes in entry view [#1768]
- Disable merge when database is locked [#1975]
- Fix intermittent crashes with favorite icon downloads [#1980]
- Provide potential crash warning to Qt 5.5.x users [#2211]
- Disable apply button when creating new entry/group to prevent data loss [#2204]
- Allow for 12 hour timeout to lock idle database [#2173]
- Multiple SSH Agent fixes [#1981, #2117]
- Multiple Browser Integration enhancements [#1993, #2003, #2055, #2116, #2159, #2174, #2185]
- Fix browser proxy application not closing properly [#2142]
- Add real names and Patreon supporters to about dialog [#2214]
- Add settings button to toolbar, Donate button, and Report a Bug button to help menu [#2214]
- Enhancements to release-tool to appsign intermediate build products [#2101]
2.3.3 (2018-05-09)
=========================
- Fix crash when browser integration is enabled [#1923]
2.3.2 (2018-05-07)
=========================
- Enable high entropy ASLR on Windows [#1747]
- Enhance favicon fetching [#1786]
- Fix crash on Windows due to autotype [#1691]
- Fix dark tray icon changing all icons [#1680]
- Fix --pw-stdin not using getPassword function [#1686]
- Fix placeholders being resolved in notes [#1907]
- Enable auto-type start delay to be configurable [#1908]
- Browser: Fix native messaging reply size [#1719]
- Browser: Increase maximum buffer size [#1720]
- Browser: Enhance usability and functionality [#1810, #1822, #1830, #1884, #1906]
- SSH Agent: Parse aes-256-cbc/ctr keys [#1682]
- SSH Agent: Enhance usability and functionality [#1677, #1679, #1681, #1787]
2.3.1 (2018-03-06)
=========================
- Fix unnecessary automatic upgrade to KDBX 4.0 and prevent challenge-response key being stripped [#1568]
- Abort saving and show an error message when challenge-response fails [#1659]
- Support inner stream protection on all string attributes [#1646]
- Fix favicon downloads not finishing on some websites [#1657]
- Fix freeze due to invalid STDIN data [#1628]
- Correct issue with encrypted RSA SSH keys [#1587]
- Fix crash on macOS due to QTBUG-54832 [#1607]
- Show error message if ssh-agent communication fails [#1614]
- Fix --pw-stdin and filename parameters being ignored [#1608]
- Fix Auto-Type syntax check not allowing spaces and special characters [#1626]
- Fix reference placeholders in combination with Auto-Type [#1649]
- Fix qtbase translations not being loaded [#1611]
- Fix startup crash on Windows due to missing SVG libraries [#1662]
- Correct database tab order regression [#1610]
- Fix GCC 8 compilation error [#1612]
- Fix copying of advanced attributes on KDE [#1640]
- Fix member initialization of CategoryListWidgetDelegate [#1613]
- Fix inconsistent toolbar icon sizes and provide higher-quality icons [#1616]
- Improve preview panel geometry [#1609]
2.3.0 (2018-02-27)
=========================
- Add support for KDBX 4.0, Argon2 and ChaCha20 [#148, #1179, #1230, #1494]
- Add SSH Agent feature [#1098, #1450, #1463]
- Add preview panel with details of the selected entry [#879, #1338]
- Add more and configurable columns to entry table and allow copying of values by double click [#1305]
- Add KeePassXC-Browser API as a replacement for KeePassHTTP [#608]
- Deprecate KeePassHTTP [#1392]
- Add support for Steam one-time passwords [#1206]
- Add support for multiple Auto-Type sequences for a single entry [#1390]
- Adjust YubiKey HMAC-SHA1 challenge-response key generation for KDBX 4.0 [#1060]
- Replace qHttp with cURL for website icon downloads [#1460]
- Remove lock file [#1231]
- Add option to create backup file before saving [#1385]
- Ask to save a generated password before closing the entry password generator [#1499]
- Resolve placeholders recursively [#1078]
- Add Auto-Type button to the toolbar [#1056]
- Improve window focus handling for Auto-Type dialogs [#1204, #1490]
- Auto-Type dialog and password generator can now be exited with ESC [#1252, #1412]
- Add optional dark tray icon [#1154]
- Add new "Unsafe saving" option to work around saving problems with file sync services [#1385]
- Add IBus support to AppImage and additional image formats to Windows builds [#1534, #1537]
- Add diceware password generator to CLI [#1406]
- Add --key-file option to CLI [#816, #824]
- Add DBus interface for opening and closing KeePassXC databases [#283]
- Add KDBX compression options to database settings [#1419]
- Discourage use of old fixed-length key files in favor of arbitrary files [#1326, #1327]
- Correct reference resolution in entry fields [#1486]
- Fix window state and recent databases not being remembered on exit [#1453]
- Correct history item generation when configuring TOTP for an entry [#1446]
- Correct multiple TOTP bugs [#1414]
- Automatic saving after every change is now a default [#279]
- Allow creation of new entries during search [#1398]
- Correct menu issues on macOS [#1335]
- Allow compilation on OpenBSD [#1328]
- Improve entry attachments view [#1139, #1298]
- Fix auto lock for Gnome and Xfce [#910, #1249]
- Don't remember key files in file dialogs when the setting is disabled [#1188]
- Improve database merging and conflict resolution [#807, #1165]
- Fix macOS pasteboard issues [#1202]
- Improve startup times on some platforms [#1205]
- Hide the notes field by default [#1124]
- Toggle main window by clicking tray icon with the middle mouse button [#992]
- Fix custom icons not copied over when databases are merged [#1008]
- Allow use of DEL key to delete entries [#914]
- Correct intermittent crash due to stale history items [#1527]
- Sanitize newline characters in title, username and URL fields [#1502]
- Reopen previously opened databases in correct order [#774]
- Use system's zxcvbn library if available [#701]
- Implement various i18n improvements [#690, #875, #1436]
2.2.4 (2017-12-13)
=========================
- Prevent database corruption when locked [#1219]
- Fixes apply button not saving new entries [#1141]
- Switch to Consolas font on Windows for password edit [#1229]
- Multiple fixes to AppImage deployment [#1115, #1228]
- Fixes multiple memory leaks [#1213]
- Resize message close to 16x16 pixels [#1253]
2.2.2 (2017-10-22)
=========================
- Fixed entries with empty URLs being reported to KeePassHTTP clients [#1031]
- Fixed YubiKey detection and enabled CLI tool for AppImage binary [#1100]
- Added AppStream description [#1082]
- Improved TOTP compatibility and added new Base32 implementation [#1069]
- Fixed error handling when processing invalid cipher stream [#1099]
- Fixed double warning display when opening a database [#1037]
- Fixed unlocking databases with --pw-stdin [#1087]
- Added ability to override QT_PLUGIN_PATH environment variable for AppImages [#1079]
- Fixed transform seed not being regenerated when saving the database [#1068]
- Fixed only one YubiKey slot being polled [#1048]
- Corrected an issue with entry icons while merging [#1008]
- Corrected desktop and tray icons in Snap package [#1030]
- Fixed screen lock and Google fallback settings [#1029]
2.2.1 (2017-10-01)
=========================
- Corrected multiple snap issues [#934, #1011]
- Corrected multiple custom icon issues [#708, #719, #994]
- Corrected multiple Yubikey issues [#880]
- Fixed single instance preventing load on occasion [#997]
- Keep entry history when merging databases [#970]
- Prevent data loss if passwords were mismatched [#1007]
- Fixed crash after merge [#941]
- Added configurable auto-type default delay [#703]
- Unlock database dialog window comes to front [#663]
- Translation and compiling fixes
2.2.0 (2017-06-23)
=========================
- Added YubiKey 2FA integration for unlocking databases [#127]
- Added TOTP support [#519]
- Added CSV import tool [#146, #490]
- Added KeePassXC CLI tool [#254]
- Added diceware password generator [#373]
- Added support for entry references [#370, #378]
- Added support for Twofish encryption [#167]
- Enabled DEP and ASLR for in-memory protection [#371]
- Enabled single instance mode [#510]
- Enabled portable mode [#645]
- Enabled database lock on screensaver and session lock [#545]
- Redesigned welcome screen with common features and recent databases [#292]
- Multiple updates to search behavior [#168, #213, #374, #471, #603, #654]
- Added auto-type fields {CLEARFIELD}, {SPACE}, {{}, {}} [#267, #427, #480]
- Fixed auto-type errors on Linux [#550]
- Prompt user prior to executing a cmd:// URL [#235]
- Entry attributes can be protected (hidden) [#220]
- Added extended ascii to password generator [#538]
- Added new database icon to toolbar [#289]
- Added context menu entry to empty recycle bin in databases [#520]
- Added "apply" button to entry and group edit windows [#624]
- Added macOS tray icon and enabled minimize on close [#583]
- Fixed issues with unclean shutdowns [#170, #580]
- Changed keyboard shortcut to create new database to CTRL+SHIFT+N [#515]
- Compare window title to entry URLs [#556]
- Implemented inline error messages [#162]
- Ignore group expansion and other minor changes when making database "dirty" [#464]
- Updated license and copyright information on souce files [#632]
- Added contributors list to about dialog [#629]
2.1.4 (2017-04-09)
=========================
- Bumped KeePassHTTP version to 1.8.4.2
- KeePassHTTP confirmation window comes to foreground [#466]
2.1.3 (2017-03-03)
=========================
- Fix possible overflow in zxcvbn library [#363]
- Revert HiDPI setting to avoid problems on laptop screens [#332]
- Set file meta properties in Windows executable [#330]
- Suppress error message when auto-reloading a locked database [#345]
- Improve usability of question dialog when database is already locked by a different instance [#346]
- Fix compiler warnings in QHttp library [#351]
- Use unified toolbar on Mac OS X [#361]
- Fix an issue on X11 where the main window would be raised instead of closed on Alt+F4 [#362]
2.1.2 (2017-02-17)
=========================
- Ask for save location when creating a new database [#302]
- Remove Libmicrohttpd dependency to clean up the code and ensure better OS X compatibility [#317, #265]
- Prevent Qt from degrading Wifi network performance on certain platforms [#318]
- Visually refine user interface on OS X and other platforms [#299]
- Remove unusable tray icon setting on OS X [#293]
- Fix compositing glitches on Ubuntu and prevent flashing when minimizing to the tray at startup [#307]
- Fix AppImage tray icon on Ubuntu [#277, #273]
- Fix global menu disappearing after restoring KeePassXC from the tray on Ubuntu [#276]
- Fix result order in entry search [#320]
- Enable HiDPI scaling on supported platforms [#315]
- Remove empty directories from installation target [#282]
2.1.1 (2017-02-06)
=========================
- Enabled HTTP plugin build; plugin is disabled by default and limited to localhost [#147]
- Escape HTML in dialog boxes [#247]
- Corrected crashes in favicon download and password generator [#233, #226]
- Increase font size of password meter [#228]
- Fixed compatibility with Qt 5.8 [#211]
- Use consistent button heights in password generator [#229]
2.1.0 (2017-01-22)
=========================
- Show unlock dialog when using autotype on a closed database [#10, #89]
- Show different tray icon when database is locked [#37, #46]
- Support autotype on Windows and OS X [#42, #60, #63]
- Add delay feature to autotype [#76, #77]
- Add password strength meter [#84, #92]
- Add option for automatically locking the database when minimizing
the window [#57]
- Add feature to download favicons and use them as entry icons [#30]
- Automatically reload and merge database when the file changed on
disk [#22, #33, #93]
- Add tool for merging two databases [#22, #47, #143]
- Add --pw-stdin commandline option to unlock the database by providing
a password on STDIN [#54]
- Add utility script for reading the database password from KWallet [#55]
- Fix some KeePassHTTP settings not being remembered [#34, #65]
- Make search box persistent [#15, #67, #157]
- Enhance search feature by scoping the search to selected group [#16, #118]
- Improve interaction between search field and entry list [#131, #141]
- Add stand-alone password-generator [#18, #92]
- Don't require password repetition when password is visible [#27, #92]
- Add support for entry attributes in autotype sequences [#107]
- Always focus password field when opening the database unlock widget [#116, #117]
- Fix compilation errors on various platforms [#53, #126, #130]
- Restructure and improve kdbx-extract utility [#160]
2.0.3 (2016-09-04)
=========================
- Improved error reporting when reading / writing databases fails. [#450, #462]
- Display an error message when opening a custom icon fails.
- Detect custom icon format based on contents instead of the filename. [#512]
- Keep symlink intact when saving databases. [#442].
- Fix a crash when deleting parent group of recycle bin. [#520]
- Display a confirm dialog before moving an entry to the recycle bin. [#447]
- Repair UUIDs of inconsistent history items. [#130]
- Only include top-level windows in auto-type window list when using gnome-shell.
- Update translations.
2.0.2 (2016-02-02)
=========================
- Fix regression in database writer that caused it to strip certain special
characters (characters from Unicode plane > 0).
- Fix bug in repair function that caused it to strip non-ASCII characters.
2.0.1 (2016-01-31)
=========================
- Flush temporary file before opening attachment. [#390]
- Disable password generator when showing entry in history mode. [#422]
- Strip invalid XML chars when writing databases. [#392]
- Add repair function to fix databases with invalid XML chars. [#392]
- Display custom icons scaled. [#322]
- Allow opening databases that have no password and keyfile. [#391]
- Fix crash when importing .kdb files with invalid icon ids. [#425]
- Update translations.
2.0 (2015-12-06)
=========================
- Improve UI of the search edit.
- Clear clipboard when locking databases. [#342]
- Enable Ctrl+M shortcut to minimize the window on all platforms. [#329]
- Show a better message when trying to open an old database format. [#338]
- Fix global auto-type behavior with some window managers.
- Show global auto-type window on the active desktop. [#359]
- Disable systray on OS X. [#326]
- Restore main window when clicking on the OS X docker icon. [#326]
2.0 Beta 2 (2015-09-06)
=========================
- Fix crash when locking with search UI open [#309]
- Fix file locking on Mac OS X [#327]
- Set default extension when saving a database [#79, #308]
2.0 Beta 1 (2015-07-18)
=========================
- Remember entry column sizes [#159]
- Add translations
- Support opening attachments directly
- Support cmd:// URLs [#244]
- Protect opened databases with a file lock [#18]
- Export to csv files [#57]
- Add optional tray icon [#153]
- Allow setting the default auto-type sequence for groups [#175]
- Make the kdbx parser more lenient
- Remove --password command line option [#285]
2.0 Alpha 6 (2014-04-12)
=========================
- Add option to lock databases after user inactivity [#62]
- Add compatibility with libgcrypt 1.6 [#129]
- Display passwords in monospace font [#51]
- Use an icon for the button that shows/masks passwords [#38]
- Add an option to show passwords by default [#93]
- Improve password generator design [#122]
- On Linux link .kdbx files with KeePassX
- Remember window size [#154]
- Disallow global auto-typing when the database is locked
2.0 Alpha 5 (2013-12-20)
=========================
- Support copying entries and groups using drag'n'drop [#74]
- Open last used databases on startup [#36]
- Made the kdbx file parser more robust
- Only edit entries on doubleclick (not single) or with enter key
- Allow removing multiple entries
- Added option to minimize window when copying data to clipboard
- Save password generator settings
- Fixed auto-type producing wrong chars in some keyboard configurations [#116]
- Added some more actions to the toolbar
2.0 Alpha 4 (2013-03-29)
=========================
- Add random password generator [#52]
- Merge the 'Description' tab into the 'Entry' tab [#59]
- Fix crash when deleting history items [#56]
- Fix crash on Mac OS X Mountain Lion during startup [#50]
- Improved KeePassX application icon [#58]
2.0 Alpha 3 (2012-10-27)
=========================
- Auto-Type on Linux / X11
- Database locking
- Fix database corruption when changing key transformation rounds [#34]
- Verify header data of kdbx files
- Add menu entry to open URLs in the browser
- Add menu entry to copy an entry attribute to clipboard
2.0 Alpha 2 (2012-07-02)
=========================
- Import kdb (KeePass 1) files [#2]
- Display history items [#23]
- Implement history item limits [#16]
- Group and entry icons can be set [#22]
- Add keyboard shortcuts
- Search in databases [#24]
- Sortable entry view
- Support building Mac OS X bundles
2.0 Alpha 1 (2012-05-07)
=========================
- First release.

View File

@@ -1,3 +1,4 @@
# Copyright (C) 2018 KeePassXC Team <team@keepassxc.org>
# Copyright (C) 2010 Felix Geyer <debfx@fobos.de>
#
# This program is free software: you can redistribute it and/or modify
@@ -13,150 +14,425 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
project(KeePassX)
cmake_minimum_required(VERSION 3.1.0)
cmake_minimum_required(VERSION 2.8.0)
project(KeePassXC)
set( CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake )
if(NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE "RelWithDebInfo" CACHE STRING
"Choose the type of build, options are: None Debug Release RelWithDebInfo Debug DebugFull Profile MinSizeRel."
FORCE)
endif()
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
# Support Visual Studio Code
include(CMakeToolsHelpers OPTIONAL)
include(CheckCCompilerFlag)
include(CheckCXXCompilerFlag)
include(CheckCXXSourceCompiles)
option(WITH_TESTS "Enable building of unit tests" ON)
option(WITH_GUI_TESTS "Enable building of GUI tests" OFF)
option(WITH_LTO "Enable Link Time Optimization (LTO)" OFF)
option(WITH_PIE "Build as Position-independent executable (PIE)" OFF)
option(WITH_DEV_BUILD "Use only for development. Disables/warns about deprecated methods." OFF)
option(WITH_ASAN "Enable address sanitizer checks (Linux / macOS only)" OFF)
option(WITH_COVERAGE "Use to build with coverage tests (GCC only)." OFF)
option(WITH_APP_BUNDLE "Enable Application Bundle for macOS" ON)
set( KEEPASSX_VERSION "2.0 alpha 1" )
set(WITH_XC_ALL OFF CACHE BOOLEAN "Build in all available plugins")
option(WITH_XC_AUTOTYPE "Include Auto-Type." ON)
option(WITH_XC_NETWORKING "Include networking code (e.g. for downlading website icons)." OFF)
option(WITH_XC_BROWSER "Include browser integration with keepassxc-browser." OFF)
option(WITH_XC_YUBIKEY "Include YubiKey support." OFF)
option(WITH_XC_SSHAGENT "Include SSH agent support." OFF)
option(WITH_XC_KEESHARE "Sharing integration with KeeShare" OFF)
option(WITH_XC_KEESHARE_SECURE "Sharing integration with secured KeeShare containers" OFF)
if(APPLE)
option(WITH_XC_TOUCHID "Include TouchID support for macOS." OFF)
endif()
if(WITH_XC_ALL)
# Enable all options
set(WITH_XC_AUTOTYPE ON)
set(WITH_XC_NETWORKING ON)
set(WITH_XC_BROWSER ON)
set(WITH_XC_YUBIKEY ON)
set(WITH_XC_SSHAGENT ON)
set(WITH_XC_KEESHARE ON)
if(APPLE)
set(WITH_XC_TOUCHID ON)
endif()
endif()
if(WITH_XC_KEESHARE_SECURE)
set(WITH_XC_KEESHARE ON)
endif()
if(WITH_XC_SSHAGENT OR WITH_XC_KEESHARE)
set(WITH_XC_CRYPTO_SSH ON)
else()
set(WITH_XC_CRYPTO_SSH OFF)
endif()
set(KEEPASSXC_VERSION_MAJOR "2")
set(KEEPASSXC_VERSION_MINOR "4")
set(KEEPASSXC_VERSION_PATCH "0")
set(KEEPASSXC_VERSION "${KEEPASSXC_VERSION_MAJOR}.${KEEPASSXC_VERSION_MINOR}.${KEEPASSXC_VERSION_PATCH}")
set(KEEPASSXC_BUILD_TYPE "Snapshot" CACHE STRING "Set KeePassXC build type to distinguish between stable releases and snapshots")
set_property(CACHE KEEPASSXC_BUILD_TYPE PROPERTY STRINGS Snapshot Release PreRelease)
# Retrieve git HEAD revision hash
set(GIT_HEAD_OVERRIDE "" CACHE STRING "Manually set the Git HEAD hash when missing (eg, when no .git folder exists)")
execute_process(COMMAND git rev-parse --short=7 HEAD
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
OUTPUT_VARIABLE GIT_HEAD
ERROR_QUIET)
string(STRIP "${GIT_HEAD}" GIT_HEAD)
if(GIT_HEAD STREQUAL "")
string(SUBSTRING "${GIT_HEAD_OVERRIDE}" 0 7 GIT_HEAD)
endif()
message(STATUS "Found Git HEAD Revision: ${GIT_HEAD}\n")
# Check if on a tag, if so build as a release
execute_process(COMMAND git tag --points-at HEAD
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
OUTPUT_VARIABLE GIT_TAG
ERROR_QUIET)
if(GIT_TAG)
string(STRIP "${GIT_TAG}" GIT_TAG)
set(OVERRIDE_VERSION ${GIT_TAG})
elseif(EXISTS ${CMAKE_SOURCE_DIR}/.version)
file(READ ${CMAKE_SOURCE_DIR}/.version OVERRIDE_VERSION)
endif()
string(REGEX REPLACE "(\r?\n)+" "" OVERRIDE_VERSION "${OVERRIDE_VERSION}")
if(OVERRIDE_VERSION)
if(OVERRIDE_VERSION MATCHES "^[\\.0-9]+-(alpha|beta)[0-9]+$")
set(KEEPASSXC_BUILD_TYPE PreRelease)
set(KEEPASSXC_VERSION ${OVERRIDE_VERSION})
elseif(OVERRIDE_VERSION MATCHES "^[\\.0-9]+$")
set(KEEPASSXC_BUILD_TYPE Release)
set(KEEPASSXC_VERSION ${OVERRIDE_VERSION})
endif()
endif()
if(KEEPASSXC_BUILD_TYPE STREQUAL "PreRelease" AND NOT OVERRIDE_VERSION)
set(KEEPASSXC_VERSION "${KEEPASSXC_VERSION}-preview")
elseif(KEEPASSXC_BUILD_TYPE STREQUAL "Snapshot")
set(KEEPASSXC_VERSION "${KEEPASSXC_VERSION}-snapshot")
endif()
if(KEEPASSXC_BUILD_TYPE STREQUAL "Release")
set(KEEPASSXC_BUILD_TYPE_RELEASE ON)
elseif(KEEPASSXC_BUILD_TYPE STREQUAL "PreRelease")
set(KEEPASSXC_BUILD_TYPE_PRE_RELEASE ON)
else()
set(KEEPASSXC_BUILD_TYPE_SNAPSHOT ON)
endif()
message(STATUS "Setting up build for KeePassXC v${KEEPASSXC_VERSION}\n")
# Distribution info
set(KEEPASSXC_DIST ON)
set(KEEPASSXC_DIST_TYPE "Other" CACHE STRING "KeePassXC Distribution Type")
set_property(CACHE KEEPASSXC_DIST_TYPE PROPERTY STRINGS Snap AppImage Other)
if(KEEPASSXC_DIST_TYPE STREQUAL "Snap")
set(KEEPASSXC_DIST_SNAP ON)
elseif(KEEPASSXC_DIST_TYPE STREQUAL "AppImage")
set(KEEPASSXC_DIST_APPIMAGE ON)
elseif(KEEPASSXC_DIST_TYPE STREQUAL "Other")
unset(KEEPASSXC_DIST)
endif()
if("${CMAKE_SIZEOF_VOID_P}" EQUAL "4")
set(IS_32BIT TRUE)
endif()
if("${CMAKE_C_COMPILER}" MATCHES "clang$" OR "${CMAKE_C_COMPILER_ID}" STREQUAL "Clang")
set(CMAKE_COMPILER_IS_CLANG 1)
endif("${CMAKE_C_COMPILER}" MATCHES "clang$" OR "${CMAKE_C_COMPILER_ID}" STREQUAL "Clang")
set(CMAKE_COMPILER_IS_CLANG 1)
endif()
if("${CMAKE_CXX_COMPILER}" MATCHES "clang(\\+\\+)?$" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
set(CMAKE_COMPILER_IS_CLANGXX 1)
endif("${CMAKE_CXX_COMPILER}" MATCHES "clang(\\+\\+)?$" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
set(CMAKE_COMPILER_IS_CLANGXX 1)
endif()
macro(add_gcc_compiler_cxxflags FLAGS)
if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_COMPILER_IS_CLANGXX)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${FLAGS}")
endif(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_COMPILER_IS_CLANGXX)
if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_COMPILER_IS_CLANGXX)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${FLAGS}")
endif()
endmacro(add_gcc_compiler_cxxflags)
macro(add_gcc_compiler_cflags FLAGS)
if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_CLANG)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${FLAGS}")
endif(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_CLANG)
if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_CLANG)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${FLAGS}")
endif()
endmacro(add_gcc_compiler_cflags)
macro(add_gcc_compiler_flags FLAGS)
add_gcc_compiler_cxxflags("${FLAGS}")
add_gcc_compiler_cflags("${FLAGS}")
add_gcc_compiler_cxxflags("${FLAGS}")
add_gcc_compiler_cflags("${FLAGS}")
endmacro(add_gcc_compiler_flags)
add_definitions(-DQT_NO_KEYWORDS -DQT_NO_EXCEPTIONS -DQT_NO_STL -DQT_STRICT_ITERATORS -DQT_NO_CAST_TO_ASCII)
add_definitions(-DQT_NO_EXCEPTIONS -DQT_STRICT_ITERATORS -DQT_NO_CAST_TO_ASCII)
add_gcc_compiler_flags("-ansi -fno-common -fstack-protector -D_FORTIFY_SOURCE=2")
if(WITH_APP_BUNDLE)
add_definitions(-DWITH_APP_BUNDLE)
endif()
add_gcc_compiler_flags("-fno-common")
add_gcc_compiler_flags("-Wall -Wextra -Wundef -Wpointer-arith -Wno-long-long")
add_gcc_compiler_flags("-Wformat=2 -Werror=format-security -Wmissing-format-attribute")
add_gcc_compiler_flags("-Wformat=2 -Wmissing-format-attribute")
add_gcc_compiler_flags("-fvisibility=hidden")
add_gcc_compiler_cxxflags("-fvisibility-inlines-hidden")
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
add_gcc_compiler_flags("-Werror")
endif()
if((CMAKE_COMPILER_IS_GNUCXX AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 4.8.999) OR CMAKE_COMPILER_IS_CLANGXX)
add_gcc_compiler_flags("-fstack-protector-strong")
else()
add_gcc_compiler_flags("-fstack-protector --param=ssp-buffer-size=4")
endif()
add_gcc_compiler_cxxflags("-fno-exceptions -fno-rtti")
add_gcc_compiler_cxxflags("-Wnon-virtual-dtor -Wold-style-cast -Woverloaded-virtual")
add_gcc_compiler_cflags("-Wchar-subscripts -Wwrite-strings -Werror=implicit-function-declaration")
add_gcc_compiler_cflags("-Wchar-subscripts -Wwrite-strings")
if(CMAKE_COMPILER_IS_CLANGXX)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mllvm -stack-protector-buffer-size=4")
elseif(CMAKE_COMPILER_IS_GNUCXX)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wcast-align --param=ssp-buffer-size=4")
endif(CMAKE_COMPILER_IS_CLANGXX)
if(WITH_ASAN)
if(NOT (CMAKE_SYSTEM_NAME STREQUAL "Linux" OR APPLE))
message(FATAL_ERROR "WITH_ASAN is only supported on Linux / macOS at the moment.")
endif()
if(CMAKE_COMPILER_IS_CLANG)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mllvm -stack-protector-buffer-size=4")
elseif(CMAKE_COMPILER_IS_GNUCC)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wcast-align --param=ssp-buffer-size=4")
endif(CMAKE_COMPILER_IS_CLANG)
add_gcc_compiler_flags("-fsanitize=address -DWITH_ASAN")
if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
if(NOT (CMAKE_COMPILER_IS_GNUCXX AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.9))
add_gcc_compiler_flags("-fsanitize=leak -DWITH_LSAN")
endif()
endif()
endif()
string(TOLOWER "${CMAKE_BUILD_TYPE}" CMAKE_BUILD_TYPE_LOWER)
if(CMAKE_BUILD_TYPE_LOWER MATCHES "(release|relwithdebinfo|minsizerel)")
add_gcc_compiler_flags("-U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2")
endif()
check_c_compiler_flag("-Werror=format-security -Werror=implicit-function-declaration" WERROR_C_AVAILABLE)
check_cxx_compiler_flag("-Werror=format-security" WERROR_CXX_AVAILABLE)
if(WERROR_C_AVAILABLE AND WERROR_CXX_AVAILABLE)
add_gcc_compiler_flags("-Werror=format-security")
add_gcc_compiler_cflags("-Werror=implicit-function-declaration")
endif()
if(CMAKE_COMPILER_IS_GNUCXX)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wcast-align")
endif()
if(CMAKE_COMPILER_IS_GNUCC)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wcast-align")
endif()
if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--no-add-needed -Wl,--as-needed -Wl,--no-undefined")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-z,relro")
endif(CMAKE_SYSTEM_NAME STREQUAL "Linux")
if(CMAKE_COMPILER_IS_CLANGXX)
add_gcc_compiler_flags("-Qunused-arguments")
endif()
add_gcc_compiler_flags("-pie -fPIE")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--no-add-needed -Wl,--as-needed -Wl,--no-undefined")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-z,relro,-z,now")
set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -Wl,--no-add-needed -Wl,--as-needed")
set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -Wl,-z,relro,-z,now")
endif()
if(WITH_LTO)
include(CheckCXXCompilerFlag)
add_gcc_compiler_cflags("-std=c99")
add_gcc_compiler_cxxflags("-std=c++11")
if(CMAKE_COMPILER_IS_GNUCC and CMAKE_COMPILER_IS_GNUCXX)
check_cxx_compiler_flag("-flto -fuse-linker-plugin" LTO_AVAILABLE)
if(APPLE)
add_gcc_compiler_cxxflags("-stdlib=libc++")
endif()
if(LTO_AVAILABLE)
add_gcc_compiler_flags("-flto -fuse-linker-plugin")
else()
message(FATAL_ERROR "This version of gcc doesn't support LTO")
endif(LTO_AVAILABLE)
else()
message(FATAL_ERROR "LTO is only supported with gcc")
endif(CMAKE_COMPILER_IS_GNUCC and CMAKE_COMPILER_IS_GNUCXX)
endif(WITH_LTO)
if(WITH_PIE)
if((CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_CLANG) AND (CMAKE_COMPILER_IS_GNUCXX OR CMAKE_COMPILER_IS_CLANGXX))
add_gcc_compiler_flags("-fPIE")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fPIE -pie")
else()
message(FATAL_ERROR "PIE is only supported with gcc and clang")
endif((CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_CLANG) AND (CMAKE_COMPILER_IS_GNUCXX OR CMAKE_COMPILER_IS_CLANGXX))
endif(WITH_PIE)
if( APPLE OR MINGW )
set( PROGNAME KeePassX )
else( APPLE OR MINGW )
set( PROGNAME keepassx )
endif( APPLE OR MINGW )
if(WITH_DEV_BUILD)
add_definitions(-DQT_DEPRECATED_WARNINGS -DGCRYPT_NO_DEPRECATED)
endif()
if(MINGW)
set(BIN_INSTALL_DIR "")
set(CMAKE_RC_COMPILER_INIT windres)
enable_language(RC)
set(CMAKE_RC_COMPILE_OBJECT "<CMAKE_RC_COMPILER> <FLAGS> -O coff <DEFINES> -i <SOURCE> -o <OBJECT>")
if(NOT (CMAKE_BUILD_TYPE STREQUAL "Debug" OR CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo"))
# Enable DEP and ASLR
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--nxcompat -Wl,--dynamicbase")
set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -Wl,--nxcompat -Wl,--dynamicbase")
# Enable high entropy ASLR for 64-bit builds
if(NOT IS_32BIT)
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--high-entropy-va")
set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -Wl,--high-entropy-va")
endif()
endif()
endif()
if(APPLE AND WITH_APP_BUNDLE OR MINGW)
set(PROGNAME KeePassXC)
else()
set(PROGNAME keepassxc)
endif()
if(MINGW)
set(CLI_INSTALL_DIR ".")
set(PROXY_INSTALL_DIR ".")
set(BIN_INSTALL_DIR ".")
set(PLUGIN_INSTALL_DIR ".")
set(DATA_INSTALL_DIR "share")
elseif(APPLE)
set(BIN_INSTALL_DIR "")
set(DATA_INSTALL_DIR "Contents/Resources")
else(MINGW)
set(BIN_INSTALL_DIR "bin")
set(DATA_INSTALL_DIR "share/keepassx")
endif( MINGW )
elseif(APPLE AND WITH_APP_BUNDLE)
set(CMAKE_INSTALL_MANDIR "${PROGNAME}.app/Contents/Resources/man")
set(CLI_INSTALL_DIR "${PROGNAME}.app/Contents/MacOS")
set(PROXY_INSTALL_DIR "${PROGNAME}.app/Contents/MacOS")
set(BIN_INSTALL_DIR "${PROGNAME}.app/Contents/MacOS")
set(PLUGIN_INSTALL_DIR "${PROGNAME}.app/Contents/PlugIns")
set(DATA_INSTALL_DIR "${PROGNAME}.app/Contents/Resources")
else()
include(GNUInstallDirs)
if( WITH_TESTS )
set(CLI_INSTALL_DIR "${CMAKE_INSTALL_BINDIR}")
set(PROXY_INSTALL_DIR "${CMAKE_INSTALL_BINDIR}")
set(BIN_INSTALL_DIR "${CMAKE_INSTALL_BINDIR}")
set(PLUGIN_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR}/keepassxc")
set(DATA_INSTALL_DIR "${CMAKE_INSTALL_DATADIR}/keepassxc")
endif()
if(WITH_TESTS)
enable_testing()
endif( WITH_TESTS )
endif(WITH_TESTS)
find_package(Qt4 4.6.0 REQUIRED QtCore QtGui QtTest)
add_definitions(${QT_DEFINITIONS} -DQT_CORE_LIB -DQT_GUI_LIB)
set_property(DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS_DEBUG QT_DEBUG)
set_property(DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS_RELEASE QT_NO_DEBUG)
set_property(DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS_RELWITHDEBINFO QT_NO_DEBUG)
set_property(DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS_MINSIZEREL QT_NO_DEBUG)
IF(NOT CMAKE_CONFIGURATION_TYPES AND NOT CMAKE_BUILD_TYPE)
set_property(DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS QT_NO_DEBUG)
ENDIF()
if(WITH_COVERAGE)
# Include code coverage, use with -DCMAKE_BUILD_TYPE=Debug
include(CodeCoverage)
set(COVERAGE_GCOVR_EXCLUDES
"\\(.+/\\)?tests/.\\*"
".\\*/moc_\\[^/\\]+\\.cpp"
".\\*/ui_\\[^/\\]+\\.h"
"\\(.+/\\)?zxcvbn/.\\*")
append_coverage_compiler_flags()
setup_target_for_coverage_gcovr_html(
NAME coverage
EXECUTABLE $(MAKE) && $(MAKE) test
)
endif()
find_package(Gcrypt REQUIRED)
include(CLangFormat)
set(QT_COMPONENTS Core Network Concurrent Gui Svg Widgets Test LinguistTools)
if(UNIX AND NOT APPLE)
find_package(Qt5 COMPONENTS ${QT_COMPONENTS} DBus REQUIRED)
elseif(APPLE)
find_package(Qt5 COMPONENTS ${QT_COMPONENTS} REQUIRED HINTS /usr/local/opt/qt/lib/cmake /usr/local/Cellar/qt/*/lib/cmake ENV PATH)
find_package(Qt5 COMPONENTS MacExtras HINTS /usr/local/opt/qt/lib/cmake /usr/local/Cellar/qt/*/lib/cmake ENV PATH)
else()
find_package(Qt5 COMPONENTS ${QT_COMPONENTS} REQUIRED)
endif()
if(Qt5Core_VERSION VERSION_LESS "5.2.0")
message(FATAL_ERROR "Qt version 5.2.0 or higher is required")
endif()
get_filename_component(Qt5_PREFIX ${Qt5_DIR}/../../.. REALPATH)
# Process moc automatically
set(CMAKE_AUTOMOC ON)
# Process .ui files automatically
set(CMAKE_AUTOUIC ON)
# Process .qrc files automatically
set(CMAKE_AUTORCC ON)
if(APPLE)
set(CMAKE_MACOSX_RPATH TRUE)
find_program(MACDEPLOYQT_EXE macdeployqt HINTS ${Qt5_PREFIX}/bin ENV PATH)
if(NOT MACDEPLOYQT_EXE)
message(FATAL_ERROR "macdeployqt is required to build in macOS")
else()
message(STATUS "Using macdeployqt: ${MACDEPLOYQT_EXE}")
endif()
endif()
# Debian sets the the build type to None for package builds.
# Make sure we don't enable asserts there.
set_property(DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS_NONE QT_NO_DEBUG)
find_package(LibGPGError REQUIRED)
find_package(Gcrypt 1.7.0 REQUIRED)
find_package(Argon2 REQUIRED)
find_package(ZLIB REQUIRED)
find_package(QREncode REQUIRED)
include(CheckCXXSourceCompiles)
check_cxx_source_compiles("
#include <zlib.h>
set(CMAKE_REQUIRED_INCLUDES ${ZLIB_INCLUDE_DIR})
#if !defined(ZLIB_VERNUM) || (ZLIB_VERNUM < 0x1200)
#error zlib 1.2.x or higher is required to use the gzip format
#endif
if(ZLIB_VERSION_STRING VERSION_LESS "1.2.0")
message(FATAL_ERROR "zlib 1.2.0 or higher is required to use the gzip format")
endif()
int main() { return 0; }" ZLIB_SUPPORTS_GZIP)
include_directories(SYSTEM ${ARGON2_INCLUDE_DIR})
if(NOT ZLIB_SUPPORTS_GZIP)
message(FATAL_ERROR "zlib 1.2.x or higher is required to use the gzip format")
endif(NOT ZLIB_SUPPORTS_GZIP)
# Optional
if(WITH_XC_KEESHARE)
set(WITH_XC_KEESHARE_INSECURE ON)
if(WITH_XC_KEESHARE_SECURE)
# ZLIB is needed and already required
find_package(QuaZip REQUIRED)
include_directories(SYSTEM ${QUAZIP_INCLUDE_DIR})
endif()
else()
set(WITH_XC_KEESHARE_INSECURE OFF)
set(WITH_XC_KEESHARE_SECURE OFF)
endif()
include_directories(SYSTEM ${QT_INCLUDE_DIR} ${GCRYPT_INCLUDE_DIR} ${ZLIB_INCLUDE_DIR})
# Optional
if(WITH_XC_YUBIKEY)
find_package(YubiKey REQUIRED)
include_directories(SYSTEM ${YUBIKEY_INCLUDE_DIRS})
endif()
if(UNIX)
check_cxx_source_compiles("#include <sys/prctl.h>
int main() { prctl(PR_SET_DUMPABLE, 0); return 0; }"
HAVE_PR_SET_DUMPABLE)
check_cxx_source_compiles("#include <sys/resource.h>
int main() {
struct rlimit limit;
limit.rlim_cur = 0;
limit.rlim_max = 0;
setrlimit(RLIMIT_CORE, &limit);
return 0;
}" HAVE_RLIMIT_CORE)
if(APPLE)
check_cxx_source_compiles("#include <sys/types.h>
#include <sys/ptrace.h>
int main() { ptrace(PT_DENY_ATTACH, 0, 0, 0); return 0; }"
HAVE_PT_DENY_ATTACH)
endif()
endif()
include_directories(SYSTEM ${GCRYPT_INCLUDE_DIR} ${ZLIB_INCLUDE_DIR})
include(FeatureSummary)
add_subdirectory(src)
add_subdirectory(share)
add_subdirectory(utils)
if( WITH_TESTS )
if(WITH_TESTS)
add_subdirectory(tests)
endif( WITH_TESTS )
endif(WITH_TESTS)
if(PRINT_SUMMARY)
# This will print ENABLED, REQUIRED and DISABLED
feature_summary(WHAT ALL)
else()
# This will only print ENABLED and DISABLED feature
feature_summary(WHAT ENABLED_FEATURES DESCRIPTION "Enabled features:")
feature_summary(WHAT DISABLED_FEATURES DESCRIPTION "Disabled features:")
endif()

232
COPYING
View File

@@ -1,5 +1,5 @@
KeePassX - http://www.keepassx.org/
Copyright (C) 2010-2012 Felix Geyer <debfx@fobos.de>
KeePassXC - http://www.keepassxc.org/
Copyright (C) 2016-2017 KeePassXC Team <team@keepassxc.org>
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
@@ -14,28 +14,230 @@ GNU General Public License for more details.
--------------------------------------------------------------------
Format-Specification: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: KeePassX
Upstream-Contact: Felix Geyer <debfx@fobos.de>
Source: http://www.keepassx.org/
Upstream-Name: KeePassXC
Upstream-Contact: KeePassXC Team <team@keepassxc.org>
Source: http://www.keepassxc.org/
Copyright: 2010-2012, Felix Geyer <debfx@fobos.de>
2011-2012, Florian Geyer <blueice@fobos.de>
2012, Tobias Tangemann
2007, Trolltech ASA <info@trolltech.com>
2012, Intel Corporation
2012, Nokia Corporation and/or its subsidiary(-ies)
2000-2008, Tom Sato <VEF00200@nifty.ne.jp>
2013, Laszlo Papp <lpapp@kde.org>
2013, David Faure <faure@kde.org>
2016-2018, KeePassXC Team <team@keepassxc.org>
License: GPL-2 or GPL-3
Files: share/icons/database/*.png
Comment: The "KeePassXC Team" in every copyright notice is formed by the following people:
- droidmonkey
- phoerious
- TheZ3ro <io@thezero.org>
- louib
- weslly
Every other contributor is listed on https://github.com/keepassxreboot/keepassxc/graphs/contributors
Files: cmake/GNUInstallDirs.cmake
Copyright: 2011 Nikita Krupen'ko <krnekit@gmail.com>
2011 Kitware, Inc.
License: BSD-3-clause
Files: cmake/CodeCoverage.cmake
Copyright: 2012 - 2015, Lars Bilke
License: BSD-3-clause
Files: cmake/FindYubiKey.cmake
Copyright: 2014 Kyle Manna <kyle@kylemanna.com>
License: GPL-2 or GPL-3
Files: cmake/GenerateProductVersion.cmake
Copyright: 2015 halex2005 <akharlov@gmail.com>
License: MIT
Files: share/icons/application/*/apps/keepassxc.png
share/icons/application/scalable/apps/keepassxc.svg
share/icons/application/*/apps/keepassxc-dark.png
share/icons/application/scalable/apps/keepassxc-dark.svg
share/icons/application/*/apps/keepassxc-locked.png
share/icons/application/scalable/apps/keepassxc-locked.svg
share/icons/application/*/apps/keepassxc-unlocked.png
share/icons/application/scalable/apps/keepassxc-unlocked.svg
share/icons/application/*/mimetypes/application-x-keepassxc.png
share/icons/application/scalable/mimetypes/application-x-keepassxc.svg
Copyright: 2016, Lorenzo Stella <lorenzo.stl@gmail.com>
License: LGPL-2
Files: share/icons/application/*/actions/auto-type.png
share/icons/application/*/actions/database-change-key.png
share/icons/application/*/actions/entry-clone.png
share/icons/application/*/actions/entry-edit.png
share/icons/application/*/actions/entry-new.png
share/icons/application/*/actions/group-empty-trash.png
share/icons/application/*/actions/help-about.png
share/icons/application/*/actions/password-generate.png
share/icons/database/C00_Password.png
share/icons/database/C01_Package_Network.png
share/icons/database/C02_MessageBox_Warning.png
share/icons/database/C03_Server.png
share/icons/database/C04_Klipper.png
share/icons/database/C05_Edu_Languages.png
share/icons/database/C06_KCMDF.png
share/icons/database/C07_Kate.png
share/icons/database/C08_Socket.png
share/icons/database/C09_Identity.png
share/icons/database/C10_Kontact.png
share/icons/database/C11_Camera.png
share/icons/database/C12_IRKickFlash.png
share/icons/database/C13_KGPG_Key3.png
share/icons/database/C14_Laptop_Power.png
share/icons/database/C15_Scanner.png
share/icons/database/C16_Mozilla_Firebird.png
share/icons/database/C17_CDROM_Unmount.png
share/icons/database/C18_Display.png
share/icons/database/C19_Mail_Generic.png
share/icons/database/C20_Misc.png
share/icons/database/C21_KOrganizer.png
share/icons/database/C22_ASCII.png
share/icons/database/C23_Icons.png
share/icons/database/C24_Connect_Established.png
share/icons/database/C25_Folder_Mail.png
share/icons/database/C26_FileSave.png
share/icons/database/C27_NFS_Unmount.png
share/icons/database/C28_QuickTime.png
share/icons/database/C29_KGPG_Term.png
share/icons/database/C30_Konsole.png
share/icons/database/C31_FilePrint.png
share/icons/database/C32_FSView.png
share/icons/database/C33_Run.png
share/icons/database/C34_Configure.png
share/icons/database/C35_KRFB.png
share/icons/database/C36_Ark.png
share/icons/database/C37_KPercentage.png
share/icons/database/C38_Samba_Unmount.png
share/icons/database/C39_History.png
share/icons/database/C40_Mail_Find.png
share/icons/database/C41_VectorGfx.png
share/icons/database/C42_KCMMemory.png
share/icons/database/C43_EditTrash.png
share/icons/database/C44_KNotes.png
share/icons/database/C45_Cancel.png
share/icons/database/C46_Help.png
share/icons/database/C47_KPackage.png
share/icons/database/C48_Folder.png
share/icons/database/C49_Folder_Blue_Open.png
share/icons/database/C50_Folder_Tar.png
share/icons/database/C51_Decrypted.png
share/icons/database/C52_Encrypted.png
share/icons/database/C53_Apply.png
share/icons/database/C54_Signature.png
share/icons/database/C55_Thumbnail.png
share/icons/database/C56_KAddressBook.png
share/icons/database/C57_View_Text.png
share/icons/database/C58_KGPG.png
share/icons/database/C59_Package_Development.png
share/icons/database/C60_KFM_Home.png
share/icons/database/C61_Services.png
Copyright: 2003-2004, David Vignoni <david@icon-king.com>
License: LGPL-2.1
Comment: from Nuvola icon theme
Files: share/icons/application/*/apps/keepassx.png, share/icons/application/scalable/apps/keepassx.svgz
Copyright: 2006, Otto Salminen
2009, Miguelito Vieira
2011, Felix Geyer <debfx@fobos.de>
License: GPL-2
Files: share/icons/application/*/actions/entry-delete.png
share/icons/application/*/actions/group-delete.png
share/icons/application/*/actions/group-edit.png
share/icons/application/*/actions/group-new.png
Copyright: 2003-2004, David Vignoni <david@icon-king.com>
2012, Felix Geyer <debfx@fobos.de>
License: LGPL-2.1
Comment: based on Nuvola icon theme
Files: src/crypto/salsa20/*
Copyright: is in public domain
License: -
Files: share/icons/application/*/actions/favicon-download.png
Copyright: 2003-2004, David Vignoni <david@icon-king.com>
2018, Kyle Kneitinger <kyle@kneit.in>
License: LGPL-2.1
Comment: based on Nuvola icon theme
Files: src/streams/qtiocompressor.*, src/streams/QtIOCompressor, tests/modeltest.*
Files: share/icons/application/*/actions/application-exit.png
share/icons/application/*/actions/chronometer.png
share/icons/application/*/actions/configure.png
share/icons/application/*/actions/dialog-close.png
share/icons/application/*/actions/dialog-ok.png
share/icons/application/*/actions/document-close.png
share/icons/application/*/actions/document-edit.png
share/icons/application/*/actions/document-encrypt.png
share/icons/application/*/actions/document-new.png
share/icons/application/*/actions/document-open.png
share/icons/application/*/actions/document-properties.png
share/icons/application/*/actions/document-save.png
share/icons/application/*/actions/document-save-as.png
share/icons/application/*/actions/edit-clear-locationbar-ltr.png
share/icons/application/*/actions/edit-clear-locationbar-rtl.png
share/icons/application/*/actions/key-enter.png
share/icons/application/*/actions/password-generator.png
share/icons/application/*/actions/password-copy.png
share/icons/application/*/actions/password-show-*.png
share/icons/application/*/actions/system-search.png
share/icons/application/*/actions/username-copy.png
share/icons/application/*/actions/view-history.png
share/icons/application/*/apps/internet-web-browser.png
share/icons/application/*/apps/preferences-desktop-icons.png
share/icons/application/*/apps/utilities-terminal.png
share/icons/application/*/categories/preferences-other.png
share/icons/application/*/status/dialog-error.png
share/icons/application/*/status/dialog-information.png
share/icons/application/*/status/dialog-warning.png
share/icons/application/*/status/security-high.png
share/icons/svg/*.svg
Copyright: 2007, Nuno Pinheiro <nuno@oxygen-icons.org>
2007, David Vignoni <david@icon-king.com>
2007, David Miller <miller@oxygen-icons.org>
2007, Johann Ollivier Lapeyre <johann@oxygen-icons.org>
2007, Kenneth Wimer <kwwii@bootsplash.org>
2007, Riccardo Iaconelli <riccardo@oxygen-icons.org>
License: LGPL-3+
Comment: from Oxygen icon theme (http://www.oxygen-icons.org/)
Files: share/icons/database/C62_Tux.png
share/icons/database/C63_Feather.png
share/icons/database/C64_Apple.png
share/icons/database/C67_Certificate.png
share/icons/database/C68_BlackBerry.png
Copyright: Mairin Duffy
Sarah Owens
James Birkett
Dominik Reichl
License: CC0
Comment: C62_Tux.png from https://openclipart.org/detail/103855
C63_Feather.png from http://openclipart.org/detail/122017
C64_Apple.png based on http://openclipart.org/detail/24319
C67_Certificate.png based on https://openclipart.org/detail/16729
C68_BlackBerry.png from https://openclipart.org/detail/4465
Files: share/icons/database/C65_W.png
share/icons/database/C66_Money.png
Copyright: none
License: public-domain
Files: src/streams/qtiocompressor.*
src/streams/QtIOCompressor
tests/modeltest.*
Copyright: 2009-2012, Nokia Corporation and/or its subsidiary(-ies)
License: LGPL-2.1 or GPL-3
Files: cmake/GetGitRevisionDescription.cmake*
Copyright: 2009-2010, Iowa State University
License: Boost-1.0
Files: src/zxcvbn/zxcvbn.*
Copyright: 2015-2017, Tony Evans
License: MIT
Files: src/gui/KMessageWidget.h
src/gui/KMessageWidget.cpp
Copyright: 2011 Aurélien Gâteau <agateau@kde.org>
2014 Dominik Haumann <dhaumann@kde.org>
License: LGPL-2.1
Files: share/macosx/dmg-background.tiff
Copyright: 2008-2014, Andrey Tarantsov
License: MIT

97
Dockerfile Normal file
View File

@@ -0,0 +1,97 @@
# KeePassXC Linux Release Build Dockerfile
# Copyright (C) 2017-2018 KeePassXC team <https://keepassxc.org/>
#
# 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
# the Free Software Foundation, either version 2 or (at your option)
# version 3 of the License.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
FROM ubuntu:14.04
ENV REBUILD_COUNTER=10
ENV QT5_VERSION=qt510
ENV QT5_PPA_VERSION=qt-5.10.1
ENV TERM=xterm-256color
RUN set -x \
&& apt-get update -y \
&& apt-get -y install software-properties-common
RUN set -x \
&& add-apt-repository ppa:beineri/opt-${QT5_PPA_VERSION}-trusty \
&& add-apt-repository ppa:phoerious/keepassxc
RUN set -x \
&& apt-get update -y \
&& apt-get upgrade -y
# build and runtime dependencies
RUN set -x \
&& apt-get install -y \
cmake3 \
curl \
g++ \
git \
libgcrypt20-18-dev \
libargon2-0-dev \
libsodium-dev \
libcurl-no-gcrypt-dev \
${QT5_VERSION}base \
${QT5_VERSION}tools \
${QT5_VERSION}x11extras \
${QT5_VERSION}translations \
${QT5_VERSION}imageformats \
${QT5_VERSION}svg \
zlib1g-dev \
libxi-dev \
libxtst-dev \
# ubuntu:14.04 has no quazip (it's optional)
# libquazip5-dev \
mesa-common-dev \
libyubikey-dev \
libykpers-1-dev \
libqrencode-dev \
xclip \
xvfb
ENV PATH="/opt/${QT5_VERSION}/bin:${PATH}"
ENV CMAKE_PREFIX_PATH="/opt/${QT5_VERSION}/lib/cmake"
ENV CMAKE_INCLUDE_PATH="/opt/keepassxc-libs/include"
ENV CMAKE_LIBRARY_PATH="/opt/keepassxc-libs/lib/x86_64-linux-gnu"
ENV CPATH="${CMAKE_INCLUDE_PATH}"
ENV LD_LIBRARY_PATH="${CMAKE_LIBRARY_PATH}:/opt/${QT5_VERSION}/lib"
RUN set -x \
&& echo "/opt/${QT5_VERSION}/lib" > /etc/ld.so.conf.d/${QT5_VERSION}.conf \
&& echo "/opt/keepassxc-libs/lib/x86_64-linux-gnu" > /etc/ld.so.conf.d/keepassxc.conf
# AppImage dependencies
RUN set -x \
&& apt-get install -y \
curl \
libfuse2
RUN set -x \
&& curl -L "https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage" > /usr/bin/linuxdeploy \
&& curl -L "https://github.com/linuxdeploy/linuxdeploy-plugin-qt/releases/download/continuous/linuxdeploy-plugin-qt-x86_64.AppImage" > /usr/bin/linuxdeploy-plugin-qt \
&& curl -L "https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage" > /usr/bin/appimagetool \
&& chmod +x /usr/bin/linuxdeploy \
&& chmod +x /usr/bin/linuxdeploy-plugin-qt \
&& chmod +x /usr/bin/appimagetool
RUN set -x \
&& apt-get autoremove --purge \
&& rm -rf /var/lib/apt/lists/*
VOLUME /keepassxc/src
VOLUME /keepassxc/out
WORKDIR /keepassxc

21
INSTALL
View File

@@ -1,21 +0,0 @@
Building:
=========
mkdir build
cd build
cmake .. [CMAKE PARAMETERS]
make [-jX]
Common cmake parameters:
========================
-DCMAKE_INSTALL_PREFIX=/usr/local
-DCMAKE_VERBOSE_MAKEFILE=ON
-DCMAKE_BUILD_TYPE=<RelWithDebInfo/Debug/Release>
-DWITH_GUI_TESTS=ON
Installing:
===========
make install [DESTDIR=X]
Run tests:
==========
make test [CTEST_OUTPUT_ON_FAILURE=1] [ARGS+=-jX] [ARGS+="-E testgui"]

155
INSTALL.md Normal file
View File

@@ -0,0 +1,155 @@
Build and Install KeePassXC
=================
This document will guide you through the steps to build and install KeePassXC from source.
You can visit the online version of this document at the following link:
https://github.com/keepassxreboot/keepassx/wiki/Install-Instruction-from-Source
The [KeePassXC QuickStart](./docs/QUICKSTART.md) gets you started using KeePassXC on your
Windows, Mac, or Linux computer using the pre-built binaries.
Build Dependencies
==================
The following tools must exist within your PATH:
* make
* cmake (>= 2.8.12)
* g++ (>= 4.7) or clang++ (>= 3.0)
The following libraries are required:
* Qt 5 (>= 5.2): qtbase and qttools5
* libgcrypt (>= 1.6)
* zlib
* libmicrohttpd
* libxi, libxtst, qtx11extras (optional for auto-type on X11)
* libsodium (>= 1.0.12, optional for KeePassXC-Browser support)
* libargon2
Prepare the Building Environment
================================
* [Building Environment on Linux](https://github.com/keepassxreboot/keepassxc/wiki/Set-up-Build-Environment-on-Linux)
* [Building Environment on Windows](https://github.com/keepassxreboot/keepassxc/wiki/Set-up-Build-Environment-on-Windows)
* [Building Environment on MacOS](https://github.com/keepassxreboot/keepassxc/wiki/Set-up-Build-Environment-on-OS-X)
Build Steps
===========
We recommend using the release tool to perform builds, please read up-to-date instructions [on our wiki](https://github.com/keepassxreboot/keepassxc/wiki/Building-KeePassXC#building-using-the-release-tool).
To compile from source, open a **Terminal (on Linux/MacOS)** or a **MSYS2-MinGW shell (on Windows)**<br/>
**Note:** on Windows make sure you are using a **MINGW shell** by checking the label before the current path
First, download the KeePassXC [source tarball](https://keepassxc.org/download#source)
or check out the latest version from our [Git repository](https://github.com/keepassxreboot/keepassxc).
To clone the project from Git, `cd` to a suitable location and run
```bash
git clone https://github.com/keepassxreboot/keepassxc.git
```
This will clone the entire contents of the repository and check out the current `develop` branch.
To update the project from within the project's folder, you can run the following command:
```bash
git pull
```
For a stable build, it is recommended to checkout the master branch.
```bash
git checkout master
```
Navigate to the directory where you have downloaded KeePassXC and type these commands:
```
cd directory-where-sources-live
mkdir build
cd build
cmake -DWITH_XC_ALL=ON ..
make
```
If you are on Windows, you may have to add ```-G "MSYS Makefiles"``` to the beginning of the cmake command. See the [Windows Build Instructions](https://github.com/keepassxreboot/keepassxc/wiki/Building-KeePassXC#windows) for more information.
These steps place the compiled KeePassXC binary inside the `./build/src/` directory.
(Note the cmake notes/options below.)
**Cmake Notes:**
* Common cmake parameters
```
-DCMAKE_INSTALL_PREFIX=/usr/local
-DCMAKE_VERBOSE_MAKEFILE=ON
-DCMAKE_BUILD_TYPE=<RelWithDebInfo/Debug/Release>
-DWITH_GUI_TESTS=ON
```
* cmake accepts the following options:
```
-DWITH_XC_AUTOTYPE=[ON|OFF] Enable/Disable Auto-Type (default: ON)
-DWITH_XC_YUBIKEY=[ON|OFF] Enable/Disable YubiKey HMAC-SHA1 authentication support (default: OFF)
-DWITH_XC_BROWSER=[ON|OFF] Enable/Disable KeePassXC-Browser extension support (default: OFF)
-DWITH_XC_NETWORKING=[ON|OFF] Enable/Disable Networking support (favicon download) (default: OFF)
-DWITH_XC_SSHAGENT=[ON|OFF] Enable/Disable SSHAgent support (default: OFF)
-DWITH_XC_KEESHARE=[ON|OFF] Enable/Disable KeeShare group syncronization extension (default: OFF)
-DWITH_XC_TOUCHID=[ON|OFF] (macOS Only) Enable/Disable Touch ID unlock (default:OFF)
-DWITH_XC_ALL=[ON|OFF] Enable/Disable compiling all plugins above (default: OFF)
-DWITH_XC_KEESHARE_SECURE=[ON|OFF] Enable/Disable KeeShare secure containers, requires libquazip5 (default: OFF)
-DWITH_TESTS=[ON|OFF] Enable/Disable building of unit tests (default: ON)
-DWITH_GUI_TESTS=[ON|OFF] Enable/Disable building of GUI tests (default: OFF)
-DWITH_DEV_BUILD=[ON|OFF] Enable/Disable deprecated method warnings (default: OFF)
-DWITH_ASAN=[ON|OFF] Enable/Disable address sanitizer checks (Linux / macOS only) (default: OFF)
-DWITH_COVERAGE=[ON|OFF] Enable/Disable coverage tests (GCC only) (default: OFF)
-DWITH_APP_BUNDLE=[ON|OFF] Enable Application Bundle for macOS (default: ON)
```
* If you are on MacOS you must add this parameter to **Cmake**, with the Qt version you have installed<br/> `-DCMAKE_PREFIX_PATH=/usr/local/Cellar/qt5/5.6.2/lib/cmake/`
:exclamation: When building with ASan support on macOS, you need to use `export ASAN_OPTIONS=detect_leaks=0` before running the tests (no LSan support in macOS).
Installation
============
After you have successfully built KeePassXC, install the binary by executing the following:
```bash
sudo make install
```
You can specify the destination dir with
```
DESTDIR=X
```
Packaging
=========
You can create a package to redistribute KeePassXC (zip, deb, rpm, dmg, etc..)
```
make package
```
Testing
=======
You can perform test on the executable
```
make test
```
Common parameters:
```
CTEST_OUTPUT_ON_FAILURE=1
ARGS+=-jX
ARGS+="-E testgui"
```

23
LICENSE.BOOST-1.0 Normal file
View File

@@ -0,0 +1,23 @@
Boost Software License - Version 1.0 - August 17th, 2003
Permission is hereby granted, free of charge, to any person or organization
obtaining a copy of the software and accompanying documentation covered by
this license (the "Software") to use, reproduce, display, distribute,
execute, and transmit the Software, and to prepare derivative works of the
Software, and to permit third-parties to whom the Software is furnished to
do so, all subject to the following:
The copyright notices in the Software and this entire statement, including
the above license grant, this restriction and the following disclaimer,
must be included in all copies of the Software, in whole or in part, and
all derivative works of the Software, unless such copies or derivative
works are solely in the form of machine-executable object code generated by
a source language processor.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.

128
LICENSE.CC0 Normal file
View File

@@ -0,0 +1,128 @@
Creative Commons CC0 1.0 Universal
CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE
LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN
ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS INFORMATION
ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES REGARDING THE
USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED HEREUNDER, AND
DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM THE USE OF THIS DOCUMENT
OR THE INFORMATION OR WORKS PROVIDED HEREUNDER.
Statement of Purpose
The laws of most jurisdictions throughout the world automatically confer
exclusive Copyright and Related Rights (defined below) upon the creator
and subsequent owner(s) (each and all, an "owner") of an original work
of authorship and/or a database (each, a "Work").
Certain owners wish to permanently relinquish those rights to a Work for
the purpose of contributing to a commons of creative, cultural and
scientific works ("Commons") that the public can reliably and without
fear of later claims of infringement build upon, modify, incorporate in
other works, reuse and redistribute as freely as possible in any form
whatsoever and for any purposes, including without limitation commercial
purposes. These owners may contribute to the Commons to promote the
ideal of a free culture and the further production of creative, cultural
and scientific works, or to gain reputation or greater distribution for
their Work in part through the use and efforts of others.
For these and/or other purposes and motivations, and without any
expectation of additional consideration or compensation, the person
associating CC0 with a Work (the "Affirmer"), to the extent that he or
she is an owner of Copyright and Related Rights in the Work, voluntarily
elects to apply CC0 to the Work and publicly distribute the Work under
its terms, with knowledge of his or her Copyright and Related Rights in
the Work and the meaning and intended legal effect of CC0 on those
rights.
1. Copyright and Related Rights. A Work made available under CC0 may be
protected by copyright and related or neighboring rights ("Copyright and
Related Rights"). Copyright and Related Rights include, but are not
limited to, the following:
i. the right to reproduce, adapt, distribute, perform, display,
communicate, and translate a Work;
ii. moral rights retained by the original author(s) and/or performer(s);
iii. publicity and privacy rights pertaining to a person's image or
likeness depicted in a Work;
iv. rights protecting against unfair competition in regards to a Work,
subject to the limitations in paragraph 4(a), below;
v. rights protecting the extraction, dissemination, use and reuse of
data in a Work;
vi. database rights (such as those arising under Directive 96/9/EC of
the European Parliament and of the Council of 11 March 1996 on the legal
protection of databases, and under any national implementation thereof,
including any amended or successor version of such directive); and
vii. other similar, equivalent or corresponding rights throughout the
world based on applicable law or treaty, and any national
implementations thereof.
2. Waiver. To the greatest extent permitted by, but not in contravention
of, applicable law, Affirmer hereby overtly, fully, permanently,
irrevocably and unconditionally waives, abandons, and surrenders all of
Affirmer's Copyright and Related Rights and associated claims and causes
of action, whether now known or unknown (including existing as well as
future claims and causes of action), in the Work (i) in all territories
worldwide, (ii) for the maximum duration provided by applicable law or
treaty (including future time extensions), (iii) in any current or
future medium and for any number of copies, and (iv) for any purpose
whatsoever, including without limitation commercial, advertising or
promotional purposes (the "Waiver"). Affirmer makes the Waiver for the
benefit of each member of the public at large and to the detriment of
Affirmer's heirs and successors, fully intending that such Waiver shall
not be subject to revocation, rescission, cancellation, termination, or
any other legal or equitable action to disrupt the quiet enjoyment of
the Work by the public as contemplated by Affirmer's express Statement
of Purpose.
3. Public License Fallback. Should any part of the Waiver for any reason
be judged legally invalid or ineffective under applicable law, then the
Waiver shall be preserved to the maximum extent permitted taking into
account Affirmer's express Statement of Purpose. In addition, to the
extent the Waiver is so judged Affirmer hereby grants to each affected
person a royalty-free, non transferable, non sublicensable, non
exclusive, irrevocable and unconditional license to exercise Affirmer's
Copyright and Related Rights in the Work (i) in all territories
worldwide, (ii) for the maximum duration provided by applicable law or
treaty (including future time extensions), (iii) in any current or
future medium and for any number of copies, and (iv) for any purpose
whatsoever, including without limitation commercial, advertising or
promotional purposes (the "License"). The License shall be deemed
effective as of the date CC0 was applied by Affirmer to the Work. Should
any part of the License for any reason be judged legally invalid or
ineffective under applicable law, such partial invalidity or
ineffectiveness shall not invalidate the remainder of the License, and
in such case Affirmer hereby affirms that he or she will not (i)
exercise any of his or her remaining Copyright and Related Rights in the
Work or (ii) assert any associated claims and causes of action with
respect to the Work, in either case contrary to Affirmer's express
Statement of Purpose.
4. Limitations and Disclaimers.
a. No trademark or patent rights held by Affirmer are waived, abandoned,
surrendered, licensed or otherwise affected by this document.
b. Affirmer offers the Work as-is and makes no representations or
warranties of any kind concerning the Work, express, implied, statutory
or otherwise, including without limitation warranties of title,
merchantability, fitness for a particular purpose, non infringement, or
the absence of latent or other defects, accuracy, or the present or
absence of errors, whether or not discoverable, all to the greatest
extent permissible under applicable law.
c. Affirmer disclaims responsibility for clearing rights of other
persons that may apply to the Work or any use thereof, including without
limitation any person's Copyright and Related Rights in the Work.
Further, Affirmer disclaims responsibility for obtaining any necessary
consents, permissions or other rights required for any use of the Work.
d. Affirmer understands and acknowledges that Creative Commons is not a
party to this document and has no duty or obligation with respect to
this CC0 or use of the Work.

165
LICENSE.LGPL-3 Normal file
View File

@@ -0,0 +1,165 @@
GNU LESSER GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
This version of the GNU Lesser General Public License incorporates
the terms and conditions of version 3 of the GNU General Public
License, supplemented by the additional permissions listed below.
0. Additional Definitions.
As used herein, "this License" refers to version 3 of the GNU Lesser
General Public License, and the "GNU GPL" refers to version 3 of the GNU
General Public License.
"The Library" refers to a covered work governed by this License,
other than an Application or a Combined Work as defined below.
An "Application" is any work that makes use of an interface provided
by the Library, but which is not otherwise based on the Library.
Defining a subclass of a class defined by the Library is deemed a mode
of using an interface provided by the Library.
A "Combined Work" is a work produced by combining or linking an
Application with the Library. The particular version of the Library
with which the Combined Work was made is also called the "Linked
Version".
The "Minimal Corresponding Source" for a Combined Work means the
Corresponding Source for the Combined Work, excluding any source code
for portions of the Combined Work that, considered in isolation, are
based on the Application, and not on the Linked Version.
The "Corresponding Application Code" for a Combined Work means the
object code and/or source code for the Application, including any data
and utility programs needed for reproducing the Combined Work from the
Application, but excluding the System Libraries of the Combined Work.
1. Exception to Section 3 of the GNU GPL.
You may convey a covered work under sections 3 and 4 of this License
without being bound by section 3 of the GNU GPL.
2. Conveying Modified Versions.
If you modify a copy of the Library, and, in your modifications, a
facility refers to a function or data to be supplied by an Application
that uses the facility (other than as an argument passed when the
facility is invoked), then you may convey a copy of the modified
version:
a) under this License, provided that you make a good faith effort to
ensure that, in the event an Application does not supply the
function or data, the facility still operates, and performs
whatever part of its purpose remains meaningful, or
b) under the GNU GPL, with none of the additional permissions of
this License applicable to that copy.
3. Object Code Incorporating Material from Library Header Files.
The object code form of an Application may incorporate material from
a header file that is part of the Library. You may convey such object
code under terms of your choice, provided that, if the incorporated
material is not limited to numerical parameters, data structure
layouts and accessors, or small macros, inline functions and templates
(ten or fewer lines in length), you do both of the following:
a) Give prominent notice with each copy of the object code that the
Library is used in it and that the Library and its use are
covered by this License.
b) Accompany the object code with a copy of the GNU GPL and this license
document.
4. Combined Works.
You may convey a Combined Work under terms of your choice that,
taken together, effectively do not restrict modification of the
portions of the Library contained in the Combined Work and reverse
engineering for debugging such modifications, if you also do each of
the following:
a) Give prominent notice with each copy of the Combined Work that
the Library is used in it and that the Library and its use are
covered by this License.
b) Accompany the Combined Work with a copy of the GNU GPL and this license
document.
c) For a Combined Work that displays copyright notices during
execution, include the copyright notice for the Library among
these notices, as well as a reference directing the user to the
copies of the GNU GPL and this license document.
d) Do one of the following:
0) Convey the Minimal Corresponding Source under the terms of this
License, and the Corresponding Application Code in a form
suitable for, and under terms that permit, the user to
recombine or relink the Application with a modified version of
the Linked Version to produce a modified Combined Work, in the
manner specified by section 6 of the GNU GPL for conveying
Corresponding Source.
1) Use a suitable shared library mechanism for linking with the
Library. A suitable mechanism is one that (a) uses at run time
a copy of the Library already present on the user's computer
system, and (b) will operate properly with a modified version
of the Library that is interface-compatible with the Linked
Version.
e) Provide Installation Information, but only if you would otherwise
be required to provide such information under section 6 of the
GNU GPL, and only to the extent that such information is
necessary to install and execute a modified version of the
Combined Work produced by recombining or relinking the
Application with a modified version of the Linked Version. (If
you use option 4d0, the Installation Information must accompany
the Minimal Corresponding Source and Corresponding Application
Code. If you use option 4d1, you must provide the Installation
Information in the manner specified by section 6 of the GNU GPL
for conveying Corresponding Source.)
5. Combined Libraries.
You may place library facilities that are a work based on the
Library side by side in a single library together with other library
facilities that are not Applications and are not covered by this
License, and convey such a combined library under terms of your
choice, if you do both of the following:
a) Accompany the combined library with a copy of the same work based
on the Library, uncombined with any other library facilities,
conveyed under the terms of this License.
b) Give prominent notice with the combined library that part of it
is a work based on the Library, and explaining where to find the
accompanying uncombined form of the same work.
6. Revised Versions of the GNU Lesser General Public License.
The Free Software Foundation may publish revised and/or new versions
of the GNU Lesser General Public License from time to time. Such new
versions will be similar in spirit to the present version, but may
differ in detail to address new problems or concerns.
Each version is given a distinguishing version number. If the
Library as you received it specifies that a certain numbered version
of the GNU Lesser General Public License "or any later version"
applies to it, you have the option of following the terms and
conditions either of that published version or of any later version
published by the Free Software Foundation. If the Library as you
received it does not specify a version number of the GNU Lesser
General Public License, you may choose any version of the GNU Lesser
General Public License ever published by the Free Software Foundation.
If the Library as you received it specifies that a proxy can decide
whether future versions of the GNU Lesser General Public License shall
apply, that proxy's public statement of acceptance of any version is
permanent authorization for you to choose that version for the
Library.

19
LICENSE.MIT Normal file
View File

@@ -0,0 +1,19 @@
The MIT License (MIT)
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

56
README.md Normal file
View File

@@ -0,0 +1,56 @@
# <img src="https://keepassxc.org/logo.png" width="40" height="40"/> KeePassXC
[![TeamCity Build Status](https://ci.keepassxc.org/app/rest/builds/buildType:\(project:KeepassXC\)/statusIcon)](https://ci.keepassxc.org/?guest=1) [![codecov](https://codecov.io/gh/keepassxreboot/keepassxc/branch/develop/graph/badge.svg)](https://codecov.io/gh/keepassxreboot/keepassxc)
## About KeePassXC
[KeePassXC](https://keepassxc.org) is a cross-platform community fork of
[KeePassX](https://www.keepassx.org/).
Our goal is to extend and improve it with new features and bugfixes
to provide a feature-rich, fully cross-platform and modern
open-source password manager.
## Installation
The [KeePassXC QuickStart](./docs/QUICKSTART.md) gets you started using
KeePassXC on your Windows, Mac, or Linux computer using pre-compiled binaries
from the [downloads page](https://keepassxc.org/download).
Additionally, individual Linux distributions may ship their own versions,
so please check out your distribution's package list to see if KeePassXC is available.
## Additional features compared to KeePassX
- Auto-Type on all three major platforms (Linux, Windows, macOS)
- Twofish encryption
- YubiKey challenge-response support
- TOTP generation
- CSV import
- Command line interface
- DEP and ASLR hardening
- Stand-alone password and passphrase generator
- Password strength meter
- Using website favicons as entry icons
- Merging of databases
- Automatic reload when the database changed on disk
- Browser integration with KeePassXC-Browser using [native messaging](https://developer.chrome.com/extensions/nativeMessaging) for [Mozilla Firefox](https://addons.mozilla.org/en-US/firefox/addon/keepassxc-browser/) and [Google Chrome or Chromium](https://chrome.google.com/webstore/detail/keepassxc-browser/oboonakemofpalcgghocfoadofidjkkk)
- Synchronize passwords using KeeShare. See [Using Sharing](./docs/QUICKSTART.md#using-sharing) for more details.
- Many bug fixes
For a full list of features and changes, read the [CHANGELOG](CHANGELOG) document.
## Building KeePassXC
Detailed instructions are available in the [Build and Install](./INSTALL.md)
page or on the [Wiki page](https://github.com/keepassxreboot/keepassxc/wiki/Building-KeePassXC).
## Contributing
We are always looking for suggestions how to improve our application.
If you find any bugs or have an idea for a new feature, please let us know by
opening a report in our [issue tracker](https://github.com/keepassxreboot/keepassxc/issues)
on GitHub or join us on IRC on freenode channels #keepassxc or #keepassxc-dev.
You can of course also directly contribute your own code. We are happy to accept your pull requests.
Please read the [CONTRIBUTING document](.github/CONTRIBUTING.md) for further information.
## License
GPL-2 or GPL-3

95
ci/trusty/Dockerfile Normal file
View File

@@ -0,0 +1,95 @@
# KeePassXC Linux Release Build Dockerfile
# Copyright (C) 2017 KeePassXC team <https://keepassxc.org/>
#
# 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
# the Free Software Foundation, either version 2 or (at your option)
# version 3 of the License.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# TIP: check this Dockerfile using this online tool: https://www.fromlatest.io
FROM ubuntu:14.04
ENV REBUILD_COUNTER=5
ENV QT5_VERSION=qt53
ENV QT5_PPA_VERSION=${QT5_VERSION}2
ENV TERM=xterm-256color
RUN set -x \
&& apt-get update -y \
&& apt-get -y install software-properties-common
RUN set -x \
&& add-apt-repository ppa:beineri/opt-${QT5_PPA_VERSION}-trusty \
&& add-apt-repository ppa:phoerious/keepassxc
RUN set -x \
&& apt-get -y update \
&& apt-get -y --no-install-recommends install \
build-essential \
clang-3.6 \
libclang-common-3.6-dev \
clang-format-3.6 \
llvm-3.6 \
cmake3 \
make \
libgcrypt20-18-dev \
libargon2-0-dev \
libsodium-dev \
libcurl-no-gcrypt-dev \
${QT5_VERSION}base \
${QT5_VERSION}tools \
${QT5_VERSION}x11extras \
${QT5_VERSION}translations \
${QT5_VERSION}svg \
zlib1g-dev \
libyubikey-dev \
libykpers-1-dev \
# ubuntu:14.04 has no quazip (it's optional)
# libquazip5-dev \
libxi-dev \
libxtst-dev \
libqrencode-dev \
xclip \
xvfb
ENV PATH="/opt/${QT5_VERSION}/bin:${PATH}"
ENV CMAKE_PREFIX_PATH="/opt/${QT5_VERSION}/lib/cmake"
ENV CMAKE_INCLUDE_PATH="/opt/keepassxc-libs/include"
ENV CMAKE_LIBRARY_PATH="/opt/keepassxc-libs/lib/x86_64-linux-gnu"
ENV CPATH="${CMAKE_INCLUDE_PATH}"
ENV LD_LIBRARY_PATH="${CMAKE_LIBRARY_PATH}:/opt/${QT5_VERSION}/lib"
RUN set -x \
&& echo "/opt/${QT5_VERSION}/lib" > /etc/ld.so.conf.d/${QT5_VERSION}.conf \
&& echo "/opt/keepassxc-libs/lib/x86_64-linux-gnu" > /etc/ld.so.conf.d/keepassxc.conf
# AppImage dependencies
RUN set -x \
&& apt-get install -y \
curl \
libfuse2
RUN set -x \
&& curl -L "https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage" > /usr/bin/linuxdeploy \
&& curl -L "https://github.com/linuxdeploy/linuxdeploy-plugin-qt/releases/download/continuous/linuxdeploy-plugin-qt-x86_64.AppImage" > /usr/bin/linuxdeploy-plugin-qt \
&& curl -L "https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage" > /usr/bin/appimagetool \
&& chmod +x /usr/bin/linuxdeploy \
&& chmod +x /usr/bin/linuxdeploy-plugin-qt \
&& chmod +x /usr/bin/appimagetool
RUN set -x \
&& apt-get autoremove --purge \
&& rm -rf /var/lib/apt/lists/*
VOLUME ["/keepassxc"]
WORKDIR /keepassxc

64
cmake/CLangFormat.cmake Normal file
View File

@@ -0,0 +1,64 @@
# Copyright (C) 2017 KeePassXC Team <team@keepassxc.org>
#
# 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
# the Free Software Foundation, either version 2 or (at your option)
# version 3 of the License.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
set(EXCLUDED_DIRS
# third-party directories
src/zxcvbn/
# objective-c directories
src/touchid/
src/autotype/mac/
src/gui/macutils/)
set(EXCLUDED_FILES
# third-party files
streams/qtiocompressor.cpp
streams/qtiocompressor.h
gui/KMessageWidget.h
gui/KMessageWidget.cpp
gui/MainWindowAdaptor.h
gui/MainWindowAdaptor.cpp
crypto/ssh/bcrypt_pbkdf.cpp
crypto/ssh/blf.h
crypto/ssh/blowfish.c
tests/modeltest.cpp
tests/modeltest.h
# objective-c files
core/ScreenLockListenerMac.h
core/ScreenLockListenerMac.cpp)
file(GLOB_RECURSE ALL_SOURCE_FILES RELATIVE ${CMAKE_SOURCE_DIR} src/*.cpp src/*.h tests/*.cpp tests/*.h)
foreach(SOURCE_FILE ${ALL_SOURCE_FILES})
foreach(EXCLUDED_DIR ${EXCLUDED_DIRS})
string(FIND ${SOURCE_FILE} ${EXCLUDED_DIR} SOURCE_FILE_EXCLUDED)
if(NOT ${SOURCE_FILE_EXCLUDED} EQUAL -1)
list(REMOVE_ITEM ALL_SOURCE_FILES ${SOURCE_FILE})
endif()
endforeach()
foreach(EXCLUDED_FILE ${EXCLUDED_FILES})
if(${SOURCE_FILE} MATCHES ".*${EXCLUDED_FILE}$")
list(REMOVE_ITEM ALL_SOURCE_FILES ${SOURCE_FILE})
endif()
endforeach()
endforeach()
add_custom_target(format)
foreach(SOURCE_FILE ${ALL_SOURCE_FILES})
add_custom_command(
TARGET format
PRE_BUILD
COMMAND echo Formatting ${SOURCE_FILE}
COMMAND clang-format -style=file -i \"${SOURCE_FILE}\"
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR})
endforeach()

303
cmake/CodeCoverage.cmake Normal file
View File

@@ -0,0 +1,303 @@
# Copyright (c) 2012 - 2017, Lars Bilke
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without modification,
# are permitted provided that the following conditions are met:
#
# 1. Redistributions of source code must retain the above copyright notice, this
# list of conditions and the following disclaimer.
#
# 2. Redistributions in binary form must reproduce the above copyright notice,
# this list of conditions and the following disclaimer in the documentation
# and/or other materials provided with the distribution.
#
# 3. Neither the name of the copyright holder nor the names of its contributors
# may be used to endorse or promote products derived from this software without
# specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
# CHANGES:
#
# 2012-01-31, Lars Bilke
# - Enable Code Coverage
#
# 2013-09-17, Joakim Söderberg
# - Added support for Clang.
# - Some additional usage instructions.
#
# 2016-02-03, Lars Bilke
# - Refactored functions to use named parameters
#
# 2017-06-02, Lars Bilke
# - Merged with modified version from github.com/ufz/ogs
#
#
# USAGE:
#
# 1. Copy this file into your cmake modules path.
#
# 2. Add the following line to your CMakeLists.txt:
# include(CodeCoverage)
#
# 3. Append necessary compiler flags:
# APPEND_COVERAGE_COMPILER_FLAGS()
#
# 4. If you need to exclude additional directories from the report, specify them
# using the COVERAGE_LCOV_EXCLUDES variable before calling SETUP_TARGET_FOR_COVERAGE_LCOV.
# Example:
# set(COVERAGE_LCOV_EXCLUDES 'dir1/*' 'dir2/*')
#
# 5. Use the functions described below to create a custom make target which
# runs your test executable and produces a code coverage report.
#
# 6. Build a Debug build:
# cmake -DCMAKE_BUILD_TYPE=Debug ..
# make
# make my_coverage_target
#
include(CMakeParseArguments)
# Check prereqs
find_program( GCOV_PATH gcov )
find_program( LCOV_PATH NAMES lcov lcov.bat lcov.exe lcov.perl)
find_program( GENHTML_PATH NAMES genhtml genhtml.perl genhtml.bat )
find_program( GCOVR_PATH gcovr PATHS ${CMAKE_SOURCE_DIR}/scripts/test)
find_program( SIMPLE_PYTHON_EXECUTABLE python )
if(NOT GCOV_PATH)
message(FATAL_ERROR "gcov not found! Aborting...")
endif() # NOT GCOV_PATH
if("${CMAKE_CXX_COMPILER_ID}" MATCHES "(Apple)?[Cc]lang")
if("${CMAKE_CXX_COMPILER_VERSION}" VERSION_LESS 3)
message(FATAL_ERROR "Clang version must be 3.0.0 or greater! Aborting...")
endif()
elseif(NOT CMAKE_COMPILER_IS_GNUCXX)
message(FATAL_ERROR "Compiler is not GNU gcc! Aborting...")
endif()
set(COVERAGE_COMPILER_FLAGS "-g -O0 --coverage -fprofile-arcs -ftest-coverage"
CACHE INTERNAL "")
set(CMAKE_CXX_FLAGS_COVERAGE
${COVERAGE_COMPILER_FLAGS}
CACHE STRING "Flags used by the C++ compiler during coverage builds."
FORCE )
set(CMAKE_C_FLAGS_COVERAGE
${COVERAGE_COMPILER_FLAGS}
CACHE STRING "Flags used by the C compiler during coverage builds."
FORCE )
set(CMAKE_EXE_LINKER_FLAGS_COVERAGE
""
CACHE STRING "Flags used for linking binaries during coverage builds."
FORCE )
set(CMAKE_SHARED_LINKER_FLAGS_COVERAGE
""
CACHE STRING "Flags used by the shared libraries linker during coverage builds."
FORCE )
mark_as_advanced(
CMAKE_CXX_FLAGS_COVERAGE
CMAKE_C_FLAGS_COVERAGE
CMAKE_EXE_LINKER_FLAGS_COVERAGE
CMAKE_SHARED_LINKER_FLAGS_COVERAGE )
if(NOT CMAKE_BUILD_TYPE STREQUAL "Debug")
message(WARNING "Code coverage results with an optimised (non-Debug) build may be misleading")
endif() # NOT CMAKE_BUILD_TYPE STREQUAL "Debug"
if(CMAKE_C_COMPILER_ID STREQUAL "GNU")
link_libraries(gcov)
else()
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} --coverage")
endif()
# Defines a target for running and collection code coverage information
# Builds dependencies, runs the given executable and outputs reports.
# NOTE! The executable should always have a ZERO as exit code otherwise
# the coverage generation will not complete.
#
# SETUP_TARGET_FOR_COVERAGE_LCOV(
# NAME testrunner_coverage # New target name
# EXECUTABLE testrunner -j ${PROCESSOR_COUNT} # Executable in PROJECT_BINARY_DIR
# DEPENDENCIES testrunner # Dependencies to build first
# )
function(SETUP_TARGET_FOR_COVERAGE_LCOV)
set(options NONE)
set(oneValueArgs NAME)
set(multiValueArgs EXECUTABLE EXECUTABLE_ARGS DEPENDENCIES)
cmake_parse_arguments(Coverage "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
if(NOT LCOV_PATH)
message(FATAL_ERROR "lcov not found! Aborting...")
endif() # NOT LCOV_PATH
if(NOT GENHTML_PATH)
message(FATAL_ERROR "genhtml not found! Aborting...")
endif() # NOT GENHTML_PATH
# Setup target
add_custom_target(${Coverage_NAME}
# Cleanup lcov
COMMAND ${LCOV_PATH} --gcov-tool ${GCOV_PATH} -directory . --zerocounters
# Create baseline to make sure untouched files show up in the report
COMMAND ${LCOV_PATH} --gcov-tool ${GCOV_PATH} -c -i -d . -o ${Coverage_NAME}.base
# Run tests
COMMAND ${Coverage_EXECUTABLE}
# Capturing lcov counters and generating report
COMMAND ${LCOV_PATH} --gcov-tool ${GCOV_PATH} --directory . --capture --output-file ${Coverage_NAME}.info
# add baseline counters
COMMAND ${LCOV_PATH} --gcov-tool ${GCOV_PATH} -a ${Coverage_NAME}.base -a ${Coverage_NAME}.info --output-file ${Coverage_NAME}.total
COMMAND ${LCOV_PATH} --gcov-tool ${GCOV_PATH} --remove ${Coverage_NAME}.total ${COVERAGE_LCOV_EXCLUDES} --output-file ${PROJECT_BINARY_DIR}/${Coverage_NAME}.info.cleaned
COMMAND ${GENHTML_PATH} -o ${Coverage_NAME} ${PROJECT_BINARY_DIR}/${Coverage_NAME}.info.cleaned
COMMAND ${CMAKE_COMMAND} -E remove ${Coverage_NAME}.base ${Coverage_NAME}.total ${PROJECT_BINARY_DIR}/${Coverage_NAME}.info.cleaned
WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
DEPENDS ${Coverage_DEPENDENCIES}
COMMENT "Resetting code coverage counters to zero.\nProcessing code coverage counters and generating report."
)
# Show where to find the lcov info report
add_custom_command(TARGET ${Coverage_NAME} POST_BUILD
COMMAND ;
COMMENT "Lcov code coverage info report saved in ${Coverage_NAME}.info."
)
# Show info where to find the report
add_custom_command(TARGET ${Coverage_NAME} POST_BUILD
COMMAND ;
COMMENT "Open ./${Coverage_NAME}/index.html in your browser to view the coverage report."
)
endfunction() # SETUP_TARGET_FOR_COVERAGE_LCOV
# Defines a target for running and collection code coverage information
# Builds dependencies, runs the given executable and outputs reports.
# NOTE! The executable should always have a ZERO as exit code otherwise
# the coverage generation will not complete.
#
# SETUP_TARGET_FOR_COVERAGE_GCOVR_XML(
# NAME ctest_coverage # New target name
# EXECUTABLE ctest -j ${PROCESSOR_COUNT} # Executable in PROJECT_BINARY_DIR
# DEPENDENCIES executable_target # Dependencies to build first
# )
function(SETUP_TARGET_FOR_COVERAGE_GCOVR_XML)
set(options NONE)
set(oneValueArgs NAME)
set(multiValueArgs EXECUTABLE EXECUTABLE_ARGS DEPENDENCIES)
cmake_parse_arguments(Coverage "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
if(NOT SIMPLE_PYTHON_EXECUTABLE)
message(FATAL_ERROR "python not found! Aborting...")
endif() # NOT SIMPLE_PYTHON_EXECUTABLE
if(NOT GCOVR_PATH)
message(FATAL_ERROR "gcovr not found! Aborting...")
endif() # NOT GCOVR_PATH
# Combine excludes to several -e arguments
set(GCOVR_EXCLUDES "")
foreach(EXCLUDE ${COVERAGE_GCOVR_EXCLUDES})
list(APPEND GCOVR_EXCLUDES "-e")
list(APPEND GCOVR_EXCLUDES "${EXCLUDE}")
endforeach()
add_custom_target(${Coverage_NAME}
# Run tests
${Coverage_EXECUTABLE}
# Running gcovr
COMMAND ${GCOVR_PATH} --xml
-r ${PROJECT_SOURCE_DIR} ${GCOVR_EXCLUDES}
--object-directory=${PROJECT_BINARY_DIR}
-o ${Coverage_NAME}.xml
WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
DEPENDS ${Coverage_DEPENDENCIES}
COMMENT "Running gcovr to produce Cobertura code coverage report."
)
# Show info where to find the report
add_custom_command(TARGET ${Coverage_NAME} POST_BUILD
COMMAND ;
COMMENT "Cobertura code coverage report saved in ${Coverage_NAME}.xml."
)
endfunction() # SETUP_TARGET_FOR_COVERAGE_GCOVR_XML
# Defines a target for running and collection code coverage information
# Builds dependencies, runs the given executable and outputs reports.
# NOTE! The executable should always have a ZERO as exit code otherwise
# the coverage generation will not complete.
#
# SETUP_TARGET_FOR_COVERAGE_GCOVR_HTML(
# NAME ctest_coverage # New target name
# EXECUTABLE ctest -j ${PROCESSOR_COUNT} # Executable in PROJECT_BINARY_DIR
# DEPENDENCIES executable_target # Dependencies to build first
# )
function(SETUP_TARGET_FOR_COVERAGE_GCOVR_HTML)
set(options NONE)
set(oneValueArgs NAME)
set(multiValueArgs EXECUTABLE EXECUTABLE_ARGS DEPENDENCIES)
cmake_parse_arguments(Coverage "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
if(NOT SIMPLE_PYTHON_EXECUTABLE)
message(FATAL_ERROR "python not found! Aborting...")
endif() # NOT SIMPLE_PYTHON_EXECUTABLE
if(NOT GCOVR_PATH)
message(FATAL_ERROR "gcovr not found! Aborting...")
endif() # NOT GCOVR_PATH
# Combine excludes to several -e arguments
set(GCOVR_EXCLUDES "")
foreach(EXCLUDE ${COVERAGE_GCOVR_EXCLUDES})
list(APPEND GCOVR_EXCLUDES "-e")
list(APPEND GCOVR_EXCLUDES "${EXCLUDE}")
endforeach()
add_custom_target(${Coverage_NAME}
# Run tests
${Coverage_EXECUTABLE}
# Create folder
COMMAND ${CMAKE_COMMAND} -E make_directory ${PROJECT_BINARY_DIR}/${Coverage_NAME}
# Running gcovr
COMMAND ${GCOVR_PATH} --html --html-details
-r ${PROJECT_SOURCE_DIR} ${GCOVR_EXCLUDES}
--object-directory=${PROJECT_BINARY_DIR}
-o ${Coverage_NAME}/index.html
WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
DEPENDS ${Coverage_DEPENDENCIES}
COMMENT "Running gcovr to produce HTML code coverage report."
)
# Show info where to find the report
add_custom_command(TARGET ${Coverage_NAME} POST_BUILD
COMMAND ;
COMMENT "Open ./${Coverage_NAME}/index.html in your browser to view the coverage report."
)
endfunction() # SETUP_TARGET_FOR_COVERAGE_GCOVR_HTML
function(APPEND_COVERAGE_COMPILER_FLAGS)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${COVERAGE_COMPILER_FLAGS}" PARENT_SCOPE)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${COVERAGE_COMPILER_FLAGS}" PARENT_SCOPE)
message(STATUS "Appending code coverage compiler flags: ${COVERAGE_COMPILER_FLAGS}")
endfunction() # APPEND_COVERAGE_COMPILER_FLAGS

36
cmake/FindArgon2.cmake Normal file
View File

@@ -0,0 +1,36 @@
# Copyright (C) 2017 KeePassXC Team
#
# 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
# the Free Software Foundation, either version 2 or (at your option)
# version 3 of the License.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
find_path(ARGON2_INCLUDE_DIR argon2.h)
if(MINGW)
# find static library on Windows, and redefine used symbols to
# avoid definition name conflicts with libsodium
find_library(ARGON2_SYS_LIBRARIES libargon2.a)
message(STATUS "Patching libargon2...\n")
execute_process(COMMAND objcopy
--redefine-sym argon2_hash=libargon2_argon2_hash
--redefine-sym _argon2_hash=_libargon2_argon2_hash
--redefine-sym argon2_error_message=libargon2_argon2_error_message
--redefine-sym _argon2_error_message=_libargon2_argon2_error_message
${ARGON2_SYS_LIBRARIES} ${CMAKE_BINARY_DIR}/libargon2_patched.a
WORKING_DIRECTORY ${CMAKE_BINARY_DIR})
find_library(ARGON2_LIBRARIES libargon2_patched.a PATHS ${CMAKE_BINARY_DIR} NO_DEFAULT_PATH)
else()
find_library(ARGON2_LIBRARIES argon2)
endif()
mark_as_advanced(ARGON2_LIBRARIES ARGON2_INCLUDE_DIR)
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(Argon2 DEFAULT_MSG ARGON2_LIBRARIES ARGON2_INCLUDE_DIR)

View File

@@ -17,7 +17,15 @@ find_path(GCRYPT_INCLUDE_DIR gcrypt.h)
find_library(GCRYPT_LIBRARIES gcrypt)
mark_as_advanced(GCRYPT_LIBRARIES GCRYPT_INCLUDE_DIR)
if(GCRYPT_INCLUDE_DIR AND EXISTS "${GCRYPT_INCLUDE_DIR}/gcrypt.h")
file(STRINGS "${GCRYPT_INCLUDE_DIR}/gcrypt.h" GCRYPT_H REGEX "^#define GCRYPT_VERSION \"[^\"]*\"$")
string(REGEX REPLACE "^.*GCRYPT_VERSION \"([0-9]+).*$" "\\1" GCRYPT_VERSION_MAJOR "${GCRYPT_H}")
string(REGEX REPLACE "^.*GCRYPT_VERSION \"[0-9]+\\.([0-9]+).*$" "\\1" GCRYPT_VERSION_MINOR "${GCRYPT_H}")
string(REGEX REPLACE "^.*GCRYPT_VERSION \"[0-9]+\\.[0-9]+\\.([0-9]+).*$" "\\1" GCRYPT_VERSION_PATCH "${GCRYPT_H}")
set(GCRYPT_VERSION_STRING "${GCRYPT_VERSION_MAJOR}.${GCRYPT_VERSION_MINOR}.${GCRYPT_VERSION_PATCH}")
endif()
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(Gcrypt DEFAULT_MSG GCRYPT_LIBRARIES GCRYPT_INCLUDE_DIR)
mark_as_advanced(GCRYPT_LIBRARIES GCRYPT_INCLUDE_DIR)

View File

@@ -0,0 +1,23 @@
# Copyright (C) 2017 KeePassXC Team <team@keepassxc.org>
#
# 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
# the Free Software Foundation, either version 2 or (at your option)
# version 3 of the License.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
find_path(GPGERROR_INCLUDE_DIR gpg-error.h)
find_library(GPGERROR_LIBRARIES gpg-error)
mark_as_advanced(GPGERROR_LIBRARIES GPGERROR_INCLUDE_DIR)
include(FindPackageHandleStandardArgs)
include_directories(${GPGERROR_INCLUDE_DIR})
find_package_handle_standard_args(LibGPGError DEFAULT_MSG GPGERROR_LIBRARIES GPGERROR_INCLUDE_DIR)

22
cmake/FindQREncode.cmake Normal file
View File

@@ -0,0 +1,22 @@
# Copyright (C) 2017 KeePassXC Team <team@keepassxc.org>
#
# 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
# the Free Software Foundation, either version 2 or (at your option)
# version 3 of the License.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
find_path(QRENCODE_INCLUDE_DIR qrencode.h)
find_library(QRENCODE_LIBRARY qrencode)
mark_as_advanced(QRENCODE_LIBRARY QRENCODE_INCLUDE_DIR)
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(QREncode DEFAULT_MSG QRENCODE_LIBRARY QRENCODE_INCLUDE_DIR)

41
cmake/FindQuaZip.cmake Normal file
View File

@@ -0,0 +1,41 @@
# QUAZIP_FOUND - QuaZip library was found
# QUAZIP_INCLUDE_DIR - Path to QuaZip include dir
# QUAZIP_INCLUDE_DIRS - Path to QuaZip and zlib include dir (combined from QUAZIP_INCLUDE_DIR + ZLIB_INCLUDE_DIR)
# QUAZIP_LIBRARIES - List of QuaZip libraries
# QUAZIP_ZLIB_INCLUDE_DIR - The include dir of zlib headers
IF(QUAZIP_INCLUDE_DIRS AND QUAZIP_LIBRARIES)
# in cache already
SET(QUAZIP_FOUND TRUE)
ELSE(QUAZIP_INCLUDE_DIRS AND QUAZIP_LIBRARIES)
IF(Qt5Core_FOUND)
set(QUAZIP_LIB_VERSION_SUFFIX 5)
ENDIF()
IF(WIN32)
FIND_PATH(QUAZIP_LIBRARY_DIR
WIN32_DEBUG_POSTFIX d
NAMES libquazip${QUAZIP_LIB_VERSION_SUFFIX}.dll
HINTS "C:/Programme/" "C:/Program Files"
PATH_SUFFIXES QuaZip/lib
)
FIND_LIBRARY(QUAZIP_LIBRARIES NAMES libquazip${QUAZIP_LIB_VERSION_SUFFIX}.dll HINTS ${QUAZIP_LIBRARY_DIR})
FIND_PATH(QUAZIP_INCLUDE_DIR NAMES quazip.h HINTS ${QUAZIP_LIBRARY_DIR}/../ PATH_SUFFIXES include/quazip5)
FIND_PATH(QUAZIP_ZLIB_INCLUDE_DIR NAMES zlib.h)
ELSE(WIN32)
FIND_PACKAGE(PkgConfig)
pkg_check_modules(PC_QUAZIP quazip)
FIND_LIBRARY(QUAZIP_LIBRARIES
WIN32_DEBUG_POSTFIX d
NAMES quazip${QUAZIP_LIB_VERSION_SUFFIX}
HINTS /usr/lib /usr/lib64
)
FIND_PATH(QUAZIP_INCLUDE_DIR quazip.h
HINTS /usr/include /usr/local/include
PATH_SUFFIXES quazip${QUAZIP_LIB_VERSION_SUFFIX}
)
FIND_PATH(QUAZIP_ZLIB_INCLUDE_DIR zlib.h HINTS /usr/include /usr/local/include)
ENDIF(WIN32)
INCLUDE(FindPackageHandleStandardArgs)
SET(QUAZIP_INCLUDE_DIRS ${QUAZIP_INCLUDE_DIR} ${QUAZIP_ZLIB_INCLUDE_DIR})
find_package_handle_standard_args(QUAZIP DEFAULT_MSG QUAZIP_LIBRARIES QUAZIP_INCLUDE_DIR QUAZIP_ZLIB_INCLUDE_DIR QUAZIP_INCLUDE_DIRS)
ENDIF(QUAZIP_INCLUDE_DIRS AND QUAZIP_LIBRARIES)

27
cmake/FindYubiKey.cmake Normal file
View File

@@ -0,0 +1,27 @@
# Copyright (C) 2014 Kyle Manna <kyle@kylemanna.com>
#
# 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
# the Free Software Foundation, either version 2 or (at your option)
# version 3 of the License.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
find_path(YUBIKEY_CORE_INCLUDE_DIR yubikey.h)
find_path(YUBIKEY_PERS_INCLUDE_DIR ykcore.h PATH_SUFFIXES ykpers-1)
set(YUBIKEY_INCLUDE_DIRS ${YUBIKEY_CORE_INCLUDE_DIR} ${YUBIKEY_PERS_INCLUDE_DIR})
find_library(YUBIKEY_CORE_LIBRARY NAMES yubikey.dll libyubikey.so yubikey)
find_library(YUBIKEY_PERS_LIBRARY NAMES ykpers-1.dll libykpers-1.so ykpers-1)
set(YUBIKEY_LIBRARIES ${YUBIKEY_CORE_LIBRARY} ${YUBIKEY_PERS_LIBRARY})
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(YubiKey DEFAULT_MSG YUBIKEY_LIBRARIES YUBIKEY_INCLUDE_DIRS)
mark_as_advanced(YUBIKEY_LIBRARIES YUBIKEY_INCLUDE_DIRS)

267
cmake/Findsodium.cmake Normal file
View File

@@ -0,0 +1,267 @@
# Written in 2016 by Henrik Steffen Gaßmann <henrik@gassmann.onl>
#
# To the extent possible under law, the author(s) have dedicated all
# copyright and related and neighboring rights to this software to the
# public domain worldwide. This software is distributed without any warranty.
#
# You should have received a copy of the CC0 Public Domain Dedication
# along with this software. If not, see
#
# http://creativecommons.org/publicdomain/zero/1.0/
#
########################################################################
# Tries to find the local libsodium installation.
#
# On Windows the sodium_DIR environment variable is used as a default
# hint which can be overridden by setting the corresponding cmake variable.
#
# Once done the following variables will be defined:
#
# sodium_FOUND
# sodium_INCLUDE_DIR
# sodium_LIBRARY_DEBUG
# sodium_LIBRARY_RELEASE
#
#
# Furthermore an imported "sodium" target is created.
#
if (CMAKE_C_COMPILER_ID STREQUAL "GNU"
OR CMAKE_C_COMPILER_ID STREQUAL "Clang")
set(_GCC_COMPATIBLE 1)
endif()
# static library option
option(sodium_USE_STATIC_LIBS "enable to statically link against sodium")
if(NOT (sodium_USE_STATIC_LIBS EQUAL sodium_USE_STATIC_LIBS_LAST))
unset(sodium_LIBRARY CACHE)
unset(sodium_LIBRARY_DEBUG CACHE)
unset(sodium_LIBRARY_RELEASE CACHE)
unset(sodium_DLL_DEBUG CACHE)
unset(sodium_DLL_RELEASE CACHE)
set(sodium_USE_STATIC_LIBS_LAST ${sodium_USE_STATIC_LIBS} CACHE INTERNAL "internal change tracking variable")
endif()
########################################################################
# UNIX
if (UNIX)
# import pkg-config
find_package(PkgConfig QUIET)
if (PKG_CONFIG_FOUND)
pkg_check_modules(sodium_PKG QUIET libsodium)
endif()
if(sodium_USE_STATIC_LIBS)
set(XPREFIX sodium_PKG_STATIC)
else()
set(XPREFIX sodium_PKG)
endif()
find_path(sodium_INCLUDE_DIR sodium.h
HINTS ${${XPREFIX}_INCLUDE_DIRS}
)
find_library(sodium_LIBRARY_DEBUG NAMES ${${XPREFIX}_LIBRARIES} sodium
HINTS ${${XPREFIX}_LIBRARY_DIRS}
)
find_library(sodium_LIBRARY_RELEASE NAMES ${${XPREFIX}_LIBRARIES} sodium
HINTS ${${XPREFIX}_LIBRARY_DIRS}
)
########################################################################
# Windows
elseif (WIN32)
set(sodium_DIR "$ENV{sodium_DIR}" CACHE FILEPATH "sodium install directory")
mark_as_advanced(sodium_DIR)
find_path(sodium_INCLUDE_DIR sodium.h
HINTS ${sodium_DIR}
PATH_SUFFIXES include
)
if (MSVC)
# detect target architecture
file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/arch.c" [=[
#if defined _M_IX86
#error ARCH_VALUE x86_32
#elif defined _M_X64
#error ARCH_VALUE x86_64
#endif
#error ARCH_VALUE unknown
]=])
try_compile(_UNUSED_VAR "${CMAKE_CURRENT_BINARY_DIR}" "${CMAKE_CURRENT_BINARY_DIR}/arch.c"
OUTPUT_VARIABLE _COMPILATION_LOG
)
string(REGEX REPLACE ".*ARCH_VALUE ([a-zA-Z0-9_]+).*" "\\1" _TARGET_ARCH "${_COMPILATION_LOG}")
# construct library path
if (_TARGET_ARCH STREQUAL "x86_32")
string(APPEND _PLATFORM_PATH "Win32")
elseif(_TARGET_ARCH STREQUAL "x86_64")
string(APPEND _PLATFORM_PATH "x64")
else()
message(FATAL_ERROR "the ${_TARGET_ARCH} architecture is not supported by Findsodium.cmake.")
endif()
string(APPEND _PLATFORM_PATH "/$$CONFIG$$")
if (MSVC_VERSION LESS 1900)
math(EXPR _VS_VERSION "${MSVC_VERSION} / 10 - 60")
else()
math(EXPR _VS_VERSION "${MSVC_VERSION} / 10 - 50")
endif()
string(APPEND _PLATFORM_PATH "/v${_VS_VERSION}")
if (sodium_USE_STATIC_LIBS)
string(APPEND _PLATFORM_PATH "/static")
else()
string(APPEND _PLATFORM_PATH "/dynamic")
endif()
string(REPLACE "$$CONFIG$$" "Debug" _DEBUG_PATH_SUFFIX "${_PLATFORM_PATH}")
string(REPLACE "$$CONFIG$$" "Release" _RELEASE_PATH_SUFFIX "${_PLATFORM_PATH}")
find_library(sodium_LIBRARY_DEBUG libsodium.lib
HINTS ${sodium_DIR}
PATH_SUFFIXES ${_DEBUG_PATH_SUFFIX}
)
find_library(sodium_LIBRARY_RELEASE libsodium.lib
HINTS ${sodium_DIR}
PATH_SUFFIXES ${_RELEASE_PATH_SUFFIX}
)
if (NOT sodium_USE_STATIC_LIBS)
set(CMAKE_FIND_LIBRARY_SUFFIXES ".dll")
find_library(sodium_DLL_DEBUG libsodium
HINTS ${sodium_DIR}
PATH_SUFFIXES ${_DEBUG_PATH_SUFFIX}
)
find_library(sodium_DLL_RELEASE libsodium
HINTS ${sodium_DIR}
PATH_SUFFIXES ${_RELEASE_PATH_SUFFIX}
)
endif()
elseif(_GCC_COMPATIBLE)
if (sodium_USE_STATIC_LIBS)
find_library(sodium_LIBRARY_DEBUG libsodium.a
HINTS ${sodium_DIR}
PATH_SUFFIXES lib
)
find_library(sodium_LIBRARY_RELEASE libsodium.a
HINTS ${sodium_DIR}
PATH_SUFFIXES lib
)
else()
find_library(sodium_LIBRARY_DEBUG libsodium.dll.a
HINTS ${sodium_DIR}
PATH_SUFFIXES lib
)
find_library(sodium_LIBRARY_RELEASE libsodium.dll.a
HINTS ${sodium_DIR}
PATH_SUFFIXES lib
)
file(GLOB _DLL
LIST_DIRECTORIES false
RELATIVE "${sodium_DIR}/bin"
"${sodium_DIR}/bin/libsodium*.dll"
)
find_library(sodium_DLL_DEBUG ${_DLL} libsodium
HINTS ${sodium_DIR}
PATH_SUFFIXES bin
)
find_library(sodium_DLL_RELEASE ${_DLL} libsodium
HINTS ${sodium_DIR}
PATH_SUFFIXES bin
)
endif()
else()
message(FATAL_ERROR "this platform is not supported by FindSodium.cmake")
endif()
########################################################################
# unsupported
else()
message(FATAL_ERROR "this platform is not supported by FindSodium.cmake")
endif()
########################################################################
# common stuff
# extract sodium version
if (sodium_INCLUDE_DIR)
set(_VERSION_HEADER "${_INCLUDE_DIR}/sodium/version.h")
if (EXISTS _VERSION_HEADER)
file(READ "${_VERSION_HEADER}" _VERSION_HEADER_CONTENT)
string(REGEX REPLACE ".*#[ \t]*define[ \t]*SODIUM_VERSION_STRING[ \t]*\"([^\n]*)\".*" "\\1"
sodium_VERSION "${_VERSION_HEADER_CONTENT}")
set(sodium_VERSION "${sodium_VERSION}" PARENT_SCOPE)
endif()
endif()
# communicate results
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(sodium
REQUIRED_VARS
sodium_LIBRARY_RELEASE
sodium_LIBRARY_DEBUG
sodium_INCLUDE_DIR
VERSION_VAR
sodium_VERSION
)
# mark file paths as advanced
mark_as_advanced(sodium_INCLUDE_DIR)
mark_as_advanced(sodium_LIBRARY_DEBUG)
mark_as_advanced(sodium_LIBRARY_RELEASE)
if (WIN32)
mark_as_advanced(sodium_DLL_DEBUG)
mark_as_advanced(sodium_DLL_RELEASE)
endif()
# create imported target
if(sodium_USE_STATIC_LIBS)
set(_LIB_TYPE STATIC)
else()
set(_LIB_TYPE SHARED)
endif()
add_library(sodium ${_LIB_TYPE} IMPORTED)
set_target_properties(sodium PROPERTIES
INTERFACE_INCLUDE_DIRECTORIES "${sodium_INCLUDE_DIR}"
IMPORTED_LINK_INTERFACE_LANGUAGES "C"
)
if (sodium_USE_STATIC_LIBS)
set_target_properties(sodium PROPERTIES
INTERFACE_COMPILE_DEFINITIONS "SODIUM_STATIC"
IMPORTED_LOCATION "${sodium_LIBRARY_RELEASE}"
IMPORTED_LOCATION_DEBUG "${sodium_LIBRARY_DEBUG}"
)
else()
if (UNIX)
set_target_properties(sodium PROPERTIES
IMPORTED_LOCATION "${sodium_LIBRARY_RELEASE}"
IMPORTED_LOCATION_DEBUG "${sodium_LIBRARY_DEBUG}"
)
elseif (WIN32)
set_target_properties(sodium PROPERTIES
IMPORTED_IMPLIB "${sodium_LIBRARY_RELEASE}"
IMPORTED_IMPLIB_DEBUG "${sodium_LIBRARY_DEBUG}"
)
if (NOT (sodium_DLL_DEBUG MATCHES ".*-NOTFOUND"))
set_target_properties(sodium PROPERTIES
IMPORTED_LOCATION_DEBUG "${sodium_DLL_DEBUG}"
)
endif()
if (NOT (sodium_DLL_RELEASE MATCHES ".*-NOTFOUND"))
set_target_properties(sodium PROPERTIES
IMPORTED_LOCATION_RELWITHDEBINFO "${sodium_DLL_RELEASE}"
IMPORTED_LOCATION_MINSIZEREL "${sodium_DLL_RELEASE}"
IMPORTED_LOCATION_RELEASE "${sodium_DLL_RELEASE}"
)
endif()
endif()
endif()

188
cmake/GNUInstallDirs.cmake Normal file
View File

@@ -0,0 +1,188 @@
# - Define GNU standard installation directories
# Provides install directory variables as defined for GNU software:
# http://www.gnu.org/prep/standards/html_node/Directory-Variables.html
# Inclusion of this module defines the following variables:
# CMAKE_INSTALL_<dir> - destination for files of a given type
# CMAKE_INSTALL_FULL_<dir> - corresponding absolute path
# where <dir> is one of:
# BINDIR - user executables (bin)
# SBINDIR - system admin executables (sbin)
# LIBEXECDIR - program executables (libexec)
# SYSCONFDIR - read-only single-machine data (etc)
# SHAREDSTATEDIR - modifiable architecture-independent data (com)
# LOCALSTATEDIR - modifiable single-machine data (var)
# LIBDIR - object code libraries (lib or lib64 or lib/<multiarch-tuple> on Debian)
# INCLUDEDIR - C header files (include)
# OLDINCLUDEDIR - C header files for non-gcc (/usr/include)
# DATAROOTDIR - read-only architecture-independent data root (share)
# DATADIR - read-only architecture-independent data (DATAROOTDIR)
# INFODIR - info documentation (DATAROOTDIR/info)
# LOCALEDIR - locale-dependent data (DATAROOTDIR/locale)
# MANDIR - man documentation (DATAROOTDIR/man)
# DOCDIR - documentation root (DATAROOTDIR/doc/PROJECT_NAME)
# Each CMAKE_INSTALL_<dir> value may be passed to the DESTINATION options of
# install() commands for the corresponding file type. If the includer does
# not define a value the above-shown default will be used and the value will
# appear in the cache for editing by the user.
# Each CMAKE_INSTALL_FULL_<dir> value contains an absolute path constructed
# from the corresponding destination by prepending (if necessary) the value
# of CMAKE_INSTALL_PREFIX.
#=============================================================================
# Copyright 2011 Nikita Krupen'ko <krnekit@gmail.com>
# Copyright 2011 Kitware, Inc.
#
# Distributed under the OSI-approved BSD License (the "License");
# see accompanying file Copyright.txt for details.
#
# This software is distributed WITHOUT ANY WARRANTY; without even the
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# See the License for more information.
#=============================================================================
# (To distribute this file outside of CMake, substitute the full
# License text for the above reference.)
# Installation directories
#
if(NOT DEFINED CMAKE_INSTALL_BINDIR)
set(CMAKE_INSTALL_BINDIR "bin" CACHE PATH "user executables (bin)")
endif()
if(NOT DEFINED CMAKE_INSTALL_SBINDIR)
set(CMAKE_INSTALL_SBINDIR "sbin" CACHE PATH "system admin executables (sbin)")
endif()
if(NOT DEFINED CMAKE_INSTALL_LIBEXECDIR)
set(CMAKE_INSTALL_LIBEXECDIR "libexec" CACHE PATH "program executables (libexec)")
endif()
if(NOT DEFINED CMAKE_INSTALL_SYSCONFDIR)
set(CMAKE_INSTALL_SYSCONFDIR "etc" CACHE PATH "read-only single-machine data (etc)")
endif()
if(NOT DEFINED CMAKE_INSTALL_SHAREDSTATEDIR)
set(CMAKE_INSTALL_SHAREDSTATEDIR "com" CACHE PATH "modifiable architecture-independent data (com)")
endif()
if(NOT DEFINED CMAKE_INSTALL_LOCALSTATEDIR)
set(CMAKE_INSTALL_LOCALSTATEDIR "var" CACHE PATH "modifiable single-machine data (var)")
endif()
if(NOT DEFINED CMAKE_INSTALL_LIBDIR)
set(_LIBDIR_DEFAULT "lib")
# Override this default 'lib' with 'lib64' iff:
# - we are on Linux system but NOT cross-compiling
# - we are NOT on debian
# - we are on a 64 bits system
# reason is: amd64 ABI: http://www.x86-64.org/documentation/abi.pdf
# For Debian with multiarch, use 'lib/${CMAKE_LIBRARY_ARCHITECTURE}' if
# CMAKE_LIBRARY_ARCHITECTURE is set (which contains e.g. "i386-linux-gnu"
# See http://wiki.debian.org/Multiarch
if((CMAKE_SYSTEM_NAME MATCHES "Linux|kFreeBSD" OR CMAKE_SYSTEM_NAME STREQUAL "GNU")
AND NOT CMAKE_CROSSCOMPILING)
if (EXISTS "/etc/debian_version") # is this a debian system ?
if(CMAKE_LIBRARY_ARCHITECTURE)
set(_LIBDIR_DEFAULT "lib/${CMAKE_LIBRARY_ARCHITECTURE}")
endif()
else() # not debian, rely on CMAKE_SIZEOF_VOID_P:
if(NOT DEFINED CMAKE_SIZEOF_VOID_P)
message(AUTHOR_WARNING
"Unable to determine default CMAKE_INSTALL_LIBDIR directory because no target architecture is known. "
"Please enable at least one language before including GNUInstallDirs.")
else()
if("${CMAKE_SIZEOF_VOID_P}" EQUAL "8")
set(_LIBDIR_DEFAULT "lib64")
endif()
endif()
endif()
endif()
set(CMAKE_INSTALL_LIBDIR "${_LIBDIR_DEFAULT}" CACHE PATH "object code libraries (${_LIBDIR_DEFAULT})")
endif()
if(NOT DEFINED CMAKE_INSTALL_INCLUDEDIR)
set(CMAKE_INSTALL_INCLUDEDIR "include" CACHE PATH "C header files (include)")
endif()
if(NOT DEFINED CMAKE_INSTALL_OLDINCLUDEDIR)
set(CMAKE_INSTALL_OLDINCLUDEDIR "/usr/include" CACHE PATH "C header files for non-gcc (/usr/include)")
endif()
if(NOT DEFINED CMAKE_INSTALL_DATAROOTDIR)
set(CMAKE_INSTALL_DATAROOTDIR "share" CACHE PATH "read-only architecture-independent data root (share)")
endif()
#-----------------------------------------------------------------------------
# Values whose defaults are relative to DATAROOTDIR. Store empty values in
# the cache and store the defaults in local variables if the cache values are
# not set explicitly. This auto-updates the defaults as DATAROOTDIR changes.
if(NOT CMAKE_INSTALL_DATADIR)
set(CMAKE_INSTALL_DATADIR "" CACHE PATH "read-only architecture-independent data (DATAROOTDIR)")
set(CMAKE_INSTALL_DATADIR "${CMAKE_INSTALL_DATAROOTDIR}")
endif()
if(NOT CMAKE_INSTALL_INFODIR)
set(CMAKE_INSTALL_INFODIR "" CACHE PATH "info documentation (DATAROOTDIR/info)")
set(CMAKE_INSTALL_INFODIR "${CMAKE_INSTALL_DATAROOTDIR}/info")
endif()
if(NOT CMAKE_INSTALL_LOCALEDIR)
set(CMAKE_INSTALL_LOCALEDIR "" CACHE PATH "locale-dependent data (DATAROOTDIR/locale)")
set(CMAKE_INSTALL_LOCALEDIR "${CMAKE_INSTALL_DATAROOTDIR}/locale")
endif()
if(NOT CMAKE_INSTALL_MANDIR)
set(CMAKE_INSTALL_MANDIR "" CACHE PATH "man documentation (DATAROOTDIR/man)")
set(CMAKE_INSTALL_MANDIR "${CMAKE_INSTALL_DATAROOTDIR}/man")
endif()
if(NOT CMAKE_INSTALL_DOCDIR)
set(CMAKE_INSTALL_DOCDIR "" CACHE PATH "documentation root (DATAROOTDIR/doc/PROJECT_NAME)")
set(CMAKE_INSTALL_DOCDIR "${CMAKE_INSTALL_DATAROOTDIR}/doc/${PROJECT_NAME}")
endif()
#-----------------------------------------------------------------------------
mark_as_advanced(
CMAKE_INSTALL_BINDIR
CMAKE_INSTALL_SBINDIR
CMAKE_INSTALL_LIBEXECDIR
CMAKE_INSTALL_SYSCONFDIR
CMAKE_INSTALL_SHAREDSTATEDIR
CMAKE_INSTALL_LOCALSTATEDIR
CMAKE_INSTALL_LIBDIR
CMAKE_INSTALL_INCLUDEDIR
CMAKE_INSTALL_OLDINCLUDEDIR
CMAKE_INSTALL_DATAROOTDIR
CMAKE_INSTALL_DATADIR
CMAKE_INSTALL_INFODIR
CMAKE_INSTALL_LOCALEDIR
CMAKE_INSTALL_MANDIR
CMAKE_INSTALL_DOCDIR
)
# Result directories
#
foreach(dir
BINDIR
SBINDIR
LIBEXECDIR
SYSCONFDIR
SHAREDSTATEDIR
LOCALSTATEDIR
LIBDIR
INCLUDEDIR
OLDINCLUDEDIR
DATAROOTDIR
DATADIR
INFODIR
LOCALEDIR
MANDIR
DOCDIR
)
if(NOT IS_ABSOLUTE ${CMAKE_INSTALL_${dir}})
set(CMAKE_INSTALL_FULL_${dir} "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_${dir}}")
else()
set(CMAKE_INSTALL_FULL_${dir} "${CMAKE_INSTALL_${dir}}")
endif()
endforeach()

View File

@@ -0,0 +1,118 @@
# The MIT License (MIT)
#
# Copyright (c) 2015, by [halex2005](mailto:akharlov@gmail.com)
#
# Permission is hereby granted, free of charge, to any person obtaining a copy of
# this software and associated documentation files (the "Software"), to deal in
# the Software without restriction, including without limitation the rights to
# use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
# the Software, and to permit persons to whom the Software is furnished to do so,
# subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in all
# copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
# FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
# COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
include (CMakeParseArguments)
set (GenerateProductVersionCurrentDir ${CMAKE_CURRENT_LIST_DIR})
# generate_product_version() function
#
# This function uses VersionInfo.in template file and VersionResource.rc file
# to generate WIN32 resource with version information and general resource strings.
#
# Usage:
# generate_product_version(
# SomeOutputResourceVariable
# NAME MyGreatProject
# ICON ${PATH_TO_APP_ICON}
# VERSION_MAJOR 2
# VERSION_MINOR 3
# VERSION_PATH ${BUILD_COUNTER}
# VERSION_REVISION ${BUILD_REVISION}
# )
# where BUILD_COUNTER and BUILD_REVISION could be values from your CI server.
#
# You can use generated resource for your executable targets:
# add_executable(target-name ${target-files} ${SomeOutputResourceVariable})
#
# You can specify resource strings in arguments:
# NAME - name of executable (no defaults, ex: Microsoft Word)
# BUNDLE - bundle (${NAME} is default, ex: Microsoft Office)
# VERSION_MAJOR - 1 is default
# VERSION_MINOR - 0 is default
# VERSION_PATCH - 0 is default
# COMPANY_NAME - your company name (no defaults)
# COMPANY_COPYRIGHT - ${COMPANY_NAME} (C) Copyright ${CURRENT_YEAR} is default
# COMMENTS - ${NAME} v${VERSION_MAJOR}.${VERSION_MINOR} is default
# ORIGINAL_FILENAME - ${NAME} is default
# INTERNAL_NAME - ${NAME} is default
# FILE_DESCRIPTION - ${NAME} is default
function(generate_product_version outfiles)
set (options)
set (oneValueArgs
NAME
BUNDLE
VERSION_MAJOR
VERSION_MINOR
VERSION_PATCH
COMPANY_NAME
COMPANY_COPYRIGHT
COMMENTS
ORIGINAL_FILENAME
INTERNAL_NAME
FILE_DESCRIPTION)
set (multiValueArgs)
cmake_parse_arguments(PRODUCT "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
if (NOT PRODUCT_BUNDLE OR "${PRODUCT_BUNDLE}" STREQUAL "")
set(PRODUCT_BUNDLE "${PRODUCT_NAME}")
endif()
if (NOT PRODUCT_VERSION_MAJOR OR "${PRODUCT_VERSION_MAJOR}" STREQUAL "")
set(PRODUCT_VERSION_MAJOR 1)
endif()
if (NOT PRODUCT_VERSION_MINOR OR "${PRODUCT_VERSION_MINOR}" STREQUAL "")
set(PRODUCT_VERSION_MINOR 0)
endif()
if (NOT PRODUCT_VERSION_PATCH OR "${PRODUCT_VERSION_PATCH}" STREQUAL "")
set(PRODUCT_VERSION_PATCH 0)
endif()
if (NOT PRODUCT_COMPANY_COPYRIGHT OR "${PRODUCT_COMPANY_COPYRIGHT}" STREQUAL "")
string(TIMESTAMP PRODUCT_CURRENT_YEAR "%Y")
set(PRODUCT_COMPANY_COPYRIGHT "Copyright (C) ${PRODUCT_CURRENT_YEAR} ${PRODUCT_COMPANY_NAME}")
endif()
if (NOT PRODUCT_COMMENTS OR "${PRODUCT_COMMENTS}" STREQUAL "")
set(PRODUCT_COMMENTS "${PRODUCT_NAME} v${PRODUCT_VERSION_MAJOR}.${PRODUCT_VERSION_MINOR}.${PRODUCT_VERSION_PATCH}")
endif()
if (NOT PRODUCT_ORIGINAL_FILENAME OR "${PRODUCT_ORIGINAL_FILENAME}" STREQUAL "")
set(PRODUCT_ORIGINAL_FILENAME "${PRODUCT_NAME}")
endif()
if (NOT PRODUCT_INTERNAL_NAME OR "${PRODUCT_INTERNAL_NAME}" STREQUAL "")
set(PRODUCT_INTERNAL_NAME "${PRODUCT_NAME}")
endif()
if (NOT PRODUCT_FILE_DESCRIPTION OR "${PRODUCT_FILE_DESCRIPTION}" STREQUAL "")
set(PRODUCT_FILE_DESCRIPTION "${PRODUCT_NAME}")
endif()
set (_VersionInfoFile ${CMAKE_CURRENT_BINARY_DIR}/VersionInfo.h)
set (_VersionResourceFile ${CMAKE_CURRENT_BINARY_DIR}/VersionResource.rc)
configure_file(
${GenerateProductVersionCurrentDir}/VersionInfo.in
${_VersionInfoFile}
@ONLY)
configure_file(
${GenerateProductVersionCurrentDir}/VersionResource.rc
${_VersionResourceFile}
COPYONLY)
list(APPEND ${outfiles} ${_VersionInfoFile} ${_VersionResourceFile})
set (${outfiles} ${${outfiles}} PARENT_SCOPE)
endfunction()

68
cmake/VersionInfo.in Normal file
View File

@@ -0,0 +1,68 @@
#pragma once
#ifndef PRODUCT_VERSION_MAJOR
#define PRODUCT_VERSION_MAJOR @PRODUCT_VERSION_MAJOR@
#endif
#ifndef PRODUCT_VERSION_MINOR
#define PRODUCT_VERSION_MINOR @PRODUCT_VERSION_MINOR@
#endif
#ifndef PRODUCT_VERSION_PATCH
#define PRODUCT_VERSION_PATCH @PRODUCT_VERSION_PATCH@
#endif
#ifndef FILE_VERSION_MAJOR
#define FILE_VERSION_MAJOR @PRODUCT_VERSION_MAJOR@
#endif
#ifndef FILE_VERSION_MINOR
#define FILE_VERSION_MINOR @PRODUCT_VERSION_MINOR@
#endif
#ifndef FILE_VERSION_PATCH
#define FILE_VERSION_PATCH @PRODUCT_VERSION_PATCH@
#endif
#ifndef __TO_STRING
#define __TO_STRING_IMPL(x) #x
#define __TO_STRING(x) __TO_STRING_IMPL(x)
#endif
#define PRODUCT_VERSION_MAJOR_MINOR_STR __TO_STRING(PRODUCT_VERSION_MAJOR) "." __TO_STRING(PRODUCT_VERSION_MINOR)
#define PRODUCT_VERSION_MAJOR_MINOR_PATCH_STR PRODUCT_VERSION_MAJOR_MINOR_STR "." __TO_STRING(PRODUCT_VERSION_PATCH)
#define PRODUCT_VERSION_RESOURCE PRODUCT_VERSION_MAJOR,PRODUCT_VERSION_MINOR,PRODUCT_VERSION_PATCH,0
#define PRODUCT_VERSION_RESOURCE_STR PRODUCT_VERSION_MAJOR_MINOR_PATCH_STR "\0"
#define FILE_VERSION_MAJOR_MINOR_STR __TO_STRING(FILE_VERSION_MAJOR) "." __TO_STRING(FILE_VERSION_MINOR)
#define FILE_VERSION_MAJOR_MINOR_PATCH_STR FILE_VERSION_MAJOR_MINOR_STR "." __TO_STRING(FILE_VERSION_PATCH)
#define FILE_VERSION_RESOURCE FILE_VERSION_MAJOR,FILE_VERSION_MINOR,FILE_VERSION_PATCH,0
#define FILE_VERSION_RESOURCE_STR FILE_VERSION_MAJOR_MINOR_PATCH_STR "\0"
#ifndef PRODUCT_COMMENTS
#define PRODUCT_COMMENTS "@PRODUCT_COMMENTS@\0"
#endif
#ifndef PRODUCT_COMPANY_NAME
#define PRODUCT_COMPANY_NAME "@PRODUCT_COMPANY_NAME@\0"
#endif
#ifndef PRODUCT_COMPANY_COPYRIGHT
#define PRODUCT_COMPANY_COPYRIGHT "@PRODUCT_COMPANY_COPYRIGHT@\0"
#endif
#ifndef PRODUCT_FILE_DESCRIPTION
#define PRODUCT_FILE_DESCRIPTION "@PRODUCT_FILE_DESCRIPTION@\0"
#endif
#ifndef PRODUCT_INTERNAL_NAME
#define PRODUCT_INTERNAL_NAME "@PRODUCT_NAME@\0"
#endif
#ifndef PRODUCT_ORIGINAL_FILENAME
#define PRODUCT_ORIGINAL_FILENAME "@PRODUCT_ORIGINAL_FILENAME@\0"
#endif
#ifndef PRODUCT_BUNDLE
#define PRODUCT_BUNDLE "@PRODUCT_BUNDLE@\0"
#endif

36
cmake/VersionResource.rc Normal file
View File

@@ -0,0 +1,36 @@
#include "VersionInfo.h"
#include "winresrc.h"
VS_VERSION_INFO VERSIONINFO
FILEVERSION FILE_VERSION_RESOURCE
PRODUCTVERSION PRODUCT_VERSION_RESOURCE
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
#else
FILEFLAGS 0x0L
#endif
FILEOS 0x4L
FILETYPE 0x1L
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040904b0"
BEGIN
VALUE "Comments", PRODUCT_COMMENTS
VALUE "CompanyName", PRODUCT_COMPANY_NAME
VALUE "FileDescription", PRODUCT_FILE_DESCRIPTION
VALUE "FileVersion", FILE_VERSION_RESOURCE_STR
VALUE "InternalName", PRODUCT_INTERNAL_NAME
VALUE "LegalCopyright", PRODUCT_COMPANY_COPYRIGHT
VALUE "OriginalFilename", PRODUCT_ORIGINAL_FILENAME
VALUE "ProductName", PRODUCT_BUNDLE
VALUE "ProductVersion", PRODUCT_VERSION_RESOURCE_STR
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x409, 1200
END
END

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

131
docs/QUICKSTART.md Normal file
View File

@@ -0,0 +1,131 @@
# Quick Start for KeePassXC
This procedure gets KeePassXC running on your computer with browser integration,
using the pre-built binaries available for [download](https://keepassxc.org/download)
from [KeePassXC site](https://keepassxc.org).
**TL;DR** KeePassXC saves your passwords securely.
When you double-click a URL in KeePassXC, it launches your default browser to that URL.
With browser integration configured, KeePassXC automatically enters
username/password credentials into web page fields.
## Installing and Starting KeePassXC
* [Download the native installer](https://keepassxc.org/download) and install
KeePassXC for your Windows, macOS, or Linux computer in the usual way for your platform.
* Open the KeePassXC application.
* Create a new database and give it a master key that's used to unlock the database file.
This database holds entries (usernames, passwords, account numbers, notes)
for all your websites, programs, etc.
* Create a few entries - enter the username, password, URL, and optionally notes about the entry.
* KeePassXC securely stores those entries in the database.
## Setting up Browser Integration with KeePassXC
* *Within KeePassXC*, go to **Tools->Settings** (on macOS, go to **KeePassXC->Preferences**.)
* In **Browser Integration**, check **Enable KeePassXC browser integration**
* Right below that, click the checkbox for the browser(s) you use
Leave the other options at their defaults.
* *In your default web browser,* install the KeePassXC Browser extension/add-on. Instructions for [Firefox or Tor Browser](https://addons.mozilla.org/en-US/firefox/addon/keepassxc-browser/) or [Chrome](https://chrome.google.com/webstore/detail/keepassxc-browser/oboonakemofpalcgghocfoadofidjkkk)
* Click the KeePassXC icon in the upper-right corner. You'll see the dialog below.
* Click the blue Connect button to make the browser extension connect to the KeePassXC application.
<img src="./KeePassHTTP/KeePassXC-Connect.png" height="200" alt="KeePassXC Connect dialog">
* *Switch back to KeePassXC.* You'll see a dialog (below) indicating that a request to connect has arrived.
* Give the connection a name (perhaps *Keepass-Browsername*, any unique name will suffice) and click OK to accept it.
* This one-time operation connects KeePassXC and your browser.
<img src="./KeePassHTTP/KeePassXC-Accept-Button.png" height="200" alt="KeePassXC accept connection dialog">
## Using Browser Integration
* *Within KeePassXC,* double-click the URL of an entry,
or select it and type Ctrl+U (Cmd+U on macOS).
* Your browser opens to that URL.
* If there are username/password fields on that page, you will see the dialog below.
Click *Allow* to confirm that KeePassXC may access the credentials to auto-fill the fields.
* Check *Remember this decision* to allow this each time you visit the page.
<img src="./KeePassHTTP/KeePassXC-Confirm.png" height="200" alt="KeePassCX Confirm Access dialog">
## Using Sharing
Sharing allows you to share a subset of your credentials with others and vice versa.
### Enable Sharing
To use sharing, you need to enable for the application.
1. Go to Tools &rarr; Settings
2. Select the category KeeShare
3. Check _Allow import_ if you want to import shared credentials
4. Check _Allow export_ if you want to share credentials
To make sure that your data is valid when im imported by another client, please _generate_ (or _import_) a public/private key pair and enter your _signer_ name. This way your client may verify that the imported data is valid. When Importing, you'll see the known sources with names and fingerprint in the list at the bottom. This is the place to _trust_ or _untrust_ signers. It is only possible to trust someone on application level.
<img src="./KeeShare/AppSettings.png" height="600" width="800" alt="KeeShare Application Settings">
### Sharing Credentials
If you checked _Allow export_ in the Sharing settings you now are good to go to share some passwords with others. Sharing always is defined on a group. If you enable sharing on a group, every entry under this group or it's children is shared. If you enable sharing on the root node, **every password** inside your database gets shared!
1. Open the edit sheet on a group you want to share
1. Select the sharing section
1. Choose _Export to path_ as the sharing method
1. Choose a path to store the shared credentials to
1. Generate a password for this share container
The export file will not be generated automatically. Instead, each time the database is saved, the file gets written (so please deactivate the autosafe feature). If an old file is present, the old file will be overwritten! The file should be written to a location that is accessible by others. An easy setup is a network share or storing the file inside the cloud.
<img src="./KeeShare/GroupSettings_Export.png" height="600" width="800" alt="KeeShare Group Sharing Settings">
### Using Shared Credentials
Checking _Allow import_ in the Sharing settings of the database enables you to receive credentials from others. KeePass will watch sharing sources and import any changes immediately into your database using the synchronization feature.
1. Create a group for import
1. Open the edit sheet on that group
1. Select the sharing section
1. Choose _Import from path_ as the sharing method
1. Choose a share container that is shared with you
1. Enter the password for the shared container
KeeShare observes the container for changes and merges them into your database when necessary. Importing merges in time order, so older data is moved to the history, which should have a sufficient size to prevent loss of needed data.
Please note, that the import currently is not restricted to the configured group. Every entry which was imported and moved outside the import group will be updated regardless of it's location!
<img src="./KeeShare/GroupSettings_Import.png" height="600" width="800" alt="KeeShare Group Import Settings">
### Using Synchronized Credentials
Instead of using different groups for sharing and importing you can use a single group that acts as both. This way you can synchronize a number of credentials easily across many users without a lot of hassle.
1. Open the edit sheet on a group you want to synchronize
1. Select the sharing section
1. Choose _Synchronize with path_ as the sharing method
1. Choose a database that you want to use a synchronization file
1. Enter the password for the database
<img src="./KeeShare/GroupSettings_Sync.png" height="600" width="800" alt="KeeShare Group Synchronization Settings">
### Disable Sharing for Credentials
In case you don't want to share (import or export) some credentials, it is possible to you can
* use the application settings and uncheck the options or
* instead of selecting _Import from path_, _Export to path_ or _Synchronize with path_ you'll select _Inactive_ while leaving the path and the password untouched
### Sharing overview
There is a simple overview of shared groups to keep track of your data.
1. Open the Database Settings
1. Select the KeeShare category
<img src="./KeeShare/DatabaseSettings.png" height="600" width="800" alt="KeeShare Group Sharing Ovewview">
## Technical Details and Limitations of Sharing
Sharing relies on the combination of file exports and imports as well as the synchronization mechanism provided by KeePassXC. Since the merge algorithm uses the history of entries to prevent data loss, this history must be enabled and have a sufficient size. Furthermore, the merge algorithm is location independend, therefore it does not matter if entries are moved outside of an import group. These entries will be updated none the less. Moving entries outside of export groups will prevent a further export of the entry, but it will not ensure that the already shared data will be removed from any client.
KeeShare uses a custom certification mechanism to ensure that the source of the data is the expected one. This ensures that the data was exported by the signer but it is not possible to detect if someone replaced the data with an older version from a valid signer. To prevent this, the container could be placed at a location which is only writeable for valid signers.

1221
release-tool Executable file

File diff suppressed because it is too large Load Diff

View File

@@ -1,4 +1,5 @@
# Copyright (C) 2011 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
# it under the terms of the GNU General Public License as published by
@@ -13,14 +14,127 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
add_subdirectory(translations)
file(GLOB wordlists_files "wordlists/*.wordlist")
install(FILES ${wordlists_files} DESTINATION ${DATA_INSTALL_DIR}/wordlists)
file(GLOB DATABASE_ICONS icons/database/*.png)
install(FILES ${DATABASE_ICONS} DESTINATION ${DATA_INSTALL_DIR}/icons/database)
if(UNIX AND NOT APPLE)
install(DIRECTORY icons/application/ DESTINATION share/icons/hicolor
FILES_MATCHING PATTERN "*.png" PATTERN "*.svgz")
else(UNIX AND NOT APPLE)
install(DIRECTORY icons/application/ DESTINATION ${DATA_INSTALL_DIR}/icons/application
FILES_MATCHING PATTERN "*.png" PATTERN "*.svgz")
install(DIRECTORY icons/application/ DESTINATION ${CMAKE_INSTALL_DATADIR}/icons/hicolor
FILES_MATCHING PATTERN "keepassx*.png" PATTERN "keepassx*.svg"
PATTERN "status" EXCLUDE PATTERN "actions" EXCLUDE PATTERN "categories" EXCLUDE)
install(DIRECTORY icons/application/ DESTINATION ${CMAKE_INSTALL_DATADIR}/icons/hicolor
FILES_MATCHING PATTERN "application-x-keepassxc.png" PATTERN "application-x-keepassxc.svg"
PATTERN "status" EXCLUDE PATTERN "actions" EXCLUDE PATTERN "categories" EXCLUDE)
install(FILES linux/org.keepassxc.KeePassXC.desktop DESTINATION ${CMAKE_INSTALL_DATADIR}/applications)
install(FILES linux/org.keepassxc.KeePassXC.appdata.xml DESTINATION ${CMAKE_INSTALL_DATADIR}/metainfo)
install(FILES linux/keepassxc.xml DESTINATION ${CMAKE_INSTALL_DATADIR}/mime/packages)
endif(UNIX AND NOT APPLE)
if(APPLE)
install(FILES macosx/keepassxc.icns DESTINATION ${DATA_INSTALL_DIR})
endif()
install(DIRECTORY wizard/ DESTINATION ${DATA_INSTALL_DIR}/wizard FILES_MATCHING PATTERN "*.png")
install(DIRECTORY icons/application/ DESTINATION ${DATA_INSTALL_DIR}/icons/application
FILES_MATCHING PATTERN "*.png" PATTERN "*.svg")
add_custom_target(icons
# SVG to PNGs for KeePassXC
COMMAND inkscape -z -w 16 -h 16
icons/application/scalable/apps/keepassxc.svg -e icons/application/16x16/apps/keepassxc.png
COMMAND inkscape -z -w 24 -h 24
icons/application/scalable/apps/keepassxc.svg -e icons/application/24x24/apps/keepassxc.png
COMMAND inkscape -z -w 32 -h 32
icons/application/scalable/apps/keepassxc.svg -e icons/application/32x32/apps/keepassxc.png
COMMAND inkscape -z -w 48 -h 48
icons/application/scalable/apps/keepassxc.svg -e icons/application/48x48/apps/keepassxc.png
COMMAND inkscape -z -w 64 -h 64
icons/application/scalable/apps/keepassxc.svg -e icons/application/64x64/apps/keepassxc.png
COMMAND inkscape -z -w 128 -h 128
icons/application/scalable/apps/keepassxc.svg -e icons/application/128x128/apps/keepassxc.png
COMMAND inkscape -z -w 256 -h 256
icons/application/scalable/apps/keepassxc.svg -e icons/application/256x256/apps/keepassxc.png
# SVG to PNGs for KeePassXC
COMMAND inkscape -z -w 16 -h 16
icons/application/scalable/apps/keepassxc-dark.svg -e icons/application/16x16/apps/keepassxc-dark.png
COMMAND inkscape -z -w 24 -h 24
icons/application/scalable/apps/keepassxc-dark.svg -e icons/application/24x24/apps/keepassxc-dark.png
COMMAND inkscape -z -w 32 -h 32
icons/application/scalable/apps/keepassxc-dark.svg -e icons/application/32x32/apps/keepassxc-dark.png
COMMAND inkscape -z -w 48 -h 48
icons/application/scalable/apps/keepassxc-dark.svg -e icons/application/48x48/apps/keepassxc-dark.png
COMMAND inkscape -z -w 64 -h 64
icons/application/scalable/apps/keepassxc-dark.svg -e icons/application/64x64/apps/keepassxc-dark.png
COMMAND inkscape -z -w 128 -h 128
icons/application/scalable/apps/keepassxc-dark.svg -e icons/application/128x128/apps/keepassxc-dark.png
COMMAND inkscape -z -w 256 -h 256
icons/application/scalable/apps/keepassxc-dark.svg -e icons/application/256x256/apps/keepassxc-dark.png
# SVG to PNGs for KeePassXC
COMMAND inkscape -z -w 16 -h 16
icons/application/scalable/apps/keepassxc-locked.svg -e icons/application/16x16/apps/keepassxc-locked.png
COMMAND inkscape -z -w 24 -h 24
icons/application/scalable/apps/keepassxc-locked.svg -e icons/application/24x24/apps/keepassxc-locked.png
COMMAND inkscape -z -w 32 -h 32
icons/application/scalable/apps/keepassxc-locked.svg -e icons/application/32x32/apps/keepassxc-locked.png
COMMAND inkscape -z -w 48 -h 48
icons/application/scalable/apps/keepassxc-locked.svg -e icons/application/48x48/apps/keepassxc-locked.png
COMMAND inkscape -z -w 64 -h 64
icons/application/scalable/apps/keepassxc-locked.svg -e icons/application/64x64/apps/keepassxc-locked.png
COMMAND inkscape -z -w 128 -h 128
icons/application/scalable/apps/keepassxc-locked.svg -e icons/application/128x128/apps/keepassxc-locked.png
COMMAND inkscape -z -w 256 -h 256
icons/application/scalable/apps/keepassxc-locked.svg -e icons/application/256x256/apps/keepassxc-locked.png
# SVG to PNGs for KeePassXC
COMMAND inkscape -z -w 16 -h 16
icons/application/scalable/apps/keepassxc-unlocked.svg -e icons/application/16x16/apps/keepassxc-unlocked.png
COMMAND inkscape -z -w 24 -h 24
icons/application/scalable/apps/keepassxc-unlocked.svg -e icons/application/24x24/apps/keepassxc-unlocked.png
COMMAND inkscape -z -w 32 -h 32
icons/application/scalable/apps/keepassxc-unlocked.svg -e icons/application/32x32/apps/keepassxc-unlocked.png
COMMAND inkscape -z -w 48 -h 48
icons/application/scalable/apps/keepassxc-unlocked.svg -e icons/application/48x48/apps/keepassxc-unlocked.png
COMMAND inkscape -z -w 64 -h 64
icons/application/scalable/apps/keepassxc-unlocked.svg -e icons/application/64x64/apps/keepassxc-unlocked.png
COMMAND inkscape -z -w 128 -h 128
icons/application/scalable/apps/keepassxc-unlocked.svg -e icons/application/128x128/apps/keepassxc-unlocked.png
COMMAND inkscape -z -w 256 -h 256
icons/application/scalable/apps/keepassxc-unlocked.svg -e icons/application/256x256/apps/keepassxc-unlocked.png
# SVG to PNGs for KeePassXC MIME-Type
COMMAND inkscape -z -w 16 -h 16
icons/application/scalable/mimetypes/application-x-keepassxc.svg -e icons/application/16x16/mimetypes/application-x-keepassxc.png
COMMAND inkscape -z -w 22 -h 22
icons/application/scalable/mimetypes/application-x-keepassxc.svg -e icons/application/22x22/mimetypes/application-x-keepassxc.png
COMMAND inkscape -z -w 32 -h 32
icons/application/scalable/mimetypes/application-x-keepassxc.svg -e icons/application/32x32/mimetypes/application-x-keepassxc.png
COMMAND inkscape -z -w 64 -h 64
icons/application/scalable/mimetypes/application-x-keepassxc.svg -e icons/application/64x64/mimetypes/application-x-keepassxc.png
COMMAND inkscape -z -w 128 -h 128
icons/application/scalable/mimetypes/application-x-keepassxc.svg -e icons/application/128x128/mimetypes/application-x-keepassxc.png
# Shrink PNGs using pngcrush
COMMAND bash ./crushpng.sh icons
# ICNS for MacOS
COMMAND png2icns macosx/keepassxc.icns
icons/application/16x16/apps/keepassxc.png
icons/application/32x32/apps/keepassxc.png
icons/application/48x48/apps/keepassxc.png
icons/application/128x128/apps/keepassxc.png
icons/application/256x256/apps/keepassxc.png
# ICO for Windows
COMMAND bash ./windows/create-ico.sh icons/application/scalable/apps/keepassxc.svg windows/keepassxc.ico
COMMAND bash ./windows/create-ico.sh icons/application/scalable/mimetypes/application-x-keepassxc.svg windows/keepassxc-kdbx.ico
VERBATIM
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})

8
share/crushpng.sh Normal file
View File

@@ -0,0 +1,8 @@
#!/usr/bin/env bash
if [[ -z $1 ]]; then
echo "You must supply a root folder!"
exit 1
fi
find "$1" -iname '*png' -exec pngcrush -ow -brute {} \;

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 851 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 860 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 606 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 646 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 613 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 665 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 454 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 509 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 649 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 773 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 500 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 804 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 571 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 735 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 713 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 797 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 832 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 754 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 627 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 608 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 880 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 601 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 704 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 301 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 478 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 661 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 903 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 444 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 738 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 763 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 866 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 740 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 801 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 763 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 814 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 492 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 718 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 715 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 715 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 627 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 984 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 702 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 583 B

Some files were not shown because too many files have changed in this diff Show More