Ansel 0.0
A darktable fork - bloat + design vision
Loading...
Searching...
No Matches
tagging.c File Reference
#include "common/collection.h"
#include "common/selection.h"
#include "common/darktable.h"
#include "common/debug.h"
#include "common/tags.h"
#include "control/conf.h"
#include "control/control.h"
#include "dtgtk/button.h"
#include "gui/preferences_dialogs.h"
#include "gui/gtk.h"
#include "gui/drag_and_drop.h"
#include "libs/lib.h"
#include "libs/lib_api.h"
#include "views/view.h"
#include <gdk/gdkkeysyms.h>
#include <math.h>
+ Include dependency graph for tagging.c:

Data Structures

struct  dt_lib_tagging_t
 
struct  dt_tag_op_t
 

Macros

#define FLOATING_ENTRY_WIDTH   DT_PIXEL_APPLY_DPI(150)
 
#define NEW_TOGGLE_BUTTON(paint, callback, tooltip, action)
 

Typedefs

typedef struct dt_lib_tagging_t dt_lib_tagging_t
 
typedef struct dt_tag_op_t dt_tag_op_t
 
typedef enum dt_lib_tagging_cols_t dt_lib_tagging_cols_t
 
typedef enum dt_tag_sort_id dt_tag_sort_id
 

Enumerations

enum  dt_lib_tagging_cols_t {
  DT_LIB_TAGGING_COL_TAG = 0 ,
  DT_LIB_TAGGING_COL_ID ,
  DT_LIB_TAGGING_COL_PATH ,
  DT_LIB_TAGGING_COL_SYNONYM ,
  DT_LIB_TAGGING_COL_COUNT ,
  DT_LIB_TAGGING_COL_SEL ,
  DT_LIB_TAGGING_COL_FLAGS ,
  DT_LIB_TAGGING_COL_VISIBLE ,
  DT_LIB_TAGGING_NUM_COLS
}
 
enum  dt_tag_sort_id {
  DT_TAG_SORT_PATH_ID ,
  DT_TAG_SORT_NAME_ID ,
  DT_TAG_SORT_COUNT_ID
}
 

Functions

static void _save_last_tag_used (const char *tags, dt_lib_tagging_t *d)
 
const char * name (struct dt_lib_module_t *self)
 
const char ** views (dt_lib_module_t *self)
 
uint32_t container (dt_lib_module_t *self)
 
static gboolean _is_user_tag (GtkTreeModel *model, GtkTreeIter *iter)
 
static void _unselect_all_in_view (GtkTreeView *view)
 
static void _update_atdetach_buttons (dt_lib_module_t *self)
 
static void _propagate_sel_to_parents (GtkTreeModel *model, GtkTreeIter *iter)
 
static gboolean _set_matching_tag_visibility (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, dt_lib_module_t *self)
 
static gboolean _tree_reveal_func (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, gpointer data)
 
static void _sort_attached_list (dt_lib_module_t *self, gboolean force)
 
static void _sort_dictionary_list (dt_lib_module_t *self, gboolean force)
 
static gboolean _find_tag_iter_tagname (GtkTreeModel *model, GtkTreeIter *iter, const char *tagname, const gboolean needle)
 
static void _show_iter_on_view (GtkTreeView *view, GtkTreeIter *iter, const gboolean select)
 
static void _show_tag_on_view (GtkTreeView *view, const char *tagname, const gboolean needle, const gboolean select)
 
static void _show_keyword_on_view (GtkTreeView *view, const char *keyword, const gboolean select)
 
static gboolean _select_previous_user_attached_tag (const int index, GtkTreeView *view)
 
static gboolean _select_next_user_attached_tag (const int index, GtkTreeView *view)
 
static void _init_treeview (dt_lib_module_t *self, const int which)
 
static void _tree_tagname_show (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer data, gboolean dictionary_view)
 
static void _tree_tagname_show_attached (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer data)
 
static void _tree_tagname_show_dictionary (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer data)
 
static void _tree_select_show (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer data)
 
static void _postponed_update (dt_lib_module_t *self)
 
static void _lib_tagging_redraw_callback (gpointer instance, dt_lib_module_t *self)
 
