void ClsQDiagramView::addTab(int iType, string strName, string strID) { #ifdef DEBUG_CLSQDIAGRAMVIEW cout << "ClsQDiagramView::addTab(string strName, string strID)" << endl; #endif // int ii; // memcpy(&ii, strID.c_str(), sizeof(int)); // int iT = qtabbar->addTab(new QTab (strName.c_str())); // QTab* qq = qtabbar->tab(iT); // qq->setIdentifier(ii); // qtabbar->repaint(); // cout << "strID: " << strID << endl; // cout << "strName: " << strName << endl; int iT = qtabbar->addTab(new QTab (strName.c_str())); // cout << "iT: " << iT << endl; qmapTabIdentifyers[iT] = strID; QTab* qq = qtabbar->tab(iT); //tab() or tabAt() ??? // cout << "qq NULL?: " << (qq==NULL ? "yes" : "no") << endl; if(iType == ClsFESystemManager::ITEM_SYSTEM){ qq->setIconSet(QIconSet(QPixmap(LetterS_2))); } else if(iType == ClsFESystemManager::ITEM_PROCESS){ qq->setIconSet(QIconSet(QPixmap(LetterP_2))); } qq->setIdentifier(iT); qtabbar->repaint(); };
void KTabBar::setTabColor( int id, const QColor& color ) { QTab *t = tab( id ); if ( t ) { mTabColors.insert( id, color ); repaint( t->rect(), false ); } }
void TabBar::mousePressEvent(QMouseEvent *e) { if (e->button() == RightButton) { QTab *tab = selectTab( e->pos() ); QWidget* page; page = tab ? _tabWidget->page( indexOf( tab->identifier() ) ) :0; QPopupMenu popup, popup1, popup2, popup3; if (page) { TraceItemView::Position p = _tabView->tabPosition(page); if (p != TraceItemView::Top) { popup.insertItem(i18n("Move to Top"), 81); popup2.insertItem(i18n("Top"), 91); } if (p != TraceItemView::Right) { popup.insertItem(i18n("Move to Right"), 82); popup2.insertItem(i18n("Right"), 92); } if (p != TraceItemView::Bottom) { popup.insertItem(i18n("Move to Bottom"), 83); popup2.insertItem(i18n("Bottom"), 93); } if (p != TraceItemView::Left) { popup.insertItem(i18n("Move to Bottom Left"), 84); popup2.insertItem(i18n("Bottom Left"), 94); } popup.insertItem(i18n("Move Area To"), &popup2, 2); popup.insertSeparator(); popup.insertItem(i18n("Hide This Tab"), 80); popup.insertItem(i18n("Hide Area"), 90); if (_tabView->visibleTabs() <2) { popup.setItemEnabled(80, false); popup.setItemEnabled(90, false); } else if (_tabView->visibleAreas() <2) popup.setItemEnabled(90, false); } popup3.insertItem(i18n("Top"), 101); popup3.insertItem(i18n("Right"), 102); popup3.insertItem(i18n("Bottom"), 103); popup3.insertItem(i18n("Bottom Left"), 104); popup.insertItem(i18n("Show Hidden On"), &popup3, 3); int r = popup.exec( mapToGlobal( e->pos() ) ); TraceItemView::Position p = TraceItemView::Hidden; if ((r % 10) == 1) p = TraceItemView::Top; if ((r % 10) == 2) p = TraceItemView::Right; if ((r % 10) == 3) p = TraceItemView::Bottom; if ((r % 10) == 4) p = TraceItemView::Left; if (r>=80 && r<100) _tabView->moveTab(page, p, r>=90); if (r>=100 && r<110) _tabView->moveTab(0, p, true); } QTabBar::mousePressEvent( e ); }
void KTabBar::mouseDoubleClickEvent( QMouseEvent *e ) { QTab *tab = selectTab( e->pos() ); if( tab!= 0L ) { emit( mouseDoubleClick( indexOf( tab->identifier() ) ) ); return; } QTabBar::mouseDoubleClickEvent( e ); }
void KTabBar::dropEvent( QDropEvent *e ) { QTab *tab = selectTab( e->pos() ); if( tab!= 0L ) { mActivateDragSwitchTabTimer->stop(); mDragSwitchTab = 0; emit( receivedDropEvent( indexOf( tab->identifier() ) , e ) ); return; } QTabBar::dropEvent( e ); }
void KTabBar::mousePressEvent( QMouseEvent *e ) { if( e->button() == LeftButton ) { mEnableCloseButtonTimer->stop(); mDragStart = e->pos(); } else if( e->button() == RightButton ) { QTab *tab = selectTab( e->pos() ); if( tab!= 0L ) { emit( contextMenu( indexOf( tab->identifier() ), mapToGlobal( e->pos() ) ) ); return; } } QTabBar::mousePressEvent( e ); }
/*! Defines a new \a label for page \a{w}'s tab. */ void QTabWidget::changeTab( QWidget *w, const QString &label) { int id = d->stack->id( w ); if ( id < 0 ) return; QTab* t = d->tabs->tab( id ); if ( !t ) return; // this will update the accelerators t->setText( label ); d->tabs->layoutTabs(); d->tabs->update(); setUpLayout(); }
void KTabBar::mouseReleaseEvent( QMouseEvent *e ) { if( e->button() == MidButton ) { QTab *tab = selectTab( e->pos() ); if ( mReorderStartTab==-1 ) { if( tab!= 0L ) { emit( mouseMiddleClick( indexOf( tab->identifier() ) ) ); return; } } else { releaseMouse(); setCursor( arrowCursor ); mReorderStartTab=-1; mReorderPreviousTab=-1; } } QTabBar::mouseReleaseEvent( e ); }
void ClsQDiagramView::renameTab( string strID, string strName) { #ifdef DEBUG_CLSQDIAGRAMVIEW cout << "ClsQDiagramView::renameTab( string strID, string strName)" << endl; #endif int id = 0; QMap<int, string>::Iterator it; for ( it = qmapTabIdentifyers.begin(); it != qmapTabIdentifyers.end(); ++it ) { if(!it.data().compare(strID)) { id = it.key(); QTab* qq = qtabbar->tab(id); qq->setText(strName.c_str()); continue; } } qtabbar->repaint(); };
/*! \overload Defines a new \a iconset and a new \a label for page \a{w}'s tab. */ void QTabWidget::changeTab( QWidget *w, const QIconSet& iconset, const QString &label) { int id = d->stack->id( w ); if ( id < 0 ) return; QTab* t = d->tabs->tab( id ); if ( !t ) return; if ( t->iconset ) { delete t->iconset; t->iconset = 0; } // this will update the accelerators t->iconset = new QIconSet( iconset ); t->setText( label ); d->tabs->layoutTabs(); d->tabs->update(); setUpLayout(); }
void KTabBar::setTabEnabled( int id, bool enabled ) { QTab * t = tab( id ); if ( t ) { if ( t->isEnabled() != enabled ) { t->setEnabled( enabled ); QRect r( t->rect() ); if ( !enabled && id == currentTab() && count()>1 ) { int index = indexOf( id ); index += ( index+1 == count() ) ? -1 : 1; t = tabAt( index ); if ( t->isEnabled() ) { r = r.unite( t->rect() ); QPtrList<QTab> *tablist = tabList(); tablist->append( tablist->take( tablist->findRef( t ) ) ); emit selected( t->identifier() ); } } repaint( r ); } } }
void managementWidget::setupWidgets() { QTab t; top = new QBoxLayout(this,QBoxLayout::TopToBottom); vPan = new QSplitter(QSplitter::Horizontal, this); top->addWidget(vPan); // the left panel leftpanel = new QFrame(vPan); leftbox = new QBoxLayout(leftpanel,QBoxLayout::TopToBottom); QTabBar *ltab = new QTabBar(leftpanel); treeList = new KpTreeList(leftpanel); for (int i = 0; i < 4; i++) { QTab *t = new QTab(); t->setText( tType[i] ); ltab->addTab(t); } // Quick Search Bar searchToolBar = new KToolBar( leftpanel, "search toolbar"); QToolButton *clearSearch = new QToolButton(searchToolBar); clearSearch->setTextLabel(i18n("Clear Search"), true); clearSearch->setIconSet(SmallIconSet(QApplication::reverseLayout() ? "clear_left" : "locationbar_erase")); (void) new QLabel(i18n("Search: "),searchToolBar); searchLine = new KpListViewSearchLine(searchToolBar, treeList); // searchLine->setKeepParentsVisible(false); connect( clearSearch, SIGNAL( pressed() ), searchLine, SLOT( clear() )); QValueList<int> clist; clist.append(0); clist.append(2); searchLine->setSearchColumns(clist); searchToolBar->setStretchableWidget( searchLine ); connect( treeList, SIGNAL( cleared() ), searchLine, SLOT( clear() )); connect(ltab,SIGNAL(selected (int)),SLOT(tabChanged(int))); ltab->setCurrentTab(treeList->treeType); leftbox->addWidget(ltab,10); leftbox->addWidget(searchToolBar,10); leftbox->addWidget(treeList,10); leftbox->addStretch(); lbuttons = new QBoxLayout(QBoxLayout::LeftToRight); luinstButton = new QPushButton(i18n("Uninstall Marked"),leftpanel); luinstButton->setEnabled(FALSE); connect(luinstButton,SIGNAL(clicked()), SLOT(uninstallMultClicked())); linstButton = new QPushButton(i18n("Install Marked"),leftpanel); linstButton->setEnabled(FALSE); connect(linstButton,SIGNAL(clicked()), SLOT(installMultClicked())); leftbox->addLayout(lbuttons,0); // top level layout as child // Setup the `buttons' layout lbuttons->addWidget(linstButton,1,AlignBottom); lbuttons->addWidget(luinstButton,1,AlignBottom); lbuttons->addStretch(1); connect(treeList, SIGNAL(selectionChanged(QListViewItem *)), SLOT(packageHighlighted(QListViewItem *))); // the right panel rightpanel = new QFrame(vPan); rightbox = new QBoxLayout(rightpanel,QBoxLayout::TopToBottom); packageDisplay = new packageDisplayWidget(rightpanel); // connect(this, SIGNAL(changePackage(packageInfo *)), // packageDisplay, SLOT(changePackage(packageInfo *))); rbuttons = new QBoxLayout(QBoxLayout::LeftToRight); uinstButton = new QPushButton(i18n("Uninstall"),rightpanel); uinstButton->setEnabled(FALSE); connect(uinstButton,SIGNAL(clicked()), SLOT(uninstallSingleClicked())); instButton = new QPushButton(i18n("Install"),rightpanel); instButton->setEnabled(FALSE); connect(instButton,SIGNAL(clicked()), SLOT(installSingleClicked())); // Setup the `right panel' layout rightbox->addWidget(packageDisplay,10); rightbox->addLayout(rbuttons,0); // top level layout as child // Setup the `buttons' layout rbuttons->addWidget(instButton,1); rbuttons->addWidget(uinstButton,1); rbuttons->addStretch(1); }
void KTabBar::mouseMoveEvent( QMouseEvent *e ) { if ( e->state() == LeftButton ) { QTab *tab = selectTab( e->pos() ); if ( mDragSwitchTab && tab != mDragSwitchTab ) { mActivateDragSwitchTabTimer->stop(); mDragSwitchTab = 0; } int delay = KGlobalSettings::dndEventDelay(); QPoint newPos = e->pos(); if( newPos.x() > mDragStart.x()+delay || newPos.x() < mDragStart.x()-delay || newPos.y() > mDragStart.y()+delay || newPos.y() < mDragStart.y()-delay ) { if( tab!= 0L ) { emit( initiateDrag( indexOf( tab->identifier() ) ) ); return; } } } else if ( e->state() == MidButton ) { if (mReorderStartTab==-1) { int delay = KGlobalSettings::dndEventDelay(); QPoint newPos = e->pos(); if( newPos.x() > mDragStart.x()+delay || newPos.x() < mDragStart.x()-delay || newPos.y() > mDragStart.y()+delay || newPos.y() < mDragStart.y()-delay ) { QTab *tab = selectTab( e->pos() ); if( tab!= 0L && mTabReorderingEnabled ) { mReorderStartTab = indexOf( tab->identifier() ); grabMouse( sizeAllCursor ); return; } } } else { QTab *tab = selectTab( e->pos() ); if( tab!= 0L ) { int reorderStopTab = indexOf( tab->identifier() ); if ( mReorderStartTab!=reorderStopTab && mReorderPreviousTab!=reorderStopTab ) { emit( moveTab( mReorderStartTab, reorderStopTab ) ); mReorderPreviousTab=mReorderStartTab; mReorderStartTab=reorderStopTab; return; } } } } if ( mHoverCloseButtonEnabled && mReorderStartTab==-1) { QTab *t = selectTab( e->pos() ); //BEGIN Workaround //Qt3.2.0 (and 3.2.1) emit wrong local coordinates //for MouseMove events when the pointer leaves a widget. Discard those //to avoid enabling the wrong hover button #ifdef __GNUC__ #warning "Workaround for Qt 3.2.0, 3.2.1 bug" #endif if ( e->globalPos() != mapToGlobal( e->pos() ) ) return; //END Workaround if( t && t->iconSet() && t->isEnabled() ) { QPixmap pixmap = t->iconSet()->pixmap( QIconSet::Small, QIconSet::Normal ); QRect rect( 0, 0, pixmap.width() + 4, pixmap.height() +4); int xoff = 0, yoff = 0; // The additional offsets were found by try and error, TODO: find the rational behind them if ( t == tab( currentTab() ) ) { #if QT_VERSION >= 0x030200 xoff = style().pixelMetric( QStyle::PM_TabBarTabShiftHorizontal, this ) + 3; yoff = style().pixelMetric( QStyle::PM_TabBarTabShiftVertical, this ) - 4; #else xoff = 3; yoff = -4; #endif } else { xoff = 7; yoff = 0; } rect.moveLeft( t->rect().left() + 2 + xoff ); rect.moveTop( t->rect().center().y()-pixmap.height()/2 + yoff ); if ( rect.contains( e->pos() ) ) { if ( mHoverCloseButton ) { if ( mHoverCloseButtonTab == t ) return; mEnableCloseButtonTimer->stop(); delete mHoverCloseButton; } mHoverCloseButton = new QPushButton( this ); mHoverCloseButton->setIconSet( KGlobal::iconLoader()->loadIcon("fileclose", KIcon::Toolbar, KIcon::SizeSmall, KIcon::ActiveState) ); mHoverCloseButton->setGeometry( rect ); QToolTip::add(mHoverCloseButton,i18n("Close this tab")); mHoverCloseButton->setFlat(true); mHoverCloseButton->show(); if ( mHoverCloseButtonDelayed ) { mHoverCloseButton->setEnabled(false); mEnableCloseButtonTimer->start( QApplication::doubleClickInterval(), true ); } mHoverCloseButtonTab = t; connect( mHoverCloseButton, SIGNAL( clicked() ), SLOT( closeButtonClicked() ) ); return; } } if ( mHoverCloseButton ) { mEnableCloseButtonTimer->stop(); delete mHoverCloseButton; mHoverCloseButton = 0; } } QTabBar::mouseMoveEvent( e ); }