// remove a viewport void caDoubleTabWidget::removePage(int index) { int pageIndex = 0; PRINT(printf("we have to remove the page from array for row=%d col=%d\n", row, col)); if((pageIndex =lookupArrayIndex(row, col)) != -1) { // delete this stackwidget page from the array deleteArrayIndex(pageIndex); QWidget *widget = viewPort->widget(index); PRINT(printf("remove widget at stacked widget index=%d with name=%s\n", index, qasc(widget->objectName()))); viewPort->removeWidget(widget); setRow(row); setCol(col); // now that we deleted a page of the stackwidget we will have to change are lookup array // after the deleted page, change key to key -1 QMap<int, twoInts> lookupNew; QMapIterator<int, twoInts> j(lookup); while (j.hasNext()) { j.next(); twoInts item; item.r = j.value().r; item.c = j.value().c; if(j.key() > pageIndex) { lookupNew.insert(j.key()-1, item); } else { lookupNew.insert(j.key(), item); } } // and copy it back lookup = lookupNew; lookupNew.detach(); } else { PRINT(printf("page not found, return\n")); return; } }