static void _lib_tagging_tags_changed_callback (gpointer instance, dt_lib_module_t *self)
 
static void _collection_updated_callback (gpointer instance, dt_collection_change_t query_change, dt_collection_properties_t changed_property, gpointer imgs, int next, dt_lib_module_t *self)
 
static void _raise_signal_tag_changed (dt_lib_module_t *self)
 
static gboolean _find_tag_iter_tagid (GtkTreeModel *model, GtkTreeIter *iter, const gint tagid)
 
static void _calculate_sel_on_path (GtkTreeModel *model, GtkTreeIter *iter, const gboolean root)
 
static void _reset_sel_on_path (GtkTreeModel *model, GtkTreeIter *iter, const gboolean root)
 
static void _reset_sel_on_path_full (GtkTreeModel *model, GtkTreeIter *iter, const gboolean root)
 
static void _find_root_iter_iter (GtkTreeModel *model, GtkTreeIter *iter, GtkTreeIter *parent)
 
static void _calculate_sel_on_tree (GtkTreeModel *model, GtkTreeIter *iter)
 
static void _update_sel_on_tree (GtkTreeModel *model)
 
static void _delete_tree_tag (GtkTreeModel *model, GtkTreeIter *iter, gboolean tree)
 
static void _delete_tree_path (GtkTreeModel *model, GtkTreeIter *iter, gboolean root, gboolean tree)
 
static void _lib_selection_changed_callback (gpointer instance, dt_lib_module_t *self)
 
static void _set_keyword (dt_lib_module_t *self)
 
static gboolean _update_tag_name_per_name (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, dt_tag_op_t *to)
 
static void _update_attached_count (const int tagid, GtkTreeView *view, const gboolean tree_flag)
 
void init_presets (dt_lib_module_t *self)
 
voidget_params (dt_lib_module_t *self, int *size)
 
int set_params (dt_lib_module_t *self, const void *params, int size)
 
static void _attach_selected_tag (dt_lib_module_t *self, dt_lib_tagging_t *d)
 
static void _detach_selected_tag (GtkTreeView *view, dt_lib_module_t *self)
 
static void _attach_button_clicked (GtkButton *button, dt_lib_module_t *self)
 
static void _detach_button_clicked (GtkButton *button, dt_lib_module_t *self)
 
static void _pop_menu_attached_attach_to_all (GtkWidget *menuitem, dt_lib_module_t *self)
 
static void _pop_menu_attached_detach (GtkWidget *menuitem, dt_lib_module_t *self)
 
static void _pop_menu_attached (GtkWidget *treeview, GdkEventButton *event, dt_lib_module_t *self)
 
static gboolean _click_on_view_attached (GtkWidget *view, GdkEventButton *event, dt_lib_module_t *self)
 
static gboolean _attached_key_pressed (GtkWidget *view, GdkEventKey *event, dt_lib_module_t *self)
 
static void _new_button_clicked (GtkButton *button, dt_lib_module_t *self)
 
static gboolean _enter_key_pressed (GtkWidget *entry, GdkEventKey *event, dt_lib_module_t *self)
 
static void _clear_entry_button_callback (GtkButton *button, dt_lib_module_t *self)
 
static void _tag_name_changed (GtkEntry *entry, dt_lib_module_t *self)
 
static void _pop_menu_dictionary_delete_tag (GtkWidget *menuitem, dt_lib_module_t *self, gboolean branch)
 
static void _pop_menu_dictionary_delete_node (GtkWidget *menuitem, dt_lib_module_t *self)
 
static void _pop_menu_dictionary_create_tag (GtkWidget *menuitem, dt_lib_module_t *self)
 
static void _pop_menu_dictionary_edit_tag (GtkWidget *menuitem, dt_lib_module_t *self)
 
static gboolean _apply_rename_path (GtkWidget *dialog, const char *tagname, const char *newtag, dt_lib_module_t *self)
 
static void _pop_menu_dictionary_change_path (GtkWidget *menuitem, dt_lib_module_t *self)
 
static void _pop_menu_dictionary_goto_tag_collection (GtkWidget *menuitem, dt_lib_module_t *self)
 
static void _pop_menu_dictionary_goto_collection_back (GtkWidget *menuitem, dt_lib_module_t *self)
 
