1 /* 2 * DQt - D bindings for the Qt Toolkit 3 * 4 * GNU Lesser General Public License Usage 5 * This file may be used under the terms of the GNU Lesser 6 * General Public License version 3 as published by the Free Software 7 * Foundation and appearing in the file LICENSE.LGPL3 included in the 8 * packaging of this file. Please review the following information to 9 * ensure the GNU Lesser General Public License version 3 requirements 10 * will be met: https://www.gnu.org/licenses/lgpl-3.0.html. 11 */ 12 module qt.widgets.tableview; 13 extern(C++): 14 15 import qt.config; 16 import qt.core.abstractitemmodel; 17 import qt.core.coreevent; 18 import qt.core.itemselectionmodel; 19 import qt.core.namespace; 20 import qt.core.point; 21 import qt.core.rect; 22 import qt.core.size; 23 import qt.gui.event; 24 import qt.gui.region; 25 import qt.helpers; 26 import qt.widgets.abstractitemview; 27 import qt.widgets.headerview; 28 import qt.widgets.styleoption; 29 import qt.widgets.widget; 30 31 /+ QT_REQUIRE_CONFIG(tableview); +/ 32 33 34 extern(C++, class) struct QTableViewPrivate; 35 36 /// Binding for C++ class [QTableView](https://doc.qt.io/qt-6/qtableview.html). 37 class /+ Q_WIDGETS_EXPORT +/ QTableView : QAbstractItemView 38 { 39 mixin(Q_OBJECT); 40 /+ Q_PROPERTY(bool showGrid READ showGrid WRITE setShowGrid) 41 Q_PROPERTY(Qt::PenStyle gridStyle READ gridStyle WRITE setGridStyle) 42 Q_PROPERTY(bool sortingEnabled READ isSortingEnabled WRITE setSortingEnabled) 43 Q_PROPERTY(bool wordWrap READ wordWrap WRITE setWordWrap) 44 #if QT_CONFIG(abstractbutton) 45 Q_PROPERTY(bool cornerButtonEnabled READ isCornerButtonEnabled WRITE setCornerButtonEnabled) 46 #endif +/ 47 48 public: 49 /+ explicit +/this(QWidget parent = null); 50 ~this(); 51 52 override void setModel(QAbstractItemModel model); 53 override void setRootIndex(ref const(QModelIndex) index); 54 override void setSelectionModel(QItemSelectionModel selectionModel); 55 override void doItemsLayout(); 56 57 final QHeaderView horizontalHeader() const; 58 final QHeaderView verticalHeader() const; 59 final void setHorizontalHeader(QHeaderView header); 60 final void setVerticalHeader(QHeaderView header); 61 62 final int rowViewportPosition(int row) const; 63 final int rowAt(int y) const; 64 65 final void setRowHeight(int row, int height); 66 final int rowHeight(int row) const; 67 68 final int columnViewportPosition(int column) const; 69 final int columnAt(int x) const; 70 71 final void setColumnWidth(int column, int width); 72 final int columnWidth(int column) const; 73 74 final bool isRowHidden(int row) const; 75 final void setRowHidden(int row, bool hide); 76 77 final bool isColumnHidden(int column) const; 78 final void setColumnHidden(int column, bool hide); 79 80 final void setSortingEnabled(bool enable); 81 final bool isSortingEnabled() const; 82 83 final bool showGrid() const; 84 85 final /+ Qt:: +/qt.core.namespace.PenStyle gridStyle() const; 86 final void setGridStyle(/+ Qt:: +/qt.core.namespace.PenStyle style); 87 88 final void setWordWrap(bool on); 89 final bool wordWrap() const; 90 91 /+ #if QT_CONFIG(abstractbutton) +/ 92 final void setCornerButtonEnabled(bool enable); 93 final bool isCornerButtonEnabled() const; 94 /+ #endif +/ 95 96 override QRect visualRect(ref const(QModelIndex) index) const; 97 override void scrollTo(ref const(QModelIndex) index, ScrollHint hint = ScrollHint.EnsureVisible); 98 override QModelIndex indexAt(ref const(QPoint) p) const; 99 100 final void setSpan(int row, int column, int rowSpan, int columnSpan); 101 final int rowSpan(int row, int column) const; 102 final int columnSpan(int row, int column) const; 103 final void clearSpans(); 104 105 106 public /+ Q_SLOTS +/: 107 @QSlot final void selectRow(int row); 108 @QSlot final void selectColumn(int column); 109 @QSlot final void hideRow(int row); 110 @QSlot final void hideColumn(int column); 111 @QSlot final void showRow(int row); 112 @QSlot final void showColumn(int column); 113 @QSlot final void resizeRowToContents(int row); 114 @QSlot final void resizeRowsToContents(); 115 @QSlot final void resizeColumnToContents(int column); 116 @QSlot final void resizeColumnsToContents(); 117 @QSlot final void sortByColumn(int column, /+ Qt:: +/qt.core.namespace.SortOrder order); 118 @QSlot final void setShowGrid(bool show); 119 120 protected /+ Q_SLOTS +/: 121 @QSlot final void rowMoved(int row, int oldIndex, int newIndex); 122 @QSlot final void columnMoved(int column, int oldIndex, int newIndex); 123 @QSlot final void rowResized(int row, int oldHeight, int newHeight); 124 @QSlot final void columnResized(int column, int oldWidth, int newWidth); 125 @QSlot final void rowCountChanged(int oldCount, int newCount); 126 @QSlot final void columnCountChanged(int oldCount, int newCount); 127 128 protected: 129 this(ref QTableViewPrivate , QWidget parent); 130 override void scrollContentsBy(int dx, int dy); 131 132 override void initViewItemOption(QStyleOptionViewItem* option) const; 133 override void paintEvent(QPaintEvent e); 134 135 override void timerEvent(QTimerEvent event); 136 137 override int horizontalOffset() const; 138 override int verticalOffset() const; 139 override QModelIndex moveCursor(CursorAction cursorAction, /+ Qt:: +/qt.core.namespace.KeyboardModifiers modifiers); 140 141 override void setSelection(ref const(QRect) rect, QItemSelectionModel.SelectionFlags command); 142 override QRegion visualRegionForSelection(ref const(QItemSelection) selection) const; 143 override QModelIndexList selectedIndexes() const; 144 145 override void updateGeometries(); 146 147 override QSize viewportSizeHint() const; 148 149 override int sizeHintForRow(int row) const; 150 override int sizeHintForColumn(int column) const; 151 152 override void verticalScrollbarAction(int action); 153 override void horizontalScrollbarAction(int action); 154 155 override bool isIndexHidden(ref const(QModelIndex) index) const; 156 157 override void selectionChanged(ref const(QItemSelection) selected, 158 ref const(QItemSelection) deselected); 159 override void currentChanged(ref const(QModelIndex) current, 160 ref const(QModelIndex) previous); 161 162 private: 163 /+ friend class QAccessibleItemView; +/ 164 final int visualIndex(ref const(QModelIndex) index) const; 165 166 /+ Q_DECLARE_PRIVATE(QTableView) +/ 167 /+ Q_DISABLE_COPY(QTableView) +/ 168 /+ Q_PRIVATE_SLOT(d_func(), void _q_selectRow(int)) 169 Q_PRIVATE_SLOT(d_func(), void _q_selectColumn(int)) 170 Q_PRIVATE_SLOT(d_func(), void _q_updateSpanInsertedRows(QModelIndex,int,int)) 171 Q_PRIVATE_SLOT(d_func(), void _q_updateSpanInsertedColumns(QModelIndex,int,int)) 172 Q_PRIVATE_SLOT(d_func(), void _q_updateSpanRemovedRows(QModelIndex,int,int)) 173 Q_PRIVATE_SLOT(d_func(), void _q_updateSpanRemovedColumns(QModelIndex,int,int)) 174 Q_PRIVATE_SLOT(d_func(), void _q_sortIndicatorChanged(int column, Qt::SortOrder order)) +/ 175 mixin(CREATE_CONVENIENCE_WRAPPERS); 176 } 177