diff --git a/contrib/mobile/README.txt b/contrib/mobile/README.txt
index 4a2510e9577d13c2e4f805adc18dafd5ed619f1f..6f3278166ab142c7ec66051c15714ae6568e2030 100644
--- a/contrib/mobile/README.txt
+++ b/contrib/mobile/README.txt
@@ -1,7 +1,7 @@
 This directory contains the source code for Onelab/Mobile, the mobile version of
 Onelab for iOS and Android devices.
 
-Version: 1.0.2
+Version: 1.0.3
 
 Copyright (C) 2014 Christophe Geuzaine and Maxime Graulich, University of Liege
 
diff --git a/contrib/mobile/iOS/Onelab/ModelViewController.mm b/contrib/mobile/iOS/Onelab/ModelViewController.mm
index 9db9a3c6dddacda315a5eed9f1b121d3489e3d9a..ebc06dc97ea1e403cd61980f11692244fc6033c2 100644
--- a/contrib/mobile/iOS/Onelab/ModelViewController.mm
+++ b/contrib/mobile/iOS/Onelab/ModelViewController.mm
@@ -13,7 +13,7 @@
 
 -(void)dismissWithClickedButtonIndex:(NSInteger)buttonIndex animated:(BOOL)animated
 {
-	if(buttonIndex == 0) [super dismissWithClickedButtonIndex:buttonIndex animated:animated];
+  if(buttonIndex == 0) [super dismissWithClickedButtonIndex:buttonIndex animated:animated];
 }
 @end
 
