Esempio n. 1
0
//==============================================================
void TulipApp::saveInterface(int index) {
  Controller *controller=tabIndexToController[index];
  saveActions(menuBar(),controller,controllerToMenu);
  saveActions(graphToolBar,controller,controllerToGraphToolBar);
  saveActions(toolBar,controller,controllerToToolBar);

  controllerToDockWidget[controller].clear();
  controllerToCustomToolBar[controller].clear();
  controllerToWidgetVisible[controller].clear();
  QObjectList objectList=this->children();

  for(QObjectList::iterator it=objectList.begin(); it!=objectList.end(); ++it) {
    QDockWidget *widget=dynamic_cast<QDockWidget *>(*it);

    if(widget) {
      Qt::DockWidgetArea area=dockWidgetArea(widget);

      if(area!=Qt::NoDockWidgetArea) {
        controllerToDockWidget[controller].push_back(pair<Qt::DockWidgetArea,QDockWidget *>(area,widget));
        controllerToWidgetVisible[controller].push_back(pair<QWidget *, bool>(widget, widget->isVisible()));
      }
    }

    QToolBar *tb = dynamic_cast<QToolBar *>(*it);

    if (tb && tb != toolBar && tb != graphToolBar) {
      Qt::ToolBarArea area = toolBarArea(tb);
      controllerToCustomToolBar[controller].push_back(pair<Qt::ToolBarArea, QToolBar *>(area, tb));
      controllerToWidgetVisible[controller].push_back(pair<QWidget *, bool>(tb, tb->isVisible()));
    }
  }

  controllerToWidgetVisible[controller].push_back(pair<QWidget *, bool>(graphToolBar, graphToolBar->isVisible()));
  controllerToWidgetVisible[controller].push_back(pair<QWidget *, bool>(toolBar, toolBar->isVisible()));

  pair<string,string > tmp(statusBar()->currentMessage().toStdString(),string());
  objectList=statusBar()->children();

  for(QObjectList::iterator it=objectList.begin(); it!=objectList.end(); ++it) {
    QLabel *widget=dynamic_cast<QLabel*>(*it);

    if(widget)
      tmp.second=widget->text().toStdString();
  }

  controllerToStatusBar[tabIndexToController[index]]=tmp;
}