Commit graph

428 commits

Author SHA1 Message Date
Jonathan White
3b0b5d85e9 Correct behaviors when saving database fails
* Mark database dirty if saving fails
* Restore database file from backup if unsafe save fails between deleting database file and copying temporary file into place
* Improve error message display for opening and saving database files
* Do not automatically retry saving after failure. This prevents deletion of the backup database file and improves user awareness of issues.
2019-04-07 12:12:43 -04:00
Lars Wendler
eb9ff677d0 src/gui/DatabaseWidget.cpp: Build fails without WITH_XC_KEESHARE
/var/tmp/portage/app-admin/keepassxc-2.4.0/work/keepassxc-2.4.0/src/gui/DatabaseWidget.cpp: In member function ‘void DatabaseWidget::search(const QString&)’:
/var/tmp/portage/app-admin/keepassxc-2.4.0/work/keepassxc-2.4.0/src/gui/DatabaseWidget.cpp:1115:5: error: ‘m_shareLabel’ was not declared in this scope
     m_shareLabel->setVisible(false);
     ^~~~~~~~~~~~
/var/tmp/portage/app-admin/keepassxc-2.4.0/work/keepassxc-2.4.0/src/gui/DatabaseWidget.cpp:1115:5: note: suggested alternative: ‘m_searchingLabel’
     m_shareLabel->setVisible(false);
     ^~~~~~~~~~~~
     m_searchingLabel
2019-03-20 17:22:41 -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
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
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
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
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
Jonathan White
21de6f6163
Merge branch 'develop'
Conflicts:
	src/core/Tools.cpp
	src/sshagent/SSHAgent.cpp