@@ -29,388 +29,387 @@
 
 - (void)setDetailItem:(id)newDetailItem
 {
-    if (_detailItem != newDetailItem) {
-        _detailItem = newDetailItem;
-        // Update the view.
-        [self configureView];
-    }
+  if (_detailItem != newDetailItem) {
+    _detailItem = newDetailItem;
+    // Update the view.
+    [self configureView];
+  }
 
-    if (self.masterPopoverController != nil) {
-        [self.masterPopoverController dismissPopoverAnimated:YES];
-    }        
+  if (self.masterPopoverController != nil) {
+    [self.masterPopoverController dismissPopoverAnimated:YES];
+  }
 }
 
 - (void)configureView
 {
-    // Update the user interface for the detail item.
-    if (self.detailItem) {
-        self.detailDescriptionLabel.text = [self.detailItem description];
-    }
+  // Update the user interface for the detail item.
+  if (self.detailItem) {
+    self.detailDescriptionLabel.text = [self.detailItem description];
+  }
 }
 
 -(void)viewWillAppear:(BOOL)animated
 {
-	//if(self.initialModel != nil) {
-	if([[UIDevice currentDevice].model isEqualToString:@"iPad"] || [[UIDevice currentDevice].model isEqualToString:@"iPad Simulator"]) {
-		_loadingAlert = [[UIAlertView alloc] initWithTitle:@"Please wait..." message: @"The model is loading" delegate: self cancelButtonTitle: nil otherButtonTitles: nil];
-		[_loadingAlert show];
-	}
+  //if(self.initialModel != nil) {
+  if([[UIDevice currentDevice].model isEqualToString:@"iPad"] || [[UIDevice currentDevice].model isEqualToString:@"iPad Simulator"]) {
+    _loadingAlert = [[UIAlertView alloc] initWithTitle:@"Please wait..." message: @"The model is loading" delegate: self cancelButtonTitle: nil otherButtonTitles: nil];
+    [_loadingAlert show];
+  }
 }
 
 -(void)viewDidAppear:(BOOL)animated
 {
-	if(!_loadingAlert && self.initialModel != nil) {
-		_loadingAlert = [[UIAlertView alloc] initWithTitle:@"Please wait..." message: @"The model is loading" delegate: self cancelButtonTitle: nil otherButtonTitles: nil];
-		[_loadingAlert show];
-	}
-	_progressLabel.frame = CGRectMake(50, self.view.frame.size.height - 25, _progressLabel.frame.size.width, _progressLabel.frame.size.height);
-	_progressIndicator.frame = CGRectMake(20, self.view.frame.size.height - 25, _progressIndicator.frame.size.width, _progressIndicator.frame.size.height);
-	[_progressIndicator addGestureRecognizer:[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleProgressIndicatorTap:)]];
-	[_progressLabel setHidden:YES];
-	[_progressIndicator setHidden:YES];
-	[self.navigationController setToolbarHidden:YES animated:NO];
-	if(self.initialModel != nil){
-		[self.glView load:self.initialModel];
-		[[NSNotificationCenter defaultCenter] postNotificationName:@"refreshParameters" object:nil];
-		//[self.initialModel release];
-		self.initialModel = nil;
-		[_loadingAlert dismissWithClickedButtonIndex:-1 animated:YES];
-		//[_loadingAlert release];
-		_loadingAlert = nil;
-	}
+  if(!_loadingAlert && self.initialModel != nil) {
+    _loadingAlert = [[UIAlertView alloc] initWithTitle:@"Please wait..." message: @"The model is loading" delegate: self cancelButtonTitle: nil otherButtonTitles: nil];
+    [_loadingAlert show];
+  }
+  _progressLabel.frame = CGRectMake(50, self.view.frame.size.height - 25, _progressLabel.frame.size.width, _progressLabel.frame.size.height);
+  _progressIndicator.frame = CGRectMake(20, self.view.frame.size.height - 25, _progressIndicator.frame.size.width, _progressIndicator.frame.size.height);
+  [_progressIndicator addGestureRecognizer:[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleProgressIndicatorTap:)]];
+  [_progressLabel setHidden:YES];
+  [_progressIndicator setHidden:YES];
+  [self.navigationController setToolbarHidden:YES animated:NO];
+  if(self.initialModel != nil){
+    [self.glView load:self.initialModel];
+    [[NSNotificationCenter defaultCenter] postNotificationName:@"refreshParameters" object:nil];
+    //[self.initialModel release];
+    self.initialModel = nil;
+    [_loadingAlert dismissWithClickedButtonIndex:-1 animated:YES];
+    //[_loadingAlert release];
+    _loadingAlert = nil;
+  }
 }
 
 - (void)viewDidLoad
 {
-    [super viewDidLoad];
-	// Do any additional setup after loading the view, typically from a nib.
-    [self configureView];
-	[_singleTap requireGestureRecognizerToFail:_doubleTap];
-    scaleFactor = 1.;
-	_errors = [[NSMutableArray alloc] init];
-    setObjCBridge((__bridge void*) self);
-    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(requestRender) name:@"requestRender" object:nil];
-
-	_runStopButton = [[UIBarButtonItem alloc] initWithTitle:@"Run" style:UIBarButtonItemStyleBordered target:self action:@selector(compute)];
-	//UIBarButtonItem *share = [[UIBarButtonItem alloc] initWithTitle:@"Share" style:UIBarButtonItemStyleBordered target:self action:@selector(share)];
-    if([[UIDevice currentDevice].model isEqualToString:@"iPad"] || [[UIDevice currentDevice].model isEqualToString:@"iPad Simulator"]){
-		UIBarButtonItem *model = [[UIBarButtonItem alloc] initWithTitle:@"Model list" style:UIBarButtonItemStyleBordered target:self action:@selector(showModelsList)];
-		[self.navigationItem setRightBarButtonItems:[NSArray arrayWithObjects:_runStopButton, model, /*share,*/ nil]];
-	}
-	else
-	{
-        UIBarButtonItem *settings = [[UIBarButtonItem alloc] initWithTitle:@"Parameters" style:UIBarButtonItemStyleBordered target:self action:@selector(showSettings)];
-        [self.navigationItem setRightBarButtonItems:[NSArray arrayWithObjects:_runStopButton, settings, /*share,*/ nil]];
-    }
-
-	UIBarButtonItem *flexibleSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
-	UIBarButtonItem *prevButton = [[UIBarButtonItem alloc ] initWithBarButtonSystemItem: UIBarButtonSystemItemRewind target:self action:@selector(prevAnimation)];
-	_stopButton = [[UIBarButtonItem alloc ] initWithBarButtonSystemItem: UIBarButtonSystemItemPause target:self action:@selector(stopAnimation:)];
-	[_stopButton setEnabled:NO];
-	_playButton = [[UIBarButtonItem alloc ] initWithBarButtonSystemItem: UIBarButtonSystemItemPlay target:self action:@selector(playAnimation:)];
-	UIBarButtonItem *nextButton = [[UIBarButtonItem alloc ] initWithBarButtonSystemItem: UIBarButtonSystemItemFastForward target:self action:@selector(nextAnimation)];
-	self.toolbarItems = [[NSArray alloc] initWithObjects:flexibleSpace, prevButton, _stopButton, _playButton, nextButton, flexibleSpace, nil];
+  [super viewDidLoad];
+  // Do any additional setup after loading the view, typically from a nib.
+  [self configureView];
+  [_singleTap requireGestureRecognizerToFail:_doubleTap];
+  scaleFactor = 1.;
+  _errors = [[NSMutableArray alloc] init];
+  setObjCBridge((__bridge void*) self);
+  [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(requestRender) name:@"requestRender" object:nil];
+
+  _runStopButton = [[UIBarButtonItem alloc] initWithTitle:@"Run" style:UIBarButtonItemStyleBordered target:self action:@selector(compute)];
+  //UIBarButtonItem *share = [[UIBarButtonItem alloc] initWithTitle:@"Share" style:UIBarButtonItemStyleBordered target:self action:@selector(share)];
+  if([[UIDevice currentDevice].model isEqualToString:@"iPad"] || [[UIDevice currentDevice].model isEqualToString:@"iPad Simulator"]){
+    UIBarButtonItem *model = [[UIBarButtonItem alloc] initWithTitle:@"Model list" style:UIBarButtonItemStyleBordered target:self action:@selector(showModelsList)];
+    [self.navigationItem setRightBarButtonItems:[NSArray arrayWithObjects:_runStopButton, model, /*share,*/ nil]];
+  }
+  else {
+    UIBarButtonItem *settings = [[UIBarButtonItem alloc] initWithTitle:@"Parameters" style:UIBarButtonItemStyleBordered target:self action:@selector(showSettings)];
+    [self.navigationItem setRightBarButtonItems:[NSArray arrayWithObjects:_runStopButton, settings, /*share,*/ nil]];
+  }
+
+  UIBarButtonItem *flexibleSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
+  UIBarButtonItem *prevButton = [[UIBarButtonItem alloc ] initWithBarButtonSystemItem: UIBarButtonSystemItemRewind target:self action:@selector(prevAnimation)];
+  _stopButton = [[UIBarButtonItem alloc ] initWithBarButtonSystemItem: UIBarButtonSystemItemPause target:self action:@selector(stopAnimation:)];
+  [_stopButton setEnabled:NO];
+  _playButton = [[UIBarButtonItem alloc ] initWithBarButtonSystemItem: UIBarButtonSystemItemPlay target:self action:@selector(playAnimation:)];
+  UIBarButtonItem *nextButton = [[UIBarButtonItem alloc ] initWithBarButtonSystemItem: UIBarButtonSystemItemFastForward target:self action:@selector(nextAnimation)];
+  self.toolbarItems = [[NSArray alloc] initWithObjects:flexibleSpace, prevButton, _stopButton, _playButton, nextButton, flexibleSpace, nil];
 }
 
 - (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation
 {
-	_progressLabel.frame = CGRectMake(50, self.view.frame.size.height - 25, _progressLabel.frame.size.width, _progressLabel.frame.size.height);
-	_progressIndicator.frame = CGRectMake(20, self.view.frame.size.height - 25, _progressIndicator.frame.size.width, _progressIndicator.frame.size.height);
+  _progressLabel.frame = CGRectMake(50, self.view.frame.size.height - 25, _progressLabel.frame.size.width, _progressLabel.frame.size.height);
+  _progressIndicator.frame = CGRectMake(20, self.view.frame.size.height - 25, _progressIndicator.frame.size.width, _progressIndicator.frame.size.height);
 }
 
 -(void)didReceiveMemoryWarning
 {
-	onelab_cb("stop");
-	UILocalNotification *localNotif = [[UILocalNotification alloc] init];
-	if ([UIApplication sharedApplication].applicationState == UIApplicationStateBackground && localNotif) {
-		localNotif.alertBody = @"The computation had to stop because your device ran out of memory";
-		localNotif.alertAction = @"View";
-		localNotif.hasAction = true;
-		localNotif.soundName = UILocalNotificationDefaultSoundName;
-		localNotif.applicationIconBadgeNumber = 1;
-		[[UIApplication sharedApplication] scheduleLocalNotification:localNotif];
-	}
-	[[UIApplication sharedApplication] endBackgroundTask: _computeBackgroundTaskIdentifier];
+  onelab_cb("stop");
+  UILocalNotification *localNotif = [[UILocalNotification alloc] init];
+  if ([UIApplication sharedApplication].applicationState == UIApplicationStateBackground && localNotif) {
+    localNotif.alertBody = @"The computation had to stop because your device ran out of memory";
+    localNotif.alertAction = @"View";
+    localNotif.hasAction = true;
+    localNotif.soundName = UILocalNotificationDefaultSoundName;
+    localNotif.applicationIconBadgeNumber = 1;
+    [[UIApplication sharedApplication] scheduleLocalNotification:localNotif];
+  }
+  [[UIApplication sharedApplication] endBackgroundTask: _computeBackgroundTaskIdentifier];
 }
 
 -(void)share
 {
-	NSArray *dataToShare = @[[self.glView getGLScreenshot]];
-	UIActivityViewController *activityVC = [[UIActivityViewController alloc] initWithActivityItems:dataToShare applicationActivities:nil];
-	[self presentViewController:activityVC animated:YES completion:nil];
+  NSArray *dataToShare = @[[self.glView getGLScreenshot]];
+  UIActivityViewController *activityVC = [[UIActivityViewController alloc] initWithActivityItems:dataToShare applicationActivities:nil];
+  [self presentViewController:activityVC animated:YES completion:nil];
 }
 
 - (void)compute
 {
-	[_errors removeAllObjects];
-	[_runStopButton setAction:@selector(stop)];
-	[_runStopButton setTitle:@"Stop"];
-	[_progressLabel setText:@""];
-	[_progressLabel setHidden:NO];
-	[_progressIndicator setHidden:NO];
-	[_progressIndicator startAnimating];
-	[[UIApplication sharedApplication] cancelAllLocalNotifications];
-	dispatch_group_t group = dispatch_group_create();
-	dispatch_queue_t queue = dispatch_queue_create("org.geuz.onelab", NULL);
-	dispatch_group_async(group, queue, ^{
-		_computeBackgroundTaskIdentifier = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^{
-			[[UIApplication sharedApplication] endBackgroundTask: _computeBackgroundTaskIdentifier];
-			_computeBackgroundTaskIdentifier = UIBackgroundTaskInvalid;
-		}];
-        AppDelegate *appDelegate = (AppDelegate *)[UIApplication sharedApplication].delegate;
-        appDelegate->compute = YES;
-        onelab_cb("compute");
-        appDelegate->compute = NO;
-		UILocalNotification *localNotif = [[UILocalNotification alloc] init];
-		if ([UIApplication sharedApplication].applicationState == UIApplicationStateBackground && localNotif) {
-			localNotif.alertBody = @"Computation done!";
-			localNotif.alertAction = @"View";
-			localNotif.hasAction = true;
-			localNotif.soundName = UILocalNotificationDefaultSoundName;
-			localNotif.applicationIconBadgeNumber = 1;
-			[[UIApplication sharedApplication] scheduleLocalNotification:localNotif];
-		}
-		[[UIApplication sharedApplication] endBackgroundTask: _computeBackgroundTaskIdentifier];
-		_computeBackgroundTaskIdentifier = UIBackgroundTaskInvalid;
+  [_errors removeAllObjects];
+  [_runStopButton setAction:@selector(stop)];
+  [_runStopButton setTitle:@"Stop"];
+  [_progressLabel setText:@""];
+  [_progressLabel setHidden:NO];
+  [_progressIndicator setHidden:NO];
+  [_progressIndicator startAnimating];
+  [[UIApplication sharedApplication] cancelAllLocalNotifications];
+  dispatch_group_t group = dispatch_group_create();
+  dispatch_queue_t queue = dispatch_queue_create("org.geuz.onelab", NULL);
+  dispatch_group_async(group, queue, ^{
+      _computeBackgroundTaskIdentifier = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^{
+          [[UIApplication sharedApplication] endBackgroundTask: _computeBackgroundTaskIdentifier];
+          _computeBackgroundTaskIdentifier = UIBackgroundTaskInvalid;
+        }];
+      AppDelegate *appDelegate = (AppDelegate *)[UIApplication sharedApplication].delegate;
+      appDelegate->compute = YES;
+      onelab_cb("compute");
+      appDelegate->compute = NO;
+      UILocalNotification *localNotif = [[UILocalNotification alloc] init];
+      if ([UIApplication sharedApplication].applicationState == UIApplicationStateBackground && localNotif) {
+        localNotif.alertBody = @"Computation done!";
+        localNotif.alertAction = @"View";
+        localNotif.hasAction = true;
+        localNotif.soundName = UILocalNotificationDefaultSoundName;
+        localNotif.applicationIconBadgeNumber = 1;
+        [[UIApplication sharedApplication] scheduleLocalNotification:localNotif];
+      }
+      [[UIApplication sharedApplication] endBackgroundTask: _computeBackgroundTaskIdentifier];
+      _computeBackgroundTaskIdentifier = UIBackgroundTaskInvalid;
+    });
+
+  dispatch_group_notify(group, queue, ^{
+      [UIApplication sharedApplication].applicationIconBadgeNumber = -1;
+      [self performSelectorOnMainThread:@selector(stopGUI) withObject:nil waitUntilDone:YES];
     });
-	
-	dispatch_group_notify(group, queue, ^{
-		[UIApplication sharedApplication].applicationIconBadgeNumber = -1;
-		[self performSelectorOnMainThread:@selector(stopGUI) withObject:nil waitUntilDone:YES];
-	});
 }
 -(void)stopGUI
 {
-	[_runStopButton setAction:@selector(compute)];
-	[_runStopButton setTitle:@"Run"];
-	[_progressLabel setHidden:YES];
-	[_progressIndicator stopAnimating];
-	[_progressIndicator setHidden:YES];
-	if(_errors.count > 0) {
-		_errorAlert = [[UIErrorAlertView alloc] initWithTitle:@"Gmsh/GetDP error" message:[_errors lastObject] delegate:self cancelButtonTitle:@"Hide" otherButtonTitles:@"Show more", nil];
-		[_errorAlert show];
-	}
+  [_runStopButton setAction:@selector(compute)];
+  [_runStopButton setTitle:@"Run"];
+  [_progressLabel setHidden:YES];
+  [_progressIndicator stopAnimating];
+  [_progressIndicator setHidden:YES];
+  if(_errors.count > 0) {
+    _errorAlert = [[UIErrorAlertView alloc] initWithTitle:@"Gmsh/GetDP error" message:[_errors lastObject] delegate:self cancelButtonTitle:@"Hide" otherButtonTitles:@"Show more", nil];
+    [_errorAlert show];
+  }
 }
 - (void)stop
 {
-	onelab_cb("stop");
+  onelab_cb("stop");
 }
 -(void)playAnimation:(UIBarButtonItem *)sender
 {
-	[_playButton setEnabled:NO];
-	[_stopButton setEnabled:YES];
-	_animation = [NSTimer scheduledTimerWithTimeInterval:0.5 target:self selector:@selector(nextAnimation) userInfo:nil repeats:YES];
+  [_playButton setEnabled:NO];
+  [_stopButton setEnabled:YES];
+  _animation = [NSTimer scheduledTimerWithTimeInterval:0.5 target:self selector:@selector(nextAnimation) userInfo:nil repeats:YES];
 }
 -(void)stopAnimation:(UIBarButtonItem *)sender
 {
-	[_animation invalidate];
-	_animation = nil;
-	[_playButton setEnabled:YES];
-	[_stopButton setEnabled:NO];
+  [_animation invalidate];
+  _animation = nil;
+  [_playButton setEnabled:YES];
+  [_stopButton setEnabled:NO];
 }
 -(void)nextAnimation { animation_next(); [self requestRender]; }
 -(void)prevAnimation { animation_prev(); [self requestRender]; }
 -(IBAction)pinch:(UIPinchGestureRecognizer *)sender
 {
-    if([sender numberOfTouches] <= 2) {
-		float mScale = scaleFactor;
-		if (sender.state == UIGestureRecognizerStateBegan)
-			mScale = scaleFactor;
-		else if(sender.state == UIGestureRecognizerStateChanged)
-			mScale = scaleFactor * [sender scale];
-		else if(sender.state == UIGestureRecognizerStateEnded){
-			scaleFactor *= [sender scale];
-			mScale = scaleFactor;
-		}
-		else if(sender.state == UIGestureRecognizerStateCancelled){
-			mScale = scaleFactor;
-		}
-		mScale = MAX(0.1, mScale);
-		glView->mContext->eventHandler(2,mScale);
-	}
-    [glView drawView];
+  if([sender numberOfTouches] <= 2) {
+    float mScale = scaleFactor;
+    if (sender.state == UIGestureRecognizerStateBegan)
+      mScale = scaleFactor;
+    else if(sender.state == UIGestureRecognizerStateChanged)
+      mScale = scaleFactor * [sender scale];
+    else if(sender.state == UIGestureRecognizerStateEnded){
+      scaleFactor *= [sender scale];
+      mScale = scaleFactor;
+    }
+    else if(sender.state == UIGestureRecognizerStateCancelled){
+      mScale = scaleFactor;
+    }
+    mScale = MAX(0.1, mScale);
+    glView->mContext->eventHandler(2,mScale);
+  }
+  [glView drawView];
 }
 
 -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
 {
-    UITouch *touch = [[event allTouches] anyObject];
-    CGPoint touchPoint = [touch locationInView:self.view];
-    glView->mContext->eventHandler(0, touchPoint.x, touchPoint.y);
+  UITouch *touch = [[event allTouches] anyObject];
+  CGPoint touchPoint = [touch locationInView:self.view];
+  glView->mContext->eventHandler(0, touchPoint.x, touchPoint.y);
 }
 
 -(void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event
 {
-    [self touchesEnded:touches withEvent:event];
+  [self touchesEnded:touches withEvent:event];
 }
 
 -(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
 {
-    UITouch *touch = [[event allTouches] anyObject];
-    CGPoint touchPoint = [touch locationInView:self.view];
-    glView->mContext->eventHandler(4, touchPoint.x, touchPoint.y);
+  UITouch *touch = [[event allTouches] anyObject];
+  CGPoint touchPoint = [touch locationInView:self.view];
+  glView->mContext->eventHandler(4, touchPoint.x, touchPoint.y);
 }
 
 - (IBAction)singleTap:(UITapGestureRecognizer *)sender {
-	[self.navigationController setToolbarHidden:(!(self.navigationController.toolbarHidden && !((AppDelegate *)[UIApplication sharedApplication].delegate)->compute && number_of_animation() > 0)) animated:YES];
+  [self.navigationController setToolbarHidden:(!(self.navigationController.toolbarHidden && !((AppDelegate *)[UIApplication sharedApplication].delegate)->compute && number_of_animation() > 0)) animated:YES];
 }
 
 - (IBAction)doubleTap:(UITapGestureRecognizer *)sender {
-	scaleFactor = 1;
-	glView->mContext->eventHandler(10);
-	[glView drawView];
+  scaleFactor = 1;
+  glView->mContext->eventHandler(10);
+  [glView drawView];
 }
 
 - (void) showModelsList
 {
-    if(((AppDelegate *)[UIApplication sharedApplication].delegate)->compute) {
-        UIAlertView *alert;
-        alert = [[UIAlertView alloc] initWithTitle:@"Can't show the model list" message:@"The computation has to complete before you can select another model." delegate:nil cancelButtonTitle:@"Ok" otherButtonTitles:nil, nil];
-        [alert show];
-        return;
-    }
-    if([[UIDevice currentDevice].model isEqualToString:@"iPad"] || [[UIDevice currentDevice].model isEqualToString:@"iPad Simulator"]){
-        AppDelegate *appDelegate = (AppDelegate *)[UIApplication sharedApplication].delegate;
-        [UIView transitionWithView:appDelegate.window
-                          duration:0.5
-                           options:UIViewAnimationOptionTransitionFlipFromRight
-                        animations:^{ appDelegate.window.rootViewController = appDelegate.modelListController; }
-                        completion:nil];
-    }
-    [self.navigationController popToRootViewControllerAnimated:YES];
+  if(((AppDelegate *)[UIApplication sharedApplication].delegate)->compute) {
+    UIAlertView *alert;
+    alert = [[UIAlertView alloc] initWithTitle:@"Can't show the model list" message:@"The computation has to complete before you can select another model." delegate:nil cancelButtonTitle:@"Ok" otherButtonTitles:nil, nil];
+    [alert show];
+    return;
+  }
+  if([[UIDevice currentDevice].model isEqualToString:@"iPad"] || [[UIDevice currentDevice].model isEqualToString:@"iPad Simulator"]){
+    AppDelegate *appDelegate = (AppDelegate *)[UIApplication sharedApplication].delegate;
+    [UIView transitionWithView:appDelegate.window
+                      duration:0.5
+                       options:UIViewAnimationOptionTransitionFlipFromRight
+                    animations:^{ appDelegate.window.rootViewController = appDelegate.modelListController; }
+    completion:nil];
+  }
+  [self.navigationController popToRootViewControllerAnimated:YES];
 }
-    
+
 - (void) showSettings
 {
-    [self performSegueWithIdentifier:@"showSettingsSegue" sender:self];
+  [self performSegueWithIdentifier:@"showSettingsSegue" sender:self];
 }
 
 - (void)viewDidUnload
 {
-    [self setGlView:nil];
-    [self setProgressLabel:nil];
-	[self setProgressIndicator:nil];
-	[self setSingleTap:nil];
-	[self setDoubleTap:nil];
-    [super viewDidUnload];
-    // Release any retained subviews of the main view.
+  [self setGlView:nil];
+  [self setProgressLabel:nil];
+  [self setProgressIndicator:nil];
+  [self setSingleTap:nil];
+  [self setDoubleTap:nil];
+  [super viewDidUnload];
+  // Release any retained subviews of the main view.
 }
 
 - (void)requestRender
 {
-	if([[UIApplication sharedApplication] applicationState] == UIApplicationStateActive)
-		[glView drawView];
+  if([[UIApplication sharedApplication] applicationState] == UIApplicationStateActive)
+    [glView drawView];
 }
 
 - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
 {
-    return YES;
+  return YES;
 }
 
 #pragma mark - Alert view
 
 -(void)addError:(std::string)msg
 {
-	[_errors addObject:[NSString stringWithCString:msg.c_str() encoding:[NSString defaultCStringEncoding]]];
+  [_errors addObject:[NSString stringWithCString:msg.c_str() encoding:[NSString defaultCStringEncoding]]];
 }
 
 -(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
 {
-	if(buttonIndex == 0) {
-		[_errors removeAllObjects];
-		return;
-	}
-	else [_errors removeLastObject];
-	if(_errors.count > 1)
-		_errorAlert = [[UIErrorAlertView alloc] initWithTitle:@"Gmsh/GetDP error" message:[_errors lastObject] delegate:self cancelButtonTitle:@"Hide" otherButtonTitles:@"Show more", nil];
-	else
-		_errorAlert = [[UIErrorAlertView alloc] initWithTitle:@"Gmsh/GetDP error" message:[_errors lastObject] delegate:self cancelButtonTitle:@"Hide" otherButtonTitles: nil];
-	[_errorAlert show];
+  if(buttonIndex == 0) {
+    [_errors removeAllObjects];
+    return;
+  }
+  else [_errors removeLastObject];
+  if(_errors.count > 1)
+    _errorAlert = [[UIErrorAlertView alloc] initWithTitle:@"Gmsh/GetDP error" message:[_errors lastObject] delegate:self cancelButtonTitle:@"Hide" otherButtonTitles:@"Show more", nil];
+  else
+    _errorAlert = [[UIErrorAlertView alloc] initWithTitle:@"Gmsh/GetDP error" message:[_errors lastObject] delegate:self cancelButtonTitle:@"Hide" otherButtonTitles: nil];
+  [_errorAlert show];
 }
 
 #pragma mark - Split view
 
 - (void)splitViewController:(UISplitViewController *)splitController willHideViewController:(UIViewController *)viewController withBarButtonItem:(UIBarButtonItem *)barButtonItem forPopoverController:(UIPopoverController *)popoverController
 {
-    barButtonItem.title = NSLocalizedString(@"Parameters", @"Parameters");
-	[self.navigationItem setLeftBarButtonItem:barButtonItem];
-    self.masterPopoverController = popoverController;
+  barButtonItem.title = NSLocalizedString(@"Parameters", @"Parameters");
+  [self.navigationItem setLeftBarButtonItem:barButtonItem];
+  self.masterPopoverController = popoverController;
 }
 
 - (void)splitViewController:(UISplitViewController *)splitController willShowViewController:(UIViewController *)viewController invalidatingBarButtonItem:(UIBarButtonItem *)barButtonItem
 {
-    // Called when the view is shown again in the split view, invalidating the button and popover controller.
-    [self.navigationItem setLeftBarButtonItem:nil animated:YES];
-    self.masterPopoverController = nil;
+  // Called when the view is shown again in the split view, invalidating the button and popover controller.
+  [self.navigationItem setLeftBarButtonItem:nil animated:YES];
+  self.masterPopoverController = nil;
 }
 
 void messageFromCpp (void *self, std::string level, std::string msg)
 {
-    if(level == "RequestRender"){
-		[(__bridge id)self performSelectorOnMainThread:@selector(requestRender) withObject:nil waitUntilDone:YES];
-        [[NSNotificationCenter defaultCenter] postNotificationName:@"refreshParameters" object:nil];
-    }
-	else if(level == "Progress"){
-		[(__bridge id)self performSelectorOnMainThread:@selector(setProgress:) withObject:[NSString stringWithCString:msg.c_str() encoding:[NSString defaultCStringEncoding]] waitUntilDone:YES];
-	}
-    else if(level == "Error")
-        [(__bridge id)self addError:msg];
+  if(level == "RequestRender"){
+    [(__bridge id)self performSelectorOnMainThread:@selector(requestRender) withObject:nil waitUntilDone:YES];
+    [[NSNotificationCenter defaultCenter] postNotificationName:@"refreshParameters" object:nil];
+  }
+  else if(level == "Progress"){
+    [(__bridge id)self performSelectorOnMainThread:@selector(setProgress:) withObject:[NSString stringWithCString:msg.c_str() encoding:[NSString defaultCStringEncoding]] waitUntilDone:YES];
+  }
+  else if(level == "Error")
+    [(__bridge id)self addError:msg];
 }
 -(void)setProgress:(NSString *)progress
 {
-	[_progressLabel setText:progress];
+  [_progressLabel setText:progress];
 }
 -(void)handleProgressIndicatorTap:(id)sender
 {
-	[_progressLabel setHidden:!_progressLabel.hidden];
+  [_progressLabel setHidden:!_progressLabel.hidden];
 }
 void getBitmap(void *self, const char *text, int textsize, unsigned char **map, int *height, int *width, int *realWidth)
 {
-    [(__bridge id)self getBitmapFromStringObjC:text withTextSize:textsize inMap:map inHeight:height inWidth:width inRealWidth:realWidth];
+  [(__bridge id)self getBitmapFromStringObjC:text withTextSize:textsize inMap:map inHeight:height inWidth:width inRealWidth:realWidth];
 }
 -(void) getBitmapFromStringObjC:(const char *)text withTextSize:(int)textsize inMap:(unsigned char **)map inHeight:(int *)height inWidth:(int *)width inRealWidth:(int *) realWidth
 {
-    UILabel *lbl = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 1024, textsize)];
-    lbl.font = [UIFont systemFontOfSize:textsize];
-    [lbl setText:[NSString stringWithCString:text  encoding:[NSString defaultCStringEncoding]]];
-    [lbl setBackgroundColor:[UIColor clearColor]];
-    CGSize lblSize = [[lbl text] sizeWithAttributes:@{NSFontAttributeName:[lbl font]}];
-    *realWidth = lblSize.width;
-	int i=2;
-	while(i<*realWidth) i*=2;
-	*width = i;
-    *height = lblSize.height;
-	i=2;
-	while(i<*height) i*=2;
-    *height = i;
-    UIGraphicsBeginImageContextWithOptions(CGSizeMake(*width, *height), NO, 0.0);
-    [lbl.layer renderInContext:UIGraphicsGetCurrentContext()];
-    UIImage *img = UIGraphicsGetImageFromCurrentImageContext();
-
-    CGImageRef bitmap = [img CGImage];
-    CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
-    unsigned char *rawData = (unsigned char*) calloc(*height * *width * 4, sizeof(unsigned char));
-    *map = (unsigned char*) calloc(*height * *width, sizeof(unsigned char));
-    NSUInteger bytesPerPixel = 4;
-    NSUInteger bytesPerRow = bytesPerPixel * *width;
-    NSUInteger bitsPerComponent = 8;
-    CGContextRef context = CGBitmapContextCreate(rawData, *width, *height,
-                                                 bitsPerComponent, bytesPerRow, colorSpace,
-                                                 kCGImageAlphaPremultipliedLast | kCGBitmapByteOrder32Big);
-    CGColorSpaceRelease(colorSpace);
-    
-    CGContextDrawImage(context, CGRectMake(0, 0, *width, *height), bitmap);
-    CGContextRelease(context);
-
-    // rawData contains the image data in the RGBA8888 pixel format.
-    for (int byteIndex = 0 ; byteIndex < *width * *height * 4 ; byteIndex+=4)
-        *(*map+byteIndex/4) = rawData[byteIndex + 3];
-    free(rawData);
+  UILabel *lbl = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 1024, textsize)];
+  lbl.font = [UIFont systemFontOfSize:textsize];
+  [lbl setText:[NSString stringWithCString:text  encoding:[NSString defaultCStringEncoding]]];
+  [lbl setBackgroundColor:[UIColor clearColor]];
+  CGSize lblSize = [[lbl text] sizeWithAttributes:@{NSFontAttributeName:[lbl font]}];
+  *realWidth = lblSize.width;
+  int i=2;
+  while(i<*realWidth) i*=2;
+  *width = i;
+  *height = lblSize.height;
+  i=2;
+  while(i<*height) i*=2;
+  *height = i;
+  UIGraphicsBeginImageContextWithOptions(CGSizeMake(*width, *height), NO, 0.0);
+  [lbl.layer renderInContext:UIGraphicsGetCurrentContext()];
+  UIImage *img = UIGraphicsGetImageFromCurrentImageContext();
+
+  CGImageRef bitmap = [img CGImage];
+  CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
+  unsigned char *rawData = (unsigned char*) calloc(*height * *width * 4, sizeof(unsigned char));
+  *map = (unsigned char*) calloc(*height * *width, sizeof(unsigned char));
+  NSUInteger bytesPerPixel = 4;
+  NSUInteger bytesPerRow = bytesPerPixel * *width;
+  NSUInteger bitsPerComponent = 8;
+  CGContextRef context = CGBitmapContextCreate(rawData, *width, *height,
+                                               bitsPerComponent, bytesPerRow, colorSpace,
+                                               kCGImageAlphaPremultipliedLast | kCGBitmapByteOrder32Big);
+  CGColorSpaceRelease(colorSpace);
+
+  CGContextDrawImage(context, CGRectMake(0, 0, *width, *height), bitmap);
+  CGContextRelease(context);
+
+  // rawData contains the image data in the RGBA8888 pixel format.
+  for (int byteIndex = 0 ; byteIndex < *width * *height * 4 ; byteIndex+=4)
+    *(*map+byteIndex/4) = rawData[byteIndex + 3];
+  free(rawData);
 }
 - (IBAction)startRotation:(UIButton *)sender {
-	glView->rotate = !glView->rotate;
-	if(glView->rotate)
-		[sender setImage:[UIImage imageNamed:@"icon_translate.png"] forState:UIControlStateNormal];
-	else
-		[sender setImage:[UIImage imageNamed:@"icon_rotate.png"] forState:UIControlStateNormal];
+  glView->rotate = !glView->rotate;
+  if(glView->rotate)
+    [sender setImage:[UIImage imageNamed:@"icon_translate.png"] forState:UIControlStateNormal];
+  else
+    [sender setImage:[UIImage imageNamed:@"icon_rotate.png"] forState:UIControlStateNormal];
 }
 @end
