-# Builds the qtui module
+quassel_add_module(QtUi EXPORT)
-set(QT_DONT_USE_QTGUI 0)
-set(QT_USE_QTNETWORK 1)
-set(QT_USE_QTDBUS 1)
-include(${QT_USE_FILE})
-
-set(SOURCES
+target_sources(${TARGET} PRIVATE
aboutdlg.cpp
+ awaylogfilter.cpp
+ awaylogview.cpp
bufferwidget.cpp
channellistdlg.cpp
chatitem.cpp
chatmonitorview.cpp
chatscene.cpp
chatview.cpp
+ chatviewsearchbar.cpp
+ chatviewsearchcontroller.cpp
+ chatviewsettings.cpp
columnhandleitem.cpp
coreconfigwizard.cpp
coreconnectdlg.cpp
+ coreconnectionstatuswidget.cpp
coreinfodlg.cpp
- debugconsole.cpp
+ coresessionwidget.cpp
+ debugbufferviewoverlay.cpp
+ debuglogdlg.cpp
+ debugmessagemodelfilter.cpp
inputwidget.cpp
- jumpkeyhandler.cpp
+ ircconnectionwizard.cpp
+ legacysystemtray.cpp
+ mainpage.cpp
mainwin.cpp
+ markerlineitem.cpp
msgprocessorstatuswidget.cpp
nicklistwidget.cpp
- qtuiapplication.cpp
+ passwordchangedlg.cpp
qtui.cpp
+ qtuiapplication.cpp
qtuimessageprocessor.cpp
qtuisettings.cpp
qtuistyle.cpp
- sessionsettings.cpp
+ receivefiledlg.cpp
+ resourcetreedlg.cpp
settingsdlg.cpp
settingspagedlg.cpp
+ simplenetworkeditor.cpp
+ sslinfodlg.cpp
+ systemtray.cpp
+ systrayanimationnotificationbackend.cpp
+ systraynotificationbackend.cpp
+ taskbarnotificationbackend.cpp
titlesetter.cpp
- topiclabel.cpp
topicwidget.cpp
- verticaldock.cpp)
+ verticaldock.cpp
+ webpreviewitem.cpp
-set(MOC_HDRS
- aboutdlg.h
- bufferwidget.h
- channellistdlg.h
- chatlinemodel.h
- chatmonitorfilter.h
- chatmonitorview.h
- chatscene.h
- chatview.h
- columnhandleitem.h
- coreconfigwizard.h
- coreconnectdlg.h
- coreinfodlg.h
- debugconsole.h
- inputwidget.h
- jumpkeyhandler.h
- mainwin.h
- msgprocessorstatuswidget.h
- nicklistwidget.h
- qtui.h
- qtuiapplication.h
- qtuimessageprocessor.h
- settingsdlg.h
- settingspagedlg.h
- titlesetter.h
- topiclabel.h
- topicwidget.h
- verticaldock.h)
-
-set(HEADERS
- chatitem.h
- chatline.h
- chatlinemodelitem.h
- qtuisettings.h
- qtuistyle.h)
-
-set(FORMS
+ # UI files
aboutdlg.ui
bufferviewwidget.ui
bufferwidget.ui
channellistdlg.ui
- coreaccounteditdlg.ui
+ chatviewsearchbar.ui
coreconfigwizardintropage.ui
+ coreconfigwizardauthenticationselectionpage.ui
coreconfigwizardadminuserpage.ui
coreconfigwizardstorageselectionpage.ui
coreconfigwizardsyncpage.ui
- coreconnectdlg.ui
+ coreconnectauthdlg.ui
+ coreconnectionstatuswidget.ui
coreinfodlg.ui
- debugconsole.ui
+ coresessionwidget.ui
+ debugbufferviewoverlay.ui
+ debuglogdlg.ui
inputwidget.ui
- mainwin.ui
msgprocessorstatuswidget.ui
nicklistwidget.ui
+ passwordchangedlg.ui
+ receivefiledlg.ui
+ resourcetreedlg.ui
settingsdlg.ui
settingspagedlg.ui
- topicwidget.ui)
+ simplenetworkeditor.ui
+ sslinfodlg.ui
+ systrayanimationconfigwidget.ui
+ topicwidget.ui
+)
+
+# 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_KDE)
+ target_sources(${TARGET} PRIVATE knotificationbackend.cpp)
+ target_link_libraries(${TARGET} PUBLIC
+ KF5::ConfigWidgets
+ KF5::Notifications
+ KF5::NotifyConfig
+ KF5::WidgetsAddons
+ KF5::XmlGui
+ )
+endif()
+
+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 (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 (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()
-foreach(FORM ${FORMS})
- set(FORMPATH ${FORMPATH} ui/${FORM})
-endforeach(FORM ${FORMS})
+ 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)
-# handle settingspages
-include(settingspages/settingspages.inc)
-foreach(SP ${SETTINGSPAGES})
- set(SPSRC ${SPSRC} settingspages/${SP}settingspage.cpp)
- set(SPHDR ${SPHDR} settingspages/${SP}settingspage.h)
- set(SPFRM ${SPFRM} settingspages/${SP}settingspage.ui)
-endforeach(SP ${SETTINGSPAGES})
-foreach(SRC ${SP_SOURCES})
- set(SPSRC ${SPSRC} settingspages/${SRC})
-endforeach(SRC ${SP_SOURCES})
-foreach(HDR ${SP_HEADERS})
- set(SPHDR ${SPHDR} settingspages/${HDR})
-endforeach(HDR ${SP_HEADERS})
-foreach(FRM ${SP_FORMS})
- set(SPFRM ${SPFRM} settingspages/${FRM})
-endforeach(FRM ${SP_FORMS})
+ target_sources(${TARGET} PRIVATE
+ dockmanagernotificationbackend.cpp
+ statusnotifieritem.cpp
+ statusnotifieritemdbus.cpp
+ ${DBUS_SOURCES}
+ )
+endif()
+if (HAVE_WEBKIT)
+ target_compile_definitions(${TARGET} PRIVATE -DHAVE_WEBKIT)
+ target_link_libraries(${TARGET} PRIVATE
+ Qt5::WebKit
+ Qt5::WebKitWidgets
+ )
+endif()
-qt4_wrap_cpp(MOC ${MOC_HDRS} ${SPHDR})
-qt4_wrap_ui(UI ${FORMPATH} ${SPFRM})
+if (HAVE_WEBENGINE)
+ target_compile_definitions(${TARGET} PRIVATE -DHAVE_WEBENGINE)
+ target_link_libraries(${TARGET} PRIVATE
+ Qt5::WebEngine
+ Qt5::WebEngineWidgets)
+endif()
-IF(HAVE_DBUS)
- qt4_add_dbus_interface(DBUS ../../interfaces/org.freedesktop.Notifications.xml desktopnotifications)
-ENDIF(HAVE_DBUS)
+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()
-include_directories(${CMAKE_SOURCE_DIR}/src/common
- ${CMAKE_SOURCE_DIR}/src/client
- ${CMAKE_SOURCE_DIR}/src/qtui
- ${CMAKE_SOURCE_DIR}/src/uisupport
- ${CMAKE_CURRENT_BINARY_DIR})
+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} ${MOC} ${DBUS} ${UI} ${HEADERS})
-add_dependencies(mod_qtui mod_common mod_client mod_uisupport)
+if (WITH_OXYGEN_ICONS)
+ set_property(SOURCE qtui.cpp APPEND PROPERTY COMPILE_DEFINITIONS WITH_OXYGEN_ICONS)
+endif()