Skip to content

Commit b093180

Browse files
committed
Refactor Application-related constants
1 parent 621840a commit b093180

18 files changed

+325
-236
lines changed

CMakeLists.txt

+10-9
Original file line numberDiff line numberDiff line change
@@ -25,21 +25,21 @@ if(POLICY CMP0072)
2525
endif()
2626

2727
# Global version
28-
set(VERSION_MAJOR 4)
29-
set(VERSION_MINOR 4)
30-
set(VERSION_PATCH 0)
31-
set(VERSION "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}")
28+
set(APPLICATION_VERSION_MAJOR 4)
29+
set(APPLICATION_VERSION_MINOR 4)
30+
set(APPLICATION_VERSION_PATCH 0)
31+
set(APPLICATION_VERSION "${APPLICATION_VERSION_MAJOR}.${APPLICATION_VERSION_MINOR}.${APPLICATION_VERSION_PATCH}")
3232

33-
message("\n${CMAKE_PROJECT_NAME} ${VERSION}\n")
33+
message("\n${CMAKE_PROJECT_NAME} ${APPLICATION_VERSION}\n")
3434
message(STATUS "System name : ${CMAKE_HOST_SYSTEM_NAME}")
3535
message(STATUS "System version : ${CMAKE_SYSTEM_VERSION}")
3636
message(STATUS "Compiler identity : ${CMAKE_CXX_COMPILER_ID}")
3737
message(STATUS "Compiler version : ${CMAKE_CXX_COMPILER_VERSION}")
3838

3939
# Some common CPack variables
40-
set(CPACK_PACKAGE_VERSION_MAJOR ${VERSION_MAJOR})
41-
set(CPACK_PACKAGE_VERSION_MINOR ${VERSION_MINOR})
42-
set(CPACK_PACKAGE_VERSION_PATCH ${VERSION_PATCH})
40+
set(CPACK_PACKAGE_VERSION_MAJOR ${APPLICATION_VERSION_MAJOR})
41+
set(CPACK_PACKAGE_VERSION_MINOR ${APPLICATION_VERSION_MINOR})
42+
set(CPACK_PACKAGE_VERSION_PATCH ${APPLICATION_VERSION_PATCH})
4343

4444
set(CPACK_PACKAGE_NAME heimer)
4545
set(CPACK_PACKAGE_VENDOR Juzzlin)
@@ -94,7 +94,8 @@ endif()
9494
string(TOLOWER ${CMAKE_PROJECT_NAME} BINARY_NAME)
9595
set(HEIMER_LIB_NAME ${CMAKE_PROJECT_NAME})
9696

97-
add_definitions(-DVERSION="${VERSION}")
97+
add_definitions(-DAPPLICATION_NAME="${CMAKE_PROJECT_NAME}")
98+
add_definitions(-DAPPLICATION_VERSION="${APPLICATION_VERSION}")
9899

99100
set(CMAKE_AUTOMOC ON)
100101
set(CMAKE_INCLUDE_CURRENT_DIR ON)

InstallLinux.cmake

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ function(setup_install_targets)
2222
install(FILES data/icons/heimer.png DESTINATION share/icons/hicolor/256x256/apps)
2323

2424
set(CPACK_DEBIAN_PACKAGE_NAME "heimer")
25-
set(CPACK_DEBIAN_PACKAGE_VERSION ${VERSION})
25+
set(CPACK_DEBIAN_PACKAGE_VERSION ${APPLICATION_VERSION})
2626
set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE "amd64")
2727
set(CPACK_DEBIAN_PACKAGE_MAINTAINER "Jussi Lind <jussi.lind@iki.fi>")
2828
set(CPACK_DEBIAN_PACKAGE_DESCRIPTION "Simple mind map creation tool.")

scripts/update-version

+4-4
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,11 @@ fi
1414

