]> SALOME platform Git repositories - modules/gui.git/commitdiff
Salome HOME
Issue 20334 : [CEA 336] Open/SaveAs should show current directory
authorvsr <vsr@opencascade.com>
Mon, 27 Jul 2009 06:59:00 +0000 (06:59 +0000)
committervsr <vsr@opencascade.com>
Mon, 27 Jul 2009 06:59:00 +0000 (06:59 +0000)
src/LightApp/resources/LightApp.xml
src/SUIT/SUIT_FileDlg.cxx
src/SalomeApp/resources/SalomeApp.xml

index 0b7cc506b4d58c0df6f548f8147130a36fcc3fa5..ebfc4ab4b58b689130c1d28183e3223214ddb9dc 100644 (file)
@@ -91,6 +91,7 @@
   <section name="FileDlg">
     <!-- "Open/Save File" dialog box preferences-->
     <parameter name="QuickDirList" value=""/>
+    <parameter name="ShowCurDirInitial" value="true" />
   </section>
   <section name="MRU" >
     <!-- Show "Most recently used" studies-->
index cadb8fa966792219c62002109665e5c25b709ee3..c60f4b6fc66e04a474f435afd695afbb2bd75f48 100755 (executable)
@@ -119,6 +119,8 @@ SUIT_FileDlg::SUIT_FileDlg( QWidget* parent, bool open, bool showQuickDir, bool
   myQuickButton( 0 ),
   myCheckPermissions( true )
 {
+  SUIT_ResourceMgr* resMgr = SUIT_Session::session()->resourceMgr();
+  
   setModal( modal );
   setSizeGripEnabled( true );
   if ( parent )
@@ -137,9 +139,8 @@ SUIT_FileDlg::SUIT_FileDlg( QWidget* parent, bool open, bool showQuickDir, bool
       // retrieve directories list from the resources
       QStringList dirList;
   
-      SUIT_ResourceMgr* resMgr = SUIT_Session::session()->resourceMgr();
       if ( resMgr )
-       dirList = resMgr->stringValue( "FileDlg", QString( "QuickDirList" ) ).split( ';', QString::SkipEmptyParts );
+       dirList = resMgr->stringValue( "FileDlg", "QuickDirList" ).split( ';', QString::SkipEmptyParts );
 
       if ( dirList.isEmpty() ) 
        dirList << QDir::homePath();
@@ -157,11 +158,16 @@ SUIT_FileDlg::SUIT_FileDlg( QWidget* parent, bool open, bool showQuickDir, bool
   setAcceptMode( open ? AcceptOpen: AcceptSave );
   setWindowTitle( open ? tr( "INF_DESK_DOC_OPEN" ) : tr( "INF_DESK_DOC_SAVE" ) );
 
+  bool showCurrentDirInitial = resMgr ? resMgr->booleanValue( "FileDlg", "ShowCurDirInitial", false ) : false;
+
   // If last visited path doesn't exist -> switch to the first preferred path
   if ( !myLastVisitedPath.isEmpty() ) {
     if ( !processPath( myLastVisitedPath ) && showQuickDir )
       processPath( myQuickCombo->itemText( 0 ) );
   }
+  else if ( showCurrentDirInitial ) {
+    processPath( QDir::currentPath() );
+  }
   else if ( showQuickDir ) {
     processPath( myQuickCombo->itemText( 0 ) );
   }
@@ -562,11 +568,11 @@ bool SUIT_FileDlg::processPath( const QString& path )
        setDirectory( path );
       return true;
     }
-    else if ( QFileInfo( SUIT_Tools::dir( path ) ).exists() ) {
-      setDirectory( SUIT_Tools::dir( path ) );
-      selectFile( path );
-      return true;
-    }
+    QString dirPath = SUIT_Tools::dir( path, false );
+    if ( !dirPath.isEmpty() && QFileInfo( dirPath ).exists() )
+      setDirectory( dirPath );
+    selectFile( SUIT_Tools::file( path ) );
+    return true;
   }
   return false;
 }
@@ -640,7 +646,7 @@ void SUIT_FileDlg::addQuickDir()
 
     SUIT_ResourceMgr* resMgr = SUIT_Session::session()->resourceMgr();
     if ( resMgr )
-      dirList = resMgr->stringValue( "FileDlg", QString( "QuickDirList" ) ).split( ';', QString::SkipEmptyParts );
+      dirList = resMgr->stringValue( "FileDlg", "QuickDirList" ).split( ';', QString::SkipEmptyParts );
 
     bool found = false;
     bool emptyAndHome = false;
@@ -660,7 +666,7 @@ void SUIT_FileDlg::addQuickDir()
 
     if ( !found ) {
       dirList.append( dp );
-      resMgr->setValue( "FileDlg", QString( "QuickDirList" ), dirList.join( ";" ) );
+      resMgr->setValue( "FileDlg", "QuickDirList", dirList.join( ";" ) );
       if ( !emptyAndHome )
        myQuickCombo->addItem( dp );
     }
index a0d6846f402f00e2f51cddea43505964acda129f..7864376bf05145d574eb321ba361355a7ac991a1 100644 (file)
   <section name="FileDlg" >
     <!-- "Open/Save File" dialog box preferences-->
     <parameter name="QuickDirList" value="${DATA_DIR}" />
+    <parameter name="ShowCurDirInitial" value="true" />
   </section>
   <section name="Study">
     <!-- General study settings -->