![]() |
Ansel 0.0
A darktable fork - bloat + design vision
|
This graph shows which files directly or indirectly include this file:Go to the source code of this file.
Data Structures | |
| struct | dt_iop_order_entry_t |
| struct | dt_iop_order_rule_t |
Typedefs | |
| typedef enum dt_iop_order_t | dt_iop_order_t |
| typedef struct dt_iop_order_entry_t | dt_iop_order_entry_t |
| typedef struct dt_iop_order_rule_t | dt_iop_order_rule_t |
Enumerations | |
| enum | dt_iop_order_t { DT_IOP_ORDER_CUSTOM = 0 , DT_IOP_ORDER_LEGACY = 1 , DT_IOP_ORDER_V30 = 2 , DT_IOP_ORDER_V30_JPG = 3 , DT_IOP_ORDER_LAST = 4 } |
Functions | |
| const char * | dt_iop_order_string (const dt_iop_order_t order) |
| Return the human-readable name for an IOP order enum value. | |
| dt_iop_order_t | dt_ioppr_get_iop_order_version (const int32_t imgid) |
| Fetch the IOP order version stored for an image. | |
| dt_iop_order_t | dt_ioppr_get_iop_order_list_kind (GList *iop_order_list) |
| Determine the kind of an order list by inspecting its content. | |
| gboolean | dt_ioppr_has_iop_order_list (int32_t imgid) |
| Check whether the image has an explicit order list stored in DB. | |
| GList * | dt_ioppr_get_iop_order_list (int32_t imgid, gboolean sorted) |
| Load the order list for an image from the DB. | |
| GList * | dt_ioppr_get_iop_order_list_version (dt_iop_order_t version) |
| Return the built-in order list for a given version. | |
| GList * | dt_ioppr_get_iop_order_link (GList *iop_order_list, const char *op_name, const int multi_priority) |
| Find a list link matching an operation and instance. | |
| gboolean | dt_ioppr_has_multiple_instances (GList *iop_order_list) |
| Detect whether multiple instances are grouped for a non-custom order. | |
| int | dt_ioppr_get_iop_order (GList *iop_order_list, const char *op_name, const int multi_priority) |
| Return the iop_order for a given operation/instance pair. | |
| gboolean | dt_ioppr_write_iop_order_list (GList *iop_order_list, const int32_t imgid) |
| Persist an order list to the DB for a given image. | |
| void * | dt_ioppr_serialize_iop_order_list (GList *iop_order_list, size_t *size) |
| Serialize an order list into a binary blob (used for presets). | |
| GList * | dt_ioppr_deserialize_iop_order_list (const char *buf, size_t size) |
| Deserialize an order list from a binary blob. | |
| char * | dt_ioppr_serialize_text_iop_order_list (GList *iop_order_list) |
| Serialize an order list to a text representation. | |
| GList * | dt_ioppr_deserialize_text_iop_order_list (const char *buf) |
| Deserialize an order list from a text representation. | |
| void | dt_ioppr_insert_module_instance (struct dt_develop_t *dev, struct dt_iop_module_t *module) |
| Ensure a module instance has an entry in dev->iop_order_list. | |
| void | dt_ioppr_resync_modules_order (struct dt_develop_t *dev) |
| Update dev->iop module order values from dev->iop_order_list. | |
| void | dt_ioppr_resync_pipeline (struct dt_develop_t *dev, const int32_t imgid, const char *msg, gboolean check_duplicates) |
| Resynchronize pipeline order and related structures. | |
| void | dt_ioppr_rebuild_iop_order_from_modules (struct dt_develop_t *dev, GList *ordered_modules) |
| Rebuild dev->iop_order_list from a list of ordered modules. | |
| void | dt_ioppr_update_for_style_items (struct dt_develop_t *dev, GList *st_items, gboolean append) |
| Update dev->iop_order_list with modules referenced by style items. | |
| void | dt_ioppr_update_for_modules (struct dt_develop_t *dev, GList *modules, gboolean append) |
| Update dev->iop_order_list with modules from a module list. | |
| void | dt_ioppr_set_default_iop_order (struct dt_develop_t *dev, const int32_t imgid) |
| Set dev->iop_order_list to the default order for a given image. | |
| void | dt_ioppr_change_iop_order (struct dt_develop_t *dev, const int32_t imgid, GList *new_iop_list) |
| Replace the current order list with a new one and persist it. | |
| int | dt_ioppr_check_so_iop_order (GList *iop_list, GList *iop_order_list) |
| Check whether any module .so is missing an iop_order entry. | |
| GList * | dt_ioppr_get_iop_order_rules () |
| Return the list of ordering rules (prev/next constraints). | |
| GList * | dt_ioppr_iop_order_copy_deep (GList *iop_order_list) |
| Deep-copy an order list. | |
| gint | dt_sort_iop_by_order (gconstpointer a, gconstpointer b) |
| Compare two module instances by iop_order for sorting. | |
| gint | dt_sort_iop_list_by_order_f (gconstpointer a, gconstpointer b) |
| Compare two list nodes holding modules by iop_order. | |
| gboolean | dt_ioppr_check_can_move_before_iop (GList *iop_list, struct dt_iop_module_t *module, struct dt_iop_module_t *module_next) |
| Validate whether module can be moved before module_next. | |
| gboolean | dt_ioppr_check_can_move_after_iop (GList *iop_list, struct dt_iop_module_t *module, struct dt_iop_module_t *module_prev) |
| Validate whether module can be moved after module_prev. | |
| gboolean | dt_ioppr_move_iop_before (struct dt_develop_t *dev, struct dt_iop_module_t *module, struct dt_iop_module_t *module_next) |
| Move a module instance before another module in the pipe. | |
| gboolean | dt_ioppr_move_iop_after (struct dt_develop_t *dev, struct dt_iop_module_t *module, struct dt_iop_module_t *module_prev) |
| Move a module instance after another module in the pipe. | |
| int | dt_ioppr_check_iop_order (struct dt_develop_t *dev, const int32_t imgid, const char *msg) |
| Debug helper to validate the current order for a develop context. | |
| typedef struct dt_iop_order_entry_t dt_iop_order_entry_t |
| typedef struct dt_iop_order_rule_t dt_iop_order_rule_t |
| typedef enum dt_iop_order_t dt_iop_order_t |
| enum dt_iop_order_t |
| const char * dt_iop_order_string | ( | const dt_iop_order_t | order | ) |
Return the human-readable name for an IOP order enum value.
This is mostly used for debug strings, logs, and UI messages.
| order | IOP order enum value. |
References DT_IOP_ORDER_LAST, and iop_order_string.
Referenced by _gui_styles_dialog_run(), get_query_string(), list_view(), and update().
| void dt_ioppr_change_iop_order | ( | struct dt_develop_t * | dev, |
| const int32_t | imgid, | ||
| GList * | new_iop_list | ||
| ) |
Replace the current order list with a new one and persist it.
| dev | Develop context. |
| imgid | Image id. |
| new_iop_list | New order list (ownership remains with caller). |
References darktable, darktable_t::develop, dt_dev_write_history(), dt_free_gpointer(), DT_IOP_ORDER_CUSTOM, dt_ioppr_extract_multi_instances_list(), dt_ioppr_iop_order_copy_deep(), dt_ioppr_merge_multi_instance_iop_order_list(), dt_ioppr_migrate_iop_order(), dt_ioppr_write_iop_order(), and dt_develop_t::iop_order_list.
Referenced by gui_reset(), and set_params().
| gboolean dt_ioppr_check_can_move_after_iop | ( | GList * | iop_list, |
| struct dt_iop_module_t * | module, | ||
| struct dt_iop_module_t * | module_prev | ||
| ) |
Validate whether module can be moved after module_prev.
| iop_list | Current module list. |
| module | Module to move. |
| module_prev | Target module that should precede. |
References dt_ioppr_check_can_move_before_iop(), FALSE, dt_iop_module_t::iop_order, dt_iop_module_t::multi_name, dt_iop_module_t::op, dt_iop_module_t::raster_mask, dt_iop_module_t::sink, and dt_iop_module_t::source.
Referenced by _dev_module_update_multishow(), and _on_drag_motion().
| gboolean dt_ioppr_check_can_move_before_iop | ( | GList * | iop_list, |
| struct dt_iop_module_t * | module, | ||
| struct dt_iop_module_t * | module_next | ||
| ) |
Validate whether module can be moved before module_next.
| iop_list | Current module list. |
| module | Module to move. |
| module_next | Target module that should follow. |
References darktable, FALSE, IOP_FLAGS_FENCE, dt_iop_module_t::iop_order, darktable_t::iop_order_rules, dt_iop_module_t::multi_name, dt_iop_module_t::op, dt_iop_module_t::raster_mask, dt_iop_module_t::sink, dt_iop_module_t::source, and TRUE.
Referenced by _dev_module_update_multishow(), _on_drag_motion(), and dt_ioppr_check_can_move_after_iop().
| int dt_ioppr_check_iop_order | ( | struct dt_develop_t * | dev, |
| const int32_t | imgid, | ||
| const char * | msg | ||
| ) |
Debug helper to validate the current order for a develop context.
Logs inconsistencies and optionally reports the state with msg.
| dev | Develop context. |
| imgid | Image id (for diagnostics). |
| msg | Optional debug message. |
References _ioppr_check_rules(), DT_DEBUG_PARAMS, dt_print(), dt_develop_t::history, dt_develop_t::iop, dt_iop_module_t::iop_order, dt_iop_module_t::multi_name, dt_iop_module_t::multi_priority, and dt_iop_module_t::op.
Referenced by _apply_style_before_export(), _gui_movedown_callback(), _gui_moveup_callback(), _on_drag_data_received(), dt_dev_modules_update_multishow(), and dt_ioppr_resync_pipeline().
| int dt_ioppr_check_so_iop_order | ( | GList * | iop_list, |
| GList * | iop_order_list | ||
| ) |
Check whether any module .so is missing an iop_order entry.
| iop_list | List of module .so entries. |
| iop_order_list | Current order list. |
References dt_ioppr_get_iop_order_entry().
Referenced by dt_init().
| GList * dt_ioppr_deserialize_iop_order_list | ( | const char * | buf, |
| size_t | size | ||
| ) |
Deserialize an order list from a binary blob.
| buf | Serialized buffer. |
| size | Buffer size in bytes. |
References _ioppr_reset_iop_order(), dt_free, dt_free_gpointer(), error(), dt_iop_order_entry_t::instance, dt_iop_order_entry_t::iop_order, dt_iop_order_entry_t::o, dt_iop_order_entry_t::operation, and size.
Referenced by _dev_auto_apply_presets(), set_params(), and update().
| GList * dt_ioppr_deserialize_text_iop_order_list | ( | const char * | buf | ) |
Deserialize an order list from a text representation.
| buf | NUL-terminated string. |
References _ioppr_reset_iop_order(), _ioppr_sanity_check_iop_order(), dt_free_gpointer(), dt_util_str_to_glist(), error(), dt_iop_order_entry_t::instance, dt_iop_order_entry_t::iop_order, dt_iop_order_entry_t::o, and dt_iop_order_entry_t::operation.
Referenced by dt_exif_xmp_read(), dt_ioppr_get_iop_order_list(), dt_styles_module_order_list(), and dt_styles_style_text_handler().
| int dt_ioppr_get_iop_order | ( | GList * | iop_order_list, |
| const char * | op_name, | ||
| const int | multi_priority | ||
| ) |
Return the iop_order for a given operation/instance pair.
| iop_order_list | Order list to search. |
| op_name | Operation name. |
| multi_priority | Instance priority. |
References dt_ioppr_get_iop_order_entry().
Referenced by _process_history_db_entry(), _show_hide_colorspace(), default_input_format(), default_output_format(), default_tiling_callback(), dt_ioppr_get_pipe_current_profile_info(), dt_ioppr_resync_modules_order(), dt_ioppr_update_for_modules(), dt_ioppr_update_for_style_items(), and sanity_check().
| GList * dt_ioppr_get_iop_order_link | ( | GList * | iop_order_list, |
| const char * | op_name, | ||
| const int | multi_priority | ||
| ) |
Find a list link matching an operation and instance.
| iop_order_list | Order list to search. |
| op_name | Operation name. |
| multi_priority | Instance priority. |
References dt_iop_order_entry_t::instance, and dt_iop_order_entry_t::operation.
Referenced by dt_exif_xmp_read(), dt_ioppr_get_iop_order_entry(), dt_ioppr_merge_module_multi_instance_iop_order_list(), dt_ioppr_move_iop_after(), and dt_ioppr_move_iop_before().
| GList * dt_ioppr_get_iop_order_list | ( | int32_t | imgid, |
| gboolean | sorted | ||
| ) |
Load the order list for an image from the DB.
If no list is found, returns NULL.
| imgid | Image id. |
| sorted | If TRUE, entries are sorted by iop_order; otherwise the stored order is kept. |
References _insert_before(), _ioppr_reset_iop_order(), _table_to_list(), darktable, darktable_t::db, dt_database_get(), DT_DEBUG_SQLITE3_BIND_INT, DT_DEBUG_SQLITE3_PREPARE_V2, DT_IOP_ORDER_CUSTOM, DT_IOP_ORDER_LEGACY, DT_IOP_ORDER_V30, DT_IOP_ORDER_V30_JPG, dt_ioppr_deserialize_text_iop_order_list(), dt_sort_iop_list_by_order(), legacy_order, v30_jpg_order, and v30_order.
Referenced by _dt_style_update_iop_order(), _exif_xmp_read_data(), _exif_xmp_read_data_export(), dt_init(), dt_ioppr_set_default_iop_order(), and dt_styles_create_from_image().
| dt_iop_order_t dt_ioppr_get_iop_order_list_kind | ( | GList * | iop_order_list | ) |
Determine the kind of an order list by inspecting its content.
Compares the list ordering to the known built-in lists to decide whether this is a built-in version or a custom order.
| iop_order_list | List of dt_iop_order_entry_t. |
References DT_IOP_ORDER_CUSTOM, DT_IOP_ORDER_LEGACY, DT_IOP_ORDER_V30, DT_IOP_ORDER_V30_JPG, FALSE, legacy_order, TRUE, v30_jpg_order, and v30_order.
Referenced by _upgrade_library_schema_step(), dt_ioppr_write_iop_order_list(), and update().
| GList * dt_ioppr_get_iop_order_list_version | ( | dt_iop_order_t | version | ) |
Return the built-in order list for a given version.
| version | Built-in order version. |
References _table_to_list(), DT_IOP_ORDER_LEGACY, DT_IOP_ORDER_V30, DT_IOP_ORDER_V30_JPG, legacy_order, v30_jpg_order, and v30_order.
Referenced by _dev_auto_apply_presets(), _upgrade_data_schema_step(), _upgrade_library_schema_step(), dt_exif_xmp_read(), gui_reset(), and init_presets().
| GList * dt_ioppr_get_iop_order_rules | ( | ) |
Return the list of ordering rules (prev/next constraints).
References i, dt_iop_order_rule_t::op_next, and dt_iop_order_rule_t::op_prev.
Referenced by dt_init().
| dt_iop_order_t dt_ioppr_get_iop_order_version | ( | const int32_t | imgid | ) |
Fetch the IOP order version stored for an image.
If the image has no stored order, this falls back to the default (currently DT_IOP_ORDER_V30).
| imgid | Image id. |
References darktable, darktable_t::db, dt_database_get(), DT_DEBUG_SQLITE3_BIND_INT, DT_DEBUG_SQLITE3_PREPARE_V2, and DT_IOP_ORDER_V30.
Referenced by _exif_xmp_read_data(), _exif_xmp_read_data_export(), and _gui_styles_dialog_run().
| gboolean dt_ioppr_has_iop_order_list | ( | int32_t | imgid | ) |
Check whether the image has an explicit order list stored in DB.
| imgid | Image id. |
References darktable, darktable_t::db, dt_database_get(), DT_DEBUG_SQLITE3_BIND_INT, DT_DEBUG_SQLITE3_PREPARE_V2, and FALSE.
Referenced by _dev_auto_apply_presets().
| gboolean dt_ioppr_has_multiple_instances | ( | GList * | iop_order_list | ) |
Detect whether multiple instances are grouped for a non-custom order.
Used to decide if a list follows the built-in ordering conventions.
| iop_order_list | Order list to inspect. |
Referenced by _exif_xmp_read_data(), _exif_xmp_read_data_export(), and dt_ioppr_write_iop_order().
| void dt_ioppr_insert_module_instance | ( | struct dt_develop_t * | dev, |
| struct dt_iop_module_t * | module | ||
| ) |
Ensure a module instance has an entry in dev->iop_order_list.
Inserts a new entry if missing, keeping list consistency for subsequent reordering or serialization.
| dev | Develop context. |
| module | Module instance to insert. |
References dt_iop_order_entry_t::instance, dt_iop_order_entry_t::iop_order, dt_develop_t::iop_order_list, dt_iop_order_entry_t::o, and dt_iop_order_entry_t::operation.
Referenced by dt_dev_module_duplicate().
| GList * dt_ioppr_iop_order_copy_deep | ( | GList * | iop_order_list | ) |
Deep-copy an order list.
| iop_order_list | Source list. |
References _dup_iop_order_entry().
Referenced by _hm_backup_dest(), _pop_undo(), dt_dev_history_undo_end_record_locked(), dt_dev_history_undo_start_record_locked(), dt_dev_pixelpipe_create_nodes(), dt_ioppr_change_iop_order(), and dt_ioppr_merge_multi_instance_iop_order_list().
| gboolean dt_ioppr_move_iop_after | ( | struct dt_develop_t * | dev, |
| struct dt_iop_module_t * | module, | ||
| struct dt_iop_module_t * | module_prev | ||
| ) |
Move a module instance after another module in the pipe.
Updates module ordering and related lists.
| dev | Develop context. |
| module | Module to move. |
| module_prev | Module that should precede after move. |
References dt_ioppr_get_iop_order_link(), dt_ioppr_resync_modules_order(), FALSE, dt_develop_t::iop_order_list, dt_iop_module_t::multi_priority, dt_iop_module_t::op, and TRUE.
Referenced by _gui_moveup_callback(), _on_drag_data_received(), and dt_dev_module_duplicate().
| gboolean dt_ioppr_move_iop_before | ( | struct dt_develop_t * | dev, |
| struct dt_iop_module_t * | module, | ||
| struct dt_iop_module_t * | module_next | ||
| ) |
Move a module instance before another module in the pipe.
Updates module ordering and related lists.
| dev | Develop context. |
| module | Module to move. |
| module_next | Module that should follow after move. |
References dt_ioppr_get_iop_order_link(), dt_ioppr_resync_modules_order(), FALSE, dt_develop_t::iop_order_list, dt_iop_module_t::multi_priority, dt_iop_module_t::op, and TRUE.
Referenced by _gui_movedown_callback(), and _on_drag_data_received().
| void dt_ioppr_rebuild_iop_order_from_modules | ( | struct dt_develop_t * | dev, |
| GList * | ordered_modules | ||
| ) |
Rebuild dev->iop_order_list from a list of ordered modules.
| dev | Develop context. |
| ordered_modules | Modules in the desired pipeline order. |
References dt_free_gpointer(), dt_ioppr_resync_modules_order(), dt_iop_order_entry_t::instance, dt_iop_order_entry_t::iop_order, dt_develop_t::iop_order_list, dt_iop_module_t::multi_name, dt_iop_module_t::multi_priority, dt_iop_order_entry_t::name, dt_iop_order_entry_t::o, dt_iop_module_t::op, and dt_iop_order_entry_t::operation.
Referenced by _hm_report_apply_visible_order(), and _hm_topo_apply_solution().
| void dt_ioppr_resync_modules_order | ( | struct dt_develop_t * | dev | ) |
Update dev->iop module order values from dev->iop_order_list.
This writes iop_order fields on modules to match the stored list.
| dev | Develop context. |
References _ioppr_reset_iop_order(), dt_ioppr_get_iop_order(), dt_sort_iop_by_order(), dt_develop_t::iop, dt_iop_module_t::iop_order, dt_develop_t::iop_order_list, dt_iop_module_t::multi_priority, and dt_iop_module_t::op.
Referenced by dt_imageio_export_with_flags(), dt_ioppr_move_iop_after(), dt_ioppr_move_iop_before(), dt_ioppr_rebuild_iop_order_from_modules(), dt_ioppr_resync_pipeline(), and dt_ioppr_set_default_iop_order().
| void dt_ioppr_resync_pipeline | ( | struct dt_develop_t * | dev, |
| const int32_t | imgid, | ||
| const char * | msg, | ||
| gboolean | check_duplicates | ||
| ) |
Resynchronize pipeline order and related structures.
Rebuilds ordering for modules/history and optionally checks for duplicate iop_order values.
| dev | Develop context. |
| imgid | Image id (for diagnostics). |
| msg | Optional debug message. |
| check_duplicates | Whether to validate duplicate iop_order entries. |
References dt_ioppr_check_duplicate_iop_order(), dt_ioppr_check_iop_order(), dt_ioppr_resync_iop_list(), dt_ioppr_resync_modules_order(), dt_develop_t::history, and dt_develop_t::iop.
Referenced by _styles_init_source_dev(), _styles_sync_pipeline_from_items(), dt_dev_pop_history_items_ext(), dt_dev_read_history_ext(), dt_dev_replace_history_on_image(), dt_history_merge(), and dt_styles_apply_style_item().
| void * dt_ioppr_serialize_iop_order_list | ( | GList * | iop_order_list, |
| size_t * | size | ||
| ) |
Serialize an order list into a binary blob (used for presets).
| iop_order_list | Order list to serialize. |
| size | Output size of the serialized blob. |
References size.
Referenced by get_params(), and init_presets().
| char * dt_ioppr_serialize_text_iop_order_list | ( | GList * | iop_order_list | ) |
Serialize an order list to a text representation.
| iop_order_list | Order list to serialize. |
Referenced by _dt_style_update_iop_order(), _exif_xmp_read_data(), _exif_xmp_read_data_export(), _upgrade_library_schema_step(), dt_ioppr_write_iop_order(), dt_styles_create_style_header(), dt_styles_save_to_file(), and update().
| void dt_ioppr_set_default_iop_order | ( | struct dt_develop_t * | dev, |
| const int32_t | imgid | ||
| ) |
Set dev->iop_order_list to the default order for a given image.
Uses the image type/workflow to pick an appropriate built-in list.
| dev | Develop context. |
| imgid | Image id. |
References _ioppr_reset_iop_order(), dt_free_gpointer(), dt_ioppr_get_iop_order_list(), dt_ioppr_resync_modules_order(), FALSE, and dt_develop_t::iop_order_list.
Referenced by _dev_auto_apply_presets(), _styles_init_source_dev(), dt_dev_read_history_ext(), and dt_ioppr_migrate_iop_order().
| void dt_ioppr_update_for_modules | ( | struct dt_develop_t * | dev, |
| GList * | modules, | ||
| gboolean | append | ||
| ) |
Update dev->iop_order_list with modules from a module list.
| dev | Develop context. |
| modules | List of module instances. |
| append | Whether to append new entries at the end (TRUE) or merge into list order (FALSE). |
References dt_free_gpointer(), dt_ioppr_get_iop_order(), dt_ioppr_update_for_entries(), dt_iop_order_entry_t::instance, dt_iop_module_t::iop_order, dt_develop_t::iop_order_list, dt_iop_module_t::multi_priority, n, and dt_iop_module_t::op.
| void dt_ioppr_update_for_style_items | ( | struct dt_develop_t * | dev, |
| GList * | st_items, | ||
| gboolean | append | ||
| ) |
Update dev->iop_order_list with modules referenced by style items.
| dev | Develop context. |
| st_items | Style items list. |
| append | Whether to append new entries at the end (TRUE) or merge into list order (FALSE). |
References dt_ioppr_get_iop_order(), dt_ioppr_update_for_entries(), dt_style_item_t::iop_order, dt_develop_t::iop_order_list, dt_style_item_t::multi_priority, n, and dt_style_item_t::operation.
Referenced by _apply_style_before_export(), and _styles_sync_pipeline_from_items().
| gboolean dt_ioppr_write_iop_order_list | ( | GList * | iop_order_list, |
| const int32_t | imgid | ||
| ) |
Persist an order list to the DB for a given image.
| iop_order_list | Order list to store. |
| imgid | Image id. |
References dt_ioppr_get_iop_order_list_kind(), dt_ioppr_write_iop_order(), and kind.
Referenced by _dev_auto_apply_presets(), dt_dev_write_history_ext(), and dt_exif_xmp_read().
| gint dt_sort_iop_by_order | ( | gconstpointer | a, |
| gconstpointer | b | ||
| ) |
Compare two module instances by iop_order for sorting.
| a | First module pointer. |
| b | Second module pointer. |
Referenced by _check_deleted_instances(), _create_deleted_modules(), dt_dev_history_refresh_nodes_ext(), dt_dev_load_modules(), dt_dev_module_duplicate(), and dt_ioppr_resync_modules_order().
| gint dt_sort_iop_list_by_order_f | ( | gconstpointer | a, |
| gconstpointer | b | ||
| ) |
Compare two list nodes holding modules by iop_order.
| a | GList node containing a module. |
| b | GList node containing a module. |
Referenced by _upgrade_library_schema_step(), and dt_exif_xmp_read().