/** * @RDE_HEADER@ * GUI Plugin for ParticipantManagement - Participant Edit * $Id$ * $HeadURL$ * $Author$ * Created by Patric Karwat, SLSE, 2016-10-17 */ #pragma once #include #include #include #include #include #include class QTreeView; namespace AdvancedSymbology { class ForeignDataInterface; } namespace Ui { class ParticipantEdit; } namespace NGL { class INGLLogger; } namespace LtsDataView { class SearchModel; } namespace ParticipantManagement { class FiringUnitValidator; class ParticipantEditModel; class ParticipantEditItem; class ParticipantTreeEditHandler; class ParticipantTreeFilterProxyModel; class ParticipantTableFilterProxyModel; class ParticipantEdit : public LtsWidgets::LtsDialog { Q_OBJECT using BaseClass = LtsWidgets::LtsDialog; public: ParticipantEdit(LtsSession::LtsSession *session, bool asSupportService, QWidget *parent = nullptr); ~ParticipantEdit(); bool init(const std::shared_ptr &dtc, const std::shared_ptr &ftc, const std::shared_ptr &ppmGuiCbxIfc, const std::shared_ptr &asbIfc); private: void retranslate() override; bool apply() override; void showIsSimulated(); void lock() override; void unlock() override; protected slots: void onEnaDisa(); // enable/disable the widgets void onAddItem(); void onEditItem(); void onPartyChanged(); void onPrint(); void onChangesMade(); void onBeautifyTreeView(); private slots: void onSwitchToTreeView(); void onSwitchToTableView(); void onFilterChanged(LtsDataView::SearchModel *from, LtsDataView::SearchModel *to); void onSortTableView(int column, Qt::SortOrder order); void onSelectionChangedInTree(const QItemSelection &selected, const QItemSelection &deselected); void onSelectionChangedInTable(const QItemSelection &selected, const QItemSelection &deselected); void onColumnWidthChanged(QTreeView *to, const int &column, const int &width); private: void tableColumnOrganiserSetting() override; bool m_asSupportService; QAction *m_actionRemove; QAction *m_actionEdit; ParticipantTreeEditHandler *m_pTreehandler{nullptr}; std::shared_ptr m_dtc; std::shared_ptr m_ftc; std::shared_ptr m_ppmGuiCbxIfc; std::shared_ptr m_asb; ParticipantEditItem *m_newItemDlg{nullptr}; LtsSession::LtsSession *m_session{nullptr}; static int s_preselectedParty; ParticipantEditModel *m_model{nullptr}; ParticipantTreeFilterProxyModel *m_proxyTree{nullptr}; ParticipantTableFilterProxyModel *m_proxyTable{nullptr}; QPushButton *m_pbTreeView{nullptr}; QPushButton *m_pbTableView{nullptr}; QPushButton *m_pbTreeViewDummy{nullptr}; QPushButton *m_pbTableViewDummy{nullptr}; FiringUnitValidator *m_firingUnitValidator{nullptr}; Ui::ParticipantEdit *m_ui; NGL::INGLLogger &m_logger; }; } //ParticipantManagement