Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Replace default database icons #4699

Conversation

wolframroesler
Copy link
Contributor

@wolframroesler wolframroesler commented May 4, 2020

Replace database icons (aka default icons) by SVG files from the Icons8 collection (https://icons8.com/). Show icons larger than 16x16 because the SVGs allow it and it looks awesome. Also cleaned up the icon loading C++ functions a bit (added size parameter where needed, eliminated unused functions, etc.)

Some icons aren't freely available in SVG format yet, using PNG for those. Will replace ASAP.

Feel free to squash the commits, however I'd keep the C++ and icon changes separate.

NOTE: Someone must make sure that Icon8 is properly credited.

Fixes #4071.

Screenshots

image

image

image

Testing strategy

Tested manually. Updated unit tests where appropriate.

Type of change

  • ✅ New feature (change that adds functionality)

@droidmonkey droidmonkey changed the title Feature/feature/4071 database icons Replace default database icons May 7, 2020
@droidmonkey droidmonkey force-pushed the feature/feature/4071-database-icons branch from 431e45a to a8f476b Compare May 7, 2020 19:12
@droidmonkey droidmonkey added this to the v2.6.0 milestone May 7, 2020
@wolframroesler wolframroesler force-pushed the feature/feature/4071-database-icons branch from a8f476b to 2a03dc8 Compare May 9, 2020 10:59
@wolframroesler
Copy link
Contributor Author

I rebased develop into the branch to get rid of a few conflicts, and now some unit tests are failing. Works on develop and on HEAD^. Can you have a look, @droidmonkey?

$ make test
Running tests...
Test project /home/wolfram/src/keepassxc/build
      Start  1: testgroup
 1/39 Test  #1: testgroup ........................***Exception: Child aborted  0.15 sec
      Start  2: testkdbx2
 2/39 Test  #2: testkdbx2 ........................   Passed    0.07 sec
      Start  3: testkdbx3
 3/39 Test  #3: testkdbx3 ........................***Exception: Child aborted  0.15 sec
      Start  4: testkdbx4
 4/39 Test  #4: testkdbx4 ........................***Exception: Child aborted  0.15 sec
      Start  5: testkeys
 5/39 Test  #5: testkeys .........................   Passed    0.81 sec
      Start  6: testgroupmodel
 6/39 Test  #6: testgroupmodel ...................   Passed    0.07 sec
      Start  7: testentrymodel
 7/39 Test  #7: testentrymodel ...................   Passed    0.07 sec
      Start  8: testcryptohash
 8/39 Test  #8: testcryptohash ...................   Passed    0.06 sec
      Start  9: testsymmetriccipher
 9/39 Test  #9: testsymmetriccipher ..............   Passed    0.09 sec
      Start 10: testsignature
10/39 Test #10: testsignature ....................   Passed    0.29 sec
      Start 11: testhashedblockstream
11/39 Test #11: testhashedblockstream ............   Passed    0.06 sec
      Start 12: testkeepass2randomstream
12/39 Test #12: testkeepass2randomstream .........   Passed    0.06 sec
      Start 13: testmodified
13/39 Test #13: testmodified .....................   Passed    9.80 sec
      Start 14: testdeletedobjects
14/39 Test #14: testdeletedobjects ...............***Exception: Child aborted  0.15 sec
      Start 15: testkeepass1reader
15/39 Test #15: testkeepass1reader ...............***Exception: Child aborted  0.14 sec
      Start 16: testopvaultreader
16/39 Test #16: testopvaultreader ................   Passed    0.58 sec
      Start 17: testwildcardmatcher
17/39 Test #17: testwildcardmatcher ..............   Passed    0.01 sec
      Start 18: testupdatecheck
18/39 Test #18: testupdatecheck ..................   Passed    0.06 sec
      Start 19: testautotype
19/39 Test #19: testautotype .....................   Passed    7.88 sec
      Start 20: testopensshkey
20/39 Test #20: testopensshkey ...................   Passed    1.12 sec
      Start 21: testsshagent
21/39 Test #21: testsshagent .....................   Passed    1.80 sec
      Start 22: testentry
22/39 Test #22: testentry ........................   Passed    0.07 sec
      Start 23: testmerge
23/39 Test #23: testmerge ........................   Passed    0.29 sec
      Start 24: testpasswordgenerator
24/39 Test #24: testpasswordgenerator ............   Passed    0.68 sec
      Start 25: testpasswordhealth
25/39 Test #25: testpasswordhealth ...............   Passed    0.02 sec
      Start 26: testpassphrasegenerator
26/39 Test #26: testpassphrasegenerator ..........   Passed    0.07 sec
      Start 27: testhibp
27/39 Test #27: testhibp .........................   Passed    0.06 sec
      Start 28: testtotp
28/39 Test #28: testtotp .........................   Passed    0.07 sec
      Start 29: testbase32
29/39 Test #29: testbase32 .......................   Passed    0.01 sec
      Start 30: testcsvparser
30/39 Test #30: testcsvparser ....................   Passed    0.01 sec
      Start 31: testrandomgenerator
31/39 Test #31: testrandomgenerator ..............   Passed    0.01 sec
      Start 32: testentrysearcher
32/39 Test #32: testentrysearcher ................   Passed    0.02 sec
      Start 33: testcsvexporter
33/39 Test #33: testcsvexporter ..................   Passed    0.06 sec
      Start 34: testykchallengeresponsekey
34/39 Test #34: testykchallengeresponsekey .......   Passed    0.08 sec
      Start 35: testsharing
35/39 Test #35: testsharing ......................   Passed    0.54 sec
      Start 36: testdatabase
36/39 Test #36: testdatabase .....................   Passed    0.45 sec
      Start 37: testtools
37/39 Test #37: testtools ........................   Passed    0.01 sec
      Start 38: testfdosecrets
38/39 Test #38: testfdosecrets ...................   Passed    0.07 sec
      Start 39: testbrowser
39/39 Test #39: testbrowser ......................   Passed    0.09 sec

87% tests passed, 5 tests failed out of 39

Total Test time (real) =  26.19 sec

The following tests FAILED:
	  1 - testgroup (Child aborted)
	  3 - testkdbx3 (Child aborted)
	  4 - testkdbx4 (Child aborted)
	 14 - testdeletedobjects (Child aborted)
	 15 - testkeepass1reader (Child aborted)
Errors while running CTest
Makefile:85: recipe for target 'test' failed
make: *** [test] Error 8

@droidmonkey droidmonkey force-pushed the feature/feature/4071-database-icons branch 2 times, most recently from 8c19bd0 to 21e60b9 Compare May 16, 2020 00:30
@wolframroesler wolframroesler force-pushed the feature/feature/4071-database-icons branch from 21e60b9 to 00e03c3 Compare May 20, 2020 21:54
@wolframroesler
Copy link
Contributor Author

Resolved the conflicts. Unit tests still fail.

@droidmonkey
Copy link
Member

I still have this in my queue. I want to replace some icons

@droidmonkey droidmonkey force-pushed the feature/feature/4071-database-icons branch from 00e03c3 to 3e33c98 Compare May 25, 2020 13:56
@droidmonkey
Copy link
Member

Updated all icons to either be licensed MIT, CC0, or my original work. Some icons are derivative works of MIT/CC0 icons. Those are clearly annotated in the makedbicons.sh script file.

Also took this opportunity to complete the application icons:
image

@droidmonkey droidmonkey force-pushed the feature/feature/4071-database-icons branch from 3e33c98 to 1354235 Compare May 25, 2020 14:05
src/core/Global.h Outdated Show resolved Hide resolved
utils/makeappicons.sh Show resolved Hide resolved
utils/makedbicons.sh Show resolved Hide resolved
@droidmonkey droidmonkey force-pushed the feature/feature/4071-database-icons branch 3 times, most recently from 0a21dc8 to bfb1709 Compare May 29, 2020 02:48
@droidmonkey
Copy link
Member

@phoerious completed svg minify, this PR is ready to go.

@droidmonkey droidmonkey requested a review from phoerious May 29, 2020 02:52
Copy link
Member

@phoerious phoerious left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One small remark, rest looks good.

src/core/Group.cpp Outdated Show resolved Hide resolved
droidmonkey and others added 3 commits May 29, 2020 10:00
Original source of icons is the icon8 library (http://icons8.com/c/flat-color-icons) and Paomedia (https://github.com/paomedia/small-n-flat). All icons used are licensed MIT or CC0; annotated in COPYING.

* Closes keepassxreboot#4071

* Increase default size of database icons to 24px and entry preview panel to 48px
* Add shell script to assemble the database icons

* Use QIcon to seamlessly support High DPI displays and pixmap caching
* Add badge support for KeeShare groups and expired entries.
* Guard against use of QPixmap::fromImage without a GUI

* Add SVG minify and improve `make icons`

Co-authored-by: Wolfram Rösler <[email protected]>
* Add icons for Database Import, Database Export, and Recent Databases
* Change app exit icon to be distinct from export icon
* Updated and ran makeappicons.sh
@droidmonkey droidmonkey force-pushed the feature/feature/4071-database-icons branch from bfb1709 to 4de99cf Compare May 29, 2020 14:00
@droidmonkey droidmonkey merged commit 5c69875 into keepassxreboot:develop May 29, 2020
droidmonkey added a commit that referenced this pull request Jul 7, 2020
Added

- Custom Light and Dark themes [#4110, #4769, #4791, #4796, #4892, #4915]
- Compact mode to use classic Group and Entry line height [#4910]
- View menu to quickly switch themes, compact mode, and toggle UI elements [#4910]
- Search for groups and scope search to matched groups [#4705]
- Save Database Backup feature [#4550]
- Sort entries by "natural order" and move lines up/down [#4357]
- Option to launch KeePassXC on system startup/login [#4675]
- Caps Lock warning on password input fields [#3646]
- Add "Size" column to entry view [#4588]
- Browser-like tab experience using Ctrl+[Num] (Alt+[Num] on Linux) [#4063, #4305]
- Password Generator: Define additional characters to choose from [#3876]
- Reports: Database password health check (offline) [#3993]
- Reports: HIBP online service to check for breached passwords [#4438]
- Auto-Type: DateTime placeholders [#4409]
- Browser: Show group name in results sent to browser extension [#4111]
- Browser: Ability to define a custom browser location (macOS and Linux only) [#4148]
- Browser: Ability to change root group UUID and inline edit connection ID [#4315, #4591]
- CLI: `db-info` command [#4231]
- CLI: Use wl-clipboard if xclip is not available (Linux) [#4323]
- CLI: Incorporate xclip into snap builds [#4697]
- SSH Agent: Key file path env substitution, SSH_AUTH_SOCK override, and connection test [#3769, #3801, #4545]
- SSH Agent: Context menu actions to add/remove keys [#4290]

Changed

- Complete replacement of default database icons [#4699]
- Complete replacement of application icons [#4066, #4161, #4203, #4411]
- Complete rewrite of documentation and manpages using Asciidoctor [#4937]
- Complete refactor of config files; separate between local and roaming [#4665]
- Complete refactor of browser integration and proxy code [#4680]
- Complete refactor of hardware key integration (YubiKey and OnlyKey) [#4584, #4843]
- Significantly improve performance when saving and opening databases [#4309, #4833]
- Remove read-only detection for database files [#4508]
- Overhaul of password fields and password generator [#4367]
- Replace instances of "Master Key" with "Database Credentials" [#4929]
- Change settings checkboxes to positive phrasing for consistency [#4715]
- Improve UX of using entry actions (focus fix) [#3893]
- Set expiration time to Now when enabling entry expiration [#4406]
- Always show "New Entry" in context menu [#4617]
- Issue warning before adding large attachments [#4651]
- Improve importing OPVault [#4630]
- Improve AutoOpen capability [#3901, #4752]
- Check for updates every 7 days even while still running [#4752]
- Improve Windows installer UI/UX [#4675]
- Improve config file handling of portable distribution [#4131, #4752]
- macOS: Hide dock icon when application is hidden to tray [#4782]
- Browser: Use unlock dialog to improve UX of opening a locked database [#3698]
- Browser: Improve database and entry settings experience [#4392, #4591]
- Browser: Improve confirm access dialog [#2143, #4660]
- KeeShare: Improve monitoring file changes of shares [#4720]
- CLI: Rename `create` command to `db-create` [#4231]
- CLI: Cleanup `db-create` options (`--set-key-file` and `--set-password`) [#4313]
- CLI: Use stderr for help text and password prompts [#4086, #4623]
- FdoSecrets: Display existing secret service process [#4128]

Fixed

- Fix changing focus around the main window using tab key [#4641]
- Fix search field clearing while still using the application [#4368]
- Improve search help widget displaying on macOS and Linux [#4236]
- Return keyboard focus after editing an entry [#4287]
- Reset database path after failed "Save As" [#4526]
- Use SHA256 Digest for Windows code signing [#4129]
- Improve handling of ccache when building [#4104, #4335]
- macOS: Properly re-hide application window after browser integration and Auto-Type usage [#4909]
- Auto-Type: Fix crash when performing on new entry [#4132]
- Browser: Send legacy HTTP settings to recycle bin [#4589]
- Browser: Fix merging browser keys [#4685]
- CLI: Fix encoding when exporting database [#3921]
- SSH Agent: Improve reliability and underlying code [#3833, #4256, #4549, #4595]
- FdoSecrets: Fix crash when editing settings before service is enabled [#4332]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Replace or augment existing database icons
3 participants