* 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
* Call ensure_in_venv before all imports
* Create `gui` lib and link to `synergy` and test bins
* Move GUI IPC code to GUI lib
* Improve `AppConfig` members and change `minimizeOnClose` to `closeToTray`
* Group getters and setters
* Add missing `m_CloseToTray` load
* Fixed lint issue
* Add TODO comment for main window integ test
* Remove redundant comments and add override
* Remove dead code
* Update ChangeLog
* Fixed activation related compile errors
* Disable concurrency cancel jobs
* Disable fail-fast for matrix
* Improve dev script for daemon
* Ignore `.user` files created by Qt
* Add `FORCE_DESKTOP_PROCESS` option
* Catch errors related to getting profile dir
* Disable IPC entirely if forced desktop
* Use in-class init for AppConfig members
* Refactor config to use safer memory management
* Improve launch config to make OS-specific debugger usage clearer
* Re-enable MainWindowTests on Windows, further refactor for memory safety, fixed some include orders
* Remove dead singleton code
* Swap order of tests
* Use HTTPs for URLs
* Fixed compile errors for `SYNERGY_ENABLE_LICENSING` compile path
* Restore exec function call
* Remove extra link in cancel dialog
* Fixed broken link on activation cancel UI
* Close dialog if activated
* Fixed macOS enum ref to kCurrentProcess
* Improve wording on cancel activation dialog
* WIP - Test timeout (compile error)
* Finished timeout logic (with smart pointer)
* Include string_view
* Switch to thread from jthread (maybe not supported by macOS compiler?)
* Improve comment
* Disable test on Windows
* Add TODO related to jthread on macOS
* Refactor settings and paths on Windows
* Launch in desktop mode on Windows
* Remove arg quote wraps which break desktop mode
* Fixed qFatal on Linux
* Remove test value
* Follow original `AppConfig` accessor convention
* Disable service checkbox if not Windows
* Simplify TLS control enable logic
* Update command and Git ignore
* Fixed code style
* Fixed include consistency
* Fixed includes in validator
* Fixed lint errors
* Update ChangeLog
* Use smart pointer for core process
* Remove unneccesary default operators
* Don't halt on stderr
* Add coverage for both targets
* Use var for test bins
* Disable cmake-format comment fiddling
* Refactor GUI source config
* Use bin var for tests
* Remove unused member
* Add integration tests to CI
* Use modern cmake args
* Use max threads for build
* Use better var name for CPU core count
* Split build and configure steps
* Combine tests into action and add a PR comment
* Fixed yaml indentation in action
* Pass GITHUB_TOKEN
* Update coverage paths for SonarCloud
* Don't ignore return codes
* Add shell
* Run Valgrind on integ tests
* Use header for tests
* Save test results in table
* Move setup step outside of action
* Change logic of creating PR comment
* Remove header formatting
* Use emojis for simplicity
* Run build wrapper in build dir
* Use default make target
* Pass secrets
* Fixed SonarScanner warnings
* Don't allow unit tests to fail
* Fixed typo
* Update sonar scanner paths
* Fixed line endings
* Use step output
* Improve exclusion glob
* Exclude files from coverage
* Restore simpler pattern
* Set temp file path
* Coverage tests
* Re-create comment at start of job
* Append table header
* Add setup action
* Checkout before action
* Re-add projectBaseDir
* Restore original sonar scanner
* Use bash syntax for if
* Remove unused `shell`
* Add missing shell for valgrind action
* Restore new sonar scanner config
* Add missing shell
* Run only MainWindowTests
* Test with big change
* More changes
* Move to correct dir
* Remove test code
* Disable broken integ tests
* Switch coverage to front of filename
* Remove filter
* Refactor status step
* Disable segfault test
* Fixed: No status showing
* Add link to workflows
* Add test code for coverage
* Revert "Add test code for coverage"
This reverts commit c42309349b.
* Get workflow run URL
* Add missing shell
* Use dynamic URL in valgrind comment
* Revert "Revert "Add test code for coverage""
This reverts commit 9cff58b7ea.
* Test with commented out code
* Reintroduce 6 lines for coverage
* Test code to pass scanner
* Test code to pass scanner (take 2)
* Simplify to 2 new lines
* Add another line
* Trim changes to only 3 lines
* Add task for all tests
* Surface warning on failure
* Simplify build-wrapper step and move settings from web UI to CI
* Add missing line delims
* Also run tests action on Windows and macOS
* Add names to action steps
* Add timeout for test steps
* Add failure warning for integ tests
* Remove space
* Disable failing test on macOS
* Disable problem matcher
* Simplify names
* Disable freezing test on Windows
* Disable failing integ test on Windows
* Add build-kill task
* Ignore kill result on Windows
* Delete test code
* Update ChangeLog
* Move timeout to workflow step
* Add missing atom ctor init
* Init members with `None`
* Use in-class init and delcare getter inside if init
* Temp revert of changes ahead of unit test repair
* Move IPC header to shared, restore X clipboard test, simplify test cmake, new X clipboard unit test
* Suppress sonar for undefs
* Remove base dir include
* Revert "Temp revert of changes ahead of unit test repair"
This reverts commit 8f84b6ea5d.
* Use new accessor
* Use default dtor
* Beef up to 32 core
* Use enum class
* Make IPC protocol headers const at all levels
* Use enum class and const char for better type safety
* Use unique_ptr for m_clipboard
* Use `-j` instead of `-j8` to utilize full parallelism
* Increase thread count for sonar-scanner
* Use 32 threads
* Use in-class init for IpcClientProxy members
* Use const instead of #define
* Remove ctor member inits
* Use unique_ptr on win
* Implement temp bin dir for windows with more robust post-build copy
* Fixed missing iostream
* Add warning about copy errors
* Only run clean-gcda on Linux
* Use in-class init for IPC mutex
* Do no-op on Windows
* Hide clean-gcda task
* Move flakey test to integtests
* Delete dead code
* Test
* Temp disable post_config_all
* Disable post config step
* Revert "Disable post config step"
This reverts commit 2f956a7714.
* Revert "Temp disable post_config_all"
This reverts commit b44ed72e44.
* Restore -j8
* Simplify error handling
* Use const for test port
* Remove python check
* Update changelog
* Fixed order
* Fixed bad issue number
* Fixed bin copy source path
* Remove redundant except
* Move QApplication out of main to reduce memory impact when running individual tests
* Add --valgrind arg and colorize output when command returns non-zero exit code
* Fixed: colorama not always available
* Test multiple Qt tests
* Fixed: Windows Qt test failing due to missing QCoreApplication
* Simplify fake args for Qt
* Use --ci-env arg
* Create Valgrind analysis workflow
* Rename vars for fake args
* Parse and output valgrind summary
* Add build mode to comment
* Use GITHUB_OUTPUT to output summary
* Merge valgrind comment
* Improve comment
* Use `tee` instead of `--log-file` to also print stdout
* Improve comment about debug and release
* Simplify output writing in parse step
* Improve step name
* Correct comment about summaries
* Remove commented out code
* Better var name
* Missing copyright
* Rename global to shared
* Remove space
* Revert change to ConfigTests.cpp
* Test: allocLockCursorToScreenInfo_withState_setsState
* Merge remote-tracking branch 'origin/master' into S1-1717-sonarcloud-issues
* Remove header wrappers for gmock/gtest
* Convenience wrapper script for tests
* Use `std::copy` instead of `strcpy`
* Use `std::ranges::copy` instead of `stdcpy`
* Delete dead code
* Add guitests VS Code config and test wrapper
* Revert "Delete dead code"
This reverts commit aa40f5cd35.
* Build guitests with CMake
* Run all tests
* Don't use --gtest_filter for Qt tests
* Undo skip for GUI tests
* Coverage for `IpcClient::sendCommand`
* Remove provider and proxy
* Use lamda for StreamProvider to reduce boilerplate
* Restore version checker tests
* Remove activation souces
* Tasks for current/all tests
* Change command for tasks
* Mock QNetworkAccessManager
* Create core app to satisfy Qt assertations
* Use `std::copy` instead of `std::ranges::copy`
* Remove integtests
* Merge guitests into unittests
* Use std::string::length
* Remove include (resolves to root)
* Fix memory leaks
* Disable sigsegv tests
* Fixed formatting
* Remove guitests from CI
* New MainWindowTests
* Passing test for MainWindowTests
* Use alternative to strlen in MainWindow::checkSecureSocket
* Passing test for Log::print
* Fixed dtor call order
* Fixed var name typo
* Use proxy instead of `#define protected public`
* Add args test for log
* Add license ctor
* Fixed log test for release
* Add error log test
* Init qt with -platform offscreen
* Back-out initQt function
* Use QT_QPA_PLATFORM
* Try QT_QPA_PLATFORM=offscreen
* Use more readable env node
* Set QT_QPA_PLATFORM in CI and CodeQL
* Remove env not needed
* Modernize Log::print
* Calculate the length of the format string fmt during the initial scan loop
* More direct and efficient alterative to `strlen`
* Fixed major maint issues in AppConfig
* New clang and cmake rules
* Set `max_pargs_hwrap` to 4
* Undo clang format for now
* Fix missing `Setting::`
* Fixed missing `m_S` on Windows
* Re-add accidental dep resolution (fix later)
* Fixed missing buffer position increment
* Turn on errors
* Fixed tests and improve error message
* Fixed segfault on log refactor
* Extract log time to function
* Copyright date
* Update ChangeLog
* Simplify options
* Use more sensible edition logic
* Use set instead of option for string
* Improve macro for product name
* Add tests launch config
* Restore unregistered state
* Reorganize cases for title and improve function name
* Code coverage on by default
* Fixed copyright
* Improve code coverage and test readability
* Separate build-all and build-coverage
* Back out coverage on by default
* Fixed bad var in cmake
* More verbose logging for coverage
* Restore tasks
* Restore preLaunchTask
* Use default comparitor
* Move temp files to temp dir
* Add tasks for tests
* Support for wstring
* Upgrade sonar-scanner to 6 on Debian 12
* Use modern pip install
* Install python for sonarcloud
* Use Ubuntu and install deps
* Fixed sonar-scanner URL
* Fix exported dir
* Persist build dir
* Don't use venv for pip install gcovr
* Fixed another path
* Update actions/checkout to v4 for SonarCloud analysis workflow
* Add coverage task
* Improve coverage for SerialKeyEdition.cpp
* Enable licensing for builds
* Fixed invalid macro names, missing arguments, etc
* Fixed more copyright
* Fixed incorrect use of "enterprise"
* Fixed incorrect use of "business"
* Experiment with environment
* Make package prefix variable
* Add environment matrix to all OS
* Improve job names
* Make job names easier to read
* Roll back environment matrix (too much noise)
* Fixed: default should override required
* Refactor CI with vars
* Fixed arg for env.get_env
* Add new version env vars to example
* Remove test file
* Move CMake packaging to separate module and configure OpenSSL path for Windows
* Make VS Code CMake build task default
* Generate Microsoft-friendly 4-digit version number
* Update macOS bundle .plist with build year variable
* Use correct OpenSSL path and fixed various MSI variables
* Use correct rest/dist dir for MSI
* Add version .rc file for Windows
* Use macro instead of over-complicated version query command
* Made cmd_utils more secure by defaulting to no-shell and no-print
* Add certificate management module
* Implement packaging script on Windows
* Refactor Mac packaging script to use new cmd_utils args and new cert module
* Update ChangeLog
* Change PFX env vars and add to CI
* Use import as instead of from lib to solve resolve issue
* Allow custom certificate extensions
* Check for package version when using gdrive
* Make version number required
* Add missing shell
* Add missing gdrive value in test
* Find OpenSSL dir based on openssl binary
* Only use first OpenSSL entry
* More verbose logging
* Improve logging
* Only use env var if not empty
* Fixed wrong var
* Fixed macOS GitHub artefact name
* Change filename format to match new convention
* Convenience script to install daemon
* Use -p when re-launching with runas to keep window open
* Align new script with PEP 8
* Add more args for flexibility
* Add task to reinstall Windows daemon
* Fixed mistake in continue message
* Close task window after running script
* Reset error state before calling Process32Next
* Update CL
* Increase Windows CI timeout
* Bump timeout again due to choco
* Create tasks.json
* Delete gui.pro
* Swallow any exceptions from stopDesktop
* Upgrade to C++20
* Update ChangeLog
* Remove old versions of Ubuntu
* Ignore VS Code workspace
* Restore original CodeQL job name
* Add problem matcher and suppress warnings from within old CMake lib
* Bump CMake min version to 3.5
* Remove useless cmake_minimum_required
* HACK: temp comment out failing code
* Bump Qt to 5.12.6
* Delete tasks.json
* Create CMakePresets.json
* Fixed Qt link error: The input line is too long.
* Fixed invalid call to map erase
* Fixed incorrect use of RegCreateKeyEx
* Add VS Code tasks.json for cmake build
* Store `desktop` in char buf before using it
* Generate compile_commands.json
* Restore indentation
* Revert "Restore indentation"
This reverts commit d9f495460f.
* Restore original indentation (for now)
* Create extensions.json