comparison src/search.c @ 889:cb3b6238782a

Reduce code redundancy by moving common code to new menu_choice_get_match_type().
author zas_
date Thu, 17 Jul 2008 22:36:58 +0000
parents 06929cbcd796
children 1698baa37871
comparison
equal deleted inserted replaced
888:d8e1e820cee7 889:cb3b6238782a
2303 { 2303 {
2304 if (GTK_WIDGET_VISIBLE(widget)) gtk_widget_hide(widget); 2304 if (GTK_WIDGET_VISIBLE(widget)) gtk_widget_hide(widget);
2305 } 2305 }
2306 } 2306 }
2307 2307
2308 static void menu_choice_path_cb(GtkWidget *combo, gpointer data) 2308 static gboolean menu_choice_get_match_type(GtkWidget *combo, MatchType *type)
2309 { 2309 {
2310 SearchData *sd = data;
2311 GtkTreeModel *store; 2310 GtkTreeModel *store;
2312 GtkTreeIter iter; 2311 GtkTreeIter iter;
2313 2312
2314 store = gtk_combo_box_get_model(GTK_COMBO_BOX(combo)); 2313 store = gtk_combo_box_get_model(GTK_COMBO_BOX(combo));
2315 if (!gtk_combo_box_get_active_iter(GTK_COMBO_BOX(combo), &iter)) return; 2314 if (!gtk_combo_box_get_active_iter(GTK_COMBO_BOX(combo), &iter)) return FALSE;
2316 gtk_tree_model_get(store, &iter, MENU_CHOICE_COLUMN_VALUE, &sd->search_type, -1); 2315 gtk_tree_model_get(store, &iter, MENU_CHOICE_COLUMN_VALUE, type, -1);
2316 return TRUE;
2317 }
2318
2319 static void menu_choice_path_cb(GtkWidget *combo, gpointer data)
2320 {
2321 SearchData *sd = data;
2322
2323 if (!menu_choice_get_match_type(combo, &sd->search_type)) return;
2317 2324
2318 menu_choice_set_visible(gtk_widget_get_parent(sd->check_recurse), 2325 menu_choice_set_visible(gtk_widget_get_parent(sd->check_recurse),
2319 (sd->search_type == SEARCH_MATCH_NONE)); 2326 (sd->search_type == SEARCH_MATCH_NONE));
2320 } 2327 }
2321 2328
2322 static void menu_choice_name_cb(GtkWidget *combo, gpointer data) 2329 static void menu_choice_name_cb(GtkWidget *combo, gpointer data)
2323 { 2330 {
2324 SearchData *sd = data; 2331 SearchData *sd = data;
2325 GtkTreeModel *store; 2332
2326 GtkTreeIter iter; 2333 if (!menu_choice_get_match_type(combo, &sd->match_name)) return;
2327
2328 store = gtk_combo_box_get_model(GTK_COMBO_BOX(combo));
2329 if (!gtk_combo_box_get_active_iter(GTK_COMBO_BOX(combo), &iter)) return;
2330 gtk_tree_model_get(store, &iter, MENU_CHOICE_COLUMN_VALUE, &sd->match_name, -1);
2331 } 2334 }
2332 2335
2333 static void menu_choice_size_cb(GtkWidget *combo, gpointer data) 2336 static void menu_choice_size_cb(GtkWidget *combo, gpointer data)
2334 { 2337 {
2335 SearchData *sd = data; 2338 SearchData *sd = data;
2336 GtkTreeModel *store; 2339
2337 GtkTreeIter iter; 2340 if (!menu_choice_get_match_type(combo, &sd->match_size)) return;
2338
2339 store = gtk_combo_box_get_model(GTK_COMBO_BOX(combo));
2340 if (!gtk_combo_box_get_active_iter(GTK_COMBO_BOX(combo), &iter)) return;
2341 gtk_tree_model_get(store, &iter, MENU_CHOICE_COLUMN_VALUE, &sd->match_size, -1);
2342 2341
2343 menu_choice_set_visible(gtk_widget_get_parent(sd->spin_size_end), 2342 menu_choice_set_visible(gtk_widget_get_parent(sd->spin_size_end),
2344 (sd->match_size == SEARCH_MATCH_BETWEEN)); 2343 (sd->match_size == SEARCH_MATCH_BETWEEN));
2345 } 2344 }
2346 2345
2347 static void menu_choice_date_cb(GtkWidget *combo, gpointer data) 2346 static void menu_choice_date_cb(GtkWidget *combo, gpointer data)
2348 { 2347 {
2349 SearchData *sd = data; 2348 SearchData *sd = data;
2350 GtkTreeModel *store; 2349
2351 GtkTreeIter iter; 2350 if (!menu_choice_get_match_type(combo, &sd->match_date)) return;
2352
2353 store = gtk_combo_box_get_model(GTK_COMBO_BOX(combo));
2354 if (!gtk_combo_box_get_active_iter(GTK_COMBO_BOX(combo), &iter)) return;
2355 gtk_tree_model_get(store, &iter, MENU_CHOICE_COLUMN_VALUE, &sd->match_date, -1);
2356 2351
2357 menu_choice_set_visible(gtk_widget_get_parent(sd->date_sel_end), 2352 menu_choice_set_visible(gtk_widget_get_parent(sd->date_sel_end),
2358 (sd->match_date == SEARCH_MATCH_BETWEEN)); 2353 (sd->match_date == SEARCH_MATCH_BETWEEN));
2359 } 2354 }
2360 2355
2361 static void menu_choice_dimensions_cb(GtkWidget *combo, gpointer data) 2356 static void menu_choice_dimensions_cb(GtkWidget *combo, gpointer data)
2362 { 2357 {
2363 SearchData *sd = data; 2358 SearchData *sd = data;
2364 GtkTreeModel *store; 2359
2365 GtkTreeIter iter; 2360 if (!menu_choice_get_match_type(combo, &sd->match_dimensions)) return;
2366
2367 store = gtk_combo_box_get_model(GTK_COMBO_BOX(combo));
2368 if (!gtk_combo_box_get_active_iter(GTK_COMBO_BOX(combo), &iter)) return;
2369 gtk_tree_model_get(store, &iter, MENU_CHOICE_COLUMN_VALUE, &sd->match_dimensions, -1);
2370 2361
2371 menu_choice_set_visible(gtk_widget_get_parent(sd->spin_width_end), 2362 menu_choice_set_visible(gtk_widget_get_parent(sd->spin_width_end),
2372 (sd->match_dimensions == SEARCH_MATCH_BETWEEN)); 2363 (sd->match_dimensions == SEARCH_MATCH_BETWEEN));
2373 } 2364 }
2374 2365
2375 static void menu_choice_keyword_cb(GtkWidget *combo, gpointer data) 2366 static void menu_choice_keyword_cb(GtkWidget *combo, gpointer data)
2376 { 2367 {
2377 SearchData *sd = data; 2368 SearchData *sd = data;
2378 GtkTreeModel *store; 2369
2379 GtkTreeIter iter; 2370 if (!menu_choice_get_match_type(combo, &sd->match_keywords)) return;
2380
2381 store = gtk_combo_box_get_model(GTK_COMBO_BOX(combo));
2382 if (!gtk_combo_box_get_active_iter(GTK_COMBO_BOX(combo), &iter)) return;
2383 gtk_tree_model_get(store, &iter, MENU_CHOICE_COLUMN_VALUE, &sd->match_keywords, -1);
2384 } 2371 }
2385 2372
2386 static void menu_choice_spin_cb(GtkAdjustment *adjustment, gpointer data) 2373 static void menu_choice_spin_cb(GtkAdjustment *adjustment, gpointer data)
2387 { 2374 {
2388 gint *value = data; 2375 gint *value = data;