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();
    }
}
Beispiel #3
0
/**
 * \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();
	}
}
Beispiel #4
0
/**
 * \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();
}