Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 32 additions & 3 deletions src/iop/ashift.c
Original file line number Diff line number Diff line change
Expand Up @@ -5318,6 +5318,32 @@ static void cropmode_callback(GtkWidget *widget, dt_iop_module_t *self)
_swap_shadow_crop_box(p,g);
}

static void _event_auto_rotate_quad_callback(GtkWidget *widget,
dt_iop_module_t *self)
{
DT_GUARD_GUI_UPDATE();

dt_iop_ashift_params_t *p = self->params;
dt_iop_ashift_gui_data_t *g = self->gui_data;

dt_iop_request_focus(self);

if(self->enabled)
{
do_fit(self, p, ASHIFT_FIT_ROTATION_BOTH_LINES);
}
else
{
g->jobcode = ASHIFT_JOBCODE_FIT;
g->jobparams = ASHIFT_FIT_ROTATION_BOTH_LINES;
}

_swap_shadow_crop_box(p, g);
dt_dev_add_history_item(darktable.develop, self, TRUE);
_swap_shadow_crop_box(p, g);
_commit_crop_box(p, g);
}

static int _event_fit_v_button_clicked(GtkWidget *widget,
const GdkEventButton *event,
dt_iop_module_t *self)
Expand Down Expand Up @@ -5604,13 +5630,12 @@ void commit_params(dt_iop_module_t *self,
d->orthocorr = (p->mode == ASHIFT_MODE_GENERIC) ? 0.0f : p->orthocorr;
d->aspect = (p->mode == ASHIFT_MODE_GENERIC) ? 1.0f : p->aspect;

if(dt_iop_has_focus(self)
|| dt_isnan(p->cl)
if(dt_isnan(p->cl)
|| dt_isnan(p->cr)
|| dt_isnan(p->ct)
|| dt_isnan(p->cb))
{
// if gui has focus we want to see the full uncropped image
// if crop parameters are not yet known, show the full image
d->cl = 0.0f;
d->cr = 1.0f;
d->ct = 0.0f;
Expand Down Expand Up @@ -5966,6 +5991,10 @@ void gui_init(dt_iop_module_t *self)
dt_shortcut_register(ac, 0, DT_ACTION_EFFECT_DOWN, GDK_KEY_bracketright, GDK_MOD1_MASK);
dt_shortcut_register(ac, 0, 0, GDK_KEY_r, GDK_MOD1_MASK);

dt_bauhaus_widget_set_quad(g->rotation, self, dtgtk_cairo_paint_wand, FALSE,
_event_auto_rotate_quad_callback,
_("auto-rotate the image using detected structure"));

g->cropmode = dt_bauhaus_combobox_from_params(self, "cropmode");
g_signal_connect(G_OBJECT(g->cropmode), "value-changed",
G_CALLBACK(cropmode_callback), self);
Expand Down
Loading