mirror of https://github.com/GNOME/gimp.git
app: some cleanup in GimpSearchPopup
This commit is contained in:
parent
53f34ebc0b
commit
a5868e1f13
|
@ -39,6 +39,7 @@
|
|||
|
||||
#include "gimp-intl.h"
|
||||
|
||||
|
||||
enum
|
||||
{
|
||||
COLUMN_ICON,
|
||||
|
@ -58,7 +59,6 @@ enum
|
|||
PROP_CALLBACK_DATA
|
||||
};
|
||||
|
||||
static gint window_height = 0;
|
||||
|
||||
struct _GimpSearchPopupPrivate
|
||||
{
|
||||
|
@ -71,7 +71,7 @@ struct _GimpSearchPopupPrivate
|
|||
gpointer build_results_data;
|
||||
};
|
||||
|
||||
/* GObject handlers */
|
||||
|
||||
static void gimp_search_popup_constructed (GObject *object);
|
||||
static void gimp_search_popup_set_property (GObject *object,
|
||||
guint property_id,
|
||||
|
@ -82,27 +82,28 @@ static void gimp_search_popup_get_property (GObject *obj
|
|||
GValue *value,
|
||||
GParamSpec *pspec);
|
||||
|
||||
/* GtkWidget handlers */
|
||||
static void gimp_search_popup_size_allocate (GtkWidget *widget,
|
||||
GtkAllocation *allocation);
|
||||
/* GimpPopup handlers */
|
||||
|
||||
static void gimp_search_popup_confirm (GimpPopup *popup);
|
||||
|
||||
/* Signal handlers on the search entry */
|
||||
static gboolean keyword_entry_on_key_press_event (GtkWidget *widget,
|
||||
static gboolean keyword_entry_key_press_event (GtkWidget *widget,
|
||||
GdkEventKey *event,
|
||||
GimpSearchPopup *popup);
|
||||
static gboolean keyword_entry_on_key_release_event (GtkWidget *widget,
|
||||
static gboolean keyword_entry_key_release_event (GtkWidget *widget,
|
||||
GdkEventKey *event,
|
||||
GimpSearchPopup *popup);
|
||||
|
||||
/* Signal handlers on the results list */
|
||||
static gboolean results_list_on_key_press_event (GtkWidget *widget,
|
||||
static gboolean results_list_key_press_event (GtkWidget *widget,
|
||||
GdkEventKey *kevent,
|
||||
GimpSearchPopup *popup);
|
||||
static void results_list_on_row_activated (GtkTreeView *treeview,
|
||||
static void results_list_row_activated (GtkTreeView *treeview,
|
||||
GtkTreePath *path,
|
||||
GtkTreeViewColumn *col,
|
||||
GimpSearchPopup *popup);
|
||||
|
||||
/* Utils */
|
||||
static void gimp_search_popup_run_selected (GimpSearchPopup *popup);
|
||||
static void gimp_search_popup_setup_results (GtkWidget **results_list,
|
||||
|
@ -118,6 +119,9 @@ G_DEFINE_TYPE (GimpSearchPopup, gimp_search_popup, GIMP_TYPE_POPUP)
|
|||
|
||||
#define parent_class gimp_search_popup_parent_class
|
||||
|
||||
static gint window_height = 0;
|
||||
|
||||
|
||||
static void
|
||||
gimp_search_popup_class_init (GimpSearchPopupClass *klass)
|
||||
{
|
||||
|
@ -265,7 +269,7 @@ gimp_search_popup_add_result (GimpSearchPopup *popup,
|
|||
}
|
||||
|
||||
accel_string = gimp_search_popup_find_accel_label (action);
|
||||
if (accel_string != NULL)
|
||||
if (accel_string)
|
||||
{
|
||||
escaped_accel = g_markup_escape_text (accel_string, -1);
|
||||
has_shortcut = TRUE;
|
||||
|
@ -367,17 +371,17 @@ gimp_search_popup_constructed (GObject *object)
|
|||
GDK_SCROLL_MASK);
|
||||
|
||||
g_signal_connect (popup->priv->keyword_entry, "key-press-event",
|
||||
G_CALLBACK (keyword_entry_on_key_press_event),
|
||||
G_CALLBACK (keyword_entry_key_press_event),
|
||||
popup);
|
||||
g_signal_connect (popup->priv->keyword_entry, "key-release-event",
|
||||
G_CALLBACK (keyword_entry_on_key_release_event),
|
||||
G_CALLBACK (keyword_entry_key_release_event),
|
||||
popup);
|
||||
|
||||
g_signal_connect (popup->priv->results_list, "key-press-event",
|
||||
G_CALLBACK (results_list_on_key_press_event),
|
||||
G_CALLBACK (results_list_key_press_event),
|
||||
popup);
|
||||
g_signal_connect (popup->priv->results_list, "row-activated",
|
||||
G_CALLBACK (results_list_on_row_activated),
|
||||
G_CALLBACK (results_list_row_activated),
|
||||
popup);
|
||||
|
||||
/* Default size of the search popup showing the result list is half
|
||||
|
@ -438,22 +442,22 @@ gimp_search_popup_get_property (GObject *object,
|
|||
}
|
||||
}
|
||||
|
||||
void
|
||||
static void
|
||||
gimp_search_popup_size_allocate (GtkWidget *widget,
|
||||
GtkAllocation *allocation)
|
||||
{
|
||||
GimpSearchPopup *popup = GIMP_SEARCH_POPUP (widget);
|
||||
|
||||
GTK_WIDGET_CLASS (parent_class)->size_allocate (widget,
|
||||
allocation);
|
||||
GTK_WIDGET_CLASS (parent_class)->size_allocate (widget, allocation);
|
||||
|
||||
if (gtk_widget_get_visible (widget) &&
|
||||
gtk_widget_get_visible (popup->priv->list_view))
|
||||
{
|
||||
GdkScreen *screen = gdk_screen_get_default ();
|
||||
|
||||
/* I save the window height when results are shown so that resizes
|
||||
* by the user are saved accross searches. */
|
||||
/* Save the window height when results are shown so that resizes
|
||||
* by the user are saved accross searches.
|
||||
*/
|
||||
window_height = MAX (gdk_screen_get_height (screen) / 4,
|
||||
allocation->height);
|
||||
}
|
||||
|
@ -468,7 +472,7 @@ gimp_search_popup_confirm (GimpPopup *popup)
|
|||
}
|
||||
|
||||
static gboolean
|
||||
keyword_entry_on_key_press_event (GtkWidget *widget,
|
||||
keyword_entry_key_press_event (GtkWidget *widget,
|
||||
GdkEventKey *event,
|
||||
GimpSearchPopup *popup)
|
||||
{
|
||||
|
@ -492,7 +496,7 @@ keyword_entry_on_key_press_event (GtkWidget *widget,
|
|||
}
|
||||
|
||||
static gboolean
|
||||
keyword_entry_on_key_release_event (GtkWidget *widget,
|
||||
keyword_entry_key_release_event (GtkWidget *widget,
|
||||
GdkEventKey *event,
|
||||
GimpSearchPopup *popup)
|
||||
{
|
||||
|
@ -563,7 +567,7 @@ keyword_entry_on_key_release_event (GtkWidget *widget,
|
|||
}
|
||||
|
||||
static gboolean
|
||||
results_list_on_key_press_event (GtkWidget *widget,
|
||||
results_list_key_press_event (GtkWidget *widget,
|
||||
GdkEventKey *kevent,
|
||||
GimpSearchPopup *popup)
|
||||
{
|
||||
|
@ -632,7 +636,7 @@ results_list_on_key_press_event (GtkWidget *widget,
|
|||
}
|
||||
|
||||
static void
|
||||
results_list_on_row_activated (GtkTreeView *treeview,
|
||||
results_list_row_activated (GtkTreeView *treeview,
|
||||
GtkTreePath *path,
|
||||
GtkTreeViewColumn *col,
|
||||
GimpSearchPopup *popup)
|
||||
|
@ -659,6 +663,7 @@ gimp_search_popup_run_selected (GimpSearchPopup *popup)
|
|||
if (gtk_action_is_sensitive (action))
|
||||
{
|
||||
gtk_action_activate (action);
|
||||
|
||||
/* Close the search popup on activation. */
|
||||
GIMP_POPUP_CLASS (parent_class)->cancel (GIMP_POPUP (popup));
|
||||
}
|
||||
|
@ -676,7 +681,7 @@ gimp_search_popup_setup_results (GtkWidget **results_list,
|
|||
GtkCellRenderer *cell;
|
||||
GtkTreeViewColumn *column;
|
||||
|
||||
*list_view = GTK_WIDGET (gtk_scrolled_window_new (NULL, NULL));
|
||||
*list_view = gtk_scrolled_window_new (NULL, NULL);
|
||||
store = gtk_list_store_new (N_COL,
|
||||
G_TYPE_STRING,
|
||||
G_TYPE_STRING,
|
||||
|
@ -684,7 +689,7 @@ gimp_search_popup_setup_results (GtkWidget **results_list,
|
|||
GTK_TYPE_ACTION,
|
||||
G_TYPE_BOOLEAN,
|
||||
G_TYPE_INT);
|
||||
*results_list = GTK_WIDGET (gtk_tree_view_new_with_model (GTK_TREE_MODEL (store)));
|
||||
*results_list = gtk_tree_view_new_with_model (GTK_TREE_MODEL (store));
|
||||
gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (*results_list), FALSE);
|
||||
#ifdef GIMP_UNSTABLE
|
||||
gtk_tree_view_set_tooltip_column (GTK_TREE_VIEW (*results_list),
|
||||
|
@ -749,7 +754,9 @@ gimp_search_popup_find_accel_label (GtkAction *action)
|
|||
|
||||
if (strcmp (g_strstrip (accel_string), "") == 0)
|
||||
{
|
||||
/* The value returned by gtk_accelerator_get_label() must be freed after use. */
|
||||
/* The value returned by gtk_accelerator_get_label() must be
|
||||
* freed after use.
|
||||
*/
|
||||
g_free (accel_string);
|
||||
accel_string = NULL;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue