From 1fd6955ee4bf56aa4fde4dcbd38162d745e2074a Mon Sep 17 00:00:00 2001
From: Christophe Geuzaine <cgeuzaine@ulg.ac.be>
Date: Tue, 1 Nov 2011 16:48:12 +0000
Subject: [PATCH] model extension

---
 Fltk/onelabWindow.cpp | 12 ++++++++++--
 Fltk/onelabWindow.h   |  3 +++
 2 files changed, 13 insertions(+), 2 deletions(-)

diff --git a/Fltk/onelabWindow.cpp b/Fltk/onelabWindow.cpp
index c29c03e752..5b70471a83 100644
--- a/Fltk/onelabWindow.cpp
+++ b/Fltk/onelabWindow.cpp
@@ -322,15 +322,19 @@ void onelab_cb(Fl_Widget *w, void *data)
     action = "initial check";
   }
 
+  std::string ext = FlGui::instance()->onelab->getModelExtension();
+
   if(action == "choose model"){
-    if(fileChooser(FILE_CHOOSER_SINGLE, "Choose", "*.pro"))
+    std::string pattern = "*";
+    pattern += ext;
+    if(fileChooser(FILE_CHOOSER_SINGLE, "Choose", pattern.c_str()))
       FlGui::instance()->onelab->setModelName(fileChooserGetName(1));
     action = "check";
   }
 
   if(FlGui::instance()->onelab->getModelName().empty()){
     std::vector<std::string> split = SplitFileName(GModel::current()->getFileName());
-    FlGui::instance()->onelab->setModelName(split[0] + split[1] + ".pro");
+    FlGui::instance()->onelab->setModelName(split[0] + split[1] + ext);
   }
 
   FlGui::instance()->onelab->deactivate();
@@ -629,6 +633,10 @@ void onelabWindow::addSolver(const std::string &name, const std::string &command
     onelab::localNetworkClient *c = new onelab::localNetworkClient(name, commandLine);
     c->setIndex(index);
     if(commandLine.empty()) onelab_choose_executable_cb(0, (void *)c);
+    if(name == "GetDP")
+      setModelExtension(".pro");
+    else
+      setModelExtension(".py");
   }
   FlGui::instance()->onelab->rebuildSolverList();
 }
diff --git a/Fltk/onelabWindow.h b/Fltk/onelabWindow.h
index 7bb93a8c23..65af958804 100644
--- a/Fltk/onelabWindow.h
+++ b/Fltk/onelabWindow.h
@@ -25,6 +25,7 @@ class onelabWindow{
   Fl_Menu_Button *_gear;
   std::vector<Fl_Widget*> _treeWidgets;
   std::string _title;
+  std::string _modelExtension;
  public:
   onelabWindow(int deltaFontSize=0);
   int x(){ return _win->x(); }
@@ -38,6 +39,8 @@ class onelabWindow{
   int shown(){ return _win->shown(); }
   std::string getModelName(){ return _model->value(); }
   void setModelName(const std::string &name){ _model->value(name.c_str()); }
+  std::string getModelExtension(){ return _modelExtension; }
+  void setModelExtension(const std::string &ext){ _modelExtension = ext; }
   int meshAuto(){ return _gear->menu()[1].value(); }
   std::string getPath(Fl_Tree_Item *item)
   {
-- 
GitLab