diff --git a/contrib/mobile/iOS/Onelab/Onelab-Info.plist b/contrib/mobile/iOS/Onelab/Onelab-Info.plist
index c50318f906fdb17b13357475f37738d025a3bc48..0baebe1f0238a6f598a9758f3896eee0759784ca 100644
--- a/contrib/mobile/iOS/Onelab/Onelab-Info.plist
+++ b/contrib/mobile/iOS/Onelab/Onelab-Info.plist
@@ -35,11 +35,11 @@
 	<key>CFBundlePackageType</key>
 	<string>APPL</string>
 	<key>CFBundleShortVersionString</key>
-	<string>1.0.2</string>
+	<string>1.0.3</string>
 	<key>CFBundleSignature</key>
 	<string>????</string>
 	<key>CFBundleVersion</key>
-	<string>1.0.2</string>
+	<string>1.0.3</string>
 	<key>LSRequiresIPhoneOS</key>
 	<true/>
 	<key>UIFileSharingEnabled</key>
diff --git a/contrib/mobile/iOS/Onelab/SplitViewController.h b/contrib/mobile/iOS/Onelab/SplitViewController.h
index f9a2a6d508449b966fa867353741d7f15de0d929..d882692bcb64b3476026498f80987899d87ef10d 100644
--- a/contrib/mobile/iOS/Onelab/SplitViewController.h
+++ b/contrib/mobile/iOS/Onelab/SplitViewController.h
@@ -4,8 +4,8 @@
 #import "ModelViewController.h"
 
 @interface SplitViewController : UISplitViewController{
-    ModelViewController *modelViewController;
-    ParametersViewController *parametersViewController;
+  ModelViewController *modelViewController;
+  ParametersViewController *parametersViewController;
 }
 
 @property (nonatomic, retain) NSString *initialModel;
