[Qt-interest] QMimeData problems between a QTableWidget and a QTreeWidget
Abhishek Patil
abhishekworld at gmail.com
Sun Mar 21 18:16:55 CET 2010
Hi,
Andrei Sebastian Cimpean wrote:
> Hello, i am trying to make it so when you drag from a table view to a
> tree view you can send some data and add an item to the tree view.
> I searched on the web and programmed something that i feel should
> work but, alas, it is not.
> This is the treeview class.
>
> Favorites::Favorites(QWidget *parent)
> : QTreeWidget(parent)
> {
> //building the part for the favorites list
> QTreeWidgetItem* favoritesItem = new QTreeWidgetItem();
> favoritesItem->setText(0,"Favorites");
> this->addTopLevelItem(favoritesItem);
> favoritesItem->setExpanded(true);
> this->setDragDropMode(QAbstractItemView::DropOnly);
> this->setAcceptDrops(true);
> addPathToFavorites(QString("asdsadasd"));
> refreshFavorites();
> }
>
> void Favorites::dragEnterEvent(QDragEnterEvent* event){
> qDebug()<< event->mimeData()->text(); // just prints out ""
> if (event->mimeData()->hasText())
> event->acceptProposedAction();
> }
>
> void Favorites::dropEvent(QDropEvent *event){
> qDebug()<< event->mimeData()->text();
> addPathToFavorites(event->mimeData()->text());
> }
>
> And this is the table
>
> TableWidget::TableWidget(QWidget *parent)
> : QTableWidget(parent)
> {
> //i've enabled drag in the main class
> }
>
> void TableWidget::mousePressEvent(QMouseEvent *event){
> if(event->button() == Qt::LeftButton)
> poss = event->pos();
> else { ;}
> QTableWidget::mousePressEvent(event);
> }
>
> void TableWidget::mouseMoveEvent(QMouseEvent *event){
> if(!event->buttons() & Qt::LeftButton)
> QTableWidget::mouseMoveEvent(event);
> else
> if((event->pos() - poss).manhattanLength() <
> QApplication::startDragDistance())
> QTableWidget::mouseMoveEvent(event);
> else{
> QTableWidgetItem *item = this->itemAt(event->pos());
> if(item){
> QDrag* drag = new QDrag(this);
> QMimeData* mimeData = new QMimeData;
> mimeData->setText(item->text());
> drag->setMimeData(mimeData);
> qDebug()<<drag->mimeData()->hasText()<<drag-
>
>> mimeData()->text();//print's what it should
>>
// I think you are missing
drag->exec();
> }
> QTableWidget::mouseMoveEvent(event);
> }
> }
>
> What am I doing wrong? Any help will be greatly appreciated. Thank
> you.
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> Qt-interest mailing list
> Qt-interest at trolltech.com
> http://lists.trolltech.com/mailman/listinfo/qt-interest
>
--
Abhishek Patil | http://thezeroth.net
+91-9620022244 | abhishek at thezeroth.net
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.qt-project.org/pipermail/qt-interest-old/attachments/20100321/c56e1047/attachment.html
More information about the Qt-interest-old
mailing list