#pragma once #include #include #include namespace Core { class FunctionReplyObject; } namespace LtsSession { class LtsSession; } namespace LtsUtils { class RequestHelper; } namespace FileManagement { class ForeignGuiInterface; } namespace ProjectDataManagement { #ifdef BUILD_WITH_EXTERNAL_DDS // Forward declarations for external dependencies struct GearClass; struct ChargeType; #else // Forward declarations for external dependencies struct GearClass; struct ChargeType; #endif namespace Interface { namespace Ftc { class UpdateChargeTypeReplyHandler; class UpdateChargeNamesReplyHandler; } } // Forward declaration - LtsWidgets::LtsDialog wird in CPP definiert namespace LtsWidgets { class LtsDialog; } #ifdef BUILD_WITH_EXTERNAL_DDS class ChargeTableDialog : public LtsWidgets::LtsDialog , protected ProjectDataManagement::Interface::Ftc::UpdateChargeTypeReplyHandler { Q_OBJECT public: explicit ChargeTableDialog(QWidget *parent = nullptr, bool organiser = false); ~ChargeTableDialog(); bool init(LtsSession::LtsSession *session, bool showDetails = false, const QSet &gearClasses = {GearClass::GearClass_DuelSim}); bool apply() override; public slots: void setValues(const std::vector &values, bool includeChildren = false); void setValues(const QSet &values, bool includeChildren = false); private: void retranslate() override; void onUpdateChargeTypeReply(const Core::FunctionReplyObject &replyObject) override final; void tableColumnOrganiserSetting() override; Ui::ChargeTableDialog *m_ui; LtsSession::LtsSession *m_session; std::shared_ptr m_ftc; std::shared_ptr m_flmGui; LtsUtils::RequestHelper *m_requestHelper; ChargeTableDialogModel *m_model; bool m_isOrganiser; LOGGER_T m_logger; signals: void selectedUleisCodes(const QSet &codes); private slots: void enaDisa(); void showDetails(bool showThem); void onEditCharge(); void onPrint(); void enaDisaOk(bool hasChanges); void onImportButtonClicked(); void onExportButtonClicked(); }; #endif // BUILD_WITH_EXTERNAL_DDS }