static void _pop_menu_dictionary_copy_tag (GtkWidget *menuitem, dt_lib_module_t *self)
 
static void _pop_menu_dictionary_attach_tag (GtkWidget *menuitem, dt_lib_module_t *self)
 
static void _pop_menu_dictionary_detach_tag (GtkWidget *menuitem, dt_lib_module_t *self)
 
static void _pop_menu_dictionary_set_as_tag (GtkWidget *menuitem, dt_lib_module_t *self)
 
static void _pop_menu_dictionary (GtkWidget *treeview, GdkEventButton *event, dt_lib_module_t *self)
 
static gboolean _click_on_view_dictionary (GtkWidget *view, GdkEventButton *event, dt_lib_module_t *self)
 
static gboolean _dictionary_key_pressed (GtkWidget *view, GdkEventKey *event, dt_lib_module_t *self)
 
static gboolean _row_tooltip_setup (GtkWidget *treeview, gint x, gint y, gboolean kb_mode, GtkTooltip *tooltip, dt_lib_module_t *self)
 
static void _import_button_clicked (GtkButton *button, dt_lib_module_t *self)
 
static void _export_button_clicked (GtkButton *button, dt_lib_module_t *self)
 
static void _update_layout (dt_lib_module_t *self)
 
static void _toggle_suggestion_button_callback (GtkToggleButton *source, dt_lib_module_t *self)
 
static void _toggle_tree_button_callback (GtkToggleButton *source, dt_lib_module_t *self)
 
static gint _sort_tree_count_func (GtkTreeModel *model, GtkTreeIter *a, GtkTreeIter *b, dt_lib_module_t *self)
 
static gint _sort_tree_tag_func (GtkTreeModel *model, GtkTreeIter *a, GtkTreeIter *b, dt_lib_module_t *self)
 
static gint _sort_tree_path_func (GtkTreeModel *model, GtkTreeIter *a, GtkTreeIter *b, dt_lib_module_t *self)
 
static void _toggle_sort_button_callback (GtkToggleButton *source, dt_lib_module_t *self)
 
static void _toggle_hide_button_callback (GtkToggleButton *source, dt_lib_module_t *self)
 
static void _toggle_dttags_button_callback (GtkToggleButton *source, dt_lib_module_t *self)
 
void gui_reset (dt_lib_module_t *self)
 
int position ()
 
static void _tree_selection_changed (GtkTreeSelection *treeselection, gpointer data)
 
static void _dnd_clear_root (dt_lib_module_t *self)
 
static void _event_dnd_begin (GtkWidget *widget, GdkDragContext *context, dt_lib_module_t *self)
 
static void _event_dnd_get (GtkWidget *widget, GdkDragContext *context, GtkSelectionData *selection_data, const guint target_type, const guint time, dt_lib_module_t *self)
 
static void _event_dnd_received (GtkWidget *widget, GdkDragContext *context, gint x, gint y, GtkSelectionData *selection_data, guint target_type, guint time, dt_lib_module_t *self)
 
static gboolean _dnd_expand_timeout (dt_lib_module_t *self)
 
static gboolean _dnd_scroll_timeout (dt_lib_module_t *self)
 
static gboolean _event_dnd_motion (GtkWidget *widget, GdkDragContext *context, gint x, gint y, guint time, dt_lib_module_t *self)
 
static void _event_dnd_end (GtkWidget *widget, GdkDragContext *context, dt_lib_module_t *self)
 
void gui_init (dt_lib_module_t *self)
 
void gui_cleanup (dt_lib_module_t *self)
 
static int _get_recent_tags_list_length ()
 
static void _size_recent_tags_list ()
 
void _menuitem_preferences (GtkMenuItem *menuitem, dt_lib_module_t *self)
 
void set_preferences (void *menu, dt_lib_module_t *self)
 

Macro Definition Documentation

◆ FLOATING_ENTRY_WIDTH

#define FLOATING_ENTRY_WIDTH   DT_PIXEL_APPLY_DPI(150)

◆ NEW_TOGGLE_BUTTON

