-# Builds the qtui module
+quassel_add_module(QtUi EXPORT)
-set(SOURCES
+target_sources(${TARGET} PRIVATE
aboutdlg.cpp
awaylogfilter.cpp
awaylogview.cpp
coreconnectdlg.cpp
coreconnectionstatuswidget.cpp
coreinfodlg.cpp
+ coresessionwidget.cpp
debugbufferviewoverlay.cpp
debugconsole.cpp
- debuglogwidget.cpp
+ debuglogdlg.cpp
debugmessagemodelfilter.cpp
inputwidget.cpp
ircconnectionwizard.cpp
qtuisettings.cpp
qtuistyle.cpp
receivefiledlg.cpp
+ resourcetreedlg.cpp
settingsdlg.cpp
settingspagedlg.cpp
simplenetworkeditor.cpp
systemtray.cpp
+ systrayanimationnotificationbackend.cpp
systraynotificationbackend.cpp
taskbarnotificationbackend.cpp
titlesetter.cpp
topicwidget.cpp
verticaldock.cpp
webpreviewitem.cpp
-)
-set(FORMS
+ # UI files
aboutdlg.ui
bufferviewwidget.ui
bufferwidget.ui
channellistdlg.ui
chatviewsearchbar.ui
coreconfigwizardintropage.ui
+ coreconfigwizardauthenticationselectionpage.ui
coreconfigwizardadminuserpage.ui
coreconfigwizardstorageselectionpage.ui
coreconfigwizardsyncpage.ui
coreconnectauthdlg.ui
coreconnectionstatuswidget.ui
coreinfodlg.ui
+ coresessionwidget.ui
debugbufferviewoverlay.ui
debugconsole.ui
- debuglogwidget.ui
+ debuglogdlg.ui
inputwidget.ui
msgprocessorstatuswidget.ui
nicklistwidget.ui
passwordchangedlg.ui
+ receivefiledlg.ui
+ resourcetreedlg.ui
settingsdlg.ui
settingspagedlg.ui
simplenetworkeditor.ui
- receivefiledlg.ui
+ systrayanimationconfigwidget.ui
topicwidget.ui
)
-set(LIBS )
-set(QT_MODULES )
-
-if (WITH_KDE4)
- add_definitions(-DHAVE_KDE ${KDE4_DEFINITIONS})
- include_directories(${KDE4_INCLUDES})
- list(APPEND SOURCES knotificationbackend.cpp)
- list(APPEND LIBS ${KDE4_KDECORE_LIBS} ${KDE4_KDEUI_LIBRARY} ${KDE4_KNOTIFYCONFIG_LIBRARY})
-endif()
+# Handle settingspages
+target_include_directories(${TARGET} PRIVATE settingspages)
+include(settingspages/settingspages.cmake)
+foreach(page ${SETTINGSPAGES})
+ target_sources(${TARGET} PRIVATE
+ settingspages/${page}settingspage.cpp
+ settingspages/${page}settingspage.ui
+ )
+endforeach()
+foreach(src ${SP_SOURCES})
+ target_sources(${TARGET} PRIVATE settingspages/${src})
+endforeach()
+foreach(form ${SP_FORMS})
+ target_sources(${TARGET} PRIVATE settingspages/${form})
+endforeach()
+
+target_link_libraries(${TARGET}
+ PUBLIC
+ Qt5::Core
+ Qt5::Gui
+ Qt5::Network
+ Qt5::Widgets
+ Quassel::UiSupport
+ Quassel::Client
+ Quassel::Common
+)
-if (WITH_KF5)
- list(APPEND SOURCES knotificationbackend.cpp)
- list(APPEND LIBS KF5::ConfigWidgets KF5::Notifications KF5::NotifyConfig KF5::WidgetsAddons KF5::XmlGui)
+if (WITH_KDE)
+ target_sources(${TARGET} PRIVATE knotificationbackend.cpp)
+ target_link_libraries(${TARGET} PUBLIC
+ KF5::ConfigWidgets
+ KF5::Notifications
+ KF5::NotifyConfig
+ KF5::WidgetsAddons
+ KF5::XmlGui
+ )
endif()
-if (LIBSNORE_FOUND)
- add_definitions(-DHAVE_LIBSNORE)
- include_directories(${LIBSNORE_INCLUDE_DIRS})
- list(APPEND SOURCES snorenotificationbackend.cpp)
- list(APPEND FORMS snorentificationconfigwidget.ui)
- list(APPEND LIBS ${LIBSNORE_LIBRARIES})
+if (KF5Sonnet_FOUND)
+ target_compile_definitions(${TARGET} PRIVATE -DHAVE_SONNET)
+ target_sources(${TARGET} PRIVATE settingspages/sonnetsettingspage.cpp)
+ target_link_libraries(${TARGET} PRIVATE KF5::SonnetUi)
endif()
-if (PHONON_FOUND OR Phonon4Qt5_FOUND)
- add_definitions(-DHAVE_PHONON)
- include_directories(${PHONON_INCLUDES})
- set(SOURCES ${SOURCES} phononnotificationbackend.cpp)
- set(FORMS ${FORMS} phononnotificationconfigwidget.ui)
- list(APPEND LIBS ${PHONON_LIBS}) # PHONON_LIBRARIES only exists in config mode, it's not set by the legacy FindPhonon.cmake
+if (Qt5Multimedia_FOUND)
+ target_compile_definitions(${TARGET} PRIVATE -DHAVE_QTMULTIMEDIA)
+ target_sources(${TARGET} PRIVATE
+ qtmultimedianotificationbackend.cpp
+ qtmultimedianotificationconfigwidget.ui
+ )
+ target_link_libraries(${TARGET} PRIVATE Qt5::Multimedia)
endif()
-if (QT_QTDBUS_FOUND OR Qt5DBus_FOUND)
- add_definitions(-DHAVE_DBUS)
- list(APPEND QT_MODULES DBus)
- if (dbusmenu-qt_FOUND OR dbusmenu-qt5_FOUND)
- add_definitions(-DHAVE_DBUSMENU)
- include_directories(${dbusmenu-qt_INCLUDE_DIRS} ${dbusmenu-qt5_INCLUDE_DIRS})
- if (dbusmenu-qt_FOUND)
- list(APPEND LIBS dbusmenu-qt)
- else()
- list(APPEND LIBS dbusmenu-qt5)
- endif()
+if (Qt5DBus_FOUND)
+ target_compile_definitions(${TARGET} PRIVATE -DHAVE_DBUS)
+ target_link_libraries(${TARGET} PRIVATE Qt5::DBus)
+ if (dbusmenu-qt5_FOUND)
+ target_compile_definitions(${TARGET} PRIVATE -DHAVE_DBUSMENU)
+ target_link_libraries(${TARGET} PRIVATE dbusmenu-qt5)
endif()
- list(APPEND SOURCES statusnotifieritem.cpp statusnotifieritemdbus.cpp dockmanagernotificationbackend.cpp)
- qt_add_dbus_interface(SOURCES ../../interfaces/org.kde.StatusNotifierWatcher.xml statusnotifierwatcher)
- qt_add_dbus_interface(SOURCES ../../interfaces/org.freedesktop.Notifications.xml notificationsclient)
- qt_add_dbus_adaptor (SOURCES ../../interfaces/org.kde.StatusNotifierItem.xml statusnotifieritemdbus.h StatusNotifierItemDBus)
+ qt5_add_dbus_interface(DBUS_SOURCES ../../interfaces/org.kde.StatusNotifierWatcher.xml statusnotifierwatcher)
+ qt5_add_dbus_interface(DBUS_SOURCES ../../interfaces/org.freedesktop.Notifications.xml notificationsclient)
+ qt5_add_dbus_adaptor (DBUS_SOURCES ../../interfaces/org.kde.StatusNotifierItem.xml statusnotifieritemdbus.h StatusNotifierItemDBus)
+
+ target_sources(${TARGET} PRIVATE
+ dockmanagernotificationbackend.cpp
+ statusnotifieritem.cpp
+ statusnotifieritemdbus.cpp
+ ${DBUS_SOURCES}
+ )
endif()
if (HAVE_WEBKIT)
- add_definitions(-DHAVE_WEBKIT)
- list(APPEND QT_MODULES WebKit)
- if (USE_QT5)
- list(APPEND QT_MODULES WebKitWidgets)
- endif()
+ target_compile_definitions(${TARGET} PRIVATE -DHAVE_WEBKIT)
+ target_link_libraries(${TARGET} PRIVATE
+ Qt5::WebKit
+ Qt5::WebKitWidgets
+ )
endif()
-if(HAVE_SSL)
- set(SOURCES ${SOURCES} sslinfodlg.cpp)
- set(FORMS ${FORMS} sslinfodlg.ui)
-endif(HAVE_SSL)
-
-if (INDICATEQT_FOUND)
- add_definitions(-DHAVE_INDICATEQT)
- include_directories(${INDICATEQT_INCLUDE_DIRS})
- list(APPEND SOURCES indicatornotificationbackend.cpp)
- list(APPEND FORMS indicatornotificationconfigwidget.ui)
- list(APPEND LIBS ${INDICATEQT_LIBRARIES})
+if (HAVE_WEBENGINE)
+ target_compile_definitions(${TARGET} PRIVATE -DHAVE_WEBENGINE)
+ target_link_libraries(${TARGET} PRIVATE
+ Qt5::WebEngine
+ Qt5::WebEngineWidgets)
endif()
-if (WITH_NOTIFICATION_CENTER)
- add_definitions(-DHAVE_NOTIFICATION_CENTER)
- list(APPEND SOURCES osxnotificationbackend.mm)
- list(APPEND LIBS "/System/Library/Frameworks/Foundation.framework")
+if (HAVE_SSL)
+ target_sources(${TARGET} PRIVATE
+ sslinfodlg.cpp
+ sslinfodlg.ui
+ )
endif()
-foreach(FORM ${FORMS})
- set(FORMPATH ${FORMPATH} ui/${FORM})
-endforeach(FORM ${FORMS})
-
-# handle settingspages
-include(settingspages/settingspages.cmake)
-foreach(SP ${SETTINGSPAGES})
- set(SPSRC ${SPSRC} settingspages/${SP}settingspage.cpp)
- set(SPFRM ${SPFRM} settingspages/${SP}settingspage.ui)
-endforeach(SP ${SETTINGSPAGES})
-foreach(SRC ${SP_SOURCES})
- set(SPSRC ${SPSRC} settingspages/${SRC})
-endforeach(SRC ${SP_SOURCES})
-foreach(FRM ${SP_FORMS})
- set(SPFRM ${SPFRM} settingspages/${FRM})
-endforeach(FRM ${SP_FORMS})
-
-include_directories(${CMAKE_SOURCE_DIR}/src/common
- ${CMAKE_SOURCE_DIR}/src/client
- ${CMAKE_SOURCE_DIR}/src/qtui
- ${CMAKE_SOURCE_DIR}/src/qtui/settingspages
- ${CMAKE_SOURCE_DIR}/src/uisupport
-)
-
-qt_wrap_ui(UI ${FORMPATH} ${SPFRM})
-
-if (USE_QT5)
- list(APPEND QT_MODULES Widgets)
+if (LibsnoreQt5_FOUND)
+ target_compile_definitions(${TARGET} PRIVATE -DHAVE_LIBSNORE)
+ target_sources(${TARGET} PRIVATE
+ snorenotificationbackend.cpp
+ snorentificationconfigwidget.ui
+ )
+ target_link_libraries(${TARGET} PRIVATE Snore::Libsnore Snore::LibsnoreSettings)
endif()
+if (WITH_NOTIFICATION_CENTER)
+ target_compile_definitions(${TARGET} PRIVATE -DHAVE_NOTIFICATION_CENTER)
+ target_sources(${TARGET} PRIVATE osxnotificationbackend.mm)
+ target_link_libraries(${TARGET} PRIVATE "/System/Library/Frameworks/Foundation.framework")
+endif()
-add_library(mod_qtui STATIC ${SOURCES} ${SPSRC} ${UI})
-qt_use_modules(mod_qtui Core Gui Network ${QT_MODULES})
-
-target_link_libraries(mod_qtui mod_client mod_common mod_uisupport ${LIBS})
+if (WITH_OXYGEN_ICONS)
+ set_property(SOURCE qtui.cpp APPEND PROPERTY COMPILE_DEFINITIONS WITH_OXYGEN_ICONS)
+endif()