diff --git a/CHANGELOG b/CHANGELOG
index f8a0e33bf..8e0eaacea 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,15 @@
+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)
=========================
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 852ccae5c..347c52768 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -38,8 +38,8 @@ option(WITH_XC_AUTOTYPE "Include Autotype." OFF)
option(WITH_XC_HTTP "Include KeePassHTTP." OFF)
option(WITH_XC_YUBIKEY "Include Yubikey support." OFF)
-set(KEEPASSXC_VERSION "2.1.2")
-set(KEEPASSXC_VERSION_NUM "2.1.2")
+set(KEEPASSXC_VERSION "2.1.3")
+set(KEEPASSXC_VERSION_NUM "2.1.3")
if("${CMAKE_C_COMPILER}" MATCHES "clang$" OR "${CMAKE_C_COMPILER_ID}" STREQUAL "Clang")
set(CMAKE_COMPILER_IS_CLANG 1)
diff --git a/cmake/GenerateProductVersion.cmake b/cmake/GenerateProductVersion.cmake
new file mode 100644
index 000000000..2d311efaf
--- /dev/null
+++ b/cmake/GenerateProductVersion.cmake
@@ -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}")
+ 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()
diff --git a/cmake/VersionInfo.in b/cmake/VersionInfo.in
new file mode 100644
index 000000000..2da6f20c4
--- /dev/null
+++ b/cmake/VersionInfo.in
@@ -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
diff --git a/cmake/VersionResource.rc b/cmake/VersionResource.rc
new file mode 100644
index 000000000..3533f36cd
--- /dev/null
+++ b/cmake/VersionResource.rc
@@ -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
diff --git a/share/translations/keepassx_en.ts b/share/translations/keepassx_en.ts
index a6e09aa23..d10bff0de 100644
--- a/share/translations/keepassx_en.ts
+++ b/share/translations/keepassx_en.ts
@@ -388,11 +388,6 @@ Discard changes and close anyway?
-
-
-
-
@@ -406,6 +401,20 @@ Do you want to save it anyway?
+
+
+
+
+
+
+
+
+
+
+
+ DatabaseWidget
@@ -516,10 +525,6 @@ Do you want to save it anyway?
-
-
-
-
@@ -1297,11 +1302,6 @@ This is a one-way migration. You won't be able to open the imported databas
-
-
-
-
@@ -1311,10 +1311,6 @@ Only entries with the same scheme (http://, https://, ftp://, ...) are returned<
-
-
-
-
@@ -1327,10 +1323,6 @@ Only entries with the same scheme (http://, https://, ftp://, ...) are returned<
-
-
-
-
@@ -1347,14 +1339,6 @@ Only entries with the same scheme (http://, https://, ftp://, ...) are returned<
-
-
-
-
-
-
-
-
@@ -1389,6 +1373,27 @@ This is required for accessing your databases from ChromeIPass or PassIFox
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PasswordGeneratorWidget
@@ -1761,10 +1766,6 @@ give it a unique name to identify and accept it.
-
-
-
-
@@ -1773,5 +1774,9 @@ give it a unique name to identify and accept it.
+
+
+
+
diff --git a/share/translations/keepassx_fr.ts b/share/translations/keepassx_fr.ts
index 260e2da71..e34f918e1 100644
--- a/share/translations/keepassx_fr.ts
+++ b/share/translations/keepassx_fr.ts
@@ -1,33 +1,64 @@
-
+AboutDialog
-
-
- À propos de KeePassX
-
-
-
- KeePassX est distribué selon les conditions de la GNU General Public License (GPL) version 2 ou (à votre choix) version 3.
-
- Version
+ RévisionUtilise :
+
+
+ À propos de KeePassXC
+
+
+
+ Extensions :
+
+
+
+
+ KeePassXC est distribué suivant les termes de la GNU Licence Publique Générale (GNU GPL) version 2 ou version 3 de la licence (à votre gré).
+
+
+
+ AccessControlDialog
+
+
+ Se souvenir de ce choix
+
+
+
+ Autoriser
+
+
+
+ Refuser
+
+
+
+ %1 a demandé l’accès aux mots de passe pour l'élément suivant (ou les éléments suivants).
+Veuillez sélectionner si vous souhaitez autoriser l’accès.
+
+
+
+ Accès KeePassXC HTTP confirmé
+ AutoType
-
-
- Auto-Type - KeePassX
- Impossible de trouver une entrée qui corresponde au titre de la fenêtre :
+
+
+ Remplissage automatique - KeePassXC
+ AutoTypeAssociationsModel
@@ -46,14 +77,14 @@
AutoTypeSelectDialog
-
-
- Auto-Type - KeePassX
- Choisissez un champ pour Auto-Type :
+
+
+ Remplissage automatique - KeePassXC
+ ChangeMasterKeyWidget
@@ -69,10 +100,6 @@
Confirmez le mot de passe :
-
-
- Fichier-clé
- Naviguer
@@ -119,7 +146,7 @@
- Échec de définition du fichier-clé
+ Impossible de définir le fichier-clé
+
+
+ Fichier-clé
+ DatabaseOpenWidget
@@ -226,10 +257,6 @@ Vous pouvez maintenant la sauvegarder.
Nom d'utilisateur par défaut :
-
-
- Utiliser la corbeille :
- MiB
@@ -246,6 +273,10 @@ Vous pouvez maintenant la sauvegarder.
Taille max. de l'historique :
+
+
+ Utiliser la corbeille
+ DatabaseTabWidget
@@ -319,12 +350,6 @@ Enregistrer les modifications ?
verrouillée
-
-
- La base de données que vous essayez d'ouvrir est verrouillée par une autre instance de KeePassX.
-Voulez-vous quand même l'ouvrir ? Dans ce cas, elle sera ouverte en lecture seule.
- Verrouiller la base de données
@@ -368,14 +393,38 @@ Ignorer les changements et fermer ?
Échec de l'écriture du fichier CSV.
-
- La base de données que vous essayez de sauvegarder a été verrouillée par une autre instance de KeePassX.
-Voulez-vous quand même la sauvegarder ?
+
+ Impossible d'ouvrir la base de données.
-
-
+
+ Fusionner les bases de données
+
+
+
+ La base de données que vous essayez d'enregistrer est verrouillée par une autre instance de KeePassXC.
+Voulez vous l'enregistrer quand même ?
+
+
+
+ Mots de passe
+
+
+
+ La base de données est déjà ouverte
+
+
+
+ La base de données que vous essayez d'ouvrir est verrouillée par une autre instance de KeePassXC.
+
+Voulez vous l'ouvrir quand même ?
+
+
+
+ Ouvrir en lecture seule
@@ -416,10 +465,6 @@ Voulez-vous quand même la sauvegarder ?
Voulez-vous supprimer le groupe "%1" définitivement ?
-
-
- Groupe actif
- Erreur
@@ -430,11 +475,67 @@ Voulez-vous quand même la sauvegarder ?
-
+ Placer l'élément dans la corbeille ?
-
+ Êtes-vous sûr de vouloir placer l'élément "%1" dans la corbeille ?
+
+
+
+ Recherche...
+
+
+
+ Pas de base de données.
+
+
+
+ Aucune base de données source, il n'y a rien à faire.
+
+
+
+ Résultats de la recherche (%1)
+
+
+
+ Pas de résultats
+
+
+
+ Exécuter la commande ?
+
+
+
+ Voulez-vous vraiment exécuter la commande suivante ?<br><br>%1<br>
+
+
+
+ Se souvenir de mon choix
+
+
+
+ Demande de rafraîchissement automatique
+
+
+
+ Le fichier de la base de données à été modifié. Voulez-vous charger les changements ?
+
+
+
+ Demande de fusion
+
+
+
+ Le fichier de la base de données à changé et vous avez des modification non-enregistrés. Voulez-vous fusionner vos modifications?
+
+
+
+ Échec du rafraîchissement automatique
+
+
+
+ La nouvelle base de données ne peux être ouverte pendant qu'un rafraîchissement automatique de l'actuelle est en cours.
@@ -559,14 +660,6 @@ Voulez-vous quand même la sauvegarder ?
Activer le remplissage automatique pour cette entrée
-
-
- Utiliser la séquence de remplissage automatique par défaut du groupe
-
-
-
- Utiliser une séquence de remplissage automatique personnalisée :
- +
@@ -580,11 +673,19 @@ Voulez-vous quand même la sauvegarder ?
Titre de la fenêtre :
-
+
+ Utiliser la séquence de remplissage automatique par défaut du groupe
+
+
+
+ Utiliser une séquence de remplissage automatique personnalisée :
+
+
+
Utiliser la séquence par défaut
-
+
Définir une séquence personnalisée :
@@ -625,10 +726,6 @@ Voulez-vous quand même la sauvegarder ?
Confirmation :
-
-
- Gen.
- URL :
@@ -714,14 +811,6 @@ Voulez-vous quand même la sauvegarder ?
EditWidgetIcons
-
-
- Utiliser l'icône par défaut
-
-
-
- Utiliser une icône personnalisée
- Ajouter une icône personnalisée
@@ -746,17 +835,33 @@ Voulez-vous quand même la sauvegarder ?
Impossible de supprimer l'icône !
-
-
- Impossible de supprimer l'icône. Toujours utilisée par %n objet(s).Impossible de supprimer l'icône. Toujours utilisée par %n objet(s).
-
-
+ Erreur
-
-
+
+ Télécharger la favicône
+
+
+
+ Impossible de récupérer la favicône
+
+
+
+ Impossible de lire l'icône
+
+
+
+ Impossible de supprimer l'icône. Encore utilisée par 1% éléments.
+
+
+
+ Utiliser l'icône par défaut
+
+
+
+ Utiliser une icône personnalisée
@@ -778,6 +883,13 @@ Voulez-vous quand même la sauvegarder ?
Uuid :
+
+ Entry
+
+
+ - Cloner
+
+EntryAttributesModel
@@ -830,6 +942,61 @@ Voulez-vous quand même la sauvegarder ?
Corbeille
+
+ HttpPasswordGeneratorWidget
+
+
+ Longueur:
+
+
+
+ Types de caractères:
+
+
+
+ Lettres majuscules
+
+
+
+ A-Z
+
+
+
+ Lettres minuscules
+
+
+
+ a-z
+
+
+
+ Chiffres
+
+
+
+ 0-9
+
+
+
+ Caractères spéciaux
+
+
+
+ /*_& ...
+
+
+
+ Exclure les caractères qui se ressemblent
+
+
+
+ S'assurer que le mot de passe contienne des caractères de chaque groupe
+
+
+
+ Accepter
+
+KeePass1OpenWidget
@@ -873,7 +1040,7 @@ Voulez-vous quand même la sauvegarder ?
-
+ Clé incorrecte ou la base de données est corrompue.
@@ -912,8 +1079,8 @@ Ceci est une migration à sens unique. Vous ne serez plus en mesure d'ouvri
Erreur fatale lors des tests des fonctions cryptographiques.
-
- KeePassX - Erreur
+
+ KeePassXC - Erreur
@@ -922,102 +1089,14 @@ Ceci est une migration à sens unique. Vous ne serez plus en mesure d'ouvri
Base de données
-
-
- Bases de données récentes
-
-
-
- Aide
-
-
-
- Entrées
-
-
-
- Copier l'attribut dans le presse-papier
-
-
-
- Groupes
-
-
-
- Vue
-
-
-
- Quitter
-
-
-
- À propos
- Ouvrir une base de données
-
-
- Enregistrer la base de données
-
-
-
- Fermer la base de données
-
-
-
- Nouvelle base de données
-
-
-
- Ajouter une entrée
-
-
-
- Voir/Modifier l'entrée
-
-
-
- Supprimer l'entrée
-
-
-
- Ajouter un groupe
-
-
-
- Modifier le groupe
-
-
-
- Supprimer le groupe
-
-
-
- Enregistrer la base de données sous
-
-
-
- Modifier la clé maître
- Paramètres de la base de données
-
-
- Importer une base de données KeePass 1
-
-
-
- Dupliquer l'entrée
-
-
-
- Chercher
- Copier le nom d'utilisateur dans le presse-papier
@@ -1030,30 +1109,6 @@ Ceci est une migration à sens unique. Vous ne serez plus en mesure d'ouvri
Paramètres
-
-
- Effectuer un remplissage automatique
-
-
-
- Ouvrir l'URL
-
-
-
- Verrouiller les bases de données
-
-
-
- Titre
-
-
-
- URL
-
-
-
- Notes
- Afficher la barre d'outils
@@ -1070,22 +1125,6 @@ Ceci est une migration à sens unique. Vous ne serez plus en mesure d'ouvri
Outils
-
-
- Copier le nom d'utilisateur
-
-
-
- Copier le mot de passe
-
-
-
- Exporter au format CSV
-
-
-
- Réparer la base de données
- Base de données KeePass 2
@@ -1106,6 +1145,263 @@ Ceci est une migration à sens unique. Vous ne serez plus en mesure d'ouvri
Une erreur s'est produite lors de l'écriture de la base de données.
+
+
+ Bases de données récentes
+
+
+
+ Aide
+
+
+
+ Entrées
+
+
+
+ Copier l'attribut dans le presse-papier
+
+
+
+ Groupes
+
+
+
+ Affichage
+
+
+
+ &Quitter
+
+
+
+ &A propos
+
+
+
+ &Ouvrir la base de données
+
+
+
+ Enregistrer la base de données
+
+
+
+ Fermer la base de données
+
+
+
+ &Nouvelle base de données
+
+
+
+ Fusionner depuis la base de données KeePassX
+
+
+
+ Ajouter une nouvelle entrée
+
+
+
+ Voir/Editer l'entrée
+
+
+
+ Supprimer l'entrée
+
+
+
+ &Ajouter un nouveau groupe
+
+
+
+ &Modifier le groupe
+
+
+
+ &Supprimer le groupe
+
+
+
+ Enregistrer la base de données sous
+
+
+
+ Changer la clé &maître
+
+
+
+ Paramètre de la base de &données
+
+
+
+ &Importer 1 base de données KeePass
+
+
+
+ Cloner l'entrée
+
+
+
+ Trouver
+
+
+
+ Copier le nom d'utilisateur
+
+
+
+ Copier le mot de passe
+
+
+
+ Paramètres
+
+
+
+ Exécuter la saisie semi-automatique
+
+
+
+ &Ouvrir l'URL
+
+
+
+ Verrouiller les bases de données
+
+
+
+ &Titre
+
+
+
+ &URL
+
+
+
+ &Notes
+
+
+
+ &Exporter vers un fichier CSV
+
+
+
+ Ré&parer la base de données
+
+
+
+ Générateur de mot de passe
+
+
+
+ OptionDialog
+
+
+ Dialogue
+
+
+
+ Général
+
+
+
+ Montrer une notification quand les références sont demandées
+
+
+
+
+
+
+
+ Trier les entrées correspondantes par nom d'&utilisateur
+
+
+
+ Supprimer toutes les permissions enregistrées des entrées de la base de données active
+
+
+
+ Générateur de mots de passe
+
+
+
+ Avancé
+
+
+
+ Toujours autoriser l'&accès aux entrées
+
+
+
+ Toujours autoriser la mise à jour des entrées
+
+
+
+ Cherc&her dans toutes les bases de données ouvertes les entrées correspondantes
+
+
+
+ Seule la base de données sélectionnée doit être connectée à un client !
+
+
+
+ Port HTTP:
+
+
+
+ Port par défaut: 19455
+
+
+
+ Demander de déverrouiller la base de données lorsque celle-ci est verrouiller
+
+
+
+ Trier les entrées correspondantes par titre
+
+
+
+ Activer le protocole HTTP de KeePassXC
+Ce protocole est nécessaire si vous souhaitez accéder à vos bases de données avec ChromeIPas ou PassIFox
+
+
+
+ KeepassXC va écouter ce port sur 127.0.0.1
+
+
+
+ Liaison impossible avec les ports privilégiés
+
+
+
+ Liaison impossible avec les ports privilégiés, ceux avant 1024 !
+Restauration du port 19455 par défaut.
+
+
+
+
+
+
+
+ Supprimer toutes les clés de chiffrement partagées de la base de données active
+
+
+
+ La modification de ces préférences peuvent entrainer des problèmes de sécurité. Ne continuez que si vous savez ce que vous faites !
+
+
+
+
+
+
+
+ La création ou la mise a jour automatique ne sont pas pris en charge pour les champs de chaines de caractères !
+ PasswordGeneratorWidget
@@ -1113,10 +1409,6 @@ Ceci est une migration à sens unique. Vous ne serez plus en mesure d'ouvri
Mot de passe :
-
-
- Longueur :
- Types de caractères
@@ -1141,71 +1433,72 @@ Ceci est une migration à sens unique. Vous ne serez plus en mesure d'ouvri
Exclure les caractères se ressemblant
-
-
- S'assurer que le mot de passe possède un caractère de chaque groupe
- Accepter
-
-
- QCommandLineParser
-
- Afficher les informations de version.
+
+ %p%
-
- Afficher cette aide.
+
+ force
-
- Option inconnue '%1'.
+
+ entropie
-
- Options inconnues : %1.
+
+ &Longueur:
-
- Valeur manquante après '%1'.
+
+ Inclure des caractères de chaque groupe
-
- Valeur inattendue après '%1'.
+
+ Générer
-
- [options]
+
+ Fermer
-
- Utilisation : %1
+
+ Appliquer
-
- Options :
+
+ Entropie: %1 bit
-
- Arguments :
+
+ Qualité du mot de passe: %1
+
+
+
+ Pauvre
+
+
+
+ Faible
+
+
+
+ Bon
+
+
+
+ Excellent
- QSaveFile
+ QObject
-
- Le fichier existant %1 n'est pas accessible en écriture
-
-
-
- Écriture annulée par l'application
-
-
-
- Écriture partielle. Partition pleine ?
+
+ Http
@@ -1245,20 +1538,111 @@ Ceci est une migration à sens unique. Vous ne serez plus en mesure d'ouvri
SearchWidget
-
- Chercher :
-
-
-
+
Sensible à la casse
-
- Groupe actif
+
+ Chercher
-
- Groupe racine
+
+ Trouver
+
+
+
+ Effacer
+
+
+
+ Service
+
+
+ Une clé de chiffrement partagée avec le nom "%1" existe déjà.
+Voulez-vous l'écraser ?
+
+
+
+ Voulez-vous mettre à jour l'information dans %1 - %2 ?
+
+
+
+ La base de données actuelle est verrouillée !
+Veuillez déverrouiller la base de données sélectionnée ou en choisir une qui est déverrouillée.
+
+
+
+ %1 %2 de chiffrement ont été retirés avec succès des paramètres de KeePassX/Http.
+
+
+
+ Aucune clé de chiffrement partagée trouvée dans les paramètres de KeePassHttp.
+
+
+
+ La base de données actuelle ne contient aucun paramètres de KeePassHttp.
+
+
+
+ Effacement des permissions enregistrées...
+
+
+
+ Annuler
+
+
+
+ Les permissions de %1 %2 ont été retirées avec succès.
+
+
+
+ La base de données actuelle ne contient aucun élément avec des permissions.
+
+
+
+ KeePassXC: nouvelle demande d'association
+
+
+
+ Vous avez reçu une demande d'association pour la clé ci-dessus.
+Si vous voulez autoriser cette clé à accéder à votre base de données KeePassXC,
+attribuez lui un nom unique pour l'identifier et acceptez la.
+
+
+
+ KeePassXC: Écraser la clé existante ?
+
+
+
+ KeePassXC: Mettre à jour l'élément
+
+
+
+ KeePassXC: Base de données verrouillée !
+
+
+
+ KeePassXC: Les clés ont été effacées de la base de donnée
+
+
+
+ KeePassXC: Aucune clé trouvée
+
+
+
+ KeePassXC: Paramètre indisponible !
+
+
+
+ KeePassXC: Permissions retirées
+
+
+
+ KeePassXC: Aucune entrée avec permissions trouvée !
@@ -1282,10 +1666,6 @@ Ceci est une migration à sens unique. Vous ne serez plus en mesure d'ouvri
Se souvenir des dernières bases de données
-
-
- Ouvrir les bases de données précédentes au démarrage
- Sauvegarder automatiquement à la sortie
@@ -1308,7 +1688,7 @@ Ceci est une migration à sens unique. Vous ne serez plus en mesure d'ouvri
- Utiliser la correspondance entre le titre de l'entrée et de la fenêtre pour le remplissage automatique global
+
@@ -1327,12 +1707,20 @@ Ceci est une migration à sens unique. Vous ne serez plus en mesure d'ouvri
Se rappeler les derniers fichiers-clés ouverts
-
-
+
+ Charger les bases de données précédentes au démarrage
-
-
+
+ Recharger automatiquement la base de données quand celle-ci est modifier depuis l'extérieur
+
+
+
+ Envoyer la fenêtre dans la zone de notification au lieu de quitter l'application
+
+
+
+ Minimiser la fenêtre lors du démarrage de l'application
@@ -1357,6 +1745,14 @@ Ceci est une migration à sens unique. Vous ne serez plus en mesure d'ouvri
Toujours demander avant d'effectuer un remplissage automatique
+
+
+ Verrouiller la base de données lorsque la fenêtre est minimisée
+
+
+
+ Ne pas demander de répéter le mot de passe lorsque celui-ci est visible
+ UnlockDatabaseWidget
@@ -1374,14 +1770,6 @@ Ceci est une migration à sens unique. Vous ne serez plus en mesure d'ouvri
main
-
-
- KeePassX - Gestionnaire de mot de passe multi-plateforme
-
-
-
- Nom de fichier de la base de données de mot de passe à ouvrir (*.kdbx)
- Chemin vers un fichier de configuration personnalisé
@@ -1390,5 +1778,17 @@ Ceci est une migration à sens unique. Vous ne serez plus en mesure d'ouvri
Fichier-clé de la base de données
+
+
+ KeePassXC - Gestionnaire de mots de passe multiplateforme
+
+
+
+ Lire le mot de passe de la base de données sur l'entrée standard
+
+
+
+
+
\ No newline at end of file
diff --git a/share/translations/keepassx_lt.ts b/share/translations/keepassx_lt.ts
index 824101c51..152dad900 100644
--- a/share/translations/keepassx_lt.ts
+++ b/share/translations/keepassx_lt.ts
@@ -13,16 +13,16 @@
Apie KeePassXC
-
-
- KeePassXC yra platinama GNU Bendrosios Viešosios Licencijos (GPL) versijos 2 arba (jūsų pasirinkimu) versijos 3 sąlygomis.
- Plėtiniai:
+
+
+ KeePassXC yra platinama GNU Bendrosios Viešosios Licencijos (GPL) versijos 2 arba (jūsų pasirinkimu) versijos 3 sąlygomis.
+ AccessControlDialog
@@ -100,10 +100,6 @@ Pasirinkite, ar norite leisti prieigą.
Pakartokite slaptažodį:
-
-
- Rakto failas
- Naršyti
@@ -158,6 +154,10 @@ Pasirinkite, ar norite leisti prieigą.
Nepavyko nustatyti %1 kaip rakto failą:
%2
+
+
+ &Rakto failas
+ DatabaseOpenWidget
@@ -257,10 +257,6 @@ Dabar galite ją įrašyti.
Numatytasis naudotojo vardas:
-
-
- Naudoti šiukšlinę:
- MiB
@@ -277,6 +273,10 @@ Dabar galite ją įrašyti.
Didžiausias istorijos dydis:
+
+
+ Naudoti šiukšlinę
+ DatabaseTabWidget
@@ -396,12 +396,6 @@ Vis tiek atmesti pakeitimus ir užverti?
Nepavyko atverti duomenų bazės.
-
-
- Duomenų bazė, kurią bandote atverti, yra užrakinta kito KeePassXC egzemplioriaus.
-Ar vis tiek norite ją atverti? Tokiu atveju duomenų bazė bus atverta tik skaitymui.
- Sulieti duomenų bazę
@@ -412,6 +406,25 @@ Do you want to save it anyway?
Duomenų bazė, kurią bandote įrašyti yra užrakinta kito KeePassXC programos egzemplioriaus.
Ar vis tiek norite ją įrašyti?
+
+
+ Slaptažodžiai
+
+
+
+ Duomenų bazė jau atverta
+
+
+
+ Duomenų bazė, kurią bandote atverti yra užrakinta kito KeePassXC programos egzemplioriaus.
+Ar vis tiek norite ją atverti?
+
+
+
+ Atverti tik skaitymui
+ DatabaseWidget
@@ -519,10 +532,6 @@ Ar vis tiek norite ją įrašyti?
Automatinis įkėlimas iš naujo nepavyko
-
-
- Nepavyko išanalizuoti ar atrakinti naujos duomenų bazės failo, bandant automatiškai iš naujo įkelti šią duomenų bazę.
- Nepavyko atverti naujos duomenų bazės failo, bandant automatiškai iš naujo įkelti šią duomenų bazę.
@@ -650,14 +659,6 @@ Ar vis tiek norite ją įrašyti?
Įjungti šiam įrašui automatinį rinkimą
-
-
- Paveldėti numatytąją automatinio rinkimo seką iš grupės
-
-
-
- Naudoti tinkintą automatinio rinkimo seka:
- +
@@ -671,12 +672,20 @@ Ar vis tiek norite ją įrašyti?
Lango antraštė:
-
- Naudoti numatytąją seką
+
+ Paveldėti numatytąją automatinio rinkimo seką iš &grupės
-
- Nustatyti tinkintą seką:
+
+ Na&udoti tinkintą automatinio rinkimo seka:
+
+
+
+ Naudoti numatytąją se&ką
+
+
+
+ Nustatyti tinkintą s&eką:
@@ -801,14 +810,6 @@ Ar vis tiek norite ją įrašyti?
EditWidgetIcons
-
-
- Naudoti numatytąją piktogramą
-
-
-
- Naudoti tinkintą piktogramą
- Pridėti tinkintą piktogramą
@@ -853,6 +854,14 @@ Ar vis tiek norite ją įrašyti?
Nepavyksta ištrinti piktogramos. Vis dar naudojama %1 elementų.
+
+
+ Na&udoti numatytąją piktogramą
+
+
+
+ Naudoti tinkintą piktogra&mą
+ EditWidgetProperties
@@ -1298,12 +1307,6 @@ Tai yra vienakryptis perkėlimas. Jūs negalėsite atverti importuotos duomenų
R&odyti pranešimą, kai reikalaujama prisijungimo duomenų
-
-
- &Vietoj visų įrašų, skirtų visai sričiai,
-grąžinti tik geriausiai atitinkančius įrašus, skirtus URL
-
@@ -1314,10 +1317,6 @@ Bus grąžinami įrašai tik su ta pačia schema (http://, https://, ftp://, ...
Rikiuoti atitinkančius įrašus pagal na&udotojo vardą
-
-
- Ša&linti iš aktyvios duomenų bazės visus bendrinamus šifravimo raktus
- Šal&inti iš įrašų aktyvioje duomenų bazėje visus saugomus leidimus
@@ -1330,10 +1329,6 @@ Bus grąžinami įrašai tik su ta pačia schema (http://, https://, ftp://, ...
Išplėstiniai
-
-
- Aktyvuokite tai tik tuo atveju, jeigu žinote ką darote!
- Visada leisti &prieigą prie įrašų
@@ -1350,14 +1345,6 @@ Bus grąžinami įrašai tik su ta pačia schema (http://, https://, ftp://, ...
Su klientu turi būti sujungta tik pasirinkta duomenų bazė!
-
-
- &Taip pat grąžinti ir išplėstines eilutes, kurios prasideda "KPH: "
-
-
-
- Šiems eilutės laukams automatiniai kūrimai ir atnaujinimai neprieinami!
- HTTP prievadas:
@@ -1394,6 +1381,28 @@ Using default port 19455.
Nepavyksta susieti su privilegijuotais prievadais žemiau 1024!
Naudojamas numatytasis prievadas 19455.
+
+
+ &Vietoj visų įrašų, skirtų visai sričiai,
+grąžinti tik geriausiai atitinkančius įrašus, skirtus URL
+
+
+
+ Ša&linti iš aktyvios duomenų bazės visus bendrinamus šifravimo raktus
+
+
+
+ Šios parinktys gali būti pavojingos. Keiskite jas tik tuo atveju, jeigu žinote ką darote!
+
+
+
+ &Grąžinti išplėstines eilutes, kurios prasideda "KPH: "
+
+
+
+ Automatinis eilutės laukų kūrimas ar atnaujinimas nėra palaikomas.
+ PasswordGeneratorWidget
@@ -1463,7 +1472,7 @@ Naudojamas numatytasis prievadas 19455.
- Entropija: %1 bit
+ Entropija: %1 bitų
@@ -1535,7 +1544,7 @@ Naudojamas numatytasis prievadas 19455.
- Ieškoti
+ Paieška
@@ -1771,10 +1780,6 @@ ir priimtumėte jį.
duomenų bazės rakto failas
-
-
- norimos atverti slaptažodžių duomenų bazės(-ių) failo pavadinimas(-ai) (*.kdbx)
- KeePassXC - daugiaplatformė slaptažodžių tvarkytuvė
@@ -1783,5 +1788,9 @@ ir priimtumėte jį.
nuskaityti duomenų bazės slaptažodį iš stdin
+
+
+ norimų atverti slaptažodžių duomenų bazių failų pavadinimai (*.kdbx)
+
\ No newline at end of file
diff --git a/share/translations/keepassx_zh_CN.ts b/share/translations/keepassx_zh_CN.ts
index b2b3adf1a..5f4f59f60 100644
--- a/share/translations/keepassx_zh_CN.ts
+++ b/share/translations/keepassx_zh_CN.ts
@@ -1,14 +1,6 @@
-
+AboutDialog
-
-
- 关于 KeePassX
-
-
-
- KeePassX 使用的是第 2 版 GNU 通用公共授权协议(GPL)(你可以根据需要选用第 3 版).
- 修改
@@ -17,17 +9,55 @@
使用:
+
+
+ 关于 KeePassXC
+
+
+
+ 扩展:
+
+
+
+
+ KeePassXC 使用的是第 2 版 GNU 通用公共授权协议(GPL)(你可以根据需要选用第 3 版).
+
+
+
+ AccessControlDialog
+
+
+
+
+
+
+ 允许
+
+
+
+ 拒绝
+
+
+
+
+
+
+
+
+ AutoType
-
-
- KeePassX - 自动输入
- 无法找到符合窗口标题的项目
+
+
+ KeePassXC - 自动输入
+ AutoTypeAssociationsModel
@@ -46,14 +76,14 @@
AutoTypeSelectDialog
-
-
- KeePassX - 自动输入
- 选择自动输入的项目
+
+
+ KeePassXC - 自动输入
+ ChangeMasterKeyWidget
@@ -69,10 +99,6 @@
重复密码:
-
-
- 秘钥文件
- 浏览
@@ -127,6 +153,10 @@
无法设置 %1 为秘钥文件:
%2
+
+
+ 秘钥文件
+ DatabaseOpenWidget
@@ -226,10 +256,6 @@ You can now save it.
默认用户名:
-
-
- 使用垃圾桶:
- MiB
@@ -246,6 +272,10 @@ You can now save it.
最大历史记录大小:
+
+
+ 使用回收站
+ DatabaseTabWidget
@@ -319,12 +349,6 @@ Save changes?
已锁
-
-
- 你要打开的数据库已被另一个KeePassX锁住。
-你确定要以只读方式的打开吗?
- 锁住数据库
@@ -368,15 +392,38 @@ Discard changes and close anyway?
写入CSV格式文件失败
-
+
+ Merge database
+ 合并数据库
+
+
+ The database you are trying to save as is locked by another instance of KeePassXC.
Do you want to save it anyway?
- 你要保存的数据库已被另一个KeePassX锁住。
+ 你要保存的数据库已被另一个KeePassXC锁住。
你仍然要保存吗?
- Unable to open the database.
+ Passwords
+
+ Database already opened
+ 数据库已经打开
+
+
+ The database you are trying to open is locked by another instance of KeePassXC.
+
+Do you want to open it anyway?
+ 你要打开的数据库已被另一个KeePassXC锁住。
+你仍然要打开吗?
+
+
+ Open read-only
+ 已只读方式打开
+ DatabaseWidget
@@ -416,10 +463,6 @@ Do you want to save it anyway?
Do you really want to delete the group "%1" for good?你确定永远删除 "%1" 群组吗?
-
- Current group
- 当前群组
- Error错误
@@ -430,11 +473,67 @@ Do you want to save it anyway?
Move entry to recycle bin?
-
+ 移动项目到回收站?Do you really want to move entry "%1" to the recycle bin?
-
+ 是否删除 "%1" 项目到回收站?
+
+
+ Searching...
+ 搜索中...
+
+
+ No current database.
+ 没有当前的数据库。
+
+
+ No source database, nothing to do.
+ 没有当前的数据库。没什么可做的。
+
+
+ Search Results (%1)
+ 搜索结果 (%1)
+
+
+ No Results
+ 无结果
+
+
+ Execute command?
+ 执行命令?
+
+
+ Do you really want to execute the following command?<br><br>%1<br>
+ 你确定要执行以下命令?<br><br>%1<br>
+
+
+ Remember my choice
+ 记住这次更改
+
+
+ Autoreload Request
+ 自动加载请求
+
+
+ The database file has changed. Do you want to load the changes?
+ 数据库文件已更改。是否重新载入?
+
+
+ Merge Request
+ 合并请求
+
+
+ The database file has changed and you have unsaved changes.Do you want to merge your changes?
+ 数据库文件已更改,您有未保存的更改。是否合并您的更改?
+
+
+ Autoreload Failed
+ 自动加载失败
+
+
+ Could not open the new database file while attempting to autoreload this database.
+ 在尝试 autoreload 此数据库不打开新的数据库文件。
@@ -559,14 +658,6 @@ Do you want to save it anyway?
Enable Auto-Type for this entry打开此项目的自动输入
-
- Inherit default Auto-Type sequence from the group
- 从父群组继承默认的自动输入顺序
-
-
- Use custom Auto-Type sequence:
- 使用自定义自动输入顺序
- ++
@@ -580,11 +671,19 @@ Do you want to save it anyway?
窗口标题:
- Use default sequence
+ Inherit default Auto-Type sequence from the &group
+ 从父群组继承默认的自动输入顺序
+
+
+ &Use custom Auto-Type sequence:
+ 使用自定义自动输入顺序
+
+
+ Use default se&quence使用默认顺序
- Set custom sequence:
+ Set custo&m sequence:设置自定义顺序
@@ -625,10 +724,6 @@ Do you want to save it anyway?
Repeat:重复:
-
- Gen.
- 生成.
- URL:网址:
@@ -714,14 +809,6 @@ Do you want to save it anyway?
EditWidgetIcons
-
- Use default icon
- 使用默认图标
-
-
- Use custom icon
- 使用自定义图标
- Add custom icon添加自定义图标
@@ -746,17 +833,33 @@ Do you want to save it anyway?
Can't delete icon!不能删除图标!
-
- Can't delete icon. Still used by %n item(s).
- 不能删除图标。仍在被 %n 个项目使用
- Error
-
+ 错误
- Can't read icon:
-
+ Download favicon
+ 下载网站头像
+
+
+ Unable to fetch favicon.
+ 无法获取网站头像
+
+
+ Can't read icon
+ 无法读取图标
+
+
+ Can't delete icon. Still used by %1 items.
+ %1 项目正在使用,无法删除图标。
+
+
+ &Use default icon
+ 使用默认图标
+
+
+ Use custo&m icon
+ 使用自定义图标
@@ -778,6 +881,13 @@ Do you want to save it anyway?
Uuid(通用唯一识别码):
+
+ Entry
+
+ - Clone
+ - 复制
+
+EntryAttributesModel
@@ -830,6 +940,61 @@ Do you want to save it anyway?
垃圾桶
+
+ HttpPasswordGeneratorWidget
+
+ Length:
+ 长度:
+
+
+ Character Types
+ 字符类型
+
+
+ Upper Case Letters
+ 大写英文字母
+
+
+ A-Z
+ A-Z
+
+
+ Lower Case Letters
+ 小写英文字母
+
+
+ a-z
+ a-z
+
+
+ Numbers
+ 数字
+
+
+ 0-9
+ 0-9
+
+
+ Special Characters
+ 特殊字符
+
+
+ /*_& ...
+ /*_& ...
+
+
+ Exclude look-alike characters
+ 去除相似的字符
+
+
+ Ensure that the password contains characters from every group
+ 确保密码包含每种的字符
+
+
+ Accept
+ 接受
+
+KeePass1OpenWidget
@@ -873,7 +1038,7 @@ Do you want to save it anyway?
Wrong key or database file is corrupt.
-
+ 秘钥错误或数据库损坏。
@@ -911,8 +1076,8 @@ This is a one-way migration. You won't be able to open the imported databas
在测试加密函数时发生重大错误。
- KeePassX - Error
- KeePassX - 错误
+ KeePassXC - Error
+ KeePassXC - 错误
@@ -921,102 +1086,14 @@ This is a one-way migration. You won't be able to open the imported databas
Database数据库
-
- Recent databases
- 最近的数据库
-
-
- Help
- 帮助
-
-
- Entries
- 项目
-
-
- Copy attribute to clipboard
- 将属性复制到剪贴板
-
-
- Groups
- 群组
-
-
- View
- 显示
-
-
- Quit
- 退出
-
-
- About
- 关于
- Open database打开数据库
-
- Save database
- 保存数据库
-
-
- Close database
- 关闭数据库
-
-
- New database
- 新建数据库
-
-
- Add new entry
- 新增项目
-
-
- View/Edit entry
- 浏览/编辑项目
-
-
- Delete entry
- 删除项目
-
-
- Add new group
- 新增群组
-
-
- Edit group
- 编辑群组
-
-
- Delete group
- 删除群组
-
-
- Save database as
- 另存数据库为
-
-
- Change master key
- 更改主密码
- Database settings数据库设置
-
- Import KeePass 1 database
- 导入KeePass 1 数据库
-
-
- Clone entry
- 复制项目
-
-
- Find
- 查找
- Copy username to clipboard将用户名复制到剪贴板
@@ -1029,30 +1106,6 @@ This is a one-way migration. You won't be able to open the imported databas
Settings设置
-
- Perform Auto-Type
- 执行自动输入
-
-
- Open URL
- 打开网址
-
-
- Lock databases
- 锁住数据库
-
-
- Title
- 标题
-
-
- URL
- 网址
-
-
- Notes
- 备注
- Show toolbar显示工具栏
@@ -1069,22 +1122,6 @@ This is a one-way migration. You won't be able to open the imported databas
Tools工具
-
- Copy username
- 复制用户名
-
-
- Copy password
- 复制密码
-
-
- Export to CSV file
- 导出为CSV格式文件
-
-
- Repair database
- 修复数据库
- KeePass 2 DatabaseKeePass 2 数据库
@@ -1105,6 +1142,263 @@ This is a one-way migration. You won't be able to open the imported databas
Writing the database failed.数据库写入失败
+
+ &Recent databases
+ 最近的数据库
+
+
+ He&lp
+ 帮助
+
+
+ E&ntries
+
+
+
+ Copy att&ribute to clipboard
+ 将属性复制到剪贴板
+
+
+ &Groups
+ 群组
+
+
+ &View
+ 显示
+
+
+ &Quit
+ 退出
+
+
+ &About
+ 关于
+
+
+ &Open database
+ 打开数据库
+
+
+ &Save database
+ 保存数据库
+
+
+ &Close database
+ 关闭数据库
+
+
+ &New database
+ 新建数据库
+
+
+ Merge from KeePassX database
+ 从KeePassX数据库合并
+
+
+ &Add new entry
+ 新增项目
+
+
+ &View/Edit entry
+ 浏览/编辑项目
+
+
+ &Delete entry
+ 删除项目
+
+
+ &Add new group
+ 新增群组
+
+
+ &Edit group
+ 编辑群组
+
+
+ &Delete group
+ 删除群组
+
+
+ Sa&ve database as
+ 另存数据库为
+
+
+ Change &master key
+ 更改主密码
+
+
+ &Database settings
+ 数据库设置
+
+
+ &Import KeePass 1 database
+ 导入KeePass 1 数据库
+
+
+ &Clone entry
+ 复制项目
+
+
+ &Find
+ 查找
+
+
+ Copy &username
+ 复制用户名
+
+
+ Cop&y password
+ 复制密码
+
+
+ &Settings
+ 设置
+
+
+ &Perform Auto-Type
+ 执行自动输入
+
+
+ &Open URL
+ 打开网址
+
+
+ &Lock databases
+ 锁住数据库
+
+
+ &Title
+ 标题
+
+
+ &URL
+ 网址
+
+
+ &Notes
+ 备注
+
+
+ &Export to CSV file
+ 导出为CSV格式文件
+
+
+ Re&pair database
+ 修复数据库
+
+
+ Password Generator
+ 密码生成器
+
+
+
+ OptionDialog
+
+ Dialog
+ 对话框
+
+
+ General
+ 常规
+
+
+ Sh&ow a notification when credentials are requested
+
+
+
+ &Match URL schemes
+Only entries with the same scheme (http://, https://, ftp://, ...) are returned
+
+
+
+ Sort matching entries by &username
+ 按匹配用户名排序
+
+
+ Re&move all stored permissions from entries in active database
+
+
+
+ Password generator
+ 密码生成器
+
+
+ Advanced
+ 高级
+
+
+ Always allow &access to entries
+ 永远允许访问项目
+
+
+ Always allow &updating entries
+ 永远允许更新项目
+
+
+ Searc&h in all opened databases for matching entries
+ 在所有打开的数据库中查找匹配项目
+
+
+ Only the selected database has to be connected with a client!
+ 客户端只能连接选中的数据库!
+
+
+ HTTP Port:
+ HTTP端口:
+
+
+ Default port: 19455
+ 默认端口:19455
+
+
+ Re&quest to unlock the database if it is locked
+
+
+
+ Sort &matching entries by title
+ 用标题排序匹配的项目
+
+
+ Enable KeepassXC HTTP protocol
+This is required for accessing your databases from ChromeIPass or PassIFox
+ 启用KeepassXC HTTP协议
+这需要ChromeIPass或PassIFox访问你的数据库
+
+
+ KeePassXC will listen to this port on 127.0.0.1
+ KeePassXC 将监听 127.0.0.1上的此端口
+
+
+ Cannot bind to privileged ports
+ 无法绑定到特殊端口
+
+
+ Cannot bind to privileged ports below 1024!
+Using default port 19455.
+ 无法绑定低于 1024的特殊端口 !
+使用默认端口 19455。
+
+
+ &Return only best matching entries for a URL instead
+of all entries for the whole domain
+ 只返回最佳匹配条目的 URL 而不是整个域的所有条目
+
+
+ R&emove all shared encryption keys from active database
+ 移除所有激活数据库共享的加密密钥
+
+
+ The following options can be dangerous. Change them only if you know what you are doing.
+ 以下选项不要修改。除非你知道自己在做什么。
+
+
+ &Return advanced string fields which start with "KPH: "
+
+
+
+ Automatically creating or updating string fields is not supported.
+ 不支持自动创建或更新字符串字段。
+ PasswordGeneratorWidget
@@ -1112,10 +1406,6 @@ This is a one-way migration. You won't be able to open the imported databas
Password:密码:
-
- Length:
- 长度:
- Character Types字符类型
@@ -1140,71 +1430,72 @@ This is a one-way migration. You won't be able to open the imported databas
Exclude look-alike characters去除相似的字符
-
- Ensure that the password contains characters from every group
- 确保密码包含每种的字符
- Accept接受
-
-
- QCommandLineParser
- Displays version information.
- 显示版本信息
+ %p%
+ %p%
- Displays this help.
- 显示帮助信息
+ strength
+ 强度
- Unknown option '%1'.
- 未知选项 '%1'。
+ entropy
+
- Unknown options: %1.
- 未知选项: %1。
+ &Length:
+ 长度︰
- Missing value after '%1'.
- 在 '%1' 后缺少值。
+ Pick characters from every group
+ 从每个组选择字符
- Unexpected value after '%1'.
- '%1' 后有无法识别的值。
+ Generate
+ 生成
- [options]
- [选项]
+ Close
+ 关闭
- Usage: %1
- 已用:%1
+ Apply
+ 应用
- Options:
- 选项:
+ Entropy: %1 bit
+
- Arguments:
- 参数:
+ Password Quality: %1
+ 密码强度:%1
+
+
+ Poor
+ 差
+
+
+ Weak
+ 弱
+
+
+ Good
+ 好
+
+
+ Excellent
+ 优秀
- QSaveFile
+ QObject
- Existing file %1 is not writable
- 当前文件%1 不可写
-
-
- Writing canceled by application
- 应用程序取消写入
-
-
- Partial write. Partition full?
- 写入不完整。磁盘满了吗?
+ Http
+ Http
@@ -1244,20 +1535,109 @@ This is a one-way migration. You won't be able to open the imported databas
SearchWidget
- Find:
- 查找:
-
-
- Case sensitive
+ Case Sensitive区分大小写
- Current group
- 当前群组
+ Search
+ 搜索
- Root group
- 根群组
+ Find
+ 查找
+
+
+ Clear
+ 清除
+
+
+
+ Service
+
+ A shared encryption-key with the name "%1" already exists.
+Do you want to overwrite it?
+ 一个共享的加密密钥,名为"%1"已存在。
+你想要覆盖它吗?
+
+
+ Do you want to update the information in %1 - %2?
+ 你想更新 %1-%2 中的信息吗?
+
+
+ The active database is locked!
+Please unlock the selected database or choose another one which is unlocked.
+ 激活的数据库被锁定 !
+请解锁选定的数据库或选择另一已解锁的数据库。
+
+
+ Successfully removed %1 encryption-%2 from KeePassX/Http Settings.
+
+
+
+ No shared encryption-keys found in KeePassHttp Settings.
+
+
+
+ The active database does not contain an entry of KeePassHttp Settings.
+
+
+
+ Removing stored permissions...
+ 正在删除存储的权限...
+
+
+ Abort
+ 中断
+
+
+ Successfully removed permissions from %1 %2.
+
+
+
+ The active database does not contain an entry with permissions.
+
+
+
+ KeePassXC: New key association request
+
+
+
+ You have received an association request for the above key.
+If you would like to allow it access to your KeePassXC database
+give it a unique name to identify and accept it.
+
+
+
+ KeePassXC: Overwrite existing key?
+ KeePassXC︰ 覆盖现有的密钥吗?
+
+
+ KeePassXC: Update Entry
+ KeePassXC︰ 更新条目
+
+
+ KeePassXC: Database locked!
+ KeePassXC︰ 数据库被锁定 !
+
+
+ KeePassXC: Removed keys from database
+ KeePassXC︰ 从数据库中删除键
+
+
+ KeePassXC: No keys found
+ KeePassXC︰ 未找到键
+
+
+ KeePassXC: Settings not available!
+ KeePassXC︰ 设置不可用 !
+
+
+ KeePassXC: Removed permissions
+ KeePassXC︰ 已删除的权限
+
+
+ KeePassXC: No entry with permissions found!
+
@@ -1281,10 +1661,6 @@ This is a one-way migration. You won't be able to open the imported databas
Remember last databases记住最近的数据库
-
- Open previous databases on startup
- 在启动时打开最近的数据库
- Automatically save on exit离开后自动保存
@@ -1326,12 +1702,20 @@ This is a one-way migration. You won't be able to open the imported databas
记住最近的秘钥文件
- Hide window to system tray instead of App Exit
-
+ Load previous databases on startup
+ 在启动时加载最近的数据库
- Hide window to system tray on App start
-
+ Automatically reload the database when modified externally
+ 当外部修改时自动重新加载数据库
+
+
+ Hide window to system tray instead of app exit
+ 退出时将窗口最小化至任务栏
+
+
+ Minimize window at application startup
+ 在应用程序启动时窗口最小化
@@ -1356,6 +1740,14 @@ This is a one-way migration. You won't be able to open the imported databas
Always ask before performing auto-type在执行自动输入前询问
+
+ Lock databases after minimizing the window
+ 在最小化窗口后锁定数据库
+
+
+ Don't require password repeat when it is visible
+ 可见时不需要重复输入密码
+ UnlockDatabaseWidget
@@ -1373,14 +1765,6 @@ This is a one-way migration. You won't be able to open the imported databas
main
-
- KeePassX - cross-platform password manager
- KeePassX - 跨平台密码管理软件
-
-
- filename of the password database to open (*.kdbx)
- 打开密码数据库文件名(*.kdbx)
- path to a custom config file自定义配置文件路径
@@ -1389,5 +1773,17 @@ This is a one-way migration. You won't be able to open the imported databas
key file of the database数据库秘钥文件
+
+ KeePassXC - cross-platform password manager
+ KeePassXC - 跨平台密码管理软件
+
+
+ read password of the database from stdin
+ 从标准输入读取数据库的密码
+
+
+ filenames of the password databases to open (*.kdbx)
+ 打开密码数据库文件名(*.kdbx)
+
\ No newline at end of file
diff --git a/setup/gui/keepassxc.desktop b/snap/gui/keepassxc.desktop
similarity index 100%
rename from setup/gui/keepassxc.desktop
rename to snap/gui/keepassxc.desktop
diff --git a/snapcraft.yaml b/snapcraft.yaml
index 5a97a38a1..c0d5919f5 100644
--- a/snapcraft.yaml
+++ b/snapcraft.yaml
@@ -1,5 +1,5 @@
name: keepassxc
-version: 2.1.0
+version: 2.1.3
grade: stable
summary: community driven port of the windows application “Keepass Password Safe”
description: |
@@ -11,7 +11,7 @@ confinement: strict
apps:
keepassxc:
command: desktop-launch keepassxc
- plugs: [unity7, opengl, gsettings, home]
+ plugs: [unity7, opengl, gsettings, home, network, network-bind]
parts:
keepassxc:
@@ -21,6 +21,7 @@ parts:
- -DCMAKE_BUILD_TYPE=Release
- -DWITH_TESTS=OFF
- -DWITH_XC_AUTOTYPE=ON
+ - -DWITH_XC_HTTP=ON
build-packages:
- g++
- libgcrypt20-dev
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index e12873fa2..9935985cc 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -204,7 +204,24 @@ if (UNIX AND NOT APPLE)
target_link_libraries(keepassx_core Qt5::DBus)
endif()
-add_executable(${PROGNAME} WIN32 MACOSX_BUNDLE ${keepassx_SOURCES_MAINEXE})
+if(MINGW)
+ string(REPLACE "." ";" VERSION_LIST ${KEEPASSXC_VERSION})
+ list(GET VERSION_LIST 0 KEEPASSXC_VERSION_MAJOR)
+ list(GET VERSION_LIST 1 KEEPASSXC_VERSION_MINOR)
+ list(GET VERSION_LIST 2 KEEPASSXC_VERSION_PATCH)
+
+ include(GenerateProductVersion)
+ generate_product_version(
+ WIN32_ProductVersionFiles
+ NAME "KeePassXC"
+ COMPANY_NAME "KeePassXC Team"
+ VERSION_MAJOR ${KEEPASSXC_VERSION_MAJOR}
+ VERSION_MINOR ${KEEPASSXC_VERSION_MINOR}
+ VERSION_PATCH ${KEEPASSXC_VERSION_PATCH}
+ )
+endif()
+
+add_executable(${PROGNAME} WIN32 MACOSX_BUNDLE ${keepassx_SOURCES_MAINEXE} ${WIN32_ProductVersionFiles})
target_link_libraries(${PROGNAME} keepassx_core)
set_target_properties(${PROGNAME} PROPERTIES ENABLE_EXPORTS ON)
diff --git a/src/gui/DatabaseTabWidget.cpp b/src/gui/DatabaseTabWidget.cpp
index c425332f7..3168fc383 100644
--- a/src/gui/DatabaseTabWidget.cpp
+++ b/src/gui/DatabaseTabWidget.cpp
@@ -21,6 +21,7 @@
#include
#include
#include
+#include
#include "autotype/AutoType.h"
#include "core/Config.h"
@@ -157,21 +158,29 @@ void DatabaseTabWidget::openDatabase(const QString& fileName, const QString& pw,
// for now silently ignore if we can't create a lock file
// due to lack of permissions
if (lockFile->error() != QLockFile::PermissionError) {
- QMessageBox::StandardButton result = MessageBox::question(this, tr("Open database"),
- tr("The database you are trying to open is locked by another instance of KeePassXC.\n"
- "Do you want to open it anyway? Alternatively the database is opened read-only."),
- QMessageBox::Yes | QMessageBox::No);
+ QMessageBox msgBox;
+ msgBox.setWindowTitle(tr("Database already opened"));
+ msgBox.setText(tr("The database you are trying to open is locked by another instance of KeePassXC.\n\n"
+ "Do you want to open it anyway?"));
+ msgBox.setIcon(QMessageBox::Question);
+ msgBox.addButton(QMessageBox::Yes);
+ msgBox.addButton(QMessageBox::No);
+ auto readOnlyButton = msgBox.addButton(tr("Open read-only"), QMessageBox::NoRole);
+ msgBox.setDefaultButton(readOnlyButton);
+ msgBox.setEscapeButton(QMessageBox::No);
+ auto result = msgBox.exec();
- if (result == QMessageBox::No) {
+ if (msgBox.clickedButton() == readOnlyButton) {
dbStruct.readOnly = true;
delete lockFile;
lockFile = nullptr;
- }
- else {
+ } else if (result == QMessageBox::Yes) {
// take over the lock file if possible
if (lockFile->removeStaleLockFile()) {
lockFile->tryLock();
}
+ } else {
+ return;
}
}
}
diff --git a/src/gui/DatabaseWidget.cpp b/src/gui/DatabaseWidget.cpp
index 1ccf35dd4..8a7b2cf3b 100644
--- a/src/gui/DatabaseWidget.cpp
+++ b/src/gui/DatabaseWidget.cpp
@@ -1061,8 +1061,7 @@ void DatabaseWidget::reloadDatabaseFile()
// Merge the old database into the new one
m_db->setEmitModified(false);
db->merge(m_db);
- }
- else {
+ } else {
// Since we are accepting the new file as-is, internally mark as unmodified
// TODO: when saving is moved out of DatabaseTabWidget, this should be replaced
m_databaseModified = false;
@@ -1086,16 +1085,9 @@ void DatabaseWidget::reloadDatabaseFile()
restoreGroupEntryFocus(groupBeforeReload, entryBeforeReload);
}
- else {
- MessageBox::critical(this, tr("Autoreload Failed"),
- tr("Could not parse or unlock the new database file while attempting"
- " to autoreload this database."));
- }
- }
- else {
+ } else {
MessageBox::critical(this, tr("Autoreload Failed"),
- tr("Could not open the new database file while attempting to autoreload"
- " this database."));
+ tr("Could not open the new database file while attempting to autoreload this database."));
}
// Rewatch the database file
diff --git a/src/gui/MainWindow.cpp b/src/gui/MainWindow.cpp
index a7347b35a..b0e1a1925 100644
--- a/src/gui/MainWindow.cpp
+++ b/src/gui/MainWindow.cpp
@@ -282,6 +282,10 @@ MainWindow::MainWindow()
connect(m_ui->actionAbout, SIGNAL(triggered()), SLOT(showAboutDialog()));
+#ifdef Q_OS_MAC
+ setUnifiedTitleAndToolBarOnMac(true);
+#endif
+
updateTrayIcon();
}
@@ -559,7 +563,7 @@ void MainWindow::closeEvent(QCloseEvent* event)
if (minimizeOnClose && !appExitCalled)
{
event->ignore();
- toggleWindow();
+ hideWindow();
if (config()->get("security/lockdatabaseminimize").toBool()) {
m_ui->tabWidget->lockDatabases();
@@ -724,22 +728,27 @@ void MainWindow::trayIconTriggered(QSystemTrayIcon::ActivationReason reason)
}
}
+void MainWindow::hideWindow()
+{
+ setWindowState(windowState() | Qt::WindowMinimized);
+ QTimer::singleShot(0, this, SLOT(hide()));
+
+ if (config()->get("security/lockdatabaseminimize").toBool()) {
+ m_ui->tabWidget->lockDatabases();
+ }
+}
+
void MainWindow::toggleWindow()
{
if ((QApplication::activeWindow() == this) && isVisible() && !isMinimized()) {
- setWindowState(windowState() | Qt::WindowMinimized);
- QTimer::singleShot(0, this, SLOT(hide()));
-
- if (config()->get("security/lockdatabaseminimize").toBool()) {
- m_ui->tabWidget->lockDatabases();
- }
+ hideWindow();
} else {
ensurePolished();
setWindowState(windowState() & ~Qt::WindowMinimized);
show();
raise();
activateWindow();
-
+
#if defined(Q_OS_LINUX) && ! defined(QT_NO_DBUS)
// re-register global D-Bus menu (needed on Ubuntu with Unity)
// see https://github.com/keepassxreboot/keepassxc/issues/271
diff --git a/src/gui/MainWindow.h b/src/gui/MainWindow.h
index ab9924a75..ff92260f4 100644
--- a/src/gui/MainWindow.h
+++ b/src/gui/MainWindow.h
@@ -68,6 +68,7 @@ private Q_SLOTS:
void rememberOpenDatabases(const QString& filePath);
void applySettingsChanges();
void trayIconTriggered(QSystemTrayIcon::ActivationReason reason);
+ void hideWindow();
void toggleWindow();
void lockDatabasesAfterInactivity();
void repairDatabase();
diff --git a/src/http/OptionDialog.ui b/src/http/OptionDialog.ui
index ab8047db4..c9aae49ef 100644
--- a/src/http/OptionDialog.ui
+++ b/src/http/OptionDialog.ui
@@ -45,7 +45,7 @@ This is required for accessing your databases from ChromeIPass or PassIFox
- &Return only best matching entries for an URL instead
+ &Return only best matching entries for a URL instead
of all entries for the whole domain
@@ -82,7 +82,7 @@ Only entries with the same scheme (http://, https://, ftp://, ...) are returned<
- R&emove all shared encryption-keys from active database
+ R&emove all shared encryption keys from active database
@@ -148,7 +148,7 @@ Only entries with the same scheme (http://, https://, ftp://, ...) are returned<
color: rgb(255, 0, 0);
- Activate the following only, if you know what you are doing!
+ The following options can be dangerous. Change them only if you know what you are doing.
@@ -186,14 +186,14 @@ Only entries with the same scheme (http://, https://, ftp://, ...) are returned<
- &Return also advanced string fields which start with "KPH: "
+ &Return advanced string fields which start with "KPH: "
- Automatic creates or updates are not supported for string fields!
+ Automatically creating or updating string fields is not supported.30
diff --git a/src/http/Protocol.cpp b/src/http/Protocol.cpp
index 40a1445c0..bcb30f0b1 100644
--- a/src/http/Protocol.cpp
+++ b/src/http/Protocol.cpp
@@ -110,7 +110,7 @@ static QByteArray encrypt2(const QByteArray & data, SymmetricCipherGcrypt & ciph
//Encrypt
QByteArray buffer = data + QByteArray(paddingSize, paddingSize);
cipher.reset();
- cipher.processInPlace(buffer);
+ Q_UNUSED(cipher.processInPlace(buffer));
return buffer;
}
diff --git a/src/http/qhttp/http-parser/http_parser.h b/src/http/qhttp/http-parser/http_parser.h
index 45c72a078..005db96ec 100644
--- a/src/http/qhttp/http-parser/http_parser.h
+++ b/src/http/qhttp/http-parser/http_parser.h
@@ -91,7 +91,7 @@ typedef int (*http_cb) (http_parser*);
/* Status Codes */
-#define HTTP_STATUS_MAP(XX) \
+#define HTTPPARSER_HTTP_STATUS_MAP(XX) \
XX(100, CONTINUE, Continue) \
XX(101, SWITCHING_PROTOCOLS, Switching Protocols) \
XX(102, PROCESSING, Processing) \
@@ -150,12 +150,12 @@ typedef int (*http_cb) (http_parser*);
XX(507, INSUFFICIENT_STORAGE, Insufficient Storage) \
XX(508, LOOP_DETECTED, Loop Detected) \
XX(510, NOT_EXTENDED, Not Extended) \
- XX(511, NETWORK_AUTHENTICATION_REQUIRED, Network Authentication Required) \
+ XX(511, NETWORK_AUTHENTICATION_REQUIRED, Network Authentication Required)
enum http_status
{
#define XX(num, name, string) HTTP_STATUS_##name = num,
- HTTP_STATUS_MAP(XX)
+ HTTPPARSER_HTTP_STATUS_MAP(XX)
#undef XX
};
diff --git a/src/http/qhttp/private/httpreader.hxx b/src/http/qhttp/private/httpreader.hxx
index 174b31a95..338ed2a2f 100644
--- a/src/http/qhttp/private/httpreader.hxx
+++ b/src/http/qhttp/private/httpreader.hxx
@@ -41,7 +41,7 @@ public:
if ( !icollectRequired ) // not allowed to collect data
return false;
- int newLength = icollectedData.length() + (int) length;
+ int newLength = icollectedData.length() + static_cast(length);
if ( icollectCapacity > 0 && newLength > icollectCapacity )
return false; // the capacity is full
diff --git a/src/http/qhttp/private/qhttpclient_private.hpp b/src/http/qhttp/private/qhttpclient_private.hpp
index 3206da5f3..9c6cd0989 100644
--- a/src/http/qhttp/private/qhttpclient_private.hpp
+++ b/src/http/qhttp/private/qhttpclient_private.hpp
@@ -112,7 +112,7 @@ protected:
void onReadyRead() {
while ( isocket.bytesAvailable() > 0 ) {
char buffer[4097] = {0};
- size_t readLength = (size_t) isocket.readRaw(buffer, 4096);
+ size_t readLength = static_cast(isocket.readRaw(buffer, 4096));
parse(buffer, readLength);
}
diff --git a/src/http/qhttp/private/qhttpserver_private.hpp b/src/http/qhttp/private/qhttpserver_private.hpp
index 93c96d2e1..e7c081af4 100644
--- a/src/http/qhttp/private/qhttpserver_private.hpp
+++ b/src/http/qhttp/private/qhttpserver_private.hpp
@@ -42,7 +42,7 @@ public:
// if it's a QLocalServer
virtual void incomingConnection(quintptr socketDescriptor) {
- iserver->incomingConnection((qintptr) socketDescriptor);
+ iserver->incomingConnection(static_cast(socketDescriptor));
}
};
diff --git a/src/http/qhttp/private/qhttpserverconnection_private.hpp b/src/http/qhttp/private/qhttpserverconnection_private.hpp
index fd4475864..53b349fa9 100644
--- a/src/http/qhttp/private/qhttpserverconnection_private.hpp
+++ b/src/http/qhttp/private/qhttpserverconnection_private.hpp
@@ -83,7 +83,7 @@ public:
void onReadyRead() {
while ( isocket.bytesAvailable() > 0 ) {
char buffer[4097] = {0};
- size_t readLength = (size_t) isocket.readRaw(buffer, 4096);
+ size_t readLength = static_cast(isocket.readRaw(buffer, 4096));
parse(buffer, readLength);
}
diff --git a/src/http/qhttp/qhttpabstracts.cpp b/src/http/qhttp/qhttpabstracts.cpp
index 1b106e51f..a29a90b9f 100644
--- a/src/http/qhttp/qhttpabstracts.cpp
+++ b/src/http/qhttp/qhttpabstracts.cpp
@@ -8,7 +8,7 @@ namespace qhttp {
# error "to compile QHttp classes, Qt 5.0 or later is needed."
#endif
-#define HTTP_STATUS_MAP(XX) \
+#define QHTTPABSTRACTS_HTTP_STATUS_MAP(XX) \
XX(100, "Continue") \
XX(101, "Switching Protocols") \
/* RFC 2518) obsoleted by RFC 4918 */ \
@@ -78,7 +78,7 @@ static struct {
int code;
const char* message;
} g_status_codes[] {
- HTTP_STATUS_MAP(PATCH_STATUS_CODES)
+ QHTTPABSTRACTS_HTTP_STATUS_MAP(PATCH_STATUS_CODES)
};
#undef PATCH_STATUS_CODES
diff --git a/src/main.cpp b/src/main.cpp
index 9f912a644..0618cefae 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -18,7 +18,6 @@
#include
#include
#include
-#include
#include "config-keepassx.h"
#include "core/Config.h"
@@ -45,10 +44,7 @@ int main(int argc, char** argv)
Tools::disableCoreDumps();
#endif
Tools::setupSearchPaths();
-
-#if QT_VERSION >= QT_VERSION_CHECK(5, 6, 0)
- QApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
-#endif
+
Application app(argc, argv);
Application::setApplicationName("keepassxc");
Application::setApplicationVersion(KEEPASSX_VERSION);
@@ -68,7 +64,7 @@ int main(int argc, char** argv)
QCommandLineParser parser;
parser.setApplicationDescription(QCoreApplication::translate("main", "KeePassXC - cross-platform password manager"));
- parser.addPositionalArgument("filename", QCoreApplication::translate("main", "filename(s) of the password database(s) to open (*.kdbx)"), "[filename(s)]");
+ parser.addPositionalArgument("filename", QCoreApplication::translate("main", "filenames of the password databases to open (*.kdbx)"), "[filename(s)]");
QCommandLineOption configOption("config",
QCoreApplication::translate("main", "path to a custom config file"),
diff --git a/src/zxcvbn/zxcvbn.cpp b/src/zxcvbn/zxcvbn.cpp
index 25cbe5440..c999adfae 100644
--- a/src/zxcvbn/zxcvbn.cpp
+++ b/src/zxcvbn/zxcvbn.cpp
@@ -496,7 +496,7 @@ typedef struct
uint8_t LeetCnv[sizeof L33TCnv / LEET_NORM_MAP_SIZE + 1];
/* uint8_t LeetChr[3]; */
uint8_t First;
- uint8_t PossChars[48];
+ uint8_t PossChars[49];
} DictWork_t;
/**********************************************************************************