1 #ifndef APPLICATION_UTILITIES_RESOURCES_H
2 #define APPLICATION_UTILITIES_RESOURCES_H
3 
4 #include "../global.h"
5 
6 #include <QtContainerFwd>
7 #include <QtGlobal>
8 
9 #include <initializer_list>
10 
11 QT_FORWARD_DECLARE_CLASS(QString)
QT_FORWARD_DECLARE_CLASS(QSettings)12 QT_FORWARD_DECLARE_CLASS(QSettings)
13 #if (QT_VERSION < QT_VERSION_CHECK(6, 0, 0))
14 QT_FORWARD_DECLARE_CLASS(QStringList)
15 #endif
16 
17 /*!
18  * \brief Sets the application meta data in the QCoreApplication singleton and attributes commonly used
19  *        within my applications.
20  * \sa ::QtUtilities::setupCommonQtApplicationAttributes()
21  */
22 #define SET_QT_APPLICATION_INFO                                                                                                                      \
23     QCoreApplication::setOrganizationName(QStringLiteral(APP_AUTHOR));                                                                               \
24     QCoreApplication::setOrganizationDomain(QStringLiteral(APP_DOMAIN));                                                                             \
25     QCoreApplication::setApplicationName(QStringLiteral(APP_NAME));                                                                                  \
26     QCoreApplication::setApplicationVersion(QStringLiteral(APP_VERSION));                                                                            \
27     ::QtUtilities::setupCommonQtApplicationAttributes()
28 
29 /*!
30  * \brief Loads translations for Qt, other dependencies and the application.
31  */
32 #define LOAD_QT_TRANSLATIONS                                                                                                                         \
33     QtUtilities::TranslationFiles::loadQtTranslationFile(QT_TRANSLATION_FILES);                                                                      \
34     QtUtilities::TranslationFiles::loadApplicationTranslationFile(QStringLiteral(PROJECT_CONFIG_NAME), APP_SPECIFIC_QT_TRANSLATION_FILES)
35 
36 namespace QtUtilities {
37 
38 namespace QtUtilitiesResources {
39 
40 QT_UTILITIES_EXPORT void init();
41 QT_UTILITIES_EXPORT void cleanup();
42 } // namespace QtUtilitiesResources
43 
44 namespace TranslationFiles {
45 
46 QT_UTILITIES_EXPORT QString &additionalTranslationFilePath();
47 QT_UTILITIES_EXPORT void loadQtTranslationFile(std::initializer_list<QString> repositoryNames);
48 QT_UTILITIES_EXPORT void loadQtTranslationFile(std::initializer_list<QString> repositoryNames, const QString &localeName);
49 QT_UTILITIES_EXPORT void loadApplicationTranslationFile(const QString &configName, const QString &applicationName);
50 QT_UTILITIES_EXPORT void loadApplicationTranslationFile(const QString &configName, const QString &applicationName, const QString &localeName);
51 QT_UTILITIES_EXPORT void loadApplicationTranslationFile(const QString &configName, const std::initializer_list<QString> &applicationNames);
52 QT_UTILITIES_EXPORT void loadApplicationTranslationFile(
53     const QString &configName, const std::initializer_list<QString> &applicationNames, const QString &localeName);
54 } // namespace TranslationFiles
55 
56 namespace ApplicationInstances {
57 
58 #if defined(QT_UTILITIES_GUI_QTWIDGETS)
59 QT_UTILITIES_EXPORT bool hasWidgetsApp();
60 #endif
61 #if defined(QT_UTILITIES_GUI_QTWIDGETS) || defined(QT_UTILITIES_GUI_QTQUICK)
62 QT_UTILITIES_EXPORT bool hasGuiApp();
63 #endif
64 QT_UTILITIES_EXPORT bool hasCoreApp();
65 } // namespace ApplicationInstances
66 
67 QT_UTILITIES_EXPORT void setupCommonQtApplicationAttributes();
68 
69 } // namespace QtUtilities
70 
71 #endif // APPLICATION_UTILITIES_RESOURCES_H
72