1515
FILE=CMakeLists.txt
1616
echo "Updating ${FILE} .."
17-
sed -i "s/^set(VERSION_MAJOR.*/set(VERSION_MAJOR ${VERSION_MAJOR})/" ${FILE} || exit 1
18-
sed -i "s/^set(VERSION_MINOR.*/set(VERSION_MINOR ${VERSION_MINOR})/" ${FILE} || exit 1
19-
sed -i "s/^set(VERSION_PATCH.*/set(VERSION_PATCH ${VERSION_PATCH})/" ${FILE} || exit 1
17+
sed -i "s/^set(APPLICATION_VERSION_MAJOR.*/set(APPLICATION_VERSION_MAJOR ${VERSION_MAJOR})/" ${FILE} || exit 1
18+
sed -i "s/^set(APPLICATION_VERSION_MINOR.*/set(APPLICATION_VERSION_MINOR ${VERSION_MINOR})/" ${FILE} || exit 1
19+
sed -i "s/^set(APPLICATION_VERSION_PATCH.*/set(APPLICATION_VERSION_PATCH ${VERSION_PATCH})/" ${FILE} || exit 1
2020

21-
for FILE in heimer.pro snapcraft.yaml scripts/build-app-image scripts/build-archive scripts/build-windows-zip; do
21+
for FILE in snapcraft.yaml scripts/build-app-image scripts/build-archive scripts/build-windows-zip; do
2222
echo "Updating ${FILE} .."
2323
sed -i -E "s/[0-9]+\.[0-9]+\.[0-9]+/$VERSION_MAJOR.$VERSION_MINOR.$VERSION_PATCH/g" ${FILE} || exit 1
2424
done

src/CMakeLists.txt