diff --git a/contrib/mobile/iOS/Onelab/SplitViewController.mm b/contrib/mobile/iOS/Onelab/SplitViewController.mm
index 2498be9ca6a5e13d017358fb0827ce9ecc2ea2e7..a2bf7adbc658c05cf0fc44acd55f946c798360ec 100644
--- a/contrib/mobile/iOS/Onelab/SplitViewController.mm
+++ b/contrib/mobile/iOS/Onelab/SplitViewController.mm
@@ -5,46 +5,46 @@
 @end
 
 @implementation SplitViewController
-	 
+
 - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
 {
-    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
-    if (self) {
-        // Custom initialization
-    }
-    return self;
+  self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
+  if (self) {
+    // Custom initialization
+  }
+  return self;
 }
 
 - (void)viewDidLoad
 {
-    [super viewDidLoad];
-	// Do any additional setup after loading the view.
-	UINavigationController *right = [self.viewControllers objectAtIndex:1]; // right UINavigationController (Detail)
-    for(UIViewController *v in right.viewControllers){
-        if ([v isKindOfClass:[ModelViewController class]]) {
-            modelViewController = (ModelViewController *)v;
-        }
+  [super viewDidLoad];
+  // Do any additional setup after loading the view.
+  UINavigationController *right = [self.viewControllers objectAtIndex:1]; // right UINavigationController (Detail)
+  for(UIViewController *v in right.viewControllers){
+    if ([v isKindOfClass:[ModelViewController class]]) {
+      modelViewController = (ModelViewController *)v;
+    }
+  }
+  UINavigationController *left = [self.viewControllers objectAtIndex:0]; // left UINavigationController (Master)
+  for(UIViewController *v in left.viewControllers){
+    if ([v isKindOfClass:[ParametersViewController class]]) {
+      parametersViewController = (ParametersViewController *)v;
     }
-    UINavigationController *left = [self.viewControllers objectAtIndex:0]; // left UINavigationController (Master)
-	 for(UIViewController *v in left.viewControllers){
-		 if ([v isKindOfClass:[ParametersViewController class]]) {
-				parametersViewController = (ParametersViewController *)v;
-		 }
-	 }
-	self.delegate = modelViewController;
-	[self setPresentsWithGesture:NO];
+  }
+  self.delegate = modelViewController;
+  [self setPresentsWithGesture:NO];
 }
 
 -(void)viewDidAppear:(BOOL)animated
 {
-	modelViewController.initialModel = self.initialModel;
-	[super viewDidAppear:animated];
+  modelViewController.initialModel = self.initialModel;
+  [super viewDidAppear:animated];
 }
 
 - (void)didReceiveMemoryWarning
 {
-    [super didReceiveMemoryWarning];
-    // Dispose of any resources that can be recreated.
+  [super didReceiveMemoryWarning];
+  // Dispose of any resources that can be recreated.
 }
 
 @end