From 4bd02cf0bb55a1e56e71b9be3432c3f08c596d96 Mon Sep 17 00:00:00 2001 From: jolavillette Date: Mon, 18 May 2026 16:04:01 +0200 Subject: [PATCH] build(cmake): implement modular build system and align service dependencies --- plugins/CMakeLists.txt | 7 + plugins/FeedReader/CMakeLists.txt | 129 ++++++++++++++++++ plugins/VOIP/CMakeLists.txt | 129 ++++++++++++++++++ retroshare-friendserver/CMakeLists.txt | 95 +++++++++++++ retroshare-gui/CMakeLists.txt | 82 +++++------ retroshare-gui/src/CMakeLists.txt | 41 +++--- .../src/gui/PhotoShare/PhotoDialog.cpp | 2 +- retroshare-gui/src/gui/PluginManager.cpp | 3 +- .../src/gui/PluginManagerWidget.cpp | 7 +- retroshare-gui/src/gui/PluginsPage.cpp | 3 + .../src/gui/common/RsCollectionModel.h | 2 + retroshare-gui/src/gui/gxs/GxsFeedWidget.cpp | 2 +- retroshare-gui/src/gui/gxs/GxsGroupDialog.cpp | 3 +- retroshare-service/CMakeLists.txt | 2 +- 14 files changed, 443 insertions(+), 64 deletions(-) create mode 100644 plugins/CMakeLists.txt create mode 100644 plugins/FeedReader/CMakeLists.txt create mode 100644 plugins/VOIP/CMakeLists.txt create mode 100644 retroshare-friendserver/CMakeLists.txt diff --git a/plugins/CMakeLists.txt b/plugins/CMakeLists.txt new file mode 100644 index 000000000..0748779f0 --- /dev/null +++ b/plugins/CMakeLists.txt @@ -0,0 +1,7 @@ +# plugins/CMakeLists.txt +cmake_minimum_required(VERSION 3.18) + +if(RS_GUI) + add_subdirectory(FeedReader) + add_subdirectory(VOIP) +endif() diff --git a/plugins/FeedReader/CMakeLists.txt b/plugins/FeedReader/CMakeLists.txt new file mode 100644 index 000000000..1e1156dd3 --- /dev/null +++ b/plugins/FeedReader/CMakeLists.txt @@ -0,0 +1,129 @@ +# plugins/FeedReader/CMakeLists.txt +cmake_minimum_required(VERSION 3.18) +project(FeedReaderPlugin) + +# --- Dependencies --- +find_package(CURL REQUIRED) +find_package(PkgConfig REQUIRED) +pkg_check_modules(LIBXML2 REQUIRED libxml-2.0) +pkg_check_modules(LIBXSLT REQUIRED libxslt) + +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTORCC ON) +set(CMAKE_AUTOUIC ON) + +# --- Sources --- +set(FEEDREADER_SOURCES + FeedReaderPlugin.cpp + services/p3FeedReader.cc + services/p3FeedReaderThread.cc + services/rsFeedReaderItems.cc + gui/FeedReaderDialog.cpp + gui/FeedReaderMessageWidget.cpp + gui/AddFeedDialog.cpp + gui/PreviewFeedDialog.cpp + gui/FeedReaderNotify.cpp + gui/FeedReaderConfig.cpp + gui/FeedReaderStringDefs.cpp + gui/FeedReaderFeedNotify.cpp + gui/FeedReaderUserNotify.cpp + gui/FeedReaderFeedItem.cpp + gui/FeedTreeWidget.cpp + gui/ProxyWidget.cpp + util/CURLWrapper.cpp + util/XMLWrapper.cpp + util/HTMLWrapper.cpp + util/XPathWrapper.cpp +) + +set(FEEDREADER_FORMS + gui/FeedReaderDialog.ui + gui/FeedReaderMessageWidget.ui + gui/AddFeedDialog.ui + gui/PreviewFeedDialog.ui + gui/FeedReaderConfig.ui + gui/FeedReaderFeedItem.ui + gui/ProxyWidget.ui +) + +set(FEEDREADER_RESOURCES + gui/FeedReader_images.qrc + lang/FeedReader_lang.qrc + qss/FeedReader_qss.qrc +) + +# --- Translations (.ts -> .qm) --- +file(GLOB TS_FILES "lang/*.ts") +if(Qt5LinguistTools_FOUND) + qt5_add_translation(QM_FILES ${TS_FILES}) +else() + find_program(LRELEASE_EXECUTABLE NAMES lrelease-qt5 lrelease) + foreach(ts_file ${TS_FILES}) + get_filename_component(ts_name ${ts_file} NAME_WE) + set(qm_src_file "${CMAKE_CURRENT_SOURCE_DIR}/lang/${ts_name}.qm") + set(qm_bin_file "${CMAKE_CURRENT_BINARY_DIR}/${ts_name}.qm") + + if(EXISTS ${qm_src_file}) + list(APPEND QM_FILES ${qm_src_file}) + elseif(LRELEASE_EXECUTABLE) + add_custom_command( + OUTPUT ${qm_bin_file} + COMMAND ${LRELEASE_EXECUTABLE} ${ts_file} -qm ${qm_bin_file} + DEPENDS ${ts_file} + VERBATIM + ) + list(APPEND QM_FILES ${qm_bin_file}) + endif() + endforeach() +endif() + +# --- CTarget --- +add_library(FeedReader MODULE + ${FEEDREADER_SOURCES} + ${FEEDREADER_FORMS} + ${FEEDREADER_RESOURCES} + ${QM_FILES} +) + +set_target_properties(FeedReader PROPERTIES + PREFIX "lib" + LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/plugins" + AUTOUIC_SEARCH_PATHS "${CMAKE_CURRENT_SOURCE_DIR}/gui" +) + +# --- Links --- +if(WIN32) + target_link_libraries(FeedReader PRIVATE retroshare) +endif() + +target_link_libraries(FeedReader PRIVATE + Qt5::Core + Qt5::Widgets + Qt5::Xml + Qt5::Network + CURL::libcurl + ${LIBXML2_LIBRARIES} + ${LIBXSLT_LIBRARIES} +) + +if(RS_DEVELOPMENT_BUILD) + target_compile_options(FeedReader PRIVATE "-g" "-O0") +endif() + +# --- Includes --- +target_include_directories(FeedReader PRIVATE + ${CMAKE_CURRENT_SOURCE_DIR} + ${CMAKE_CURRENT_SOURCE_DIR}/gui + ${CMAKE_CURRENT_SOURCE_DIR}/services + ${CMAKE_CURRENT_SOURCE_DIR}/interface + ${CMAKE_CURRENT_SOURCE_DIR}/util + ${CMAKE_SOURCE_DIR}/libretroshare/src + ${CMAKE_SOURCE_DIR}/retroshare-gui/src + ${CMAKE_SOURCE_DIR}/retroshare-gui/src/gui + ${CMAKE_SOURCE_DIR}/supportlibs/rapidjson/include + ${LIBXML2_INCLUDE_DIRS} + ${LIBXSLT_INCLUDE_DIRS} +) + +# --- Installation --- +install(TARGETS FeedReader DESTINATION lib/retroshare/plugins) diff --git a/plugins/VOIP/CMakeLists.txt b/plugins/VOIP/CMakeLists.txt new file mode 100644 index 000000000..effeae9a8 --- /dev/null +++ b/plugins/VOIP/CMakeLists.txt @@ -0,0 +1,129 @@ +# plugins/VOIP/CMakeLists.txt +cmake_minimum_required(VERSION 3.18) +project(VOIPPlugin) + +# --- Dependencies --- +find_package(Qt5 COMPONENTS Multimedia REQUIRED) +find_package(PkgConfig REQUIRED) +pkg_check_modules(AVCODEC REQUIRED libavcodec) +pkg_check_modules(AVUTIL REQUIRED libavutil) +pkg_check_modules(SPEEX REQUIRED speex) +pkg_check_modules(SPEEXDSP REQUIRED speexdsp) + +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTORCC ON) +set(CMAKE_AUTOUIC ON) + +# --- Definitions --- +add_definitions(-D__STDC_CONSTANT_MACROS) + +# --- Sources --- +set(VOIP_SOURCES + VOIPPlugin.cpp + gui/VOIPConfigPanel.cpp + services/p3VOIP.cc + services/rsVOIPItems.cc + gui/AudioStats.cpp + gui/AudioWizard.cpp + gui/SpeexProcessor.cpp + gui/audiodevicehelper.cpp + gui/VideoProcessor.cpp + gui/QVideoDevice.cpp + gui/VOIPChatWidgetHolder.cpp + gui/VOIPGUIHandler.cpp + gui/VOIPNotify.cpp + gui/VOIPToasterItem.cpp + gui/VOIPToasterNotify.cpp +) + +set(VOIP_FORMS + gui/AudioStats.ui + gui/AudioWizard.ui + gui/VOIPConfigPanel.ui + gui/VOIPToasterItem.ui +) + +set(VOIP_RESOURCES + gui/VOIP_images.qrc + lang/VOIP_lang.qrc + qss/VOIP_qss.qrc +) + +# --- Translations (.ts -> .qm) --- +file(GLOB TS_FILES "lang/*.ts") +if(Qt5LinguistTools_FOUND) + qt5_add_translation(QM_FILES ${TS_FILES}) +else() + find_program(LRELEASE_EXECUTABLE NAMES lrelease-qt5 lrelease) + foreach(ts_file ${TS_FILES}) + get_filename_component(ts_name ${ts_file} NAME_WE) + set(qm_src_file "${CMAKE_CURRENT_SOURCE_DIR}/lang/${ts_name}.qm") + set(qm_bin_file "${CMAKE_CURRENT_BINARY_DIR}/${ts_name}.qm") + + if(EXISTS ${qm_src_file}) + list(APPEND QM_FILES ${qm_src_file}) + elseif(LRELEASE_EXECUTABLE) + add_custom_command( + OUTPUT ${qm_bin_file} + COMMAND ${LRELEASE_EXECUTABLE} ${ts_file} -qm ${qm_bin_file} + DEPENDS ${ts_file} + VERBATIM + ) + list(APPEND QM_FILES ${qm_bin_file}) + endif() + endforeach() +endif() + +# --- Target --- +add_library(VOIP MODULE + ${VOIP_SOURCES} + ${VOIP_FORMS} + ${VOIP_RESOURCES} + ${QM_FILES} +) + +set_target_properties(VOIP PROPERTIES + PREFIX "lib" + LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/plugins" + AUTOUIC_SEARCH_PATHS "${CMAKE_CURRENT_SOURCE_DIR}/gui" +) + +# --- Links --- +if(WIN32) + target_link_libraries(VOIP PRIVATE retroshare) +endif() + +target_link_libraries(VOIP PRIVATE + Qt5::Core + Qt5::Widgets + Qt5::Multimedia + Qt5::Xml + Qt5::Network + ${AVCODEC_LIBRARIES} + ${AVUTIL_LIBRARIES} + ${SPEEX_LIBRARIES} + ${SPEEXDSP_LIBRARIES} +) + +if(RS_DEVELOPMENT_BUILD) + target_compile_options(VOIP PRIVATE "-g" "-O0") +endif() + +# --- Includes --- +target_include_directories(VOIP PRIVATE + ${CMAKE_CURRENT_SOURCE_DIR} + ${CMAKE_CURRENT_SOURCE_DIR}/gui + ${CMAKE_CURRENT_SOURCE_DIR}/services + ${CMAKE_CURRENT_SOURCE_DIR}/interface + ${CMAKE_SOURCE_DIR}/libretroshare/src + ${CMAKE_SOURCE_DIR}/retroshare-gui/src + ${CMAKE_SOURCE_DIR}/retroshare-gui/src/gui + ${CMAKE_SOURCE_DIR}/supportlibs/rapidjson/include + ${AVCODEC_INCLUDE_DIRS} + ${AVUTIL_INCLUDE_DIRS} + ${SPEEX_INCLUDE_DIRS} + ${SPEEXDSP_INCLUDE_DIRS} +) + +# --- Installation --- +install(TARGETS VOIP DESTINATION lib/retroshare/plugins) diff --git a/retroshare-friendserver/CMakeLists.txt b/retroshare-friendserver/CMakeLists.txt new file mode 100644 index 000000000..d85eef15f --- /dev/null +++ b/retroshare-friendserver/CMakeLists.txt @@ -0,0 +1,95 @@ +# CMakeLists.txt for retroshare-friendserver +# +# SPDX-License-Identifier: AGPL-3.0-or-later + +cmake_minimum_required (VERSION 3.18.0) +project(retroshare-friendserver) + +include(CMakeDependentOption) + +set( + RS_BIN_INSTALL_DIR + "${CMAKE_INSTALL_PREFIX}/bin" + CACHE PATH + "Path where to install retroshare-friendserver compiled binary" ) + +option( + RS_DEVELOPMENT_BUILD + "Disable optimization to speed up build, enable verbose build log" + OFF ) + +option( + RS_RNPLIB + "Enable use RNP lib for PGP" + ON ) + +find_package(ZLIB REQUIRED) +find_package(BZip2 REQUIRED) +find_package(Git REQUIRED) + +if(RS_DEVELOPMENT_BUILD) + set(CMAKE_VERBOSE_MAKEFILE ON) + set(CMAKE_EXPORT_COMPILE_COMMANDS ON) +endif(RS_DEVELOPMENT_BUILD) + +# Sources +set(FRIENDSERVER_SOURCES + src/retroshare-friendserver.cc + src/friendserver.cc + src/network.cc +) + +add_executable(${PROJECT_NAME} ${FRIENDSERVER_SOURCES}) +set_target_properties(${PROJECT_NAME} PROPERTIES CXX_STANDARD 17) +target_compile_options(${PROJECT_NAME} PRIVATE -Wno-deprecated-declarations) + + +# Find libretroshare +set(LIBRETROSHARE_DEVEL_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../libretroshare/") +if(EXISTS "${LIBRETROSHARE_DEVEL_DIR}/CMakeLists.txt" ) + message(STATUS "libretroshare source found at ${LIBRETROSHARE_DEVEL_DIR} using it" ) + add_subdirectory("${LIBRETROSHARE_DEVEL_DIR}" "${CMAKE_BINARY_DIR}/libretroshare" ) +else() + include(FetchContent) + FetchContent_Declare( + libretroshare + GIT_REPOSITORY "https://github.com/RetroShare/libretroshare.git" + GIT_TAG "origin/master" + GIT_SHALLOW TRUE + GIT_PROGRESS TRUE + TIMEOUT 10 + ) + FetchContent_MakeAvailable(libretroshare) +endif() + +# Include directories +target_include_directories(${PROJECT_NAME} PRIVATE + "${CMAKE_CURRENT_SOURCE_DIR}/src" +) + +# Link libraries +target_link_libraries(${PROJECT_NAME} PRIVATE retroshare) + +if(RS_RNPLIB) + # Add RNP build directories to linker search path + target_link_directories(${PROJECT_NAME} PRIVATE + ${CMAKE_CURRENT_BINARY_DIR}/supportlibs/librnp/Build/src/lib + ${CMAKE_CURRENT_BINARY_DIR}/supportlibs/librnp/Build/src/libsexpp + ) + + # Link libraries by name, including RNP libs and dependencies first + target_link_libraries(${PROJECT_NAME} PRIVATE + rnp # Link by name + sexpp + botan-2 + json-c + bz2 + z + retroshare + ) +endif(RS_RNPLIB) + +# Link only libretroshare, it should handle its own dependencies now +target_link_libraries(${PROJECT_NAME} PRIVATE retroshare) + +install(TARGETS ${PROJECT_NAME} DESTINATION ${RS_BIN_INSTALL_DIR}) diff --git a/retroshare-gui/CMakeLists.txt b/retroshare-gui/CMakeLists.txt index 9b5240e17..91c59e21c 100644 --- a/retroshare-gui/CMakeLists.txt +++ b/retroshare-gui/CMakeLists.txt @@ -17,7 +17,7 @@ ################################################################################ cmake_minimum_required (VERSION 3.18.0) -project(retroshare-gui VERSION 0.6.6 LANGUAGES CXX) +project(retroshare-gui VERSION 0.6.6 LANGUAGES CXX C) include(CMakeDependentOption) @@ -33,10 +33,7 @@ option( just for development purposes, not suitable for library usage" ON ) -option( - RS_JSON_API - "Use restbed to expose libretroshare as JSON API via HTTP" - OFF ) +set(RS_JSON_API ON CACHE BOOL "Use restbed to expose libretroshare as JSON API via HTTP" FORCE) option( RS_SERVICE_DESKTOP @@ -53,6 +50,8 @@ option( RS_GXSCHANNELS "Enable GXS channels in GUI" ON ) option( RS_GXSFORUMS "Enable GXS forums in GUI" ON ) option( RS_GXSPOSTED "Enable GXS posted in GUI" ON ) option( RS_GXSCIRCLES "Enable GXS circles in GUI" ON ) +set(RS_GXSIDENTITIES ON CACHE BOOL "Enable GXS identities in GUI" FORCE) +set(RS_IDLE ON CACHE BOOL "Enable Idle support" FORCE) cmake_dependent_option( RS_SERVICE_TERMINAL_WEBUI_PASSWORD @@ -70,30 +69,26 @@ cmake_dependent_option( ################################ QT FILES ####################################### -set(CMAKE_CXX_STANDARD 11) +set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_AUTOMOC ON) set(CMAKE_AUTORCC ON) set(CMAKE_AUTOUIC ON) -find_package( Qt6 COMPONENTS Core REQUIRED) -find_package( Qt6 COMPONENTS Widgets REQUIRED) -find_package( Qt6 COMPONENTS Xml REQUIRED) -find_package( Qt6 COMPONENTS Network REQUIRED) -find_package( Qt6 COMPONENTS Multimedia REQUIRED) -find_package( Qt6 COMPONENTS PrintSupport REQUIRED) +find_package( Qt5 COMPONENTS Core REQUIRED) +find_package( Qt5 COMPONENTS Widgets REQUIRED) +find_package( Qt5 COMPONENTS Xml REQUIRED) +find_package( Qt5 COMPONENTS Network REQUIRED) +find_package( Qt5 COMPONENTS Multimedia REQUIRED) +find_package( Qt5 COMPONENTS PrintSupport REQUIRED) +if(UNIX AND NOT APPLE) + find_package( Qt5 COMPONENTS X11Extras REQUIRED ) +endif() -list( APPEND RS_LINK_LIBRARIES Qt6::Multimedia Qt6::Widgets Qt6::Xml Qt6::Network Qt6::PrintSupport) -if (NOT Qt6_FOUND) - find_package( Qt5 COMPONENTS Core REQUIRED) - find_package( Qt5 COMPONENTS Widgets REQUIRED) - find_package( Qt5 COMPONENTS Xml REQUIRED) - find_package( Qt5 COMPONENTS Network REQUIRED) - find_package( Qt5 COMPONENTS Multimedia REQUIRED) - find_package( Qt5 COMPONENTS PrintSupport REQUIRED) - - list( APPEND RS_LINK_LIBRARIES Qt5::Multimedia Qt5::Widgets Qt5::Xml Qt5::Network Qt5::PrintSupport) +list( APPEND RS_LINK_LIBRARIES Qt5::Multimedia Qt5::Widgets Qt5::Xml Qt5::Network Qt5::PrintSupport) +if(UNIX AND NOT APPLE) + list( APPEND RS_LINK_LIBRARIES Qt5::X11Extras ) endif() ################################################################################ @@ -106,7 +101,7 @@ find_package(Git REQUIRED) ################################################################################ if(RS_DEVELOPMENT_BUILD) - set(CMAKE_VERBOSE_MAKEFILE ON) + set(CMAKE_VERBOSE_MAKEFILE OFF) set(CMAKE_EXPORT_COMPILE_COMMANDS ON) endif(RS_DEVELOPMENT_BUILD) @@ -114,12 +109,18 @@ endif(RS_DEVELOPMENT_BUILD) include(src/CMakeLists.txt) +link_directories( + "${CMAKE_CURRENT_SOURCE_DIR}/../supportlibs/librnp/Build/src/lib" + "${CMAKE_CURRENT_SOURCE_DIR}/../supportlibs/librnp/Build/src/libsexpp" +) + qt_wrap_ui(RS_UI_HEADERS ${RS_GUI_FORMS}) if (NOT Qt6_FOUND) qt5_wrap_ui(RS_UI_HEADERS ${RS_GUI_FORMS}) endif() -add_executable(${PROJECT_NAME} ${RS_GUI_SOURCES} ${RS_UI_HEADERS} ${RS_GUI_QTRESOURCES}) +add_executable(${PROJECT_NAME} ${RS_GUI_SOURCES} ${RS_IMPLEMENTATION_HEADERS} ${RS_UI_HEADERS} ${RS_GUI_QTRESOURCES}) +set_target_properties(${PROJECT_NAME} PROPERTIES OUTPUT_NAME "retroshare") install(TARGETS ${PROJECT_NAME} DESTINATION ${RS_BIN_INSTALL_DIR}) include_directories( ${CMAKE_BINARY_DIR} ) @@ -201,6 +202,10 @@ if(RS_JSON_API) target_compile_definitions(${PROJECT_NAME} PUBLIC RS_JSONAPI) endif(RS_JSON_API) +if(RS_WEBUI) + target_compile_definitions(${PROJECT_NAME} PRIVATE RS_WEBUI) +endif(RS_WEBUI) + ################################# CMark ######################################## if(RS_GUI_CMARK) @@ -224,19 +229,18 @@ endif(RS_GUI_CMARK) ################################# LibSam v3 #################################### set(SAM3_DEVEL_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../supportlibs/libsam3/") -if(EXISTS "${SAM3_DEVEL_DIR}/.git" ) - message( STATUS "libsam3 submodule found at ${SAM3_DEVEL_DIR} using it" ) - add_subdirectory( "${SAM3_DEVEL_DIR}" "${CMAKE_BINARY_DIR}/libsam3" ) +if(EXISTS "${SAM3_DEVEL_DIR}" ) + message( STATUS "libsam3 found at ${SAM3_DEVEL_DIR}, defining target sam3" ) + add_library(sam3 STATIC + "${SAM3_DEVEL_DIR}/src/libsam3/libsam3.c" + "${SAM3_DEVEL_DIR}/src/libsam3a/libsam3a.c" + ) + target_include_directories(sam3 PUBLIC + "${SAM3_DEVEL_DIR}/src/libsam3" + "${SAM3_DEVEL_DIR}/src/libsam3a" + ) else() - FetchContent_Declare( - libsam3 - GIT_REPOSITORY "https://github.com/i2p/libsam3.git" - GIT_TAG "origin/master" - GIT_SHALLOW TRUE - GIT_PROGRESS TRUE - TIMEOUT 10 - ) - FetchContent_MakeAvailable(libsam3) + message( WARNING "libsam3 not found!" ) endif() ################################################################################ @@ -305,7 +309,7 @@ if(UNIX) target_compile_definitions(${PROJECT_NAME} PRIVATE HAVE_XSS) target_compile_definitions(${PROJECT_NAME} PRIVATE _FILE_OFFSET_BITS=64) - target_link_options(${PROJECT_NAME} PRIVATE LINKER:-rdynamic) + target_link_options(${PROJECT_NAME} PRIVATE -rdynamic) endif(UNIX) if(RS_SANITIZE) @@ -496,10 +500,12 @@ set( CMAKE_CXX_FLAGS "-Wno-deprecated-declarations" ) target_compile_definitions(${PROJECT_NAME} PUBLIC RS_NO_WARN_DEPRECATED ) target_compile_definitions(${PROJECT_NAME} PRIVATE RS_RELEASE_VERSION ) target_compile_definitions(${PROJECT_NAME} PRIVATE TARGET=\"retroshare\") +target_compile_definitions(${PROJECT_NAME} PRIVATE RS_DIRECT_CHAT) if(RS_GXS_CIRCLES) target_compile_definitions(${PROJECT_NAME} PRIVATE RS_USE_CIRCLES ) endif(RS_GXS_CIRCLES) -#add_dependencies(${PROJECT_NAME} libretroshare) +target_link_libraries(${PROJECT_NAME} PRIVATE retroshare) +target_link_libraries(${PROJECT_NAME} PRIVATE -Wl,--no-as-needed z bz2 json-c botan-2 -Wl,--as-needed) diff --git a/retroshare-gui/src/CMakeLists.txt b/retroshare-gui/src/CMakeLists.txt index 71dd6770f..b7347a9f2 100644 --- a/retroshare-gui/src/CMakeLists.txt +++ b/retroshare-gui/src/CMakeLists.txt @@ -23,7 +23,7 @@ list( src/main.cpp src/rshare.cpp - src/gui/notifyqt.cpp + src/gui/RsGUIEventManager.cpp src/gui/AboutDialog.cpp src/gui/AboutWidget.cpp src/gui/QuickStartWizard.cpp @@ -90,6 +90,7 @@ list( src/util/RichTextEdit.cpp src/util/ClickableLabel.cpp src/util/AspectRatioPixmapLabel.cpp + src/util/FontSizeHandler.cpp src/gui/profile/ProfileWidget.cpp src/gui/profile/StatusMessage.cpp @@ -126,6 +127,7 @@ list( src/gui/common/ElidedLabel.cpp src/gui/common/vmessagebox.cpp src/gui/common/RsCollectionDialog.cpp + src/gui/common/RsCollectionModel.cpp src/gui/common/RsCollection.cpp src/gui/common/RsUrlHandler.cpp src/gui/common/rwindow.cpp @@ -265,6 +267,8 @@ list( src/gui/statistics/StatisticsWindow.cpp src/gui/statistics/BwCtrlWindow.cpp src/gui/statistics/RttStatistics.cpp + src/gui/statistics/GxsNetTunnelsDialog.cpp + src/gui/statistics/TunnelStatisticsDialog.cpp src/gui/statistics/BWGraph.cpp src/util/RsSyntaxHighlighter.cpp @@ -396,6 +400,8 @@ list( src/gui/statistics/StatisticsWindow.ui src/gui/statistics/BwCtrlWindow.ui src/gui/statistics/RttStatistics.ui + src/gui/statistics/GxsNetTunnelsDialog.ui + src/gui/statistics/TunnelStatisticsDialog.ui src/util/RichTextEdit.ui ) @@ -405,11 +411,6 @@ list( src/TorControl/TorControlWindow.h - src/chat/distantchat.h - src/chat/distributedchat.h - src/chat/p3chatservice.h - src/chat/rschatitems.h - src/rshare.h src/retroshare-gui/configpage.h src/retroshare-gui/RsAutoUpdatePage.h @@ -419,7 +420,7 @@ list( src/control/eventtype.h src/gui/QuickStartWizard.h - src/gui/notifyqt.h + src/gui/RsGUIEventManager.h src/gui/GetStartedDialog.h src/gui/StartDialog.h src/gui/HomePage.h @@ -439,8 +440,6 @@ list( src/gui/SearchTreeWidget.h src/gui/ShareManager.h src/gui/NewsFeed.h - src/gui/ShareDialog.h - src/gui/SFListDelegate.h src/gui/SoundManager.h src/gui/HelpDialog.h src/gui/LogoBar.h @@ -476,6 +475,8 @@ list( src/gui/statistics/BwCtrlWindow.h src/gui/statistics/BWGraph.h src/gui/statistics/RttStatistics.h + src/gui/statistics/GxsNetTunnelsDialog.h + src/gui/statistics/TunnelStatisticsDialog.h src/gui/plugins/PluginInterface.h @@ -500,7 +501,6 @@ list( src/util/dllexport.h src/util/global.h src/util/rsqtutildll.h - src/util/Interface.h src/util/PixmapMerging.h src/util/MouseEventFilter.h src/util/EventFilter.h @@ -511,6 +511,7 @@ list( src/util/log.h src/util/misc.h src/util/HandleRichText.h + src/util/FontSizeHandler.h src/util/ObjectPainter.h src/util/RsQtVersion.h src/util/RsFile.h @@ -592,8 +593,8 @@ list( src/gui/common/RSGraphWidget.h src/gui/common/ElidedLabel.h src/gui/common/vmessagebox.h - src/gui/common/RsUrlHandler.h src/gui/common/RsCollectionDialog.h + src/gui/common/RsCollectionModel.h src/gui/common/rwindow.h src/gui/common/rshtml.h src/gui/common/AvatarDefs.h @@ -714,8 +715,7 @@ if(RS_WEBUI) list( APPEND RS_IMPLEMENTATION_HEADERS - src/jsonapi/p3webui.h - src/gui/settings/WebuiPage.h + src/gui/settings/WebuiPage.h ) list( @@ -1050,6 +1050,7 @@ if(RS_GXSIDENTITIES) src/gui/Identity/IdDialog.h src/gui/Identity/IdEditDialog.h src/gui/Identity/IdDetailsDialog.h + src/gui/Identity/IdentityListModel.h ) list( @@ -1064,6 +1065,7 @@ if(RS_GXSIDENTITIES) src/gui/Identity/IdDialog.cpp src/gui/Identity/IdEditDialog.cpp src/gui/Identity/IdDetailsDialog.cpp + src/gui/Identity/IdentityListModel.cpp ) endif(RS_GXSIDENTITIES) @@ -1113,8 +1115,8 @@ if(RS_GXSGUI) src/gui/gxs/GxsGroupFrameDialog.h src/gui/gxs/GxsMessageFrameWidget.h src/gui/gxs/GxsMessageFramePostWidget.h - src/gui/gxs/GxsGroupFeedItem.h - src/gui/gxs/GxsFeedItem.h + src/gui/feeds/GxsGroupFeedItem.h + src/gui/feeds/GxsFeedItem.h src/gui/gxs/GxsGroupShareKey.h src/gui/gxs/GxsUserNotify.h src/gui/gxs/GxsFeedWidget.h @@ -1150,8 +1152,8 @@ if(RS_GXSGUI) src/gui/gxs/GxsGroupFrameDialog.cpp src/gui/gxs/GxsMessageFrameWidget.cpp src/gui/gxs/GxsMessageFramePostWidget.cpp - src/gui/gxs/GxsGroupFeedItem.cpp - src/gui/gxs/GxsFeedItem.cpp + src/gui/feeds/GxsGroupFeedItem.cpp + src/gui/feeds/GxsFeedItem.cpp src/gui/gxs/GxsUserNotify.cpp src/gui/gxs/GxsFeedWidget.cpp src/util/TokenQueue.cpp @@ -1250,6 +1252,8 @@ if(RS_GXSPOSTED) src/gui/Posted/PostedCreatePostDialog.h src/gui/Posted/PhotoView.h src/gui/Posted/PostedUserNotify.h + src/gui/feeds/BoardsPostItem.h + src/gui/Posted/BoardPostImageHelper.h ) list( @@ -1262,6 +1266,7 @@ if(RS_GXSPOSTED) src/gui/Posted/PostedCardView.ui src/gui/Posted/PostedCreatePostDialog.ui src/gui/Posted/PhotoView.ui + src/gui/feeds/BoardsPostItem.ui ) list( @@ -1277,6 +1282,8 @@ if(RS_GXSPOSTED) src/gui/Posted/PostedCreatePostDialog.cpp src/gui/Posted/PhotoView.cpp src/gui/Posted/PostedUserNotify.cpp + src/gui/feeds/BoardsPostItem.cpp + src/gui/Posted/BoardPostImageHelper.cpp ) list( diff --git a/retroshare-gui/src/gui/PhotoShare/PhotoDialog.cpp b/retroshare-gui/src/gui/PhotoShare/PhotoDialog.cpp index 57627a30c..990973ee3 100644 --- a/retroshare-gui/src/gui/PhotoShare/PhotoDialog.cpp +++ b/retroshare-gui/src/gui/PhotoShare/PhotoDialog.cpp @@ -101,7 +101,7 @@ void PhotoDialog::toggleComments() RsGxsId current_author; // create CommentDialog. RsGxsCommentService *commentService = dynamic_cast(mRsPhoto); - GxsCommentDialog *commentDialog = new GxsCommentDialog(this,current_author, mRsPhoto->getTokenService(), commentService); + GxsCommentDialog *commentDialog = new GxsCommentDialog(this,current_author, commentService); // TODO: Need to fetch all msg versions, otherwise - won't get all the comments. // For the moment - use current msgid. diff --git a/retroshare-gui/src/gui/PluginManager.cpp b/retroshare-gui/src/gui/PluginManager.cpp index e5ac7f7d5..1a8010700 100644 --- a/retroshare-gui/src/gui/PluginManager.cpp +++ b/retroshare-gui/src/gui/PluginManager.cpp @@ -217,7 +217,8 @@ PluginManager::pluginWidget(QString pluginName) QString em = tr("Error: no plugin with name '%1' found") .arg(pluginName); emit errorAppeared( em ); - } + } + return 0; } //============================================================================= diff --git a/retroshare-gui/src/gui/PluginManagerWidget.cpp b/retroshare-gui/src/gui/PluginManagerWidget.cpp index 7b5506df6..6a4af8991 100644 --- a/retroshare-gui/src/gui/PluginManagerWidget.cpp +++ b/retroshare-gui/src/gui/PluginManagerWidget.cpp @@ -20,6 +20,8 @@ #include "PluginManagerWidget.h" #include "gui/settings/rsharesettings.h" +#include "util/misc.h" + #include #include @@ -160,9 +162,8 @@ PluginManagerWidget::registerNewPlugin(QString pluginName) void PluginManagerWidget::installPluginButtonClicked() { - QString fileName = misc::getOpenFileName(this, RshareSettings::LASTDIR_PLUGIN, tr("Open Plugin to install"), "./", tr("Plugins (*.so *.dll)")); - - if (!fileName.isNull()) + QString fileName; + if (misc::getOpenFileName(this, RshareSettings::LASTDIR_PLUGIN, tr("Open Plugin to install"), tr("Plugins (*.so *.dll)"), fileName)) emit installPluginRequested(fileName); } diff --git a/retroshare-gui/src/gui/PluginsPage.cpp b/retroshare-gui/src/gui/PluginsPage.cpp index b992c54b7..1155169e0 100644 --- a/retroshare-gui/src/gui/PluginsPage.cpp +++ b/retroshare-gui/src/gui/PluginsPage.cpp @@ -42,6 +42,8 @@ #include "PluginsPage.h" #include "PluginManager.h" +namespace gui { + //============================================================================== PluginsPage::PluginsPage(QWidget *parent ) @@ -95,5 +97,6 @@ PluginsPage::pluginRegistered(QString pluginName) pluginTabs->addTab( pw , pluginName ); } +} // namespace gui //============================================================================== diff --git a/retroshare-gui/src/gui/common/RsCollectionModel.h b/retroshare-gui/src/gui/common/RsCollectionModel.h index 705c3fc3b..d64c39c4f 100644 --- a/retroshare-gui/src/gui/common/RsCollectionModel.h +++ b/retroshare-gui/src/gui/common/RsCollectionModel.h @@ -1,5 +1,7 @@ +#pragma once #include + #include "RsCollection.h" class RsCollectionModel: public QAbstractItemModel diff --git a/retroshare-gui/src/gui/gxs/GxsFeedWidget.cpp b/retroshare-gui/src/gui/gxs/GxsFeedWidget.cpp index e714b5347..1ca9b28b3 100644 --- a/retroshare-gui/src/gui/gxs/GxsFeedWidget.cpp +++ b/retroshare-gui/src/gui/gxs/GxsFeedWidget.cpp @@ -19,7 +19,7 @@ *******************************************************************************/ #include "GxsFeedWidget.h" -#include "gui/gxs/GxsFeedItem.h" +#include "gui/feeds/GxsFeedItem.h" #define PAIR(groupId,messageId) QPair(groupId, messageId) diff --git a/retroshare-gui/src/gui/gxs/GxsGroupDialog.cpp b/retroshare-gui/src/gui/gxs/GxsGroupDialog.cpp index b668172c2..257018eaf 100644 --- a/retroshare-gui/src/gui/gxs/GxsGroupDialog.cpp +++ b/retroshare-gui/src/gui/gxs/GxsGroupDialog.cpp @@ -359,8 +359,7 @@ void GxsGroupDialog::setupDefaults() #ifndef RS_USE_CIRCLES ui.typeGroup->setEnabled(false); - ui.typeGroup_3->setEnabled(false); - ui.typeLocal_3->setEnabled(false); + ui.typeLocal->setEnabled(false); #endif } diff --git a/retroshare-service/CMakeLists.txt b/retroshare-service/CMakeLists.txt index 0732ed809..abc7cd5b3 100644 --- a/retroshare-service/CMakeLists.txt +++ b/retroshare-service/CMakeLists.txt @@ -144,7 +144,7 @@ if(RS_RNPLIB) target_link_libraries(${PROJECT_NAME} PRIVATE rnp # Link by name sexpp - botan-3 + botan-2 json-c bz2 z