#define NEW_TOGGLE_BUTTON (   paint,
  callback,
  tooltip,
  action 
)
Value:
button = dtgtk_togglebutton_new(paint, 0, NULL); \
gtk_widget_set_tooltip_text(button, tooltip); \
gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, TRUE, 0); \
g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(callback), self); \
#define TRUE
Definition ashift_lsd.c:151
#define FALSE
Definition ashift_lsd.c:147
const char * tooltip
Definition common/image.h:163
GtkWidget * dtgtk_togglebutton_new(DTGTKCairoPaintIconFunc paint, gint paintflags, void *paintdata)
Definition togglebutton.c:133

Typedef Documentation

◆ dt_lib_tagging_cols_t

◆ dt_lib_tagging_t

◆ dt_tag_op_t

typedef struct dt_tag_op_t dt_tag_op_t

◆ dt_tag_sort_id

Enumeration Type Documentation

◆ dt_lib_tagging_cols_t

Enumerator
DT_LIB_TAGGING_COL_TAG 
DT_LIB_TAGGING_COL_ID 
DT_LIB_TAGGING_COL_PATH 
DT_LIB_TAGGING_COL_SYNONYM 
DT_LIB_TAGGING_COL_COUNT 
DT_LIB_TAGGING_COL_SEL 
DT_LIB_TAGGING_COL_FLAGS 
DT_LIB_TAGGING_COL_VISIBLE 
DT_LIB_TAGGING_NUM_COLS 

◆ dt_tag_sort_id

Enumerator
DT_TAG_SORT_PATH_ID 
DT_TAG_SORT_NAME_ID 
DT_TAG_SORT_COUNT_ID 

Function Documentation

◆ _apply_rename_path()

◆ _attach_button_clicked()

static void _attach_button_clicked ( GtkButton *  button,
dt_lib_module_t self 
)
static

References _attach_selected_tag(), and dt_lib_module_t::data.

Referenced by gui_init().

◆ _attach_selected_tag()

◆ _attached_key_pressed()

static gboolean _attached_key_pressed ( GtkWidget *  view,
GdkEventKey *  event,
dt_lib_module_t self 
)
static

◆ _calculate_sel_on_path()

static void _calculate_sel_on_path ( GtkTreeModel *  model,
GtkTreeIter *  iter,
const gboolean  root 
)
static

◆ _calculate_sel_on_tree()

static void _calculate_sel_on_tree ( GtkTreeModel *  model,
GtkTreeIter *  iter 
)
static

◆ _clear_entry_button_callback()

static void _clear_entry_button_callback ( GtkButton *  button,
dt_lib_module_t self 
)
static

clear input box

References dt_lib_module_t::data, and dt_lib_tagging_t::entry.

Referenced by gui_init().

◆ _click_on_view_attached()

static gboolean _click_on_view_attached ( GtkWidget *  view,
GdkEventButton *  event,
dt_lib_module_t self 
)
static

◆ _click_on_view_dictionary()

◆ _collection_updated_callback()

static void _collection_updated_callback ( gpointer  instance,
dt_collection_change_t  query_change,
dt_collection_properties_t  changed_property,
gpointer  imgs,
int  next,
dt_lib_module_t self 
)
static

◆ _delete_tree_path()

static void _delete_tree_path ( GtkTreeModel *  model,
GtkTreeIter *  iter,
gboolean  root,
gboolean  tree 
)
static

◆ _delete_tree_tag()

static void _delete_tree_tag ( GtkTreeModel *  model,
GtkTreeIter *  iter,
gboolean  tree 
)
static

◆ _detach_button_clicked()

static void _detach_button_clicked ( GtkButton *  button,
dt_lib_module_t self 
)
static

◆ _detach_selected_tag()

◆ _dictionary_key_pressed()

static gboolean _dictionary_key_pressed ( GtkWidget *  view,
GdkEventKey *  event,
dt_lib_module_t self 
)
static

◆ _dnd_clear_root()

◆ _dnd_expand_timeout()

static gboolean _dnd_expand_timeout ( dt_lib_module_t self)
static

◆ _dnd_scroll_timeout()

◆ _enter_key_pressed()

◆ _event_dnd_begin()