+1
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ set(HEIMER_LIB_SRC
2626
application/service_container.cpp
2727
application/settings_proxy.cpp
2828
application/state_machine.cpp
29+
common/constants.cpp
2930
common/test_mode.cpp
3031
common/utils.cpp
3132
domain/copy_context.cpp

src/application/application.cpp

+4-4
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ Application::Application(int & argc, char ** argv)
119119

120120
QString Application::getFileDialogFileText() const
121121
{
122-
return tr("Heimer Files") + " (*" + Constants::Application::FILE_EXTENSION + ")";
122+
return tr("Heimer Files") + " (*" + Constants::Application::fileExtension() + ")";
123123
}
124124

125125
// Forces the language to the given one or chooses the best UI language
@@ -153,7 +153,7 @@ void Application::initTranslations()
153153
// Application's translations
154154
for (auto && lang : langs) {
155155
L().debug() << "Trying application translations for '" << lang.toStdString() << "'";
156-
if (m_appTranslator.load(Constants::Application::TRANSLATIONS_RESOURCE_BASE + lang)) {
156+
if (m_appTranslator.load(Constants::Application::translationsResourceBase() + lang)) {
157157
m_application.installTranslator(&m_appTranslator);
158158
L().debug() << "Loaded application translations for '" << lang.toStdString() << "'";
159159
break;
@@ -363,8 +363,8 @@ void Application::saveMindMapAs()
363363
return;
364364
}
365365

366-
if (!fileName.endsWith(Constants::Application::FILE_EXTENSION)) {
367-
fileName += Constants::Application::FILE_EXTENSION;
366+
if (!fileName.endsWith(Constants::Application::fileExtension())) {
367+
fileName += Constants::Application::fileExtension();
368368
}
369369

370370
if (m_sc->applicationService()->saveMindMapAs(fileName)) {

src/common/constants.cpp

+84
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
// This file is part of Heimer.
2+
// Copyright (C) 2024 Jussi Lind <jussi.lind@iki.fi>
3+
//
4+
// Heimer is free software: you can redistribute it and/or modify
5+
// it under the terms of the GNU General Public License as published by
6+
// the Free Software Foundation, either version 3 of the License, or
7+
// (at your option) any later version.
8+
// Heimer is distributed in the hope that it will be useful,
9+
// but WITHOUT ANY WARRANTY; without even the implied warranty of
10+
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+
// GNU General Public License for more details.
12+
//
13+
// You should have received a copy of the GNU General Public License
14+
// along with Heimer. If not, see <http://www.gnu.org/licenses/>.
15+
16+
#include "constants.hpp"
17+
18+
namespace Constants::Application {
19+
20+
QString applicationName()
21+
{
22+
return APPLICATION_NAME;
23+
}
24+
25+
QString applicationPackageType()
26+
{
27+
#ifndef PACKAGE_TYPE
28+
return QStringLiteral("N/A");
29+
#else
30+
return QStringLiteral(PACKAGE_TYPE);
31+
#endif
32+
}
33+
34+
QString applicationVersion()
35+
{
36+
return APPLICATION_VERSION;
37+
}
38+
39+
IO::AlzFormatVersion alzFormatVersion()
40+
{
41+
return IO::AlzFormatVersion::V2;
42+
}
43+
44+
QString copyright()
45+
{
46+
return "Copyright (c) 2018-2024 Jussi Lind";
47+
}
48+
49+
QString fileExtension()
50+
{
51+
return ".alz";
52+
}
53+
54+
QString qsettingsCompanyName()
55+
{
56+
return "Heimer";
57+
}
58+
59+
QString webSiteUrl()
60+
{
61+
return "http://juzzlin.github.io/Heimer";
62+
}
63+
64+
QString qsettingsSoftwareName()
65+
{
66+
return applicationName();
67+
}
68+
69+
QString releasesUrl()
70+
{
71+
return "https://github.com/juzzlin/Heimer/releases";
72+
}
73+
74+
QString supportSiteUrl()
75+
{
76+
return "https://paypal.me/juzzlin";
77+
}
78+
79+
QString translationsResourceBase()
80+
{
81+
return ":/translations/heimer_";
82+
}
83+
84+
} // namespace Constants::Application

src/common/constants.hpp

+13-16
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
#define CONSTANTS_HPP
1818

1919
#include <QColor>
20+
#include <QString>
2021
#include <QVector>
2122

2223
#include "../infra/io/alz_file_io_version.hpp"
@@ -25,33 +26,29 @@ namespace Constants {
2526

2627
namespace Application {
2728

28-
static constexpr auto APPLICATION_NAME = "Heimer";
29+
IO::AlzFormatVersion alzFormatVersion();
2930

30-
#ifndef PACKAGE_TYPE
31-
static constexpr auto APPLICATION_PACKAGE_TYPE = "N/A";
32-
#else
33-
static constexpr auto APPLICATION_PACKAGE_TYPE = PACKAGE_TYPE;
34-
#endif
31+
QString applicationName();
3532

36-
static constexpr auto APPLICATION_VERSION = VERSION;
33+
QString applicationPackageType();
3734

38-
static constexpr auto ALZ_FORMAT_VERSION = IO::AlzFormatVersion::V2;
35+
QString applicationVersion();
3936

40-
static constexpr auto COPYRIGHT = "Copyright (c) 2018-2024 Jussi Lind";
37+
QString copyright();
4138

42-
static constexpr auto FILE_EXTENSION = ".alz";
39+
QString fileExtension();
4340

44-
static constexpr auto QSETTINGS_COMPANY_NAME = "Heimer";
41+
QString qsettingsCompanyName();
4542

46-
static constexpr auto WEB_SITE_URL = "http://juzzlin.github.io/Heimer";
43+
QString qsettingsSoftwareName();
4744

48-
static constexpr auto QSETTINGS_SOFTWARE_NAME = APPLICATION_NAME;
45+
QString releasesUrl();
4946

50-
static constexpr auto RELEASES_URL = "https://github.com/juzzlin/Heimer/releases";
47+
QString supportSiteUrl();
5148

52-
static constexpr auto SUPPORT_SITE_URL = "https://paypal.me/juzzlin";
49+
QString translationsResourceBase();
5350

54-
static constexpr auto TRANSLATIONS_RESOURCE_BASE = ":/translations/heimer_";
51+
QString webSiteUrl();
5552

5653
} // namespace Application
5754

src/common/utils.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ QFont::Weight Utils::intToFontWeight(int value)
8080
QString Utils::exportFileName(QString mindMapFileName, QString exportExtension)
8181
{
8282
const auto formattedDateTime = QDateTime::currentDateTime().toString("_yyyy-MM-dd_hh-mm-ss");
83-
return mindMapFileName.replace(Constants::Application::FILE_EXTENSION, "") + formattedDateTime + exportExtension;
83+
return mindMapFileName.replace(Constants::Application::fileExtension(), "") + formattedDateTime + exportExtension;
8484
}
8585

8686
bool Utils::fileExists(QString filePath)

0 commit comments

Comments
 (0)