Add perspective edit button to toolbar

The perspective control lines edit mode no longer piggybacks on the hand
tool button on the toolbar.
This commit is contained in:
Lawrence Lee
2020-07-31 21:58:00 -07:00
parent 2804480585
commit 1e73135d51
9 changed files with 165 additions and 5 deletions

View File

@@ -108,6 +108,7 @@ PerspCorrection::PerspCorrection () : FoldableToolPanel(this, "perspective", M("
EvPerspControlLines = mapper->newEvent(M_VOID, "HISTORY_MSG_PERSP_CTRL_LINE");
lens_geom_listener = nullptr;
panel_listener = nullptr;
metadata = nullptr;
Gtk::Image* ipers_draw(new RTImage ("draw.png"));
@@ -613,6 +614,17 @@ void PerspCorrection::setAdjusterBehavior (bool badd, bool camera_focal_length_a
projection_yaw->setAddMode(projection_angle_add);
}
void PerspCorrection::setControlLineEditMode(bool active)
{
// Only camera-based mode supports control lines, so the mode must be
// switched if not in camera-based mode.
if (method->get_active_row_number() != 1) {
method->set_active(1);
}
lines_button_edit->set_active(active);
}
void PerspCorrection::setMetadata (const rtengine::FramesMetaData* metadata)
{
this->metadata = metadata;
@@ -748,6 +760,9 @@ void PerspCorrection::linesEditButtonPressed(void)
lines_button_apply->set_sensitive(true);
lines_button_erase->set_sensitive(true);
setCamBasedEventsActive(false);
if (panel_listener) {
panel_listener->controlLineEditModeChanged(true);
}
} else { // Leave edit mode.
setCamBasedEventsActive(true);
lines_button_apply->set_sensitive(false);
@@ -758,6 +773,9 @@ void PerspCorrection::linesEditButtonPressed(void)
}
lines->setDrawMode(false);
lines->setActive(false);
if (panel_listener) {
panel_listener->controlLineEditModeChanged(false);
}
}
}
@@ -766,6 +784,13 @@ void PerspCorrection::linesEraseButtonPressed(void)
lines->removeAll();
}
void PerspCorrection::requestApplyControlLines(void)
{
if (lines_button_apply->is_sensitive()) {
linesApplyButtonPressed();
}
}
void PerspCorrection::setCamBasedEventsActive(bool active)
{
if (active) {