Commit graph

334 commits

Author SHA1 Message Date
sithlord48
55f513941b chore: remove lib/gui/config/AppConfig class 2025-03-17 13:58:28 +00:00
sithlord48
80f814a2da refactor: unify Coredir to SettingsPath 2025-03-17 10:44:37 +00:00
Nick Bolton
16517ca541 refactor(daemon): More helpful and less noisy logging 2025-03-14 14:19:46 +00:00
sithlord48
c1642b8d9d refactor: Remove unused CoreTool 2025-03-14 14:10:19 +00:00
sithlord48
f2c16c4432 refactor: remove paths::coreProfileDir and its single use for Settings::settingsPath() 2025-03-14 14:10:19 +00:00
sithlord48
37b4e4b57f refactor: coretool remove getProfileDir 2025-03-14 14:10:19 +00:00
sithlord48
b502a6b848 refactor: remove coretool from coreProcess 2025-03-14 14:10:19 +00:00
sithlord48
fe0ddf85e4 refactor: remove coretool from path.h 2025-03-14 14:10:19 +00:00
sithlord48
6990477504 refactor: remove coretool use from tlsCertificate 2025-03-14 14:10:19 +00:00
sithlord48
3cd3d7b1ff refactor: mv lib/gui/proxy/QSettingsProxy => lib/common 2025-03-13 13:58:25 +00:00
sithlord48
5a7284fd6a refactor: appconfig is no longer a iAppConfig subclass 2025-03-13 13:58:25 +00:00
sithlord48
362b2e1477 chore: slim down appconfig to only have expose the settings proxies 2025-03-13 13:58:25 +00:00
sithlord48
7bf716b232 chore: appconfig remove unused m_logdir 2025-03-13 13:58:25 +00:00
sithlord48
554178b658 chore: appconfig remove unused useinternalconfig option 2025-03-13 13:58:25 +00:00
sithlord48
af17b14224 refactor: move serverconfigdialog visible to Settings 2025-03-13 13:58:25 +00:00
sithlord48
8606dc8618 refactor: move Coremode control to Settings
newKey core/coreMode <= General/serverGroupEnabled , Genaral/clientGroupEnabled
remove core mode items from appconfig
2025-03-13 13:58:25 +00:00
sithlord48
6362948e15 feat: CoreProcess no longer needs AppConfig 2025-03-13 13:58:25 +00:00
sithlord48
085a70d5a5 refactor: move elevateMode to Settings
newKey: core/elevateMode <= General/elevateMode + General/elevateModeEnum
Remove elevate mode from appConfig
2025-03-13 13:58:25 +00:00
sithlord48
93abf4217b refactor: move enableServer to Settings
General/enableServer is removed, service type stored in core/processMode set it now true when server mode
remove enableServer from appConfig
2025-03-13 13:58:25 +00:00
sithlord48
5fa70d0d0a refactor: move ProcessMode to Settings
newKey core/processMode
remove processmode from app config
2025-03-13 13:58:25 +00:00
sithlord48
d01c07cab8 refactor: move screenName to Settings
newkey: core/screenName <= General/screenName
remove screenName from AppConfig
2025-03-13 13:58:25 +00:00
sithlord48
6834862413 refactor: move logFile to Settings
newKey log/file <= General/logFilename
remove logfilename from appConfig
2025-03-13 13:58:25 +00:00
sithlord48
4273fe2318 refactor: move logLevel and loglevelText to Settings
newKey: log/level <= General/logLevel2
remove logLevel from AppConfig
2025-03-13 13:58:25 +00:00
sithlord48
266a4a5edf refactor: move logToFile to Settings
newkey: log/logToFile <= General/logToFile
remove logToFile from AppConfig
2025-03-13 13:58:25 +00:00
sithlord48
5e6381c88a refactor: move port to Settigns
newkey: core/port <= General/port
remove port from AppConfig
2025-03-13 13:58:25 +00:00
sithlord48
9aa1d6b79d refactor: move networkinterface to Settings
newkey: core/interface <= General/interface
remove networkinterface from appconfig
2025-03-13 13:58:25 +00:00
sithlord48
d45d6baacb refactor: move langageSync to Settings
newkey: client/languageSync <= General/languageSync
removed languageSync from appconfig
2025-03-13 13:58:25 +00:00
sithlord48
a887ac066c refactor: move invertscrolling to Settings
newkey: client/invertscrolldirection <= General/invertScrollDirection
remove invertScrollDirection from AppConfig
2025-03-13 13:58:25 +00:00
sithlord48
787a48424e feat: remove need for AppConfig from serverConnection 2025-03-13 13:58:25 +00:00
sithlord48
b20d6361d6 refactor: move external configfile to Settings
newkey: server/externalConfigFile <= General/configFile
remove configFile from AppConfig
2025-03-13 13:58:25 +00:00
sithlord48
b833ca7a45 refactor: move appconfig useExternal config to Settings
newkey: server/externalConfig <= General/useExternalConfig
remove useExternalConfig from appConfig
2025-03-13 13:58:25 +00:00
sithlord48
43eab1f04c feat: remove need for AppConfig in Client Connection 2025-03-13 13:58:25 +00:00
sithlord48
dc9e104f8c refactor: move serverHostname to Settings
newKey: client/remoteHost <= General/serverHostName
remove serverHostname from AppConfig
2025-03-13 13:58:25 +00:00
sithlord48
f456aab196 refactor: move serverBinary to Settings
newkey: server/binary <= General/coreServerBinary
remove coreServer from AppConfig
2025-03-13 13:58:25 +00:00
sithlord48
de3b9d8e2e refactor: move clientBinary to Settings
newkey: client/binary <= General/coreClientBinary
remove coreBinary from AppConfig
2025-03-13 13:58:25 +00:00
sithlord48
b7960eecb4 refactor: move preventSleep to Settings
newkey: core/preventSleep <= General/preventSleep
remove prevent sleep from app config
2025-03-13 13:58:25 +00:00
sithlord48
03f142977f refactor: move lastVersion to Settings
newkey: core/lastVersion <= General/lastVersion
Remove from app config
2025-03-13 13:58:25 +00:00
sithlord48
5360fb3c89 refactor: move requirepeerchecking to Settings
newkey: security/checkpeerfingerprints <= General/requireClientCerts
remove requireClientCerts from appconfig
2025-03-13 13:58:25 +00:00
sithlord48
4eb7ea3491 feat: tlsUtility no longer needs AppConfig, tlsUtility takes a parent object 2025-03-13 13:58:25 +00:00
sithlord48
737328d7b0 refactor: move TlsCertPath to Settings
newkey: security/certPath <= General/tlsCertPath
remove tlsCertPath from appConfig
2025-03-13 13:58:25 +00:00
sithlord48
bee0f84556 refactor: move tlsKeyLength to Settings
newkey: security/keySize <= General/tlsKeyLength
removed tlsKeyLength from appconfig
2025-03-13 13:58:25 +00:00
sithlord48
2721de220a refactor: move tlsEnabled to Settings
newkey: security/tlsEnabled <= General/cryptoEnabled
remove tlsEnabled from appconfig
2025-03-13 13:58:25 +00:00
sithlord48
4c6195cc5d refactor: move windowgeometry to Settings
newkey: gui/windowGeometry <= General/mainWindowSize and General/mainWindowPosition
mainWindowSize and Position remove from `AppConfig`
2025-03-13 13:58:25 +00:00
sithlord48
1e46bd2727 refactor: move CloseReminder setting to Settings
newkeyL gui/closeReminder <= General/showCloseReminder
remove closeReminder from `AppConfig`
2025-03-13 13:58:25 +00:00
sithlord48
54ecdad101 refactor: move startedBefore settings to Settings
newkey core/startedBefore <= General/startedBefore
startedBefore has been removed from `AppConfig`
2025-03-13 13:58:25 +00:00
sithlord48
51a749b109 refactor: move closeToTray setting to Settings
newkey: gui/closeToTray <= General/closeToTray
remove closeToTray from `AppConfig`
2025-03-13 13:58:25 +00:00
sithlord48
788f6c3eb2 refactor: Move update check setting to Settings
newkey: gui/enableUpdateCheck <= General/enableUpdateCheck
remove update check from `AppConfig`
2025-03-13 13:58:25 +00:00
sithlord48
e01c595071 refactor move Tray icon setting to Settings
newKey: gui/symbolicTrayIcon <= General/colorfulIcon
the colorfulIcon settings has been removed from `AppConfig`
2025-03-13 13:58:25 +00:00
sithlord48
bcd90434a2 refactor: move autohide setting to Settings
newkey: gui/autoHide <= General/autoHide
auto hide has been removed from `AppConfig`
2025-03-13 13:58:25 +00:00
sithlord48
698fd3f83c refactor: move logExpanded to Settings
newkey: gui/logExpanded <= General/logExpanded
remove logExpanded AppConfig
2025-03-13 13:58:25 +00:00
sithlord48
ef315183f3 chore: rm unused ARCH:getPlatform 2025-03-13 12:25:25 +00:00
sithlord48
8b1e8dfd9f chore: rm unused CoreTool::getArch 2025-03-13 12:25:25 +00:00
sithlord48
6e8952c8a0 chore: update formating for clang-format 20.1.0 2025-03-11 10:57:51 -04:00
Nick Bolton
bb38ad0766 chore: Rename TLS constants for consistency 2025-03-10 18:57:29 +00:00
sithlord48
256ba2411b refactor: move qt automoc, uic and rcc to a single place in Librarires.cmake 2025-03-07 13:16:09 +00:00
sithlord48
5d310be807 chore: remove obsolete runWizard setting 2025-03-05 18:48:07 +00:00
Nick Bolton
b64942e3a3 fix: Delete HKEY_LOCAL_MACHINE\SOFTWARE\Deskflow when clearing settings 2025-03-03 15:05:09 -05:00
sithlord48
9eeda33293 fix: do not reset screenCorners on startup
fixes #8276
2025-03-03 17:26:48 +00:00
sithlord48
17bedb1072 fix: Correct parsing of screen corners
fixes #8231
2025-03-03 17:26:48 +00:00
Nick Bolton
5a7f6bd1c0 refactor: Remove old Windows TCP IPC implementation (replaced by Qt equivalent) 2025-02-28 17:58:16 +00:00
Nick Bolton
389028ccf9 refactor: Connect socket events in ctor for daemon IPC client 2025-02-28 17:58:16 +00:00
Nick Bolton
dc6383d593 refactor: Properly disconnect and clean up previous daemon file tail on connection 2025-02-28 17:58:16 +00:00
Nick Bolton
5743db3040 feat: Apply log level on IPC connection 2025-02-28 17:58:16 +00:00
Nick Bolton
5733541b2a feat: Tail daemon log file instead of using IPC log outputter 2025-02-28 17:58:16 +00:00
Nick Bolton
5980fb741b refactor: Move daemon process stop command to new Qt IPC 2025-02-28 17:58:16 +00:00
Nick Bolton
d6228416a1 refactor: Send log level to daemon over IPC instead of when sending command 2025-02-28 17:58:16 +00:00
Nick Bolton
e72faf1446 feat: Connect to daemon IPC on start request 2025-02-28 17:58:16 +00:00
Nick Bolton
c1d7474700 feat: Restart process from daemon through new Qt IPC impl 2025-02-28 17:58:16 +00:00
Nick Bolton
0d2d9f385d feat: Implement basic IPC connection between Daemon and GUI 2025-02-28 17:58:16 +00:00
sithlord48
08be9fa33f chore: use a style for the flat buttons 2025-02-26 11:52:03 +00:00
sithlord48
72d27c70e0 refactor: gui::styles use QStringLiteral 2025-02-26 11:52:03 +00:00
sithlord48
b7eb5c467b feat: Remove Inverse Connections Option 2025-02-25 14:18:32 +00:00
sithlord48
05ed47be2e fix: server resets to listing state with no clients connected 2025-02-20 21:16:48 +00:00
sithlord48
29d04ea8e0 chore: update lib/gui/constants to use QStringLiterals 2025-02-20 21:16:48 +00:00
sithlord48
ab118a3aa3 chore: remove unused style items 2025-02-20 21:16:48 +00:00
sithlord48
53d2b3bd2e refactor: MainWindow move update info to status tray 2025-02-20 21:16:48 +00:00
sithlord48
83c190c385 refactor: use better name to describe for the tlsEnabled var in messages , and correct the name in virtual method 2025-02-18 12:12:41 +00:00
sithlord48
79dc858446 chore: modify client trying to connect dialog to inform user the new client needs to be put in the layout when both tls is enabled and peer key checking is enabled , otherwise show the old dialog asking to allow the client to connect 2025-02-17 16:26:29 +00:00
sithlord48
e51956e2c7 feat: Client ID verification
based on barrier: 229abab
  Fixes: CVE-2021-42072, CVE-2021-42073
