Releases: tseli0s/nvdialog
v0.10.2
v0.10.2
Patch release with minor bug fixes and, most importantly, official FreeBSD support for nvdialog.
Changelog -- 0.10.2
- Improved GitHub workflows for more extensive testing
- Fixed a compiler warning in
nvd_image_to_bytes - Numerous minor code cleanups and compiler warning fixes
- Fix incorrect return values if a file(name) was not chosen when using
NvdFileDialogon Windows (See #54) - nvdialog can now be built as a CMake submodule (See #68)
- Fixed missing header when installing using the Makefile (See #66)
- Warn if the target cannot be recognized when initializing backends during
nvd_init(). - FreeBSD is now officially a supported platform of nvdialog.
New Contributors
- @SniverDaBest made their first contribution in #66
- @lapinozz made their first contribution in #68
Full Changelog: v0.10.1...v0.10.2
v0.10.1
v0.10.1
A small patch release with bug fixes that weren't present in the original v0.10.0 release.
Changelog
- Fixed memory leak when freeing a notification in the
gtkbackend - Removed checking for
libnotifyat runtime when on GNU/Linux - Removed an unused internal function
- Changed assertion macro for stb_image.h to use the NvDialog implementation instead
- Disabled some redundant warnings when building with the Makefile
- Fixed a bug where nvd_get_capabilities() returned incorrect values for NVD_STATIC_LINKAGE argument
- Added two new internal functions:
nvd_mallocandnvd_calloc. These wrap around libc's implementation ofmalloc/callocwith some extra error handling that was necessary. The entire tree has been updated. - Minimum required CMake version is 3.19 from this release forward (See bbed24e).
- Minor changes to make nvdialog work with more limited and rare compilers
- [internal] nvd_set/get_error is no longer force-inlined, fixing some linking errors on FreeBSD+clang
- Codebase cleanup from legacy functions and variables
- Fixed FileDialog not using file filters and default filename parameters on the gtk backend.
- New function:
nvd_image_to_bytes(). This function returns the raw bytes that represent an image insideNvdImageand can be reused for other purposes. - Fixed missing definition of nvd_open_file_dialog_get_raw
- New
NvdErrormember:NVD_UNSUPPORTED_ACTION, when the API is disabled for a build of nvdialog. - Make image functionality optional (enabled by default) so that users that don't need image support can easily get rid of it.
Full Changelog: v0.10.0...v0.10.1
v0.10.0
Release v0.10.0
Possibly the largest release of this library so far. It came shorter than expected and introduces countless fixes and improvements. There was also significant work towards supporting NvDialog on other platforms (BSDs and ReactOS specifically, with Haiku also having an experimental port as a pull request)
Changelog
- (BREAKING) Added new
NvdDynamicStringtype and integrated it into various library APIs. This will break the FileDialog and Error groups in preexisting code. - Added new
NvdInputBoxAPI - An input box can be used to retrieve simple text input from the user. - Increased shared file version to 3 (Output files may contain libnvdialog.so.3 now).
- Improved
NvdDialogBoxon Gtk backends by switching to the nativeGtkMessageDialog. - Improved
NvdQuestionBoxon Gtk backends by switching to the nativeGtkMessageDialog. - Fixed Windows and macOS backends returning stack pointers from functions (See #53, #56, #58).
- Deprecate libadwaita (Read MR #59 for details and documentation for moving forward)
- Added missing
nvd_dialog_box_set_accept_textfunction. - Fixed
NVD_ASSERT_FATALmacro failing regardless of condition. - Added NvdInputBox on
nvd-demo. - Fixed tests not working on Windows.
- Fixed some compiler warnings when cross-compiling.
- Merged the
sandboxwith thegtkbackend. This will not change any functionality for any applications. - NvDialog will not set the error codes in case something went wrong more often.
- Improved assertion macro.
- Added support for GNUstep.
- The
adwbackend's functions will now simply call directly on thegtkimplementations. - Added some notes for other (non-GNU/Linux) operating systems and patched the build system to work with them.
- CMake will no longer be configured to use
/usras the install prefix on Unix-like systems.ld.so.confmay need to be modified on some GNU/Linux distros. - Removed
PKGBUILDfile from the tree (Arch Linux users will soon be able to get nvdialog as a package from the AUR instead) - Small codebase cleanup for easier maintenance (Mostly removing unnecessary assertions, functions and so on)
- Fixed a bug where the
win32backend ignored filters on file dialogs. - Fixed
NvdFileDialoghaving inaccurate button labels with thegtkbackend. - Fixed a double free bug in the
gtkimplementation ofNvdFileDialog. - Removed dependency on
libnotifyfor notifications. Now nvdialog will use DBus directly instead. - Deprecated
nvd_add_notification_action(Now it's a no-op on all backends)
Full Changelog: v0.9.0...v0.10.0
v0.9.0
v0.9.0
A release that took a bit too long, for personal reasons. It does bring multiple improvements however.
Changelog
- CMake will now only set
CMAKE_INSTALL_PREFIXto/usrif the host is not Windows or macOS. This may fix some installation problems you might have had when previously installing the library. - Disabled ARC on the
macosbackend (ie. Fixes #55) - The library will no longer set the compiler flags manually, instead relying on CMake's default choices. Only exception is when cross-compiling from GNU/Linux to Windows.
- Made the CMakeLists.txt options more user-friendly.
- Added support for custom images (See
NvdImage) - Fixed a bug where a
charwas accidentally treated as a string (See #56) - Fixed a bug where the requested title wasn't applied to Windows dialogs
- Fixed a bug where an uninitialized variable was used in the Windows dialog box backend.
- Removed certain backend-specific warnings for the Windows backend
- Added
nvd_open_folder_dialog_newfunction: Now you can request to open directories instead of files using anNvdFileDialog - Switch the default backend on Arch Linux from libadwaita to gtk
- Cleaned up and restructured
CMakeLists.txt(This should not break anything, functionality remains the exact same) - Provide an option in
CMakeLists.txtto build the documentation along with the library (Requiresdoxygen) - Fixed a problem where types/objects were partially initialized leading to memory issues.
Full Changelog: v0.8.1...v0.9.0
v0.8.1
v0.8.1
This is a patch release that fixes some bugs from the v0.8.0 release. Read the changelog below for further details. If you intend to run your application on Apple-based systems, then an upgrade may be necessary.
Changelog
- MacOS about dialog support returned (#50)
- (BREAKING) Removed first parameter on
nvd_init, which was already unused since v0.7 (Previously compiled executables may not work) - Fixed some compiler warnings on Windows.
- Add icon support for
NvdAboutDialogon Windows. (This may not work as expected yet, the next release will fix any bugs, especially with Wine) - Many improvements in
NvdAboutDialogon Gtk3. - Documentation improvements
- Fix
NvdAboutDialogon Linux not having an icon. NvdDialogBoxwill no longer be marked as a popup on Linux/Gtk3. This will fix incorrect positioning on Wayland/GNOME.
Full Changelog: v0.8.0...v0.8.1
v0.8.0
v0.8.0
Apologies for the delay on this release. Although it did take some time due to me working on other projects simultaneously, it is a massive release with many bugs fixed and many improvements added. Make sure to read the changelog carefully; Some of these changes may break older binaries! (Though they shouldn't)
Changelog
- You can now set the dialog button text to a custom one.
- Dialogs in Gtk3 are now unresizable, due to artifacts formed on some systems
when resizing and worsened looks. - Dialogs are now marked as popup windows and not toplevel ones.
- On the Windows backend, NvDialog will now check if sending the notification to the user was successful.
- Added destructors on notification objects, to avoid memory leaks.
- Fixed some compiler warnings regarding
constassignments when compiling the library. - Fixed Cocoa backend using different implementations of (public) types due to unmaintained code.
nvd_get_capabilities()will now set an error code if the query is not supported (eg. Invalid enum).- Removed unused functions within the library.
- Fixed
nvd_dialog_box_set_accept_textcrashing on Linux. - Reduced memory usage by the library (See 3d967e7)
- Fixed missing declaration warning on the Gtk backend.
- Completely removed styling functions (Already deprecated since v0.7.0)
- Increased shared file version to 2 (Output files may contain libnvdialog.so.2 now)
- Fixed libnotify not loading on Linux (See #44 for details)
- Fixed a bug where NvDialog would abort the entire process despite no failure happening.
- Fixed dialog not disappearing after pressing the accept button (See #42)
Full Changelog: v0.7.0...v0.8.0
v0.7.0
Not a spectacular release, but surely better than nothing. This was planned for May 1st but I decided to leave it for the weekend. Enjoy :)
Changelog
- Gtk dialogs will now be guaranteed to have their title set.
- Gtk dialogs are now modal, meaning the user can't skip over them without
responding to them. - NvDialog will check if it has been initialized before any API call.
- Added extra null pointer / invalid parameter checking.
nvd_init: The parameter 'program' of the function is now deprecated.- Initial work towards sandbox support (See #36), based off the Gtk3 backend.
- File dialogs now support extension filters. See documentation.
- Fixed notifications on Linux failing, NvDialog will now handle
dlopen()errors. - All global static variables now are thread local, to improve safety on some platforms.
- GitHub workflows now use a target triple naming (arch-device-os-toolchain, eg.
x86_64-pc-windows-msvc) - C standard is now required to be at least 2011 or newer (See c7e68a0).
- Deprecated styling support (Now all backends will just return a "fail value" like a
NULLpointer or a negative integer).
Full Changelog: v0.6.1...v0.7.0
v0.6.1 (Patch)
Release v0.6.1
Mainly fixes some bugs on a few newer distros. Recommended to upgrade if you notice issues with your application.
For extensive commit message click here: v0.6.0...v0.6.1
Changelog
- Fixed initialization call failing on Gtk3.
- New
NvdErrormember:NVD_BACKEND_FAILURE. - Fixed some build warnings.
v0.6.0
v0.6.0
This release includes a series of bug fixes and additions. It's a release that took time as there was a lot of work on all backends.
For a full changelog, see here: v0.5.0...v0.6.0
Changelog
- Removed domain name support in favor of plain application names.
- Added application name support.
- Added macOS support (Thanks to: @Frityet)
- Fix
nvd_get_errorreturn type. - Dialogs will now be destroyed immediately after closing them.
- Added
NVD_APImacro to export functions to Windows (or import them). This will only be used internally for better optimization. - Fixed
nvd_about_dialog_gtknot working properly under the Gtk3 backend when custom icons were used instead of the default ones. - New function:
nvd_add_notification_action. The description of this function is rather long,
seeinclude/nvdialog_notification.hfor the declaration and its documentation. nvd_initwill check if the library has been initialized already and return if so.- Fixed some build errors on newer distributions (Especially on the Adwaita backend).
- Improved the documentation largely. Now
doxygenwill be used to generate documentation. - Setting the environment variable
NVD_NO_NOTIFSto1will disable thelibnotifydependency
on Unix systems. - New website for the library, created entirely with Doxygen: https://androgr.github.io/nv.dialog/ .
From now on, the website will also be constantly updated with new documentation. - Added notification support for Windows (Vista and above will work only).
- Fixed the Gtk4 file dialog not working.
New Contributors
v0.5.0
Release
This release is the first fully-complete release of NvDialog, focusing largely on stability. From now on, new features will only be added if all backends support them. There was an exception for the styling API (See the changelog below) as it could only be implemented for Gtk3.
Changelog
- Added custom CSS stylesheet support (
NvdCSSManager). - Added notification support (
NvdNotification). - Added testing units in CI.
- Fix
nvd_stringify_errorreturning invalid pointer, causing undefined behavior. - Added two new library errors:
-NVD_FILE_INACCESSIBLE(A file NvDialog tried to access is not accessible),
-NVD_BACKEND_INVALID(A backend is invalid, eg. A symbol can't be accessed) - Added
NVD_VERSIONmacro -- Stores the compile time version of NvDialog to theNvdVersionvariable passed. - Added
nvd_*_get_raw()functions -- Allows to get the window implementation behind the dialog to use for the styling API. - Added
pkg-configscript to make NvDialog compatible with other build systems. - Removed previously deprecated functions.
- NvDialog can now build with other compilers than GCC and CLang.
- On
Adwaitabackend, theNvdAboutDialogwill now useAdwAboutWindowinstead, to make development easier. - Added
NvdFileDialogsupport for save file dialog, mostly working.
Full Changelog: v0.3.0...v0.5.0