- Convert LockCursorToScreenInfo, SwitchToScreenInfo, SwitchInDirectionInfo,
and KeyboardBroadcastInfo from C-style malloc/free structs to proper C++
classes inheriting from EventData
- Replace char arrays with std::string for safer string handling
- Remove obsolete alloc() static methods in favor of constructors
- Update all call sites to use 'new' with constructors and getDataObject()
instead of malloc with alloc() and getData()
- Add 'do nothing' comments to empty constructors for SonarQube scans
- Maintain EventFlags::DeliverImmediately for proper event delivery
- Reduces code by 48 lines and eliminates manual memory management
- Improves type safety and follows modern C++20 practices
This change makes the code more maintainable and less prone to memory leaks
by leveraging C++ destructors for automatic cleanup.
It is likely random whether the server works or not without
a manually configured protocol option, which is neither documented
nor enforced to be set.
With a random uninitialized value in m_protocol, this can happen:
[2025-08-03T12:39:57] NOTE: accepted client connection
[2025-08-03T12:39:57] FATAL: a runtime error occurred: XInvalidProtocol
Reports of "it works with debug enabled" are likely due to having
parts of the memory space the server object is allocated into being
cleared, and thus having a 0 (Synergy) startup value.
* Use Deskflow Name
* Remove business-oriented options from issue templates
* Remove business-oriented workflow
* Bump version to 3.0.0 (to avoid confusion with previously used version numbers 1.x & 2.x)
* Update readme to reflect new project name and goals
* Found some more "synergy" to rename
* Rename `synlib` to `app`
* Rename `syntool` to `deskflow-legacy`
* Rename `synwinhk` to `dfwhook`
* Rename dirs from synergy to deskflow
* Rename more "Synergy" files
* Rename app bundle ID
* Fixed copyright typo
* Rename only title in serial key dialog (to be moved downstream later)
* Preserve original serial key window for moving downstream
* Restore dialogs ready for moving downstream
* Rename `QDeskflowApplication` to `DeskflowApplication` (the Q is confusing)
* Restore Volker's original project name
* Fixed mimetype
* Fixed weird grammar
* Fixed (more) weird grammar
* Broken link, restoring (but we should move all links out of source)
* Broken link, restoring (but we should move all links out of source)
* Add write permission to valgrind-analysis.yml
* Restore AUR conflicts
* Apply Clang format
* Update ChangeLog
* Back out version change
---------
Co-authored-by: Nick Bolton <nick@symless.com>
* Load args from .toml file
* Remove .toml files
* Handle _ arg as no key
* Remove dotenv-cpp
* Treat special last arg specially
* Improve restart warning
* Remove rogue include
* Move TOML config loader to new class
* Merge config files into one
* Add override to virtual functions
* Tidy up App decl and add missing overrides
* Add comments to organize function types
* Fixed: config.h doesn't work on Windows
* Move var position
* Improve includes in app classes
* Update ChangeLog
* Restore position of configure_file call
* Remove new entries in .in file
* Rename `LicenseManager` to `License`
* Rename `LicenseManager` to `License`
* Move License class to gui lib
* Rename license related classes
* Refactor serial key parsing
* Don't fail fast on containers
* Move licensed product name from config to code
* Fixed formatting
* Update code coverage generator and fixed args
* WIP: Converting license to chrono
* WIP: Fixed compile errors, tests failing
* Fixed all serial key and license tests
* Disable verbose logging
* Add missing </p>
* Add missing include
* Revert code coverage config
* Handle parse errors
* Move more classes into the new gui lib and improve license/serial object ownership
* WIP: Fixing signal/slots in MainWindow
* Fixed slot for about to quit
* Rename manual slots to solve auto-connection warnings
* Fixed logging issue
* By default, don't close to tray
* Add .env support and furthe refactor license code, also fixed some copyright dates
* Remove test code
* Fixed memory error in .env parser and refactor more licensing display code
* Fixed color inconsistencies
* Fixed link colors and made log view expand
* Disable server components rather than hiding
* Reset years of blind UI layout fiddling
* Fixed clean Qt task
* Only show notice when time limited
* Fixed main window layout
* Show connected clients
* Set 15 spacing
* Auto connect on start
* More intentional screen size
* Fixed tests related to license
* Tests for expiry notifications
* Reorg tests and remove death test
* Update gtest
* Tests for dotenv parser
* Test command process
* What the heck is that doing there?
* Merge constants headers
* Fixed magic includes
* Remove helper function
* Remove comment
* Remove extern decl
* Update ChangeLog
* Turn off alignment of params
* Apply Clang format
* Change AlignAfterOpenBracket to AlwaysBreak and add extra bin pack settings
* Restore default bin packing
* Apply format
* Lint script with CLang format
* Use `-i` for `clang-format` and add more logging for lint scripts
* Apply LLVM CLang formatting
* Fixed comment
* Update ChangeLog
* Fixed bad return code logic
* Improve output for linters
* Fixed re-used var in clang lint
* Fixed include order for tests and use `#if 0` instead of commenting out code
* Use full Clang format dump
* Dump Ubuntu Clang format
* Dump Clang format from Debian
* Dumped from: clang-format version 18.1.8
* Revert "Dumped from: clang-format version 18.1.8"
This reverts commit b9bbda2995bb0b4b65baf14afebb0361ec64e644.
* Remove BasedOnStyle
* Restore base Clang format file
* Use clang-format from pip
* Apply Clang format 18 style
* Add clang_format deps
* Fixed include order issues and *some* accidental includes
* SYNERGY-1287 Display language notification only on client side
* SYNERGY-1287 Always show notification on the client side
* Update ChangeLog
* Fix doxygen job