1 /**************************************************************************** 2 ** 3 ** DQt - D bindings for the Qt Toolkit 4 ** 5 ** GNU Lesser General Public License Usage 6 ** This file may be used under the terms of the GNU Lesser 7 ** General Public License version 3 as published by the Free Software 8 ** Foundation and appearing in the file LICENSE.LGPL3 included in the 9 ** packaging of this file. Please review the following information to 10 ** ensure the GNU Lesser General Public License version 3 requirements 11 ** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. 12 ** 13 ****************************************************************************/ 14 module qt.widgets.treewidget; 15 extern(C++): 16 17 import qt.config; 18 import qt.core.abstractitemmodel; 19 import qt.core.coreevent; 20 import qt.core.itemselectionmodel; 21 import qt.core.list; 22 import qt.core.mimedata; 23 import qt.core.namespace; 24 import qt.core.point; 25 import qt.core.rect; 26 import qt.core.size; 27 import qt.core.string; 28 import qt.core.stringlist; 29 import qt.core.variant; 30 import qt.core.vector; 31 import qt.gui.brush; 32 import qt.gui.color; 33 import qt.gui.event; 34 import qt.gui.font; 35 import qt.gui.icon; 36 import qt.helpers; 37 import qt.widgets.abstractitemview; 38 import qt.widgets.treeview; 39 import qt.widgets.treewidgetitemiterator; 40 import qt.widgets.widget; 41 import qt.widgets.widgetitemdata; 42 version(QT_NO_DATASTREAM){}else 43 import qt.core.datastream; 44 45 /+ QT_REQUIRE_CONFIG(treewidget); 46 47 48 class QTreeWidget; 49 class QTreeModel; +/ 50 extern(C++, class) struct QTreeWidgetItemPrivate; 51 52 class /+ Q_WIDGETS_EXPORT +/ QTreeWidgetItem 53 { 54 private: 55 /+ friend class QTreeModel; +/ 56 /+ friend class QTreeWidget; +/ 57 /+ friend class QTreeWidgetPrivate; +/ 58 /+ friend class QTreeWidgetItemIterator; +/ 59 /+ friend class QTreeWidgetItemPrivate; +/ 60 public: 61 enum ItemType { Type = 0, UserType = 1000 } 62 /+ explicit +/this(int type = ItemType.Type); 63 /+ explicit +/this(ref const(QStringList) strings, int type = ItemType.Type); 64 /+ explicit +/this(QTreeWidget treeview, int type = ItemType.Type); 65 this(QTreeWidget treeview, ref const(QStringList) strings, int type = ItemType.Type); 66 this(QTreeWidget treeview, QTreeWidgetItem after, int type = ItemType.Type); 67 /+ explicit +/this(QTreeWidgetItem parent, int type = ItemType.Type); 68 this(QTreeWidgetItem parent, ref const(QStringList) strings, int type = ItemType.Type); 69 this(QTreeWidgetItem parent, QTreeWidgetItem after, int type = ItemType.Type); 70 /+ QTreeWidgetItem(const QTreeWidgetItem &other); +/ 71 /+ virtual +/~this(); 72 73 /+ virtual +/ QTreeWidgetItem clone() const; 74 75 pragma(inline, true) final QTreeWidget treeWidget() const { return cast(QTreeWidget)view; } 76 77 final void setSelected(bool select); 78 final bool isSelected() const; 79 80 final void setHidden(bool hide); 81 final bool isHidden() const; 82 83 final void setExpanded(bool expand); 84 final bool isExpanded() const; 85 86 final void setFirstColumnSpanned(bool span); 87 final bool isFirstColumnSpanned() const; 88 89 pragma(inline, true) final void setDisabled(bool disabled) 90 { setFlags(disabled ? (flags() & ~/+ Qt:: +/qt.core.namespace.ItemFlag.ItemIsEnabled) : flags() | /+ Qt:: +/qt.core.namespace.ItemFlag.ItemIsEnabled); } 91 pragma(inline, true) final bool isDisabled() const 92 { return !(flags() & /+ Qt:: +/qt.core.namespace.ItemFlag.ItemIsEnabled); } 93 94 enum ChildIndicatorPolicy { ShowIndicator, DontShowIndicator, DontShowIndicatorWhenChildless } 95 final void setChildIndicatorPolicy(QTreeWidgetItem.ChildIndicatorPolicy policy); 96 final QTreeWidgetItem.ChildIndicatorPolicy childIndicatorPolicy() const; 97 98 final /+ Qt:: +/qt.core.namespace.ItemFlags flags() const; 99 final void setFlags(/+ Qt:: +/qt.core.namespace.ItemFlags flags); 100 101 pragma(inline, true) final QString text(int column) const 102 { return data(column, /+ Qt:: +/qt.core.namespace.ItemDataRole.DisplayRole).toString(); } 103 pragma(inline, true) final void setText(int column, ref const(QString) atext) 104 { setData(column, /+ Qt:: +/qt.core.namespace.ItemDataRole.DisplayRole, atext); } 105 final void setText(int column, const(QString) atext) { setText(column, atext); } 106 107 pragma(inline, true) final QIcon icon(int column) const 108 { return qvariant_cast!(QIcon)(data(column, /+ Qt:: +/qt.core.namespace.ItemDataRole.DecorationRole)); } 109 pragma(inline, true) final void setIcon(int column, ref const(QIcon) aicon) 110 { setData(column, /+ Qt:: +/qt.core.namespace.ItemDataRole.DecorationRole, aicon); } 111 112 pragma(inline, true) final QString statusTip(int column) const 113 { return data(column, /+ Qt:: +/qt.core.namespace.ItemDataRole.StatusTipRole).toString(); } 114 pragma(inline, true) final void setStatusTip(int column, ref const(QString) astatusTip) 115 { setData(column, /+ Qt:: +/qt.core.namespace.ItemDataRole.StatusTipRole, astatusTip); } 116 pragma(inline, true) final void setStatusTip(int column, const(QString) astatusTip) 117 { setData(column, /+ Qt:: +/qt.core.namespace.ItemDataRole.StatusTipRole, astatusTip); } 118 119 /+ #ifndef QT_NO_TOOLTIP +/ 120 version(QT_NO_TOOLTIP){}else 121 { 122 pragma(inline, true) final QString toolTip(int column) const 123 { return data(column, /+ Qt:: +/qt.core.namespace.ItemDataRole.ToolTipRole).toString(); } 124 pragma(inline, true) final void setToolTip(int column, ref const(QString) atoolTip) 125 { setData(column, /+ Qt:: +/qt.core.namespace.ItemDataRole.ToolTipRole, atoolTip); } 126 pragma(inline, true) final void setToolTip(int column, const(QString) atoolTip) 127 { setData(column, /+ Qt:: +/qt.core.namespace.ItemDataRole.ToolTipRole, atoolTip); } 128 } 129 /+ #endif 130 131 #if QT_CONFIG(whatsthis) +/ 132 pragma(inline, true) final QString whatsThis(int column) const 133 { return data(column, /+ Qt:: +/qt.core.namespace.ItemDataRole.WhatsThisRole).toString(); } 134 pragma(inline, true) final void setWhatsThis(int column, ref const(QString) awhatsThis) 135 { setData(column, /+ Qt:: +/qt.core.namespace.ItemDataRole.WhatsThisRole, awhatsThis); } 136 pragma(inline, true) final void setWhatsThis(int column, const(QString) awhatsThis) 137 { setData(column, /+ Qt:: +/qt.core.namespace.ItemDataRole.WhatsThisRole, awhatsThis); } 138 /+ #endif +/ 139 140 pragma(inline, true) final QFont font(int column) const 141 { return qvariant_cast!(QFont)(data(column, /+ Qt:: +/qt.core.namespace.ItemDataRole.FontRole)); } 142 pragma(inline, true) final void setFont(int column, ref const(QFont) afont) 143 { setData(column, /+ Qt:: +/qt.core.namespace.ItemDataRole.FontRole, afont); } 144 145 pragma(inline, true) final int textAlignment(int column) const 146 { return data(column, /+ Qt:: +/qt.core.namespace.ItemDataRole.TextAlignmentRole).toInt(); } 147 pragma(inline, true) final void setTextAlignment(int column, int alignment) 148 { setData(column, /+ Qt:: +/qt.core.namespace.ItemDataRole.TextAlignmentRole, alignment); } 149 150 /+ #if QT_DEPRECATED_SINCE(5, 13) +/ 151 /+ QT_DEPRECATED_X ("Use QTreeWidgetItem::background() instead") +/ 152 pragma(inline, true) final QColor backgroundColor(int column) const 153 { return qvariant_cast!(QColor)(data(column, /+ Qt:: +/qt.core.namespace.ItemDataRole.BackgroundRole)); } 154 /+ QT_DEPRECATED_X ("Use QTreeWidgetItem::setBackground() instead") +/ 155 pragma(inline, true) final void setBackgroundColor(int column, ref const(QColor) color) 156 { setData(column, /+ Qt:: +/qt.core.namespace.ItemDataRole.BackgroundRole, color); } 157 /+ #endif +/ 158 159 pragma(inline, true) final QBrush background(int column) const 160 { return qvariant_cast!(QBrush)(data(column, /+ Qt:: +/qt.core.namespace.ItemDataRole.BackgroundRole)); } 161 pragma(inline, true) final void setBackground(int column, ref const(QBrush) brush) 162 { setData(column, /+ Qt:: +/qt.core.namespace.ItemDataRole.BackgroundRole, brush.style() != /+ Qt:: +/qt.core.namespace.BrushStyle.NoBrush ? QVariant.fromValue(brush) : QVariant()); } 163 pragma(inline, true) final void setBackground(int column, const(QBrush) brush) 164 { setData(column, /+ Qt:: +/qt.core.namespace.ItemDataRole.BackgroundRole, brush.style() != /+ Qt:: +/qt.core.namespace.BrushStyle.NoBrush ? QVariant.fromValue(brush) : QVariant()); } 165 pragma(inline, true) final void setBackground(int column, const(QColor) color) 166 { setBackground(column, QBrush(color)); } 167 168 /+ #if QT_DEPRECATED_SINCE(5, 13) +/ 169 /+ QT_DEPRECATED_X ("Use QTreeWidgetItem::foreground() instead") +/ 170 pragma(inline, true) final QColor textColor(int column) const 171 { return qvariant_cast!(QColor)(data(column, /+ Qt:: +/qt.core.namespace.ItemDataRole.ForegroundRole)); } 172 /+ QT_DEPRECATED_X ("Use QTreeWidgetItem::setForeground() instead") +/ 173 pragma(inline, true) final void setTextColor(int column, ref const(QColor) color) 174 { setData(column, /+ Qt:: +/qt.core.namespace.ItemDataRole.ForegroundRole, color); } 175 /+ #endif +/ 176 177 pragma(inline, true) final QBrush foreground(int column) const 178 { return qvariant_cast!(QBrush)(data(column, /+ Qt:: +/qt.core.namespace.ItemDataRole.ForegroundRole)); } 179 pragma(inline, true) final void setForeground(int column, ref const(QBrush) brush) 180 { setData(column, /+ Qt:: +/qt.core.namespace.ItemDataRole.ForegroundRole, brush.style() != /+ Qt:: +/qt.core.namespace.BrushStyle.NoBrush ? QVariant.fromValue(brush) : QVariant()); } 181 182 pragma(inline, true) final /+ Qt:: +/qt.core.namespace.CheckState checkState(int column) const 183 { return static_cast!(/+ Qt:: +/qt.core.namespace.CheckState)(data(column, /+ Qt:: +/qt.core.namespace.ItemDataRole.CheckStateRole).toInt()); } 184 pragma(inline, true) final void setCheckState(int column, /+ Qt:: +/qt.core.namespace.CheckState state) 185 { setData(column, /+ Qt:: +/qt.core.namespace.ItemDataRole.CheckStateRole, cast(int)state); } 186 187 pragma(inline, true) final QSize sizeHint(int column) const 188 { return qvariant_cast!(QSize)(data(column, /+ Qt:: +/qt.core.namespace.ItemDataRole.SizeHintRole)); } 189 pragma(inline, true) final void setSizeHint(int column, ref const(QSize) size) 190 { setData(column, /+ Qt:: +/qt.core.namespace.ItemDataRole.SizeHintRole, size.isValid() ? QVariant(size) : QVariant()); } 191 192 /+ virtual +/ QVariant data(int column, int role) const; 193 /+ virtual +/ void setData(int column, int role, ref const(QVariant) value); 194 final void setData(T)(int column, int role, T value) 195 { 196 static if(is(const(T) == const(QVariant))) 197 QVariant v = value; 198 else 199 QVariant v = QVariant.fromValue(value); 200 setData(column, role, v); 201 } 202 203 pragma(mangle, mangleOpLess("QTreeWidgetItem")) 204 bool opLess(const(QTreeWidgetItem) other) const; 205 206 version(QT_NO_DATASTREAM){}else 207 { 208 /+ virtual +/ void read(ref QDataStream in_); 209 /+ virtual +/ void write(ref QDataStream out_) const; 210 } 211 /+ QTreeWidgetItem &operator=(const QTreeWidgetItem &other); +/ 212 213 pragma(inline, true) final QTreeWidgetItem parent() const { return cast(QTreeWidgetItem)par; } 214 pragma(inline, true) final QTreeWidgetItem child(int index) const { 215 if (index < 0 || index >= children.size()) 216 return null; 217 executePendingSort(); 218 return cast(QTreeWidgetItem)children.at(index); 219 } 220 pragma(inline, true) final int childCount() const { return children.count(); } 221 pragma(inline, true) final int columnCount() const { return values.count(); } 222 pragma(inline, true) final int indexOfChild(QTreeWidgetItem achild) const 223 { executePendingSort(); return children.indexOf(achild); } 224 225 final void addChild(QTreeWidgetItem child); 226 final void insertChild(int index, QTreeWidgetItem child); 227 final void removeChild(QTreeWidgetItem child); 228 final QTreeWidgetItem takeChild(int index); 229 230 final void addChildren(ref const(QList!(QTreeWidgetItem)) children); 231 final void insertChildren(int index, ref const(QList!(QTreeWidgetItem)) children); 232 final QList!(QTreeWidgetItem) takeChildren(); 233 234 pragma(inline, true) final int type() const { return rtti; } 235 pragma(inline, true) final void sortChildren(int column, /+ Qt:: +/qt.core.namespace.SortOrder order) 236 { sortChildren(column, order, false); } 237 238 protected: 239 final void emitDataChanged(); 240 241 private: 242 final void sortChildren(int column, /+ Qt:: +/qt.core.namespace.SortOrder order, bool climb); 243 final QVariant childrenCheckState(int column) const; 244 final void itemChanged(); 245 final void executePendingSort() const; 246 final QTreeModel* treeModel(QTreeWidget v = null) const; 247 248 int rtti; 249 // One item has a vector of column entries. Each column has a vector of (role, value) pairs. 250 QVector!( QVector!(QWidgetItemData)) values; 251 QTreeWidget view; 252 QTreeWidgetItemPrivate* d; 253 QTreeWidgetItem par; 254 QList!(QTreeWidgetItem) children; 255 /+ Qt:: +/qt.core.namespace.ItemFlags itemFlags; 256 } 257 258 /+ #if QT_CONFIG(statustip) 259 #endif 260 261 #ifndef QT_NO_TOOLTIP 262 #endif 263 264 #if QT_CONFIG(whatsthis) 265 #endif 266 267 #ifndef QT_NO_DATASTREAM 268 Q_WIDGETS_EXPORT QDataStream &operator<<(QDataStream &out, const QTreeWidgetItem &item); 269 Q_WIDGETS_EXPORT QDataStream &operator>>(QDataStream &in, QTreeWidgetItem &item); 270 #endif +/ 271 272 extern(C++, class) struct QTreeWidgetPrivate; 273 274 class /+ Q_WIDGETS_EXPORT +/ QTreeWidget : QTreeView 275 { 276 mixin(Q_OBJECT); 277 /+ Q_PROPERTY(int columnCount READ columnCount WRITE setColumnCount) 278 Q_PROPERTY(int topLevelItemCount READ topLevelItemCount) +/ 279 280 /+ friend class QTreeModel; +/ 281 /+ friend class QTreeWidgetItem; +/ 282 public: 283 /+ explicit +/this(QWidget parent = null); 284 ~this(); 285 286 final int columnCount() const; 287 final void setColumnCount(int columns); 288 289 final QTreeWidgetItem invisibleRootItem() const; 290 final QTreeWidgetItem topLevelItem(int index) const; 291 final int topLevelItemCount() const; 292 final void insertTopLevelItem(int index, QTreeWidgetItem item); 293 final void addTopLevelItem(QTreeWidgetItem item); 294 final QTreeWidgetItem takeTopLevelItem(int index); 295 final int indexOfTopLevelItem(QTreeWidgetItem item) const; 296 297 final void insertTopLevelItems(int index, ref const(QList!(QTreeWidgetItem)) items); 298 final void addTopLevelItems(ref const(QList!(QTreeWidgetItem)) items); 299 300 final QTreeWidgetItem headerItem() const; 301 final void setHeaderItem(QTreeWidgetItem item); 302 final void setHeaderLabels(ref const(QStringList) labels); 303 /+ pragma(inline, true) final void setHeaderLabel(ref const(QString) alabel) 304 { auto tmp = QStringList(alabel); setHeaderLabels(tmp); }+/ 305 306 final QTreeWidgetItem currentItem() const; 307 final int currentColumn() const; 308 final void setCurrentItem(QTreeWidgetItem item); 309 final void setCurrentItem(QTreeWidgetItem item, int column); 310 final void setCurrentItem(QTreeWidgetItem item, int column, QItemSelectionModel.SelectionFlags command); 311 312 final QTreeWidgetItem itemAt(ref const(QPoint) p) const; 313 pragma(inline, true) final QTreeWidgetItem itemAt(int ax, int ay) const 314 { auto tmp = QPoint(ax, ay); return itemAt(tmp); } 315 final QRect visualItemRect(const(QTreeWidgetItem) item) const; 316 317 final int sortColumn() const; 318 final void sortItems(int column, /+ Qt:: +/qt.core.namespace.SortOrder order); 319 320 final void editItem(QTreeWidgetItem item, int column = 0); 321 final void openPersistentEditor(QTreeWidgetItem item, int column = 0); 322 final void closePersistentEditor(QTreeWidgetItem item, int column = 0); 323 /+ using QAbstractItemView::isPersistentEditorOpen; +/ 324 final bool isPersistentEditorOpen(QTreeWidgetItem item, int column = 0) const; 325 326 final QWidget itemWidget(QTreeWidgetItem item, int column) const; 327 final void setItemWidget(QTreeWidgetItem item, int column, QWidget widget); 328 pragma(inline, true) final void removeItemWidget(QTreeWidgetItem item, int column) 329 { setItemWidget(item, column, null); } 330 331 /+ #if QT_DEPRECATED_SINCE(5, 13) +/ 332 /+ QT_DEPRECATED_X ("Use QTreeWidgetItem::isSelected() instead") +/ 333 final bool isItemSelected(const(QTreeWidgetItem) item) const; 334 /+ QT_DEPRECATED_X ("Use QTreeWidgetItem::setSelected() instead") +/ 335 final void setItemSelected(const(QTreeWidgetItem) item, bool select); 336 /+ #endif +/ 337 final QList!(QTreeWidgetItem) selectedItems() const; 338 final QList!(QTreeWidgetItem) findItems(ref const(QString) text, /+ Qt:: +/qt.core.namespace.MatchFlags flags, 339 int column = 0) const; 340 341 /+ #if QT_DEPRECATED_SINCE(5, 13) +/ 342 /+ QT_DEPRECATED_X ("Use QTreeWidgetItem::isHidden() instead") +/ 343 final bool isItemHidden(const(QTreeWidgetItem) item) const; 344 /+ QT_DEPRECATED_X ("Use QTreeWidgetItem::setHidden() instead") +/ 345 final void setItemHidden(const(QTreeWidgetItem) item, bool hide); 346 347 /+ QT_DEPRECATED_X ("Use QTreeWidgetItem::isExpanded() instead") +/ 348 final bool isItemExpanded(const(QTreeWidgetItem) item) const; 349 /+ QT_DEPRECATED_X ("Use QTreeWidgetItem::setExpanded() instead") +/ 350 final void setItemExpanded(const(QTreeWidgetItem) item, bool expand); 351 352 /+ QT_DEPRECATED_X ("Use QTreeWidgetItem::isFirstColumnSpanned() instead") +/ 353 final bool isFirstItemColumnSpanned(const(QTreeWidgetItem) item) const; 354 /+ QT_DEPRECATED_X ("Use QTreeWidgetItem::setFirstColumnSpanned() instead") +/ 355 final void setFirstItemColumnSpanned(const(QTreeWidgetItem) item, bool span); 356 /+ #endif +/ 357 358 final QTreeWidgetItem itemAbove(const(QTreeWidgetItem) item) const; 359 final QTreeWidgetItem itemBelow(const(QTreeWidgetItem) item) const; 360 361 override void setSelectionModel(QItemSelectionModel selectionModel); 362 363 public /+ Q_SLOTS +/: 364 @QSlot final void scrollToItem(const(QTreeWidgetItem) item, 365 QAbstractItemView.ScrollHint hint = ScrollHint.EnsureVisible); 366 @QSlot final void expandItem(const(QTreeWidgetItem) item); 367 @QSlot final void collapseItem(const(QTreeWidgetItem) item); 368 @QSlot final void clear(); 369 370 /+ Q_SIGNALS +/public: 371 @QSignal final void itemPressed(QTreeWidgetItem item, int column); 372 @QSignal final void itemClicked(QTreeWidgetItem item, int column); 373 @QSignal final void itemDoubleClicked(QTreeWidgetItem item, int column); 374 @QSignal final void itemActivated(QTreeWidgetItem item, int column); 375 @QSignal final void itemEntered(QTreeWidgetItem item, int column); 376 // ### Qt 6: add changed roles 377 @QSignal final void itemChanged(QTreeWidgetItem item, int column); 378 @QSignal final void itemExpanded(QTreeWidgetItem item); 379 @QSignal final void itemCollapsed(QTreeWidgetItem item); 380 @QSignal final void currentItemChanged(QTreeWidgetItem current, QTreeWidgetItem previous); 381 @QSignal final void itemSelectionChanged(); 382 383 protected: 384 override bool event(QEvent e); 385 /+ virtual +/ QStringList mimeTypes() const; 386 /+ #if QT_VERSION >= QT_VERSION_CHECK(6,0,0) 387 virtual QMimeData *mimeData(const QList<QTreeWidgetItem *> &items) const; 388 #else +/ 389 /+ virtual +/ QMimeData mimeData(const(QList!(QTreeWidgetItem)) items) const; 390 /+ #endif +/ 391 mixin(mangleWindows("?dropMimeData@QTreeWidget@@MEAA_NPEAVQTreeWidgetItem@@HPEBVQMimeData@@W4DropAction@Qt@@@Z", q{ 392 /+ virtual +/ bool dropMimeData(QTreeWidgetItem parent, int index, 393 const(QMimeData) data, /+ Qt:: +/qt.core.namespace.DropAction action); 394 })); 395 /+ virtual +/ /+ Qt:: +/qt.core.namespace.DropActions supportedDropActions() const; 396 397 /+ #if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) 398 public: 399 #else +/ 400 protected: 401 /+ #endif +/ 402 final QList!(QTreeWidgetItem) items(const(QMimeData) data) const; 403 404 final QModelIndex indexFromItem(const(QTreeWidgetItem) item, int column = 0) const; 405 /+ #if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) +/ 406 final QModelIndex indexFromItem(QTreeWidgetItem item, int column = 0) const; // ### Qt 6: remove 407 /+ #endif +/ 408 final QTreeWidgetItem itemFromIndex(ref const(QModelIndex) index) const; 409 410 protected: 411 /+ #if QT_CONFIG(draganddrop) +/ 412 override void dropEvent(QDropEvent event); 413 /+ #endif +/ 414 private: 415 mixin(mangleWindows("?setModel@QTreeWidget@@EEAAXPEAVQAbstractItemModel@@@Z", q{ 416 protected override void setModel(QAbstractItemModel model); 417 })); 418 419 /+ Q_DECLARE_PRIVATE(QTreeWidget) +/ 420 /+ Q_DISABLE_COPY(QTreeWidget) +/ 421 422 /+ Q_PRIVATE_SLOT(d_func(), void _q_emitItemPressed(const QModelIndex &index)) 423 Q_PRIVATE_SLOT(d_func(), void _q_emitItemClicked(const QModelIndex &index)) 424 Q_PRIVATE_SLOT(d_func(), void _q_emitItemDoubleClicked(const QModelIndex &index)) 425 Q_PRIVATE_SLOT(d_func(), void _q_emitItemActivated(const QModelIndex &index)) 426 Q_PRIVATE_SLOT(d_func(), void _q_emitItemEntered(const QModelIndex &index)) 427 Q_PRIVATE_SLOT(d_func(), void _q_emitItemChanged(const QModelIndex &index)) 428 Q_PRIVATE_SLOT(d_func(), void _q_emitItemExpanded(const QModelIndex &index)) 429 Q_PRIVATE_SLOT(d_func(), void _q_emitItemCollapsed(const QModelIndex &index)) 430 Q_PRIVATE_SLOT(d_func(), void _q_emitCurrentItemChanged(const QModelIndex &previous, const QModelIndex ¤t)) 431 Q_PRIVATE_SLOT(d_func(), void _q_sort()) 432 Q_PRIVATE_SLOT(d_func(), void _q_dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight)) 433 Q_PRIVATE_SLOT(d_func(), void _q_selectionChanged(const QItemSelection &selected, const QItemSelection &deselected)) +/ 434 } 435