Skip to content
Draft
Show file tree
Hide file tree
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
24 changes: 10 additions & 14 deletions src/bauhaus/bauhaus.c
Original file line number Diff line number Diff line change
Expand Up @@ -673,7 +673,6 @@ static gboolean _popup_button_release(GtkWidget *widget,

return TRUE;
}

static gboolean _popup_button_press(GtkWidget *widget,
GdkEventButton *event,
gpointer user_data)
Expand Down Expand Up @@ -715,10 +714,10 @@ static gboolean _popup_button_press(GtkWidget *widget,
return TRUE;
}

static void _window_show(GtkWidget *w, gpointer user_data)
static void _window_show(GtkWidget *w, GtkWidget *area)
{
// make sure combo popup handles button release
gtk_grab_add(GTK_WIDGET(user_data));
gtk_grab_add(area);
}

static void _widget_leave(GtkEventControllerMotion *controller,
Expand Down Expand Up @@ -892,20 +891,17 @@ void dt_bauhaus_init()
| GDK_KEY_PRESS_MASK | GDK_LEAVE_NOTIFY_MASK
| darktable.gui->scroll_mask);

GObject *window = G_OBJECT(pop->window);
GObject *area = G_OBJECT(pop->area);

gtk_widget_realize(pop->window);
g_signal_connect(gtk_widget_get_window(pop->window),
"moved-to-rect", G_CALLBACK(_window_moved_to_rect), NULL);
g_signal_connect(window, "show", G_CALLBACK(_window_show), area);
g_signal_connect(window, "motion-notify-event", G_CALLBACK(_window_motion_notify), NULL);
g_signal_connect(area, "draw", G_CALLBACK(_popup_draw), NULL);
g_signal_connect(area, "leave-notify-event", G_CALLBACK(_popup_leave_notify), NULL);
g_signal_connect(area, "button-press-event", G_CALLBACK(_popup_button_press), NULL);
g_signal_connect(area, "button-release-event", G_CALLBACK (_popup_button_release), NULL);
g_signal_connect(area, "key-press-event", G_CALLBACK(_popup_key_press), NULL);
g_signal_connect(area, "scroll-event", G_CALLBACK(_popup_scroll), NULL);
g_signal_connect(pop->window, "show", G_CALLBACK(_window_show), pop->area);
g_signal_connect(pop->window, "motion-notify-event", G_CALLBACK(_window_motion_notify), NULL);
g_signal_connect(pop->area, "draw", G_CALLBACK(_popup_draw), NULL);
g_signal_connect(pop->area, "leave-notify-event", G_CALLBACK(_popup_leave_notify), NULL);
g_signal_connect(pop->area, "button-press-event", G_CALLBACK(_popup_button_press), NULL);
g_signal_connect(pop->area, "button-release-event", G_CALLBACK (_popup_button_release), NULL);
g_signal_connect(pop->area, "key-press-event", G_CALLBACK(_popup_key_press), NULL);
g_signal_connect(pop->area, "scroll-event", G_CALLBACK(_popup_scroll), NULL);

dt_action_define(&darktable.control->actions_focus, NULL, N_("sliders"),
NULL, &_action_def_focus_slider);
Expand Down
2 changes: 1 addition & 1 deletion src/bauhaus/bauhaus.h
Original file line number Diff line number Diff line change
Expand Up @@ -212,7 +212,7 @@ static inline void dt_bauhaus_widget_set_quad(GtkWidget *widget,
{
dt_bauhaus_widget_set_quad_paint(widget, paint, 0, NULL);
dt_bauhaus_widget_set_quad_toggle(widget, toggle);
g_signal_connect(G_OBJECT(widget), "quad-pressed", G_CALLBACK(callback), self);
g_signal_connect(widget, "quad-pressed", G_CALLBACK(callback), self);
if(tooltip) dt_bauhaus_widget_set_quad_tooltip(widget, tooltip);
}
// get the tooltip for widget or quad button:
Expand Down
2 changes: 1 addition & 1 deletion src/common/camera_control.c
Original file line number Diff line number Diff line change
Expand Up @@ -1677,7 +1677,7 @@ static void _camera_build_property_menu(CameraWidget *widget,
/* construct menu item for property */
gp_widget_get_name(child, &sk);
GtkMenuItem *item = GTK_MENU_ITEM(gtk_menu_item_new_with_label(sk));
g_signal_connect(G_OBJECT(item), "activate", item_activate, user_data);
g_signal_connect(item, "activate", G_CALLBACK((void(*)(GtkMenuItem*,gpointer))item_activate), user_data);
/* add submenu item to menu */
gtk_menu_shell_append(GTK_MENU_SHELL(menu), GTK_WIDGET(item));
}
Expand Down
37 changes: 16 additions & 21 deletions src/control/crawler.c
Original file line number Diff line number Diff line change
Expand Up @@ -348,25 +348,24 @@ static void _delete_selected_rows(dt_control_crawler_gui_t *gui)


static void _select_all_callback(GtkButton *button,
gpointer user_data)
dt_control_crawler_gui_t *gui)
{
dt_control_crawler_gui_t *gui = (dt_control_crawler_gui_t *)user_data;
GtkTreeSelection *selection = gtk_tree_view_get_selection(gui->tree);
gtk_tree_selection_select_all(selection);
}