static void _event_dnd_begin ( GtkWidget *  widget,
GdkDragContext *  context,
dt_lib_module_t self 
)
static
Todo:
: try to put the anchor point on left bottom corner as for images

References dt_lib_module_t::data, dt_lib_tagging_t::drag, dt_lib_tagging_t::path, dt_lib_tagging_t::tag_source, and TRUE.

Referenced by gui_init().

◆ _event_dnd_end()

static void _event_dnd_end ( GtkWidget *  widget,
GdkDragContext *  context,
dt_lib_module_t self 
)
static

◆ _event_dnd_get()

static void _event_dnd_get ( GtkWidget *  widget,
GdkDragContext *  context,
GtkSelectionData *  selection_data,
const guint  target_type,
const guint  time,
dt_lib_module_t self 
)
static

References _DWORD, and DND_TARGET_TAG.

Referenced by gui_init().

◆ _event_dnd_motion()

static gboolean _event_dnd_motion ( GtkWidget *  widget,
GdkDragContext *  context,
gint  x,
gint  y,
guint  time,
dt_lib_module_t self 
)
static

◆ _event_dnd_received()

◆ _export_button_clicked()

static void _export_button_clicked ( GtkButton *  button,
dt_lib_module_t self 
)
static

◆ _find_root_iter_iter()

static void _find_root_iter_iter ( GtkTreeModel *  model,
GtkTreeIter *  iter,
GtkTreeIter *  parent 
)
static

◆ _find_tag_iter_tagid()

static gboolean _find_tag_iter_tagid ( GtkTreeModel *  model,
GtkTreeIter *  iter,
const gint  tagid 
)
static

◆ _find_tag_iter_tagname()

static gboolean _find_tag_iter_tagname ( GtkTreeModel *  model,
GtkTreeIter *  iter,
const char *  tagname,
const gboolean  needle 
)
static

◆ _get_recent_tags_list_length()

static int _get_recent_tags_list_length ( )
static

◆ _import_button_clicked()

static void _import_button_clicked ( GtkButton *  button,
dt_lib_module_t self 
)
static

◆ _init_treeview()

static void _init_treeview ( dt_lib_module_t self,
const int  which 
)
static

References _propagate_sel_to_parents(), _set_matching_tag_visibility(), _sort_attached_list(), _sort_dictionary_list(), _tree_reveal_func(), dt_lib_tagging_t::attached_view, darktable, dt_lib_module_t::data, dt_lib_tagging_t::dictionary_liststore, dt_lib_tagging_t::dictionary_treestore, dt_lib_tagging_t::dictionary_view, dt_control_get_mouse_over_id(), DT_LIB_TAGGING_COL_COUNT, DT_LIB_TAGGING_COL_FLAGS, DT_LIB_TAGGING_COL_ID, DT_LIB_TAGGING_COL_PATH, DT_LIB_TAGGING_COL_SEL, DT_LIB_TAGGING_COL_SYNONYM, DT_LIB_TAGGING_COL_TAG, DT_LIB_TAGGING_COL_VISIBLE, dt_selection_get_length(), dt_sort_tag(), dt_tag_free_result(), dt_tag_get_attached(), dt_tag_get_suggestions(), dt_tag_get_with_usage(), DT_TS_NO_IMAGE, dt_util_dstrcat(), dt_lib_tagging_t::dttags_flag, FALSE, dt_lib_tagging_t::keyword, model, darktable_t::selection, store(), dt_lib_tagging_t::suggestion_flag, dt_lib_tagging_t::tree_flag, TRUE, and view().

Referenced by _apply_rename_path(), _attach_selected_tag(), _detach_selected_tag(), _event_dnd_received(), _import_button_clicked(), _lib_selection_changed_callback(), _lib_tagging_tags_changed_callback(), _menuitem_preferences(), _new_button_clicked(), _pop_menu_attached_attach_to_all(), _pop_menu_dictionary_create_tag(), _pop_menu_dictionary_delete_node(), _pop_menu_dictionary_delete_tag(), _pop_menu_dictionary_edit_tag(), _pop_menu_dictionary_set_as_tag(), _postponed_update(), _toggle_dttags_button_callback(), _toggle_suggestion_button_callback(), _toggle_tree_button_callback(), gui_init(), gui_reset(), and set_params().

