Features
- added ci builds for windows arm64
- add restart action fixes [#8542] #8650 (sithlord48)
- remove defunct --no-xinitThreads option #8679 (sithlord48)
- improve connections status bar info #8690 (sithlord48)
- Enforce a minimum TLS size of 2048bit #8671 (sithlord48)
- Wayland, only set a side to a border if if has a neighboring screen #8749 (sithlord48)
- windows/installer add option to run deskflow after install for silent installs fixes [#8351] #8751 (sithlord48)
Bug Fixes
- (ui), ServerConfigDialog enable spinboxes and controls that depend on another option being enabled example being the heatbeat spinbox if heatbeat is enabled #8644 (sithlord48)
- core not starting if gui started minimized, remove firstShown and use open instead #8643 (sithlord48)
- Error text is not shown for Qt CLI parser #8692 (Nick Bolton)
- typo in configuration.md #8705 (Stephen Fluin)
- save geometry not frameGeometry on exit #8743 (sithlord48)
- adjust windows installer images and their sizes, remove synergy background image from install fixes [#8754] #8751 (sithlord48)
- setWindowIcon explicitly, fixes [#8756] #8764 (sithlord48)
- split version info in new header #8765 (sithlord48)
Documentation
- add development docs #8663 (sithlord48)
- Re-introduce chat links to grow community #8669 (Nick Bolton)
- fix broken link to 'Protocol Reference' #8720 (laz-001)
- fix missing refs warnings #8724 (laz-001)
- remove checkboxes for client impl list #8726 (sithlord48)
- update DOT_MAX_NODES to 100 for Log.h node generation #8726 (sithlord48)
- remove sonar warning about // in comments, within ProtocolTypes.h #8726 (sithlord48)
Code Refactoring
- Mainwindow, rename btnApplySettings to btnRestartCore to better reflect what it does #8650 (sithlord48)
- MainWindow, convert btnSaveServerConfig to QPushButton set the icons size 22x22 only when not on macos, make sure the button is square on macos #8655 (sithlord48)
- messages::showErrorDialog, use app name in title #8661 (sithlord48)
- messages::showCloseReminder #8661 (sithlord48)
- Messages::showFirstServerStartMessage #8661 (sithlord48)
- Messages::showFirstConnectedMessage #8661 (sithlord48)
- Messages::showNewClientPrompt enable translations #8661 (sithlord48)
- Messages::showClientConnectError #8661 (sithlord48)
- Message::showClearSettings, enable translations and simplify method #8661 (sithlord48)
- messages::showReadOnlySettings, use name in title, enable translations #8661 (sithlord48)
- message::showWaylandLibaryError, use name in the title and enable translations #8661 (sithlord48)
- messages::showUpdateCheckOption enable translation #8661 (sithlord48)
- messages::showDaemonOffline enable translations #8661 (sithlord48)
- remove anon namespace before ServerConfig::addToFirstEmptyGrid #8673 (sithlord48)
- Unify ArchSleepClasses into one method #8684 (sithlord48)
- Unify ArchTime classes into one method #8684 (sithlord48)
- handle read and write on tcpsocket at the same time #8675 (sithlord48)
- use std::mutex in place of ArchMutex in AtchMultiThreadPosix #8674 (Povilas Kanapickas)
- use std::mutex in EventQueue #8674 (Povilas Kanapickas)
- use std::mutex in Log #8674 (Povilas Kanapickas)
- use std::mutex in ArchStrings #8674 (Povilas Kanapickas)
- use std::mutex in ArchMutithreadWindows #8674 (sithlord48)
- use std::mutex in ArchNetworkBSD #8674 (sithlord48)
- use std::mutex in ArchNetworkWinSock #8674 (sithlord48)
- use std::mutex in deskflow/PacketStreamFilter #8674 (sithlord48)
- use std::mutex in net/TCPListenSocket #8674 (sithlord48)
- use std::mutex in platform/XWindowsEventQueue #8674 (sithlord48)
- replace ARCH->time() with Arch::time() #8691 (sithlord48)
- replace ARCH->sleep(...) calls with Arch::sleep(...) #8691 (sithlord48)
- use std::scoped_lock inplace of std::lock_guard #8691 (sithlord48)
- use std::function for Event callback #8697 (sithlord48)
- Improve display of names on about screen with nbsp #8702 (Nick Bolton)
- free SecureSocket cert after use #8703 (sithlord48)
- server use std::unique_ptr for socketFactory #8704 (sithlord48)
- secureSocket uniqueprt for Ssl object #8704 (sithlord48)
- App use Uniqueprt for SocketMultiplexer #8704 (sithlord48)
- AboutDialog, Remove lambda for btnClose and connect directly to AboutDialog::close #8706 (sithlord48)
- make ClientApp::handleClientConnected const #8707 (sithlord48)
- make ServerApp::HandleScreenSwitch, Also does not use the Event * so removing it from the methods arguments #8707 (sithlord48)
- ServerConnection::handleLogLine use referance to avoid unneeded copy #8707 (sithlord48)
- make TlsUtility::generatateCertificate and TlsUtility::persistCertificate const #8707 (sithlord48)
- Add a few missing overrides #8707 (sithlord48)
- remove names for unused handle function args #8707 (sithlord48)
- concatenate Namespaces #8707 (sithlord48)
- use contains to find if an item is in a container #8707 (sithlord48)
- remove redundant cast #8707 (sithlord48)
- Settings remove const for return by vaule #8707 (sithlord48)
- remove redundant access specifiers #8707 (sithlord48)
- conform PortalRemoteDesktop to naming standards #8708 (sithlord48)
- conform EiEventQueueBuffer to coding standards #8708 (sithlord48)
- conform EiKeyState to coding standards #8708 (sithlord48)
- conform PortalInputCapture to coding standards #8708 (sithlord48)
- conform EiScreen to code standards #8708 (sithlord48)
- EiScreen sonar adjustments #8708 (sithlord48)
- PortalInputCapture sonar adjustments #8708 (sithlord48)
- PortalInputCapture use std::map to hold signals and enum class as the key #8710 (sithlord48)
- PortalInputCapture, fix a missed non compliant variable names #8710 (sithlord48)
- simplify setting the fallback theme search path, does require sub dirs but we should only need the theme root #8718 (sithlord48)
- remove XBASE related macros, fixes [#8723] #8726 (sithlord48)
- XSocket, new XSocketWithWhat subclass used to reduce duplication in XSocket subclasses that have a common with method #8726 (sithlord48)
- make ESignal an enum Class IArchMultiThread::ThreadSignal, conform ThreadSignal items to naming conventions #8732 (sithlord48)
- Make IArchNetwork::EAddressFamily enum class IArchNetwork::AddressFamily #8732 (sithlord48)
- make EStreamType enum Class StreamType, and conform members to naming conventions #8732 (sithlord48)
- IArchNetwork turn anonymous enum into PollEventMask struct with set of static values #8732 (sithlord48)
- use
using enum EventTypes
when possible to reduce verbosity #8732 (sithlord48) - Make throwError and throwNameError members of IArchNetwork #8732 (sithlord48)
- ServerApp use if in places of multi ternary ops for readablitly #8732 (sithlord48)
- ScreenSettingsDialog, do not create nested validators in the Lines setValidator method #8738 (sithlord48)
- PortalInputCapture: do not create nested pointer in new Thread call #8738 (sithlord48)
- PortalRemoteDesktop, do not create nested pointer in new Thread call #8738 (sithlord48)
- SocketMultiplexer, do not create nested pointer in new Thread call #8738 (sithlord48)
- Make KeyMake::Swap noexcept #8738 (sithlord48)
- PriorityQueue::Swap make noexcept #8738 (sithlord48)
- app Replace options defines as constexpr use more sane names #8738 (sithlord48)
- ClientApp Replace RETRY_TIME define with constexpr #8738 (sithlord48)
- ClipboardChunk Replace CLIPBOARD_CHUNK_META_SIZE define with constexpr #8738 (sithlord48)
- XWindowsEventQueueBuffer, use static const for timeoutd delay #8738 (sithlord48)
- ProtocolTypes EDataReceived => enum class ProtocolTypes::TransferState #8738 (sithlord48)
- ProtocolTypes EDataTransfer => struct ProtocolTypes::ChunkType #8738 (sithlord48)
- ProtocolTypes EDirectionMask => enum class DirectionMask #8738 (sithlord48)
- ProtocolTypes EDirection => enum class Direction #8738 (sithlord48)
- Server::onMouseMousePrimary, use std array for horizontal and vertical direction array #8738 (sithlord48)
- use more if and switch init-statements #8738 (sithlord48)
- Elevel => LogLevel enum class, use proper names for items in the class #8744 (sithlord48)
- replace throw() with noexcept in cases where execeptions are not possible #8744 (sithlord48)
- Make IEventQueueBuffer Types an enum class, use proper names rename kNone => Unknown to reflect its unknowns an unknown type of event #8744 (sithlord48)
- Event anon enum => EventFlags struct #8744 (sithlord48)
- remove Unneed enum for LogOutputters and use a constexp instead #8744 (sithlord48)
- ServerProxy::EResult => ServerProxy::ConnectionResult enum class #8744 (sithlord48)
- Common.h replace anon enum with set constexpr exit codes #8744 (sithlord48)
- ArgsBase::Type => ArgsBase::ClassType class enum #8744 (sithlord48)
- remove anon enum in IKeyState and replace with static s_numButtons #8744 (sithlord48)
- TCPSocket::EJobResult => enum class TCPSocket::JobResult #8744 (sithlord48)
- XSocket::EError => XSocket::SocketError enum class #8744 (sithlord48)
- replace anon Enum in XWindowsKeyState with static vars #8744 (sithlord48)
- InputFilter::EFilterStatus => InputFilter::FilterStatus enum class #8744 (sithlord48)
- ActionDialog::ActionType enum is now a struct #8744 (sithlord48)
- anon enum in AddClientDialog to AddAction enum class #8744 (sithlord48)
- FingerPrintDialog::FingerpringDialogMode now enum class #8744 (sithlord48)
- anonymous enum in ServerConfig => ServerConfig::AddResults enum class #8744 (sithlord48)
- use std::size to get size of arrays #8748 (sithlord48)
- App move m_suspended to the subclasses where its is used #8748 (sithlord48)
- TCPSocket, new protected methods to access m_readable, m_writable and m_connected, use them in place of direct access and make the variables private #8748 (sithlord48)
- String, pass stringToSizeType a const ref of the string we are to get the size of #8748 (sithlord48)
- String, use std::ranges::lexicogriphical_compare to simplify CaselessCpm::less #8748 (sithlord48)
- Unicode, declare vars on seperate line as untions, using string_view for UCS2ToUTF8 input, remove redundant parentheses #8748 (sithlord48)
- Settings use Static methods where possible internally #8748 (sithlord48)
- ArgParser, simplify arg parsing by combining duplicate checks into one #8748 (sithlord48)
- ArgParser::parsePlatformArgs remove unused argument isServer #8748 (sithlord48)
- ArgParser::assemble command use const ref std::string_view for ingoreArg #8748 (sithlord48)
- ClientApp indicate msg is unused in update status #8748 (sithlord48)
- DisplayInvalidExecption pass const ref to string #8748 (sithlord48)
- windows write daemon log in ProgramData\Deskflow #8768 (sithlord48)
Builds
- remove unused platform/MSWindowsUtils #8639 (sithlord48)
- unistd.h is manditory on unix platforms #8684 (sithlord48)
- remove never set HAVE_SYS_TYPES #8684 (sithlord48)
- remove unset X_DISPLAY_MISSING checks #8684 (sithlord48)
- remove HAVE_DPMS_PROTOTYPES, Single use and assumed due to another var being set #8684 (sithlord48)
- remove HAVE_PTHREAD_SIGNAL define it was forced on #8684 (sithlord48)
- remove HAVE_SOCKLEN_T forced define #8684 (sithlord48)
- remove HAVE_PTHREAD define as its required on unix #8684 (sithlord48)
- remove HAVE_SYS_SOCKET define should be present on all unix systems #8684 (sithlord48)
- WixPackage, set a proper CPACK_WIX_ARCHITECTURE #8740 (sithlord48)
- generate vcpkg.json on windows #8763 (sithlord48)
- fail sooner on windows / mac if unable to find Qt deploy tool #8763 (sithlord48)
- Windows, run deploy tool only once, use install to install qt depends #8758 (sithlord48)
- windows deploy qt plugins in plugin folder #8758 (sithlord48)
- windows do not deploy dxil.dll or dxcompiler.dll #8758 (sithlord48)
- windows, do not deploy software opengl library #8758 (sithlord48)
Continuous Integration
- remove unused qt-install-dir var #8660 (sithlord48)
- bump Qt for windows / mac builds to 6.9.1 #8660 (sithlord48)
- downgrade Qt for windows to 6.8.3 to avoid random windows ci failures #8668 (sithlord48)
- use johnwason/vcpkg-action@v7 for vcpkg action #8668 (sithlord48)
- allow arch runner to deloy pages #8663 (sithlord48)
- ensure run tests fails if eitehr tests outcome not success' #8712 (sithlord48)
- Add Windows Arm builds #8512 (sithlord48)
- Attempt to release both x64 and arm64 builds for winget #8512 (sithlord48)
- skip CoreProcessTest for windows arm, broken on ci #8512 (sithlord48)
- use Qt 6.9.1 on windows #8760 (sithlord48)
- force ninja update on windows #8751 (sithlord48)
- use Qt 6.9.0 for x64 windows to avoid random build failures with 6.9.1 #8769 (sithlord48)
Chores
- Cleanup windows includes #8639 (sithord48)
- ApputilsUnix, remove unneeded includes #8638 (sithlord48)
- messages, remove unneeded includes #8661 (sithlord48)
- message::fileLine use QStringLiteral, multi-arg #8661 (sithlord48)
- update readme logo to theme aware #8664 (sithlord48)
- correct appstream license to gpl2.0 NOT gpl2.0+ #8667 (sithlord48)
- remove unneeded QGuiApplication, QApplication and or QCoreApplication includes #8668 (sithlord48)
- remove DESKFLOW_RESET_ALL from configuration documentation #8663 (sithlord48)
- move user based documentation into doc/user folder #8663 (sithlord48)
- remove unused StopWatch Includes #8684 (Povilas Kanapickas)
- remove pointless SYS_TIME if defs one is set true and the other never used just include the libs #8684 (sithlord48)
- refresh metainfo.xml #8689 (renner)
- add short options for h for help and v for version in deskflow-gui #8685 (sithlord48)
- Remove 1024 TLS key length option #8671 (Nick Bolton)
- remove handle* methods that are a single oneline forward and use the line directly #8697 (sithlord48)
- add main barrier/input-leap dev to our important devs list #8699 (sithlord48)
- adjust the about dialog default size #8699 (sithlord48)
- remove todo in places where its done or just a note #8707 (sithlord48)
- ArchNetworkBSD:Deps use make_shared now that we dont build on ubuntu 22 anymore #8707 (sithlord48)
- Remove DRAG_AND_DROP left over define #8716 (sithlord48)
- remove unused XSubscription class #8726 (sithlord48)
- remove unused XScreenInputFailure #8726 (sithlord48)
- fix typo in metainfo.xml #8734 (AsciiWolf)
- Arch::time explictly convert to double on return #8732 (sithlord48)
- fix W:useless-whatis-entry lintian warnings #8728 (Kentaro Hayashi)
- comment empty methods that do nothing #8738 (sithlord48)
- clean up remaing sonar warnings to use in class intializers where possible #8738 (sithlord48)
- SecureSocket remove unused MAX_ERROR_SIZE define , rename MAX_INPUT_BUFFER_SIZE static to confirm to naming convention #8738 (sithlord48)
- remove unused < operator for Timer class #8738 (sithlord48)
- add noreturn to more methods #8738 (sithlord48)
- add missing default for switches #8738 (sithlord48)
- ArchNetworkBSD, use std::ignore in place of unused int #8744 (sithlord48)
- remove unused anon enum in SecureSocket #8744 (sithlord48)
- remove dev method PortalInputCapture::fakeEisFd #8749 (sithlord48)
- MainWindow, use system correct monospace font for log #8750 (sithlord48)
- use arrays to group files with same override info in REUSE.toml #8763 (sithlord48)
Commits
- Define QT_NO_KEYWORDS, allowing us to use Qt in more places #8638 (sithlord48)
- 8170dd4: chore use std::getenv Not c style getenv (sithlord48) #8678
- 26cc85e: add protocol developer documentation (laz-001) #8666
- 5d594dd: move even-loop return to the left (laz-001) #8724
- 082d27a: ci :remove EOL fedora 40 builds (sithlord48) #8745
- 422b4c3: refactor ClientArgs ClientScrollDirection to enum class use Members Normal and Inverted for names (sithlord48) #8744
- 181d862: refactor EiEventQueue remove anon enum for a few static members (sithlord48) #8744
- TCPListenSocket, remove duplicate public in header, make m_mutex private #8748 (sithlord48)
- 21d38ff: Revert "ci: force ninja update on windows" (sithlord48) #8750
- 56f7a0d: Release 1.23.0 (sithlord48) #8774