Commit graph

773 commits

Author SHA1 Message Date
Nick Bolton
62ccb543dc feat(ipc): Core IPC server and connected client 2026-04-07 13:09:29 +01:00
Nick Bolton
1ec36645e1 refactor(ipc): Abstract IPC client logic 2026-04-07 13:09:29 +01:00
sithlord48
d8e9ac27f5 refactor: Messages::showNewClientPrompt check if server auth is needed when the message is shown not in the signal 2026-04-07 11:09:58 +01:00
sithlord48
047451696a refactor: Messages::showFirstConnectionMessage check the settings for the values 2026-04-07 11:09:58 +01:00
sithlord48
632b64f12f chore: MainWindow remove unused forward declariations 2026-04-07 11:09:58 +01:00
sithlord48
6a1e8f3edb chore: remove unused QMessageBox includes and Foward Declaration 2026-04-07 11:09:58 +01:00
sithlord48
5536f98da3 fix(LogDock): Scroll the log widget to the bottom if the log is visible and the find widget is not expanded when appending new log lines
fixes: #9622
2026-04-02 12:26:13 +01:00
sithlord48
b17883618c feat(LogWidget): new scrollToBottom method to scroll the log to to the bottom 2026-04-02 12:26:13 +01:00
sithlord48
4f377d97ff feat(SearchWidget): new isExpanded method true when widget is showing the find line 2026-04-02 12:26:13 +01:00
sithlord48
15bae79bf4 refactor: correctly use [[maybe_unused]] 2026-03-30 10:36:15 +01:00
sithlord48
1565971479 feat: show connection retry status in status area 2026-03-26 06:25:22 -04:00
sithlord48
468c3b76de feat: backoff retry after number of retries 2026-03-26 06:25:22 -04:00
Luiz Sardinha
abfcc59f22 fix: prevent daemon ipc client from sending multiple messages at the same time 2026-03-20 13:01:47 +00:00
Jason Mitchell
c6544dd4eb fix: plus key as hotkey support 2026-03-20 12:37:03 +00:00
sithlord48
abaf233a07 fix: adjust command line size to allow expanding 2026-03-19 10:41:22 +00:00
Nick Bolton
b251c98a4e fix: kill core orphan on gui death (linux) 2026-03-16 09:38:14 -04:00
sithlord48
23c8496e24 feat: allow users to run a script on entry or exit of a screen 2026-03-16 12:33:45 +00:00
sithlord48
7126f31d3f fix: do not reset network if old interface is missing
fixes: #9552
2026-03-12 10:24:20 +00:00
sithlord48
90e79dad75 refactor: SettingsDialog update ux for initial window state 2026-03-06 13:38:30 +00:00
sithlord48
8f8874370e refactor: SettingsDialog adjust wording of close to tray option 2026-03-06 13:38:30 +00:00
sithlord48
3d67865ffc refactor: SettingsDialog, new Window Behavior tab 2026-03-06 13:38:30 +00:00
sithlord48
22a303842e refactor: Settings Dialog Vertically center contents 2026-03-06 13:38:30 +00:00
sithlord48
2b379b31cd refactor: SettingsDialog adjust tab layout to have consistant top and bottom margins 2026-03-02 06:31:21 -05:00
sithlord48
8bb23179c4 refactor: SettingsDialog, adjust tray icon style layout 2026-03-02 06:31:21 -05:00
sithlord48
a8588ab507 refactor: SettingsDialog, Fix missing spacing in language combobox with some widget sets 2026-03-02 06:31:21 -05:00
Luiz Sardinha
7743d9008d refactor: checking for server config files read permissions upon start 2026-02-27 16:21:40 -05:00
Luiz Sardinha
d8c7367900 fix: visual error if core start emit errors that modify start/restart visibility 2026-02-27 16:21:40 -05:00
sithlord48
fc1f3b0142 fix: macOS flicker when menu is first clicked if the app is set to autohide on startup
fixes: #9523
2026-02-27 12:25:14 +00:00
sithlord48
814d63af28 refactor: MainWindow::EvenFilter set keyEvent in if only 2026-02-27 12:25:14 +00:00
sithlord48
a9bfcf3c81 refactor: SettingsDialog remove minimum size from vertial spacer on network page 2026-02-26 13:10:24 +00:00
sithlord48
fb8104ff86 fix: security icon not being set for clients
fixes: #9524
2026-02-26 13:10:24 +00:00
sithlord48
a0a28e7a94 chore: remove untriggerable wayland warnings 2026-02-26 12:52:03 +00:00
sithlord48
9188d4b1c1 build: require libportal 0.9.1 2026-02-26 12:52:03 +00:00
sithlord48
c0692b6fc7 refactor: remove messages::showClientError, fix mainwindow calling showandactive for non error messages 2026-02-24 17:06:17 +00:00
sithlord48
47ed13868f refactor: ScreenSetupView remove unneeded include 2026-02-24 16:10:01 +00:00
sithlord48
09d4b1a27a refactor: Forward Declare more in gui/validators classes 2026-02-24 16:10:01 +00:00
sithlord48
4e641adae9 refactor: ComputerNameValidator define regex static where used 2026-02-24 16:10:01 +00:00
sithlord48
568f5c7fc5 refactor: SpacesValidator, use QChar::Space 2026-02-24 16:10:01 +00:00
sithlord48
a0ac24a42c refactor: NewScreenWidget::mousePressEvent remove remove unused arg 2026-02-24 16:10:01 +00:00
sithlord48
f69bd5601c refactor: make NetworkMonitor::validAddresses static 2026-02-24 16:10:01 +00:00
sithlord48
b4dbce385c refactor: Mainwindow: prevent core from running while editing the host name 2026-02-24 15:57:22 +00:00
sithlord48
9aeb04b4a6 refactor: MainWindow do not allow the computer name to be edited if the core is running 2026-02-24 15:57:22 +00:00
sithlord48
3db4c60155 refactor: MainWindow add canRunCore method 2026-02-24 15:57:22 +00:00
sithlord48
5ea8874583 refactor: move all status bar items to new status bar widget 2026-02-23 21:48:17 +00:00
sithlord48
07de9efe7c refactor: CoreProcess add signal for when the security level text changes 2026-02-23 21:48:17 +00:00
sithlord48
c791135160 refactor: move CoreProcess::ProcessState => common/Enums deskflow::core::ProcessState 2026-02-23 21:48:17 +00:00
sithlord48
79fdf3a1f6 refactor: mv CoreProcess::ConnectionState -> common/Enums deskflow::core::ConnectionState 2026-02-23 21:48:17 +00:00
sithlord48
76353eceb3 refactor: NetworkMonitor::validAddresses filter our based on humanreadable and add vEth for windows wsl to ignore list 2026-02-23 21:24:56 +00:00
sithlord48
fb60189078 feat: NetworkMointor::validAddresses, return the useable ip4 and ip6 address 2026-02-23 21:24:56 +00:00
sithlord48
3c140ed479 chore: rename NetworkMonitor::getAvalibleIpv4Addresses => NetworkMonitor::validAddresses 2026-02-23 21:24:56 +00:00
sithlord48
033e5530c3 refactor: remove the generic connection and hostname failures dialog
this dialog has been the cause of alot of confusion,
it will almost always show up incorrectly at least once when connecting a new client
if you accept the client side dialog before adding the screen to the server
fixes: #9497
2026-02-23 21:03:48 +00:00
sithlord48
692f43d8af refactor: SettingsDialog hide Advanced tab for portable version on windows 2026-02-21 07:56:47 +00:00
sithlord48
263a23fcaa fix: Settings dialog blocking return to Automatic
fixes:# 9501
2026-02-21 07:56:47 +00:00
sithlord48
1ca8695659 fix: Read fingerprint data before applying the initial config to prevent the fingerprint from being empty making the button hidden
fixes: #9483
2026-02-18 15:26:17 +00:00
sithlord48
6ccef50b7c refactor: SettingsDialog, hide advanced tab when running on macos 2026-02-17 13:41:47 +00:00
sithlord48
d7fb9bc6d2 refactor: SettingsDialog, move language to General 2026-02-17 13:41:47 +00:00
sithlord48
41197334f0 refactor: SettingsDialog move network items to own tab 2026-02-17 13:41:47 +00:00
sithlord48
74c25fdff6 refactor: SettingsDialog rename regular tab to general 2026-02-17 13:41:47 +00:00
sithlord48
f6348736e8 refactor: SettingsDialog, move Log settings to own tab 2026-02-17 13:41:47 +00:00
sithlord48
208556b5aa refactor: SettingsDialog, add reset to default button 2026-02-17 13:41:47 +00:00
sithlord48
58963de10f refactor: SettingsDialog add a reset button for settings, and tooltips for the buttonbox buttons 2026-02-17 13:41:47 +00:00
sithlord48
457c31fbaf refactor: SettingsDialog only allow save if modified 2026-02-17 13:41:47 +00:00
sithlord48
690d6a67ef refactor: SettingsDialog, no longer need coreProccess in the settings dialog 2026-02-17 13:41:47 +00:00
sithlord48
042abd699d feat: support horizontal scroll modifiers 2026-02-16 12:45:03 +00:00
sithlord48
f6b1546f8b refactor: use a client config dialog for client options 2026-02-16 12:45:03 +00:00
sithlord48
2cc19c9f1e refactor: rename Settings::Client::InvertScrollDirection -> Settings::Client::InvertYScroll 2026-02-16 12:45:03 +00:00
sithlord48
329cf07275 chore: MainWindow use Connect to to label the client host text entry 2026-02-16 12:45:03 +00:00
sithlord48
3c6aa9999b refactor: MainWindow updateModeControls no longer takes a bool just check the process mode 2026-02-16 11:40:08 +00:00
sithlord48
19724e3b69 fix: enable m_actionStopCore based on cores state 2026-02-16 11:40:08 +00:00
sithlord48
b96619d726 refactor: prevent modecontrols from being updated twice on startup.
Apply config should toggle the core mode to ensure the labels and mode is set correctly post config
2026-02-16 11:40:08 +00:00
sithlord48
c9aaeaee2a refactor: MainWindow::CoreModeToggle set the new core mode here not updateModeControls 2026-02-16 11:40:08 +00:00
sithlord48
1b6def23d8 refactor: MainWindow::CoreModeToggle, use CoreMode type internally 2026-02-16 11:40:08 +00:00
sithlord48
c1172ab8b5 refactor: MainWindow only act on when the rb for mode is Checked, this prevents doing the full coreModeToggled twice when changing modes 2026-02-16 11:40:08 +00:00
sithlord48
611a3300ba refactor: do not return true when checking physical ip is private or not return if a was private 2026-02-12 17:16:32 +00:00
sithlord48
64c104a5c2 refactor: include a point 2 point check when checking if an interface is virtual 2026-02-12 17:16:32 +00:00
sithlord48
f9857e102a fix: NetworkMonitor virtual sorting
fixes: #9459
make NetworkMonitor::isVirtualInterface a static member of NetworkMonitor
write tests for NetworkMonitor
2026-02-12 17:16:32 +00:00
sithlord48
1c99736c16 refactor: SettingsDialog, scroll scale spinbox remove wraping and make step size .1 2026-02-09 09:02:21 +00:00
sithlord48
5e8a6f0bcb fix: vertical scroll scaling on all platforms
fixes: #9120
2026-02-06 12:51:39 +00:00
sithlord48
be4e861604 feat: use Computer in settings to replace name
provide Settings::upgradeSettings to upgrade the screenName -> computerName
Make a note to remove "ScreenName" for 2.0
2026-02-03 18:55:17 +00:00
sithlord48
dbed37e9ba refactor: networkprotocol, add string / enum conversion methods use them in config and elsewhere 2026-01-26 13:30:24 +00:00
sithlord48
973cc76927 chore: remove unused gui/CommandProcess 2026-01-26 11:33:13 +00:00
sithlord48
c7a427a94c fix: gui crash on clearsettings in debug mode
fixes: #9369
replaces: #9373
2026-01-22 12:51:34 +00:00
sithlord48
c63fd21c8e feat: Add a setting to allow the version to be shown in the windows title
fixes: #8538
replaces: #9351
2026-01-20 00:06:49 +00:00
sithlord48
7a2ceeedf4 refactor: Remove unneeded QVariant() when setting a setting empty to be removed 2026-01-19 22:54:53 +00:00
sithlord48
b25f083433 refactor: use Settings::value().toString().isEmpty() to check for empty setting values. This is because QVariant::isNull() no longer returns the internal types isNull() method. As a results "" is a non Null QVariant 2026-01-19 22:54:53 +00:00
sithlord48
d193af8cc8 feat: Add New Search Widget, use in the log
fixes: #8332
replaces: #9354
2026-01-19 22:39:11 +00:00
re2zero
bb88bd8695 refactor: remove unneeded QIcon when setting from theme
explict cast when setting update url
2026-01-19 21:55:40 +00:00
sithlord48
aca274e9ee refactor: add (C) to copyright header where missing 2026-01-18 15:38:59 +00:00
Ashutosh0x
e5e53c02b5 Fix: Allow comma and semicolon in hotkey config (#7130) 2026-01-17 14:14:31 +00:00
sithlord48
7f57d53494 refactor: CoreProcess use FileTail::setWatchedFile if the file to tail changes 2026-01-12 11:18:40 +00:00
sithlord48
5e61a2b5ce refactor: new FileTail::setWatchedFile 2026-01-12 11:18:40 +00:00
sithlord48
2da14c3da3 fix: Coreprocess will attempt to create a daemon log before returning the path if it does not exist 2026-01-12 11:18:40 +00:00
sithlord48
09c1bd1582 refactor: MainWindow, unify how Automatic and Fixed Ip are displayed 2026-01-05 12:06:20 +00:00
sithlord48
d324dd1a93 refactor: MainWindow::updateIpLabel, simplify IPValid checks 2026-01-05 12:06:20 +00:00
sithlord48
889689bd8e fix: MainWindow, IpLabel Only now NoIP Detected if we are not running or started with no address 2026-01-05 12:06:20 +00:00
sithlord48
844ebf5216 refactor: Remove need for NetworkMonitor::getSuggestedIpAddress. Its always first if there is data 2026-01-05 12:06:20 +00:00
sithlord48
ae9ca35448 refactor: NetworkMonitor: use QStrings
allows us to simplify alot of the code around the lists and lets us also fliter lists easily

update copyright for 2026, add missing deskflow devlopers for mainwindow for 2025 work
2026-01-05 12:06:20 +00:00
sithlord48
61fcad2c14 refactor: MainWindow::updateIpLabel, remove single use vars 2026-01-02 11:43:34 +00:00
sithlord48
a84e91a3f2 refactor: Mainwindow::updateIpLabel return early if we are using fixedIp from settings 2026-01-02 11:43:34 +00:00
sithlord48
c2314ad893 refactor: MainWindow, remove m_currentIPValid by reducing its scope to the method where its used 2026-01-02 11:43:34 +00:00
sithlord48
1973005e98 refactor: MainWindow, simplify ip update if core is not running 2026-01-02 11:43:34 +00:00
sithlord48
00235ba189 refactor: NetworkMonitor, use ranged sort for ip ranges 2026-01-02 11:43:34 +00:00
sithlord48
495277c7c9 refactor: NetworkMonitor, use isLocalLink to check for 169.254/16 range 2026-01-02 11:43:34 +00:00
sithlord48
a73057f3a7 refactor: NetworkMonitor, short phyical using isPrivateUse()
this an Ip is considered private when its in a RFC1918 range
10/8, 172.16/12 and 192.168/16 are private IPs
2026-01-02 11:43:34 +00:00
sithlord48
a0f06d907f refactor: NetworkMonitor, set m_isMonitoring initial state in header 2026-01-02 11:43:34 +00:00
Nick Bolton
3d8cf17d57 chore: gui Remove custom tab stops from settings dialog and use default 2025-12-30 18:31:05 +00:00
Nick Bolton
ca418b3ba5 chore: gui, Improve log message for disabled update check 2025-12-30 18:31:05 +00:00
Nick Bolton
189053697b refactor: Log server response on version check error
Qt `errorString()` only contains the error code and error text, but not the response body. And, in HTTP/2 the error string is gone but the error is still printed like it's there: https://bugreports.qt.io/browse/QTBUG-140126
2025-12-30 18:31:05 +00:00
Nick Bolton
e674d8b27c refactor: Rename setting Settings::Core::UpdateUrl => Settings::Gui::UpdateCheckUrl 2025-12-30 18:31:05 +00:00
sithlord48
7682e17afe refactor: Move src/lib/Config => src/lib/platform/XWindowsConfig
This file is used only in XWindows related platform code.
2025-12-30 17:22:00 +00:00
sithlord48
163ec18730 refactor: VersionInfo is now part of common 2025-12-30 17:22:00 +00:00
sithlord48
d27fd22d8f refactor: SettingsDialog adjust network section so IP is on left and port is on right 2025-12-30 17:03:47 +00:00
re2zero
cbebaad3b8 feat: add network monitoring and IP address management
- introduce NetworkMonitor class to track network addresses change
- replace QLineEdit with QComboBox for interface selection in settings
- implement automatic IP detection and suggestion logic
- add signal-slot connections for real-time network updates

Log: add network monitoring and IP address management.
2025-12-30 17:03:47 +00:00
sithlord48
9976caafab refactor: LineEditValidator only call errorMessage::isEmpty once 2025-12-30 12:58:11 +00:00
sithlord48
530bcad8a6 chore: remove unused gui/Styles 2025-12-30 12:58:11 +00:00
sithlord48
949913cd6e refactor: use crimson for the error color 2025-12-30 12:58:11 +00:00
sithlord48
1855d33e1f refactor: ValidationError, use palette to set the colors used 2025-12-30 12:58:11 +00:00
sithlord48
ccd40c2927 refactor: validatorError::setMessage return early 2025-12-30 12:58:11 +00:00
sithlord48
6851046c5a refactor: validatorError, make clear a private method 2025-12-30 12:58:11 +00:00
sithlord48
1a9316150d refactor: ValidatorError, m_pLabel -> m_label 2025-12-30 12:58:11 +00:00
sithlord48
b56dd3f387 chore: ValidatorError, create explicit private section 2025-12-30 12:58:11 +00:00
sithlord48
2cbe2c65e8 refactor: screenSettingsDialog, do not set the initial style for name alias lineedits 2025-12-30 12:58:11 +00:00
sithlord48
b8b7799a47 refactor: LineEditValidator, adjust border style based on the Qt Style in use 2025-12-30 12:58:11 +00:00
sithlord48
2b8e7fa6b2 refactor: screensetting dialog, adjust spacers for dead corners 2025-12-30 12:58:11 +00:00
sithlord48
fdb5405e2c refactor: use system color for hyperlinks 2025-12-24 11:23:13 +00:00
sithlord48
0c440843b0 chore: replace deskflow::gui::style::kColorWhite with the svg color white 2025-12-24 11:23:13 +00:00
sithlord48
caf77fe342 chore: remove unused deskflow::gui::style::kLightGreyColor 2025-12-24 11:23:13 +00:00
enzious
b432cbc145 fix: error on start shows gui
do not show client errors if the windows is not visible
2025-12-23 13:28:02 +00:00
sithlord48
2a54f57532 chore: add Q_OBJECT macro to Validators with translations 2025-12-18 13:10:09 +00:00
sithlord48
cb4621cad7 chore: SecureUtils::generatePemSelfSignedCert take QString for path 2025-12-08 11:24:36 +00:00
sithlord48
b151666f6b refactor: I18N use short (ISO639) names to save and load not native strings, the documentation says we use these already 2025-12-04 08:27:59 -05:00
sithlord48
d1e2865319 fix: macOS not showing Colorful icon
fixes: #9255
2025-12-04 11:09:59 +00:00
sithlord48
e5513101a6 refactor: Use the Settings::Gui::AutoStartCore to control if the Gui should start the core when starting up
removes Settings::Core::StartedBefore
2025-12-02 08:19:46 -05:00
sithlord48
df78f0757e refactor: Gui control if the server first shown message is shown with its own setting 2025-12-02 08:19:46 -05:00
sithlord48
8e8ab25fd0 refactor: use Settings::Gui::ShownFirstConnectionMessage to control message popup on initial connection a to client / server 2025-12-02 08:19:46 -05:00
sithlord48
13219ca49c fix: only restore the size if the windows was in the tray
fixes: #9237
2025-12-01 08:39:01 -05:00
sithlord48
0446db93e6 refactor: handle error suppression in gui not message stack 2025-12-01 08:39:01 -05:00
sithlord48
7831ba293a fix: Mac os Preferences missing when translated
fixes: #9226
In the MainWindow give all menu items a role to prevent mac os from misplacing them due to their label when translated
2025-11-30 10:14:46 -05:00
sithlord48
c1b5e125b0 refactor: ServerConnection: keep track of ignored clients so we only prompt for them once 2025-11-30 09:31:08 -05:00
sithlord48
accb9d9c59 refactor: ServerConnection: Handle the new client via signals
Use QtTests now that we can for ServerConnnecitonTests
2025-11-30 09:31:08 -05:00
sithlord48
11fa5d636e refactor: ServerConnection return a bool for the results of the newClientPrompt no Enum needed 2025-11-30 09:31:08 -05:00
sithlord48
cca6f80cb5 refactor: ClientConnection, use signal to ask for dialog
move ClientConnectionTests to Qt Tests
track if the dialog is open in the gui
track suppression in clientConnection based on connect / disconnect message
2025-11-30 14:13:35 +00:00
sithlord48
1ebcab60e2 refactor: Move messages client connection error to common, new common/Enums 2025-11-30 14:13:35 +00:00
sithlord48
2485916ad1 refactor: new signal ClientConnection::requestShowError 2025-11-30 14:13:35 +00:00
sithlord48
5287c51957 refactor: clearer ClientConnection::showMesssage logic 2025-11-30 14:13:35 +00:00
sithlord48
695dc04c00 refactor: new ClientError::NoError 2025-11-30 14:13:35 +00:00
PseudoResonance
d35716f574 feat: Configure default screen lock state
fixes: #7907
2025-11-27 08:22:13 -05:00
sithlord48
4cb184989c refactor: TlsUtility::isCertValid we only use RSA keys for now 2025-11-27 08:05:04 -05:00
sithlord48
ff02285a6a refactor: move SecureUtils::getCertLength -> TlsUtility, and use Qt to get the length of the key file 2025-11-27 08:05:04 -05:00
sithlord48
2dfba73cfb refactor: use QCryptographicHash::Algorithm in place of Fingerprint::Type 2025-11-27 08:05:04 -05:00