From 769211a78cb49633bdf96bf1f3e778a28194c1ea Mon Sep 17 00:00:00 2001
From: stefan <stefan@5a81b35b-ba03-0410-adc8-b2c5c5119f08>
Date: Mon, 22 Mar 2010 08:47:12 +0000
Subject: [PATCH] RemoteLoader, Save / Restore selected SiteLoader

git-svn-id: https://dng.biozentrum.unibas.ch/svn/openstructure/trunk@1866 5a81b35b-ba03-0410-adc8-b2c5c5119f08
---
 modules/gui/src/remote_loader.cc | 23 ++++++++++++++++++-----
 modules/gui/src/remote_loader.hh |  3 ++-
 2 files changed, 20 insertions(+), 6 deletions(-)

diff --git a/modules/gui/src/remote_loader.cc b/modules/gui/src/remote_loader.cc
index 60ae7c60a..cb5ac4f68 100644
--- a/modules/gui/src/remote_loader.cc
+++ b/modules/gui/src/remote_loader.cc
@@ -18,6 +18,7 @@
 //------------------------------------------------------------------------------
 #include <vector>
 
+#include <QSettings>
 #include <QNetworkReply>
 #include <QHBoxLayout>
 #include <QDir>
@@ -79,11 +80,13 @@ void RemoteLoader::UrlClick()
   site_loader_menu_->exec(QCursor::pos());
 }
 
-void RemoteLoader::BuildMenu()
+void RemoteLoader::BuildMenu(String active_loader)
 {
-  String selected_site_loader;
-  if(site_actions_->checkedAction()!=NULL){
-    selected_site_loader=site_actions_->checkedAction()->text().toStdString();
+  if(active_loader.size()>0){
+    selected_site_loader_ = active_loader;
+  }
+  else if(site_actions_->checkedAction()!=NULL){
+    selected_site_loader_=site_actions_->checkedAction()->text().toStdString();
   }
   site_loader_menu_->clear();
   QList<QAction*> actions = site_actions_->actions();
@@ -98,7 +101,7 @@ void RemoteLoader::BuildMenu()
       QAction* action = new QAction(loader_ident,site_loader_menu_);
       action->setCheckable(true);
       site_actions_->addAction(action);
-      if(site_actions_->checkedAction()==NULL ||selected_site_loader==loader_ident.toStdString() ){
+      if(site_actions_->checkedAction()==NULL ||selected_site_loader_==loader_ident.toStdString() ){
         action->setChecked(true);
       }
       site_loader_menu_->addAction(action);
@@ -113,11 +116,21 @@ ActionList RemoteLoader::GetActions()
 
 bool RemoteLoader::Save(const QString& prefix)
 {
+  this->BuildMenu();
+  QSettings settings;
+  settings.beginGroup(prefix);
+  settings.setValue("loader", site_actions_->checkedAction()->text());
+  settings.endGroup();
   return true;
 }
 
 bool RemoteLoader::Restore(const QString& prefix)
 {
+  QSettings settings;
+  settings.beginGroup(prefix);
+  if (settings.contains("loader")) {
+    this->BuildMenu(settings.value("loader").toString().toStdString());
+  }
   return true;
 }
 
diff --git a/modules/gui/src/remote_loader.hh b/modules/gui/src/remote_loader.hh
index b4f562f84..441309eee 100644
--- a/modules/gui/src/remote_loader.hh
+++ b/modules/gui/src/remote_loader.hh
@@ -47,7 +47,7 @@ protected:
   virtual void keyPressEvent(QKeyEvent* event);
 private:
   void ShowProgressBar(bool visiblility);
-  void BuildMenu();
+  void BuildMenu(String active_loader=String());
 private slots:
   void Clicked();
   void UrlClick();
@@ -61,6 +61,7 @@ private:
   ActionList action_list_;
   QMenu* site_loader_menu_;
   QActionGroup* site_actions_;
+  String selected_site_loader_;
   bool img_support_;
 };
 
-- 
GitLab