static void simple_filter_search_keyrelease_handler (GtkEntry *entry, PraghaFilterDialog *fdialog) { const gchar *text = NULL; gchar *u_str = NULL; gboolean has_text; if (fdialog->filter_string != NULL) { g_free (fdialog->filter_string); fdialog->filter_string = NULL; } has_text = gtk_entry_get_text_length (GTK_ENTRY(entry)) > 0; if (has_text) { text = gtk_entry_get_text (entry); u_str = g_utf8_strdown (text, -1); fdialog->filter_string = u_str; } if (!pragha_preferences_get_instant_search(fdialog->preferences)) return; queue_filter_dialog_refilter(fdialog); }
static gboolean simple_filter_search_keyrelease_handler(GtkEntry *entry, PraghaFilterDialog *fdialog) { gchar *text = NULL; gchar *u_str = NULL; gboolean has_text; if (fdialog->filter_string != NULL) { g_free (fdialog->filter_string); fdialog->filter_string = NULL; } has_text = gtk_entry_get_text_length (GTK_ENTRY(entry)) > 0; if (has_text) { text = gtk_editable_get_chars (GTK_EDITABLE(entry), 0, -1); u_str = g_utf8_strdown (text, -1); fdialog->filter_string = u_str; } gtk_entry_set_icon_sensitive (GTK_ENTRY(entry), GTK_ENTRY_ICON_SECONDARY, has_text); if (!pragha_preferences_get_instant_search(fdialog->preferences)) return FALSE; queue_filter_dialog_refilter(fdialog); return FALSE; }
void pragha_search_bar_icon_pressed_cb (GtkEntry *entry, gint position, GdkEventButton *event, PraghaPreferences *preferences) { if (position == GTK_ENTRY_ICON_SECONDARY) { gtk_entry_set_text (entry, ""); gtk_widget_grab_focus(GTK_WIDGET(entry)); if (!pragha_preferences_get_instant_search(preferences)) g_signal_emit_by_name(G_OBJECT(entry), "activate"); } else { seach_entry_populate_popup(entry, preferences); } }
static void seach_entry_populate_popup (GtkEntry *entry, PraghaPreferences *preferences) { GtkWidget *popup_menu, *item; gboolean instant_search, approximate_search; popup_menu = gtk_menu_new (); /* Instant search. */ item = gtk_check_menu_item_new_with_label (_("Refine the search while writing")); gtk_menu_shell_append (GTK_MENU_SHELL (popup_menu), item); instant_search = pragha_preferences_get_instant_search(preferences); gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(item), instant_search); g_signal_connect (G_OBJECT (item), "toggled", G_CALLBACK (search_entry_instant_option_toggled), preferences); gtk_widget_show (item); /* Aproximate search. */ item = gtk_check_menu_item_new_with_label (_("Search approximate words")); gtk_menu_shell_append (GTK_MENU_SHELL (popup_menu), item); approximate_search = pragha_preferences_get_approximate_search(preferences); gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(item), approximate_search); g_signal_connect (G_OBJECT (item), "toggled", G_CALLBACK (search_entry_approximate_option_toggled), preferences); gtk_widget_show (item); gtk_menu_attach_to_widget(GTK_MENU(popup_menu), GTK_WIDGET(entry), NULL); gtk_menu_popup(GTK_MENU(popup_menu), NULL, NULL, (GtkMenuPositionFunc) menu_position, entry, 0, gtk_get_current_event_time()); }
static void pragha_preferences_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { PraghaPreferences *preferences = PRAGHA_PREFERENCES(object); switch (prop_id) { case PROP_INSTANT_SEARCH: g_value_set_boolean (value, pragha_preferences_get_instant_search(preferences)); break; case PROP_APPROXIMATE_SEARCH: g_value_set_boolean (value, pragha_preferences_get_instant_search(preferences)); break; case PROP_LIBRARY_STYLE: g_value_set_int (value, pragha_preferences_get_library_style(preferences)); break; case PROP_LIBRARY_SORT_BY_YEAR: g_value_set_boolean (value, pragha_preferences_get_sort_by_year(preferences)); break; case PROP_LIBRARY_FUSE_FOLDERS: g_value_set_boolean (value, pragha_preferences_get_fuse_folders(preferences)); break; case PROP_SHUFFLE: g_value_set_boolean (value, pragha_preferences_get_shuffle(preferences)); break; case PROP_REPEAT: g_value_set_boolean (value, pragha_preferences_get_repeat(preferences)); break; case PROP_USE_HINT: g_value_set_boolean (value, pragha_preferences_get_use_hint(preferences)); break; case PROP_RESTORE_PLAYLIST: g_value_set_boolean (value, pragha_preferences_get_restore_playlist(preferences)); break; case PROP_AUDIO_SINK: g_value_set_string (value, pragha_preferences_get_audio_sink(preferences)); break; case PROP_AUDIO_DEVICE: g_value_set_string (value, pragha_preferences_get_audio_device(preferences)); break; case PROP_SOFTWARE_MIXER: g_value_set_boolean (value, pragha_preferences_get_software_mixer(preferences)); break; case PROP_AUDIO_CD_DEVICE: g_value_set_string (value, pragha_preferences_get_audio_cd_device(preferences)); break; case PROP_LATERAL_PANEL: g_value_set_boolean (value, pragha_preferences_get_lateral_panel(preferences)); break; case PROP_SIDEBAR_SIZE: g_value_set_int (value, pragha_preferences_get_sidebar_size(preferences)); break; case PROP_SHOW_ALBUM_ART: g_value_set_boolean (value, pragha_preferences_get_show_album_art(preferences)); break; case PROP_SHOW_STATUS_BAR: g_value_set_boolean (value, pragha_preferences_get_show_status_bar(preferences)); break; case PROP_ADD_RECURSIVELY: g_value_set_boolean (value, pragha_preferences_get_add_recursively(preferences)); break; case PROP_TIMER_REMAINING_MODE: g_value_set_boolean (value, pragha_preferences_get_timer_remaining_mode(preferences)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); } }