]> SALOME platform Git repositories - modules/shaper.git/commitdiff
Salome HOME
Issue #2436: Remember last visited directory as default path for saving files
authorvsv <vsv@opencascade.com>
Wed, 21 Feb 2018 09:26:41 +0000 (12:26 +0300)
committervsv <vsv@opencascade.com>
Wed, 21 Feb 2018 09:26:41 +0000 (12:26 +0300)
src/ModuleBase/ModuleBase_WidgetFileSelector.cpp
src/ModuleBase/ModuleBase_WidgetFileSelector.h

index ca7ee5de1a7f29e16f59b81e3aa547fa9183d16e..85b1772b0a036a417398a0e56e08bc68901189e3 100644 (file)
 #include <memory>
 #include <string>
 
+
+/// Default path
+static QString myDefaultPath;
+
+
 ModuleBase_WidgetFileSelector::ModuleBase_WidgetFileSelector(QWidget* theParent,
                                                              const Config_WidgetAPI* theData)
 : ModuleBase_ModelWidget(theParent, theData), myFileDialog(0)
 {
   myTitle = translate(theData->getProperty("title"));
   myType = (theData->getProperty("type") == "save") ? WFS_SAVE : WFS_OPEN;
-  myDefaultPath = QString::fromStdString(theData->getProperty("path"));
+  if (myDefaultPath.isNull() || myDefaultPath.isEmpty())
+    myDefaultPath = QString::fromStdString(theData->getProperty("path"));
 
   if (myDefaultPath.isEmpty())
     myDefaultPath = Config_PropManager::string("Plugins", "import_initial_path").c_str();
@@ -139,6 +145,7 @@ void ModuleBase_WidgetFileSelector::onPathSelectionBtn()
       ? myDefaultPath
       : QFileInfo(myPathField->text()).absolutePath();
   QString aFilter = filterString();
+
   // use Option prohibited native dialog using to have both lower/upper extensions of files
   // satisfied to dialog filter on Linux(Calibre) Issue #2055
   myFileDialog = new QFileDialog(this, myTitle, aDefaultPath, aFilter);
@@ -156,6 +163,7 @@ void ModuleBase_WidgetFileSelector::onPathSelectionBtn()
         if (myType == WFS_SAVE)
           aFileName = applyExtension(aFileName, mySelectedFilter);
         myPathField->setText(aFileName);
+        myDefaultPath = QFileInfo(aFileName).absolutePath();
         emit focusOutWidget(this);
       }
     }
index e337845e94de3c38ebdb99b38892066cd7b4e59a..28e31619a6ff321ee4b89bcbf8241d2716d16914 100644 (file)
@@ -121,9 +121,6 @@ protected:
     WFS_OPEN, ///< open file
     WFS_SAVE ///< save file
   } myType; ///< type of dialog
-
-  /// Default path
-  QString myDefaultPath;
 };
 
 #endif /* MODULEBASE_WIDGETFILESELECTOR_H_ */