diff --git a/CMakeLists.txt b/CMakeLists.txt index e3ba5c2e..dd8de4a0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,154 +1,157 @@ cmake_minimum_required(VERSION 3.5) set(KF5_VERSION "5.61.0") # handled by release scripts set(KF5_DEP_VERSION "5.61.0") # handled by release scripts project(KIO VERSION ${KF5_VERSION}) include(FeatureSummary) find_package(ECM 5.61.0 NO_MODULE) set_package_properties(ECM PROPERTIES TYPE REQUIRED DESCRIPTION "Extra CMake Modules." URL "https://projects.kde.org/projects/kdesupport/extra-cmake-modules") feature_summary(WHAT REQUIRED_PACKAGES_NOT_FOUND FATAL_ON_MISSING_REQUIRED_PACKAGES) set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake ) include(KDEInstallDirs) include(KDEFrameworkCompilerSettings NO_POLICY_SCOPE) include(KDECMakeSettings) include(GenerateExportHeader) include(ECMMarkAsTest) include(ECMSetupVersion) include(ECMGenerateHeaders) include(ECMAddQch) include(ECMMarkNonGuiExecutable) include(ECMQtDeclareLoggingCategory) ecm_setup_version( PROJECT VARIABLE_PREFIX KIO VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/src/kio_version.h" PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/KF5KIOConfigVersion.cmake" SOVERSION 5) option(KIOCORE_ONLY "Only compile KIOCore, not KIOWidgets or anything that depends on it. This will disable support for cookies and passwordhandling (prompting and storing)." OFF) option(KIO_FORK_SLAVES "If set we start the slaves via QProcess. It's also possible to change this by setting the environment variable KDE_FORK_SLAVES." OFF) option(BUILD_QCH "Build API documentation in QCH format (for e.g. Qt Assistant, Qt Creator & KDevelop)" OFF) add_feature_info(QCH ${BUILD_QCH} "API documentation in QCH format (for e.g. Qt Assistant, Qt Creator & KDevelop)") +option(BUILD_DESIGNERPLUGIN "Build plugin for Qt Designer" ON) +add_feature_info(DESIGNERPLUGIN ${BUILD_DESIGNERPLUGIN} "Build plugin for Qt Designer") + find_package(KF5Archive ${KF5_DEP_VERSION} REQUIRED) find_package(KF5Config ${KF5_DEP_VERSION} REQUIRED) find_package(KF5CoreAddons ${KF5_DEP_VERSION} REQUIRED) find_package(KF5Crash ${KF5_DEP_VERSION} REQUIRED) find_package(KF5DBusAddons ${KF5_DEP_VERSION} REQUIRED) find_package(KF5I18n ${KF5_DEP_VERSION} REQUIRED) find_package(KF5Service ${KF5_DEP_VERSION} REQUIRED) find_package(KF5DocTools ${KF5_DEP_VERSION}) find_package(KF5Solid ${KF5_DEP_VERSION} REQUIRED) # for kio_trash if (NOT KIOCORE_ONLY) find_package(KF5Bookmarks ${KF5_DEP_VERSION} REQUIRED) find_package(KF5Completion ${KF5_DEP_VERSION} REQUIRED) find_package(KF5ConfigWidgets ${KF5_DEP_VERSION} REQUIRED) find_package(KF5IconThemes ${KF5_DEP_VERSION} REQUIRED) find_package(KF5ItemViews ${KF5_DEP_VERSION} REQUIRED) find_package(KF5JobWidgets ${KF5_DEP_VERSION} REQUIRED) find_package(KF5WidgetsAddons ${KF5_DEP_VERSION} REQUIRED) find_package(KF5WindowSystem ${KF5_DEP_VERSION} REQUIRED) endif() if (UNIX) find_package(KF5Auth ${KF5_DEP_VERSION} REQUIRED) endif() # tell what is missing without doctools set_package_properties(KF5DocTools PROPERTIES DESCRIPTION "Provides tools to generate documentation in various format from DocBook files" TYPE OPTIONAL PURPOSE "Required to build help ioslave and documentation" ) set(REQUIRED_QT_VERSION 5.11.0) find_package(Qt5 ${REQUIRED_QT_VERSION} CONFIG REQUIRED Widgets DBus Network Concurrent Xml Test) find_package(GSSAPI) set_package_properties(GSSAPI PROPERTIES DESCRIPTION "Allows KIO to make use of certain HTTP authentication services" URL "http://web.mit.edu/kerberos/www" TYPE OPTIONAL PURPOSE "A MIT or HEIMDAL flavor of GSSAPI can be used" ) if (NOT APPLE AND NOT WIN32) find_package(X11) endif() set(HAVE_X11 ${X11_FOUND}) if (HAVE_X11) find_package(Qt5 ${REQUIRED_QT_VERSION} CONFIG REQUIRED X11Extras) endif() add_definitions(-DTRANSLATION_DOMAIN=\"kio5\") if (IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/po") ki18n_install(po) if (KF5DocTools_FOUND) kdoctools_install(po) endif() endif() if (KF5DocTools_FOUND) add_subdirectory(docs) endif() include(CheckLibraryExists) add_subdirectory(src) if(BUILD_TESTING) add_subdirectory(autotests) if (NOT KIOCORE_ONLY) add_subdirectory(tests) endif() endif() add_subdirectory(kconf_update) # create a Config.cmake and a ConfigVersion.cmake file and install them set(CMAKECONFIG_INSTALL_DIR "${KDE_INSTALL_CMAKEPACKAGEDIR}/KF5KIO") if (BUILD_QCH) ecm_install_qch_export( TARGETS KF5KIO_QCH FILE KF5KIOQchTargets.cmake DESTINATION "${CMAKECONFIG_INSTALL_DIR}" COMPONENT Devel ) set(PACKAGE_INCLUDE_QCHTARGETS "include(\"\${CMAKE_CURRENT_LIST_DIR}/KF5KIOQchTargets.cmake\")") endif() include(CMakePackageConfigHelpers) configure_package_config_file( "${CMAKE_CURRENT_SOURCE_DIR}/KF5KIOConfig.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/KF5KIOConfig.cmake" PATH_VARS KDE_INSTALL_DBUSINTERFACEDIR INSTALL_DESTINATION ${CMAKECONFIG_INSTALL_DIR} ) install(FILES "${CMAKE_CURRENT_BINARY_DIR}/KF5KIOConfig.cmake" "${CMAKE_CURRENT_BINARY_DIR}/KF5KIOConfigVersion.cmake" DESTINATION "${CMAKECONFIG_INSTALL_DIR}" COMPONENT Devel ) install(EXPORT KF5KIOTargets DESTINATION "${CMAKECONFIG_INSTALL_DIR}" FILE KF5KIOTargets.cmake NAMESPACE KF5:: ) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/src/kio_version.h DESTINATION ${KDE_INSTALL_INCLUDEDIR_KF5} COMPONENT Devel ) install(FILES kio.categories DESTINATION ${KDE_INSTALL_LOGGINGCATEGORIESDIR}) feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index c228e40d..79f6b1c7 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,94 +1,98 @@ add_subdirectory(core) # KIOCore-only executables add_subdirectory(protocoltojson) add_subdirectory(kntlm) add_subdirectory(ioslaves) add_subdirectory(kiod) add_subdirectory(kssld) add_subdirectory(kioslave) if (NOT KIOCORE_ONLY) add_subdirectory(kpasswdserver) add_subdirectory(gui) add_subdirectory(widgets) add_subdirectory(filewidgets) add_subdirectory(kioexec) add_subdirectory(urifilters) add_subdirectory(kcms) if(NOT WIN32 AND NOT ANDROID) # arpa/nameser.h add_subdirectory(kpac) endif() set(NON_KIOCORE_LINK_QCHS Qt5Widgets_QCH Qt5Network_QCH KF5Completion_QCH KF5WidgetsAddons_QCH KF5JobWidgets_QCH KF5Bookmarks_QCH KF5ItemViews_QCH KF5XmlGui_QCH KF5Solid_QCH ) +if(BUILD_DESIGNERPLUGIN) + add_subdirectory(designer) +endif() + endif() if (BUILD_QCH) macro(_make_absolute var_name base_path) set(_result) foreach(_path ${${var_name}}) if(IS_ABSOLUTE "${_path}") list(APPEND _result "${_path}") else() list(APPEND _result "${base_path}/${_path}") endif() endforeach() set(${var_name} ${_result}) endmacro() _make_absolute(KIONTLM_QCH_SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/(kntlm") _make_absolute(KIOCore_QCH_SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/core") _make_absolute(KIOGui_QCH_SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/gui") _make_absolute(KIOWidgets_QCH_SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/widgets") _make_absolute(KIOFileWidgets_QCH_SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/filewidgets") ecm_add_qch( KF5KIO_QCH NAME KIO BASE_NAME KF5KIO VERSION ${KF5_VERSION} ORG_DOMAIN org.kde SOURCES # using only public headers, to cover only public API ${KIONTLM_QCH_SOURCES} ${KIOCore_QCH_SOURCES} ${KIOGui_QCH_SOURCES} ${KIOWidgets_QCH_SOURCES} ${KIOFileWidgets_QCH_SOURCES} MD_MAINPAGE "${CMAKE_SOURCE_DIR}/README.md" IMAGE_DIRS "${CMAKE_SOURCE_DIR}/docs/pics" LINK_QCHS KF5CoreAddons_QCH KF5Service_QCH ${NON_KIOCORE_LINK_QCHS} BLANK_MACROS KIOCORE_EXPORT KIOCORE_DEPRECATED_EXPORT KIOCORE_DEPRECATED KNTLM_EXPORT KIOGUI_EXPORT KIOGUI_DEPRECATED_EXPORT KIOGUI_DEPRECATED KIOWIDGETS_EXPORT KIOWIDGETS_DEPRECATED_EXPORT KIOWIDGETS_DEPRECATED KIOFILEWIDGETS_EXPORT KIOFILEWIDGETS_DEPRECATED_EXPORT KIOFILEWIDGETS_DEPRECATED TAGFILE_INSTALL_DESTINATION ${KDE_INSTALL_QTQCHDIR} QCH_INSTALL_DESTINATION ${KDE_INSTALL_QTQCHDIR} COMPONENT Devel ) endif() diff --git a/src/designer/CMakeLists.txt b/src/designer/CMakeLists.txt new file mode 100644 index 00000000..1eac2c51 --- /dev/null +++ b/src/designer/CMakeLists.txt @@ -0,0 +1,31 @@ +include(ECMAddQtDesignerPlugin) + +ecm_qtdesignerplugin_widget(KImageFilePreview + TOOLTIP "A widget that provides a image preview of a URL" + GROUP "Display (KF5)" +) +ecm_qtdesignerplugin_widget(KUrlComboRequester + INCLUDE_FILE "kurlrequester.h" + TOOLTIP "URL Requester (KF5)" + WHATSTHIS "A widget holding a combobox and a pushbutton. A \"file open\" dialog opened when clicking on the pushbutton." + GROUP "Input (KF5)" +) +ecm_qtdesignerplugin_widget(KUrlRequester + TOOLTIP "URL Requester (KF5)" + WHATSTHIS "A widget holding a lineedit and a pushbutton. A \"file open\" dialog opened when clicking on the pushbutton." + GROUP "Input (KF5)" +) + +ecm_add_qtdesignerplugin(kiowidgets + NAME KIOWidgets + OUTPUT_NAME kio5widgets + WIDGETS + KImageFilePreview + KUrlComboRequester + KUrlRequester + LINK_LIBRARIES + KF5::KIOWidgets + KF5::KIOFileWidgets + INSTALL_DESTINATION "${KDE_INSTALL_QTPLUGINDIR}/designer" + COMPONENT Devel +) diff --git a/src/designer/pics/kurlcomborequester.png b/src/designer/pics/kurlcomborequester.png new file mode 100644 index 00000000..4d775c1c Binary files /dev/null and b/src/designer/pics/kurlcomborequester.png differ diff --git a/src/designer/pics/kurlrequester.png b/src/designer/pics/kurlrequester.png new file mode 100644 index 00000000..2410da3a Binary files /dev/null and b/src/designer/pics/kurlrequester.png differ