◆ _is_user_tag()

static gboolean _is_user_tag ( GtkTreeModel *  model,
GtkTreeIter *  iter 
)
static

◆ _lib_selection_changed_callback()

◆ _lib_tagging_redraw_callback()

static void _lib_tagging_redraw_callback ( gpointer  instance,
dt_lib_module_t self 
)
static

◆ _lib_tagging_tags_changed_callback()

static void _lib_tagging_tags_changed_callback ( gpointer  instance,
dt_lib_module_t self 
)
static

◆ _menuitem_preferences()

◆ _new_button_clicked()

◆ _pop_menu_attached()

static void _pop_menu_attached ( GtkWidget *  treeview,
GdkEventButton *  event,
dt_lib_module_t self 
)
static

◆ _pop_menu_attached_attach_to_all()

◆ _pop_menu_attached_detach()

static void _pop_menu_attached_detach ( GtkWidget *  menuitem,
dt_lib_module_t self 
)
static

◆ _pop_menu_dictionary()

◆ _pop_menu_dictionary_attach_tag()

static void _pop_menu_dictionary_attach_tag ( GtkWidget *  menuitem,
dt_lib_module_t self 
)
static

◆ _pop_menu_dictionary_change_path()

◆ _pop_menu_dictionary_copy_tag()

static void _pop_menu_dictionary_copy_tag ( GtkWidget *  menuitem,
dt_lib_module_t self 
)
static

◆ _pop_menu_dictionary_create_tag()

◆ _pop_menu_dictionary_delete_node()

◆ _pop_menu_dictionary_delete_tag()

◆ _pop_menu_dictionary_detach_tag()

static void _pop_menu_dictionary_detach_tag ( GtkWidget *  menuitem,
dt_lib_module_t self 
)
static

◆ _pop_menu_dictionary_edit_tag()

◆ _pop_menu_dictionary_goto_collection_back()

◆ _pop_menu_dictionary_goto_tag_collection()

◆ _pop_menu_dictionary_set_as_tag()

static void _pop_menu_dictionary_set_as_tag ( GtkWidget *  menuitem,
dt_lib_module_t self 
)
static

◆ _postponed_update()

static void _postponed_update ( dt_lib_module_t self)
static

◆ _propagate_sel_to_parents()

static void _propagate_sel_to_parents ( GtkTreeModel *  model,
GtkTreeIter *  iter 
)
static

◆ _raise_signal_tag_changed()

◆ _reset_sel_on_path()

static void _reset_sel_on_path ( GtkTreeModel *  model,
GtkTreeIter *  iter,
const gboolean  root 
)
static

◆ _reset_sel_on_path_full()

static void _reset_sel_on_path_full ( GtkTreeModel *  model,
GtkTreeIter *  iter,
const gboolean  root 
)
static

◆ _row_tooltip_setup()

static gboolean _row_tooltip_setup ( GtkWidget *  treeview,
gint  x,
gint  y,
gboolean  kb_mode,
GtkTooltip *  tooltip,
dt_lib_module_t self 
)
static

◆ _save_last_tag_used()

◆ _select_next_user_attached_tag()

static gboolean _select_next_user_attached_tag ( const int  index,
GtkTreeView *  view 
)
static

◆ _select_previous_user_attached_tag()

static gboolean _select_previous_user_attached_tag ( const int  index,
GtkTreeView *  view 
)
static

◆ _set_keyword()

static void _set_keyword ( dt_lib_module_t self)
static

◆ _set_matching_tag_visibility()

static gboolean _set_matching_tag_visibility ( GtkTreeModel *  model,
GtkTreePath *  path,
GtkTreeIter *  iter,
dt_lib_module_t self 
)
static

◆ _show_iter_on_view()

static void _show_iter_on_view ( GtkTreeView *  view,
GtkTreeIter *  iter,
const gboolean  select 
)
static

◆ _show_keyword_on_view()

static void _show_keyword_on_view ( GtkTreeView *  view,
const char *  keyword,
const gboolean  select 
)
static

◆ _show_tag_on_view()

static void _show_tag_on_view ( GtkTreeView *  view,
const char *  tagname,
const gboolean  needle,
const gboolean  select 
)
static

