/** * @RDE_HEADER@ * MarkerManagement - Marker Overview Dialog * $Id$ * $HeadURL$ * $Author$ * Created by Christian Ehrlicher, SLSE, 2016-02-29 */ #pragma once #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include namespace Ui { class SnapshotDialog; } namespace MarkerManagement { class SnapshotDialogModel; // -------------------------------------------------------- // SnapshotDialog // -------------------------------------------------------- class SnapshotDialog : public LtsWidgets::LtsDialog , protected MarkerManagement::Interface::Ftc::SnapshotRemoveReplyHandler , protected SituationReplayManagement::Interface::Ftc::ReplayPartitionRemoveReplyHandler , protected SituationReplay::Interface::Ftc::ChangeReplayStateReplyHandler , protected MarkerManagement::Interface::Ftc::SnapshotModifyReplyHandler , protected FileManagement::Interface::Ftc::FileContentRemoveReplyHandler , protected FileManagement::Interface::Ftc::FileContentModifyReplyHandler , public FilterManagement::Interface::Ftc::AesFilterUpdateReplyHandler , public FilterManagement::Interface::Ftc::SymbolAppearanceUpdateReplyHandler { Q_OBJECT public: explicit SnapshotDialog(const QString &menuGroup, LtsSession::LtsSession *session, QWidget *parent = nullptr); ~SnapshotDialog(); bool init(const std::shared_ptr &mrkDtc, const std::shared_ptr &mrkFtc, const std::shared_ptr &flmDtc, const std::shared_ptr &flmFtc, const std::shared_ptr &opmDtc, const std::shared_ptr &fltParticipipantIfc, const std::shared_ptr &fltAesIfc, const std::shared_ptr &fltBuildingComponentIfc); void showSnapshot(); protected: void onSnapshotRemoveReply(const Core::FunctionReplyObject &replyObject) override final { m_requestHelper->requestReply(replyObject); } void onReplayPartitionRemoveReply(const Core::FunctionReplyObject &replyObject) override final { m_requestHelper->requestReply(replyObject);} void onChangeReplayStateReply(const Core::FunctionReplyObject &replyObject) override final { m_requestHelper->requestReply(replyObject);} void onSnapshotModifyReply(const Core::FunctionReplyObject &replyObject) override final { m_requestHelper->requestReply(replyObject); } void onFileContentRemoveReply(const Core::FunctionReplyObject &replyObject) override final { m_requestHelper->requestReply(replyObject); } void onFileContentModifyReply(const Core::FunctionReplyObject &replyObject) override final { m_requestHelper->requestReply(replyObject); } void slotReplaySessionForPlanEditorStarted(); // AesFilterUpdateReplyHandler interface public: void onAesFilterUpdateReply(const Core::FunctionReplyObject &reply) override final { m_requestHelper->requestReply(reply); } // SymbolAppearanceUpdateReplyHandler interface public: void onSymbolAppearanceUpdateReply(const Core::FunctionReplyObject &reply) override final { m_requestHelper->requestReply(reply); } protected: void aboutToClose() override; private slots: void enaDisa(); void onEditMetaData(); void onRemoveSnapshots(); void onShow(); void onSaveSettings(); // void onSelectionChanged(); void onEditPlan(); void onPlaneditorFinished(); void onPrint(); void onRefreshCurrent(const Snapshot &snapshot); private: void retranslate() override; bool applyFilter(const Snapshot &snapshot); void tableColumnOrganiserSetting() override; QVector selectedSnapshotIds() const; bool showSnapshotInternal(const Snapshot &snapshot, bool bApplyFilter); bool saveSnapshotPlan(const QByteArray &planXMLContent); void prepareIndex(const QModelIndex &idx); void saveSnapshotFilter(); void saveSnapshotPreviewInLibrary(const QString &snapshotTitle); QString m_menuGroup; SnapshotDialogModel *m_model; Ui::SnapshotDialog *m_ui; std::shared_ptr m_mrkDtc; std::shared_ptr m_mrkFtc; std::shared_ptr m_flmDtc; std::shared_ptr m_flmFtc; std::shared_ptr m_opmDtc; std::shared_ptr m_srpFtc; std::weak_ptr m_sitMapGuiIfc; // no hard dependency to avoid crash when app is closed before this dialog is closed std::shared_ptr m_fltParticipantIfc; std::shared_ptr m_fltAesIfc; std::shared_ptr m_fltBuildingComponentIfc; std::shared_ptr m_flmGui; LtsSession::LtsSession *m_session; LtsUtils::RequestHelper *m_requestHelper; MarkerManagement::Snapshot m_currentSnapshot; bool m_planEditorHasUpdatedThePlan; // to saveSnapshotPreviewInLibrary if required QPointer m_planEditorApp; int m_fileId; // of PreviewImage QVector m_images; QVector m_imageTitles; QVector m_descriptions; LOGGER_T m_logger; }; }