/** * @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 ParticipantSelection; } namespace NGL { class INGLLogger; } namespace LtsDataView { class SearchModel; } namespace ParticipantManagement { class ParticipantEditModel; class ParticipantSelectionItem; class ParticipantTreeEditHandler; class ParticipantTreeFilterProxyModel; class ParticipantTableFilterProxyModel; class PPMPARTICIPANTSELECTIONGUI_EXPORT ParticipantSelection : public LtsWidgets::LtsFramelessDialog { Q_OBJECT public: explicit ParticipantSelection(LtsSession::LtsSession *session, QWidget *parent = nullptr); ~ParticipantSelection(); bool init(); void setParticipantSelected(int partyId, int participantId); void setMultiSelectionEnabled(bool enabled); private: // void retranslate() override; protected slots: void onEnaDisa(); // enable/disable the widgets void onPartyChanged(); 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); void accept() override final; signals: void selectedParticipants(const QVector &participantIds); private: ParticipantTreeEditHandler *m_pTreehandler{nullptr}; std::shared_ptr m_dtc; std::shared_ptr m_ppmGuiCbxIfc; std::shared_ptr m_asb; ParticipantSelectionItem *m_newItemDlg{nullptr}; LtsSession::LtsSession *m_session{nullptr}; static int s_preselectedParty; ParticipantEditModel *m_model{nullptr}; ParticipantTreeFilterProxyModel *m_proxyTree{nullptr}; ParticipantTableFilterProxyModel *m_proxyTable{nullptr}; Ui::ParticipantSelection *m_ui; NGL::INGLLogger &m_logger; }; } //ParticipantManagement