◆ _size_recent_tags_list()

static void _size_recent_tags_list ( )
static

◆ _sort_attached_list()

◆ _sort_dictionary_list()

◆ _sort_tree_count_func()

static gint _sort_tree_count_func ( GtkTreeModel *  model,
GtkTreeIter *  a,
GtkTreeIter *  b,
dt_lib_module_t self 
)
static

References DT_LIB_TAGGING_COL_COUNT, and model.

Referenced by gui_init().

◆ _sort_tree_path_func()

static gint _sort_tree_path_func ( GtkTreeModel *  model,
GtkTreeIter *  a,
GtkTreeIter *  b,
dt_lib_module_t self 
)
static

References DT_LIB_TAGGING_COL_PATH, and model.

Referenced by gui_init().

◆ _sort_tree_tag_func()

static gint _sort_tree_tag_func ( GtkTreeModel *  model,
GtkTreeIter *  a,
GtkTreeIter *  b,
dt_lib_module_t self 
)
static

References DT_LIB_TAGGING_COL_TAG, and model.

Referenced by gui_init().

◆ _tag_name_changed()

◆ _toggle_dttags_button_callback()

◆ _toggle_hide_button_callback()

static void _toggle_hide_button_callback ( GtkToggleButton *  source,
dt_lib_module_t self 
)
static

◆ _toggle_sort_button_callback()

static void _toggle_sort_button_callback ( GtkToggleButton *  source,
dt_lib_module_t self 
)
static

◆ _toggle_suggestion_button_callback()

static void _toggle_suggestion_button_callback ( GtkToggleButton *  source,
dt_lib_module_t self 
)
static

◆ _toggle_tree_button_callback()

static void _toggle_tree_button_callback ( GtkToggleButton *  source,
dt_lib_module_t self 
)
static

◆ _tree_reveal_func()

static gboolean _tree_reveal_func ( GtkTreeModel *  model,
GtkTreePath *  path,
GtkTreeIter *  iter,
gpointer  data 
)
static

◆ _tree_select_show()

static void _tree_select_show ( GtkTreeViewColumn *  col,
GtkCellRenderer *  renderer,
GtkTreeModel *  model,
GtkTreeIter *  iter,
gpointer  data 
)
static

◆ _tree_selection_changed()

static void _tree_selection_changed ( GtkTreeSelection *  treeselection,
gpointer  data 
)
static

References _update_atdetach_buttons().

Referenced by gui_init().

◆ _tree_tagname_show()

static void _tree_tagname_show ( GtkTreeViewColumn *  col,
GtkCellRenderer *  renderer,
GtkTreeModel *  model,
GtkTreeIter *  iter,
gpointer  data,
gboolean  dictionary_view 
)
static

◆ _tree_tagname_show_attached()

static void _tree_tagname_show_attached ( GtkTreeViewColumn *  col,
GtkCellRenderer *  renderer,
GtkTreeModel *  model,
GtkTreeIter *  iter,
gpointer  data 
)
static

References _tree_tagname_show(), and model.

Referenced by gui_init().

◆ _tree_tagname_show_dictionary()

static void _tree_tagname_show_dictionary ( GtkTreeViewColumn *  col,
GtkCellRenderer *  renderer,
GtkTreeModel *  model,
GtkTreeIter *  iter,
gpointer  data 
)
static

References _tree_tagname_show(), and model.

Referenced by gui_init().

◆ _unselect_all_in_view()

static void _unselect_all_in_view ( GtkTreeView *  view)
static

◆ _update_atdetach_buttons()

◆ _update_attached_count()

static void _update_attached_count ( const int  tagid,
GtkTreeView *  view,
const gboolean  tree_flag 
)
static

◆ _update_layout()

◆ _update_sel_on_tree()

◆ _update_tag_name_per_name()

static gboolean _update_tag_name_per_name ( GtkTreeModel *  model,
GtkTreePath *  path,
GtkTreeIter *  iter,
dt_tag_op_t to 
)
static

◆ container()

uint32_t container ( dt_lib_module_t self)

◆ get_params()

void * get_params ( dt_lib_module_t self,
int *  size 
)

◆ gui_cleanup()

