\let\mypdfximage\pdfximage\def\pdfximage{\immediate\mypdfximage}\documentclass[twoside]{book}

%% moved from doxygen.sty due to workaround for LaTex 2019 version and unmaintained tabu package
\usepackage{ifthen}
\ifx\requestedLaTeXdate\undefined
\usepackage{array}
\else
\usepackage{array}[=2016-10-06]
\fi
%%
% Packages required by doxygen
\usepackage{fixltx2e}
\usepackage{doxygen}
\usepackage{graphicx}
\usepackage[utf8]{inputenc}
\usepackage{makeidx}
\PassOptionsToPackage{warn}{textcomp}
\usepackage{textcomp}
\usepackage[nointegrals]{wasysym}
\usepackage{ifxetex}

% Font selection
\usepackage[T1]{fontenc}
\usepackage[scaled=.90]{helvet}
\usepackage{courier}
\renewcommand{\familydefault}{\sfdefault}
\usepackage{sectsty}
\allsectionsfont{%
  \fontseries{bc}\selectfont%
  \color{darkgray}%
}
\renewcommand{\DoxyLabelFont}{%
  \fontseries{bc}\selectfont%
  \color{darkgray}%
}
\newcommand{\+}{\discretionary{\mbox{\scriptsize$\hookleftarrow$}}{}{}}

