[med-svn] [SCM] aghermann branch, master, updated. 99b1d5a023eee9df74b0e0d6f894516fc79435ad

Andrei Zavada johnhommer at gmail.com
Sun Jul 7 23:03:55 UTC 2013


The following commit has been merged in the master branch:
commit e0d187be90cade1ae5c62f840cde58c968497548
Author: Andrei Zavada <johnhommer at gmail.com>
Date:   Tue Jun 18 02:47:15 2013 +0300

    Alt+Move1 on selection moves selection

diff --git a/src/aghermann/ui/sf/montage_cb.cc b/src/aghermann/ui/sf/montage_cb.cc
index cbb3c0f..df183af 100644
--- a/src/aghermann/ui/sf/montage_cb.cc
+++ b/src/aghermann/ui/sf/montage_cb.cc
@@ -194,9 +194,15 @@ daSFMontage_button_press_event_cb(
 
 		case 1:
 			if ( event->state & GDK_MOD1_MASK ) {
-				SF.event_y_when_shuffling = event->y;
-				SF.zeroy_before_shuffling = Ch->zeroy;
-				SF.mode = SScoringFacility::TMode::shuffling_channels;
+				if ( in_selection ) {
+					SF.moving_selection_handle_offset =
+						cpos - Ch->selection_start_time;
+					SF.mode = SScoringFacility::TMode::moving_selection;
+				} else {
+					SF.event_y_when_shuffling = event->y;
+					SF.zeroy_before_shuffling = Ch->zeroy;
+					SF.mode = SScoringFacility::TMode::shuffling_channels;
+				}
 			} else {
 				SF.mode = SScoringFacility::TMode::marking;
 				Ch->marquee_mstart = Ch->marquee_mend = event->x;
@@ -274,7 +280,29 @@ daSFMontage_motion_notify_event_cb(
 					H.marquee_to_selection();
 				}
 		gtk_widget_queue_draw( wid);
+	}
+	break;
+
+	case SScoringFacility::TMode::moving_selection:
+	{
+		auto	new_start_time = SF.time_at_click( event->x) - SF.moving_selection_handle_offset,
+			new_end_time = new_start_time + (SF.using_channel->selection_end_time - SF.using_channel->selection_start_time);
+		auto& H = *SF.using_channel;
+		// reposition marquee
+		H.marquee_mstart =
+			(new_start_time - SF.cur_xvpage_start()) / SF.xvpagesize() * SF.da_wd;
+		H.marquee_mend =
+			(new_end_time - SF.cur_xvpage_start()) / SF.xvpagesize() * SF.da_wd;
+
+		H.marquee_to_selection(); // to be sure, also do it on button_release
+		H.put_selection( H.selection_start, H.selection_end);
+
+		gtk_widget_queue_draw( wid);
+	}
+	break;
 
+	default:
+	break;
 	}
 
 	if ( SF.draw_crosshair ) {
diff --git a/src/aghermann/ui/sf/sf.hh b/src/aghermann/ui/sf/sf.hh
index f1409ab..6baf103 100644
--- a/src/aghermann/ui/sf/sf.hh
+++ b/src/aghermann/ui/sf/sf.hh
@@ -350,7 +350,9 @@ class SScoringFacility
 		hypnogram_button_down:1;
 	enum TMode {
 		scoring,
-		marking, shuffling_channels,
+		marking,
+		shuffling_channels,
+		moving_selection,
 		separating,
 		showing_ics,
 		showing_remixed
@@ -460,9 +462,11 @@ class SScoringFacility
 	void expand_by_factor( double);
 
 	int	n_hidden;
-      // shuffling manually
+
+	// things to remember bwtween button_press_event_cb and motion_cb
 	double	event_y_when_shuffling;
 	float	zeroy_before_shuffling;
+	float	moving_selection_handle_offset;
 
     public:
       // montage

-- 
Sleep experiment manager



More information about the debian-med-commit mailing list