]> SALOME platform Git repositories - modules/gui.git/commitdiff
Salome HOME
*** empty log message ***
authorstv <stv@opencascade.com>
Wed, 21 Feb 2007 11:49:31 +0000 (11:49 +0000)
committerstv <stv@opencascade.com>
Wed, 21 Feb 2007 11:49:31 +0000 (11:49 +0000)
src/Qtx/QtxWorkstack.cxx
src/STD/STD_Application.cxx
src/STD/STD_Application.h
src/SUIT/SUIT_Study.cxx
src/SUIT/SUIT_Study.h

index 263f2e699c2972c57e1843f041eb4cce974896a9..2bdc0325bde3df52023f79b3007b05160a6988a7 100644 (file)
@@ -1984,7 +1984,9 @@ void QtxWorkstackArea::updateCurrent()
     setBlocked( *it, true );
   }
 
-  myStack->setCurrentWidget( child( widget( myBar->tabId( myBar->currentIndex() ) ) ) );
+  QWidget* cur = child( widget( myBar->tabId( myBar->currentIndex() ) ) );
+  if ( cur )
+    myStack->setCurrentWidget( cur );
 
   for ( QWidgetList::iterator itr = myList.begin(); itr != myList.end(); ++itr )
     setBlocked( *itr, map.contains( *itr ) ? map[*itr] : false );
index 0739226ef8f63a87339084ec5361346f9a5bbaf7..2ec191bc26fc2931256757f03a3d2ff21f615742 100755 (executable)
@@ -244,28 +244,45 @@ void STD_Application::createActions()
 
 /*!Opens new application*/
 void STD_Application::onNewDoc()
+{
+  onNewDoc( QString() );
+}
+
+/*!Opens new application*/
+bool STD_Application::onNewDoc( const QString& name )
 {
   QApplication::setOverrideCursor( Qt::WaitCursor );
 
+  bool res = true;
   if ( !activeStudy() )
   {
     createEmptyStudy();
-    activeStudy()->createDocument();
-    studyCreated( activeStudy() );
+    res = activeStudy()->createDocument( name );
+    if ( res )
+      studyCreated( activeStudy() );
+    else
+    {
+      delete activeStudy();
+      setActiveStudy( 0 );
+    }
   }
   else
   {
     SUIT_Application* aApp = startApplication( 0, 0 );
     if ( aApp->inherits( "STD_Application" ) )
-      ((STD_Application*)aApp)->onNewDoc();
+      res = ((STD_Application*)aApp)->onNewDoc( name );
     else
     {
       aApp->createEmptyStudy();
-      aApp->activeStudy()->createDocument();
+      res = aApp->activeStudy()->createDocument( name );
     }
+    if ( !res )
+      aApp->closeApplication();
   }
 
   QApplication::restoreOverrideCursor();
+
+  return res;
 }
 
 /*!Put file name from file dialog to onOpenDoc(const QString&) function*/
index 3de1db3846d0654967e8ccf82674c3f356cfa131..d9fcce5d717996bfe7a4e1443587544b0c165afb 100755 (executable)
@@ -99,6 +99,8 @@ signals:
 
 public slots:
   virtual void          onNewDoc();
+  virtual bool          onNewDoc( const QString& );
+
   virtual void          onCloseDoc( bool ask = true );
   virtual void          onSaveDoc();
   virtual bool          onSaveAsDoc();
index ea2d598303f29955a85a8a2c7854bf04c1affa78..2115e1005189848a118bf717c552e9c54c83560a 100755 (executable)
@@ -118,8 +118,9 @@ void SUIT_Study::closeDocument(bool permanently)
   Custom document initialization to be performed \n
    within onNewDoc() handler can be put here
 */
-void SUIT_Study::createDocument()
+bool SUIT_Study::createDocument( const QString& )
 {
+  return true;
 }
 
 /*!
index 604ba97bb7b801c1cb02316be08570658e6effcc..aab1f4c2216246537597bc2e605f7bc584f63699 100755 (executable)
@@ -51,9 +51,9 @@ public:
   virtual bool      isSaved()  const;
   virtual bool      isModified() const;
 
-  virtual void      createDocument();
   virtual void      closeDocument( bool = true );
   virtual bool      openDocument( const QString& );
+  virtual bool      createDocument( const QString& );
 
   bool              saveDocument();
   virtual bool      saveDocumentAs( const QString& );