% Arguments of doxygenemoji:
% 1) ':<text>:' form of the emoji, already "LaTeX"-escaped
% 2) file with the name of the emoji without the .png extension
% in case image exist use this otherwise use the ':<text>:' form
\newcommand{\doxygenemoji}[2]{%
  \IfFileExists{./#2.png}{\raisebox{-0.1em}{\includegraphics[height=0.9em]{./#2.png}}}{#1}%
}
% Page & text layout
\usepackage{geometry}
\geometry{%
  a4paper,%
  top=2.5cm,%
  bottom=2.5cm,%
  left=2.5cm,%
  right=2.5cm%
}
\tolerance=750
\hfuzz=15pt
\hbadness=750
\setlength{\emergencystretch}{15pt}
\setlength{\parindent}{0cm}
\newcommand{\doxynormalparskip}{\setlength{\parskip}{3ex plus 2ex minus 2ex}}
\newcommand{\doxytocparskip}{\setlength{\parskip}{1ex plus 0ex minus 0ex}}
\doxynormalparskip
\makeatletter
\renewcommand{\paragraph}{%
  \@startsection{paragraph}{4}{0ex}{-1.0ex}{1.0ex}{%
    \normalfont\normalsize\bfseries\SS@parafont%
  }%
}
\renewcommand{\subparagraph}{%
  \@startsection{subparagraph}{5}{0ex}{-1.0ex}{1.0ex}{%
    \normalfont\normalsize\bfseries\SS@subparafont%
  }%
}
\makeatother

\makeatletter
\newcommand\hrulefilll{\leavevmode\leaders\hrule\hskip 0pt plus 1filll\kern\z@}
\makeatother

% Headers & footers
\usepackage{fancyhdr}
\pagestyle{fancyplain}
\renewcommand{\footrulewidth}{0.4pt}
%
\fancypagestyle{fancyplain}{
\fancyhf{}
\fancyhead[LE, RO]{\bfseries\thepage}
\fancyhead[LO]{\bfseries\rightmark}
\fancyhead[RE]{\bfseries\leftmark}
\fancyfoot[LO, RE]{\bfseries\scriptsize Generated by Doxygen }
}
%
\fancypagestyle{plain}{
\fancyhf{}
\fancyfoot[LO, RE]{\bfseries\scriptsize Generated by Doxygen }
\renewcommand{\headrulewidth}{0pt}}
%
\pagestyle{fancyplain}
%
\renewcommand{\chaptermark}[1]{%
  \markboth{#1}{}%
}
\renewcommand{\sectionmark}[1]{%
  \markright{\thesection\ #1}%
}

% Indices & bibliography
\usepackage{natbib}
\usepackage[titles]{tocloft}
\setcounter{tocdepth}{3}
\setcounter{secnumdepth}{5}
\makeindex

\usepackage{newunicodechar}
  \newunicodechar{⁻}{${}^{-}$}% Superscript minus
  \newunicodechar{²}{${}^{2}$}% Superscript two
  \newunicodechar{³}{${}^{3}$}% Superscript three

% Hyperlinks (required, but should be loaded last)
\ifpdf
  \usepackage[pdftex,pagebackref=true]{hyperref}
\else
  \ifxetex
    \usepackage[pagebackref=true]{hyperref}
  \else
    \usepackage[ps2pdf,pagebackref=true]{hyperref}
  \fi
\fi

\hypersetup{%
  colorlinks=true,%
  linkcolor=blue,%
  citecolor=blue,%
  unicode%
}

% Custom commands
\newcommand{\clearemptydoublepage}{%
  \newpage{\pagestyle{empty}\cleardoublepage}%
}

\usepackage{caption}
\captionsetup{labelsep=space,justification=centering,font={bf},singlelinecheck=off,skip=4pt,position=top}

\usepackage{etoc}
\etocsettocstyle{\doxytocparskip}{\doxynormalparskip}
\renewcommand{\numberline}[1]{#1~}
%===== C O N T E N T S =====

\begin{document}
\raggedbottom

% Titlepage & ToC
\hypersetup{pageanchor=false,
             bookmarksnumbered=true,
             pdfencoding=unicode
            }
\pagenumbering{alph}
\begin{titlepage}
\vspace*{7cm}
\begin{center}%
{\Large Gpg\+Frontend Project }\\
\vspace*{1cm}
{\large Generated by Doxygen 1.9.1}\\
\end{center}
\end{titlepage}
\clearemptydoublepage
\pagenumbering{roman}
\tableofcontents
\clearemptydoublepage
\pagenumbering{arabic}
\hypersetup{pageanchor=true}

%--- Begin generated contents ---
\chapter{Gpg\+Frontend Develop Document Main Page}
\label{index}\hypertarget{index}{}\input{index}
\chapter{Namespace Index}
\input{namespaces}
\chapter{Hierarchical Index}
\input{hierarchy}
\chapter{Class Index}
\input{annotated}
\chapter{Namespace Documentation}
\input{namespaceGpgFrontend}
\input{namespaceGpgFrontend_1_1RawAPI}
\input{namespaceGpgFrontend_1_1Thread}
\input{namespaceGpgFrontend_1_1UI}
\chapter{Class Documentation}
\input{structGpgFrontend_1_1GpgContext_1_1__ctx__ref__deleter}
\input{structGpgFrontend_1_1GpgData_1_1__data__ref__deleter}
\input{structGpgFrontend_1_1GpgKey_1_1__key__ref__deleter}
\input{structGpgFrontend_1_1__result__ref__deletor}
\input{classGpgFrontend_1_1UI_1_1AboutDialog}
\input{classGpgFrontend_1_1UI_1_1AdvancedTab}
\input{classGpgFrontend_1_1UI_1_1AppearanceTab}
\input{classGpgFrontend_1_1ArchiveFileOperator}
\input{structGpgFrontend_1_1ArchiveStruct}
\input{structGpgFrontend_1_1GpgKeyManager_1_1AutomatonHandelStruct}
\input{classGpgFrontend_1_1CacheManager}
\input{classGpgFrontend_1_1ChannelObject}
\input{classGpgFrontend_1_1CharsetOperator}
\input{classGpgFrontend_1_1UI_1_1ChoosePage}
\input{classclass}
\input{classGpgFrontend_1_1UI_1_1CommonUtils}
\input{classGpgFrontend_1_1UI_1_1ConclusionPage}
\input{classGpgFrontend_1_1CoreCommonUtil}
\input{classGpgFrontend_1_1CoreSignalStation}
\input{structGpgFrontend_1_1UI_1_1MainWindow_1_1CryptoMenu}
\input{classGpgFrontend_1_1Thread_1_1CtxCheckTask}
\input{classGpgFrontend_1_1Thread_1_1Task_1_1DataObject}
\input{classGpgFrontend_1_1DataObjectOperator}
\input{structGpgFrontend_1_1Thread_1_1Task_1_1DataObject_1_1Destructor}
\input{classGpgFrontend_1_1UI_1_1ExportKeyPackageDialog}
\input{classGpgFrontend_1_1FileOperator}
\input{classGpgFrontend_1_1UI_1_1FilePage}
\input{classGpgFrontend_1_1UI_1_1FileReadTask}
\input{classGpgFrontend_1_1UI_1_1FindWidget}
\input{classGpgFrontend_1_1UI_1_1GeneralDialog}
\input{classGpgFrontend_1_1UI_1_1GeneralMainWindow}
\input{classGpgFrontend_1_1UI_1_1GeneralTab}
\input{classGpgFrontend_1_1GenKeyInfo}
\input{classGpgFrontend_1_1GlobalSettingStation}
\input{classGpgFrontend_1_1UI_1_1GnuPGControllerDialog}
\input{classGpgFrontend_1_1UI_1_1GnupgTab}
\input{classGpgFrontend_1_1GpgAdvancedOperator}
\input{classGpgFrontend_1_1GpgBasicOperator}
\input{classGpgFrontend_1_1GpgCommandExecutor}
\input{classGpgFrontend_1_1GpgConstants}
\input{classGpgFrontend_1_1GpgContext}
\input{structGpgFrontend_1_1GpgContextInitArgs}
\input{classGpgFrontend_1_1GpgData}
\input{classGpgFrontend_1_1GpgDecryptResultAnalyse}
\input{classGpgFrontend_1_1GpgEncryptResultAnalyse}
\input{classGpgFrontend_1_1GpgFileOpera}
\input{classGpgFrontend_1_1UI_1_1GpgFrontendApplication}
\input{classGpgFrontend_1_1GpgImportedKey}
\input{classGpgFrontend_1_1GpgImportInformation}
\input{classGpgFrontend_1_1GpgInfo}
\input{classGpgFrontend_1_1GpgKey}
\input{classGpgFrontend_1_1GpgKeyGetter}
\input{classGpgFrontend_1_1GpgKeyImportExporter}
\input{classGpgFrontend_1_1GpgKeyManager}
\input{classGpgFrontend_1_1GpgKeyOpera}
\input{classGpgFrontend_1_1GpgKeySignature}
\input{classGpgFrontend_1_1GpgResultAnalyse}
\input{classGpgFrontend_1_1GpgSignature}
\input{classGpgFrontend_1_1GpgSignResultAnalyse}
\input{classGpgFrontend_1_1GpgSubKey}
\input{classGpgFrontend_1_1GpgTOFUInfo}
\input{classGpgFrontend_1_1GpgUID}
\input{classGpgFrontend_1_1GpgUIDOperator}
\input{classGpgFrontend_1_1GpgVerifyResultAnalyse}
\input{classGpgFrontend_1_1UI_1_1HelpPage}
\input{classGpgFrontend_1_1UI_1_1InfoBoardWidget}
\input{classGpgFrontend_1_1UI_1_1InfoTab}
\input{classGpgFrontend_1_1UI_1_1IntroPage}
\input{classGpgFrontend_1_1UI_1_1KeyDetailsDialog}
\input{classGpgFrontend_1_1UI_1_1KeyGenDialog}
\input{classGpgFrontend_1_1UI_1_1KeyGenPage}
\input{classGpgFrontend_1_1UI_1_1KeyImportDetailDialog}
\input{classGpgFrontend_1_1UI_1_1KeyList}
\input{structGpgFrontend_1_1UI_1_1KeyListColumn}
\input{structGpgFrontend_1_1UI_1_1KeyListRow}
\input{structGpgFrontend_1_1UI_1_1KeyMenuAbility}
\input{classGpgFrontend_1_1UI_1_1KeyMgmt}
\input{classGpgFrontend_1_1UI_1_1KeyNewUIDDialog}
\input{classGpgFrontend_1_1KeyPackageOperator}
\input{classGpgFrontend_1_1UI_1_1KeyPairDetailTab}
\input{classGpgFrontend_1_1UI_1_1KeyPairOperaTab}
\input{classGpgFrontend_1_1UI_1_1KeyPairSubkeyTab}
\input{classGpgFrontend_1_1UI_1_1KeyPairUIDTab}
\input{classGpgFrontend_1_1UI_1_1KeyServerImportDialog}
\input{classGpgFrontend_1_1UI_1_1KeyServerImportTask}
\input{classGpgFrontend_1_1UI_1_1KeyServerSearchTask}
\input{classGpgFrontend_1_1UI_1_1KeyserverTab}
\input{classGpgFrontend_1_1UI_1_1KeySetExpireDateDialog}
\input{structGpgFrontend_1_1UI_1_1KeyTable}
\input{classGpgFrontend_1_1UI_1_1KeyUIDSignDialog}
\input{classGpgFrontend_1_1UI_1_1KeyUploadDialog}
\input{classGpgFrontend_1_1UI_1_1ListedKeyServerTestTask}
\input{classGpgFrontend_1_1UI_1_1MainWindow}
\input{classGpgFrontend_1_1UI_1_1NetworkTab}
\input{classGpgFrontend_1_1PassphraseGenerator}
\input{classGpgFrontend_1_1UI_1_1PlainTextEditorPage}
\input{classGpgFrontend_1_1UI_1_1ProxyConnectionTestTask}
\input{classProxyConnectionTestThread}
\input{classGpgFrontend_1_1UI_1_1QuitDialog}
\input{classGpgFrontend_1_1UI_1_1SettingsDialog}
\input{classGpgFrontend_1_1UI_1_1SettingsObject}
\input{classGpgFrontend_1_1UI_1_1SignalStation}
\input{classSignatureDetailsDialog}
\input{classGpgFrontend_1_1UI_1_1SignersPicker}
\input{classGpgFrontend_1_1SingletonFunctionObject}
\input{classGpgFrontend_1_1SingletonStorage}
\input{classGpgFrontend_1_1SingletonStorageCollection}
\input{structGpgFrontend_1_1UI_1_1SoftwareVersion}
\input{classGpgFrontend_1_1UI_1_1SubkeyGenerateDialog}
\input{classGpgFrontend_1_1Thread_1_1Task}
\input{classGpgFrontend_1_1Thread_1_1TaskRunner}
\input{classGpgFrontend_1_1Thread_1_1TaskRunnerGetter}
\input{classTestListedKeyServerThread}
\input{classGpgFrontend_1_1UI_1_1TextEdit}
\input{classGpgFrontend_1_1ThreadSafeMap}
\input{classGpgFrontend_1_1UI_1_1TOFUInfoPage}
\input{classGpgFrontend_1_1UI_1_1TranslatorsTab}
\input{classGpgFrontend_1_1UI_1_1UpdateTab}
\input{classGpgFrontend_1_1UI_1_1VerifyDetailsDialog}
\input{classGpgFrontend_1_1UI_1_1VerifyKeyDetailBox}
\input{classGpgFrontend_1_1UI_1_1VersionCheckTask}
\input{classGpgFrontend_1_1UI_1_1WaitingDialog}
\input{classGpgFrontend_1_1UI_1_1Wizard}
%--- End generated contents ---

% Index
\backmatter
\newpage
\phantomsection
\clearemptydoublepage
\addcontentsline{toc}{chapter}{\indexname}
\printindex

\end{document}
