keepassxc/utils/makedbicons.sh
Jonathan White 90d5372813
Replace database icons with SVG's
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 #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 <wolfram@roesler-ac.de>
2020-05-29 10:00:32 -04:00

124 lines
5.5 KiB
Bash

#!/bin/bash
# Assemble database icons from the icons8 collection
# by Wolfram Rösler 2020-04-30
NC='\033[0m'
RED='\033[0;31m'
YELLOW='\033[0;33m'
# Check parameters
if [[ $# != 1 ]];then
echo "Usage: $0 ICONS8"
echo "ICONS8 is the directory containing the Icons8 flat-color-icons repository"
echo "(git clone https://github.com/icons8/flat-color-icons)".
exit
fi
# Check source directory
SRCDIR="$1"
if [ ! -d "$SRCDIR" ];then
echo -e "${RED}icons8 directory doesn't exist: ${SRCDIR}${NC}"
exit 1
fi
# Check destination directory
DSTDIR=share/icons/database
if [ ! -d "$DSTDIR" ];then
echo -e "${RED}Please invoke this script from the KeePassXC source root directory.${NC}"
exit 1
fi
# Copy one icon from the icons8 collection.
#
# Usage: copy I8NAME Cnn
# I8NAME is the file name (without extender and without
# the "icon8-" prefix) in the icons8 directory.
# Cnn is C plus the number of the database icon.
#
# Example: copy key C00
copy() {
# The source file is:
SRC="${SRCDIR}/svg/${1}.svg"
if [ ! -f "$SRC" ];then
echo -e "${RED}Cannot find source icon for ${2} (${SRC})${NC}"
return
fi
# Copy the source file to the destination, keeping
# the source file's extension
DST="$DSTDIR/${2}.svg"
cp $SRC $DST
echo "Copied icon for ${1} to ${DST}"
}
# Now do the actual work
#copy key C00_Password # Derivative work from key
copy globe C01_Package_Network
copy high_priority C02_MessageBox_Warning
copy data_protection C03_Server # No exact match
copy survey C04_Klipper
copy businessman C05_Edu_Languages
copy services C06_KCMDF
#copy notepad C07_Kate # Provided by paomedia/small-n-flat
copy external C08_Socket
copy business_contact C09_Identity
copy address_book C10_Kontact
copy old_time_camera C11_Camera
copy entering_heaven_alive C12_IRKickFlash # No exact match
#copy keys-holder C13_KGPG_Key3 # Derivative work from key
copy crystal_oscillator C14_Laptop_Power
copy video_projector C15_Scanner
copy bookmark C16_Mozilla_Firebird
#copy cd C17_CDROM_Unmount # Provided by paomedia/small-n-flat
#copy monitor C18_Display # Provided by paomedia/small-n-flat
#copy feedback C19_Mail_Generic # Derivative work from feedback
copy settings C20_Misc
copy inspection C21_KOrganizer
copy file C22_ASCII
copy template C23_Icons
copy flash_on C24_Connect_Established
copy safe C25_Folder_Mail # No exact match
#copy save C26_FileSave # Provided by paomedia/small-n-flat
#copy cloud-storage C27_NFS_Unmount # Provided by paomedia/small-n-flat
copy film_reel C28_QuickTime
#copy C29_KGPG_Term # Derivative work from command_line and key
#copy command_line C30_Konsole # Derivative work from command_line
copy print C31_FilePrint
copy org_unit C32_FSView
copy cloth C33_Run
copy support C34_Configure
#copy vpn C35_KRFB # Derivative work from paomedia/small-n-flat
#copy archive-folder C36_Ark # Derivative work from folder
#copy percentage C37_KPercentage # Original work
#copy windows-client C38_Samba_Unmount # Derivative work from paomedia/small-n-flat
copy clock C39_History
copy search C40_Mail_Find
copy landscape C41_VectorGfx
copy electronics C42_KCMMemory
copy empty_trash C43_EditTrash
#copy C44_KNotes # Provided by paomedia/small-n-flat
#copy C45_Cancel # Original work
#copy C46_Help # Original work
copy package C47_KPackage
copy folder C48_Folder
copy opened_folder C49_Folder_Blue_Open
copy data_encryption C50_Folder_Tar
#copy unlock C51_Decrypted # Provided by paomedia/small-n-flat
#copy lock C52_Encrypted # Provided by paomedia/small-n-flat
#copy C53_Apply # Original work
#copy pencil C54_Signature # Provided by paomedia/small-n-flat
copy image_file C55_Thumbnail
copy contacts C56_KAddressBook
copy data_sheet C57_View_Text
copy podium_with_speaker C58_KPGP # No exact match
#copy hammer C59_Package_Development # Provided by paomedia/small-n-flat
copy home C60_KFM_Home
#copy C61_Services # Original work
copy linux C62_Tux
copy android_os C63_Feather
#copy C64_Apple # Derivative work created from simple-icons apple.svg
copy wikipedia C65_W
#copy currency_exchange C66_Money # Provided by paomedia/small-n-flat
copy diploma_1 C67_Certificate
copy smartphone_tablet C68_Blackberry