None
None
- Better error handling
None
- Added
resetmethod toSqliteStatement
- Fixed an issue where the sqlite database crashed on Windows
- Fixed parsing of development versions
None
None
- Fixed an issue where the sqlite database did not encrypt and decrypt correctly
None
None
- Fixed a deadlock in
JsonFileBase
None
None
- Fixed an issue where
JsonFileBase::get()did not work forstd::string
- Removed
DataFileBase - Removed
DataFileManager - Moved
AppInfo::convertUrlMapToVector()toHelpers::CodeHelpersnamespace - Moved
App::CancellationTokentoHelpersnamespace
- Rewrote all classes with a more modern interface
- Renamed all classes with
Sqliteprefix
- Rewrote
Keyringclass with a more modern interface - Moved
SystemCredentialstoSystem::Credentialsnamespace - Removed
CredentialCheckStatusenum - Removed
PasswordStrengthmodule
- Removed
DNSmodule - Removed
Socketand related classes
- Removed module
- Added
DEFINE_ENUM_FLAGS()macro toCodeHelpersnamespace - Added
IJsonSerializableinterface - Added
JsonFileBaseto replaceDataFileBase - Added
quote()function toStringHelpersnamespace
- Added
Spacevalue toPasswordContent
- Added
execAsync()function toEnvironmentnamespace
- Marked functions and methods with
noexceptwhere applicable
- Fixed
Process's handling of quoted strings
None
- Added
reset()method toCancellationToken
- Fixed the
operator->()method forParamEventArgs
None
None
- Exceptions thrown
None
- Added
Updater::downloadUpdate()method for all platforms
None
maddydependency requires >= 1.6.0
- Added
CancellationTokenclass
- Fixed included headers
- Fixed Gettext::changeLanguage("C") not turning off translations
None
- You can now specify "C" in the
Gettext::changeLanguage()function to turn off translations.
- Improved
Gettext::getAvailableLanguages()'s search for languages
None
- Added
Gettext::changeLanguage()function
None
None
None
- Fixed an issue where
StringHelpers::isValidUrl()did not work correctly
- Removed
App:InterProcessCommunicator(can be easily recreated using theNetwork::Socketclass)
- Removed module
- Replaced dependency of
libcurlwithcpr - Renamed
Web::fetchJson()toWeb::getJson() - Removed
CurlEasyclass
- Added
isPortableparameter toDataFileManagerto store config files in the executable directory instead
- Added
PairHashclass - Added
CodeHelpers::combineHash()function
- Added
DependencySearchOptionenum - Added
searchparameter toEnvironment::findDependency()to specify aDependencySearchOption
- Fixed
Process::pause()andProcess::resume()not working
None
None
- Fixed an issue where the build failed on Unix systems
None
None
- Fixed an issue where
Process::pause()andProcess::resume()did not work correctly on Windows
None
None
- Fixed an issue with the cmake configuration file
- sqlcipher is no longer provided for Linux and macOS builds. The system must provide it via it's package manager as it is not available via vcpkg
- Added a
CurlFunctionParameterparameter toUpdater::windowsUpdate
None
None
- Expanded
XandYproperties ofWindowGeometryto all platforms
None
None
- Added the ability for
WindowGeometryto remember window position on Windows
None
_f()and_fn()macros now returnstd::stringinstead ofconst char*
None
- Fixed
Process::pause()andProcess::resume()not working on Windows
None
- Added
_fn()macro for creating strings with translated plural format strings
- Fixed compilation on x86 Windows
- A Process' status can now be queued with
Process::getState()which returns aProcessStatevalue
- Added
_f()macro for creating strings with translated format strings - Added
Gettext::getAvailableLanguages()function
- Added
ProcessStateenum - Added
Process::pause()method - Added
Process::resume()method
None
- Removed dependency of
wintoaston Windows
- Added
Environment::getExecutablePath()function
- Fixed an issue where
ShellNotifications::send()did not work on Windows
None
None
- Library linking on Windows
- Standardized
ShellNotifications::send()to take the same parameters across platforms - Removed
NotifyIconas UI platform should be used instead
- Added
AppNotificationnamespace to allow applications to send app notifications anywhere
None
None
- Added
*and->operator support toParamEventArgs
- Fixed an issue where could not compiler on older macOS systems
- Fixed an issue where
Process::getRAMUsage()did not account for child processes on Windows - Improved the implementation of
Process::getCPUUsage()on Windows
None
- Added
includeEmptyparameter toStringHelpers::split()function
- Added
Process::getRAMUsage()function - Added
Process::getCPUUsage()function
- Improved
StringHelpers::split()implementation
None
- Added
Process::send()function - Added
Process::sendCommand()function
None
None
None
- Fixed overflow in
HardwareInfofunctions
None
- Modified
Nickvision::System::Process's constructor to now take an optional working directory parameter
- Implemented non-deprecated algorithms for
StringHelpers::str()andStringHelpers::wstr()
- Improved user agent string used by
Nickvision::Web::fetchJsonString()
None
- Added
Nickvision::Helpers::SizeHelpersnamespace
- Added
Nickvision::System::HardwareInfonamespace
None
None
None
- Fixed an issue where
Process::kill()did not work on Windows
None
- Added
Nickvision::Network::Socketclass
None
None
None
- Fixed an issue where
ShellNotification::send()did not work on non-GTK linux applications
- Fixed an issue where
Environment::getExecutableDirectory()did not return the correct path on macOS
None
None
- Fixed compilation issues for older macOS systems
- Added the
USE_LIBSECRETcmake option that can be specified on macOS systems to uselibsecretfor credential management instead of macOS Keychain APIs
None
- Fixed compilation issues for older macOS systems
None
None
- Fixed an issue where translated strings did not show UTF-8 characters correctly on Windows
None
- Added
Nickvision::System::Environment::hasVariable()
- Fixed an issue where Flatpak deployment mode was not correctly detected
None
None
- Fixed an issue where
DataFileBasewas incorrectly parsing JSON files
- Replaced
jsoncpplibrary withboost-json
Nickvision::App::DataFileBase'sm_jsonobject is now of typeboost::json::object
None
None
- The
Nickvision::Keyring::Keyringclass has been rewritten for better performance and a cleaner API. Keyrings created with previous versions of libnick are no longer compatible. - Removed
Nickvision::Keyring::KeyringDialogController - Removed
Nickvision::Keyring::Store
None
None
None
None
- Improved
Nickvision::System::Processimplementation on UNIX systems
None
None
- Improved
Nickvision::System::Process's handling of arguments
Nickvision::System::Process::kill()will now kill child processes spawned by the respective process
None
- Cleaned up the message logged by
Nickvision::Logging::Logger:log()
- Improved
Nickvision::System::Process's handling of arguments
- Removed the dependency on
libuuid
- Non-constructor methods will no longer throw exceptions but return true or false upon success.
- Non-constructor methods will no longer throw exceptions but return true or false upon success.
- Removed
Nickvision::Network::WebClientclass
- Added
Nickvision::Events::Event::count()method - Added
Nickvision::Events::Event::operator bool()method
- Added
Nickvision::Helpers::StringHelpers::newUuid()method
- Added
Nickvision::Network::DNSnamespace - Added
Nickvision::Network::IPv4Addressclass - Added
Nickvision::Network::MacAddressclass - Added
Nickvision::Network::Webclass
- Improved GUID/UUID generation in
Nickvision::Helpers::StringHelpers
None
- Added
Nickvision::System::Environment::testVariable()
- Fixed a deadlock that can occur when reading
Nickvision::Network::NetworkMonitor's connectionState
- The default value of
Nickvision::Helpers::StringHelpers::join'sseparateLastparameter is nowfalse
None
- Fixed an issue where
Nickvision::System::SuspendInhibitordid not work correctly on Linux systems
- Removed application directories from
Nickvision::Filesystem::UserDirectoryenum
- Added
Nickvision::Filesystem::ApplicationUserDirectoryenum - Added
Nickvision::Filesystem::UserDirectories::get()function overload forNickvision::Filesystem::ApplicationUserDirectorysupport
- Added
Nickvision::Helpers::StringHelpers::normalizeForFilename() - Added
Nickvision::Helpers::StringHelpers::replace()character overload
- Fixed an issue where
Nickvision::Update::Updater::windowsUpdate()did not work correctly
- Removed
Nickvision::App::Aura - Renamed
Nickvision::App::ConfigurationBasetoNickvision::App::DataFileBase
- Removed
Nickvision::Filesystem::SystemDirectoriesnamespace - Removed
Nickvision::Filesystem::UserDirectories::get*methods
- Added
Nickvision::App::DataFileManagerclass
- Added
Nickvision::Filesystem::UserDirectoryenum - Added
Nickvision::Filesystem::UserDirectories::get()
- Added
Nickvision::Notifications::NotifyIcon::getForHWND()
- Added
Nickvision::Localization::Documentation::getHelpUrl()
- Added
Nickvision::System::DeploymentModeenum - Added
Nickvision::System::OperatingSystemenum - Added
Nickvision::System::Environment::getOperatingSystem() - Added
Nickvision::System::Environment::getDeploymentMode() - Added
Nickvision::System::Environment::getExecutableDirectory() - Added
Nickvision::System::Environment::getLocaleName() - Added
Nickvision::System::Environment::getPath() - Added
Nickvision::System::Environment::findDependency()
Nickvision::Filesystem::UserDirectorieswill now fetch propermacOSdirectories
Nickvision::Localization::Gettext::init()will ensure the domainName is lowercase and contains no spaces
- Fixed an issue where Updater would crash if failed to fetch json
None
None
- Fixed x86 Windows builds
None
- Added support for
macOSacross the library
Nickvision::Helpers::StringHelpers::splitArgs()
Nickvision::System::SuspendInhibitorclass
Nickvision::System::Environment::exec()now correctly handles quotes args
Nickvision::App::Auranow disables move operations, as well as previously disabled copy operations
Nickvision::Events::HandlerIdis now defined asenum class HandlerId : size_tinstead ofusing HandlerId = size_t
Nickvision::Helpers::StringHelpers::encodenow acceptsstd::vector<std::byte>instead ofstd::vector<std::uint_8>Nickvision::Helpers::StringHelpers::decodenow returnsstd::vector<std::byte>instead ofstd::vector<std::uint_8>
Nickvision::Notifications::NotifyIconconstructor now requires specification of the tooltip string
Nickvision::App::Aura::getNotifyIcon()
Nickvision::Helpers::CodeHelpers::readFileBytes()Nickvision::Helpers::CodeHelpers::writeFileBytes()
Nickvision::Notifications::NotifyIcon::getContextMenu()Nickvision::Notifications::NotifyIcon::setContextMenu()
- Enum flag operators are now
constexprwhere applicable
None
None
- Fixed cmake config file
Nickvision::App::Aura::init()will no longer initializelibcurl
- Renamed
Nickvision::CodeHelpersnamespace toNickvision::Helpers::CodeHelpers - Renamed
Nickvision::StringHelpersnamespace toNickvision::Helpers::StringHelpers - Removed
Nickvision::WebHelpersnamespace
Nickvision::Helpers::CodeHelpers::getLastSystemError()
Nickvision::Network::CurlEasyclassNickvision::Network::WebClientclass
None
- Removed
enumflags.h - Added
sqlcipheras a dependency for Windows buildsqlcipherwill continue to be built manually by libnick on Linux until thevcpkgport is fixed for Linux
- Removed
Nickvision::App::Aura::getEnvVar() - Removed
Nickvision::App::Aura::setEnvVar() - Removed
Nickvision::App::Aura::sysExec()
Nickvision::Events::Event::subscribe()andNickvision::Events::Event::operator+=()will now return aNickvision::Events::HandlerIdthat must be passed toNickvision::Events::Event::unsubscribe()andNickvision::Events::Event::operator-=()to remove a handler.
- Removed
Nickvision::Localization::Documentationnamespace
Nickvision::StringHelpers::split()will return a list with an empty string when the string to split is empty, instead of an empty list- Renamed
Nickvision::StringHelpers::toBase64()toNickvision::StringHelpers::encode() - Renamed
Nickvision::StringHelpers::toByteList()toNickvision::StringHelpers::decode() - Renamed
Nickvision::StringHelpers::toLower()toNickvision::StringHelpers::lower() - Renamed
Nickvision::StringHelpers::toString()toNickvision::StringHelpers::str() - Renamed
Nickvision::StringHelpers::toUpper()toNickvision::StringHelpers::upper() - Renamed
Nickvision::StringHelpers::toWstring()toNickvision::StringHelpers::wstr()
- Renamed
Nickvision::Update::Version::toString()toNickvision::Update::Version::str()
Nickvision::App::Aura::isValid()Nickvision::App::Aura::getHelpUrl()Nickvision::App::Aura::operator bool()
Nickvision::System::Environmentnamespace- Provides
getVariable() - Provides
setVariable() - Provides
clearVariable() - Provides
sysExec()
- Provides
Nickvision::System::ProcessclassNickvision::System::ProcessExitedEventArgsclass
- Fixed an issue where
Nickvision::Keyring::SystemCredentials::addCredentialfreed memory incorrectly on Windows - Improved the memory usage of
Nickvision::Network::NetworkMonitoron Windows
- Improved test code
None
None
- Improved
Nickvision::Update::UpdaterAPI