void mySpaces::openNewTab(QUrl url) { for(int i = 0; i < tabs->count(); i++) { tabPage * tab = static_cast<tabPage*>(tabs->widget(i)); if(tab->url().toString() == url.toString()) { tabs->setCurrentIndex(i); return; } } tabPage * tab = new tabPage(tabs); tab->load(url); tabs->addTab(tab,QIcon(":/myspaces/t_icon_home.png"),"mySpaces"); connect(tab, SIGNAL(OpenLinkInNewTab(QUrl)),SLOT(openNewTab(QUrl))); connect(tab, SIGNAL(changeTitle(QString)), this, SLOT(refreshTitles(QString))); connect(tab, SIGNAL(exitApplication()), SLOT(exitApp())); if(url.toString().startsWith("myspaces://")) tabs->setCurrentWidget(tab); if(tabs->count()>1) tabs->setMovable(true); else tabs->setMovable(false); resizeTabs(); }
void mySpaces::resizeEvent(QResizeEvent *event) { if(event->size().width()!=WindowWidth) { WindowWidth = event->size().width(); resizeTabs(); } }
/** * \brief Add the given tab widget * @param widget as the given widget */ void UBDockPalette::addTab(UBDockPaletteWidget *widget) { if(!mTabWidgets.contains(widget) && widget->visibleState()) { widget->setVisible(true); mTabWidgets.append(widget); mpStackWidget->addWidget(widget); mpStackWidget->setCurrentWidget(widget); resizeTabs(); update(); } }
/** * \brief Remove the given tab * @param widgetName as the tab widget name */ void UBDockPalette::removeTab(UBDockPaletteWidget* widget) { int nWidget = mTabWidgets.indexOf(widget); if( nWidget >= 0 ) { mpStackWidget->removeWidget(widget); mTabWidgets.remove(nWidget); widget->hide(); update(); } resizeTabs(); mCurrentTab = qMax(mCurrentTab - 1, 0); }
void mySpaces::closeTab(int index) { tabPage * tab = static_cast<tabPage*>(tabs->widget(index)); tabs->removeTab(index); delete tab; if(tabs->count()==0) { close(); return; } if(tabs->count()==1 && tabs->count()!=0) tabs->setMovable(false); else if(tabs->count()>1 && tabs->count()!=0) tabs->setMovable(true); resizeTabs(); }