2025-02-17 16:26:29 +00:00
sithlord48
638349b48a feat: add config for client cert required
based on barrier: 8bc280e0
2025-02-17 16:26:29 +00:00
sithlord48
fbaa0a8433 feat: use sha256
based-on: a428b61c7d
 based-on: b7757fbd68
 based-on: a238b27879
2025-02-12 13:41:45 +00:00
sithlord48
743c3feef3 refactor: use FingerprintData for fingerprints
based-on: 7cced74119
2025-02-12 13:41:45 +00:00
sithlord48
d0d5182425 refactor: use new Fingerprint database
based-on: 50534ecb43
   based-on: be8ba0d132
2025-02-12 13:41:45 +00:00
sithlord48
298b1047c4 refactor: add ssl consts into common/constansts 2025-02-12 13:41:45 +00:00
sithlord48
7d79a4d729 chore: TlsCertificate, remove unused items 2025-02-12 13:41:45 +00:00
sithlord48
2058519e57 refactor: generate Certs using secureUtils method 2025-02-12 13:41:45 +00:00
sithlord48
5a71d63923 refactor: secureutils add pemFileCertFingerprint 2025-02-12 13:41:45 +00:00
sithlord48
fb32f141cc refactor: secureUtils fingerprint method
Signed-off-by: sithlord48 <sithlord48@gmail.com>
2025-02-12 13:41:45 +00:00
Nick Bolton
ac6809d40f refactor: Rename core process start/stop function names 2025-02-11 13:06:51 +00:00
sithlord48
610786ad2e chore: clean up extra empty lines 2025-02-11 13:06:51 +00:00
sithlord48
26367635d9 refactor: QTextStream& screen::writeScreensSection(QTextStream&) -> QString Screen::screenSection()
refactor: QTextStream& screen::writeAliasSection(QTextStream&) -> QString Screen::aliasSection()
2025-01-30 15:36:21 +00:00
sithlord48
beb4069845 fix: Screen Missing Icons on server config
Fixes#8155
2025-01-30 15:36:21 +00:00
sithlord48
1085df54ed refactor: Reuse compliance
build files and documentation: MIT
  images / sources: GPL-2.0-only
  breeze icons: LGPL-2.0-only
  Microsoft MSM file, vc redist license
