void ExtendedTabWidget::onCloseAllDocuments() { QWidget* w = widget(0); while (w) { if (!onCloseWindow(w)) return; w = widget(0); } tabsUpdate(); }
int ExtendedTabWidget::addSubWindow(EditorInterface* window) { QWidget *widget = window->widget(); Q_ASSERT(widget != 0); int curr = currentIndex(); int index = QTabWidget::insertTab(curr + 1, widget, window->icon(), tabTextFor(widget)); widget->installEventFilter(this); widget->setAttribute(Qt::WA_DeleteOnClose, true); setCurrentWidget(widget); tabsUpdate(); return index; }
bool ExtendedTabWidget::closeWindow(QWidget* wnd) { Q_ASSERT_X(wnd, "bool ExtendedTabWidget::close(int index)", "Can't get window"); if(wnd->close()) { emit tabBeforeClose(wnd); removeTab(indexOf(wnd)); delete wnd; tabsUpdate(); return true; } return false; }