◆ gui_init()

void gui_init ( dt_lib_module_t self)

References _attach_button_clicked(), _attached_key_pressed(), _clear_entry_button_callback(), _click_on_view_attached(), _click_on_view_dictionary(), _collection_updated_callback(), _detach_button_clicked(), _dictionary_key_pressed(), _enter_key_pressed(), _event_dnd_begin(), _event_dnd_end(), _event_dnd_get(), _event_dnd_motion(), _event_dnd_received(), _export_button_clicked(), _import_button_clicked(), _init_treeview(), _lib_selection_changed_callback(), _lib_tagging_redraw_callback(), _lib_tagging_tags_changed_callback(), _new_button_clicked(), _row_tooltip_setup(), _set_keyword(), _sort_tree_count_func(), _sort_tree_path_func(), _sort_tree_tag_func(), _tag_name_changed(), _toggle_dttags_button_callback(), _toggle_hide_button_callback(), _toggle_sort_button_callback(), _toggle_suggestion_button_callback(), _toggle_tree_button_callback(), _tree_select_show(), _tree_selection_changed(), _tree_tagname_show_attached(), _tree_tagname_show_dictionary(), _update_atdetach_buttons(), _update_layout(), dt_lib_tagging_t::attach_button, dt_lib_tagging_t::attached_liststore, dt_lib_tagging_t::attached_view, dt_lib_tagging_t::clear_button, dt_lib_tagging_t::collection, darktable, dt_lib_module_t::data, dt_lib_tagging_t::detach_button, dt_lib_tagging_t::dictionary_listfilter, dt_lib_tagging_t::dictionary_liststore, dt_lib_tagging_t::dictionary_treefilter, dt_lib_tagging_t::dictionary_treestore, dt_lib_tagging_t::dictionary_view, dt_lib_tagging_t::drag, dt_accels_disconnect_on_text_input(), dt_action_button_new(), DT_DEBUG_CONTROL_SIGNAL_CONNECT, DT_LIB_TAGGING_COL_VISIBLE, DT_LIB_TAGGING_NUM_COLS, DT_SIGNAL_COLLECTION_CHANGED, DT_SIGNAL_MOUSE_OVER_IMAGE_CHANGE, DT_SIGNAL_SELECTION_CHANGED, DT_SIGNAL_TAG_CHANGED, DT_TAG_SORT_COUNT_ID, DT_TAG_SORT_NAME_ID, DT_TAG_SORT_PATH_ID, dt_ui_scroll_wrap(), dtgtk_button_new(), dtgtk_cairo_paint_check_mark(), dtgtk_cairo_paint_minus_simple(), dtgtk_cairo_paint_multiply_small(), dtgtk_cairo_paint_plus_simple(), dtgtk_cairo_paint_sorting(), dtgtk_cairo_paint_treelist(), dt_lib_tagging_t::dttags_flag, dt_lib_tagging_t::entry, dt_lib_tagging_t::expand_timeout, dt_lib_tagging_t::export_button, FALSE, dt_lib_tagging_t::import_button, dt_lib_tagging_t::last_tag, model, n_targets_tags_dest, dt_lib_tagging_t::new_button, NEW_TOGGLE_BUTTON, dt_lib_tagging_t::path, dt_lib_tagging_t::root, dt_lib_tagging_t::scroll_timeout, darktable_t::signals, dt_lib_tagging_t::tag_source, dt_lib_tagging_t::tagname, target_list_tags_dest, dt_lib_module_t::timeout_handle, dt_lib_tagging_t::toggle_dttags_button, dt_lib_tagging_t::toggle_hide_button, dt_lib_tagging_t::toggle_sort_button, dt_lib_tagging_t::toggle_suggestion_button, dt_lib_tagging_t::toggle_tree_button, TRUE, view(), and dt_lib_module_t::widget.

◆ gui_reset()

◆ init_presets()

void init_presets ( dt_lib_module_t self)

◆ name()

const char * name ( struct dt_lib_module_t self)

◆ position()

int position ( )

◆ set_params()

◆ set_preferences()

void set_preferences ( void menu,
dt_lib_module_t self 
)

◆ views()

const char ** views ( dt_lib_module_t self)