Exemple #1
0
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 );
}
Exemple #2
0
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());
}