151 GtkTreeViewColumn *col,
154 GtkDialog *dialog = GTK_DIALOG(userdata);
155 GtkTreeModel *
model = gtk_tree_view_get_model(treeview);
160 if(gtk_tree_model_get_iter_first(
model, &iter))
166 }
while(gtk_tree_model_iter_next(
model, &iter));
171 if (gtk_tree_model_get_iter(
model, &iter, path))
175 g_signal_emit_by_name(dialog,
"response", GTK_RESPONSE_OK, NULL);
184 GtkDialog *dialog = GTK_DIALOG(gtk_dialog_new_with_buttons(
185 iscopy ? _(
"Select development parts to copy") : _(
"Select development parts to paste"),
186 GTK_WINDOW(window), GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT,
187 _(
"_cancel"), GTK_RESPONSE_CANCEL,
188 _(
"select _all"), GTK_RESPONSE_YES,
189 _(
"select _none"), GTK_RESPONSE_NONE,
190 _(
"_ok"), GTK_RESPONSE_OK,
193 gtk_dialog_set_default_response(dialog, GTK_RESPONSE_OK);
195#ifdef GDK_WINDOWING_QUARTZ
199 GtkContainer *content_area = GTK_CONTAINER(gtk_dialog_get_content_area(GTK_DIALOG(dialog)));
201 GtkWidget *scroll = gtk_scrolled_window_new(NULL, NULL);
202 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scroll), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
203 gtk_scrolled_window_set_min_content_height(GTK_SCROLLED_WINDOW(scroll),
DT_PIXEL_APPLY_DPI(450));
207 d->items = GTK_TREE_VIEW(gtk_tree_view_new());
208 gtk_container_add(GTK_CONTAINER(scroll), GTK_WIDGET(
d->items));
209 gtk_box_pack_start(GTK_BOX(content_area), GTK_WIDGET(scroll),
TRUE,
TRUE, 0);
211 GtkListStore *liststore
213 G_TYPE_BOOLEAN, GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_UINT);
216 GtkCellRenderer *renderer = gtk_cell_renderer_toggle_new();
217 gtk_cell_renderer_toggle_set_activatable(GTK_CELL_RENDERER_TOGGLE(renderer),
TRUE);
221 gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(
d->items), -1, _(
"Include"), renderer,
"active",
225 renderer = gtk_cell_renderer_pixbuf_new();
226 GtkTreeViewColumn *column = gtk_tree_view_column_new_with_attributes(
"", renderer,
"pixbuf",
228 gtk_tree_view_append_column(GTK_TREE_VIEW(
d->items), column);
229 gtk_tree_view_column_set_alignment(column, 0.5);
230 gtk_tree_view_column_set_clickable(column,
FALSE);
234 renderer = gtk_cell_renderer_text_new();
236 g_object_set(renderer,
"xalign", 0.0, (gchar *)0);
237 gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(
d->items), -1, _(
"Module"), renderer,
"text",
240 gtk_tree_selection_set_mode(gtk_tree_view_get_selection(GTK_TREE_VIEW(
d->items)), GTK_SELECTION_SINGLE);
241 gtk_tree_view_set_model(GTK_TREE_VIEW(
d->items), GTK_TREE_MODEL(liststore));
252 for(
const GList *items_iter =
items; items_iter; items_iter = g_list_next(items_iter))
262 gtk_list_store_append(GTK_LIST_STORE(liststore), &iter);
263 gtk_list_store_set(GTK_LIST_STORE(liststore), &iter,
278 return GTK_RESPONSE_CANCEL;
281 g_signal_connect(GTK_TREE_VIEW(
d->items),
"row-activated", (GCallback)
tree_on_row_activated, GTK_WIDGET(dialog));
282 g_object_unref(liststore);
286 gtk_widget_show_all(GTK_WIDGET(dialog));
290 res = gtk_dialog_run(GTK_DIALOG(dialog));
291 if(res == GTK_RESPONSE_CANCEL || res == GTK_RESPONSE_DELETE_EVENT || res == GTK_RESPONSE_OK)
break;
294 gtk_widget_destroy(GTK_WIDGET(dialog));
296 g_object_unref(is_active_pb);
297 g_object_unref(is_inactive_pb);
GList * dt_history_get_items(const int32_t imgid, gboolean enabled)
void dt_history_item_free(gpointer data)
gboolean dt_history_module_skip_copy(const int flags)
Determine whether a module should be skipped during history copy.
static GdkPixbuf * dt_draw_paint_to_pixbuf(GtkWidget *widget, const guint pixbuf_size, const int flags, void(*dtgtk_cairo_paint_fct)(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data))