summaryrefslogtreecommitdiffstats
path: root/debian/pinentry-tqt/pinentry-tqt-1.1.0/qt
diff options
context:
space:
mode:
Diffstat (limited to 'debian/pinentry-tqt/pinentry-tqt-1.1.0/qt')
-rw-r--r--debian/pinentry-tqt/pinentry-tqt-1.1.0/qt/Makefile.am58
-rw-r--r--debian/pinentry-tqt/pinentry-tqt-1.1.0/qt/Makefile.in694
-rw-r--r--debian/pinentry-tqt/pinentry-tqt-1.1.0/qt/document-encrypt.pngbin0 -> 1835 bytes
-rw-r--r--debian/pinentry-tqt/pinentry-tqt-1.1.0/qt/main.cpp364
-rw-r--r--debian/pinentry-tqt/pinentry-tqt-1.1.0/qt/pinentry.qrc6
-rw-r--r--debian/pinentry-tqt/pinentry-tqt-1.1.0/qt/pinentryconfirm.cpp77
-rw-r--r--debian/pinentry-tqt/pinentry-tqt-1.1.0/qt/pinentryconfirm.h46
-rw-r--r--debian/pinentry-tqt/pinentry-tqt-1.1.0/qt/pinentrydialog.cpp476
-rw-r--r--debian/pinentry-tqt/pinentry-tqt-1.1.0/qt/pinentrydialog.h119
-rw-r--r--debian/pinentry-tqt/pinentry-tqt-1.1.0/qt/qrc_pinentry.cpp177
10 files changed, 2017 insertions, 0 deletions
diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/qt/Makefile.am b/debian/pinentry-tqt/pinentry-tqt-1.1.0/qt/Makefile.am
new file mode 100644
index 00000000..698005ea
--- /dev/null
+++ b/debian/pinentry-tqt/pinentry-tqt-1.1.0/qt/Makefile.am
@@ -0,0 +1,58 @@
+# Makefile.am
+# Copyright (C) 2002 g10 Code GmbH, Klarälvdalens Datakonsult AB
+# Copyright (C) 2008, 2015 g10 Code GmbH
+#
+# This file is part of PINENTRY.
+#
+# PINENTRY is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# PINENTRY is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, see <https://www.gnu.org/licenses/>.
+# SPDX-License-Identifier: GPL-2.0+
+
+## Process this file with automake to produce Makefile.in
+
+bin_PROGRAMS = pinentry-qt
+
+EXTRA_DIST = document-encrypt.png pinentry.qrc
+
+
+if FALLBACK_CURSES
+ncurses_include = $(NCURSES_INCLUDE)
+libcurses = ../pinentry/libpinentry-curses.a $(LIBCURSES) $(LIBICONV)
+else
+ncurses_include =
+libcurses =
+endif
+
+
+AM_CPPFLAGS = $(COMMON_CFLAGS) \
+ -I$(top_srcdir) -I$(top_srcdir)/secmem \
+ $(ncurses_include) -I$(top_srcdir)/pinentry
+AM_CXXFLAGS = $(PINENTRY_QT_CFLAGS)
+pinentry_qt_LDADD = \
+ ../pinentry/libpinentry.a $(top_builddir)/secmem/libsecmem.a \
+ $(COMMON_LIBS) $(PINENTRY_QT_LIBS) $(libcurses) $(LIBCAP)
+
+BUILT_SOURCES = \
+ pinentryconfirm.moc pinentrydialog.moc
+
+CLEANFILES = \
+ pinentryconfirm.moc pinentrydialog.moc
+
+pinentry_qt_SOURCES = pinentrydialog.h pinentrydialog.cpp \
+ main.cpp qrc_pinentry.cpp pinentryconfirm.cpp pinentryconfirm.h
+
+nodist_pinentry_qt_SOURCES = \
+ pinentryconfirm.moc pinentrydialog.moc
+
+.h.moc:
+ $(MOC) `test -f '$<' || echo '$(srcdir)/'`$< -o $@
diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/qt/Makefile.in b/debian/pinentry-tqt/pinentry-tqt-1.1.0/qt/Makefile.in
new file mode 100644
index 00000000..4abacbf7
--- /dev/null
+++ b/debian/pinentry-tqt/pinentry-tqt-1.1.0/qt/Makefile.in
@@ -0,0 +1,694 @@
+# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+# Makefile.am
+# Copyright (C) 2002 g10 Code GmbH, Klarälvdalens Datakonsult AB
+# Copyright (C) 2008, 2015 g10 Code GmbH
+#
+# This file is part of PINENTRY.
+#
+# PINENTRY is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# PINENTRY is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, see <https://www.gnu.org/licenses/>.
+# SPDX-License-Identifier: GPL-2.0+
+
+VPATH = @srcdir@
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
+ esac; \
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+bin_PROGRAMS = pinentry-qt$(EXEEXT)
+subdir = qt
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+ $(top_srcdir)/build-aux/depcomp
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/curses.m4 \
+ $(top_srcdir)/m4/gpg-error.m4 $(top_srcdir)/m4/iconv.m4 \
+ $(top_srcdir)/m4/libassuan.m4 $(top_srcdir)/m4/pkg.m4 \
+ $(top_srcdir)/m4/qt.m4 $(top_srcdir)/acinclude.m4 \
+ $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__installdirs = "$(DESTDIR)$(bindir)"
+PROGRAMS = $(bin_PROGRAMS)
+am_pinentry_qt_OBJECTS = pinentrydialog.$(OBJEXT) main.$(OBJEXT) \
+ qrc_pinentry.$(OBJEXT) pinentryconfirm.$(OBJEXT)
+nodist_pinentry_qt_OBJECTS =
+pinentry_qt_OBJECTS = $(am_pinentry_qt_OBJECTS) \
+ $(nodist_pinentry_qt_OBJECTS)
+am__DEPENDENCIES_1 =
+@FALLBACK_CURSES_TRUE@am__DEPENDENCIES_2 = \
+@FALLBACK_CURSES_TRUE@ ../pinentry/libpinentry-curses.a \
+@FALLBACK_CURSES_TRUE@ $(am__DEPENDENCIES_1) \
+@FALLBACK_CURSES_TRUE@ $(am__DEPENDENCIES_1)
+pinentry_qt_DEPENDENCIES = ../pinentry/libpinentry.a \
+ $(top_builddir)/secmem/libsecmem.a $(am__DEPENDENCIES_1) \
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2) \
+ $(am__DEPENDENCIES_1)
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo " GEN " $@;
+am__v_GEN_1 =
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 =
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+AM_V_CXX = $(am__v_CXX_@AM_V@)
+am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@)
+am__v_CXX_0 = @echo " CXX " $@;
+am__v_CXX_1 =
+CXXLD = $(CXX)
+CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
+ -o $@
+AM_V_CXXLD = $(am__v_CXXLD_@AM_V@)
+am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@)
+am__v_CXXLD_0 = @echo " CXXLD " $@;
+am__v_CXXLD_1 =
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
+am__v_CC_0 = @echo " CC " $@;
+am__v_CC_1 =
+CCLD = $(CC)
+LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
+am__v_CCLD_0 = @echo " CCLD " $@;
+am__v_CCLD_1 =
+SOURCES = $(pinentry_qt_SOURCES) $(nodist_pinentry_qt_SOURCES)
+DIST_SOURCES = $(pinentry_qt_SOURCES)
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates. Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+ BEGIN { nonempty = 0; } \
+ { items[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique. This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+ list='$(am__tagged_files)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | $(am__uniquify_input)`
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+COMMON_CFLAGS = @COMMON_CFLAGS@
+COMMON_LIBS = @COMMON_LIBS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FLTKCFLAGS = @FLTKCFLAGS@
+FLTKCXXFLAGS = @FLTKCXXFLAGS@
+FLTKLIBS = @FLTKLIBS@
+FLTK_CONFIG = @FLTK_CONFIG@
+GITLOG_TO_CHANGELOG = @GITLOG_TO_CHANGELOG@
+GNOME3_CFLAGS = @GNOME3_CFLAGS@
+GNOME3_LIBS = @GNOME3_LIBS@
+GPG_ERROR_CFLAGS = @GPG_ERROR_CFLAGS@
+GPG_ERROR_CONFIG = @GPG_ERROR_CONFIG@
+GPG_ERROR_LIBS = @GPG_ERROR_LIBS@
+GPG_ERROR_MT_CFLAGS = @GPG_ERROR_MT_CFLAGS@
+GPG_ERROR_MT_LIBS = @GPG_ERROR_MT_LIBS@
+GREP = @GREP@
+GTK2_CFLAGS = @GTK2_CFLAGS@
+GTK2_LIBS = @GTK2_LIBS@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LDFLAGS = @LDFLAGS@
+LIBASSUAN_CFLAGS = @LIBASSUAN_CFLAGS@
+LIBASSUAN_CONFIG = @LIBASSUAN_CONFIG@
+LIBASSUAN_LIBS = @LIBASSUAN_LIBS@
+LIBCAP = @LIBCAP@
+LIBCURSES = @LIBCURSES@
+LIBICONV = @LIBICONV@
+LIBNCURSES = @LIBNCURSES@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBSECRET_CFLAGS = @LIBSECRET_CFLAGS@
+LIBSECRET_LIBS = @LIBSECRET_LIBS@
+LIBTERMCAP = @LIBTERMCAP@
+LN_S = @LN_S@
+LTLIBICONV = @LTLIBICONV@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MOC = @MOC@
+MOC2 = @MOC2@
+NCURSES_CFLAGS = @NCURSES_CFLAGS@
+NCURSES_INCLUDE = @NCURSES_INCLUDE@
+NCURSES_LIBS = @NCURSES_LIBS@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PINENTRY_DEFAULT = @PINENTRY_DEFAULT@
+PINENTRY_QT_CFLAGS = @PINENTRY_QT_CFLAGS@
+PINENTRY_QT_LIBS = @PINENTRY_QT_LIBS@
+PINENTRY_QT_REQUIRE_CPP11_CFLAGS = @PINENTRY_QT_REQUIRE_CPP11_CFLAGS@
+PINENTRY_QT_REQUIRE_CPP11_LIBS = @PINENTRY_QT_REQUIRE_CPP11_LIBS@
+PINENTRY_TQT_CFLAGS = @PINENTRY_TQT_CFLAGS@
+PINENTRY_TQT_LIBS = @PINENTRY_TQT_LIBS@
+PKG_CONFIG = @PKG_CONFIG@
+QTCHOOSER = @QTCHOOSER@
+RANLIB = @RANLIB@
+SETCAP = @SETCAP@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+TQT_MOC = @TQT_MOC@
+VERSION = @VERSION@
+WINDRES = @WINDRES@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+EXTRA_DIST = document-encrypt.png pinentry.qrc
+@FALLBACK_CURSES_FALSE@ncurses_include =
+@FALLBACK_CURSES_TRUE@ncurses_include = $(NCURSES_INCLUDE)
+@FALLBACK_CURSES_FALSE@libcurses =
+@FALLBACK_CURSES_TRUE@libcurses = ../pinentry/libpinentry-curses.a $(LIBCURSES) $(LIBICONV)
+AM_CPPFLAGS = $(COMMON_CFLAGS) \
+ -I$(top_srcdir) -I$(top_srcdir)/secmem \
+ $(ncurses_include) -I$(top_srcdir)/pinentry
+
+AM_CXXFLAGS = $(PINENTRY_QT_CFLAGS)
+pinentry_qt_LDADD = \
+ ../pinentry/libpinentry.a $(top_builddir)/secmem/libsecmem.a \
+ $(COMMON_LIBS) $(PINENTRY_QT_LIBS) $(libcurses) $(LIBCAP)
+
+BUILT_SOURCES = \
+ pinentryconfirm.moc pinentrydialog.moc
+
+CLEANFILES = \
+ pinentryconfirm.moc pinentrydialog.moc
+
+pinentry_qt_SOURCES = pinentrydialog.h pinentrydialog.cpp \
+ main.cpp qrc_pinentry.cpp pinentryconfirm.cpp pinentryconfirm.h
+
+nodist_pinentry_qt_SOURCES = \
+ pinentryconfirm.moc pinentrydialog.moc
+
+all: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) all-am
+
+.SUFFIXES:
+.SUFFIXES: .cpp .h .moc .o .obj
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu qt/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu qt/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+install-binPROGRAMS: $(bin_PROGRAMS)
+ @$(NORMAL_INSTALL)
+ @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \
+ fi; \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed 's/$(EXEEXT)$$//' | \
+ while read p p1; do if test -f $$p \
+ ; then echo "$$p"; echo "$$p"; else :; fi; \
+ done | \
+ sed -e 'p;s,.*/,,;n;h' \
+ -e 's|.*|.|' \
+ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
+ sed 'N;N;N;s,\n, ,g' | \
+ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
+ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+ if ($$2 == $$4) files[d] = files[d] " " $$1; \
+ else { print "f", $$3 "/" $$4, $$1; } } \
+ END { for (d in files) print "f", d, files[d] }' | \
+ while read type dir files; do \
+ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+ test -z "$$files" || { \
+ echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \
+ $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
+ } \
+ ; done
+
+uninstall-binPROGRAMS:
+ @$(NORMAL_UNINSTALL)
+ @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+ files=`for p in $$list; do echo "$$p"; done | \
+ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
+ -e 's/$$/$(EXEEXT)/' \
+ `; \
+ test -n "$$list" || exit 0; \
+ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
+ cd "$(DESTDIR)$(bindir)" && rm -f $$files
+
+clean-binPROGRAMS:
+ -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
+
+pinentry-qt$(EXEEXT): $(pinentry_qt_OBJECTS) $(pinentry_qt_DEPENDENCIES) $(EXTRA_pinentry_qt_DEPENDENCIES)
+ @rm -f pinentry-qt$(EXEEXT)
+ $(AM_V_CXXLD)$(CXXLINK) $(pinentry_qt_OBJECTS) $(pinentry_qt_LDADD) $(LIBS)
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/main.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pinentryconfirm.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pinentrydialog.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/qrc_pinentry.Po@am__quote@
+
+.cpp.o:
+@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $<
+
+.cpp.obj:
+@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+ID: $(am__tagged_files)
+ $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ set x; \
+ here=`pwd`; \
+ $(am__define_uniq_tagged_files); \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ $(am__define_uniq_tagged_files); \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+ list='$(am__tagged_files)'; \
+ case "$(srcdir)" in \
+ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+ *) sdir=$(subdir)/$(srcdir) ;; \
+ esac; \
+ for i in $$list; do \
+ if test -f "$$i"; then \
+ echo "$(subdir)/$$i"; \
+ else \
+ echo "$$sdir/$$i"; \
+ fi; \
+ done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) check-am
+all-am: Makefile $(PROGRAMS)
+installdirs:
+ for dir in "$(DESTDIR)$(bindir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
+mostlyclean-generic:
+
+clean-generic:
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+ -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
+clean: clean-am
+
+clean-am: clean-binPROGRAMS clean-generic mostlyclean-am
+
+distclean: distclean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am: install-binPROGRAMS
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-binPROGRAMS
+
+.MAKE: all check install install-am install-strip
+
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \
+ clean-binPROGRAMS clean-generic cscopelist-am ctags ctags-am \
+ distclean distclean-compile distclean-generic distclean-tags \
+ distdir dvi dvi-am html html-am info info-am install \
+ install-am install-binPROGRAMS install-data install-data-am \
+ install-dvi install-dvi-am install-exec install-exec-am \
+ install-html install-html-am install-info install-info-am \
+ install-man install-pdf install-pdf-am install-ps \
+ install-ps-am install-strip installcheck installcheck-am \
+ installdirs maintainer-clean maintainer-clean-generic \
+ mostlyclean mostlyclean-compile mostlyclean-generic pdf pdf-am \
+ ps ps-am tags tags-am uninstall uninstall-am \
+ uninstall-binPROGRAMS
+
+
+.h.moc:
+ $(MOC) `test -f '$<' || echo '$(srcdir)/'`$< -o $@
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/qt/document-encrypt.png b/debian/pinentry-tqt/pinentry-tqt-1.1.0/qt/document-encrypt.png
new file mode 100644
index 00000000..b80c2a6f
--- /dev/null
+++ b/debian/pinentry-tqt/pinentry-tqt-1.1.0/qt/document-encrypt.png
Binary files differ
diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/qt/main.cpp b/debian/pinentry-tqt/pinentry-tqt-1.1.0/qt/main.cpp
new file mode 100644
index 00000000..70a009d6
--- /dev/null
+++ b/debian/pinentry-tqt/pinentry-tqt-1.1.0/qt/main.cpp
@@ -0,0 +1,364 @@
+/* main.cpp - A Qt dialog for PIN entry.
+ * Copyright (C) 2002, 2008 Klarälvdalens Datakonsult AB (KDAB)
+ * Copyright (C) 2003 g10 Code GmbH
+ * Copyright 2007 Ingo Klöcker
+ *
+ * Written by Steffen Hansen <steffen@klaralvdalens-datakonsult.se>.
+ * Modified by Marcus Brinkmann <marcus@g10code.de>.
+ * Modified by Marc Mutz <marc@kdab.com>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
+ * SPDX-License-Identifier: GPL-2.0+
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include "pinentryconfirm.h"
+#include "pinentrydialog.h"
+#include "pinentry.h"
+
+#include <qapplication.h>
+#include <QIcon>
+#include <QString>
+#include <qwidget.h>
+#include <qmessagebox.h>
+#include <QPushButton>
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <errno.h>
+
+#include <stdexcept>
+#include <gpg-error.h>
+
+#ifdef FALLBACK_CURSES
+#include <pinentry-curses.h>
+#endif
+
+#if QT_VERSION >= 0x050000 && defined(QT_STATIC)
+ #include <QtPlugin>
+ #ifdef Q_OS_WIN
+ #include <windows.h>
+ #include <shlobj.h>
+ Q_IMPORT_PLUGIN(QWindowsIntegrationPlugin)
+ #elif defined(Q_OS_MAC)
+ Q_IMPORT_PLUGIN(QCocoaIntegrationPlugin)
+ #else
+ Q_IMPORT_PLUGIN(QXcbIntegrationPlugin)
+ #endif
+#endif
+
+static QString escape_accel(const QString &s)
+{
+
+ QString result;
+ result.reserve(s.size());
+
+ bool afterUnderscore = false;
+
+ for (unsigned int i = 0, end = s.size() ; i != end ; ++i) {
+ const QChar ch = s[i];
+ if (ch == QLatin1Char('_')) {
+ if (afterUnderscore) { // escaped _
+ result += QLatin1Char('_');
+ afterUnderscore = false;
+ } else { // accel
+ afterUnderscore = true;
+ }
+ } else {
+ if (afterUnderscore || // accel
+ ch == QLatin1Char('&')) { // escape & from being interpreted by Qt
+ result += QLatin1Char('&');
+ }
+ result += ch;
+ afterUnderscore = false;
+ }
+ }
+
+ if (afterUnderscore)
+ // trailing single underscore: shouldn't happen, but deal with it robustly:
+ {
+ result += QLatin1Char('_');
+ }
+
+ return result;
+}
+
+/* Hack for creating a QWidget with a "foreign" window ID */
+class ForeignWidget : public QWidget
+{
+public:
+ explicit ForeignWidget(WId wid) : QWidget(0)
+ {
+ QWidget::destroy();
+ create(wid, false, false);
+ }
+
+ ~ForeignWidget()
+ {
+ destroy(false, false);
+ }
+};
+
+namespace
+{
+class InvalidUtf8 : public std::invalid_argument
+{
+public:
+ InvalidUtf8() : std::invalid_argument("invalid utf8") {}
+ ~InvalidUtf8() throw() {}
+};
+}
+
+static const bool GPG_AGENT_IS_PORTED_TO_ONLY_SEND_UTF8 = false;
+
+static QString from_utf8(const char *s)
+{
+ const QString result = QString::fromUtf8(s);
+ if (result.contains(QChar::ReplacementCharacter)) {
+ if (GPG_AGENT_IS_PORTED_TO_ONLY_SEND_UTF8) {
+ throw InvalidUtf8();
+ } else {
+ return QString::fromLocal8Bit(s);
+ }
+ }
+
+ return result;
+}
+
+static int
+qt_cmd_handler(pinentry_t pe)
+{
+ QWidget *parent = 0;
+ char *str;
+
+ /* FIXME: Add parent window ID to pinentry and GTK. */
+ if (pe->parent_wid) {
+ parent = new ForeignWidget((WId) pe->parent_wid);
+ }
+
+ int want_pass = !!pe->pin;
+
+ const QString ok =
+ pe->ok ? escape_accel(from_utf8(pe->ok)) :
+ pe->default_ok ? escape_accel(from_utf8(pe->default_ok)) :
+ /* else */ QLatin1String("&OK") ;
+ const QString cancel =
+ pe->cancel ? escape_accel(from_utf8(pe->cancel)) :
+ pe->default_cancel ? escape_accel(from_utf8(pe->default_cancel)) :
+ /* else */ QLatin1String("&Cancel") ;
+
+ str = pinentry_get_title (pe);
+ const QString title =
+ str ? from_utf8(str) :
+ /* else */ QLatin1String("pinentry-qt") ;
+ free (str);
+
+ const QString repeatError =
+ pe->repeat_error_string ? from_utf8(pe->repeat_error_string) :
+ QLatin1String("Passphrases do not match");
+ const QString repeatString =
+ pe->repeat_passphrase ? from_utf8(pe->repeat_passphrase) :
+ QString();
+ const QString visibilityTT =
+ pe->default_tt_visi ? from_utf8(pe->default_tt_visi) :
+ QLatin1String("Show passphrase");
+ const QString hideTT =
+ pe->default_tt_hide ? from_utf8(pe->default_tt_hide) :
+ QLatin1String("Hide passphrase");
+
+
+ if (want_pass) {
+ char *str;
+
+ PinEntryDialog pinentry(parent, 0, pe->timeout, true, !!pe->quality_bar,
+ repeatString, visibilityTT, hideTT);
+
+ pinentry.setPinentryInfo(pe);
+ pinentry.setPrompt(escape_accel(from_utf8(pe->prompt)));
+ pinentry.setDescription(from_utf8(pe->description));
+ pinentry.setRepeatErrorText(repeatError);
+
+ str = pinentry_get_title (pe);
+ if (str) {
+ pinentry.setWindowTitle(from_utf8(str));
+ free (str);
+ }
+
+ /* If we reuse the same dialog window. */
+ pinentry.setPin(QString());
+
+ pinentry.setOkText(ok);
+ pinentry.setCancelText(cancel);
+ if (pe->error) {
+ pinentry.setError(from_utf8(pe->error));
+ }
+ if (pe->quality_bar) {
+ pinentry.setQualityBar(from_utf8(pe->quality_bar));
+ }
+ if (pe->quality_bar_tt) {
+ pinentry.setQualityBarTT(from_utf8(pe->quality_bar_tt));
+ }
+ bool ret = pinentry.exec();
+ if (!ret) {
+ if (pinentry.timedOut())
+ pe->specific_err = gpg_error (GPG_ERR_TIMEOUT);
+ return -1;
+ }
+
+ const QString pinStr = pinentry.pin();
+ QByteArray pin = pinStr.toUtf8();
+
+ if (!!pe->repeat_passphrase) {
+ /* Should not have been possible to accept
+ the dialog in that case but we do a safety
+ check here */
+ pe->repeat_okay = (pinStr == pinentry.repeatedPin());
+ }
+
+ int len = strlen(pin.constData());
+ if (len >= 0) {
+ pinentry_setbufferlen(pe, len + 1);
+ if (pe->pin) {
+ strcpy(pe->pin, pin.constData());
+ return len;
+ }
+ }
+ return -1;
+ } else {
+ const QString desc = pe->description ? from_utf8(pe->description) : QString();
+ const QString notok = pe->notok ? escape_accel(from_utf8(pe->notok)) : QString();
+
+ const QMessageBox::StandardButtons buttons =
+ pe->one_button ? QMessageBox::Ok :
+ pe->notok ? QMessageBox::Yes | QMessageBox::No | QMessageBox::Cancel :
+ /* else */ QMessageBox::Ok | QMessageBox::Cancel ;
+
+ PinentryConfirm box(QMessageBox::Information, pe->timeout, title, desc, buttons, parent);
+
+ const struct {
+ QMessageBox::StandardButton button;
+ QString label;
+ } buttonLabels[] = {
+ { QMessageBox::Ok, ok },
+ { QMessageBox::Yes, ok },
+ { QMessageBox::No, notok },
+ { QMessageBox::Cancel, cancel },
+ };
+
+ for (size_t i = 0 ; i < sizeof buttonLabels / sizeof * buttonLabels ; ++i)
+ if ((buttons & buttonLabels[i].button) && !buttonLabels[i].label.isEmpty()) {
+ box.button(buttonLabels[i].button)->setText(buttonLabels[i].label);
+#ifndef QT_NO_ACCESSIBILITY
+ box.button(buttonLabels[i].button)->setAccessibleDescription(buttonLabels[i].label);
+#endif
+ }
+
+ box.setIconPixmap(icon());
+
+ if (!pe->one_button) {
+ box.setDefaultButton(QMessageBox::Cancel);
+ }
+
+ box.show();
+ raiseWindow(&box);
+
+ const int rc = box.exec();
+
+ if (rc == QMessageBox::Cancel) {
+ pe->canceled = true;
+ }
+ if (box.timedOut()) {
+ pe->specific_err = gpg_error (GPG_ERR_TIMEOUT);
+ }
+
+ return rc == QMessageBox::Ok || rc == QMessageBox::Yes ;
+
+ }
+}
+
+static int
+qt_cmd_handler_ex(pinentry_t pe)
+{
+ try {
+ return qt_cmd_handler(pe);
+ } catch (const InvalidUtf8 &) {
+ pe->locale_err = true;
+ return pe->pin ? -1 : false ;
+ } catch (...) {
+ pe->canceled = true;
+ return pe->pin ? -1 : false ;
+ }
+}
+
+pinentry_cmd_handler_t pinentry_cmd_handler = qt_cmd_handler_ex;
+
+int
+main(int argc, char *argv[])
+{
+ pinentry_init("pinentry-qt");
+
+ QApplication *app = NULL;
+
+#ifdef FALLBACK_CURSES
+ if (!pinentry_have_display(argc, argv)) {
+ pinentry_cmd_handler = curses_cmd_handler;
+ pinentry_set_flavor_flag ("curses");
+ } else
+#endif
+ {
+ /* Qt does only understand -display but not --display; thus we
+ are fixing that here. The code is pretty simply and may get
+ confused if an argument is called "--display". */
+ char **new_argv, *p;
+ size_t n;
+ int i, done;
+
+ for (n = 0, i = 0; i < argc; i++) {
+ n += strlen(argv[i]) + 1;
+ }
+ n++;
+ new_argv = (char **)calloc(argc + 1, sizeof * new_argv);
+ if (new_argv) {
+ *new_argv = (char *)malloc(n);
+ }
+ if (!new_argv || !*new_argv) {
+ fprintf(stderr, "pinentry-qt: can't fixup argument list: %s\n",
+ strerror(errno));
+ exit(EXIT_FAILURE);
+
+ }
+ for (done = 0, p = *new_argv, i = 0; i < argc; i++)
+ if (!done && !strcmp(argv[i], "--display")) {
+ new_argv[i] = strcpy(p, argv[i] + 1);
+ p += strlen(argv[i] + 1) + 1;
+ done = 1;
+ } else {
+ new_argv[i] = strcpy(p, argv[i]);
+ p += strlen(argv[i]) + 1;
+ }
+
+ i = argc;
+ app = new QApplication(i, new_argv);
+ app->setWindowIcon(QIcon(QLatin1String(":/document-encrypt.png")));
+ }
+
+ pinentry_parse_opts(argc, argv);
+
+ int rc = pinentry_loop();
+ delete app;
+ return rc ? EXIT_FAILURE : EXIT_SUCCESS ;
+}
diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/qt/pinentry.qrc b/debian/pinentry-tqt/pinentry-tqt-1.1.0/qt/pinentry.qrc
new file mode 100644
index 00000000..94db0548
--- /dev/null
+++ b/debian/pinentry-tqt/pinentry-tqt-1.1.0/qt/pinentry.qrc
@@ -0,0 +1,6 @@
+<!DOCTYPE RCC>
+<RCC version="1.0">
+<qresource>
+ <file>document-encrypt.png</file>
+</qresource>
+</RCC>
diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/qt/pinentryconfirm.cpp b/debian/pinentry-tqt/pinentry-tqt-1.1.0/qt/pinentryconfirm.cpp
new file mode 100644
index 00000000..65b191cf
--- /dev/null
+++ b/debian/pinentry-tqt/pinentry-tqt-1.1.0/qt/pinentryconfirm.cpp
@@ -0,0 +1,77 @@
+/* pinentryconfirm.cpp - A QMessageBox with a timeout
+ *
+ * Copyright (C) 2011 Ben Kibbey <bjk@luxsci.net>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
+ * SPDX-License-Identifier: GPL-2.0+
+ */
+
+#include "pinentryconfirm.h"
+#include "pinentrydialog.h"
+#include <QAbstractButton>
+#include <QGridLayout>
+#include <QSpacerItem>
+#include <QFontMetrics>
+
+PinentryConfirm::PinentryConfirm(Icon icon, int timeout, const QString &title,
+ const QString &desc, StandardButtons buttons, QWidget *parent) :
+ QMessageBox(icon, title, desc, buttons, parent)
+{
+ _timed_out = false;
+ if (timeout > 0) {
+ _timer = new QTimer(this);
+ connect(_timer, SIGNAL(timeout()), this, SLOT(slotTimeout()));
+ _timer->start(timeout * 1000);
+ }
+#ifndef QT_NO_ACCESSIBILITY
+ setAccessibleDescription(desc);
+ setAccessibleName(title);
+#endif
+ raiseWindow(this);
+}
+
+bool PinentryConfirm::timedOut() const
+{
+ return _timed_out;
+}
+
+void PinentryConfirm::showEvent(QShowEvent *event)
+{
+ static bool resized;
+ if (!resized) {
+ QGridLayout* lay = dynamic_cast<QGridLayout*> (layout());
+ if (lay) {
+ QSize textSize = fontMetrics().size(Qt::TextExpandTabs, text(), fontMetrics().maxWidth());
+ QSpacerItem* horizontalSpacer = new QSpacerItem(textSize.width() + iconPixmap().width(),
+ 0, QSizePolicy::Minimum, QSizePolicy::Expanding);
+ lay->addItem(horizontalSpacer, lay->rowCount(), 1, 1, lay->columnCount() - 1);
+ }
+ resized = true;
+ }
+
+ QDialog::showEvent(event);
+ raiseWindow(this);
+}
+
+void PinentryConfirm::slotTimeout()
+{
+ QAbstractButton *b = button(QMessageBox::Cancel);
+ _timed_out = true;
+
+ if (b) {
+ b->animateClick(0);
+ }
+}
+
+#include "pinentryconfirm.moc"
diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/qt/pinentryconfirm.h b/debian/pinentry-tqt/pinentry-tqt-1.1.0/qt/pinentryconfirm.h
new file mode 100644
index 00000000..ec116ac3
--- /dev/null
+++ b/debian/pinentry-tqt/pinentry-tqt-1.1.0/qt/pinentryconfirm.h
@@ -0,0 +1,46 @@
+/* pinentryconfirm.h - A QMessageBox with a timeout
+ *
+ * Copyright (C) 2011 Ben Kibbey <bjk@luxsci.net>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
+ * SPDX-License-Identifier: GPL-2.0+
+ */
+
+#ifndef PINENTRYCONFIRM_H
+#define PINENTRYCONFIRM_H
+
+#include <QMessageBox>
+#include <QTimer>
+
+class PinentryConfirm : public QMessageBox
+{
+ Q_OBJECT
+public:
+ PinentryConfirm(Icon, int timeout, const QString &title,
+ const QString &desc, StandardButtons buttons,
+ QWidget *parent);
+ bool timedOut() const;
+
+private slots:
+ void slotTimeout();
+
+private:
+ QTimer *_timer;
+ bool _timed_out;
+
+protected:
+ /* reimp */ void showEvent(QShowEvent *event);
+};
+
+#endif
diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/qt/pinentrydialog.cpp b/debian/pinentry-tqt/pinentry-tqt-1.1.0/qt/pinentrydialog.cpp
new file mode 100644
index 00000000..cb52d7cf
--- /dev/null
+++ b/debian/pinentry-tqt/pinentry-tqt-1.1.0/qt/pinentrydialog.cpp
@@ -0,0 +1,476 @@
+/* pinentrydialog.cpp - A (not yet) secure Qt 4 dialog for PIN entry.
+ * Copyright (C) 2002, 2008 Klarälvdalens Datakonsult AB (KDAB)
+ * Copyright 2007 Ingo Klöcker
+ * Copyright 2016 Intevation GmbH
+ *
+ * Written by Steffen Hansen <steffen@klaralvdalens-datakonsult.se>.
+ * Modified by Andre Heinecke <aheinecke@intevation.de>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
+ * SPDX-License-Identifier: GPL-2.0+
+ */
+
+#include "pinentrydialog.h"
+#include <QGridLayout>
+
+#include <QProgressBar>
+#include <QApplication>
+#include <QStyle>
+#include <QPainter>
+#include <QPushButton>
+#include <QDialogButtonBox>
+#include <QKeyEvent>
+#include <QLabel>
+#include <QPalette>
+#include <QLineEdit>
+#include <QAction>
+#include <QCheckBox>
+
+#ifdef Q_OS_WIN
+#include <windows.h>
+#endif
+
+/* I [wk] have no idea for what this code was supposed to do.
+ Foregrounding a window is heavily restricted by modern Windows
+ versions. This is the reason why gpg-agent employs its
+ AllowSetForegroundWindow callback machinery to ask the supposed to
+ be be calling process to allow a pinentry to go into the
+ foreground.
+
+ [ah] This is a Hack to workaround the fact that Foregrounding
+ a Window is so restricted that it AllowSetForegroundWindow
+ does not always work (e.g. when the ForegroundWindow timeout
+ has not expired.
+ */
+#ifdef Q_OS_WIN
+WINBOOL SetForegroundWindowEx(HWND hWnd)
+{
+ //Attach foreground window thread to our thread
+ const DWORD ForeGroundID = GetWindowThreadProcessId(::GetForegroundWindow(), NULL);
+ const DWORD CurrentID = GetCurrentThreadId();
+ WINBOOL retval;
+
+ AttachThreadInput(ForeGroundID, CurrentID, TRUE);
+ //Do our stuff here
+ HWND hLastActivePopupWnd = GetLastActivePopup(hWnd);
+ retval = SetForegroundWindow(hLastActivePopupWnd);
+
+ //Detach the attached thread
+ AttachThreadInput(ForeGroundID, CurrentID, FALSE);
+ return retval;
+}// End SetForegroundWindowEx
+#endif
+
+void raiseWindow(QWidget *w)
+{
+ /* Maybe Qt will become aggressive enough one day that
+ * this is enough on windows too*/
+ w->raise();
+#ifdef Q_OS_WIN
+ HWND wid = (HWND)w->effectiveWinId();
+ /* In the meantime we do our own attention grabbing */
+ if (!SetForegroundWindow(wid) && !SetForegroundWindowEx(wid)) {
+ OutputDebugString("SetForegroundWindow (ex) failed");
+ /* Yet another fallback which will not work on some
+ * versions and is not recommended by msdn */
+ if (!ShowWindow(wid, SW_SHOWNORMAL)) {
+ OutputDebugString("ShowWindow failed.");
+ }
+ }
+ /* Even if SetForgeoundWindow / SetForegroundWinowEx don't fail
+ * we sometimes are still not in the foreground. So we try yet
+ * another hack by using SetWindowPos */
+ if (!SetWindowPos(wid, HWND_TOPMOST, 0, 0, 0, 0,
+ SWP_NOMOVE | SWP_NOSIZE | SWP_SHOWWINDOW)) {
+ OutputDebugString("SetWindowPos failed.");
+ } else {
+ /* Without moving back to NOTOPMOST we just stay on top.
+ * Even if the user changes focus. */
+ SetWindowPos(wid, HWND_NOTOPMOST, 0, 0, 0, 0,
+ SWP_NOMOVE | SWP_NOSIZE | SWP_SHOWWINDOW);
+ }
+#endif
+}
+
+QPixmap icon(QStyle::StandardPixmap which)
+{
+ QPixmap pm = qApp->windowIcon().pixmap(48, 48);
+
+ if (which != QStyle::SP_CustomBase) {
+ const QIcon ic = qApp->style()->standardIcon(which);
+ QPainter painter(&pm);
+ const int emblemSize = 22;
+ painter.drawPixmap(pm.width() - emblemSize, 0,
+ ic.pixmap(emblemSize, emblemSize));
+ }
+
+ return pm;
+}
+
+void PinEntryDialog::slotTimeout()
+{
+ _timed_out = true;
+ reject();
+}
+
+PinEntryDialog::PinEntryDialog(QWidget *parent, const char *name,
+ int timeout, bool modal, bool enable_quality_bar,
+ const QString &repeatString,
+ const QString &visibilityTT,
+ const QString &hideTT)
+ : QDialog(parent, Qt::WindowStaysOnTopHint),
+ mRepeat(NULL),
+ _grabbed(false),
+ mVisibilityTT(visibilityTT),
+ mHideTT(hideTT),
+ mVisiActionEdit(NULL),
+ mVisiCB(NULL)
+{
+ _timed_out = false;
+ setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
+
+ if (modal) {
+ setWindowModality(Qt::ApplicationModal);
+ }
+
+ _icon = new QLabel(this);
+ _icon->setPixmap(icon());
+
+ _error = new QLabel(this);
+ QPalette pal;
+ pal.setColor(QPalette::WindowText, Qt::red);
+ _error->setPalette(pal);
+ _error->hide();
+
+ _desc = new QLabel(this);
+ _desc->hide();
+
+ _prompt = new QLabel(this);
+ _prompt->hide();
+
+ _edit = new QLineEdit(this);
+ _edit->setMaxLength(256);
+ _edit->setEchoMode(QLineEdit::Password);
+
+ _prompt->setBuddy(_edit);
+
+ if (enable_quality_bar) {
+ _quality_bar_label = new QLabel(this);
+ _quality_bar_label->setAlignment(Qt::AlignVCenter);
+ _quality_bar = new QProgressBar(this);
+ _quality_bar->setAlignment(Qt::AlignCenter);
+ _have_quality_bar = true;
+ } else {
+ _have_quality_bar = false;
+ }
+
+ QDialogButtonBox *const buttons = new QDialogButtonBox(this);
+ buttons->setStandardButtons(QDialogButtonBox::Ok | QDialogButtonBox::Cancel);
+ _ok = buttons->button(QDialogButtonBox::Ok);
+ _cancel = buttons->button(QDialogButtonBox::Cancel);
+
+ _ok->setDefault(true);
+
+ if (style()->styleHint(QStyle::SH_DialogButtonBox_ButtonsHaveIcons)) {
+ _ok->setIcon(style()->standardIcon(QStyle::SP_DialogOkButton));
+ _cancel->setIcon(style()->standardIcon(QStyle::SP_DialogCancelButton));
+ }
+
+ if (timeout > 0) {
+ _timer = new QTimer(this);
+ connect(_timer, SIGNAL(timeout()), this, SLOT(slotTimeout()));
+ _timer->start(timeout * 1000);
+ } else {
+ _timer = NULL;
+ }
+
+ connect(buttons, SIGNAL(accepted()), this, SLOT(accept()));
+ connect(buttons, SIGNAL(rejected()), this, SLOT(reject()));
+ connect(_edit, SIGNAL(textChanged(QString)),
+ this, SLOT(updateQuality(QString)));
+ connect(_edit, SIGNAL(textChanged(QString)),
+ this, SLOT(textChanged(QString)));
+
+ _edit->setFocus();
+
+ QGridLayout *const grid = new QGridLayout(this);
+ int row = 1;
+ grid->addWidget(_error, row++, 1, 1, 2);
+ grid->addWidget(_desc, row++, 1, 1, 2);
+ //grid->addItem( new QSpacerItem( 0, _edit->height() / 10, QSizePolicy::Minimum, QSizePolicy::Fixed ), 1, 1 );
+ grid->addWidget(_prompt, row, 1);
+ grid->addWidget(_edit, row++, 2);
+ if (!repeatString.isNull()) {
+ mRepeat = new QLineEdit;
+ mRepeat->setMaxLength(256);
+ mRepeat->setEchoMode(QLineEdit::Password);
+ connect(mRepeat, SIGNAL(textChanged(QString)),
+ this, SLOT(textChanged(QString)));
+ QLabel *repeatLabel = new QLabel(repeatString);
+ repeatLabel->setBuddy(mRepeat);
+ grid->addWidget(repeatLabel, row, 1);
+ grid->addWidget(mRepeat, row++, 2);
+ setTabOrder(_edit, mRepeat);
+ setTabOrder(mRepeat, _ok);
+ }
+ if (enable_quality_bar) {
+ grid->addWidget(_quality_bar_label, row, 1);
+ grid->addWidget(_quality_bar, row++, 2);
+ }
+ /* Set up the show password action */
+ const QIcon visibilityIcon = QIcon::fromTheme(QLatin1String("visibility"));
+ const QIcon hideIcon = QIcon::fromTheme(QLatin1String("hint"));
+#if QT_VERSION >= 0x050200
+ if (!visibilityIcon.isNull() && !hideIcon.isNull()) {
+ mVisiActionEdit = _edit->addAction(visibilityIcon, QLineEdit::TrailingPosition);
+ mVisiActionEdit->setVisible(false);
+ mVisiActionEdit->setToolTip(mVisibilityTT);
+ connect(mVisiActionEdit, SIGNAL(triggered()), this, SLOT(toggleVisibility()));
+ } else
+#endif
+ {
+ if (!mVisibilityTT.isNull()) {
+ mVisiCB = new QCheckBox(mVisibilityTT);
+ connect(mVisiCB, SIGNAL(toggled(bool)), this, SLOT(toggleVisibility()));
+ grid->addWidget(mVisiCB, row++, 1, 1, 2, Qt::AlignLeft);
+ }
+ }
+ grid->addWidget(buttons, ++row, 0, 1, 3);
+
+ grid->addWidget(_icon, 0, 0, row - 1, 1, Qt::AlignVCenter | Qt::AlignLeft);
+
+ grid->setSizeConstraint(QLayout::SetFixedSize);
+
+
+ connect(qApp, SIGNAL(focusChanged(QWidget *, QWidget *)),
+ this, SLOT(focusChanged(QWidget *, QWidget *)));
+}
+
+void PinEntryDialog::showEvent(QShowEvent *event)
+{
+ QDialog::showEvent(event);
+ raiseWindow(this);
+}
+
+void PinEntryDialog::setDescription(const QString &txt)
+{
+ _desc->setVisible(!txt.isEmpty());
+ _desc->setText(txt);
+#ifndef QT_NO_ACCESSIBILITY
+ _desc->setAccessibleDescription(txt);
+#endif
+ _icon->setPixmap(icon());
+ setError(QString::null);
+}
+
+QString PinEntryDialog::description() const
+{
+ return _desc->text();
+}
+
+void PinEntryDialog::setError(const QString &txt)
+{
+ if (!txt.isNull()) {
+ _icon->setPixmap(icon(QStyle::SP_MessageBoxCritical));
+ }
+ _error->setText(txt);
+#ifndef QT_NO_ACCESSIBILITY
+ _error->setAccessibleDescription(txt);
+#endif
+ _error->setVisible(!txt.isEmpty());
+}
+
+QString PinEntryDialog::error() const
+{
+ return _error->text();
+}
+
+void PinEntryDialog::setPin(const QString &txt)
+{
+ _edit->setText(txt);
+}
+
+QString PinEntryDialog::pin() const
+{
+ return _edit->text();
+}
+
+void PinEntryDialog::setPrompt(const QString &txt)
+{
+ _prompt->setText(txt);
+ _prompt->setVisible(!txt.isEmpty());
+}
+
+QString PinEntryDialog::prompt() const
+{
+ return _prompt->text();
+}
+
+void PinEntryDialog::setOkText(const QString &txt)
+{
+ _ok->setText(txt);
+#ifndef QT_NO_ACCESSIBILITY
+ _ok->setAccessibleDescription(txt);
+#endif
+ _ok->setVisible(!txt.isEmpty());
+}
+
+void PinEntryDialog::setCancelText(const QString &txt)
+{
+ _cancel->setText(txt);
+#ifndef QT_NO_ACCESSIBILITY
+ _cancel->setAccessibleDescription(txt);
+#endif
+ _cancel->setVisible(!txt.isEmpty());
+}
+
+void PinEntryDialog::setQualityBar(const QString &txt)
+{
+ if (_have_quality_bar) {
+ _quality_bar_label->setText(txt);
+#ifndef QT_NO_ACCESSIBILITY
+ _quality_bar_label->setAccessibleDescription(txt);
+#endif
+ }
+}
+
+void PinEntryDialog::setQualityBarTT(const QString &txt)
+{
+ if (_have_quality_bar) {
+ _quality_bar->setToolTip(txt);
+ }
+}
+
+void PinEntryDialog::updateQuality(const QString &txt)
+{
+ int length;
+ int percent;
+ QPalette pal;
+
+ if (_timer) {
+ _timer->stop();
+ }
+
+ if (!_have_quality_bar || !_pinentry_info) {
+ return;
+ }
+ const QByteArray utf8_pin = txt.toUtf8();
+ const char *pin = utf8_pin.constData();
+ length = strlen(pin);
+ percent = length ? pinentry_inq_quality(_pinentry_info, pin, length) : 0;
+ if (!length) {
+ _quality_bar->reset();
+ } else {
+ pal = _quality_bar->palette();
+ if (percent < 0) {
+ pal.setColor(QPalette::Highlight, QColor("red"));
+ percent = -percent;
+ } else {
+ pal.setColor(QPalette::Highlight, QColor("green"));
+ }
+ _quality_bar->setPalette(pal);
+ _quality_bar->setValue(percent);
+ }
+}
+
+void PinEntryDialog::setPinentryInfo(pinentry_t peinfo)
+{
+ _pinentry_info = peinfo;
+}
+
+void PinEntryDialog::focusChanged(QWidget *old, QWidget *now)
+{
+ // Grab keyboard. It might be a little weird to do it here, but it works!
+ // Previously this code was in showEvent, but that did not work in Qt4.
+ if (!_pinentry_info || _pinentry_info->grab) {
+ if (_grabbed && old && (old == _edit || old == mRepeat)) {
+ old->releaseKeyboard();
+ _grabbed = false;
+ }
+ if (!_grabbed && now && (now == _edit || now == mRepeat)) {
+ now->grabKeyboard();
+ _grabbed = true;
+ }
+ }
+
+}
+
+void PinEntryDialog::textChanged(const QString &text)
+{
+ Q_UNUSED(text);
+ if (mRepeat && mRepeat->text() == _edit->text()) {
+ _ok->setEnabled(true);
+ _ok->setToolTip(QString());
+ } else if (mRepeat) {
+ _ok->setEnabled(false);
+ _ok->setToolTip(mRepeatError);
+ }
+
+ if (mVisiActionEdit && sender() == _edit) {
+ mVisiActionEdit->setVisible(!_edit->text().isEmpty());
+ }
+}
+
+void PinEntryDialog::toggleVisibility()
+{
+ if (sender() == mVisiActionEdit) {
+ if (_edit->echoMode() == QLineEdit::Password) {
+ mVisiActionEdit->setIcon(QIcon::fromTheme(QLatin1String("hint")));
+ mVisiActionEdit->setToolTip(mHideTT);
+ _edit->setEchoMode(QLineEdit::Normal);
+ if (mRepeat) {
+ mRepeat->setEchoMode(QLineEdit::Normal);
+ }
+ } else {
+ mVisiActionEdit->setIcon(QIcon::fromTheme(QLatin1String("visibility")));
+ mVisiActionEdit->setToolTip(mVisibilityTT);
+ _edit->setEchoMode(QLineEdit::Password);
+ if (mRepeat) {
+ mRepeat->setEchoMode(QLineEdit::Password);
+ }
+ }
+ }
+ if (sender() == mVisiCB) {
+ if (mVisiCB->isChecked()) {
+ if (mRepeat) {
+ mRepeat->setEchoMode(QLineEdit::Normal);
+ }
+ _edit->setEchoMode(QLineEdit::Normal);
+ } else {
+ if (mRepeat) {
+ mRepeat->setEchoMode(QLineEdit::Password);
+ }
+ _edit->setEchoMode(QLineEdit::Password);
+ }
+ }
+}
+
+QString PinEntryDialog::repeatedPin() const
+{
+ if (mRepeat) {
+ return mRepeat->text();
+ }
+ return QString();
+}
+
+bool PinEntryDialog::timedOut() const
+{
+ return _timed_out;
+}
+
+void PinEntryDialog::setRepeatErrorText(const QString &err)
+{
+ mRepeatError = err;
+}
+#include "pinentrydialog.moc"
diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/qt/pinentrydialog.h b/debian/pinentry-tqt/pinentry-tqt-1.1.0/qt/pinentrydialog.h
new file mode 100644
index 00000000..52b7343b
--- /dev/null
+++ b/debian/pinentry-tqt/pinentry-tqt-1.1.0/qt/pinentrydialog.h
@@ -0,0 +1,119 @@
+/* pinentrydialog.h - A (not yet) secure Qt 4 dialog for PIN entry.
+ * Copyright (C) 2002, 2008 Klarälvdalens Datakonsult AB (KDAB)
+ * Copyright 2007 Ingo Klöcker
+ * Copyright 2016 Intevation GmbH
+ *
+ * Written by Steffen Hansen <steffen@klaralvdalens-datakonsult.se>.
+ * Modified by Andre Heinecke <aheinecke@intevation.de>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
+ * SPDX-License-Identifier: GPL-2.0+
+ */
+
+#ifndef __PINENTRYDIALOG_H__
+#define __PINENTRYDIALOG_H__
+
+#include <QDialog>
+#include <QStyle>
+#include <QTimer>
+
+#include "pinentry.h"
+
+class QLabel;
+class QPushButton;
+class QLineEdit;
+class QString;
+class QProgressBar;
+class QCheckBox;
+class QAction;
+
+QPixmap icon(QStyle::StandardPixmap which = QStyle::SP_CustomBase);
+
+void raiseWindow(QWidget *w);
+
+class PinEntryDialog : public QDialog
+{
+ Q_OBJECT
+
+ Q_PROPERTY(QString description READ description WRITE setDescription)
+ Q_PROPERTY(QString error READ error WRITE setError)
+ Q_PROPERTY(QString pin READ pin WRITE setPin)
+ Q_PROPERTY(QString prompt READ prompt WRITE setPrompt)
+public:
+ explicit PinEntryDialog(QWidget *parent = 0, const char *name = 0,
+ int timeout = 0, bool modal = false,
+ bool enable_quality_bar = false,
+ const QString &repeatString = QString(),
+ const QString &visibiltyTT = QString(),
+ const QString &hideTT = QString());
+
+ void setDescription(const QString &);
+ QString description() const;
+
+ void setError(const QString &);
+ QString error() const;
+
+ void setPin(const QString &);
+ QString pin() const;
+
+ QString repeatedPin() const;
+ void setRepeatErrorText(const QString &);
+
+ void setPrompt(const QString &);
+ QString prompt() const;
+
+ void setOkText(const QString &);
+ void setCancelText(const QString &);
+
+ void setQualityBar(const QString &);
+ void setQualityBarTT(const QString &);
+
+ void setPinentryInfo(pinentry_t);
+
+ bool timedOut() const;
+
+protected slots:
+ void updateQuality(const QString &);
+ void slotTimeout();
+ void textChanged(const QString &);
+ void focusChanged(QWidget *old, QWidget *now);
+ void toggleVisibility();
+
+protected:
+ /* reimp */ void showEvent(QShowEvent *event);
+
+private:
+ QLabel *_icon;
+ QLabel *_desc;
+ QLabel *_error;
+ QLabel *_prompt;
+ QLabel *_quality_bar_label;
+ QProgressBar *_quality_bar;
+ QLineEdit *_edit;
+ QLineEdit *mRepeat;
+ QPushButton *_ok;
+ QPushButton *_cancel;
+ bool _grabbed;
+ bool _have_quality_bar;
+ bool _timed_out;
+ pinentry_t _pinentry_info;
+ QTimer *_timer;
+ QString mRepeatError,
+ mVisibilityTT,
+ mHideTT;
+ QAction *mVisiActionEdit;
+ QCheckBox *mVisiCB;
+};
+
+#endif // __PINENTRYDIALOG_H__
diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/qt/qrc_pinentry.cpp b/debian/pinentry-tqt/pinentry-tqt-1.1.0/qt/qrc_pinentry.cpp
new file mode 100644
index 00000000..6ab21299
--- /dev/null
+++ b/debian/pinentry-tqt/pinentry-tqt-1.1.0/qt/qrc_pinentry.cpp
@@ -0,0 +1,177 @@
+/****************************************************************************
+** Resource object code
+**
+** Created: Wed Feb 17 23:35:02 2010
+** by: The Resource Compiler for Qt version 4.4.3
+**
+** WARNING! All changes made in this file will be lost!
+*****************************************************************************/
+
+#include <QtCore/qglobal.h>
+
+static const unsigned char qt_resource_data[] = {
+ // /home/marc/KDE/src/gnupg-backend/pinentry/qt4/document-encrypt.png
+ 0x0,0x0,0x7,0x2b,
+ 0x89,
+ 0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+ 0x0,0x0,0x30,0x0,0x0,0x0,0x30,0x8,0x6,0x0,0x0,0x0,0x57,0x2,0xf9,0x87,
+ 0x0,0x0,0x0,0x4,0x73,0x42,0x49,0x54,0x8,0x8,0x8,0x8,0x7c,0x8,0x64,0x88,
+ 0x0,0x0,0x0,0x9,0x70,0x48,0x59,0x73,0x0,0x0,0x5,0x31,0x0,0x0,0x5,0x31,
+ 0x1,0xb7,0xed,0x28,0x52,0x0,0x0,0x0,0x19,0x74,0x45,0x58,0x74,0x53,0x6f,0x66,
+ 0x74,0x77,0x61,0x72,0x65,0x0,0x77,0x77,0x77,0x2e,0x69,0x6e,0x6b,0x73,0x63,0x61,
+ 0x70,0x65,0x2e,0x6f,0x72,0x67,0x9b,0xee,0x3c,0x1a,0x0,0x0,0x6,0xa8,0x49,0x44,
+ 0x41,0x54,0x78,0xda,0xd5,0x59,0x4b,0x6c,0x55,0x45,0x18,0xfe,0x67,0xce,0x7d,0xf5,
+ 0xfd,0xc0,0x82,0xb1,0xd,0xb,0xdd,0x11,0x34,0x46,0xd1,0xd,0x1b,0x42,0x4c,0x48,
+ 0x31,0xb4,0x68,0x52,0x16,0xb8,0x31,0xae,0x4c,0xec,0x92,0x85,0xa9,0x8b,0x6e,0x8c,
+ 0xb2,0x60,0xa9,0x21,0xee,0x5c,0xdb,0xf8,0x58,0xb9,0xa1,0x6d,0x60,0x61,0x42,0xb4,
+ 0xe0,0x2,0x41,0xd,0x8,0xd1,0xb6,0x94,0x36,0x5c,0xfb,0xa6,0xbd,0xf7,0x9e,0x73,
+ 0xc6,0xef,0xfb,0x73,0x99,0x73,0xe3,0xc5,0x40,0xd3,0x9e,0x5b,0x99,0xe4,0xe3,0x9f,
+ 0x33,0x33,0x67,0xce,0xff,0xfd,0xaf,0x99,0x72,0x8d,0x73,0x4e,0x9e,0xe6,0x96,0x91,
+ 0x14,0xda,0x8d,0x1b,0x37,0x72,0xd7,0xaf,0x5f,0x7f,0xb1,0x54,0x2a,0xbd,0xba,0xb9,
+ 0xb9,0xc9,0xa1,0x2b,0xb3,0xb3,0xb3,0xd7,0x46,0x47,0x47,0xcb,0xb2,0xc3,0x6d,0xc7,
+ 0x3c,0x30,0x3e,0x3e,0xbe,0xbf,0x52,0xa9,0x7c,0x8,0xa5,0x5f,0xc9,0x66,0xb3,0x2f,
+ 0x37,0x37,0x37,0xe7,0x3b,0x3a,0x3a,0xc4,0x5a,0x2b,0x2b,0x2b,0x2b,0xb2,0xbc,0xbc,
+ 0x5c,0xba,0x7f,0xff,0xfe,0x35,0xcc,0xff,0xb4,0x67,0xcf,0x9e,0xb3,0x43,0x43,0x43,
+ 0x7f,0xfd,0x6f,0x8,0x4c,0x4c,0x4c,0x7c,0x10,0x86,0xe1,0x68,0x6b,0x6b,0x6b,0x4f,
+ 0x77,0x77,0xb7,0xe4,0x72,0x39,0xe1,0xbe,0x4b,0x4b,0x4b,0x2a,0xf7,0xee,0xdd,0x2b,
+ 0x50,0x5a,0xc7,0x17,0x16,0x16,0xe4,0xd2,0xa5,0x4b,0x45,0x90,0x1c,0x3d,0x75,0xea,
+ 0xd4,0xe7,0xbb,0x4a,0x60,0x72,0x72,0xb2,0x17,0x8a,0x7f,0x89,0xee,0x1b,0x5d,0x5d,
+ 0x5d,0x2,0xf,0xc8,0xad,0x5b,0xb7,0x64,0x71,0x71,0x51,0x15,0x6f,0x6b,0x6b,0x13,
+ 0x63,0xc,0x3d,0xa0,0x63,0x50,0x5a,0xe,0x1e,0x3c,0x28,0xc7,0x8e,0x1d,0x93,0xa9,
+ 0xa9,0x29,0x29,0x16,0x8b,0xe3,0xed,0xed,0xed,0xef,0x1e,0x3d,0x7a,0x74,0xb6,0xe1,
+ 0x4,0xc6,0xc6,0xc6,0x72,0xb0,0xf6,0x1f,0xe8,0xf6,0xc1,0xf2,0x72,0xf7,0xee,0x5d,
+ 0x86,0x89,0x74,0x76,0x76,0x4a,0x14,0x45,0x12,0xc7,0xb1,0x80,0x9c,0xca,0x20,0x8,
+ 0x24,0x93,0xc9,0x28,0x90,0xb,0x32,0x3d,0x3d,0x2d,0xc3,0xc3,0xc3,0x3a,0x7f,0xf3,
+ 0xe6,0xcd,0x99,0xde,0xde,0xde,0x17,0xe,0x1c,0x38,0x50,0x6e,0x24,0x1,0x86,0xcd,
+ 0x37,0x78,0xf7,0xad,0x7c,0x3e,0x2f,0xb7,0x6f,0xdf,0x16,0xc4,0x3c,0xad,0x4e,0x8b,
+ 0xff,0xd,0xa5,0x3f,0x3,0xa6,0x40,0x64,0xea,0xc1,0x83,0x7,0x24,0x70,0xa8,0x5c,
+ 0x2e,0x1f,0x82,0x1c,0x46,0x5e,0x74,0x93,0xe0,0xd5,0xab,0x57,0x65,0x70,0x70,0x50,
+ 0xf0,0x3e,0x3d,0xf7,0xed,0xe1,0xc3,0x87,0xdf,0x6e,0x18,0x81,0xb,0x17,0x2e,0x1c,
+ 0x47,0x72,0x7e,0x7,0x8b,0x66,0x69,0x51,0x48,0x2a,0x41,0x12,0x5f,0x6d,0x6c,0x6c,
+ 0xbc,0x7f,0xfa,0xf4,0xe9,0x45,0x79,0x44,0x3b,0x7f,0xfe,0x7c,0x17,0xac,0xfe,0x5,
+ 0x3c,0x36,0x54,0x28,0x14,0xe4,0xf2,0xe5,0xcb,0x32,0x32,0x32,0x42,0x2f,0x84,0x20,
+ 0x3e,0x8,0x12,0xdf,0xa7,0x4e,0xe0,0xe2,0xc5,0x8b,0x19,0x28,0x39,0x3,0xcb,0xed,
+ 0xa3,0xd2,0xf3,0xf3,0xf3,0x6a,0x79,0xe4,0xc0,0xc8,0xc0,0xc0,0xc0,0xa7,0xf2,0x4,
+ 0xed,0xdc,0xb9,0x73,0x1f,0xf5,0xf4,0xf4,0x7c,0xbc,0xbe,0xbe,0xae,0x89,0xdd,0xdf,
+ 0xdf,0x2f,0x73,0x73,0x73,0xf3,0x6b,0x6b,0x6b,0x7d,0x47,0x8e,0x1c,0x9,0x65,0xb,
+ 0xcd,0x6e,0x91,0x30,0xe3,0xfc,0x24,0x3e,0xba,0x8f,0xc9,0x39,0x33,0x33,0xa3,0xf1,
+ 0xe,0x32,0xbf,0x42,0xf9,0xb3,0xf2,0x84,0xed,0xcc,0x99,0x33,0x9f,0x20,0xb1,0x7f,
+ 0x69,0x6a,0x6a,0xd2,0xdc,0x41,0x69,0xa5,0x7,0xf7,0x61,0xea,0x24,0x20,0x69,0x12,
+ 0x60,0xe2,0xf5,0xb3,0x9a,0xd0,0xea,0x54,0x9e,0x7,0x55,0x4b,0x4b,0xcb,0x9b,0x98,
+ 0xda,0x8a,0x2b,0x1d,0x94,0x1e,0x0,0x1c,0x3c,0xc7,0x83,0x8f,0x15,0x8a,0xf9,0xd3,
+ 0x9f,0x36,0x1,0x5a,0x8a,0xc9,0x28,0x48,0x4a,0x92,0xe1,0x47,0x57,0x4f,0x9c,0x38,
+ 0x71,0x47,0xb6,0xd6,0xe8,0x85,0x3b,0x78,0x7f,0x81,0x7b,0xdd,0xbb,0x77,0x4f,0xe8,
+ 0xd,0xe4,0xd5,0xa1,0xb4,0x9,0xb0,0x2c,0xf6,0x2,0xac,0xed,0x24,0xc1,0x4,0xfe,
+ 0xdd,0x4f,0x6e,0x7d,0xaf,0x6b,0xf4,0x22,0xf,0x37,0x96,0x62,0xb4,0xde,0xb4,0x9,
+ 0xd0,0x4a,0x9d,0xc,0x9f,0xd5,0xd5,0x55,0x12,0xe0,0x61,0x35,0xe9,0x27,0xb7,0xbe,
+ 0xd7,0xf,0xc,0x41,0x1a,0xa4,0xda,0x3a,0xd3,0x26,0xc0,0x90,0x9,0xf0,0x61,0x86,
+ 0xf,0xad,0xcf,0xa1,0x95,0x6d,0x10,0x58,0xe6,0x1e,0x2c,0x8,0xa8,0x40,0x1c,0xa,
+ 0xd2,0x23,0x50,0xff,0x71,0x3d,0x84,0xd8,0x76,0x62,0xf,0x5f,0xce,0x1b,0x45,0x0,
+ 0xc9,0xc7,0xc4,0xdb,0x2e,0x81,0x6d,0xef,0x91,0xd9,0xe,0x1,0x1e,0x42,0xdb,0x6d,
+ 0x3c,0x91,0x7d,0x6b,0xb0,0x7,0xfc,0xc7,0x53,0xda,0x23,0x7d,0x2,0x8c,0xdf,0x6d,
+ 0x36,0xee,0xf1,0xd4,0x12,0x60,0xe,0x30,0xc,0xd3,0xff,0x83,0xe6,0xc7,0xaf,0xdf,
+ 0x71,0x2f,0xbd,0xe6,0xa4,0x38,0xdd,0x2d,0x8b,0xc5,0x66,0xdc,0x5d,0x22,0x9e,0x1,
+ 0x1e,0x15,0x95,0x25,0xf6,0xeb,0x20,0xce,0xb1,0xdc,0x12,0xbc,0x2e,0x40,0xe1,0xbc,
+ 0xe4,0xf2,0x39,0x55,0x3c,0x8b,0x3e,0x25,0xd,0x41,0x14,0x9a,0x72,0xd2,0xdd,0xd7,
+ 0x25,0xd9,0x67,0x9c,0x5c,0x99,0xf8,0x59,0x8e,0xbf,0x37,0x66,0x76,0x2c,0x89,0x6d,
+ 0x26,0x94,0x67,0xf7,0xff,0x26,0xdd,0x1d,0x7f,0xca,0xc6,0x52,0x28,0xeb,0xeb,0x4d,
+ 0xb8,0x7,0x65,0x65,0x63,0xc3,0x0,0x56,0x36,0x36,0x45,0x4a,0x81,0x91,0x4d,0xeb,
+ 0xa4,0xa4,0x88,0x25,0xb,0x80,0x0,0x94,0x34,0x92,0x27,0xf2,0x84,0x95,0x2,0x1c,
+ 0x97,0x2f,0x20,0x81,0x5b,0x9c,0x34,0x17,0x80,0xf6,0xb2,0x74,0xf4,0x64,0xa5,0xe9,
+ 0xb9,0xd7,0xc5,0xb4,0x3d,0x2f,0xc5,0xb9,0x62,0x7a,0x55,0xc8,0x18,0x7,0x65,0x8a,
+ 0x92,0x33,0xeb,0x52,0xce,0xc4,0xb2,0x89,0x1d,0xd6,0x4c,0x20,0xad,0x90,0x65,0x44,
+ 0x43,0x58,0xe0,0x15,0x81,0xb0,0x12,0x58,0x86,0x1a,0xde,0x81,0xcc,0x6,0xec,0x43,
+ 0xe2,0x1d,0x95,0x58,0x97,0x6b,0x1,0x89,0x56,0x10,0x6c,0xc5,0x73,0x4b,0x9f,0x2e,
+ 0xc4,0x9b,0xc,0xad,0x74,0x8,0x50,0xa9,0x28,0x22,0x2,0x71,0x84,0x33,0x12,0x39,
+ 0xc6,0x32,0x89,0x19,0x82,0x4a,0x60,0xdc,0xa2,0xaf,0x74,0x1,0x84,0x90,0xce,0x13,
+ 0xb1,0x44,0x92,0xc1,0x12,0x23,0xb1,0xe5,0xd7,0x1d,0xd6,0xc6,0x80,0xc3,0x1c,0xde,
+ 0xe1,0x46,0x0,0xae,0x16,0xe9,0x10,0xb0,0x96,0xd6,0x73,0x30,0x25,0x3e,0x8a,0x8f,
+ 0x84,0xb4,0x96,0xe8,0x4c,0x95,0x0,0x3e,0xc,0x38,0x6b,0x34,0x74,0x38,0x19,0x83,
+ 0x44,0x88,0xe1,0x80,0xd6,0xd5,0x57,0x23,0x90,0xc7,0x32,0x40,0x42,0xc,0x68,0x1d,
+ 0xa8,0x0,0xbc,0xd9,0x2,0xd6,0xa6,0xe4,0x1,0xdf,0x9c,0xc4,0x80,0x8b,0x61,0xb5,
+ 0xc0,0xd1,0x60,0x0,0x65,0xa4,0x16,0x57,0xc3,0x1a,0xc7,0x2e,0x43,0x88,0xc4,0x54,
+ 0x5a,0x8c,0x5,0xec,0x63,0x5c,0x3,0x5,0x2f,0x3a,0x1a,0xc2,0x71,0x4d,0x6,0x32,
+ 0x20,0x68,0x98,0xd4,0x3c,0xe0,0xc3,0xa8,0xea,0x7f,0xc8,0x90,0xa,0x78,0x44,0x40,
+ 0x88,0xb9,0x58,0x17,0x92,0x26,0x63,0x5f,0x9f,0xc4,0xa8,0x53,0xac,0x5f,0x6b,0xa2,
+ 0x8,0x88,0x51,0x9d,0x1c,0x40,0x19,0x81,0x19,0x90,0xb6,0x7,0x18,0x46,0x21,0xc3,
+ 0xc4,0x44,0x4c,0x68,0x40,0x3c,0xb2,0x81,0xc6,0x35,0x74,0xd7,0xf0,0xf1,0x49,0x5c,
+ 0xcd,0x1,0xed,0x5b,0x63,0x28,0x81,0x98,0xde,0x21,0x4f,0xcd,0x29,0xb,0x18,0x1a,
+ 0x26,0x5d,0xf,0xf8,0xd0,0x96,0xd8,0x51,0x51,0x42,0x95,0xa8,0xc2,0xe8,0x58,0x54,
+ 0x55,0xc0,0xe9,0xba,0x2c,0x3d,0xa2,0x4a,0x87,0x21,0xc3,0xc9,0xe1,0x3c,0x88,0xa1,
+ 0xb0,0xd3,0x67,0x74,0x7d,0x75,0x13,0xd1,0x87,0x74,0x3d,0x60,0x4c,0x2d,0x8c,0xa2,
+ 0x36,0x3f,0xf8,0x64,0xf9,0xaf,0x4a,0x5a,0x3f,0xe4,0x70,0xd5,0x3,0xde,0x2b,0x55,
+ 0x90,0x8c,0x46,0x8d,0x42,0x14,0xb6,0x31,0xb7,0x51,0x63,0x34,0x79,0x21,0x1d,0xa4,
+ 0xa9,0x8b,0x71,0x6d,0xec,0x13,0x31,0xd7,0xea,0x9c,0xe,0x26,0x9c,0xd,0xbc,0x80,
+ 0xb9,0x10,0x79,0x0,0xaf,0xd9,0xf4,0xaf,0xd3,0xac,0xd1,0x55,0xe8,0x79,0x60,0x7c,
+ 0x8,0x51,0xb9,0x84,0x84,0xe6,0x8a,0xf7,0x54,0xc6,0x5b,0xd9,0x2b,0xf,0x19,0xd5,
+ 0x78,0x42,0x47,0xf0,0x9e,0x6e,0x90,0x26,0x81,0x58,0x15,0x73,0x80,0x9,0x20,0x81,
+ 0x87,0xa,0xc4,0x80,0xf,0x5,0xd1,0x40,0xaa,0x3b,0xc1,0xf9,0x2e,0xc7,0x95,0x84,
+ 0xca,0x8,0x48,0xc8,0x89,0x21,0x4c,0x63,0x42,0x28,0x49,0x5c,0xab,0x32,0xf1,0x2,
+ 0x51,0x1b,0x2a,0xc6,0xaf,0xe7,0x69,0x9b,0x9,0x9c,0x5f,0x1f,0x86,0x56,0x72,0x2e,
+ 0xd9,0x47,0x20,0xd1,0x69,0xc,0x1,0x6b,0x1f,0x22,0xae,0xb9,0x4a,0xd4,0x12,0x20,
+ 0xa1,0xc4,0xb,0xc9,0x5a,0x2d,0xa3,0x94,0x80,0xf8,0xbc,0xa8,0xae,0xda,0xb5,0x9f,
+ 0x98,0x18,0xbf,0x80,0xd4,0x82,0x25,0x93,0xe3,0xfe,0x0,0xa4,0x7,0x24,0x88,0x94,
+ 0x48,0x12,0xff,0x9,0x39,0x51,0xd8,0xc6,0x11,0x88,0x63,0x8f,0x5a,0x2b,0x7a,0xa5,
+ 0xd9,0xa2,0x88,0xb7,0x21,0xab,0xa7,0xad,0x88,0xc1,0xb3,0x55,0xeb,0x4b,0x5,0x28,
+ 0x63,0x75,0xe,0xa3,0x15,0xbd,0x5e,0x35,0xa2,0xa,0xd1,0xca,0xa,0xad,0x3e,0xf8,
+ 0x6c,0xd,0x91,0xa0,0x2e,0x17,0xd0,0x83,0xe2,0x3c,0x7d,0x35,0x79,0x6b,0xae,0x14,
+ 0x9a,0xd0,0x3c,0x3,0x38,0xaf,0x30,0x9c,0x48,0x9f,0x0,0x13,0x53,0xc1,0xaa,0xe1,
+ 0xe3,0x9f,0xa,0xb8,0x38,0xa2,0xf2,0xe8,0xf8,0x3c,0xd4,0x6b,0x83,0xf5,0x57,0x8a,
+ 0x8,0x10,0x26,0x31,0x43,0x9,0xf0,0x21,0x87,0x7e,0xc,0xb8,0xdd,0xfc,0x99,0xd5,
+ 0xd7,0x7f,0xf,0x25,0x61,0xab,0xca,0x9,0x9,0xb0,0x2f,0xc9,0x19,0x91,0x24,0x7d,
+ 0x42,0x64,0xb7,0x8,0x38,0x47,0xc4,0x2a,0x13,0xab,0xd6,0xa2,0x76,0x6d,0x1d,0x59,
+ 0xc0,0xed,0x2e,0x1,0x7f,0x18,0x29,0x1e,0x55,0x6a,0x3d,0x89,0xda,0xd2,0x5b,0x87,
+ 0x54,0xff,0x5b,0x25,0xfd,0xf6,0x14,0x12,0x48,0xe1,0x97,0x7a,0x5f,0xce,0x32,0x40,
+ 0xf0,0x18,0x58,0x2f,0x13,0x18,0x2f,0x89,0xfa,0xe6,0xaa,0x88,0xbd,0x4c,0x10,0x3d,
+ 0x94,0x8f,0x41,0x48,0x9d,0x6b,0x9,0x50,0xe9,0xa0,0xaa,0x74,0x96,0x72,0x87,0x61,
+ 0xab,0x8a,0x85,0x3b,0x88,0xa,0x50,0x66,0xff,0xbf,0x3c,0x60,0xeb,0x91,0x58,0xfd,
+ 0x31,0xb0,0x89,0xe2,0xa,0xa9,0xb3,0xb4,0x87,0x7f,0xe,0xeb,0x3d,0x50,0xef,0x1d,
+ 0xc2,0xfd,0x4b,0xe1,0x7f,0x0,0xd8,0x6e,0xc6,0xdd,0x5d,0xd6,0xb,0x18,0x0,0x0,
+ 0x0,0x0,0x49,0x45,0x4e,0x44,0xae,0x42,0x60,0x82,
+};
+
+static const unsigned char qt_resource_name[] = {
+ // document-encrypt.png
+ 0x0,0x14,
+ 0x8,0xbf,0x25,0x67,
+ 0x0,0x64,
+ 0x0,0x6f,0x0,0x63,0x0,0x75,0x0,0x6d,0x0,0x65,0x0,0x6e,0x0,0x74,0x0,0x2d,0x0,0x65,0x0,0x6e,0x0,0x63,0x0,0x72,0x0,0x79,0x0,0x70,0x0,0x74,0x0,0x2e,
+ 0x0,0x70,0x0,0x6e,0x0,0x67,
+};
+
+static const unsigned char qt_resource_struct[] = {
+ // :
+ 0x0,0x0,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x1,
+ // :/document-encrypt.png
+ 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,
+
+};
+
+QT_BEGIN_NAMESPACE
+
+extern bool qRegisterResourceData
+ (int, const unsigned char *, const unsigned char *, const unsigned char *);
+
+extern bool qUnregisterResourceData
+ (int, const unsigned char *, const unsigned char *, const unsigned char *);
+
+QT_END_NAMESPACE
+
+
+int QT_MANGLE_NAMESPACE(qInitResources_pinentry)()
+{
+ QT_PREPEND_NAMESPACE(qRegisterResourceData)
+ (0x01, qt_resource_struct, qt_resource_name, qt_resource_data);
+ return 1;
+}
+
+Q_CONSTRUCTOR_FUNCTION(QT_MANGLE_NAMESPACE(qInitResources_pinentry))
+
+int QT_MANGLE_NAMESPACE(qCleanupResources_pinentry)()
+{
+ QT_PREPEND_NAMESPACE(qUnregisterResourceData)
+ (0x01, qt_resource_struct, qt_resource_name, qt_resource_data);
+ return 1;
+}
+
+Q_DESTRUCTOR_FUNCTION(QT_MANGLE_NAMESPACE(qCleanupResources_pinentry))