static void _select_none_callback(GtkButton *button, gpointer user_data)
static void _select_none_callback(GtkButton *button,
dt_control_crawler_gui_t *gui)
{
dt_control_crawler_gui_t *gui = (dt_control_crawler_gui_t *)user_data;
GtkTreeSelection *selection = gtk_tree_view_get_selection(gui->tree);
gtk_tree_selection_unselect_all(selection);
}


static void _select_invert_callback(GtkButton *button, gpointer user_data)
static void _select_invert_callback(GtkButton *button,
dt_control_crawler_gui_t *gui)
{
dt_control_crawler_gui_t *gui = (dt_control_crawler_gui_t *)user_data;
GtkTreeSelection *selection = gtk_tree_view_get_selection(gui->tree);

GtkTreeIter iter;
Expand Down Expand Up @@ -634,9 +633,8 @@ static void sync_oldest_to_newest(GtkTreeModel *model,
}

// overwrite database with xmp
static void _reload_button_clicked(GtkButton *button, gpointer user_data)
static void _reload_button_clicked(GtkButton *button, dt_control_crawler_gui_t *gui)
{
dt_control_crawler_gui_t *gui = (dt_control_crawler_gui_t *)user_data;
GtkTreeSelection *selection = gtk_tree_view_get_selection(gui->tree);
gui->rows_to_remove = NULL;
gtk_spinner_start(GTK_SPINNER(gui->spinner));
Expand All @@ -646,9 +644,8 @@ static void _reload_button_clicked(GtkButton *button, gpointer user_data)
}

// overwrite xmp with database
void _overwrite_button_clicked(GtkButton *button, gpointer user_data)
void _overwrite_button_clicked(GtkButton *button, dt_control_crawler_gui_t *gui)
{
dt_control_crawler_gui_t *gui = (dt_control_crawler_gui_t *)user_data;
GtkTreeSelection *selection = gtk_tree_view_get_selection(gui->tree);
gui->rows_to_remove = NULL;
gtk_spinner_start(GTK_SPINNER(gui->spinner));
Expand All @@ -658,9 +655,8 @@ void _overwrite_button_clicked(GtkButton *button, gpointer user_data)
}

// overwrite the oldest with the newest
static void _newest_button_clicked(GtkButton *button, gpointer user_data)
static void _newest_button_clicked(GtkButton *button, dt_control_crawler_gui_t *gui)
{
dt_control_crawler_gui_t *gui = (dt_control_crawler_gui_t *)user_data;
GtkTreeSelection *selection = gtk_tree_view_get_selection(gui->tree);
gui->rows_to_remove = NULL;
gtk_spinner_start(GTK_SPINNER(gui->spinner));
Expand All @@ -670,9 +666,8 @@ static void _newest_button_clicked(GtkButton *button, gpointer user_data)
}

// overwrite the newest with the oldest
static void _oldest_button_clicked(GtkButton *button, gpointer user_data)
static void _oldest_button_clicked(GtkButton *button, dt_control_crawler_gui_t *gui)
{
dt_control_crawler_gui_t *gui = (dt_control_crawler_gui_t *)user_data;
GtkTreeSelection *selection = gtk_tree_view_get_selection(gui->tree);
gui->rows_to_remove = NULL;
gtk_spinner_start(GTK_SPINNER(gui->spinner));
Expand Down Expand Up @@ -810,19 +805,19 @@ void dt_control_crawler_show_image_list(GList *images)
GtkWidget *select_all = gtk_button_new_with_label(_("select all"));
GtkWidget *select_none = gtk_button_new_with_label(_("select none"));
GtkWidget *select_invert = gtk_button_new_with_label(_("invert selection"));
g_signal_connect(select_all, "clicked", G_CALLBACK(_select_all_callback), gui);
g_signal_connect(select_none, "clicked", G_CALLBACK(_select_none_callback), gui);
g_signal_connect(select_invert, "clicked", G_CALLBACK(_select_invert_callback), gui);
g_signal_connect(GTK_BUTTON(select_all), "clicked", G_CALLBACK(_select_all_callback), gui);
g_signal_connect(GTK_BUTTON(select_none), "clicked", G_CALLBACK(_select_none_callback), gui);
g_signal_connect(GTK_BUTTON(select_invert), "clicked", G_CALLBACK(_select_invert_callback), gui);

GtkWidget *label = gtk_label_new_with_mnemonic(_("on the selection:"));
GtkWidget *reload_button = gtk_button_new_with_label(_("keep the XMP edit"));
GtkWidget *overwrite_button = gtk_button_new_with_label(_("keep the database edit"));
GtkWidget *newest_button = gtk_button_new_with_label(_("keep the newest edit"));
GtkWidget *oldest_button = gtk_button_new_with_label(_("keep the oldest edit"));
g_signal_connect(reload_button, "clicked", G_CALLBACK(_reload_button_clicked), gui);
g_signal_connect(overwrite_button, "clicked", G_CALLBACK(_overwrite_button_clicked), gui);
g_signal_connect(newest_button, "clicked", G_CALLBACK(_newest_button_clicked), gui);
g_signal_connect(oldest_button, "clicked", G_CALLBACK(_oldest_button_clicked), gui);
g_signal_connect(GTK_BUTTON(reload_button), "clicked", G_CALLBACK(_reload_button_clicked), gui);
g_signal_connect(GTK_BUTTON(overwrite_button), "clicked", G_CALLBACK(_overwrite_button_clicked), gui);
g_signal_connect(GTK_BUTTON(newest_button), "clicked", G_CALLBACK(_newest_button_clicked), gui);
g_signal_connect(GTK_BUTTON(oldest_button), "clicked", G_CALLBACK(_oldest_button_clicked), gui);

/* Feedback spinner in case synch happens over network and stales */
gui->spinner = gtk_spinner_new();
Expand Down
5 changes: 3 additions & 2 deletions src/control/signal.c
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,7 @@ static void _image_geotag_destroy_callback(gpointer instance, gpointer imgs, con
imgs = NULL;
}
}
#define G_CALLBACK(f) ((GCallback) (f))

static dt_signal_description _signal_description[DT_SIGNAL_COUNT] = {
/* Global signals */
Expand Down Expand Up @@ -241,7 +242,7 @@ dt_control_signal_t *dt_control_signal_init()
_signal_description[k].n_params, _signal_description[k].param_types);
if(_signal_description[k].destructor)
{
g_signal_connect_after(G_OBJECT(ctlsig->sink), _signal_description[k].name,
g_signal_connect_after(ctlsig->sink, _signal_description[k].name,
_signal_description[k].destructor, NULL);
}
}
Expand Down Expand Up @@ -394,7 +395,7 @@ void dt_control_signal_connect(const dt_control_signal_t *ctlsig, dt_signal_t si
{
_print_trace(signal, DT_DEBUG_SIGNAL_ACT_CONNECT, "connect");

g_signal_connect(G_OBJECT(ctlsig->sink), _signal_description[signal].name, G_CALLBACK(cb), user_data);
g_signal_connect_data(ctlsig->sink, _signal_description[signal].name, G_CALLBACK(cb), user_data, NULL, 0);
}

void dt_control_signal_disconnect(const struct dt_control_signal_t *ctlsig, GCallback cb, gpointer user_data)
Expand Down
2 changes: 1 addition & 1 deletion src/develop/blend.h
Original file line number Diff line number Diff line change
Expand Up @@ -260,7 +260,7 @@ typedef struct dt_iop_gui_blendif_channel_t
dt_develop_blendif_channels_t param_channels[2];
dt_dev_pixelpipe_display_mask_t display_channel;
void (*scale_print)(float value, float boost_factor, char *string, int n);
int (*altdisplay)(GtkWidget *, dt_iop_module_t *, int);
int (*altdisplay)(GtkDarktableGradientSlider *, dt_iop_module_t *, int);
char *name;
} dt_iop_gui_blendif_channel_t;

Expand Down
Loading