mirror of
				https://github.com/subsurface/subsurface.git
				synced 2025-02-19 22:16:15 +00:00 
			
		
		
		
	Undo: make profile-editing undoable
Recently, undo of dive-replanning was introduced. Therefore, it appears logical to do the same thing for editing of the profile of manually added dives. For now, use the same undo-command, just change the displayed text from "replan dive" to "edit profile". Move the fixup dive call into the undo-command. Eventually, every action on the profile should be made undoable. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
		
							parent
							
								
									7c024f12d2
								
							
						
					
					
						commit
						a6fa6cdb41
					
				
					 5 changed files with 17 additions and 22 deletions
				
			
		|  | @ -529,8 +529,6 @@ void MainTab::refreshDisplayedDiveSite() | |||
| 
 | ||||
| void MainTab::acceptChanges() | ||||
| { | ||||
| 	int addedId = -1; | ||||
| 
 | ||||
| 	if (ui.location->hasFocus()) | ||||
| 		stealFocus(); | ||||
| 
 | ||||
|  | @ -541,33 +539,18 @@ void MainTab::acceptChanges() | |||
| 	ui.dateEdit->setEnabled(true); | ||||
| 	hideMessage(); | ||||
| 
 | ||||
| 	if (lastMode == MANUALLY_ADDED_DIVE) { | ||||
| 		// preserve any changes to the profile
 | ||||
| 		free(current_dive->dc.sample); | ||||
| 		copy_samples(&displayed_dive.dc, ¤t_dive->dc); | ||||
| 		addedId = displayed_dive.id; | ||||
| 	} | ||||
| 
 | ||||
| 	// TODO: This is a temporary hack until the equipment tab is included in the undo system:
 | ||||
| 	// The equipment tab is hardcoded at the first place of the "extra widgets".
 | ||||
| 	((TabDiveEquipment *)extraWidgets[0])->acceptChanges(); | ||||
| 
 | ||||
| 	if (lastMode == MANUALLY_ADDED_DIVE) { | ||||
| 		// we just added or edited the dive, let fixup_dive() make
 | ||||
| 		// sure we get the max. depth right
 | ||||
| 		current_dive->maxdepth.mm = current_dc->maxdepth.mm = 0; | ||||
| 		fixup_dive(current_dive); | ||||
| 		set_dive_nr_for_current_dive(); | ||||
| 		MainWindow::instance()->showProfile(); | ||||
| 		mark_divelist_changed(true); | ||||
| 		DivePlannerPointsModel::instance()->setPlanMode(DivePlannerPointsModel::NOTHING); | ||||
| 		Command::editProfile(&displayed_dive); | ||||
| 	} | ||||
| 	int scrolledBy = MainWindow::instance()->diveList->verticalScrollBar()->sliderPosition(); | ||||
| 	if (lastMode == MANUALLY_ADDED_DIVE) { | ||||
| 		MainWindow::instance()->diveList->reload(); | ||||
| 		int newDiveNr = get_divenr(get_dive_by_uniq_id(addedId)); | ||||
| 		MainWindow::instance()->diveList->unselectDives(); | ||||
| 		MainWindow::instance()->diveList->selectDive(newDiveNr, true); | ||||
| 		MainWindow::instance()->refreshDisplay(); | ||||
| 		MainWindow::instance()->graphics->replot(); | ||||
| 	} else { | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue