void pTabBar::dropEvent( QDropEvent* event ) { if ( !event->mimeData()->hasUrls() ) { // get drop tab int ni = tabAt( event->pos() ); // if get it if ( ni != -1 ) { // get original tab infos int oi = event->mimeData()->data( "x-tabindex" ).toInt(); QVariant otd = tabData( oi ); QIcon oti = tabIcon( oi ); QString ott = tabText( oi ); QColor ottc = tabTextColor( oi ); QString ottt = tabToolTip( oi ); QString otwt = tabWhatsThis( oi ); // remove original tab removeTab( oi ); // insert new one with correct infos int i = insertTab( ni, oti, ott ); setTabData( i, otd ); setTabTextColor( i, ottc ); setTabToolTip( i, ottt ); setTabWhatsThis( i, otwt ); //accept event->acceptProposedAction(); // emit signal emit tabDropped( oi, i ); // set new current index setCurrentIndex( i ); } } else emit urlsDropped( event->mimeData()->urls () ); // default event QTabBar::dropEvent( event ); }
void AdvancedTabBar::tabLayoutChange() { d->list->setIconSize(iconSize()); while (count() < d->list->count()) { delete d->list->takeItem(0); } if (count() == -1) return; while (count() > d->list->count()) { d->list->addItem(QString()); } for (int i = 0; i < count(); i++) { QListWidgetItem * item = d->list->item(i); item->setText(tabText(i)); item->setIcon(tabIcon(i)); item->setToolTip(tabToolTip(i)); item->setWhatsThis(tabWhatsThis(i)); } d->list->setCurrentRow(currentIndex()); }