File indexing completed on 2024-05-26 05:40:55

0001 #ifndef FIELDVIEW_H
0002 #define FIELDVIEW_H
0003 
0004 #include <QContextMenuEvent>
0005 #include <QList>
0006 #include <QSignalMapper>
0007 #include <QTreeView>
0008 
0009 class QUndoStack;
0010 class FieldModel;
0011 class Canvas;
0012 class FieldController;
0013 namespace rcse{
0014 class MainController;
0015 }
0016 class FieldView : public QTreeView
0017 {
0018     Q_OBJECT
0019 public:
0020     FieldView(QWidget* parent= nullptr);
0021 
0022     void setController(rcse::MainController *ctrl);
0023 
0024     void applyValue(QModelIndex& index, bool selection);
0025     void defineItemCode(QModelIndex& index);
0026 
0027     int getCurrentPage() const;
0028 
0029     QList<Canvas*>* getCanvasList() const;
0030     void setCanvasList(QList<Canvas*>* canvasList);
0031 
0032     FieldModel* getModel() const;
0033     void setFieldModel(FieldModel* model);
0034 
0035 public slots:
0036     void editColor(QModelIndex index);
0037     void lockItems();
0038     void hideAllColumns(bool);
0039     void setCurrentPage(int currentPage);
0040 
0041 signals:
0042     void removeField(FieldController* field, int m_currentPage);
0043 
0044 protected:
0045     void contextMenuEvent(QContextMenuEvent* event) override;
0046 
0047 private:
0048     QPointer<rcse::MainController> m_ctrl;
0049     QAction* m_lock= nullptr;
0050     QAction* m_delItem= nullptr;
0051     QAction* m_applyValueOnSelection= nullptr;
0052     QAction* m_applyValueOnAllLines= nullptr;
0053     QAction* m_defineCode= nullptr;
0054     QAction* m_resetCode= nullptr;
0055 
0056     // Show Hide Columns
0057     QAction* m_showGeometryGroup= nullptr;
0058     QAction* m_showEsteticGroup= nullptr;
0059     QAction* m_showValueGroup= nullptr;
0060     QAction* m_showAllGroup= nullptr;
0061     QAction* m_showIdGroup= nullptr;
0062 
0063     FieldModel* m_model= nullptr;
0064     QList<Canvas*>* m_canvasList= nullptr;
0065     int m_currentPage= 0;
0066 
0067     QSignalMapper* m_mapper= nullptr;
0068 };
0069 
0070 #endif // FIELDVIEW_H