# HG changeset patch # User František Kučera # Date 1567103017 -7200 # Node ID 759edaff1755659d0ff9604239856c2848c765c9 # Parent 52d92c1b340e561aa8057f931a1a8c5143ae65c8 GUI project skeleton diff -r 52d92c1b340e -r 759edaff1755 cadMousePro-gui/CMakeLists.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cadMousePro-gui/CMakeLists.txt Thu Aug 29 20:23:37 2019 +0200 @@ -0,0 +1,3 @@ +project (cadMousePro-gui) +cmake_minimum_required(VERSION 2.8) +add_subdirectory (src) diff -r 52d92c1b340e -r 759edaff1755 cadMousePro-gui/nbproject/configurations.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cadMousePro-gui/nbproject/configurations.xml Thu Aug 29 20:23:37 2019 +0200 @@ -0,0 +1,191 @@ + + + + + + + cadMouseProGUI.cpp + + + + + build/Debug/src/cadMousePro-gui_autogen/S5VNLJ26FI/moc_Proxy.cpp + + build/Debug/src/cadMousePro-gui_autogen/mocs_compilation.cpp + + + /usr/share/cmake-3.10/Modules/CMakeCXXCompilerABI.cpp + /usr/share/cmake-3.10/Modules/CMakeCompilerABI.h + + + CMakeLists.txt + build/Debug/Makefile + build/Release/Makefile + + + ^(nbproject|build)$ + + . + + build/Debug/Makefile + + + + default + false + false + + + + + + + + + build/Debug + ${MAKE} -f Makefile + ${MAKE} -f Makefile clean + build/Debug/src/cadMousePro-gui + + + build/Debug/src + src + build/Debug/src/cadMousePro-gui_autogen/include + /usr/include/x86_64-linux-gnu/qt5 + /usr/include/x86_64-linux-gnu/qt5/QtDBus + /usr/include/x86_64-linux-gnu/qt5/QtCore + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ + + + QT_CORE_LIB + QT_DBUS_LIB + + + + + build/Debug + ${CMAKE} -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug -DCMAKE_C_COMPILER=${IDE_CC} -DCMAKE_CXX_COMPILER=${IDE_CXX} -DCMAKE_EXPORT_COMPILE_COMMANDS=ON ../.. + true + + + + + + + + + + + + + + build/Debug/src + src + build/Debug/src/cadMousePro-gui_autogen/include + /usr/include/x86_64-linux-gnu/qt5 + /usr/include/x86_64-linux-gnu/qt5/QtDBus + /usr/include/x86_64-linux-gnu/qt5/QtCore + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ + + + QT_CORE_LIB + QT_DBUS_LIB + + + + + + + + + + + default + false + false + + + + + + build/Release + ${MAKE} -f Makefile + ${MAKE} -f Makefile clean + build/Release/src/cadMousePro-gui + + + src + + + NDEBUG + + + + + build/Release + ${CMAKE} -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER=${IDE_CC} -DCMAKE_CXX_COMPILER=${IDE_CXX} -DCMAKE_EXPORT_COMPILE_COMMANDS=ON ../.. + true + + + + + diff -r 52d92c1b340e -r 759edaff1755 cadMousePro-gui/nbproject/project.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cadMousePro-gui/nbproject/project.xml Thu Aug 29 20:23:37 2019 +0200 @@ -0,0 +1,72 @@ + + + + org.netbeans.modules.cnd.makeproject + + + cadMousePro-gui + + cpp + h + UTF-8 + + . + + + + . + + + + Debug + 0 + + + Release + 0 + + + + false + + + + diff -r 52d92c1b340e -r 759edaff1755 cadMousePro-gui/src/CMakeLists.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cadMousePro-gui/src/CMakeLists.txt Thu Aug 29 20:23:37 2019 +0200 @@ -0,0 +1,36 @@ +set(EXECUTABLE_FILE "cadMousePro-gui") + +# Qt libraries: +set(CMAKE_INCLUDE_CURRENT_DIR ON) # Find includes in corresponding build directories +set(CMAKE_AUTOMOC ON) # Instruct CMake to run moc automatically when needed +set(CMAKE_AUTOUIC ON) # Create code from a list of Qt designer ui files +find_package(Qt5 CONFIG REQUIRED Core DBus) + +# Add ASan AddressSanitizer +set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -fno-omit-frame-pointer -fsanitize=address") +set(CMAKE_LINKER_FLAGS_DEBUG "${CMAKE_LINKER_FLAGS_DEBUG} -fno-omit-frame-pointer -fsanitize=address") + +# Generate C++ interface classes from D-Bus XML: +file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/generated-sources/) +set(DBUS_XML ${CMAKE_CURRENT_SOURCE_DIR}/../../d-bus/info.globalcode.mouse.cadMousePro.xml) +set(GENERATED_SOURCES ${CMAKE_CURRENT_BINARY_DIR}/generated-sources/) +add_custom_command( + DEPENDS ${DBUS_XML} + OUTPUT ${GENERATED_SOURCES}/Proxy.h + OUTPUT ${GENERATED_SOURCES}/Proxy.cpp + COMMAND qdbusxml2cpp -p Proxy.h:Proxy.cpp ${DBUS_XML} + WORKING_DIRECTORY ${GENERATED_SOURCES} +) +cmake_policy(SET CMP0071 NEW) # Let AUTOMOC and AUTOUIC process GENERATED files. + +# Executable output: +add_executable( + ${EXECUTABLE_FILE} + ${CMAKE_CURRENT_BINARY_DIR}/generated-sources/Proxy.h + ${CMAKE_CURRENT_BINARY_DIR}/generated-sources/Proxy.cpp + cadMouseProGUI.cpp +) + +# Link libraries: +target_link_libraries(${EXECUTABLE_FILE} Qt5::DBus) +set_property(TARGET ${EXECUTABLE_FILE} PROPERTY INSTALL_RPATH_USE_LINK_PATH TRUE) diff -r 52d92c1b340e -r 759edaff1755 cadMousePro-gui/src/cadMouseProGUI.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cadMousePro-gui/src/cadMouseProGUI.cpp Thu Aug 29 20:23:37 2019 +0200 @@ -0,0 +1,43 @@ +/** + * cadMousePro + * Copyright © 2019 František Kučera (Frantovo.cz, GlobalCode.info) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include + +#include +#include + +#include "generated-sources/Proxy.h" + +int main(int argc, char** argv) { + + std::wcout << L"cadMousePro GUI" << std::endl; + + + QCoreApplication qtApplication(argc, argv); + + QDBusConnection connection = QDBusConnection::systemBus(); + + InfoGlobalcodeMouseCadMouseProInterface* proxy = new InfoGlobalcodeMouseCadMouseProInterface("info.globalcode.mouse.cadMousePro", "/info/globalcode/mouse/cadMousePro", connection, &qtApplication); + + std::wcout << (proxy->isValid() ? L"connected" : L"disconnected") << std::endl; + std::wcout << (proxy->devicePresent() ? L"mouse found" : L"mouse not found") << std::endl; + std::wcout << L"mouse name: " << proxy->deviceName().toStdWString() << std::endl; + std::wcout << connection.lastError().message().toStdWString() << std::endl; + + return qtApplication.exec(); + +}