2022-04-06 05:04:31 +08:00
|
|
|
# Changelog
|
2016-07-05 06:17:23 +08:00
|
|
|
|
2023-10-13 05:57:59 +08:00
|
|
|
## 3.5.1
|
|
|
|
|
|
|
|
* Bug Fix: Maximum QNativeIpcKey key size on macOS. - _Jonas Kvinge_
|
|
|
|
|
2023-09-29 01:21:47 +08:00
|
|
|
## 3.5.0
|
|
|
|
|
|
|
|
* Switch to the new QNativeIpcKey based QSharedMemory constructor with Qt 6.6 and higher. - _Jonas Kvinge_
|
|
|
|
|
2023-09-11 22:58:53 +08:00
|
|
|
## 3.4.1
|
|
|
|
|
2023-09-11 23:00:49 +08:00
|
|
|
* Improved Windows advapi32 link library dependency. - _Frederik Seiffert_
|
2023-09-11 22:58:53 +08:00
|
|
|
|
2022-04-06 18:28:38 +08:00
|
|
|
## 3.4.0
|
|
|
|
|
|
|
|
* Provide API for blocking sendMessage. - _Christoph Cullmann_
|
2023-06-12 16:48:00 +08:00
|
|
|
* New documentation generation using Doxygen
|
2023-06-13 06:29:27 +08:00
|
|
|
* Improved Windows basic widget example
|
2023-06-12 16:48:00 +08:00
|
|
|
* Updated Project License
|
2020-04-22 08:01:11 +08:00
|
|
|
|
2022-04-06 05:04:31 +08:00
|
|
|
## 3.3.4
|
2022-04-04 03:24:04 +08:00
|
|
|
|
2022-04-04 06:19:56 +08:00
|
|
|
* Fix compilation under Qt 6.2+ and stricter Qt compile settings. - _Christoph Cullmann_
|
2022-04-04 03:24:04 +08:00
|
|
|
|
2022-04-06 05:04:31 +08:00
|
|
|
## 3.3.3
|
2022-02-14 08:35:40 +08:00
|
|
|
|
|
|
|
* Support for Qt 6.3+ - Fixed deprecated `QCryptographicHash::addData()` that will only support `QByteArrayView` going further. - _Moody Liu_
|
|
|
|
|
2022-04-06 05:04:31 +08:00
|
|
|
## 3.3.2
|
2021-11-24 17:24:29 +08:00
|
|
|
|
|
|
|
* Fixed crash caused by sending a `writeAck` on a removed connection. - _Nicolas Werner_
|
2021-06-02 15:57:30 +08:00
|
|
|
|
2022-04-06 05:04:31 +08:00
|
|
|
## 3.3.1
|
2021-09-20 21:25:15 +08:00
|
|
|
|
|
|
|
* Added support for _AppImage_ dynamic executable paths. - _Michael Klein_
|
|
|
|
|
2022-04-06 05:04:31 +08:00
|
|
|
## 3.3.0
|
2021-06-02 15:57:30 +08:00
|
|
|
|
2021-06-03 01:27:50 +08:00
|
|
|
* Fixed message fragmentation issue causing crashes and incorrectly / inconsistently received messages. - _Nils Jeisecke_
|
2021-06-02 15:57:30 +08:00
|
|
|
|
2022-04-06 05:04:31 +08:00
|
|
|
## 3.2.0
|
2020-10-18 17:42:09 +08:00
|
|
|
|
|
|
|
* Added support for Qt 6 - _Jonas Kvinge_
|
|
|
|
* Fixed warning in `Qt 5.9` with `min`/`max` functions on Windows - _Nick Korotysh_
|
|
|
|
* Fix return value of connectToPrimary() when connect is successful - _Jonas Kvinge_
|
|
|
|
* Fix build issue with MinGW GCC pedantic mode - _Iakov Kirilenko_
|
|
|
|
* Fixed conversion from `int` to `quint32` and Clang Tidy warnings - _Hennadii Chernyshchyk_
|
|
|
|
|
2022-04-06 05:04:31 +08:00
|
|
|
## 3.1.5
|
2020-09-09 09:34:16 +08:00
|
|
|
|
|
|
|
* Improved library stability in edge cases and very rapid process initialisation
|
|
|
|
* Fixed Bug where the shared memory block may have been modified without a lock
|
2020-09-09 09:50:55 +08:00
|
|
|
* Fixed Bug causing `instanceStarted()` to not get emitted when a second instance
|
|
|
|
has been started before the primary has initiated it's `QLocalServer`.
|
2020-07-02 10:24:59 +08:00
|
|
|
|
2022-04-06 05:04:31 +08:00
|
|
|
## 3.1.4
|
2020-07-02 10:24:59 +08:00
|
|
|
* Officially supporting and build-testing against Qt 5.15
|
|
|
|
* Fixed an MSVC C4996 warning that suggests using `strncpy_s`.
|
|
|
|
|
|
|
|
_Hennadii Chernyshchyk_
|
|
|
|
|
2022-04-06 05:04:31 +08:00
|
|
|
## 3.1.3.1
|
2020-05-25 14:10:19 +08:00
|
|
|
* CMake build system improvements
|
|
|
|
* Fixed Clang Tidy warnings
|
|
|
|
|
|
|
|
_Hennadii Chernyshchyk_
|
|
|
|
|
2022-04-06 05:04:31 +08:00
|
|
|
## 3.1.3
|
2020-05-12 08:56:59 +08:00
|
|
|
* Improved `CMakeLists.txt`
|
|
|
|
|
|
|
|
_Hennadii Chernyshchyk_
|
|
|
|
|
2022-04-06 05:04:31 +08:00
|
|
|
## 3.1.2
|
2020-04-21 18:47:33 +08:00
|
|
|
|
|
|
|
* Fix a crash when exiting an application on Android and iOS
|
|
|
|
|
|
|
|
_Emeric Grange_
|
|
|
|
|
2022-04-06 05:04:31 +08:00
|
|
|
## 3.1.1a
|
2020-03-27 15:00:14 +08:00
|
|
|
|
|
|
|
* Added currentUser() method that returns the user the current instance is running as.
|
2020-04-22 17:23:45 +08:00
|
|
|
|
2020-04-22 17:23:58 +08:00
|
|
|
_Leander Schulten_
|
2020-03-27 15:00:14 +08:00
|
|
|
|
2022-04-06 05:04:31 +08:00
|
|
|
## 3.1.0a
|
2020-03-03 09:22:54 +08:00
|
|
|
|
|
|
|
* Added primaryUser() method that returns the user the primary instance is running as.
|
|
|
|
|
2022-04-06 05:04:31 +08:00
|
|
|
## 3.0.19
|
2020-01-24 09:05:21 +08:00
|
|
|
|
2020-09-09 09:34:16 +08:00
|
|
|
* Fixed code warning for depricated functions in Qt 5.10 related to `QTime` and `qrand()`.
|
2020-01-24 09:05:21 +08:00
|
|
|
|
|
|
|
_Hennadii Chernyshchyk_
|
|
|
|
_Anton Filimonov_
|
|
|
|
_Jonas Kvinge_
|
2020-09-09 09:34:16 +08:00
|
|
|
|
2022-04-06 05:04:31 +08:00
|
|
|
## 3.0.18
|
2019-10-13 15:35:50 +08:00
|
|
|
|
|
|
|
* Fallback to standard QApplication class on iOS and Android systems where
|
|
|
|
the library is not supported.
|
2020-09-09 09:34:16 +08:00
|
|
|
|
2020-01-04 01:49:52 +08:00
|
|
|
* Added Build CI tests to verify the library builds successfully on Linux, Windows and MacOS across multiple Qt versions.
|
|
|
|
|
|
|
|
_Anton Filimonov_
|
2019-10-13 15:35:50 +08:00
|
|
|
|
2022-04-06 05:04:31 +08:00
|
|
|
## 3.0.17
|
2019-10-11 21:35:03 +08:00
|
|
|
|
|
|
|
* Fixed compilation warning/error caused by `geteuid()` on unix based systems.
|
|
|
|
|
|
|
|
_Iakov Kirilenko_
|
|
|
|
|
|
|
|
* Added CMake support
|
|
|
|
|
|
|
|
_Hennadii Chernyshchyk_
|
|
|
|
|
2022-04-06 05:04:31 +08:00
|
|
|
## 3.0.16
|
2019-09-23 01:41:33 +08:00
|
|
|
|
|
|
|
* Use geteuid and getpwuid to get username on Unix, fallback to environment variable.
|
|
|
|
|
|
|
|
_Jonas Kvinge_
|
|
|
|
|
2022-04-06 05:04:31 +08:00
|
|
|
## 3.0.15
|
2019-08-24 04:08:07 +08:00
|
|
|
|
2019-08-24 04:07:43 +08:00
|
|
|
* Bug Fix: sendMessage() might return false even though data was actually written.
|
2019-09-23 01:41:33 +08:00
|
|
|
|
2019-08-24 04:07:43 +08:00
|
|
|
_Jonas Kvinge_
|
|
|
|
|
2022-04-06 05:04:31 +08:00
|
|
|
## 3.0.14
|
2019-01-22 20:21:25 +08:00
|
|
|
|
|
|
|
* Fixed uninitialised variables in the `SingleApplicationPrivate` constructor.
|
|
|
|
|
2022-04-06 05:04:31 +08:00
|
|
|
## 3.0.13a
|
2018-10-04 22:29:21 +08:00
|
|
|
|
|
|
|
* Process socket events asynchronously
|
|
|
|
* Fix undefined variable error on Windows
|
|
|
|
|
|
|
|
_Francis Giraldeau_
|
|
|
|
|
2022-04-06 05:04:31 +08:00
|
|
|
## 3.0.12a
|
2018-07-27 17:59:31 +08:00
|
|
|
|
|
|
|
* Removed signal handling.
|
|
|
|
|
2022-04-06 05:04:31 +08:00
|
|
|
## 3.0.11a
|
2018-07-27 09:29:55 +08:00
|
|
|
|
|
|
|
* Fixed bug where the message sent by the second process was not received
|
|
|
|
correctly when the message is sent immediately following a connection.
|
|
|
|
|
|
|
|
_Francis Giraldeau_
|
|
|
|
|
|
|
|
* Refactored code and implemented shared memory block consistency checks
|
|
|
|
via `qChecksum()` (CRC-16).
|
|
|
|
* Explicit `qWarning` and `qCritical` when the library is unable to initialise
|
|
|
|
correctly.
|
|
|
|
|
2022-04-06 05:04:31 +08:00
|
|
|
## 3.0.10
|
2017-12-04 01:09:27 +08:00
|
|
|
|
|
|
|
* Removed C style casts and eliminated all clang warnings. Fixed `instanceId`
|
|
|
|
reading from only one byte in the message deserialization. Cleaned up
|
|
|
|
serialization code using `QDataStream`. Changed connection type to use
|
|
|
|
`quint8 enum` rather than `char`.
|
|
|
|
* Renamed `SingleAppConnectionType` to `ConnectionType`. Added initialization
|
|
|
|
values to all `ConnectionType` enum cases.
|
|
|
|
|
|
|
|
_Jedidiah Buck McCready_
|
|
|
|
|
2022-04-06 05:04:31 +08:00
|
|
|
## 3.0.9
|
2017-10-02 19:17:41 +08:00
|
|
|
|
|
|
|
* Added SingleApplicationPrivate::primaryPid() as a solution to allow
|
|
|
|
bringing the primary window of an application to the foreground on
|
|
|
|
Windows.
|
|
|
|
|
|
|
|
_Eelco van Dam from Peacs BV_
|
|
|
|
|
2022-04-06 05:04:31 +08:00
|
|
|
## 3.0.8
|
2017-08-21 01:36:51 +08:00
|
|
|
|
|
|
|
* Bug fix - changed QApplication::instance() to QCoreApplication::instance()
|
2017-08-21 01:39:11 +08:00
|
|
|
|
2017-08-21 01:36:51 +08:00
|
|
|
_Evgeniy Bazhenov_
|
|
|
|
|
2022-04-06 05:04:31 +08:00
|
|
|
## 3.0.7a
|
2017-04-23 19:31:52 +08:00
|
|
|
|
|
|
|
* Fixed compilation error with Mingw32 in MXE thanks to Vitaly Tonkacheyev.
|
|
|
|
* Removed QMutex used for thread safe behaviour. The implementation now uses
|
|
|
|
QCoreApplication::instance() to get an instance to SingleApplication for
|
|
|
|
memory deallocation.
|
|
|
|
|
2022-04-06 05:04:31 +08:00
|
|
|
## 3.0.6a
|
2017-02-02 12:35:46 +08:00
|
|
|
|
|
|
|
* Reverted GetUserName API usage on Windows. Fixed bug with missing library.
|
|
|
|
* Fixed bug in the Calculator example, preventing it's window to be raised
|
|
|
|
on Windows.
|
|
|
|
|
2017-04-23 19:31:52 +08:00
|
|
|
Special thanks to Charles Gunawan.
|
|
|
|
|
2022-04-06 05:04:31 +08:00
|
|
|
## 3.0.5a
|
2017-02-01 01:35:00 +08:00
|
|
|
|
|
|
|
* Fixed a memory leak in the SingleApplicationPrivate destructor.
|
|
|
|
|
|
|
|
_Sergei Moiseev_
|
|
|
|
|
2022-04-06 05:04:31 +08:00
|
|
|
## 3.0.4a
|
2017-01-25 22:55:30 +08:00
|
|
|
|
|
|
|
* Fixed shadow and uninitialised variable warnings.
|
|
|
|
|
|
|
|
_Paul Walmsley_
|
|
|
|
|
2022-04-06 05:04:31 +08:00
|
|
|
## 3.0.3a
|
2017-01-25 01:24:38 +08:00
|
|
|
|
|
|
|
* Removed Microsoft Windows specific code for getting username due to
|
|
|
|
multiple problems and compiler differences on Windows platforms. On
|
2017-01-25 01:28:14 +08:00
|
|
|
Windows the shared memory block in User mode now includes the user's
|
2017-01-25 01:24:38 +08:00
|
|
|
home path (which contains the user's username).
|
|
|
|
|
|
|
|
* Explicitly getting absolute path of the user's home directory as on Unix
|
|
|
|
a relative path (`~`) may be returned.
|
|
|
|
|
2022-04-06 05:04:31 +08:00
|
|
|
## 3.0.2a
|
2016-11-27 19:11:14 +08:00
|
|
|
|
2016-11-29 01:44:58 +08:00
|
|
|
* Fixed bug on Windows when username containing wide characters causes the
|
2016-11-27 19:11:14 +08:00
|
|
|
library to crash.
|
|
|
|
|
|
|
|
_Le Liu_
|
|
|
|
|
2022-04-06 05:04:31 +08:00
|
|
|
## 3.0.1a
|
2016-07-05 06:17:23 +08:00
|
|
|
|
2016-11-27 01:42:04 +08:00
|
|
|
* Allows the application path and version to be excluded from the server name
|
|
|
|
hash. The following flags were added for this purpose:
|
|
|
|
* `SingleApplication::Mode::ExcludeAppVersion`
|
|
|
|
* `SingleApplication::Mode::ExcludeAppPath`
|
|
|
|
* Allow a non elevated process to connect to a local server created by an
|
|
|
|
elevated process run by the same user on Windows
|
|
|
|
* Fixes a problem with upper case letters in paths on Windows
|
|
|
|
|
|
|
|
_Le Liu_
|
|
|
|
|
2022-04-06 05:04:31 +08:00
|
|
|
## v3.0a
|
2016-11-27 01:42:04 +08:00
|
|
|
|
2019-08-24 03:57:28 +08:00
|
|
|
* Deprecated secondary instances count.
|
2016-08-10 09:42:46 +08:00
|
|
|
* Added a sendMessage() method to send a message to the primary instance.
|
2016-11-27 01:42:04 +08:00
|
|
|
* Added a receivedMessage() signal, emitted when a message is received from a
|
2016-08-10 09:42:46 +08:00
|
|
|
secondary instance.
|
|
|
|
* The SingleApplication constructor's third parameter is now a bool
|
|
|
|
specifying if the current instance should be allowed to run as a secondary
|
2016-12-03 05:12:31 +08:00
|
|
|
instance if there is already a primary instance.
|
2016-08-10 09:42:46 +08:00
|
|
|
* The SingleApplication constructor accept a fourth parameter specifying if
|
|
|
|
the SingleApplication block should be User-wide or System-wide.
|
|
|
|
* SingleApplication no longer relies on `applicationName` and
|
|
|
|
`organizationName` to be set. It instead concatenates all of the following
|
2016-12-03 05:12:31 +08:00
|
|
|
data and computes a `SHA256` hash which is used as the key of the
|
2016-08-10 09:42:46 +08:00
|
|
|
`QSharedMemory` block and the `QLocalServer`. Since at least
|
|
|
|
`applicationFilePath` is always present there is no need to explicitly set
|
2016-12-03 05:12:31 +08:00
|
|
|
any of the following prior to initialising `SingleApplication`.
|
2016-11-27 01:42:04 +08:00
|
|
|
* `QCoreApplication::applicationName`
|
|
|
|
* `QCoreApplication::applicationVersion`
|
|
|
|
* `QCoreApplication::applicationFilePath`
|
|
|
|
* `QCoreApplication::organizationName`
|
|
|
|
* `QCoreApplication::organizationDomain`
|
|
|
|
* User name or home directory path if in User mode
|
2016-08-10 09:42:46 +08:00
|
|
|
* The primary instance is no longer notified when a secondary instance had
|
2016-12-03 05:12:31 +08:00
|
|
|
been started by default. A `Mode` flag for this feature exists.
|
2016-11-27 01:42:04 +08:00
|
|
|
* Added `instanceNumber()` which represents a unique identifier for each
|
2016-08-10 09:42:46 +08:00
|
|
|
secondary instance started. When called from the primary instance will
|
|
|
|
return `0`.
|
|
|
|
|
2022-04-06 05:04:31 +08:00
|
|
|
## v2.4
|
2016-08-10 09:42:46 +08:00
|
|
|
|
2016-07-05 06:17:23 +08:00
|
|
|
* Stability improvements
|
|
|
|
* Support for secondary instances.
|
|
|
|
* The library now recovers safely after the primary process has crashed
|
2016-08-10 09:42:46 +08:00
|
|
|
and the shared memory had not been deleted.
|
2016-07-05 06:17:23 +08:00
|
|
|
|
2022-04-06 05:04:31 +08:00
|
|
|
## v2.3
|
2016-07-05 06:17:23 +08:00
|
|
|
|
|
|
|
* Improved pimpl design and inheritance safety.
|
|
|
|
|
|
|
|
_Vladislav Pyatnichenko_
|
|
|
|
|
2022-04-06 05:04:31 +08:00
|
|
|
## v2.2
|
2016-07-05 06:17:23 +08:00
|
|
|
|
|
|
|
* The `QAPPLICATION_CLASS` macro can now be defined in the file including the
|
|
|
|
Single Application header or with a `DEFINES+=` statement in the project file.
|
|
|
|
|
2022-04-06 05:04:31 +08:00
|
|
|
## v2.1
|
2016-07-05 06:17:23 +08:00
|
|
|
|
|
|
|
* A race condition can no longer occur when starting two processes nearly
|
|
|
|
simultaneously.
|
|
|
|
|
|
|
|
Fix issue [#3](https://github.com/itay-grudev/SingleApplication/issues/3)
|
|
|
|
|
2022-04-06 05:04:31 +08:00
|
|
|
## v2.0
|
2016-07-05 06:17:23 +08:00
|
|
|
|
|
|
|
* SingleApplication is now being passed a reference to `argc` instead of a
|
|
|
|
copy.
|
|
|
|
|
|
|
|
Fix issue [#1](https://github.com/itay-grudev/SingleApplication/issues/1)
|
|
|
|
|
|
|
|
* Improved documentation.
|