From: Maxime <mpech@russule.clb.loc>
Date: Fri, 6 May 2011 15:00:52 +0000 (+0200)
Subject: factorising parameters for QSettings
X-Git-Tag: v1.2.1~37
X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=commitdiff_plain;h=09f83ca95651df8b78844118db4676a8bf67ff60;p=clitk.git

factorising parameters for QSettings
we propose the popup only if it is a new version
---

diff --git a/vv/vvMainWindow.cxx b/vv/vvMainWindow.cxx
index df3b675..7075b2c 100644
--- a/vv/vvMainWindow.cxx
+++ b/vv/vvMainWindow.cxx
@@ -328,7 +328,10 @@ vvMainWindow::vvMainWindow():vvMainWindowBase()
   
   
   vvRegisterForm* registerForm = new vvRegisterForm(QUrl("http://localhost/vvregister/write.php"));
-  registerForm->show();
+  if(registerForm->canPush()){
+      registerForm->show();
+      registerForm->acquitPushed();//too bad if there is not internet connection anymore.
+  }
   
 }
 //------------------------------------------------------------------------------
diff --git a/vv/vvRegisterForm.cxx b/vv/vvRegisterForm.cxx
index 3903796..430ba5f 100644
--- a/vv/vvRegisterForm.cxx
+++ b/vv/vvRegisterForm.cxx
@@ -19,9 +19,12 @@
 
 #include "vvRegisterForm.h"
 #include <QNetworkRequest>
+#include <QSettings>
+#include <QDir>
 #include <iostream>
 #include "common/globals.h"
 #include "vvCommon.h"
+#include "vvUtils.h"
 
 vvRegisterForm::vvRegisterForm(QUrl url):url(url) { 
   manager = new QNetworkAccessManager(this);
@@ -29,7 +32,6 @@ vvRegisterForm::vvRegisterForm(QUrl url):url(url) {
 }
 
 void vvRegisterForm::sendData(){
- if(canPush()){
   QUrl url2(url);
   url2.addQueryItem("name", firstName->text().toUtf8());
   url2.addQueryItem("lastName", lastName->text().toUtf8());
@@ -37,17 +39,17 @@ void vvRegisterForm::sendData(){
   url2.addQueryItem("group", group->text().toUtf8());
   url2.addQueryItem("os", QString::fromUtf8(OS_NAME));
   url2.addQueryItem("vvVersion", QString::fromUtf8(VV_VERSION));
-  manager->get(QNetworkRequest(url2));//make pushed in callback?
-  acquitPushed();
- }
+  manager->get(QNetworkRequest(url2));
 }
 void vvRegisterForm::accept(){
- sendData();
- QDialog::accept();
+  sendData();
+  QDialog::accept();
 }
 bool vvRegisterForm::canPush(){
- return true; 
+  QSettings settings(getVVSettingsPath(), getSettingsOptionFormat());
+  return settings.value("vvVersion").toString().toStdString()<VV_VERSION;
 }
 void vvRegisterForm::acquitPushed(){
-  
+  QSettings settings(getVVSettingsPath(), getSettingsOptionFormat());
+  settings.setValue("vvVersion", VV_VERSION);
 }
\ No newline at end of file
diff --git a/vv/vvUtils.cxx b/vv/vvUtils.cxx
index 361c780..e992047 100644
--- a/vv/vvUtils.cxx
+++ b/vv/vvUtils.cxx
@@ -18,19 +18,27 @@
 #include <sstream>
 #include <algorithm>
 #include <QDir>
-#include <QSettings>
 #include "clitkCommon.h"
 #include "vvUtils.h"
 
 const std::string vv_user_file=".vv_settings.txt";
+const std::string recentFileList="recentFiles";
 typedef std::list<std::string> FileListType;
 
-static QSettings settings(QDir::homePath()+QString::fromStdString("/"+vv_user_file), QSettings::NativeFormat);
+QString getVVSettingsPath(){
+  return QDir::homePath()+QString::fromStdString("/"+vv_user_file);
+}
+
+QSettings::Format getSettingsOptionFormat(){
+  return QSettings::NativeFormat;
+}
+
 ///Returns the last images opened by the user
 FileListType GetRecentlyOpenedImages()
 {
+  QSettings settings(getVVSettingsPath(), getSettingsOptionFormat());
   FileListType result;
-  settings.beginGroup("recentFiles");
+  settings.beginGroup(QString::fromStdString(recentFileList));
     QStringList keys = settings.childKeys();
     for(int i=0; i<keys.size(); i++){
       std::string value=settings.value(QString::fromStdString (keys[i].toStdString())).toString().toStdString();
@@ -43,6 +51,7 @@ FileListType GetRecentlyOpenedImages()
 ///Adds an image to the list of recently opened images
 void AddToRecentlyOpenedImages(std::string filename)
 {
+  QSettings settings(getVVSettingsPath(), getSettingsOptionFormat());
   FileListType file_list = GetRecentlyOpenedImages();
   
   FileListType::iterator i = std::find(file_list.begin(),file_list.end(),filename);
@@ -52,11 +61,12 @@ void AddToRecentlyOpenedImages(std::string filename)
     file_list.pop_back();
   file_list.push_front(filename);
   
-  settings.beginGroup("recentFiles");
-  int index=0;
-  for (FileListType::iterator j = file_list.begin() ; j != file_list.end() ; j++){
-    QString s=QString(index++);
-    settings.setValue(s, QString::fromStdString ( *j ));
-  }
+  settings.beginGroup(QString::fromStdString(recentFileList));
+    int index=0;
+    for (FileListType::iterator j = file_list.begin() ; j != file_list.end() ; j++){
+      QString s=QString(index++);
+      settings.setValue(s, QString::fromStdString ( *j ));
+    }
   settings.endGroup();
 }
+
diff --git a/vv/vvUtils.h b/vv/vvUtils.h
index f8631dd..5854b5b 100644
--- a/vv/vvUtils.h
+++ b/vv/vvUtils.h
@@ -19,6 +19,7 @@
 #define vvXXX_h
 #include <list>
 #include <string>
+#include <QSettings>
 
 ///Returns the last images opened by the user
 std::list<std::string> GetRecentlyOpenedImages();
@@ -26,4 +27,10 @@ std::list<std::string> GetRecentlyOpenedImages();
 ///Adds an image to the list of recently opened images
 void AddToRecentlyOpenedImages(std::string filename);
 
+///path to user settings
+QString getVVSettingsPath();
+
+///by default nativeFormat
+QSettings::Format getSettingsOptionFormat();
+
 #endif