diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 458e8f585..6e1c97025 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -9,6 +9,7 @@ add_subdirectory(libneochat) add_subdirectory(login) add_subdirectory(rooms) add_subdirectory(roominfo) +add_subdirectory(messagecontent) add_subdirectory(timeline) add_subdirectory(spaces) add_subdirectory(chatbar) diff --git a/src/app/CMakeLists.txt b/src/app/CMakeLists.txt index b4add8d59..56e001549 100644 --- a/src/app/CMakeLists.txt +++ b/src/app/CMakeLists.txt @@ -108,6 +108,7 @@ ecm_add_qml_module(neochat URI org.kde.neochat GENERATE_PLUGIN_SOURCE org.kde.neochat.libneochat org.kde.neochat.rooms org.kde.neochat.roominfo + org.kde.neochat.messagecontent org.kde.neochat.timeline org.kde.neochat.spaces org.kde.neochat.settings @@ -176,7 +177,7 @@ else() endif() target_include_directories(neochat PRIVATE ${CMAKE_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/models) -target_link_libraries(neochat PRIVATE Loginplugin Roomsplugin RoomInfoplugin Timelineplugin Spacesplugin Chatbarplugin Settingsplugin Devtoolsplugin) +target_link_libraries(neochat PRIVATE Loginplugin Roomsplugin RoomInfoplugin MessageContentplugin Timelineplugin Spacesplugin Chatbarplugin Settingsplugin Devtoolsplugin) target_link_libraries(neochat PUBLIC LibNeoChat Timeline @@ -201,6 +202,7 @@ target_link_libraries(neochat PUBLIC QuotientQt6 Login Rooms + MessageContent Spaces ) diff --git a/src/app/main.cpp b/src/app/main.cpp index cc890083c..3165d63fc 100644 --- a/src/app/main.cpp +++ b/src/app/main.cpp @@ -244,13 +244,6 @@ int main(int argc, char *argv[]) LoginHelper::instance().setAccountManager(accountManager.get()); Registration::instance().setAccountManager(accountManager.get()); - Q_IMPORT_QML_PLUGIN(org_kde_neochat_settingsPlugin) - Q_IMPORT_QML_PLUGIN(org_kde_neochat_roomsPlugin) - Q_IMPORT_QML_PLUGIN(org_kde_neochat_timelinePlugin) - Q_IMPORT_QML_PLUGIN(org_kde_neochat_devtoolsPlugin) - Q_IMPORT_QML_PLUGIN(org_kde_neochat_loginPlugin) - Q_IMPORT_QML_PLUGIN(org_kde_neochat_chatbarPlugin) - qml_register_types_org_kde_neochat(); qmlRegisterUncreatableMetaObject(Quotient::staticMetaObject, "Quotient", 1, 0, "JoinRule", u"Access to JoinRule enum only"_s); diff --git a/src/timeline/AudioComponent.qml b/src/messagecontent/AudioComponent.qml similarity index 100% rename from src/timeline/AudioComponent.qml rename to src/messagecontent/AudioComponent.qml diff --git a/src/timeline/AuthorComponent.qml b/src/messagecontent/AuthorComponent.qml similarity index 100% rename from src/timeline/AuthorComponent.qml rename to src/messagecontent/AuthorComponent.qml diff --git a/src/timeline/BaseMessageComponentChooser.qml b/src/messagecontent/BaseMessageComponentChooser.qml similarity index 100% rename from src/timeline/BaseMessageComponentChooser.qml rename to src/messagecontent/BaseMessageComponentChooser.qml diff --git a/src/messagecontent/CMakeLists.txt b/src/messagecontent/CMakeLists.txt new file mode 100644 index 000000000..bd93c6449 --- /dev/null +++ b/src/messagecontent/CMakeLists.txt @@ -0,0 +1,107 @@ +# SPDX-FileCopyrightText: 2024 James Graham +# SPDX-License-Identifier: BSD-2-Clause + +qt_add_library(MessageContent STATIC) +ecm_add_qml_module(MessageContent GENERATE_PLUGIN_SOURCE + URI org.kde.neochat.messagecontent + OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/src/org/kde/neochat/messagecontent + QML_FILES + BaseMessageComponentChooser.qml + MessageComponentChooser.qml + ReplyMessageComponentChooser.qml + AuthorComponent.qml + AudioComponent.qml + ChatBarComponent.qml + CodeComponent.qml + EncryptedComponent.qml + FetchButtonComponent.qml + FileComponent.qml + ImageComponent.qml + ItineraryComponent.qml + ItineraryReservationComponent.qml + JourneySectionStopDelegateLineSegment.qml + TransportIcon.qml + FoodReservationComponent.qml + TrainReservationComponent.qml + FlightReservationComponent.qml + HotelReservationComponent.qml + LinkPreviewComponent.qml + LinkPreviewLoadComponent.qml + LiveLocationComponent.qml + LoadComponent.qml + LocationComponent.qml + MimeComponent.qml + PdfPreviewComponent.qml + PollComponent.qml + QuoteComponent.qml + ReactionComponent.qml + ReplyAuthorComponent.qml + ReplyButtonComponent.qml + ReplyComponent.qml + StateComponent.qml + TextComponent.qml + ThreadBodyComponent.qml + VideoComponent.qml + SOURCES + contentprovider.cpp + mediasizehelper.cpp + pollhandler.cpp + models/itinerarymodel.cpp + models/linemodel.cpp + models/messagecontentmodel.cpp + models/pollanswermodel.cpp + models/reactionmodel.cpp + models/threadmodel.cpp + RESOURCES + images/bike.svg + images/bus.svg + images/cablecar.svg + images/car.svg + images/coach.svg + images/couchettecar.svg + images/elevator.svg + images/escalator.svg + images/ferry.svg + images/flight.svg + images/foodestablishment.svg + images/funicular.svg + images/longdistancetrain.svg + images/rapidtransit.svg + images/seat.svg + images/shuttle.svg + images/sleepingcar.svg + images/stairs.svg + images/subway.svg + images/taxi.svg + images/train.svg + images/tramway.svg + images/transfer.svg + images/wait.svg + images/walk.svg + DEPENDENCIES + QtQuick +) + +configure_file(config-neochat.h.in ${CMAKE_CURRENT_BINARY_DIR}/config-neochat.h) + +ecm_qt_declare_logging_category(MessageContent + HEADER "messagemodel_logging.h" + IDENTIFIER "Message" + CATEGORY_NAME "org.kde.neochat.messagemodel" + DESCRIPTION "Neochat: messagemodel" + DEFAULT_SEVERITY Info + EXPORT NEOCHAT +) + +target_include_directories(MessageContent PRIVATE ${CMAKE_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/models) +target_link_libraries(MessageContent PRIVATE + Qt::Core + Qt::Quick + Qt::QuickControls2 + KF6::Kirigami + LibNeoChat +) + +if(NOT ANDROID) + target_link_libraries(MessageContent PUBLIC KF6::SyntaxHighlighting) +endif() diff --git a/src/timeline/ChatBarComponent.qml b/src/messagecontent/ChatBarComponent.qml similarity index 100% rename from src/timeline/ChatBarComponent.qml rename to src/messagecontent/ChatBarComponent.qml diff --git a/src/timeline/CodeComponent.qml b/src/messagecontent/CodeComponent.qml similarity index 100% rename from src/timeline/CodeComponent.qml rename to src/messagecontent/CodeComponent.qml diff --git a/src/timeline/EncryptedComponent.qml b/src/messagecontent/EncryptedComponent.qml similarity index 100% rename from src/timeline/EncryptedComponent.qml rename to src/messagecontent/EncryptedComponent.qml diff --git a/src/timeline/FetchButtonComponent.qml b/src/messagecontent/FetchButtonComponent.qml similarity index 100% rename from src/timeline/FetchButtonComponent.qml rename to src/messagecontent/FetchButtonComponent.qml diff --git a/src/timeline/FileComponent.qml b/src/messagecontent/FileComponent.qml similarity index 100% rename from src/timeline/FileComponent.qml rename to src/messagecontent/FileComponent.qml diff --git a/src/timeline/FlightReservationComponent.qml b/src/messagecontent/FlightReservationComponent.qml similarity index 100% rename from src/timeline/FlightReservationComponent.qml rename to src/messagecontent/FlightReservationComponent.qml diff --git a/src/timeline/FoodReservationComponent.qml b/src/messagecontent/FoodReservationComponent.qml similarity index 100% rename from src/timeline/FoodReservationComponent.qml rename to src/messagecontent/FoodReservationComponent.qml diff --git a/src/timeline/HotelReservationComponent.qml b/src/messagecontent/HotelReservationComponent.qml similarity index 100% rename from src/timeline/HotelReservationComponent.qml rename to src/messagecontent/HotelReservationComponent.qml diff --git a/src/timeline/ImageComponent.qml b/src/messagecontent/ImageComponent.qml similarity index 100% rename from src/timeline/ImageComponent.qml rename to src/messagecontent/ImageComponent.qml diff --git a/src/timeline/ItineraryComponent.qml b/src/messagecontent/ItineraryComponent.qml similarity index 100% rename from src/timeline/ItineraryComponent.qml rename to src/messagecontent/ItineraryComponent.qml diff --git a/src/timeline/ItineraryReservationComponent.qml b/src/messagecontent/ItineraryReservationComponent.qml similarity index 100% rename from src/timeline/ItineraryReservationComponent.qml rename to src/messagecontent/ItineraryReservationComponent.qml diff --git a/src/timeline/JourneySectionStopDelegateLineSegment.qml b/src/messagecontent/JourneySectionStopDelegateLineSegment.qml similarity index 100% rename from src/timeline/JourneySectionStopDelegateLineSegment.qml rename to src/messagecontent/JourneySectionStopDelegateLineSegment.qml diff --git a/src/timeline/LinkPreviewComponent.qml b/src/messagecontent/LinkPreviewComponent.qml similarity index 100% rename from src/timeline/LinkPreviewComponent.qml rename to src/messagecontent/LinkPreviewComponent.qml diff --git a/src/timeline/LinkPreviewLoadComponent.qml b/src/messagecontent/LinkPreviewLoadComponent.qml similarity index 100% rename from src/timeline/LinkPreviewLoadComponent.qml rename to src/messagecontent/LinkPreviewLoadComponent.qml diff --git a/src/timeline/LiveLocationComponent.qml b/src/messagecontent/LiveLocationComponent.qml similarity index 100% rename from src/timeline/LiveLocationComponent.qml rename to src/messagecontent/LiveLocationComponent.qml diff --git a/src/timeline/LoadComponent.qml b/src/messagecontent/LoadComponent.qml similarity index 100% rename from src/timeline/LoadComponent.qml rename to src/messagecontent/LoadComponent.qml diff --git a/src/timeline/LocationComponent.qml b/src/messagecontent/LocationComponent.qml similarity index 100% rename from src/timeline/LocationComponent.qml rename to src/messagecontent/LocationComponent.qml diff --git a/src/timeline/MessageComponentChooser.qml b/src/messagecontent/MessageComponentChooser.qml similarity index 100% rename from src/timeline/MessageComponentChooser.qml rename to src/messagecontent/MessageComponentChooser.qml diff --git a/src/timeline/MimeComponent.qml b/src/messagecontent/MimeComponent.qml similarity index 100% rename from src/timeline/MimeComponent.qml rename to src/messagecontent/MimeComponent.qml diff --git a/src/timeline/PdfPreviewComponent.qml b/src/messagecontent/PdfPreviewComponent.qml similarity index 100% rename from src/timeline/PdfPreviewComponent.qml rename to src/messagecontent/PdfPreviewComponent.qml diff --git a/src/timeline/PollComponent.qml b/src/messagecontent/PollComponent.qml similarity index 100% rename from src/timeline/PollComponent.qml rename to src/messagecontent/PollComponent.qml diff --git a/src/timeline/QuoteComponent.qml b/src/messagecontent/QuoteComponent.qml similarity index 100% rename from src/timeline/QuoteComponent.qml rename to src/messagecontent/QuoteComponent.qml diff --git a/src/timeline/ReactionComponent.qml b/src/messagecontent/ReactionComponent.qml similarity index 100% rename from src/timeline/ReactionComponent.qml rename to src/messagecontent/ReactionComponent.qml diff --git a/src/timeline/ReplyAuthorComponent.qml b/src/messagecontent/ReplyAuthorComponent.qml similarity index 100% rename from src/timeline/ReplyAuthorComponent.qml rename to src/messagecontent/ReplyAuthorComponent.qml diff --git a/src/timeline/ReplyButtonComponent.qml b/src/messagecontent/ReplyButtonComponent.qml similarity index 100% rename from src/timeline/ReplyButtonComponent.qml rename to src/messagecontent/ReplyButtonComponent.qml diff --git a/src/timeline/ReplyComponent.qml b/src/messagecontent/ReplyComponent.qml similarity index 100% rename from src/timeline/ReplyComponent.qml rename to src/messagecontent/ReplyComponent.qml diff --git a/src/timeline/ReplyMessageComponentChooser.qml b/src/messagecontent/ReplyMessageComponentChooser.qml similarity index 100% rename from src/timeline/ReplyMessageComponentChooser.qml rename to src/messagecontent/ReplyMessageComponentChooser.qml diff --git a/src/timeline/StateComponent.qml b/src/messagecontent/StateComponent.qml similarity index 100% rename from src/timeline/StateComponent.qml rename to src/messagecontent/StateComponent.qml diff --git a/src/timeline/TextComponent.qml b/src/messagecontent/TextComponent.qml similarity index 100% rename from src/timeline/TextComponent.qml rename to src/messagecontent/TextComponent.qml diff --git a/src/timeline/ThreadBodyComponent.qml b/src/messagecontent/ThreadBodyComponent.qml similarity index 100% rename from src/timeline/ThreadBodyComponent.qml rename to src/messagecontent/ThreadBodyComponent.qml diff --git a/src/timeline/TrainReservationComponent.qml b/src/messagecontent/TrainReservationComponent.qml similarity index 100% rename from src/timeline/TrainReservationComponent.qml rename to src/messagecontent/TrainReservationComponent.qml diff --git a/src/timeline/TransportIcon.qml b/src/messagecontent/TransportIcon.qml similarity index 100% rename from src/timeline/TransportIcon.qml rename to src/messagecontent/TransportIcon.qml diff --git a/src/timeline/VideoComponent.qml b/src/messagecontent/VideoComponent.qml similarity index 100% rename from src/timeline/VideoComponent.qml rename to src/messagecontent/VideoComponent.qml diff --git a/src/timeline/config-neochat.h.in b/src/messagecontent/config-neochat.h.in similarity index 100% rename from src/timeline/config-neochat.h.in rename to src/messagecontent/config-neochat.h.in diff --git a/src/timeline/contentprovider.cpp b/src/messagecontent/contentprovider.cpp similarity index 100% rename from src/timeline/contentprovider.cpp rename to src/messagecontent/contentprovider.cpp diff --git a/src/timeline/contentprovider.h b/src/messagecontent/contentprovider.h similarity index 100% rename from src/timeline/contentprovider.h rename to src/messagecontent/contentprovider.h diff --git a/src/timeline/images/bike.svg b/src/messagecontent/images/bike.svg similarity index 100% rename from src/timeline/images/bike.svg rename to src/messagecontent/images/bike.svg diff --git a/src/timeline/images/bike.svg.license b/src/messagecontent/images/bike.svg.license similarity index 100% rename from src/timeline/images/bike.svg.license rename to src/messagecontent/images/bike.svg.license diff --git a/src/timeline/images/bus.svg b/src/messagecontent/images/bus.svg similarity index 100% rename from src/timeline/images/bus.svg rename to src/messagecontent/images/bus.svg diff --git a/src/timeline/images/bus.svg.license b/src/messagecontent/images/bus.svg.license similarity index 100% rename from src/timeline/images/bus.svg.license rename to src/messagecontent/images/bus.svg.license diff --git a/src/timeline/images/cablecar.svg b/src/messagecontent/images/cablecar.svg similarity index 100% rename from src/timeline/images/cablecar.svg rename to src/messagecontent/images/cablecar.svg diff --git a/src/timeline/images/cablecar.svg.license b/src/messagecontent/images/cablecar.svg.license similarity index 100% rename from src/timeline/images/cablecar.svg.license rename to src/messagecontent/images/cablecar.svg.license diff --git a/src/timeline/images/car.svg b/src/messagecontent/images/car.svg similarity index 100% rename from src/timeline/images/car.svg rename to src/messagecontent/images/car.svg diff --git a/src/timeline/images/car.svg.license b/src/messagecontent/images/car.svg.license similarity index 100% rename from src/timeline/images/car.svg.license rename to src/messagecontent/images/car.svg.license diff --git a/src/timeline/images/coach.svg b/src/messagecontent/images/coach.svg similarity index 100% rename from src/timeline/images/coach.svg rename to src/messagecontent/images/coach.svg diff --git a/src/timeline/images/coach.svg.license b/src/messagecontent/images/coach.svg.license similarity index 100% rename from src/timeline/images/coach.svg.license rename to src/messagecontent/images/coach.svg.license diff --git a/src/timeline/images/couchettecar.svg b/src/messagecontent/images/couchettecar.svg similarity index 100% rename from src/timeline/images/couchettecar.svg rename to src/messagecontent/images/couchettecar.svg diff --git a/src/timeline/images/couchettecar.svg.license b/src/messagecontent/images/couchettecar.svg.license similarity index 100% rename from src/timeline/images/couchettecar.svg.license rename to src/messagecontent/images/couchettecar.svg.license diff --git a/src/timeline/images/elevator.svg b/src/messagecontent/images/elevator.svg similarity index 100% rename from src/timeline/images/elevator.svg rename to src/messagecontent/images/elevator.svg diff --git a/src/timeline/images/elevator.svg.license b/src/messagecontent/images/elevator.svg.license similarity index 100% rename from src/timeline/images/elevator.svg.license rename to src/messagecontent/images/elevator.svg.license diff --git a/src/timeline/images/escalator.svg b/src/messagecontent/images/escalator.svg similarity index 100% rename from src/timeline/images/escalator.svg rename to src/messagecontent/images/escalator.svg diff --git a/src/timeline/images/escalator.svg.license b/src/messagecontent/images/escalator.svg.license similarity index 100% rename from src/timeline/images/escalator.svg.license rename to src/messagecontent/images/escalator.svg.license diff --git a/src/timeline/images/ferry.svg b/src/messagecontent/images/ferry.svg similarity index 100% rename from src/timeline/images/ferry.svg rename to src/messagecontent/images/ferry.svg diff --git a/src/timeline/images/ferry.svg.license b/src/messagecontent/images/ferry.svg.license similarity index 100% rename from src/timeline/images/ferry.svg.license rename to src/messagecontent/images/ferry.svg.license diff --git a/src/timeline/images/flight.svg b/src/messagecontent/images/flight.svg similarity index 100% rename from src/timeline/images/flight.svg rename to src/messagecontent/images/flight.svg diff --git a/src/timeline/images/flight.svg.license b/src/messagecontent/images/flight.svg.license similarity index 100% rename from src/timeline/images/flight.svg.license rename to src/messagecontent/images/flight.svg.license diff --git a/src/timeline/images/foodestablishment.svg b/src/messagecontent/images/foodestablishment.svg similarity index 100% rename from src/timeline/images/foodestablishment.svg rename to src/messagecontent/images/foodestablishment.svg diff --git a/src/timeline/images/foodestablishment.svg.license b/src/messagecontent/images/foodestablishment.svg.license similarity index 100% rename from src/timeline/images/foodestablishment.svg.license rename to src/messagecontent/images/foodestablishment.svg.license diff --git a/src/timeline/images/funicular.svg b/src/messagecontent/images/funicular.svg similarity index 100% rename from src/timeline/images/funicular.svg rename to src/messagecontent/images/funicular.svg diff --git a/src/timeline/images/funicular.svg.license b/src/messagecontent/images/funicular.svg.license similarity index 100% rename from src/timeline/images/funicular.svg.license rename to src/messagecontent/images/funicular.svg.license diff --git a/src/timeline/images/longdistancetrain.svg b/src/messagecontent/images/longdistancetrain.svg similarity index 100% rename from src/timeline/images/longdistancetrain.svg rename to src/messagecontent/images/longdistancetrain.svg diff --git a/src/timeline/images/longdistancetrain.svg.license b/src/messagecontent/images/longdistancetrain.svg.license similarity index 100% rename from src/timeline/images/longdistancetrain.svg.license rename to src/messagecontent/images/longdistancetrain.svg.license diff --git a/src/timeline/images/rapidtransit.svg b/src/messagecontent/images/rapidtransit.svg similarity index 100% rename from src/timeline/images/rapidtransit.svg rename to src/messagecontent/images/rapidtransit.svg diff --git a/src/timeline/images/rapidtransit.svg.license b/src/messagecontent/images/rapidtransit.svg.license similarity index 100% rename from src/timeline/images/rapidtransit.svg.license rename to src/messagecontent/images/rapidtransit.svg.license diff --git a/src/timeline/images/seat.svg b/src/messagecontent/images/seat.svg similarity index 100% rename from src/timeline/images/seat.svg rename to src/messagecontent/images/seat.svg diff --git a/src/timeline/images/seat.svg.license b/src/messagecontent/images/seat.svg.license similarity index 100% rename from src/timeline/images/seat.svg.license rename to src/messagecontent/images/seat.svg.license diff --git a/src/timeline/images/shuttle.svg b/src/messagecontent/images/shuttle.svg similarity index 100% rename from src/timeline/images/shuttle.svg rename to src/messagecontent/images/shuttle.svg diff --git a/src/timeline/images/shuttle.svg.license b/src/messagecontent/images/shuttle.svg.license similarity index 100% rename from src/timeline/images/shuttle.svg.license rename to src/messagecontent/images/shuttle.svg.license diff --git a/src/timeline/images/sleepingcar.svg b/src/messagecontent/images/sleepingcar.svg similarity index 100% rename from src/timeline/images/sleepingcar.svg rename to src/messagecontent/images/sleepingcar.svg diff --git a/src/timeline/images/sleepingcar.svg.license b/src/messagecontent/images/sleepingcar.svg.license similarity index 100% rename from src/timeline/images/sleepingcar.svg.license rename to src/messagecontent/images/sleepingcar.svg.license diff --git a/src/timeline/images/stairs.svg b/src/messagecontent/images/stairs.svg similarity index 100% rename from src/timeline/images/stairs.svg rename to src/messagecontent/images/stairs.svg diff --git a/src/timeline/images/stairs.svg.license b/src/messagecontent/images/stairs.svg.license similarity index 100% rename from src/timeline/images/stairs.svg.license rename to src/messagecontent/images/stairs.svg.license diff --git a/src/timeline/images/subway.svg b/src/messagecontent/images/subway.svg similarity index 100% rename from src/timeline/images/subway.svg rename to src/messagecontent/images/subway.svg diff --git a/src/timeline/images/subway.svg.license b/src/messagecontent/images/subway.svg.license similarity index 100% rename from src/timeline/images/subway.svg.license rename to src/messagecontent/images/subway.svg.license diff --git a/src/timeline/images/taxi.svg b/src/messagecontent/images/taxi.svg similarity index 100% rename from src/timeline/images/taxi.svg rename to src/messagecontent/images/taxi.svg diff --git a/src/timeline/images/taxi.svg.license b/src/messagecontent/images/taxi.svg.license similarity index 100% rename from src/timeline/images/taxi.svg.license rename to src/messagecontent/images/taxi.svg.license diff --git a/src/timeline/images/train.svg b/src/messagecontent/images/train.svg similarity index 100% rename from src/timeline/images/train.svg rename to src/messagecontent/images/train.svg diff --git a/src/timeline/images/train.svg.license b/src/messagecontent/images/train.svg.license similarity index 100% rename from src/timeline/images/train.svg.license rename to src/messagecontent/images/train.svg.license diff --git a/src/timeline/images/tramway.svg b/src/messagecontent/images/tramway.svg similarity index 100% rename from src/timeline/images/tramway.svg rename to src/messagecontent/images/tramway.svg diff --git a/src/timeline/images/tramway.svg.license b/src/messagecontent/images/tramway.svg.license similarity index 100% rename from src/timeline/images/tramway.svg.license rename to src/messagecontent/images/tramway.svg.license diff --git a/src/timeline/images/transfer.svg b/src/messagecontent/images/transfer.svg similarity index 100% rename from src/timeline/images/transfer.svg rename to src/messagecontent/images/transfer.svg diff --git a/src/timeline/images/transfer.svg.license b/src/messagecontent/images/transfer.svg.license similarity index 100% rename from src/timeline/images/transfer.svg.license rename to src/messagecontent/images/transfer.svg.license diff --git a/src/timeline/images/wait.svg b/src/messagecontent/images/wait.svg similarity index 100% rename from src/timeline/images/wait.svg rename to src/messagecontent/images/wait.svg diff --git a/src/timeline/images/wait.svg.license b/src/messagecontent/images/wait.svg.license similarity index 100% rename from src/timeline/images/wait.svg.license rename to src/messagecontent/images/wait.svg.license diff --git a/src/timeline/images/walk.svg b/src/messagecontent/images/walk.svg similarity index 100% rename from src/timeline/images/walk.svg rename to src/messagecontent/images/walk.svg diff --git a/src/timeline/images/walk.svg.license b/src/messagecontent/images/walk.svg.license similarity index 100% rename from src/timeline/images/walk.svg.license rename to src/messagecontent/images/walk.svg.license diff --git a/src/timeline/mediasizehelper.cpp b/src/messagecontent/mediasizehelper.cpp similarity index 100% rename from src/timeline/mediasizehelper.cpp rename to src/messagecontent/mediasizehelper.cpp diff --git a/src/timeline/mediasizehelper.h b/src/messagecontent/mediasizehelper.h similarity index 100% rename from src/timeline/mediasizehelper.h rename to src/messagecontent/mediasizehelper.h diff --git a/src/timeline/models/itinerarymodel.cpp b/src/messagecontent/models/itinerarymodel.cpp similarity index 100% rename from src/timeline/models/itinerarymodel.cpp rename to src/messagecontent/models/itinerarymodel.cpp diff --git a/src/timeline/models/itinerarymodel.h b/src/messagecontent/models/itinerarymodel.h similarity index 100% rename from src/timeline/models/itinerarymodel.h rename to src/messagecontent/models/itinerarymodel.h diff --git a/src/timeline/models/linemodel.cpp b/src/messagecontent/models/linemodel.cpp similarity index 100% rename from src/timeline/models/linemodel.cpp rename to src/messagecontent/models/linemodel.cpp diff --git a/src/timeline/models/linemodel.h b/src/messagecontent/models/linemodel.h similarity index 100% rename from src/timeline/models/linemodel.h rename to src/messagecontent/models/linemodel.h diff --git a/src/timeline/models/messagecontentmodel.cpp b/src/messagecontent/models/messagecontentmodel.cpp similarity index 100% rename from src/timeline/models/messagecontentmodel.cpp rename to src/messagecontent/models/messagecontentmodel.cpp diff --git a/src/timeline/models/messagecontentmodel.h b/src/messagecontent/models/messagecontentmodel.h similarity index 100% rename from src/timeline/models/messagecontentmodel.h rename to src/messagecontent/models/messagecontentmodel.h diff --git a/src/timeline/models/pollanswermodel.cpp b/src/messagecontent/models/pollanswermodel.cpp similarity index 100% rename from src/timeline/models/pollanswermodel.cpp rename to src/messagecontent/models/pollanswermodel.cpp diff --git a/src/timeline/models/pollanswermodel.h b/src/messagecontent/models/pollanswermodel.h similarity index 100% rename from src/timeline/models/pollanswermodel.h rename to src/messagecontent/models/pollanswermodel.h diff --git a/src/timeline/models/reactionmodel.cpp b/src/messagecontent/models/reactionmodel.cpp similarity index 100% rename from src/timeline/models/reactionmodel.cpp rename to src/messagecontent/models/reactionmodel.cpp diff --git a/src/timeline/models/reactionmodel.h b/src/messagecontent/models/reactionmodel.h similarity index 100% rename from src/timeline/models/reactionmodel.h rename to src/messagecontent/models/reactionmodel.h diff --git a/src/timeline/models/threadmodel.cpp b/src/messagecontent/models/threadmodel.cpp similarity index 100% rename from src/timeline/models/threadmodel.cpp rename to src/messagecontent/models/threadmodel.cpp diff --git a/src/timeline/models/threadmodel.h b/src/messagecontent/models/threadmodel.h similarity index 100% rename from src/timeline/models/threadmodel.h rename to src/messagecontent/models/threadmodel.h diff --git a/src/timeline/pollhandler.cpp b/src/messagecontent/pollhandler.cpp similarity index 100% rename from src/timeline/pollhandler.cpp rename to src/messagecontent/pollhandler.cpp diff --git a/src/timeline/pollhandler.h b/src/messagecontent/pollhandler.h similarity index 100% rename from src/timeline/pollhandler.h rename to src/messagecontent/pollhandler.h diff --git a/src/roominfo/CMakeLists.txt b/src/roominfo/CMakeLists.txt index 1bba1d72f..8c7db900a 100644 --- a/src/roominfo/CMakeLists.txt +++ b/src/roominfo/CMakeLists.txt @@ -14,4 +14,10 @@ ecm_add_qml_module(RoomInfo GENERATE_PLUGIN_SOURCE LocationsPage.qml RoomPinnedMessagesPage.qml RoomSearchPage.qml + SOURCES + locationhelper.cpp +) + +target_link_libraries(RoomInfo PRIVATE + Qt::Core ) diff --git a/src/timeline/locationhelper.cpp b/src/roominfo/locationhelper.cpp similarity index 100% rename from src/timeline/locationhelper.cpp rename to src/roominfo/locationhelper.cpp diff --git a/src/timeline/locationhelper.h b/src/roominfo/locationhelper.h similarity index 95% rename from src/timeline/locationhelper.h rename to src/roominfo/locationhelper.h index 8c848ad87..e4181e0f4 100644 --- a/src/timeline/locationhelper.h +++ b/src/roominfo/locationhelper.h @@ -15,7 +15,7 @@ class LocationHelper : public QObject QML_SINGLETON public: - /** Unite two rectanlges. */ + /** Unite two rectangles. */ Q_INVOKABLE static QRectF unite(const QRectF &r1, const QRectF &r2); /** Returns the center of @p r. */ Q_INVOKABLE static QPointF center(const QRectF &r); diff --git a/src/timeline/CMakeLists.txt b/src/timeline/CMakeLists.txt index e602cebc2..47cbf4b48 100644 --- a/src/timeline/CMakeLists.txt +++ b/src/timeline/CMakeLists.txt @@ -21,120 +21,34 @@ ecm_add_qml_module(Timeline GENERATE_PLUGIN_SOURCE AvatarFlow.qml QuickActions.qml TypingPane.qml - BaseMessageComponentChooser.qml - MessageComponentChooser.qml - ReplyMessageComponentChooser.qml - AuthorComponent.qml - AudioComponent.qml - ChatBarComponent.qml - CodeComponent.qml - EncryptedComponent.qml - FetchButtonComponent.qml - FileComponent.qml - ImageComponent.qml - ItineraryComponent.qml - ItineraryReservationComponent.qml - JourneySectionStopDelegateLineSegment.qml - TransportIcon.qml - FoodReservationComponent.qml - TrainReservationComponent.qml - FlightReservationComponent.qml - HotelReservationComponent.qml - LinkPreviewComponent.qml - LinkPreviewLoadComponent.qml - LiveLocationComponent.qml - LoadComponent.qml - LocationComponent.qml - MimeComponent.qml - PdfPreviewComponent.qml - PollComponent.qml - QuoteComponent.qml - ReactionComponent.qml - ReplyAuthorComponent.qml - ReplyButtonComponent.qml - ReplyComponent.qml - StateComponent.qml - TextComponent.qml - ThreadBodyComponent.qml - VideoComponent.qml DelegateContextMenu.qml FileDelegateContextMenu.qml MessageDelegateContextMenu.qml SOURCES - contentprovider.cpp - locationhelper.cpp - mediasizehelper.cpp messageattached.cpp messagedelegate.cpp - pollhandler.cpp timelinedelegate.cpp enums/delegatetype.h - models/itinerarymodel.cpp - models/linemodel.cpp models/mediamessagefiltermodel.cpp - models/messagecontentmodel.cpp models/messagecontentfiltermodel.cpp models/messagefiltermodel.cpp models/messagemodel.cpp models/pinnedmessagemodel.cpp - models/pollanswermodel.cpp - models/reactionmodel.cpp models/readmarkermodel.cpp models/searchmodel.cpp models/timelinemessagemodel.cpp models/timelinemodel.cpp - models/threadmodel.cpp models/webshortcutmodel.cpp - RESOURCES - images/bike.svg - images/bus.svg - images/cablecar.svg - images/car.svg - images/coach.svg - images/couchettecar.svg - images/elevator.svg - images/escalator.svg - images/ferry.svg - images/flight.svg - images/foodestablishment.svg - images/funicular.svg - images/longdistancetrain.svg - images/rapidtransit.svg - images/seat.svg - images/shuttle.svg - images/sleepingcar.svg - images/stairs.svg - images/subway.svg - images/taxi.svg - images/train.svg - images/tramway.svg - images/transfer.svg - images/wait.svg - images/walk.svg DEPENDENCIES QtQuick ) -configure_file(config-neochat.h.in ${CMAKE_CURRENT_BINARY_DIR}/config-neochat.h) - -ecm_qt_declare_logging_category(Timeline - HEADER "messagemodel_logging.h" - IDENTIFIER "Message" - CATEGORY_NAME "org.kde.neochat.messagemodel" - DESCRIPTION "Neochat: messagemodel" - DEFAULT_SEVERITY Info - EXPORT NEOCHAT -) - target_include_directories(Timeline PRIVATE ${CMAKE_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/enums ${CMAKE_CURRENT_SOURCE_DIR}/models) target_link_libraries(Timeline PRIVATE - LibNeoChat Qt::Core Qt::Quick Qt::QuickControls2 KF6::Kirigami + LibNeoChat + MessageContent ) - -if(NOT ANDROID) - target_link_libraries(Timeline PUBLIC KF6::SyntaxHighlighting) -endif() diff --git a/src/timeline/messageattached.h b/src/timeline/messageattached.h index 4e084d2aa..89fd61cce 100644 --- a/src/timeline/messageattached.h +++ b/src/timeline/messageattached.h @@ -7,7 +7,7 @@ #include #include -#include "messagecontentmodel.h" +#include "models/messagecontentmodel.h" #include "neochatroom.h" class MessageAttached : public QQuickAttachedPropertyPropagator diff --git a/src/timeline/models/messagemodel.h b/src/timeline/models/messagemodel.h index 9912890e9..095101647 100644 --- a/src/timeline/models/messagemodel.h +++ b/src/timeline/models/messagemodel.h @@ -9,9 +9,6 @@ #include "neochatroom.h" #include "readmarkermodel.h" -#include "threadmodel.h" - -class ReactionModel; /** * @class MessageModel diff --git a/src/timeline/models/readmarkermodel.cpp b/src/timeline/models/readmarkermodel.cpp index e9d034a85..75d089a0d 100644 --- a/src/timeline/models/readmarkermodel.cpp +++ b/src/timeline/models/readmarkermodel.cpp @@ -67,7 +67,7 @@ QVariant ReadMarkerModel::data(const QModelIndex &index, int role) const } if (index.row() >= rowCount()) { - qDebug() << "ReactionModel, something's wrong: index.row() >= rowCount()"; + qDebug() << "ReadMarkerModel, something's wrong: index.row() >= rowCount()"; return {}; } diff --git a/src/timeline/models/timelinemessagemodel.h b/src/timeline/models/timelinemessagemodel.h index 50a6ad203..e26d71d38 100644 --- a/src/timeline/models/timelinemessagemodel.h +++ b/src/timeline/models/timelinemessagemodel.h @@ -8,8 +8,6 @@ #include "messagemodel.h" -class ReactionModel; - namespace Quotient { class RoomEvent;