mirror of
				https://github.com/subsurface/subsurface.git
				synced 2025-02-19 22:16:15 +00:00 
			
		
		
		
	cleanup: use lambda to transport event-time to context menu actions
This is not such a big gain as for addDivemodeSwitch(), but still simpler. Therefore, let's do it for consistency. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
		
							parent
							
								
									c2d98b378b
								
							
						
					
					
						commit
						83d10ce89a
					
				
					 2 changed files with 13 additions and 25 deletions
				
			
		|  | @ -1457,15 +1457,11 @@ void ProfileWidget2::contextMenuEvent(QContextMenuEvent *event) | |||
| 			gasChange->addAction(action); | ||||
| 		} | ||||
| 	} | ||||
| 	QAction *setpointAction = m.addAction(tr("Add setpoint change"), this, &ProfileWidget2::addSetpointChange); | ||||
| 	setpointAction->setData(event->globalPos()); | ||||
| 	QAction *action = m.addAction(tr("Add bookmark"), this, &ProfileWidget2::addBookmark); | ||||
| 	action->setData(event->globalPos()); | ||||
| 	QAction *splitAction = m.addAction(tr("Split dive into two"), this, &ProfileWidget2::splitDive); | ||||
| 	splitAction->setData(event->globalPos()); | ||||
| 	m.addAction(tr("Add setpoint change"), [this, seconds]() { ProfileWidget2::addSetpointChange(seconds); }); | ||||
| 	m.addAction(tr("Add bookmark"), [this, seconds]() { addBookmark(seconds); }); | ||||
| 	m.addAction(tr("Split dive into two"), [this, seconds]() { splitDive(seconds); }); | ||||
| 	const struct event *ev = NULL; | ||||
| 	enum divemode_t divemode = UNDEF_COMP_TYPE; | ||||
| 	QString gas = action->text(); | ||||
| 
 | ||||
| 	get_current_divemode(current_dc, seconds, &ev, &divemode); | ||||
| 	QMenu *changeMode = m.addMenu(tr("Change divemode")); | ||||
|  | @ -1492,7 +1488,7 @@ void ProfileWidget2::contextMenuEvent(QContextMenuEvent *event) | |||
| 		m.addAction(tr("Edit the profile"), this, SIGNAL(editCurrentDive())); | ||||
| 
 | ||||
| 	if (DiveEventItem *item = dynamic_cast<DiveEventItem *>(sceneItem)) { | ||||
| 		action = new QAction(&m); | ||||
| 		QAction *action = new QAction(&m); | ||||
| 		action->setText(tr("Remove event")); | ||||
| 		action->setData(QVariant::fromValue<void *>(item)); // so we know what to remove.
 | ||||
| 		connect(action, SIGNAL(triggered(bool)), this, SLOT(removeEvent())); | ||||
|  | @ -1631,11 +1627,9 @@ void ProfileWidget2::removeEvent() | |||
| 	} | ||||
| } | ||||
| 
 | ||||
| void ProfileWidget2::addBookmark() | ||||
| void ProfileWidget2::addBookmark(int seconds) | ||||
| { | ||||
| 	QAction *action = qobject_cast<QAction *>(sender()); | ||||
| 	QPointF scenePos = mapToScene(mapFromGlobal(action->data().toPoint())); | ||||
| 	add_event(current_dc, lrint(timeAxis->valueAt(scenePos)), SAMPLE_EVENT_BOOKMARK, 0, 0, "bookmark"); | ||||
| 	add_event(current_dc, seconds, SAMPLE_EVENT_BOOKMARK, 0, 0, "bookmark"); | ||||
| 	invalidate_dive_cache(current_dive); | ||||
| 	mark_divelist_changed(true); | ||||
| 	replot(); | ||||
|  | @ -1649,26 +1643,20 @@ void ProfileWidget2::addDivemodeSwitch(int seconds, int divemode) | |||
| 	replot(); | ||||
| } | ||||
| 
 | ||||
| void ProfileWidget2::addSetpointChange() | ||||
| void ProfileWidget2::addSetpointChange(int seconds) | ||||
| { | ||||
| 	QAction *action = qobject_cast<QAction *>(sender()); | ||||
| 	QPointF scenePos = mapToScene(mapFromGlobal(action->data().toPoint())); | ||||
| 	SetpointDialog::instance()->setpointData(current_dc, lrint(timeAxis->valueAt(scenePos))); | ||||
| 	SetpointDialog::instance()->setpointData(current_dc, seconds); | ||||
| 	SetpointDialog::instance()->show(); | ||||
| } | ||||
| 
 | ||||
| void ProfileWidget2::splitDive() | ||||
| void ProfileWidget2::splitDive(int seconds) | ||||
| { | ||||
| #ifndef SUBSURFACE_MOBILE | ||||
| 	// Make sure that this is an actual dive and we're not in add mode
 | ||||
| 	dive *d = get_dive_by_uniq_id(displayed_dive.id); | ||||
| 	if (!d) | ||||
| 		return; | ||||
| 	QAction *action = qobject_cast<QAction *>(sender()); | ||||
| 	QPointF scenePos = mapToScene(mapFromGlobal(action->data().toPoint())); | ||||
| 	duration_t time; | ||||
| 	time.seconds = lrint(timeAxis->valueAt(scenePos)); | ||||
| 	Command::splitDives(d, time); | ||||
| 	Command::splitDives(d, duration_t{ seconds }); | ||||
| #endif | ||||
| } | ||||
| 
 | ||||
|  |  | |||
|  | @ -115,9 +115,6 @@ slots: // Necessary to call from QAction's signals. | |||
| 	void removePictures(const QVector<QString> &fileUrls); | ||||
| 	void setPlanState(); | ||||
| 	void setAddState(); | ||||
| 	void addSetpointChange(); | ||||
| 	void splitDive(); | ||||
| 	void addBookmark(); | ||||
| 	void hideEvents(); | ||||
| 	void unhideEvents(); | ||||
| 	void removeEvent(); | ||||
|  | @ -175,6 +172,9 @@ private: | |||
| 	void clearPictures(); | ||||
| 	void plotPicturesInternal(const struct dive *d, bool synchronous); | ||||
| 	void addDivemodeSwitch(int seconds, int divemode); | ||||
| 	void addBookmark(int seconds); | ||||
| 	void splitDive(int seconds); | ||||
| 	void addSetpointChange(int seconds); | ||||
| private: | ||||
| 	DivePlotDataModel *dataModel; | ||||
| 	int zoomLevel; | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue