//---------------------------------------------------------------------------------------- OfsTreeWidget::OfsTreeWidget(QWidget *parent, unsigned int capabilities, std::string initialSelection) : QTreeWidget(parent), mCapabilities(capabilities) { mSelected = initialSelection; setColumnCount(1); setHeaderHidden(true); setSelectionMode(QAbstractItemView::SingleSelection); setSelectionBehavior(QAbstractItemView::SelectItems); setContextMenuPolicy(Qt::CustomContextMenu); setDragDropOverwriteMode(false); if(capabilities & CAP_ALLOW_DROPS) setDragDropMode(QAbstractItemView::DropOnly); mUnknownFileIcon = mOgitorMainWindow->mIconProvider.icon(QFileIconProvider::File); mFile = Ogitors::OgitorsRoot::getSingletonPtr()->GetProjectFile(); QTreeWidgetItem* item = 0; QTreeWidgetItem* pItem = new QTreeWidgetItem((QTreeWidget*)0, QStringList(QString("Project"))); pItem->setIcon(0, mOgitorMainWindow->mIconProvider.icon(QFileIconProvider::Folder)); pItem->setTextColor(0, Qt::black); QFont fnt = pItem->font(0); fnt.setBold(true); pItem->setFont(0, fnt); pItem->setWhatsThis(0, QString("/")); addTopLevelItem(pItem); fillTree(pItem, "/"); if(capabilities & CAP_SHOW_FILES) fillTreeFiles(pItem, "/"); expandItem(pItem); if(mSelected == "/") setItemSelected(pItem, true); else { NameTreeWidgetMap::iterator it = mItemMap.find(mSelected); if(it != mItemMap.end()) { clearSelection(); scrollToItem(it->second); setItemSelected(it->second, true); } } connect(this, SIGNAL(itemSelectionChanged()), this, SLOT(onSelectionChanged())); if(capabilities & CAP_SHOW_FILES) { connect(this, SIGNAL(itemCollapsed( QTreeWidgetItem * )), this, SLOT(onItemCollapsed( QTreeWidgetItem * ))); connect(this, SIGNAL(itemExpanded( QTreeWidgetItem * )), this, SLOT(onItemExpanded( QTreeWidgetItem * ))); }
void ListTable::createNewRow() { QListWidgetItem * item = 0; switch (type_) { case ListEditor::INT: item = new QListWidgetItem("0"); break; case ListEditor::FLOAT: item = new QListWidgetItem("0.0"); break; default: item = new QListWidgetItem(""); } item->setTextAlignment(Qt::AlignLeft | Qt::AlignVCenter); item->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled | Qt::ItemIsEditable); addItem(item); setItemSelected(item, true); setCurrentRow(row(item)); itemActivated(item); edit(currentIndex()); }
void KviCanvasView::contentsMousePressEvent(QMouseEvent *e) { if(e->button() & Qt::LeftButton) { // QPoint p = inverseWorldMatrix().map(e->pos()); QPoint p = e->pos(); switch(m_state) { case SelectOrigin: clearSelection(); setCursor(arrowCursor); m_state = Idle; insertObjectAt(p,m_objectToInsert); canvas()->update(); break; case Idle: { QCanvasItemList l = canvas()->collisions(p); QCanvasItemList::Iterator it = l.begin(); if(it != l.end()) { // Got an item QCanvasItem * hit = *it; if(hit != m_pSelectedItem) { // Was not selected yet setItemSelected(hit); canvas()->update(); } // Now find the point on that we have clicked it switch(KVI_CANVAS_RTTI_CONTROL_TYPE(hit)) { case KVI_CANVAS_RTTI_CONTROL_TYPE_RECTANGLE: beginDragRectangle(((KviCanvasRectangleItem *)hit),p); break; case KVI_CANVAS_RTTI_CONTROL_TYPE_LINE: beginDragLine(((KviCanvasLine *)hit),p); break; case KVI_CANVAS_RTTI_CONTROL_TYPE_POLYGON: beginDragPolygon(((KviCanvasPolygon *)hit),p,e->state() & Qt::ShiftButton,e->state() & Qt::ControlButton); break; } } else { // No item clearSelection(); canvas()->update(); } } break; } } }
void MovableTableWidget::dropEvent(QDropEvent *event) { if (event->source() != this) { event->ignore(); return; } int targetRow = dropRow(event->pos()); QByteArray encoded = event->mimeData()->data("application/x-qabstractitemmodeldatalist"); QDataStream stream(&encoded, QIODevice::ReadOnly); QMap<int, QMap<int, QString> > rows; while (!stream.atEnd()) { int row, col; QMap<int, QVariant> roleDataMap; stream >> row >> col >> roleDataMap; rows[row][col] = roleDataMap[0].toString(); } QList<int> rowkeys = rows.keys(); qSort(rowkeys); for (int row = rowkeys.count()-1; 0 <= row ; row--) { int rowIndex = rowkeys[row]; if (rowIndex < targetRow) { targetRow--; } removeRow(rowIndex); } for (int row = 0; row < rowkeys.count(); ++row) { QMap<int, QString> cols = rows[rowkeys[row]]; QList<int> colkeys = cols.keys(); insertRow(targetRow+row); for (int col = 0; col < colkeys.count(); ++col) { QString value = cols[colkeys[col]]; setItem(targetRow+row, col, new QTableWidgetItem(value)); setItemSelected(item(targetRow+row, col), true); } emit(itemMoved(rowkeys[row],targetRow+row)); } m_lineRow = -1; }
foreach (QTreeWidgetItem *item, items) { item->setFlags(item->flags() & ~Qt::ItemIsDropEnabled); setItemSelected(item, true); }
void KviCanvasView::insertObjectAt(const QPoint & pnt,ObjectType o) { QCanvasItem * r = 0; switch(o) { case Rectangle: r = new KviCanvasRectangle(canvas(),pnt.x(),pnt.y(),0,0); break; case RichText: r = new KviCanvasRichText(canvas(),pnt.x(),pnt.y(),0,0); break; case Line: r = new KviCanvasLine(canvas(),pnt.x(),pnt.y(),pnt.x(),pnt.y()); break; case Ellipse: r = new KviCanvasEllipse(canvas(),pnt.x(),pnt.y(),0,0); break; case Pie: r = new KviCanvasPie(canvas(),pnt.x(),pnt.y(),0,0); break; case Chord: r = new KviCanvasChord(canvas(),pnt.x(),pnt.y(),0,0); break; case PolygonTriangle: { QPointArray pa(3); pa.setPoint(0,0,-500); pa.setPoint(1,-450,220); pa.setPoint(2,450,220); r = new KviCanvasPolygon(canvas(),pnt.x(),pnt.y(),pa,0.1); } break; case PolygonRectangle: { QPointArray pa(4); pa.setPoint(0,-350,-350); pa.setPoint(1,350,-350); pa.setPoint(2,350,350); pa.setPoint(3,-350,350); r = new KviCanvasPolygon(canvas(),pnt.x(),pnt.y(),pa,0.1); } break; case PolygonPentagon: { QPointArray pa(5); calcPolygonPoints(pa,5); r = new KviCanvasPolygon(canvas(),pnt.x(),pnt.y(),pa,0.1); } break; case PolygonHexagon: { QPointArray pa(6); calcPolygonPoints(pa,6); r = new KviCanvasPolygon(canvas(),pnt.x(),pnt.y(),pa,0.1); } break; } if(r) { setItemSelected(r); r->setEnabled(true); r->show(); } switch(KVI_CANVAS_RTTI_CONTROL_TYPE(r)) { case KVI_CANVAS_RTTI_CONTROL_TYPE_RECTANGLE: beginDragRectangle((KviCanvasRectangleItem *)r,pnt,true); break; case KVI_CANVAS_RTTI_CONTROL_TYPE_LINE: beginDragLine((KviCanvasLine *)r,pnt,true); break; // case KVI_CANVAS_RTTI_CONTROL_TYPE_POLYGON: // beginDragPolygon((KviCanvasPolygon *)r,pnt,true); // break; } // canvas()->update(); }