Skip to content

Commit 24a5738

Browse files
committed
V2025.9.1
1 parent 13ebffc commit 24a5738

6 files changed

Lines changed: 53 additions & 33 deletions

File tree

CHANGELOG.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,14 @@
11
# Changelog
22

3+
## 2025.9.1
4+
### Breaking Changes
5+
None
6+
### New APIs
7+
None
8+
### Fixes
9+
#### Helpers
10+
- Fixed an issue where `JsonFileBase::get()` did not work for `std::string`
11+
312
## 2025.9.0
413
### Breaking Changes
514
#### App

CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ endif()
2020
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake")
2121

2222
#libnick Definition
23-
project ("libnick" LANGUAGES C CXX VERSION 2025.9.0 DESCRIPTION "A cross-platform base for native Nickvision applications.")
23+
project ("libnick" LANGUAGES C CXX VERSION 2025.9.1 DESCRIPTION "A cross-platform base for native Nickvision applications.")
2424
include(CMakePackageConfigHelpers)
2525
include(GNUInstallDirs)
2626
include(CTest)

Doxyfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ PROJECT_NAME = "libnick"
4848
# could be handy for archiving the generated documentation or if some version
4949
# control system is used.
5050

51-
PROJECT_NUMBER = "2025.9.0"
51+
PROJECT_NUMBER = "2025.9.1"
5252

5353
# Using the PROJECT_BRIEF tag one can provide an optional one line description
5454
# for a project that appears at the top of each page and should give viewer a

include/helpers/jsonfilebase.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ namespace Nickvision::Helpers
123123
{
124124
return defaultValue;
125125
}
126-
return m_json[key].as_string();
126+
return std::string(m_json[key].as_string());
127127
}
128128
else if constexpr (std::is_same_v<T, boost::json::array>)
129129
{

manual/README.md

Lines changed: 5 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -6,39 +6,14 @@
66

77
libnick provides Nickvision apps with a common set of cross-platform APIs for managing system and desktop app functionality such as network management, taskbar icons, translations, app updates, and more.
88

9-
## 2025.9.0
9+
## 2025.9.1
1010
### Breaking Changes
11-
#### App
12-
- Removed `DataFileBase`
13-
- Removed `DataFileManager`
14-
- Moved `AppInfo::convertUrlMapToVector()` to `Helpers::CodeHelpers` namespace
15-
- Moved `App::CancellationToken` to `Helpers` namespace
16-
#### Database
17-
- Rewrote all classes with a more modern interface
18-
- Renamed all classes with `Sqlite` prefix
19-
#### Keyring
20-
- Rewrote `Keyring` class with a more modern interface
21-
- Moved `SystemCredentials` to `System::Credentials` namespace
22-
- Removed `CredentialCheckStatus` enum
23-
- Removed `PasswordStrength` module
24-
#### Network
25-
- Removed `DNS` module
26-
#### Taskbar
27-
- Removed module
11+
None
2812
### New APIs
29-
#### Helpers
30-
- Added `DEFINE_ENUM_FLAGS()` macro to `CodeHelpers` namespace
31-
- Added `IJsonSerializable` interface
32-
- Added `JsonFileBase` to replace `DataFileBase`
33-
- Added `quote()` function to `StringHelpers` namespace
34-
#### Keyring
35-
- Added `Space` value to `PasswordContent`
36-
#### System
37-
- Added `execAsync()` function to `Environment` namespace
13+
None
3814
### Fixes
39-
- Marked functions and methods with `noexcept` where applicable
40-
#### System
41-
- Fixed `Process`'s handling of quoted strings
15+
#### Helpers
16+
- Fixed an issue where `JsonFileBase::get()` did not work for `std::string`
4217

4318
## Dependencies
4419
The following are a list of dependencies used by libnick.

tests/jsonfiletests.cpp

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,16 @@ class AppConfig : public JsonFileBase
7070
{
7171
set("AutomaticallyCheckForUpdates", value);
7272
}
73+
74+
std::string getLanguage() const
75+
{
76+
return get<std::string>("Language", "en");
77+
}
78+
79+
void setLanguage(const std::string& language)
80+
{
81+
set("Language", language);
82+
}
7383
};
7484

7585
class JsonFileTest : public testing::Test
@@ -110,6 +120,7 @@ TEST_F(JsonFileTest, EnsureDefaultAppConfig)
110120
ASSERT_EQ(geometry.getHeight(), 600);
111121
ASSERT_EQ(geometry.isMaximized(), false);
112122
ASSERT_EQ(m_config->getAutomaticallyCheckForUpdates(), true);
123+
ASSERT_EQ(m_config->getLanguage(), "en");
113124
}
114125

115126
TEST_F(JsonFileTest, EnsureDefaultPortableAppConfig)
@@ -120,6 +131,7 @@ TEST_F(JsonFileTest, EnsureDefaultPortableAppConfig)
120131
ASSERT_EQ(geometry.getHeight(), 600);
121132
ASSERT_EQ(geometry.isMaximized(), false);
122133
ASSERT_EQ(m_portableConfig->getAutomaticallyCheckForUpdates(), true);
134+
ASSERT_EQ(m_portableConfig->getLanguage(), "en");
123135
}
124136

125137
TEST_F(JsonFileTest, ChangeAppConfig1)
@@ -176,6 +188,28 @@ TEST_F(JsonFileTest, EnsureChangeInPortableAppConfig2)
176188
ASSERT_EQ(m_portableConfig->getAutomaticallyCheckForUpdates(), false);
177189
}
178190

191+
TEST_F(JsonFileTest, ChangeAppConfig3)
192+
{
193+
ASSERT_NO_THROW(m_config->setLanguage("fr"));
194+
ASSERT_TRUE(m_config->save());
195+
}
196+
197+
TEST_F(JsonFileTest, ChangePortableAppConfig3)
198+
{
199+
ASSERT_NO_THROW(m_portableConfig->setLanguage("fr"));
200+
ASSERT_TRUE(m_portableConfig->save());
201+
}
202+
203+
TEST_F(JsonFileTest, EnsureChangeInAppConfig3)
204+
{
205+
ASSERT_EQ(m_config->getLanguage(), "fr");
206+
}
207+
208+
TEST_F(JsonFileTest, EnsureChangeInPortableAppConfig3)
209+
{
210+
ASSERT_EQ(m_portableConfig->getLanguage(), "fr");
211+
}
212+
179213
TEST_F(JsonFileTest, ReloadAndCheckConfig)
180214
{
181215
m_config.reset();
@@ -186,6 +220,7 @@ TEST_F(JsonFileTest, ReloadAndCheckConfig)
186220
ASSERT_EQ(geometry.getHeight(), 1080);
187221
ASSERT_EQ(geometry.isMaximized(), true);
188222
ASSERT_EQ(m_config->getAutomaticallyCheckForUpdates(), false);
223+
ASSERT_EQ(m_config->getLanguage(), "fr");
189224
}
190225

191226
TEST_F(JsonFileTest, ReloadAndCheckPortableConfig)
@@ -198,4 +233,5 @@ TEST_F(JsonFileTest, ReloadAndCheckPortableConfig)
198233
ASSERT_EQ(geometry.getHeight(), 1080);
199234
ASSERT_EQ(geometry.isMaximized(), true);
200235
ASSERT_EQ(m_portableConfig->getAutomaticallyCheckForUpdates(), false);
236+
ASSERT_EQ(m_portableConfig->getLanguage(), "fr");
201237
}

0 commit comments

Comments
 (0)