Isis Developer Reference
TableViewContent.h
Go to the documentation of this file.
1#ifndef TableViewContent_H
2#define TableViewContent_H
3
10/* SPDX-License-Identifier: CC0-1.0 */
11
12#include <QAbstractScrollArea>
13
14#include <QPoint>
15#include <QPointer>
16
17
18class QAction;
19class QEvent;
20class QKeyEvent;
21template< typename T > class QList;
22class QMenu;
23class QMouseEvent;
24class QPoint;
25class QResizeEvent;
26
27
28namespace Isis {
29 class AbstractTreeItem;
30 class AbstractTableModel;
31 class ControlPoint;
32 class TableColumn;
33 class TableColumnList;
34 class TableView;
35
61 Q_OBJECT
62
63 public:
65 virtual ~TableViewContent();
66 QSize minimumSizeHint() const;
67 QSize sizeHint() const;
69 // void setModel(AbstractTableModel * someModel);
70 void setActiveControlNet(bool activeNet);
71
72
73 signals:
74 void rebuildModels(QList< AbstractTreeItem * >);
77 void tableSelectionChanged(QList< AbstractTreeItem * >);
79
80 void editControlPoint(ControlPoint *controlPoint, QString serialNumber);
81
82
83 public slots:
84 void scrollTo(QList< AbstractTreeItem * >);
86 void refresh();
87 void updateHorizontalScrollBar(bool scrollRight = false);
88
89
90 protected:
91 bool eventFilter(QObject *target, QEvent *event);
92 void keyPressEvent(QKeyEvent *event);
93 void leaveEvent(QEvent *event);
94 void mouseDoubleClickEvent(QMouseEvent *event);
95 void mouseMoveEvent(QMouseEvent *event);
96 void mousePressEvent(QMouseEvent *event);
97 void mouseReleaseEvent(QMouseEvent *event);
98 void paintEvent(QPaintEvent *event);
99 void resizeEvent(QResizeEvent *event);
100 void scrollContentsBy(int dx, int dy);
101
102
103 private:
105 TableViewContent &operator=(const TableViewContent &other);
106
107
108 private:
109 void nullify();
110 void cellDataChanged(TableColumn const *col);
111 void clearActiveCell();
112 void clearColumnSelection();
113 void copyCellSelection(bool);
114 void createActions();
115 void selectAllRows();
116 int getColumnFromScreenX(int screenX) const;
117 int getRowFromScreenY(int screenY) const;
118 bool hasActiveCell() const;
119 bool hasRowSelection() const;
120 bool mouseInCellSelection(QPoint) const;
121 bool mouseInRowSelection(QPoint) const;
122 bool rowIsValid(int rowNum) const;
123 bool columnIsValid(int colNum) const;
124 bool cellIsEditable(int, int) const;
125 bool isDataColumn(int) const;
126 void paintRow(QPainter *, int, QPoint, QPoint);
127 void updateActiveCell(QPoint);
128 void updateHoveredCell(QPoint, bool);
129 void updateColumnGroupSelection(AbstractTreeItem *);
130 QList< AbstractTreeItem * > updateRowGroupSelection(int lastRow);
131 void finishEditing();
132 void moveActiveCellDown();
133 void moveActiveCellUp();
134 void moveActiveCellLeft();
135 void moveActiveCellRight();
136
137
138 private slots:
139 void copySelection();
140 void copyAll();
141 void deleteSelectedRows();
142 void editControlPoint();
143 void updateItemList();
144 void showContextMenu(QPoint);
145
146
147 private:
148 TableView *m_parentView;
149 AbstractTableModel *m_model;
150 QList< QPointer<AbstractTreeItem> > * m_items;
151 TableColumnList *m_columns;
152
153 QPair< AbstractTreeItem *, int > * m_activeCell;
154
155 QPair< AbstractTreeItem *, int > * m_lastShiftArrowSelectedCell;
156 bool m_lastShiftArrowDirectionUp;
157
162 QList< AbstractTreeItem * > * rowsWithActiveColumnSelected;
163
164 QWidget *m_editWidget;
165
170 AbstractTreeItem *m_lastDirectlySelectedRow;
171 QList< AbstractTreeItem * > * m_lastShiftSelection;
172 int m_rowHeight;
173
178 QAction *m_applyToSelectionAct;
179
184 QAction *m_applyToAllAct;
185
189 QAction *m_deleteSelectedRowsAct;
190
194 QAction *m_editControlPointAct;
195
196 bool m_activeControlNet;
197
198
199 private:
200 static const int ITEM_PADDING = 7;
201 static const int ITEM_INDENTATION = 3;
202 };
203}
204
205#endif
Translates the tree model into a table model.
Definition AbstractTableModel.h:48
Base class for an item in the tree.
Definition AbstractTreeItem.h:39
A single control point.
Definition ControlPoint.h:356
Definition TableColumn.h:26
Definition TableColumnList.h:30
Definition TableViewContent.h:60
void editControlPoint(ControlPoint *controlPoint, QString serialNumber)
void mouseDoubleClickEvent(QMouseEvent *event)
Overrides QWidget::mouseDoubleClickEvent.
Definition TableViewContent.cpp:321
void tableSelectionChanged(QList< AbstractTreeItem * >)
void paintEvent(QPaintEvent *event)
Paints the table when there is a paint event.
Definition TableViewContent.cpp:850
AbstractTableModel * getModel()
Returns the model.
Definition TableViewContent.cpp:164
void horizontalScrollBarValueChanged(int)
void refresh()
Refreshes the table and viewport.
Definition TableViewContent.cpp:220
void leaveEvent(QEvent *event)
Overrides QWidget::leaveEvent.
Definition TableViewContent.cpp:549
void resizeEvent(QResizeEvent *event)
Updates the table when it is resized.
Definition TableViewContent.cpp:971
void scrollTo(QList< AbstractTreeItem * >)
Scrolls to the selected items.
Definition TableViewContent.cpp:270
void mousePressEvent(QMouseEvent *event)
Overrides QWidget::mousePressEvent.
Definition TableViewContent.cpp:348
QSize sizeHint() const
Returns the minimum size hint.
Definition TableViewContent.cpp:154
void updateHorizontalScrollBar(bool scrollRight=false)
Updates the horizontal scroll bar.
Definition TableViewContent.cpp:247
bool eventFilter(QObject *target, QEvent *event)
Overrides QObject::eventFilter.
Definition TableViewContent.cpp:311
QSize minimumSizeHint() const
Returns the minimum size hint.
Definition TableViewContent.cpp:142
TableViewContent(AbstractTableModel *someModel)
Constructor.
Definition TableViewContent.cpp:49
void keyPressEvent(QKeyEvent *event)
Overrides QWidget::keyPressEvent.
Definition TableViewContent.cpp:559
void rebuildModels(QList< AbstractTreeItem * >)
void mouseReleaseEvent(QMouseEvent *event)
Overrides QWidget::mouseReleaseEvent.
Definition TableViewContent.cpp:474
void mouseMoveEvent(QMouseEvent *event)
Overrides QWidget::mouseMoveEvent.
Definition TableViewContent.cpp:483
void scrollContentsBy(int dx, int dy)
Updates the item list when the user scrolls.
Definition TableViewContent.cpp:984
virtual ~TableViewContent()
Destructor.
Definition TableViewContent.cpp:105
void setActiveControlNet(bool activeNet)
Sets if there is an active control net.
Definition TableViewContent.cpp:212
Definition TableView.h:43
This is free and unencumbered software released into the public domain.
Definition BoxcarCachingAlgorithm.h:13
This is free and unencumbered software released into the public domain.
Definition Apollo.h:16