258 |
|
|
259 |
if (resize.mode == resize.moving_high_limit) { |
if (resize.mode == resize.moving_high_limit) { |
260 |
if (resize.region->KeyRange.high != resize.pos - 1) { |
if (resize.region->KeyRange.high != resize.pos - 1) { |
261 |
resize.region->KeyRange.high = resize.pos - 1; |
instrument_struct_to_be_changed_signal.emit(instrument); |
262 |
instrument_changed(); |
resize.region->SetKeyRange( |
263 |
|
resize.region->KeyRange.low, // low |
264 |
|
resize.pos - 1 // high |
265 |
|
); |
266 |
|
instrument_changed.emit(); |
267 |
|
instrument_struct_changed_signal.emit(instrument); |
268 |
} |
} |
269 |
} else if (resize.mode == resize.moving_low_limit) { |
} else if (resize.mode == resize.moving_low_limit) { |
270 |
if (resize.region->KeyRange.low != resize.pos) { |
if (resize.region->KeyRange.low != resize.pos) { |
271 |
resize.region->KeyRange.low = resize.pos; |
instrument_struct_to_be_changed_signal.emit(instrument); |
272 |
instrument_changed(); |
resize.region->SetKeyRange( |
273 |
|
resize.pos, // low |
274 |
|
resize.region->KeyRange.high // high |
275 |
|
); |
276 |
|
instrument_changed.emit(); |
277 |
|
instrument_struct_changed_signal.emit(instrument); |
278 |
} |
} |
279 |
} |
} |
280 |
|
|
287 |
move.active = false; |
move.active = false; |
288 |
|
|
289 |
if (move.pos) { |
if (move.pos) { |
290 |
region->KeyRange.low += move.pos; |
instrument_struct_to_be_changed_signal.emit(instrument); |
291 |
region->KeyRange.high += move.pos; |
region->SetKeyRange( |
292 |
|
region->KeyRange.low + move.pos, |
293 |
// find the r which is the first one to the right of region |
region->KeyRange.high + move.pos |
294 |
// at its new position |
); |
295 |
gig::Region* r; |
instrument_struct_changed_signal.emit(instrument); |
|
gig::Region* prev_region = 0; |
|
|
for (r = instrument->GetFirstRegion() ; r ; r = instrument->GetNextRegion()) { |
|
|
if (r->KeyRange.low > region->KeyRange.low) break; |
|
|
prev_region = r; |
|
|
} |
|
|
|
|
|
// place region before r if it's not already there |
|
|
if (prev_region != region) { |
|
|
instrument_struct_to_be_changed_signal.emit(instrument); |
|
|
instrument->MoveRegion(region, r); |
|
|
instrument_struct_changed_signal.emit(instrument); |
|
|
} |
|
296 |
} |
} |
297 |
|
|
298 |
if (is_in_resize_zone(event->x, event->y)) { |
if (is_in_resize_zone(event->x, event->y)) { |
653 |
|
|
654 |
void RegionChooser::add_region() |
void RegionChooser::add_region() |
655 |
{ |
{ |
|
gig::Region* r; |
|
|
for (r = instrument->GetFirstRegion() ; r ; r = instrument->GetNextRegion()) { |
|
|
if (r->KeyRange.low > new_region_pos) break; |
|
|
} |
|
|
|
|
656 |
instrument_struct_to_be_changed_signal.emit(instrument); |
instrument_struct_to_be_changed_signal.emit(instrument); |
657 |
|
|
658 |
region = instrument->AddRegion(); |
region = instrument->AddRegion(); |
659 |
region->KeyRange.low = region->KeyRange.high = new_region_pos; |
region->SetKeyRange(new_region_pos, new_region_pos); |
|
|
|
|
instrument->MoveRegion(region, r); |
|
660 |
|
|
661 |
instrument_struct_changed_signal.emit(instrument); |
instrument_struct_changed_signal.emit(instrument); |
662 |
|
|