diff --git a/src/lib/arch/IArchFile.h b/src/lib/arch/IArchFile.h index f9ca59976..46f9a48b4 100644 --- a/src/lib/arch/IArchFile.h +++ b/src/lib/arch/IArchFile.h @@ -21,12 +21,6 @@ public: //! @name manipulators //@{ - //! Extract base name - /*! - Find the base name in the given \c pathname. - */ - virtual const char *getBasename(const char *pathname) = 0; - //! Get installed directory /*! Returns the directory in which Deskflow is installed. diff --git a/src/lib/arch/unix/ArchFileUnix.cpp b/src/lib/arch/unix/ArchFileUnix.cpp index 8f3280bfa..74ac4a874 100644 --- a/src/lib/arch/unix/ArchFileUnix.cpp +++ b/src/lib/arch/unix/ArchFileUnix.cpp @@ -29,20 +29,6 @@ ArchFileUnix::~ArchFileUnix() // do nothing } -const char *ArchFileUnix::getBasename(const char *pathname) -{ - if (pathname == NULL) { - return NULL; - } - - const char *basename = strrchr(pathname, '/'); - if (basename != NULL) { - return basename + 1; - } else { - return pathname; - } -} - std::string ArchFileUnix::getInstalledDirectory() { #if WINAPI_XWINDOWS diff --git a/src/lib/arch/unix/ArchFileUnix.h b/src/lib/arch/unix/ArchFileUnix.h index fcde1b8a2..78b20c860 100644 --- a/src/lib/arch/unix/ArchFileUnix.h +++ b/src/lib/arch/unix/ArchFileUnix.h @@ -19,6 +19,5 @@ public: virtual ~ArchFileUnix(); // IArchFile overrides - virtual const char *getBasename(const char *pathname); virtual std::string getInstalledDirectory(); }; diff --git a/src/lib/arch/win32/ArchFileWindows.cpp b/src/lib/arch/win32/ArchFileWindows.cpp index 0301152ad..d74894129 100644 --- a/src/lib/arch/win32/ArchFileWindows.cpp +++ b/src/lib/arch/win32/ArchFileWindows.cpp @@ -27,29 +27,6 @@ ArchFileWindows::~ArchFileWindows() // do nothing } -const char *ArchFileWindows::getBasename(const char *pathname) -{ - if (pathname == NULL) { - return NULL; - } - - // check for last slash - const char *basename = strrchr(pathname, '/'); - if (basename != NULL) { - ++basename; - } else { - basename = pathname; - } - - // check for last backslash - const char *basename2 = strrchr(pathname, '\\'); - if (basename2 != NULL && basename2 > basename) { - basename = basename2 + 1; - } - - return basename; -} - std::string ArchFileWindows::getInstalledDirectory() { char fileNameBuffer[MAX_PATH]; diff --git a/src/lib/arch/win32/ArchFileWindows.h b/src/lib/arch/win32/ArchFileWindows.h index c8d0d5ea3..5a7304562 100644 --- a/src/lib/arch/win32/ArchFileWindows.h +++ b/src/lib/arch/win32/ArchFileWindows.h @@ -19,6 +19,5 @@ public: virtual ~ArchFileWindows(); // IArchFile overrides - virtual const char *getBasename(const char *pathname); virtual std::string getInstalledDirectory(); }; diff --git a/src/lib/deskflow/ArgParser.cpp b/src/lib/deskflow/ArgParser.cpp index bc0b1faf4..09ea16234 100644 --- a/src/lib/deskflow/ArgParser.cpp +++ b/src/lib/deskflow/ArgParser.cpp @@ -16,6 +16,8 @@ #include #endif +#include + deskflow::ArgsBase *ArgParser::m_argsBase = nullptr; ArgParser::ArgParser(App *app) : m_app(app) @@ -388,7 +390,7 @@ ArgParser::assembleCommand(std::vector &argsArray, std::string igno void ArgParser::updateCommonArgs(const char *const *argv) { argsBase().m_name = ARCH->getHostName(); - argsBase().m_pname = ARCH->getBasename(argv[0]); + argsBase().m_pname = QFileInfo(argv[0]).fileName().toLocal8Bit().constData(); } bool ArgParser::checkUnexpectedArgs() diff --git a/src/lib/deskflow/CMakeLists.txt b/src/lib/deskflow/CMakeLists.txt index 98d48524e..15373c731 100644 --- a/src/lib/deskflow/CMakeLists.txt +++ b/src/lib/deskflow/CMakeLists.txt @@ -147,7 +147,7 @@ add_library(${lib_name} STATIC ${PLATFORM_CODE} ipc/DaemonIpcServer.h ) -target_link_libraries(${lib_name} PRIVATE Qt6::Core Qt6::Network) +target_link_libraries(${lib_name} PUBLIC Qt6::Core Qt6::Network) if(WIN32) target_compile_definitions(${lib_name} PUBLIC HAVE_WINTOAST) diff --git a/src/lib/deskflow/ClientApp.cpp b/src/lib/deskflow/ClientApp.cpp index 538603c4d..7883f8143 100644 --- a/src/lib/deskflow/ClientApp.cpp +++ b/src/lib/deskflow/ClientApp.cpp @@ -33,6 +33,8 @@ #include "platform/MSWindowsScreen.h" #endif +#include // Must include before XWindowsScreen to avoid conflicts with xlib.h + #if WINAPI_XWINDOWS #include "platform/XWindowsScreen.h" #endif @@ -504,7 +506,7 @@ int ClientApp::runInner(int argc, char **argv, StartupFunc startup) { // general initialization m_serverAddress = new NetworkAddress; - args().m_pname = ARCH->getBasename(argv[0]); + args().m_pname = QFileInfo(argv[0]).fileName().toLocal8Bit().constData(); int result; try { diff --git a/src/lib/deskflow/ServerApp.cpp b/src/lib/deskflow/ServerApp.cpp index cbf89d28e..ca4785a10 100644 --- a/src/lib/deskflow/ServerApp.cpp +++ b/src/lib/deskflow/ServerApp.cpp @@ -58,6 +58,8 @@ #include "mt/Thread.h" #endif +#include + #include #include #include @@ -775,7 +777,7 @@ int ServerApp::runInner(int argc, char **argv, StartupFunc startup) // general initialization m_deskflowAddress = new NetworkAddress; args().m_config = std::make_shared(m_events); - args().m_pname = ARCH->getBasename(argv[0]); + args().m_pname = QFileInfo(argv[0]).fileName().toLocal8Bit().constData(); // run int result = startup(argc, argv);