2025-01-27 17:05:47 -05:00
sithlord48
2040df435f fix: #8107: Remove legacy tray code 2025-01-23 19:16:29 +00:00
Nick Bolton
6eec07b6dc refactor: Use correct log level for failure messages
This change may help us turn up some everyday problems in the field that get missed due to not using debug log level.

This could also make the log a bit noisier, so at a later date we may need to downgrade anything that is not actually a failure/warning.
2025-01-21 16:46:34 -05:00
sithlord48
89ec18a8e4 feat: bake in light and dark icon theme 2025-01-20 10:42:29 +00:00
sithlord48
067d6810f3 chore: gui lib, remove unused include dirs 2025-01-19 09:39:54 -05:00
sithlord48
19920801fa build: gui lib use explicit sources 2025-01-19 09:39:54 -05:00
sithlord48
9501b59f81 fix: Save the try icon setting 2025-01-07 20:33:37 -05:00
sithlord48
42a17726d9 feat: Allow users to pick mono color (based on isDarkMode) or colorful icon 2025-01-07 23:51:34 +00:00
sithlord48
5d41537505 refactor: remove macOS check for icon theme macOS 11+ uses a mask 2025-01-07 23:51:34 +00:00
sithlord48
13a3c2d281 Chore: rm unused DESKFLOW_GUI_HOOK Items 2025-01-07 17:15:48 -05:00
sithlord48
ca5f41684f fix: MacOS Hide and Show from dock on window close / hide 2025-01-07 09:19:20 -05:00
sithlord48
351c5123ef fix: Mac Os use Native Hide Event 2025-01-03 13:56:39 +00:00
sithlord48
ce02bb85b3 chore: update gnome tray fix link to https://extensions.gnome.org/extension/615/appindicator-support/ 2025-01-02 13:44:06 +00:00
sithlord48
638970d65e feat: Visiblity toggle for the log on the main window 2024-12-26 14:45:52 +00:00
sithlord48
f06a789d25 build: wix generation for windows with cpack 2024-12-18 12:10:53 -05:00
sithlord48
e4ecbdae8a fix: macOS correctly restore window when hidden with command+H 2024-12-18 09:52:17 -05:00
sithlord48
bf4f513d7e chore: format *.m and *.mm files 2024-12-18 09:52:17 -05:00
sithlord48
d6c682a923 chore: rm unused src/lib/gui/gui_config.h 2024-12-04 10:05:34 -05:00
sithlord48
4f8ae57ffd build: always include headers 2024-12-04 10:05:34 -05:00
sithlord48
03f1408a98 refactor: mv src/lib/gui/VersionChecker => src/gui/src/ 2024-12-04 10:05:34 -05:00
sithlord48
4a83eb711f build: generate version info, use it for all sources of version 2024-12-04 10:05:34 -05:00
sithlord48
147869e3a5 build: remove DESKFLOW_SHOW_DEV_THANKS define 2024-11-15 12:20:17 +00:00
sithlord48
2213f3f746 build:rm CLIENT_BINARY_NAME define 2024-11-15 12:20:17 +00:00
sithlord48
e52ce58541 build: rm SERVER_BINARY_NAME define 2024-11-15 12:20:17 +00:00
sithlord48
bdcf770de6 build: rm DESKFLOW_VERSION_URL define 2024-11-15 12:20:17 +00:00
sithlord48
e865397f12 build: rm DESKFLOW_WEBSITE_URL define 2024-11-15 12:20:17 +00:00
sithlord48
403830ceea build: rm DESKFLOW_APP_NAME define
Unify Server APP USER_CONFIG_NAME and SYSTEM_CONFIG_NAME
 Some unix users may need to move their config to deskflow.conf from .deskflow.conf
