pragma ComponentBehavior: Bound import QtQuick import Weave.Controls import Weave.Templates as T T.TableView { id: view property int _sortColumn: -1 property int _sortOrder: Qt.AscendingOrder iconSize: Qt.size(Theme.component.table.scaledIcon.width, Theme.component.table.scaledIcon.height) iconColor: Theme.component.table.icon.fill.default font.family: Theme.component.table.fontFamily font.pixelSize: Theme.component.table.fontSize font.weight: Theme.component.table.fontWeight borderWidth: Theme.component.table.cell.borderWidth minimumContentHeight: 2 * Theme.component.table.cell.height minimumColumnWidth: Theme.generic.px._50 // TODO Theme.component.table.column.minWidth minimumUnpinnedHeight: Theme.component.table.cell.height * 4 rowMoveGripperMargin: Theme.component.table.rowOrderingColumn.width T.TableLayout.minimumWidth: Math.min(minimumWidth, Theme.component.table.filtering.modal.form.width) headerMenu: HeaderActionMenu { } defaultDelegate: ItemDelegate { required icon required text required property variant textAlignment T.TableLayout.horizontalAlignment: textAlignment !== undefined && (textAlignment & (T.TableLayout.AlignLeft | T.TableLayout.AlignHCenter | T.TableLayout.AlignRight)) ? textAlignment & (T.TableLayout.AlignLeft | T.TableLayout.AlignHCenter | T.TableLayout.AlignRight) : undefined T.TableLayout.verticalAlignment: textAlignment !== undefined && (textAlignment & (T.TableLayout.AlignTop | T.TableLayout.AlignVCenter | T.TableLayout.AlignBottom)) ? textAlignment & (T.TableLayout.AlignTop | T.TableLayout.AlignVCenter | T.TableLayout.AlignBottom) : undefined } defaultEditDelegate: EditDelegate { required icon required text Component.onCompleted: selectAll() onAccepted: { T.TableLayout.setData(view.editRole, text) T.TableLayout.endEdit() } } rowPinningHeaderDelegate: RowPinHeader { } rowSelectionHeaderDelegate: RowSelectionHeader { } rowDetailHeaderDelegate: RowDetailHeader { } defaultRowDelegate: TableViewRow { } cornerSelectionHeaderDelegate: CornerSelectionHeader { } cornerDetailHeaderDelegate: CornerDetailHeader { } cornerActionHeaderDelegate: TableCornerHeaderDelegate { } cornerPinningHeaderDelegate: CornerPinHeader { } defaultColumnHeaderDelegate: TableHeaderDelegate { required icon required text required property variant textAlignment T.TableLayoutColumn.horizontalItemAlignment: textAlignment !== undefined && (textAlignment & (T.TableLayout.AlignLeft | T.TableLayout.AlignHCenter | T.TableLayout.AlignRight)) ? textAlignment & (T.TableLayout.AlignLeft | T.TableLayout.AlignHCenter | T.TableLayout.AlignRight) : undefined T.TableLayoutColumn.verticalItemAlignment: textAlignment !== undefined && (textAlignment & (T.TableLayout.AlignTop | T.TableLayout.AlignVCenter | T.TableLayout.AlignBottom)) ? textAlignment & (T.TableLayout.AlignTop | T.TableLayout.AlignVCenter | T.TableLayout.AlignBottom) : T.TableLayout.AlignVCenter } defaultColumnGroupHeaderDelegate: TableHeaderDelegate { required icon required text T.TableLayoutColumn.horizontalItemAlignment: T.TableLayout.AlignHCenter } horizontalScrollBar: ScrollBar { revealed: active || view.hovered } verticalScrollBar: ScrollBar { revealed: active || view.hovered } highlight: CellHighlight { } background: T.CellBackground { color: Theme.component.table.backgroundColor borderColor: Theme.component.table.cell.borderColor.default borderWidth: (view.visibleBorders & T.TableView.PerimeterBorders) ? Theme.component.table.cell.borderWidth : 0 } defaultBackgroundDelegate: ItemViewDelegateBackground { } defaultHeaderBackgroundDelegate: ItemViewHeaderBackground { } rowMoveGripper: RowMoveGripper { } movePositionIndicator: MovePositionIndicator { draggedItemCount: view.draggedItemCount } topPinningBorder: TopPinningBorder { } bottomPinningBorder: BottomPinningBorder { } leftPinningBorder: LeftPinningBorder { } rightPinningBorder: RightPinningBorder { } resizeBorder: ResizeBorder { } defaultDecorationDelegate: { switch (decorationType) { case T.TableView.Icon: return iconDecorationDelegate case T.TableView.Avatar: return avatarDecorationDelegate case T.TableView.Thumbnail: return thumbnailDecorationDelegate default: return null } } defaultIndicatorDelegate: CheckBoxIndicator { } Component { id: iconDecorationDelegate ItemViewIconDecoration { } } Component { id: avatarDecorationDelegate ItemViewAvatarDecoration { } } Component { id: thumbnailDecorationDelegate ItemViewThumbnailDecoration { } } }