LayerSelector: Rewrite layer_selector_export_rendered_layer_info() to return LayerSettings object.
This commit is contained in:
parent
943e924337
commit
a38946b803
@ -34,6 +34,7 @@
|
|||||||
#include <gtk/gtk.h>
|
#include <gtk/gtk.h>
|
||||||
#include <glib.h>
|
#include <glib.h>
|
||||||
#include <gds-render/layer/color-palette.h>
|
#include <gds-render/layer/color-palette.h>
|
||||||
|
#include <gds-render/layer/layer-info.h>
|
||||||
|
|
||||||
G_BEGIN_DECLS
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
@ -80,9 +81,9 @@ void layer_selector_set_save_mapping_button(LayerSelector *selector, GtkWidget *
|
|||||||
/**
|
/**
|
||||||
* @brief Get a list of all layers that shall be exported when rendering the cells
|
* @brief Get a list of all layers that shall be exported when rendering the cells
|
||||||
* @param selector Layer selector instance
|
* @param selector Layer selector instance
|
||||||
* @return List of layer_info structures containing the layer information
|
* @return LayerSettings containing the layer information
|
||||||
*/
|
*/
|
||||||
GList *layer_selector_export_rendered_layer_info(LayerSelector *selector);
|
LayerSettings *layer_selector_export_rendered_layer_info(LayerSelector *selector);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Force the layer selector list to be sorted according to \p sort_function
|
* @brief Force the layer selector list to be sorted according to \p sort_function
|
||||||
|
@ -371,38 +371,39 @@ LayerSelector *layer_selector_new(GtkListBox *list_box)
|
|||||||
return selector;
|
return selector;
|
||||||
}
|
}
|
||||||
|
|
||||||
GList *layer_selector_export_rendered_layer_info(LayerSelector *selector)
|
LayerSettings *layer_selector_export_rendered_layer_info(LayerSelector *selector)
|
||||||
{
|
{
|
||||||
GList *info_list = NULL;
|
LayerSettings *layer_settings;
|
||||||
LayerElement *le;
|
struct layer_info linfo;
|
||||||
struct layer_info *linfo;
|
|
||||||
GList *row_list;
|
GList *row_list;
|
||||||
GList *temp;
|
GList *iterator;
|
||||||
|
LayerElement *le;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
if (!selector)
|
layer_settings = layer_settings_new();
|
||||||
|
if (!layer_settings)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
row_list = gtk_container_get_children(GTK_CONTAINER(selector->list_box));
|
row_list = gtk_container_get_children(GTK_CONTAINER(selector->list_box));
|
||||||
|
|
||||||
/* Iterate through widgets and add layers that shall be exported */
|
for (i = 0,iterator = row_list; iterator != NULL; iterator = g_list_next(iterator), i++) {
|
||||||
for (i = 0, temp = row_list; temp != NULL; temp = temp->next, i++) {
|
le = LAYER_ELEMENT(iterator->data);
|
||||||
|
|
||||||
le = LAYER_ELEMENT(temp->data);
|
/* Get name from layer element. This must not be freed */
|
||||||
|
linfo.name =(char *)layer_element_get_name(le);
|
||||||
|
|
||||||
if (layer_element_get_export(le) == TRUE) {
|
layer_element_get_color(le, &linfo.color);
|
||||||
/* Allocate new info and fill with info */
|
linfo.render = (layer_element_get_export(le) ? 1 : 0);
|
||||||
linfo = (struct layer_info *)malloc(sizeof(struct layer_info));
|
linfo.stacked_position = i;
|
||||||
layer_element_get_color(le, &linfo->color);
|
linfo.layer = layer_element_get_layer(le);
|
||||||
linfo->layer = layer_element_get_layer(le);
|
|
||||||
linfo->name = (char *)layer_element_get_name(le);
|
|
||||||
|
|
||||||
/* Append to list */
|
/* This function copies the entire layer info struct including the name string.
|
||||||
info_list = g_list_append(info_list, (gpointer)linfo);
|
* Therefore, using the same layer_info struct over and over is safe.
|
||||||
}
|
*/
|
||||||
|
layer_settings_append_layer_info(layer_settings, &linfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
return info_list;
|
return layer_settings;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void layer_selector_clear_widgets(LayerSelector *self)
|
static void layer_selector_clear_widgets(LayerSelector *self)
|
||||||
|
Loading…
Reference in New Issue
Block a user