2024-11-15 12:20:17 +00:00
sithlord48
9b59acdf26 build: rm DESKFLOW_DOMAIN define 2024-11-15 12:20:17 +00:00
sithlord48
46a6f74fb7 build: rm DESKFLOW_APP_ID define 2024-11-15 12:20:17 +00:00
sithlord48
a0666f0167 refactor mv: res/gui => src/gui/res 2024-11-12 14:00:59 +00:00
sithlord48
77c4707ec5 refactor: mv src/lib/gui/TrayIcon => src/gui/src/TrayIcon 2024-11-12 14:00:59 +00:00
sithlord48
f31cb26e0b
refactor: mv src/lib/gui/widgets => src/gui/src/widgets 2024-11-08 07:05:57 -05:00
sithlord48
dc5c2b9422
refactor: mv src/lib/gui/dialogs/SettingsDialog => src/gui/src/dialogs/SettingsDialpg 2024-11-08 07:05:54 -05:00
sithlord48
f87b4bc0c2 refactor: mv AboutDialog to gui/src/dialogs/ 2024-11-06 14:50:39 +00:00
sithlord48
f66a0219f6 fix: isDarkMode Check
while newer Qt does provide a method to check if dark mode
  Its not always correct the old method is
  Anytime the text is lighter then the window its dark mode.
2024-11-06 14:50:39 +00:00
sithlord48
fb686ede21 refactor: remove desktop legacy 2024-10-30 20:04:55 +00:00
sithlord48
ce784ab383 refactor: CoreTool use arch classes directly 2024-10-30 20:04:55 +00:00
sithlord48
946a2b778e refactor: rm unused coreTool include in tlscert.h 2024-10-30 20:04:55 +00:00
sithlord48
45bde73810 chore: settingsDialog rm unused CoreTool include 2024-10-30 17:41:17 +00:00
Nick Bolton
5657152c58 chore(gui): Add _what's this_ for Windows service setting 2024-10-24 14:29:13 +01:00
sithlord48
7b7ff81a9f build: Require libei and libportal from the system on linux
Removing remaining meson parts
2024-10-22 09:42:32 -04:00
sithlord48
f3657edc80 refactor: use Q_EMIT 2024-10-21 14:30:02 +01:00
sithlord48
2a8a43a689 refactor: remove unused strings 2024-10-21 14:30:02 +01:00
sithlord48
498e3aa015 refactor: use static regularexpressions and matches 2024-10-21 14:30:02 +01:00
sithlord48
58323f515f refactor: use multi arg were possible 2024-10-21 14:30:02 +01:00
sithlord48
560345cf4f refactor: add context object for lambdas 2024-10-21 14:30:02 +01:00
sithlord48
90d27a174d refactor: do not include full modules in qt files 2024-10-21 14:30:02 +01:00
sithlord48
8b54b84880 refactor: use const for ranged loops 2024-10-21 14:30:02 +01:00
sithlord48
45050d3d36 refactor: use modern range for loops in place of old foreach macro 2024-10-21 14:30:02 +01:00
sithlord48
9b9ecb0d05 chore: Adjust Clang-format linter rules
120 Column Lines
 Block Indent for Bracket Align
 Custom Line Break Rules
 No Single Line Functions