2018-12-30 16:32:57 -05:00
Jonathan White
b96b86bfa7 Cleanup and replumb back to functional state 2018-12-28 17:54:52 -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
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
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
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
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
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
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
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
f31d65bdaf Replace deprecated parts of the code (#2419)
Performing a dev build against the latest version of Qt failed
because of some deprecated members. They have been replaced
according to the Qt documentation.

Further, Q_OS_MACOS is now the only macro available to identify a
machine running macOS, the others are now deprecated.
See https://doc.qt.io/qt-5/qtglobal.html#Q_OS_OSX and
https://doc.qt.io/qt-5/qtglobal.html#Q_OS_MAC.
2018-10-26 15:19:04 +02:00
Jonathan White
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
Janek Bevendorff
0ca7fd369a Implement review feedback 2018-10-19 22:16:44 +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
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
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
vasporig
61d7e6bc6c Do polling based file watching for NFS on linux, resolves #1799 2018-09-25 21:25:52 -04:00
Janek Bevendorff
e443cde452 Add a new database settings wizard
This patch implements a new database wizard to guide users through the process
of setting up a new database and choosing sane encryption settings.

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

With these changes comes a major refactor of how database composite keys and key
components are handled. Copying of keys is prohibited and each key
exists only once in memory and is referenced via shared pointers. GUI
components for changing individual keys are encapsulated into separate
classes to be more reusable. The password edit and generator widgets
have also been refactored to be more reusable.
2018-09-25 21:12:47 +02:00
Max Kolhagen
d9fcdd2920 Add TouchID support on macOS 2018-09-18 22:42:05 -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
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
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
pasdam
ad4423d226
Replaced Uuid with QUuid 2018-07-06 22:23:49 -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
Louis-Bertrand Varin
8324d03f0a Formatting the code. 2018-03-31 16:01:30 -04:00
Edward Jones
963a7802d1 Fix pluralization of confirmation prompts 2018-03-13 20:41:16 +00: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
Janek Bevendorff
a5dc1964a9 Resize details widget to minimum by default 2018-03-03 12:59:06 +01:00
Janek Bevendorff
ad92b11f12 Use edlided label for details widget title and adjust layout spacing 2018-02-26 01:11:57 +01:00
Jonathan White
8c4df37062 Only show entry update message when hitting apply 2018-02-25 19:27:06 +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
Nick Spain
5c51d11651 Fix Issue #1447 by using entry's group when not creating entry 2018-02-18 16:17:12 +01:00
frostasm
6007e0de71 Refactor DetailsWidget 2018-02-04 15:51:30 +02:00
Janek Bevendorff
527868a6b3
Guarantee that configuration values are committed to disk on exit 2018-02-04 13:56:46 +01:00
Janek Bevendorff
8da3efa2c2 Add disambiguation info to source strings 2018-01-21 15:54:46 +01:00
Fonic
8c78aca69e Code cleanup
Comprehensive code cleanup:
- formatting
- comments
- obsolete code
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
thez3ro
00ce60ef20
create new entry while searching 2018-01-18 01:16:46 +01: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
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
Jonathan White
1a7b874c60 Consistency using filepath and minor code fixes 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
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
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
frostasm
c490c21cd5 Move attachments view to the separate widget EntryAttachmentsWidget 2017-12-25 14:36:43 +02:00
frostasm
0c200d360b Add attachments tab to details view 2017-12-24 20:10:12 +02:00
louib
8037a79673
Add \n in merge request message. (#1310) 2017-12-20 18:08:18 -05:00
alterratz
468519cd46
Merge branch 'develop' into feature/autoopen 2017-11-28 17:29:05 +01:00
Janek Bevendorff
8651736e61
Merge branch 'release/2.2.3' into develop 2017-11-26 18:23:48 +01:00
Jonathan White
e17b3d24bf Corrected database corruption when locked [#1113] 2017-11-23 21:32:56 +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
Weslly
3b8d49104c
Focus database unlock dialog on macOS, fix #1023 2017-11-20 04:26:53 -02:00
Toni Spets
4840c2c64f SSH agent support 2017-11-19 14:38:59 +02:00
thez3ro
c3c67f18b8
add test for DB creation 2017-11-02 20:07:41 +01:00
frostasm
8b00d0580b Synchronize the height of the preview panel for all open databases 2017-11-02 19:09:36 +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
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
frostasm
f38fe5a9dd Disable automatic hiding of an information message for YubiKey 2017-10-19 22:22:10 +03:00
Bernhard Rieder
6d569a86f9 added autoopen functionality (#477) 2017-10-09 13:26:24 +02:00
Jonathan White
df3051038e Clear database open dialog before and after merging a database (#958) 2017-09-23 11:43:29 -04:00
Jonathan White
6dfeea1980
Merge remote-tracking branch 'origin/develop' into release/2.2.0 2017-06-21 17:20:57 -04: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
thez3ro
a53b111182
Update and fix copyright headers 2017-06-14 15:54:43 +02:00
Toni Spets
6f4b5fc71a 🔒 Fix search information leak 2017-05-28 18:08:38 +03:00
Weslly
bf57a28654 Add TOTP support 2017-05-03 20:55:14 -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
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
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
Janek Bevendorff
15dd783d2c
Merge branch 'develop' into feature/yubikey 2017-03-10 18:01:14 +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
3c1271b1c4
Merge branch 'develop' into feature/yubikey 2017-03-06 13:49:48 +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
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
Louis-Bertrand Varin
b2fa6fca82 Fixes crash when deleting in search mode. 2017-03-04 12:19:18 -05:00
Janek Bevendorff
3230206b69
Merge branch 'develop' into feature/yubikey 2017-02-25 22:04:57 +01:00
Janek Bevendorff
1f6f7b614c
Merge branch 'release/2.1.3' into develop 2017-02-25 04:20:08 +01:00
Janek Bevendorff
311e7802e5 Don't show error message when trying to reload a locked database 2017-02-25 03:15:32 +01:00
Janek Bevendorff
e25e7ff4a2
Merge branch 'develop' into feature/yubikey 2017-02-25 01:09:59 +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
7abebabf4f
Rework general settings page 2017-02-22 15:36:37 +01:00
Janek Bevendorff
e0e6f2b8e9
Merge branch 'release/2.1.2' into develop 2017-02-17 04:03:12 +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
41d5111684
Use KMessageWidget also for new error messages 2017-02-10 02:26:10 +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
Janek Bevendorff
26ff528a85
Merge branch 'meta/release-preparation' into release/2.1.1 2017-02-06 23:27:05 +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
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
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
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
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
louib
cdbf58b2c1 Preserve group/entry focus when replacing db. (#176) 2017-01-24 22:17:16 -05:00
Josh Soref
341ff3de37 spelling: recycle 2017-01-14 17:32:03 +01:00
Louis-Bertrand Varin
1a5c18c9bd Add missing space in messages. 2017-01-11 21:12:43 -05: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
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
TheZ3ro
405b82588b Add Autotype Entry-Attributes, Fix Group default sequence (#107) 2016-11-25 12:26:59 -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
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
TheZ3ro
6927158daa Add unlock dialog on Autotype and show default Autotype sequence (#89)
* Add unlockdialog on autotype. Fix #10
* Show default autotype sequence for existing entries
* NOTE: New entries/groups do not show the default autotype sequence
2016-11-11 16:26:07 -05:00
Jonathan White
37aedc8b03 Cleaned up code and added spots for todo work. Fully Working! 2016-11-09 07:38:14 -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
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
thez3ro
3bbf11e26f Unlocked tray icon #37 2016-10-10 00:02:28 -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
c78822f6e6 Merge branch '2.0' 2016-10-02 21:45:54 -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
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
Felix Geyer
ecfbf72a57 Merge branch '2.0' 2015-12-15 21:05:00 +01:00
Felix Geyer
a3b936fcd0 Coding style fixes. 2015-12-06 20:27:09 +01:00
Felix Geyer
7fa0eddc5f Make C++11 mandatory. 2015-09-12 13:55:50 +02: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
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
2170794d9c Guess the scheme when opening URLs.
Closes #293
2015-07-16 19:52:34 +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
Amir Pakdel
0458dad6dc Code cleanups 2015-05-13 14:34:48 -04:00
Felix Geyer
fceb93061d Merge remote-tracking branch 'github/pr/97'
Closes #290
2015-05-12 22:31:51 +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
d26cff520f Bug #244
Supporting cmd:// URLs
2015-05-12 12:25:43 -04:00
Felix Geyer
a762cef0a9 Catch and handle all errors from libgcrypt. 2015-05-09 23:21:44 +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
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
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
8cc1e6008e Use plurals in translations. 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
Felix Geyer
e776de8eeb Remember and synchronize entry column sizes.
Closes #159
2014-05-17 12:51:16 +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
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
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
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
Felix Geyer
75d3e6261b Coding style fix. 2014-05-15 18:41:11 +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
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
b9370c6e79 More careful null checking and member initalization. 2014-03-22 12:10:49 +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
Felix Geyer
f2dfef8c41 Add flags to Entry::clone() for customized cloning. 2013-11-22 13:32:13 +01:00
Felix Geyer
755241df5c Focus entryView when pressing enter in the search field. 2013-11-17 10:55:58 +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
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
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
Florian Geyer
ba3baf3595 Open EditEntryWidget when empty url column is activated. 2013-04-14 19:14:06 +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
be288d26ca Change Entry::clone() to set a random uuid. 2013-04-04 21:25:11 +02:00
Felix Geyer
db08058c4e Ignore an unused variable. 2013-03-24 13:58:13 +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
4daac65cc5 Show correct group name when opening an entry from seach results. 2012-12-27 10:50:48 +01:00
Florian Geyer
ddd5e8a209 Add menu entry to copy an entry attribute to clipboard. 2012-10-24 20:03:33 +02:00
Florian Geyer
08415bd824 Improve headline in EditEntryWidget. 2012-10-21 21:50:05 +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
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