예제 #1
0
bool TabWidget::canCloseTabs()
{
    if(m_tab_ids.empty())
        return true;

    for(int i = 0; i < count(); ++i)
    {
        Tab *tab = dynamic_cast<Tab*>(widget(i));
        if(!tab)
            continue;

        if(tab->isChild())
        {
            ChildTab* child = (ChildTab*)tab;
            WorkTab* parent = sWorkTabMgr.getWorkTab(child->getParentId());
            if(child->getWindowId() == parent->getWindowId())
                continue;
        }

        if(!tab->onTabClose())
            return false;
    }
    return true;
}