2024-10-17 21:38:29 +01:00
sithlord48
3f2bb2531a fix: Let users select version number and build in About Dialog
Fixes: #7722
2024-10-17 19:51:00 +01:00
Nick Bolton
1dc449fe0a fix: Use OPENSSL_EXE_DIR instead of OPENSSL_ROOT_DIR on Windows 2024-10-16 20:17:53 -04:00
Nick Bolton
9a5c1a3212 chore: Remove Wayland experimental pop 2024-10-16 14:00:10 +01:00
Nick Bolton
87b4e3b7fe fix: Check for errors before reading version string 2024-10-15 07:57:53 -04:00
Nick Bolton
9c4f6e6d0b chore: Change TLS dir to same as Qt config 2024-10-14 17:43:30 +01:00
Nick Bolton
c630ad0952 test: Coverage for AboutDialog.cpp 2024-10-13 19:52:09 +01:00
sithlord48
932ca44d75 build: use pragma once not ifndef def pattern for headers 2024-10-08 06:52:41 -04:00
Nick Bolton
049e34f7a5 chore: Remove word 'beta' from Wayland message 2024-10-02 09:17:57 -04:00
Nick Bolton
6bb1bcad8c chore!: Relocate commercial code downstream 2024-10-01 14:39:05 +01:00
Nick Bolton
2d732a4b9d fix: Use library config for Windows OpenSSL 2024-10-01 14:04:05 +01:00
Nick Bolton
b904cba040 feat: ask for permission before update check 2024-09-22 13:14:03 +01:00
Nick Bolton
4f0e8cb844 feat: change most domains to Deskflow 2024-09-22 13:11:25 +01:00
Nick Bolton
2671507f63 fix: various typos found by unit193 2024-09-22 07:11:42 -04:00
Chris Rizzitello
ed1217e9cc
Use Deskflow Name (#7519)
* 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>
2024-09-17 20:00:25 +01:00
Nick Bolton
8beeaf4276
Add warnings for missing Wayland libs and features (#7492)
* Add warnings for libei and libportal

* Add warning about experimental Wayland support

* Update ChangeLog

* Move GUI res files to root res dir

* Fixed crazy qrc shenanigans

* Move Wayland warning logic, add tests, improve core retry

* Also install py modules with pip since meson can be in venv

* Throw error when no libei

* Add warnings when no libportal

* Allow failure then success to show related to Wayland (for switching modes)

* Fixed formatting

* Fixed includes

* Simplify warning message

* Add log hint

* Show warning when error already shown

* Only check for Wayland if X or libei

* Add error message when quitting dur to remote desktop error

* Improve consistency of portal log lines
2024-09-09 11:18:17 +01:00
Nick Bolton
94d9baca2d
Use vcpkg to manage openssl dep instead of choco (#7471)
* Brighter red

* Move openssl to vcpkg.exe

* Revert "Move openssl to vcpkg.exe"

This reverts commit 36f39d916f3cc2c8ce779442bd964bd6af7edd69.

* Add missing copyright

* Fix copyright dates

* Remove openssl from choco

* Install openssl using vcpkg

* Add deps for vcpkg

* Add missing vcpkg manifest

* Revert "Add deps for vcpkg"

This reverts commit c266d29c2cec4474a181b89c2f759b62ed67db10.

* Make vcpkg Windows only

* Improve comment about vcpkg

* Remove unused var

* Add caching for vcpkg

* Reorg launch.json

* Remove static env var for openssl on Windows

* Add openssl dep to vcpkg

* Update ChangeLog

* Add OpenSSL include dir

* Remove pointless choco cache

* Remove vcpkg downloads

* Remove wixtoolset for CI already installed on GitHub runners

* Use `Remove-Item` instead of `rmdir`

* Move cmake and ninja out of choco

* Revert "Move cmake and ninja out of choco (winget not supported on GitHub runner)"

This reverts commit a65c02d275e58705b8cd86fac72629284191d737.

* Move cmake and ninja to winget and don't use choco on CI

* Remove winget action

* Use scoop on CI and winget locally

* Use `seanmiddleditch/gha-setup-ninja` for Ninja

* Improve comments

* Install Ninja before deps

* Use system vcpkg if installed

* Revert "Use system vcpkg if installed"

This reverts commit 4ddee1c66e8cace458c047285a70d2f98cf9d82c.

* Add comment about why we're using local vcpkg

* Fixed comment about VC++

* Improve config comments

* Delete dead code

* Improve comment about vcpkg/buildtrees
2024-09-04 16:52:37 +01:00
Nick Bolton
4d84097334
Change default value for dev thanks message (1.16) (#7453)
* Forward port: Change default value for dev thanks message

* Remove sneaky submodules

* Update ChangeLog
2024-08-30 21:14:02 +01:00
Nick Bolton
4e844bf307
Wayland support (port Red Hat libei and libportal impl) (#7449)
* Add libei and libportal

* Port libei and libportal code by Peter Hutterer and Olivier Fourdan

* Add Peter Hutterer and Olivier Fourdan to important devs list

* Improve error handling for libei and libportal builds

* Checkout libportal  tags/0.7.1

* Hack out the gi-docgen clone

* Remove new submodules in favor of using ExternalProject_Add

* Remove submodule dirs

* Use ExternalProject_Add instead of submodules

* Fixed namespace

* Hack to work around type libportal causing type conflicts

* Add log helper functions

* Use original log functions

* Switch to FetchContent, use libportal a1530a9 (unreleased) and use camelCase member names for consistency

* Restore a few events (much more work required)

* Add TODOs for supporting multiple lib versions

* Revert "Switch to FetchContent, use libportal a1530a9 (unreleased) and use camelCase member names for consistency"

This reverts commit 610cebb5b6a08282eee68f4424fcdbe9eaab4bf9.

* Simplify cmake config by removing builds for libei and libportal (will do this in `install_deps.py` instead)

* Remove submodules

* Remove .gitmodules

* Use meson to build subprojects

* Update copyright with Peter Hutterer's guidance

* Use meson for installing deps

* Fixed typo in tag name

* Remove submodules

* Remove old submodules

* Fixed libei name

* Defaults for pugixml and gtest depending on whether source exists in subprojects

* Ignore some subproject dirs

* Make deps OS-specific

* Move python deps to pyproject

* Only compile and install on Linux with Meson

* Revert "Move python deps to pyproject"

This reverts commit 92c8a287b8376a4d166058c85f1d6081f6fdb423.

* Add ninja to brewfile

* Add python3-attr

* Restore original coverage config

* Add ninja for meson

* Include meson in same try-except

* Fixed ninja dep name

* Move libs to correct oS

* Fixed include for wintoast

* Disable docs for libportal

* More options for libei and libportal

* Fixed option for libei

* Use ninja directly to install

* Revert "Use ninja directly to install"

This reverts commit c926d78ba483406a55acd10fb157c39e13f90b71.

* Meson install verbose

* Prints stdout/stderr

* Remove `from None`

* Remove submodules that somehow crept back in?!

* Prepend sudo if exists

* Add libei deps for all distros

* Fixed Fedora package name

* Add more deps for other distros

* Add more libs (including pugixml)

* Fix lib name

* Drop -u from pacman

* Add vala to rhel

* Make libportal optional

* Make portal link optional

* Remove example code

* Always use system pugixml

* Disable interactive apt through install_deps.py

* Revert "Disable interactive apt through install_deps.py"

This reverts commit 5bbc8fd689182447c79b81db16c961b98361a292.

* Set DEBIAN_FRONTEND in workflows

* Set DEBIAN_FRONTEND in CodeQL workflow

* Add gtest dep

* Add bundled libei dep

* Add libei dep to Arch

* Use `googletest` on openSUSE

* Add gmock dep

* Remove gtest dep from openSUSE

* Add libei on Fedora

* Bundle libei for older Linux distros

* Disable libei dep for RPM

* Also bundle symlink to .so

* Use ${CMAKE_INSTALL_LIBDIR}

* Rename libei to fix openSUSE

* List installed files

* Add libei-devel to openSUSE

* Add googletest-devel to openSUSE

* Remove manual deps (probably resolved automatically)

* Remove googletest from openSUSE (doesn't provide google mock)

* Only add Portal* if libportal found

* WIP - Partial work on using old events system :'(

* Add deps install commands for subprojects

* Solved more compile issues related to events system, threads, etc

* Fixed bad config for adding x, ei, portal sources

* Remove redundant deps

* Remove (another) redundant dep

* Fixed pacman command

* Add Ubuntu and Linux Mint libei deps

* Fixed Ubuntu and Linux Mint libei deps aliases

* Only iterate subprojects if not None

* Add rhel, rocky, and alma for libei

* Make rhel-like deps same as fedora again

* Build libportal on rhel-like

* Re-enable meson rhel-like for libportal

* Remove dbus-python

* Make libportal optional (for rhel-like)

* Handle ei event queue results

* Re-introduce libportal

* Print libei and libportal versions

* Add ei/portal args and client screen

* Switch --use args to --no

* Don't build libei/libportal on older distros as it's pointless

* Make libei and libportal optional

* Add Debian 13 runner

* Make some packages optional

* Remove subprojects

* Improve comment

* Add comment for libportal

* Improve comment

* Add Debian 13 runner

* Make optional... optional

* Change continuation stripper to remove newline and continuation char

* Make command strip more uniform

* Fixed help var syntax

* Fixed libei linking

* Ensure `kHelpNoWayland` is always defined

* Improve help message

* Fixed Debian 13 runner name

* Include sstream and use const var

* Update ChangeLog

* Remove Wayland block

* Return new timer

* Make tray icon logging verbose

* Fixed arg parser for wayland args

* Fixed init of EI screen

* Fixed lint issues

* Update README to indicate Wayland support in GNOME 46

* Add missing word

* Fixed comment positions

* Automate CI env

* Tone down debug log messages

* Add missing comma

* Remove redundant log line
2024-08-30 15:53:25 +01:00
Nick Bolton
3293deff39
Improve error handling and use long long for dates (#7442)
* Improve error handling

* Remove unused includes

* Use long long for unix date

* Update ChangeLog

* Fixed include

* Clang format
2024-08-14 00:13:17 +01:00
Nick Bolton
28cefff13b
Share file line logic between logger and message box (#7441)
* Share file line logic between logger and message box

* Update ChangeLog
2024-08-13 22:39:09 +01:00
Nick Bolton
da02fca602
Compare result of clickedButton instead of exec (#7438)
* Compare result of `clickedButton` instead of `exec` to workaround Qt 6.5 bug

* Update ChangeLog

* Fixed typo

* Add missing backticks

* Init as nullptr
2024-08-13 11:29:59 +01:00
Nick Bolton
9464aa46b8
Show message box explaining why settings are read-only (#7437)
* Swap assert for warning log lines

* Flush on IPC write

* Flush on cleanup instead of write

* Record core started setting

* Show server first start message

* Show message when active scope is read-only

* Show read only message on change

* Show read only on window show

* Try to improve main window size policy

* Revert addition of resizer

* Remove redundant file path fiddling

* Remove dead code and fixed missing const

* Print path and use queued connection

* Improve read-only message on Windows

* Only show toggle warning when dialog visible

* Update ChangeLog

* Fixed include
2024-08-12 16:39:18 +01:00
Nick Bolton
30ea95fb3d
Introduced new env vars for testing (#7436)
* New env vars for testing

* Update ChangeLog
2024-08-11 22:34:48 +01:00
Nick Bolton
3e4cb4a1c7
Add reset settings menu action and env var (#7435)
* Add reset settings menu action and env var

* Delete profile and config dirs, reduce duplication with TLS dir and various other paths, fixed bug in new client dialog, move TLS arg to server

* Better filename

* Make method const

* Update ChangeLog

* Remove include

* Make param const

* Stop core process on reset

* Fixed: reset menu action causes config to be pulled from app/server config

* Center main window in middle of screen
2024-08-11 00:58:24 +01:00
Nick Bolton
c4510bf093
Show dark logo in dark mode and improve .env loader (#7434)
* Update fingerprint on load

* Update TLS controls enabled

* Use official Qt way to detect dark mode and clean up dead code

* Add missing includes

* Simplify dark mode code

* Check app config dir for .env

* Use app config dir for .env

* Don't check for existence of file

* Resolve orgDir

* Add missing example env

* Fixed example

* Update ChangeLog
2024-08-10 01:48:27 +01:00
Nick Bolton
064bc957c1
Only show close to tray reminder when not quitting the app (#7432)
* Improve trusted fingerprint message

* Fixed typo

* Improve grammar

* Simplify logging output

* Only show close reminder if not quitting

* Migrate old settings on macOS

* Raise main window when showing

* Raise critical error above main window

* Coverage for config scopes

* Fixed new client prompt

* Remove unused includes

* Further coverage for config scopes

* Update ChangeLog
2024-08-09 19:20:10 +01:00
Nick Bolton
321418fcf8
Improve handling of Qt-related warnings and errors (#7431)
* Load .env from app dir

* Use `OutputDebugStringA` on Windows

* Improved string manipulation in logger and better use of OutputDebugStringA

* Use noquote for path

* Apply TLS setting after activation

* Restart after activation

* Move skip debug message to correct place

* Only print settings path on create, not shown

* Merge common and global libs

* Reduce code duplication around constants, version, etc

* Simplify sprintf code

* Use snprintf

* Add error test menu

* Coverage for dotenv

* Coverage for Logger

* Add missing include

* Add init when no Git SHA

* Update ChangeLog

* Add spellings

* Set debugging on for release build

* Remove unused variable

* Remove bad comment

* Fixed copyright date

* Remove import

* Move URL const back to GUI

* Remove dead code and duplication

* Fixed/ignored lint warnings
2024-08-09 14:03:48 +01:00
Nick Bolton
ef186d398d
Improve setting enable logic and test coverage (#7430)
* Rename controls and improve setting enable logic

* Move settings dialog to new lib

* Rename dialog to dialogs

* Include .ui files for GUI lib and include autogen headers in exe

* Unit test settings dialog

* Fix lint errors

* Update ChangeLog

* Fixed test name

* Add debug messages

* Tweak message

* Logging for CI issue

* Revert "Logging for CI issue"

This reverts commit 124b2c1acd778f1e422057e203436582fe12d147.

* Revert "Add debug messages"

This reverts commit 39b6a06c716965e0a8199bf34b6652861874cb28.

* Add Windows compiler error

* Exclude test on Windows
2024-08-09 09:08:29 +01:00
Nick Bolton
a686f19ca2
Parse date numbers as long instead of int (#7429)
* Fixed menus

* Parse string to long for date

* Change time limited logic

* Restore time limit logic

* Remove qglobal.h includes

* Remove warning

* Fixed tests to work with 0 value

* Update ChangeLog
2024-08-08 21:54:32 +01:00
Nick Bolton
de21030892
Refactor settings dialog to simplify enable/disable logic (#7428)
* Move screen config files to new GUI lib

* Fixed bugs in config dialog related to service checkbox

* Test status tip

* Revert "Test status tip"

This reverts commit d11ad5bc22dab7edcf7ef0b3baada2fce240398a.

* Explain why service disabled

* Corrected client error message (written by non-native English writer) to make the message easier to understand for native English speakers

* Clearer logic

* Improve readability

* Coverage for 'add client' and client error messages

* Coverage for `Screen` class

* Clarify test names

* Use `const QString &` for backward compatibility

* Fixed lint warnings

* Prevent return paths after qFatal

* Use auto and abort to solve lint warnings

* Remove unused fake error

* Make operator hidden friend

* Remove redundant access specifier

* Convert int explicitly

* Swap && logic for linter

* Update ChangeLog
2024-08-08 18:41:59 +01:00
Nick Bolton
6b1e7e6f1c Revert "Move screen config files to new GUI lib"
This reverts commit 74e3684027.
2024-08-08 11:39:48 +01:00
Nick Bolton
45e366c274 Revert "Fixed bugs in config dialog related to service checkbox"
This reverts commit daaaf9b4ee.
2024-08-08 11:39:43 +01:00
Nick Bolton
daaaf9b4ee Fixed bugs in config dialog related to service checkbox 2024-08-08 11:38:34 +01:00
Nick Bolton
74e3684027 Move screen config files to new GUI lib 2024-08-08 11:37:42 +01:00
Nick Bolton
228ead39fb
More reliable button click detection for add client dialog (#7427)
* Use more reliable method to detect button clicks on add client dialog

* Use pointer to const

* Remove redundant tr

* Update ChangeLog
2024-08-07 18:40:31 +01:00
Nick Bolton
f1f7266a81
Fixed warnings and enable errors as warnings (#7426)
* Fixed warnings on WIndows and enable errors as warnings

* Fixed string array pointer hack

* Ignore warnings in macOS .mm files

* Add missing overrides

* Clang format

* Update ChangeLog

* Safer string manipulation

* Coverage for change year code

* Oops, bad override

* Fixed horrible Windows
2024-08-07 18:11:29 +01:00
Nick Bolton
7984535d38
Refactored core process management and IPC client (#7425)
* Also ignore `command_pre` for Fedora itself

* Improve warning message

* Fixed layout issues on main window

* Restore fusion theme for Windows dark mode

* Further correct main window layout

* Set CWD for launch on Windows to same dir as .env

* Use signals for tray icon instead of callback

* Reduce complexity for setting tray icon

* Further reduce tray icon complexity

* Reduce tray retry time

* Fixed tray not showing on macOS

* Refactor function names

* Move tray icon to lib

* Decouple server connection class

* Move server connection to lib

* Move client config to lib

* Remove redundant forward declarations

* Fixed some namespaces in the new lib

* Move core process code to new class

* Improve member names on new process class

* Remove copy/pasta code

* Move OSX helpers to lib

* Add .mm to lib config

* Fixed copyright

* Improve reliability of log line handling

* Fixed TLS certificate generate bugs

* Remove client list

* Refactor core process handling to fix various problems

* Fixed process/connection status bugs

* Fixed function signature issue on macOS

* Fixed override warnings

* Fixed string format warning

* Save `wasStarted` state and use that instead

* Use only filename in dialog

* Use lambda for simple slot

* Scroll to bottom if at bottome

* Set value based on position before text added and set horizontal scroll too

* Add 1px tollerance for Linux

* Simplify start/stop mutex

* Always stop service on restart

* Increase scroll bottom threshold to 2

* Log warning instead of critical

* Fixed long-standing dir CD-up hack

* Remove include

* Remove include

* Fixed rogue dumbisense includes

* Account for optional distro_like

* Add QAction include to solve incomplete type

* Remove rogue #pragma

* Static cast log value

* Solve event queue delete warning

* Fixed integ test on Windows 10

* Reduce enum verbosity

* Use static instance instead of global

* Make function const

* Use unique_ptr instead of new and delete, and made some functions const

* Fixed smart pointer use

* Fixed variable shadowing

* Fixed wrong use of using

* Fixed missing namespace using

* Simplify TLS error handling

* Improve UX around certificate errors and success

* Decouple app config from core process through interface

* First iteration of core process test

* Mark dtor as override

* Rename attach launch entry

* Add TODO

* Create proxy for process

* Move IPC client to deps

* Fixed warnings

* Reorganize new GUI lib dir structure

* Update includes to reflect new paths

* Reorg GUI tests

* Abstract IPC client

* Refactor about screen

* Fixed .ui warnings

* Remove redundant include

* Fixed typo

* Fixed typos and add spelling

* Fixed misleading function name

* Improve comment

* Improve code coverage for core process

* Remove noisy log line

* Make global const

* Use default dtor

* Use vector instead of new

* Make ctor explicit

* Make ctor explicit (2)

* Use enum class

* Fixed bad enum

* Stub out core tool

* Stub out dir operation

* Extract byte functions

* Add missing return path

* Simplify byte/int functions

* Fix truncation

* Use ctor member assignment

* Fixed segfault in process proxy

* Fixed print warning

* Make function const

* Cleanup header

* Fixed missing name

* Update ChangeLog

* Make more functions const
2024-08-07 15:05:18 +01:00
Nick Bolton
157fe818d8
Refactor local/global save/load and show dev thanks message (#7423)
* WIP: Show dev thanks message

* Improve error messages and guard license code

* Print core command

* Allow license tests when licensing disabled by default

* Don't check invalid serial key

* Fixed typo

* Add error checking

* Use shared ptr instead of static deps

* Actually save and load the setting

* Add dev thanks vars to CI

* Show thanks message after connected

* Refactor hack-job of local/global save/load to remove coupling and use Qt events system

* Simplify config loading

* Overloads for optionals

* Fixed global config scope not loaded

* Save message state before showing to avoid multiple messages

* Update ChangeLog

* Fixed lint warnings

* Make function const

* Reduce verbosity

* Remove dead code, show version on start, tidy up lint warnings

* Make product name code safer

* Connect on enter press

* Only show server specific wording when on server

* Add emit commands

* Log info and error

* Remove deaad code

* Remove test member

* Disable start context menu action unless usable

* Show more relvant connect message

* Fixed close to tray not applied, and simplified restart core logic

* Remove redundant include
2024-08-03 01:17:29 +01:00
Nick Bolton
e0c08852bf
Handle empty value for computer name setting (#7422)
* Handle empty value for computer name setting

* Remove stray include

* Move load screen name to scoped settings

* Update ChangeLog
2024-08-02 10:54:02 +01:00
Nick Bolton
9eeb1cb7ee
Introduce 'Advanced' tab to Preferences window (#7419)
* Add QML and QtQuick deps

* Keep only Qt declarative

* Fixed delcarative package name

* Use `qt6-qtdeclarative` on OpenSUSE

* Fixed warnings

* Introduce tabs for settings and make some settings easier to understand

* Further reorganization of settings UI

* Revert config.yml

* Show Qt version in config

* Remove custom font

* Improve wording of elevate privs

* Fixed window sizes and default tabs

* Save main window size and position

* Fixed slot warning

* Fixed hacky use of validators

* Make activation cancel more intuitive

* Save window state in dtor and add try-catch to prevent exceptions propagating

* Fixed consistency of fatal messages

* Improve color conssitency and add tooltip

* Clean up styles and weird layout

* Move config files to new gui lib

* Core interface integ tests

* Rename `Config` to `ConfigScopes`

* Add 'Schoeneman' to cspell

* Fixed incorrect `Config` (should be `ConfigScopes`)

* Fixed typo

* Missed a spot

* Delete accidentally re-added file

* Fixed formatting

* Add short opt

* Coverage for `AppConfig`

* Update ChangeLog

* Remove redundant includes

* Fixed date

* Remove rogue include
2024-08-01 01:13:01 +01:00
Nick Bolton
9315b089c8
Improve UI design and reduce over-use of #ifdef (#7413)
* 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
2024-07-26 23:53:52 +01:00
Nick Bolton
ce3f8869e7
Reduce GUI compile time by building a GUI library (#7412)
* 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
2024-07-23 20:17:40 +01:00