void ChannelsJoinDialogTreeWidget::mouseDoubleClickEvent(QMouseEvent * e) { QTreeWidgetItem * it = itemAt(e->pos()); ChannelsJoinDialog * pDialog = (ChannelsJoinDialog *)parentWidget(); if(!it || !pDialog || !(e->button() & Qt::LeftButton)) return; if(it->type() == ChannelsJoinDialog::HeaderItem) return; setCurrentItem(it); pDialog->itemSelected(); pDialog->joinClicked(); }
void lmcUserTreeWidget::contextMenuEvent(QContextMenuEvent* event) { QTreeWidget::contextMenuEvent(event); QTreeWidgetItem* item = itemAt(event->pos()); QPoint pos = event->globalPos(); if(item && event->reason() != QContextMenuEvent::Mouse) { QRect itemRect = visualItemRect(item); pos = itemRect.bottomLeft(); pos.ry() += itemRect.height(); pos = mapToGlobal(pos); } emit itemContextMenu(item, pos); }
void Tree::dropEvent(QDropEvent *event) { mainWindow->prepareNewAction(); if (event->mimeData()->hasUrls() && event->source() == NULL) { int numSf2 = -1; int commandCopy = 0; this->clearSelection(); for (int i = 0; i < event->mimeData()->urls().count(); i++) { QString path = QUrl::fromPercentEncoding(event->mimeData()->urls().at(i).toEncoded()); if (!path.isEmpty()) { QString extension = path.split(".").last().toLower(); if (extension == "sfz" || extension == "sf2" || extension == "sfark") mainWindow->dragAndDrop(path, getItemID(itemAt(event->pos())), &numSf2); else if (extension == "wav") mainWindow->dragAndDrop(path, getItemID(itemAt(event->pos())), &commandCopy); } } this->mainWindow->updateActions(); } else { // Destination EltID idDest = this->getItemID(this->itemAt(event->pos())); // Constitution de la liste des éléments à copier / lier QList<EltID> liste = this->getAllIDs(); mainWindow->dragAndDrop(idDest, liste); } mainWindow->updateDo(); }
void My_Layers::mousePressEvent(QMouseEvent *e) { QPoint point = e->pos(); //Verifico che point sia dentro una casella della tabella QRect visible_area = visualItemRect(item(rowCount()-1,0)); if (point.y() > visible_area.bottom()) return; if (e->button() == Qt::LeftButton) { int col = columnAt(point.x()); switch(tipo_tabella) { case 'V': switch(col) { case 0: break; case 1: toogle_select(row(itemAt(point))); break; case 2: toogle_show(row(itemAt(point))); break; } break; case 'P': if(col == 1) toogle_print(row(itemAt(point))); break; case 'G': if(col == 1) toogle_gerber(row(itemAt(point))); break; } } }
void PopupDropperView::dragMoveEvent( QDragMoveEvent *event ) { //qDebug() << "PopupDropperView::dragMoveEvent"; QGraphicsItem* item = itemAt( event->pos() ); #define svgitem(x) dynamic_cast<QGraphicsSvgItem*>(x) #define textitem(x) dynamic_cast<QGraphicsTextItem*>(x) #define borderitem(x) dynamic_cast<QGraphicsRectItem*>(x) if( !svgitem(item) && !textitem(item) && !borderitem(item) ) { if( d->lastItem ) d->lastItem->hoverLeft(); d->lastItem = 0; } else if( svgitem(item) && d->lastItem != dynamic_cast<PopupDropperItem*>( svgitem(item)->parentItem() ) ) { //qDebug() << "svg item"; if( d->lastItem ) d->lastItem->hoverLeft(); static_cast<PopupDropperItem*>( svgitem(item)->parentItem() )->hoverEntered(); d->lastItem = static_cast<PopupDropperItem*>( svgitem(item)->parentItem() ); } else if( textitem(item) && d->lastItem != dynamic_cast<PopupDropperItem*>( textitem(item)->parentItem() ) ) { //qDebug() << "text item"; if( d->lastItem ) d->lastItem->hoverLeft(); static_cast<PopupDropperItem*>( textitem(item)->parentItem() )->hoverEntered(); d->lastItem = static_cast<PopupDropperItem*>( textitem(item)->parentItem() ); } else if( borderitem(item) && d->lastItem != dynamic_cast<PopupDropperItem*>( borderitem(item)->parentItem() ) ) { //qDebug() << "border item"; if( d->lastItem ) d->lastItem->hoverLeft(); static_cast<PopupDropperItem*>( borderitem(item)->parentItem() )->hoverEntered(); d->lastItem = static_cast<PopupDropperItem*>( borderitem(item)->parentItem() ); } #undef borderitem #undef textitem #undef pditem event->accept(); }
void TeQtViewsListView::contentsDragMoveEvent(QDragMoveEvent *e) { if(pressedThemeItem_) pressedThemeItem_->setOpen(themeOpen_); if(e->source() != viewport()) { e->ignore(); e->acceptAction(false); return; } QPoint p = contentsToViewport(((QDragMoveEvent*)e)->pos()); TeQtCheckListItem *item = (TeQtCheckListItem*)itemAt(p); if (item) { if (p.x() < treeStepSize() * (item->depth() + (rootIsDecorated() ? 1 : 0)) + itemMargin()) { e->ignore(); e->acceptAction(false); } else { if(item->getType() == TeQtCheckListItem::THEME || item->getType() == TeQtCheckListItem::VIEW) { e->accept(); e->acceptAction(); } else { e->ignore(); e->acceptAction(false); if(currentThemeItem_) { unselectAllItems(); currentThemeItem_->parent()->setSelected(true); currentThemeItem_->parent()->repaint(); currentThemeItem_->setSelected(true); repaint(); } } } } else { e->ignore(); e->acceptAction(false); } }
bool HierarchyTreeControl::GetMoveItemID(QDropEvent *event, HierarchyTreeNode::HIERARCHYTREENODEID &insertInTo, HierarchyTreeNode::HIERARCHYTREENODEID &insertAfter) { DropIndicatorPosition position = dropIndicatorPosition(); QTreeWidgetItem* item = itemAt(event->pos()); if (!item) return false; if (item == currentItem()) return false; insertInTo = HierarchyTreeNode::HIERARCHYTREENODEID_EMPTY; switch (position) { case OnViewport: { return false; }break; case OnItem: { QVariant data = item->data(ITEM_ID); insertInTo = data.toInt(); insertAfter = HierarchyTreeNode::HIERARCHYTREENODEID_EMPTY; } break; case AboveItem: { QTreeWidgetItem* parent = item->parent(); if (parent) insertInTo = parent->data(ITEM_ID).toInt(); QTreeWidgetItem* above = itemAbove(item); if (!above) return false; insertAfter = above->data(ITEM_ID).toInt(); } break; case BelowItem: { QTreeWidgetItem* parent = item->parent(); if (parent) insertInTo = parent->data(ITEM_ID).toInt(); insertAfter = item->data(ITEM_ID).toInt(); }break; } if (currentItem() && currentItem()->data(ITEM_ID) == insertAfter) return false; return true; }
TEST(qpsContainerModel, qObjectPtrListReferenceItemAt) { using QObjects = qps::ContainerModel< QVector, QObject* >; QObjects objects; QObject* o1{new QObject()}; QObject* o2{new QObject()}; objects.append( o1 ); objects.append( new QObject() ); objects.append( o2 ); auto listRef = objects.getListReference(); ASSERT_TRUE( listRef != nullptr ); ASSERT_TRUE( ( listRef->itemAt(0) != QVariant{} ) ); EXPECT_TRUE( ( qvariant_cast<QObject*>( listRef->itemAt(0) ) == o1 ) ); EXPECT_TRUE( ( qvariant_cast<QObject*>( listRef->itemAt(2) ) == o2 ) ); ASSERT_TRUE( ( listRef->itemAt(3) == QVariant{} ) ); ASSERT_TRUE( ( listRef->at(0) != nullptr ) ); EXPECT_TRUE( ( listRef->at(0) == o1 ) ); EXPECT_TRUE( ( listRef->at(2) == o2 ) ); ASSERT_TRUE( ( listRef->at(3) == nullptr ) ); }
void KasBar::mouseReleaseEvent(QMouseEvent *ev) { if ( !inDrag ) { KasItem *i = itemAt( ev->pos() ); if ( i ) i->mouseReleaseEvent( ev ); } else if ( detached ) { setDetachedPosition( pos() ); emit configChanged(); } pressPos = QPoint(); inDrag = false; }
void FeedListWidget::dragMoveEvent(QDragMoveEvent *event) { QTreeWidget::dragMoveEvent(event); QTreeWidgetItem *item = itemAt(event->pos()); // Prohibit dropping onto global unread counter if (item == m_unreadStickyItem) event->ignore(); // Prohibit dragging of global unread counter else if (selectedItems().contains(m_unreadStickyItem)) event->ignore(); // Prohibit dropping onto feeds else if (item && isFeed(item)) event->ignore(); }
//----------------------------------------------- void KFileDnDDetailView::contentsDragEnterEvent( QDragEnterEvent *e ) { kdDebug (9020) << "KFileDnDDetailView::contentsDragEnterEvent" << endl; if ( ! acceptDrag( e ) ) { e->accept( false ); return; } e->acceptAction(); QListViewItem *i = itemAt( contentsToViewport( e->pos() ) ); if ( i && m_useAutoOpenTimer ) { m_dropItem = i; m_autoOpenTimer.start( m_autoOpenTime ); } }
bool KviTalListWidget::event(QEvent * e) { if (e->type() == QEvent::ToolTip) { QHelpEvent *helpEvent = static_cast<QHelpEvent *>(e); const QPoint &p=helpEvent->pos(); QListWidgetItem *item=itemAt(p); if (item) { emit tipRequest(item,p); } } return QListWidget::event(e); }
bool BasketTreeListView::event(QEvent *e) { if (e->type() == QEvent::ToolTip) { QHelpEvent *he = static_cast<QHelpEvent *>(e); QTreeWidgetItem *item = itemAt(he->pos()); BasketListViewItem* bitem = dynamic_cast<BasketListViewItem*>(item); if (bitem && bitem->isAbbreviated()) { QRect rect = visualItemRect(bitem); QToolTip::showText(rect.topLeft(), bitem->basket()->basketName(), viewport(), rect); } return true; } return QTreeWidget::event(e); }
void ListView::contentsMousePressEvent(QMouseEvent *e) { if (e->button() == QObject::LeftButton){ m_pressedItem = itemAt(contentsToViewport(e->pos())); if (m_pressedItem && !m_pressedItem->isSelectable()) m_pressedItem = NULL; if (m_pressedItem) repaintItem(m_pressedItem); #if QT_VERSION < 300 m_mousePressPos = e->pos(); QTimer::singleShot(QApplication::startDragTime(), this, SLOT(startDrag())); #endif } QListView::contentsMousePressEvent(e); }
/*! Destroys the QGraphicsGridLayout object. */ QGraphicsGridLayout::~QGraphicsGridLayout() { for (int i = count() - 1; i >= 0; --i) { QGraphicsLayoutItem *item = itemAt(i); // The following lines can be removed, but this removes the item // from the layout more efficiently than the implementation of // ~QGraphicsLayoutItem. removeAt(i); if (item) { item->setParentLayoutItem(0); if (item->ownedByLayout()) delete item; } } }
void CWizCategoryBaseView::startDrag(Qt::DropActions supportedActions) { Q_UNUSED(supportedActions); QPoint pt = mapFromGlobal(QCursor::pos()); if (CWizCategoryViewTagItem* item = dynamic_cast<CWizCategoryViewTagItem*>(itemAt(pt))) { QDrag* drag = new QDrag(this); QMimeData* mimeData = new QMimeData(); mimeData->setData(WIZNOTE_MIMEFORMAT_TAGS, item->tag().strGUID.toUtf8()); drag->setMimeData(mimeData); drag->exec(Qt::CopyAction); } }
bool KWalletEntryList::acceptDrag(QDropEvent* e) const { QListViewItem *i = itemAt(contentsToViewport(e->pos())); if (i) { if (e->provides("application/x-kwallet-entry") || e->provides("text/uri-list")) { return true; } } if ((e->provides("application/x-kwallet-folder") && e->source() != viewport()) || e->provides("text/uri-list")) { return true; } return false; }
void DirectoryView::contentsDragEnterEvent( QDragEnterEvent *e ) { if ( !QUriDrag::canDecode(e) ) { e->ignore(); return; } oldCurrent = currentItem(); QListViewItem *i = itemAt( contentsToViewport(e->pos()) ); if ( i ) { dropItem = i; autoopen_timer->start( autoopenTime ); } }
void DirectoryView::contentsMousePressEvent( QMouseEvent* e ) { QListView::contentsMousePressEvent(e); QPoint p( contentsToViewport( e->pos() ) ); QListViewItem *i = itemAt( p ); if ( i ) { // if the user clicked into the root decoration of the item, don't try to start a drag! if ( p.x() > header()->cellPos( header()->mapToActual( 0 ) ) + treeStepSize() * ( i->depth() + ( rootIsDecorated() ? 1 : 0) ) + itemMargin() || p.x() < header()->cellPos( header()->mapToActual( 0 ) ) ) { presspos = e->pos(); mousePressed = TRUE; } } }
void ListView::contentsMouseReleaseEvent(QMouseEvent *e) { #if QT_VERSION < 300 m_mousePressPos = QPoint(0, 0); #endif QListView::contentsMouseReleaseEvent(e); if (m_pressedItem){ QListViewItem *item = m_pressedItem; m_pressedItem = NULL; item->repaint(); QListViewItem *citem = itemAt(contentsToViewport(e->pos())); if (item == citem) emit clickItem(item); } }
void FileTransferWidget::mousePressEvent (QMouseEvent *e) { if (e->button() == Qt::RightButton) { // we have 3 items: the one on the first column is the real one (has a transfer() member) // others are just fakes QTableWidgetItem *clicked = itemAt(e->pos()); if(clicked) { FileTransferItem *i = (FileTransferItem*) item(clicked->row(),0); if (i) emit rightButtonPressed(i, QCursor::pos()); } } QTableWidget::mousePressEvent(e); }
void CXmlPropertyList::viewportDragMoveEvent ( QDragMoveEvent *e ) { PropertyListItem *i = (PropertyListItem*) itemAt( e->pos() ); if( !i ) { e->ignore(); return; } if ( ::qt_cast<PropertyColorItem*>(i) && QColorDrag::canDecode( e ) ) e->accept(); else if ( ::qt_cast<PropertyPixmapItem*>(i) && QImageDrag::canDecode( e ) ) e->accept(); else e->ignore(); }
// ----------------------------------------------------------------------------- // // ----------------------------------------------------------------------------- void FilterLibraryTreeWidget::onCustomContextMenuRequested(const QPoint& pos) { QTreeWidgetItem* item = itemAt(pos); if (item) { // Note: We must map the point to global from the viewport to // account for the header. showContextMenu( item, viewport()->mapToGlobal(pos) ); } else { showContextMenu( NULL, mapToGlobal(pos) ); } }
int QStackedLayoutHFW::heightForWidth(int width) const { const int n = count(); int hfw = 0; for (int i = 0; i < n; ++i) { if (QLayoutItem *item = itemAt(i)) { if (QWidget *w = item->widget()) hfw = qMax(hfw, w->heightForWidth(width)); } } hfw = qMax(hfw, minimumSize().height()); return hfw; }
void neuralScene::mouseMoveEvent( QGraphicsSceneMouseEvent * event ) { if (mode == STANDARD) { QGraphicsScene::mouseMoveEvent(event); } if (mode == SYNAPSECREATION) { QGraphicsItem *item = itemAt(event->scenePos(), QTransform()); neuronItem* neuron = qgraphicsitem_cast<neuronItem*>(item); if (item!=0 and neuron==0) neuron = qgraphicsitem_cast<neuronItem*>(item->parentItem()); if (neuron==0) { tempSynapse->setTempPos(event->scenePos()); } else { tempSynapse->setTempPos(neuron->pos()); } } }
void FileBrowserTreeWidget::mouseMoveEvent( QMouseEvent * me ) { if( m_mousePressed == true && ( m_pressPos - me->pos() ).manhattanLength() > QApplication::startDragDistance() ) { // make sure any playback is stopped mouseReleaseEvent( NULL ); FileItem * f = dynamic_cast<FileItem *>( itemAt( m_pressPos ) ); if( f != NULL ) { switch( f->type() ) { case FileItem::PresetFile: new StringPairDrag( f->handling() == FileItem::LoadAsPreset ? "presetfile" : "pluginpresetfile", f->fullName(), embed::getIconPixmap( "preset_file" ), this ); break; case FileItem::SampleFile: new StringPairDrag( "samplefile", f->fullName(), embed::getIconPixmap( "sample_file" ), this ); break; case FileItem::SoundFontFile: new StringPairDrag( "soundfontfile", f->fullName(), embed::getIconPixmap( "soundfont_file" ), this ); break; case FileItem::VstPluginFile: new StringPairDrag( "vstpluginfile", f->fullName(), embed::getIconPixmap( "vst_plugin_file" ), this ); break; case FileItem::MidiFile: new StringPairDrag( "importedproject", f->fullName(), embed::getIconPixmap( "midi_file" ), this ); break; case FileItem::ProjectFile: new StringPairDrag( "projectfile", f->fullName(), embed::getIconPixmap( "project_file" ), this ); break; default: break; } } } }
void EntitiesTreeWidget::mousePressEvent(QMouseEvent *event) { QTreeWidgetItem *selectedItem = itemAt(event->pos()); // If the selected Item exists // if (selectedItem && event->button() == Qt::MouseButton::LeftButton){ // if(!selectedItem->data(0,Qt::UserRole).isValid()){ // QTreeWidget::mousePressEvent(event); // return; // } // qlonglong pointer = selectedItem->data(0,Qt::UserRole + 1).toLongLong(); // QMimeData *mimeData = new QMimeData; // QByteArray strPointer = QString("%1").arg(pointer).toLatin1(); // mimeData->setData("pointer",strPointer); // if(selectedItem->data(0,Qt::UserRole).toInt() == (int)yarp::manager::MODULE){ // mimeData->setText("module"); // } // if(selectedItem->data(0,Qt::UserRole).toInt() == (int)yarp::manager::APPLICATION){ // mimeData->setText("application"); // } // QFontMetrics fontMetric(font()); // int textWidth = fontMetric.width(selectedItem->text(0)); // QDrag *drag = new QDrag(this); // drag->setMimeData(mimeData); // QPixmap pix(textWidth + 40,18); // QPainter painter(&pix); // QPen pen(QBrush(QColor((Qt::blue))),1); // painter.setPen(pen); // painter.fillRect(0,0,textWidth + 40,18,QBrush(QColor((Qt::lightGray)))); // painter.drawRect(0,0,textWidth + 39,17); // painter.drawImage(QRectF(1,1,16,16),QImage(":/module22.svg")); // painter.drawText(QRectF(16,1,textWidth + 20,16),Qt::AlignCenter,selectedItem->text(0)); // //pix.fill(QColor(Qt::red)); // drag->setPixmap(pix); // drag->exec(Qt::CopyAction); // } QTreeWidget::mousePressEvent(event); }
void FunctionsTreeWidget::dropEvent(QDropEvent *event) { QTreeWidgetItem *dropItem = itemAt(event->pos()); if (m_draggedItems.count() == 0 || dropItem == NULL) return; QVariant var = dropItem->data(COL_NAME, Qt::UserRole + 1); if (var.isValid() == false) return; int dropType = var.toInt(); //QString folderName = dropItem->text(COL_PATH); foreach (QTreeWidgetItem *item, m_draggedItems) { quint32 dragFID = item->data(COL_NAME, Qt::UserRole).toUInt(); Function *dragFunc = m_doc->function(dragFID); if (dragFunc != NULL && dragFunc->type() == dropType) { QTreeWidget::dropEvent(event); quint32 fid = item->data(COL_NAME, Qt::UserRole).toUInt(); Function *func = m_doc->function(fid); if (func != NULL) func->setPath(dropItem->text(COL_PATH)); // if item is a Scene with Sequence children attached, // set the new path of children too if (item->childCount() > 0) { for (int i = 0; i < item->childCount(); i++) { QTreeWidgetItem *child = item->child(i); quint32 childFID = child->data(COL_NAME, Qt::UserRole).toUInt(); Function *childFunc = m_doc->function(childFID); if (childFunc != NULL) childFunc->setPath(dropItem->text(COL_PATH)); } } } else { // m_draggedItem is a folder int dragType = item->data(COL_NAME, Qt::UserRole + 1).toInt(); if (dragType == dropType) QTreeWidget::dropEvent(event); slotItemChanged(item); } }
void DirectoryView::contentsDragMoveEvent(QDragMoveEvent *e) { if (!QUriDrag::canDecode(e)) { e->ignore(); return; } QPoint vp = contentsToViewport((reinterpret_cast<QDragMoveEvent*>(e))->pos()); QListViewItem *i = itemAt(vp); if (i) { setSelected(i, TRUE); e->accept(); if (i != dropItem) { autoopen_timer->stop(); dropItem = i; autoopen_timer->start(autoopenTime); } switch (e->action()) { case QDropEvent::Copy: break; case QDropEvent::Move: e->acceptAction(); break; case QDropEvent::Link: e->acceptAction(); break; default: break; } } else { e->ignore(); autoopen_timer->stop(); dropItem = 0; } }
void HierarchyTreeControl::HandleDragMoveControlMimeData(QDragMoveEvent *event, const ControlMimeData* /*mimeData*/) { DropIndicatorPosition position = dropIndicatorPosition(); Logger::Warning("POSITION TYPE^ %i", position); // Where we are in tree? QTreeWidgetItem* item = itemAt(event->pos()); if (!item) { HierarchyTreeController::Instance()->ResetSelectedControl(); return; } HierarchyTreeNode::HIERARCHYTREENODEID insertInto = HierarchyTreeNode::HIERARCHYTREENODEID_EMPTY; QVariant data = item->data(ITEM_ID); insertInto = data.toInt(); // Handle specific types of nodes. HierarchyTreeNode* nodeToInsertControlTo = HierarchyTreeController::Instance()->GetTree().GetNode(insertInto); if (dynamic_cast<HierarchyTreePlatformNode*>(nodeToInsertControlTo) || dynamic_cast<HierarchyTreeAggregatorControlNode*>(nodeToInsertControlTo)) { // Don't allow to drop the controls directly to Platform or Aggregator. HierarchyTreeController::Instance()->ResetSelectedControl(); return; } // Expand the items while dragging control on them. if (!item->isExpanded()) { item->setExpanded(true); } scrollTo(indexAt(event->pos())); HierarchyTreeControlNode* controlNode = dynamic_cast<HierarchyTreeControlNode*>(nodeToInsertControlTo); if (controlNode) { // Don't reselect the same control, if it is already selected. if (!HierarchyTreeController::Instance()->IsControlSelected(controlNode)) { HierarchyTreeController::Instance()->ResetSelectedControl(); HierarchyTreeController::Instance()->SelectControl(controlNode); } } event->accept(); }