154 GtkTreeViewColumn *col,
157 GtkDialog *dialog = GTK_DIALOG(userdata);
158 GtkTreeModel *
model = gtk_tree_view_get_model(treeview);
163 if(gtk_tree_model_get_iter_first(
model, &iter))
169 }
while(gtk_tree_model_iter_next(
model, &iter));
174 if (gtk_tree_model_get_iter(
model, &iter, path))
178 g_signal_emit_by_name(dialog,
"response", GTK_RESPONSE_OK, NULL);
187 GtkDialog *dialog = GTK_DIALOG(gtk_dialog_new_with_buttons(
188 iscopy ? _(
"Select development parts to copy") : _(
"Select development parts to paste"),
189 GTK_WINDOW(
window), GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT,
190 _(
"_cancel"), GTK_RESPONSE_CANCEL,
191 _(
"select _all"), GTK_RESPONSE_YES,
192 _(
"select _none"), GTK_RESPONSE_NONE,
193 _(
"_ok"), GTK_RESPONSE_OK,
196 gtk_dialog_set_default_response(dialog, GTK_RESPONSE_OK);
198#ifdef GDK_WINDOWING_QUARTZ
202 GtkContainer *content_area = GTK_CONTAINER(gtk_dialog_get_content_area(GTK_DIALOG(dialog)));
204 GtkWidget *scroll = gtk_scrolled_window_new(NULL, NULL);
205 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scroll), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
206 gtk_scrolled_window_set_min_content_height(GTK_SCROLLED_WINDOW(scroll),
DT_PIXEL_APPLY_DPI(450));
210 d->items = GTK_TREE_VIEW(gtk_tree_view_new());
211 gtk_container_add(GTK_CONTAINER(scroll), GTK_WIDGET(
d->items));
212 gtk_box_pack_start(GTK_BOX(content_area), GTK_WIDGET(scroll),
TRUE,
TRUE, 0);
214 GtkListStore *liststore
216 G_TYPE_BOOLEAN, GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_UINT);
219 GtkCellRenderer *renderer = gtk_cell_renderer_toggle_new();
220 gtk_cell_renderer_toggle_set_activatable(GTK_CELL_RENDERER_TOGGLE(renderer),
TRUE);
224 gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(
d->items), -1, _(
"Include"), renderer,
"active",
228 renderer = gtk_cell_renderer_pixbuf_new();
229 GtkTreeViewColumn *column = gtk_tree_view_column_new_with_attributes(
"", renderer,
"pixbuf",
231 gtk_tree_view_append_column(GTK_TREE_VIEW(
d->items), column);
232 gtk_tree_view_column_set_alignment(column, 0.5);
233 gtk_tree_view_column_set_clickable(column,
FALSE);
237 renderer = gtk_cell_renderer_text_new();
239 g_object_set(renderer,
"xalign", 0.0, (gchar *)0);
240 gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(
d->items), -1, _(
"Module"), renderer,
"text",
243 gtk_tree_selection_set_mode(gtk_tree_view_get_selection(GTK_TREE_VIEW(
d->items)), GTK_SELECTION_SINGLE);
244 gtk_tree_view_set_model(GTK_TREE_VIEW(
d->items), GTK_TREE_MODEL(liststore));
255 for(
const GList *items_iter =
items; items_iter; items_iter = g_list_next(items_iter))
265 gtk_list_store_append(GTK_LIST_STORE(liststore), &iter);
266 gtk_list_store_set(GTK_LIST_STORE(liststore), &iter,
281 return GTK_RESPONSE_CANCEL;
284 g_signal_connect(GTK_TREE_VIEW(
d->items),
"row-activated", (GCallback)
tree_on_row_activated, GTK_WIDGET(dialog));
285 g_object_unref(liststore);
289 gtk_widget_show_all(GTK_WIDGET(dialog));
293 res = gtk_dialog_run(GTK_DIALOG(dialog));
294 if(
res == GTK_RESPONSE_CANCEL ||
res == GTK_RESPONSE_DELETE_EVENT ||
res == GTK_RESPONSE_OK)
break;
297 GtkWindow *dialog_parent = gtk_window_get_transient_for(GTK_WINDOW(dialog));
298 gtk_widget_destroy(GTK_WIDGET(dialog));
301 g_object_unref(is_active_pb);
302 g_object_unref(is_inactive_pb);
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))
GList * dt_history_get_items(const int32_t imgid, gboolean enabled)
void dt_history_item_free(gpointer data)