📄 ctreeview.cpp
字号:
END_PROPERTYBEGIN_PROPERTY(CTREEVIEW_key) MyListViewItem *item = (MyListViewItem *)(WIDGET->currentItem()); THIS->item = item; if (item == 0) GB.ReturnNull(); else GB.ReturnString(item->key);END_PROPERTYBEGIN_PROPERTY(CTREEVIEW_item) if (THIS->item == 0) GB.ReturnNull(); else RETURN_SELF();END_PROPERTYBEGIN_PROPERTY(CTREEVIEW_available) GB.ReturnBoolean(THIS->item != 0);END_PROPERTYBEGIN_PROPERTY(CTREEVIEW_show_root) if (READ_PROPERTY) GB.ReturnBoolean(WIDGET->rootIsDecorated()); else WIDGET->setRootIsDecorated(VPROP(GB_BOOLEAN));END_PROPERTYBEGIN_PROPERTY(CTREEVIEW_sorted) if (READ_PROPERTY) GB.ReturnBoolean(OBJECT(CTREEVIEW)->sorted != -1); else { OBJECT(CTREEVIEW)->sorted = VPROP(GB_BOOLEAN) ? 0 : -1; WIDGET->setSorting(OBJECT(CTREEVIEW)->sorted); WIDGET->setShowSortIndicator(VPROP(GB_BOOLEAN)); }END_PROPERTYBEGIN_PROPERTY(CTREEVIEW_editable) if (READ_PROPERTY) GB.ReturnBoolean(THIS->rename); else THIS->rename = VPROP(GB_BOOLEAN);END_PROPERTYBEGIN_PROPERTY(CTREEVIEW_count) GB.ReturnInteger(WIDGET->childCount());END_PROPERTYBEGIN_METHOD_VOID(CTREEVIEW_back) MyListViewItem *item = THIS->save; THIS->save = 0; return_item(THIS, item);END_METHODBEGIN_METHOD(CTREEVIEW_move_to, GB_STRING key) char *key = GB.ToZeroString(ARG(key)); MyListViewItem *item = (*THIS->dict)[key]; return_item(THIS, item);END_METHODBEGIN_METHOD_VOID(CTREEVIEW_move_current) return_item(THIS, (MyListViewItem *)(WIDGET->currentItem()));END_PROPERTYBEGIN_METHOD_VOID(CTREEVIEW_first) return_item(THIS, (MyListViewItem *)(WIDGET->firstChild()));END_METHODBEGIN_METHOD_VOID(CTREEVIEW_last) return_item(THIS, (MyListViewItem *)(WIDGET->last));END_METHODBEGIN_METHOD_VOID(CTREEVIEW_previous) return_item(THIS, THIS->item ? (MyListViewItem *)(THIS->item->prev) : 0);END_METHODBEGIN_METHOD_VOID(CTREEVIEW_next) return_item(THIS, THIS->item ? (MyListViewItem *)(THIS->item->nextSibling()) : 0);END_METHODBEGIN_METHOD_VOID(CTREEVIEW_parent) return_item(THIS, THIS->item ? (MyListViewItem *)(THIS->item->parent()) : 0);END_METHODBEGIN_METHOD_VOID(CTREEVIEW_child) return_item(THIS, THIS->item ? (MyListViewItem *)(THIS->item->firstChild()) : 0);END_METHODBEGIN_METHOD_VOID(CTREEVIEW_above) return_item(THIS, THIS->item ? (MyListViewItem *)(THIS->item->itemAbove()) : 0);END_METHODBEGIN_METHOD_VOID(CTREEVIEW_below) return_item(THIS, THIS->item ? (MyListViewItem *)(THIS->item->itemBelow()) : 0);END_METHODBEGIN_PROPERTY(CTREEVIEWITEM_key) GB.ReturnString(THIS->item->key);END_PROPERTYBEGIN_PROPERTY(CTREEVIEWITEM_picture) if (READ_PROPERTY) GB.ReturnObject(THIS->item->picture); else THIS->item->setPicture(PROP(GB_OBJECT));END_PROPERTYBEGIN_PROPERTY(CTREEVIEWITEM_selected) MyListViewItem *it = THIS->item; if (READ_PROPERTY) GB.ReturnBoolean(it->isSelected()); else it->listView()->setSelected(it, VPROP(GB_BOOLEAN));END_PROPERTYBEGIN_PROPERTY(CTREEVIEWITEM_expanded) MyListViewItem *it = THIS->item; if (READ_PROPERTY) GB.ReturnBoolean(it->isOpen()); else it->setOpen(VPROP(GB_BOOLEAN));END_PROPERTYBEGIN_PROPERTY(CTREEVIEWITEM_text) MyListViewItem *it = THIS->item; if (READ_PROPERTY) GB.ReturnNewZeroString(TO_UTF8(it->text(0))); else it->setText(0, QSTRING_PROP());END_PROPERTYBEGIN_PROPERTY(CTREEVIEWITEM_count) GB.ReturnInteger(THIS->item->childCount());END_PROPERTYBEGIN_METHOD_VOID(CTREEVIEWITEM_ensure_visible) //qDebug("ensure visible: %p", THIS->item); WIDGET->ensureItemVisible(THIS->item);END_METHODBEGIN_METHOD_VOID(CTREEVIEWITEM_delete) //THIS->dict->remove(THIS->item->key); //qDebug("CTREEVIEWITEM_delete < %p %p", THIS, THIS->item); delete THIS->item; //qDebug("CTREEVIEWITEM_delete > %p", THIS->item);END_METHODBEGIN_METHOD_VOID(CTREEVIEWITEM_clear) const MyListViewItem *item = (const MyListViewItem *)THIS->item->firstChild(); const MyListViewItem *next; //qDebug("< CTREEVIEWITEM_clear"); while (item) { next = (const MyListViewItem *)item->nextSibling(); //THIS->dict->remove(((MyListViewItem *)item)->key); delete item; item = next; } //qDebug("CTREEVIEWITEM_clear >");END_METHOD/*BEGIN_METHOD_VOID(CTREEVIEWITEM_init) CLASS_Item = GB.FindClass("Item");END_METHOD*/BEGIN_PROPERTY(CTREEVIEWITEM_editable) if (READ_PROPERTY) GB.ReturnBoolean(THIS->item->renameEnabled(0)); else THIS->item->setRenameEnabled(0, VPROP(GB_BOOLEAN));END_PROPERTYBEGIN_METHOD_VOID(CTREEVIEWITEM_rename) THIS->item->startRename(0);END_METHOD/*BEGIN_PROPERTY(CTREEVIEWITEM_sort_key) MyListViewItem *it = THIS->item; if (READ_PROPERTY) GB.ReturnInteger(it->sortKey); else it->sortKey = VPROP(GB_INTEGER);END_PROPERTY*//*************************************************************************** Columns***************************************************************************/BEGIN_PROPERTY(CLISTVIEW_columns) RETURN_SELF();END_PROPERTYBEGIN_PROPERTY(CLISTVIEW_resizable) if (READ_PROPERTY) GB.ReturnBoolean(WIDGET->header()->isResizeEnabled()); else { WIDGET->header()->setResizeEnabled(VPROP(GB_BOOLEAN)); //WIDGET->setResizeMode(PROPERTY(GB_BOOLEAN) ? QListView::NoColumn : QListView::LastColumn); }END_PROPERTYBEGIN_PROPERTY(CLISTVIEW_auto_resize) if (READ_PROPERTY) GB.ReturnBoolean(WIDGET->resizeMode() == QListView::LastColumn); else WIDGET->setResizeMode(VPROP(GB_BOOLEAN) ? QListView::LastColumn : QListView::NoColumn);END_PROPERTYBEGIN_PROPERTY(CLISTVIEW_moveable) if (READ_PROPERTY) GB.ReturnBoolean(WIDGET->header()->isMovingEnabled()); else WIDGET->header()->setMovingEnabled(VPROP(GB_BOOLEAN));END_PROPERTYBEGIN_PROPERTY(CLISTVIEW_columns_count) long col; QListView::ResizeMode mode; //bool *numeric; //int i, n; if (READ_PROPERTY) { GB.ReturnInteger(WIDGET->columns()); return; } col = VPROP(GB_INTEGER); if (col < 1 || col > 64) { GB.Error("Bad number of columns"); return; } //mode = WIDGET->resizeMode(); //WIDGET->setResizeMode( /* numeric = new bool[col]; memset(numeric, 0, col * sizeof(*numeric)); if (THIS->numeric) { n = QMIN(WIDGET->columns(), col); for (i = 0; i < n; i++) numeric[i] = THIS->numeric[i]; delete[] THIS->numeric; } THIS->numeric = numeric; */ mode = WIDGET->resizeMode(); WIDGET->setResizeMode(QListView::NoColumn); if (col < WIDGET->columns()) { while (col < WIDGET->columns()) WIDGET->removeColumn(WIDGET->columns() - 1); } else if (col > WIDGET->columns()) { while (col > WIDGET->columns()) { WIDGET->addColumn(""); //WIDGET->setColumnWidthMode(WIDGET->columns() - 1, QListView::Manual); } } WIDGET->setResizeMode(mode);END_PROPERTYBEGIN_METHOD(CLISTVIEW_columns_get, GB_INTEGER col) long col = VARG(col); if (col < 0 || col >= WIDGET->columns()) { GB.Error("Bad column index"); return; } _column = col; RETURN_SELF();END_PROPERTYBEGIN_METHOD_VOID(CLISTVIEW_columns_adjust) QHeader *header = WIDGET->header(); int col = WIDGET->columns() - 1; int w; w = WIDGET->width() - WIDGET->frameWidth() * 2 - header->sectionPos(col); WIDGET->setColumnWidth(col, w); //updateScrollBars(); //qDebug("setColumnWidth %d = %d", col, w); //header->resize(w, header->height()); /*header->resizeSection(header->count() - 1, WIDGET->frameSize().width() - WIDGET );*/END_METHODBEGIN_PROPERTY(CLISTVIEW_column_text) if (READ_PROPERTY) GB.ReturnNewZeroString(TO_UTF8(WIDGET->columnText(_column))); else WIDGET->setColumnText(_column, QSTRING_PROP());END_PROPERTYBEGIN_PROPERTY(CLISTVIEW_column_width) int w; if (READ_PROPERTY) GB.ReturnInteger(WIDGET->columnWidth(_column)); else { w = VPROP(GB_INTEGER); //if ((_column == (WIDGET->columns() - 1)) && w < 0) // updateLastColumn(WIDGET); //else WIDGET->setColumnWidthMode(_column, QListView::Manual); WIDGET->setColumnWidth(_column, w); }END_PROPERTYBEGIN_PROPERTY(CLISTVIEW_column_alignment) if (READ_PROPERTY) GB.ReturnInteger(WIDGET->columnAlignment(_column)); else WIDGET->setColumnAlignment(_column, VPROP(GB_INTEGER));END_PROPERTYBEGIN_PROPERTY(CLISTVIEW_columns_sort) int sort; if (READ_PROPERTY) GB.ReturnInteger(THIS->sorted); else { sort = VPROP(GB_INTEGER); if (sort < -1 || sort >= WIDGET->columns()) return; THIS->sorted = sort; THIS->asc = true; WIDGET->setSorting(THIS->sorted); }END_PROPERTYBEGIN_PROPERTY(CLISTVIEW_columns_ascending) if (READ_PROPERTY) GB.ReturnBoolean(THIS->asc); else { THIS->asc = VPROP(GB_BOOLEAN); WIDGET->setSorting(THIS->sorted, THIS->asc); }END_PROPERTY/*BEGIN_PROPERTY(CLISTVIEW_column_numeric) if (READ_PROPERTY) GB.ReturnNewZeroString(TO_UTF8(WIDGET->columnText(_column))); else WIDGET->setColumnText(_column, QSTRING_PROP());END_PROPERTY*/BEGIN_PROPERTY(CLISTVIEW_column_auto_resize) if (READ_PROPERTY) GB.ReturnBoolean(WIDGET->columnWidthMode(_column) != QListView::Manual); else WIDGET->setColumnWidthMode(_column, VPROP(GB_BOOLEAN) ? QListView::Maximum : QListView::Manual);END_PROPERTYBEGIN_METHOD(CTREEVIEWITEM_get, GB_INTEGER col) const MyListViewItem* item = THIS->item; GB.ReturnNewZeroString(TO_UTF8(item->text(VARG(col))));END_METHODBEGIN_METHOD(CTREEVIEWITEM_put, GB_STRING text; GB_INTEGER col) MyListViewItem* item = THIS->item; item->setText(VARG(col), QSTRING_ARG(text));
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -