Do not create an illegal filter when having an empty display filter and

selecting Apply/Prepare "and/or (not) Selected" in Conversations, Endpoints
and Service Response Time.

svn path=/trunk/; revision=23756
This commit is contained in:
Stig Bjørlykke 2007-12-04 23:47:30 +00:00
parent f43601180c
commit d3c4d1b221
3 changed files with 52 additions and 16 deletions

View File

@ -634,19 +634,31 @@ ct_select_filter_cb(GtkWidget *widget _U_, gpointer callback_data, guint callbac
break;
case 2:
/* and selected */
g_snprintf(str, 255, "(%s) && (%s)", current_filter, dirstr);
if ((!current_filter) || (0 == strlen(current_filter)))
g_snprintf(str, 255, "%s", dirstr);
else
g_snprintf(str, 255, "(%s) && (%s)", current_filter, dirstr);
break;
case 3:
/* or selected */
g_snprintf(str, 255, "(%s) || (%s)", current_filter, dirstr);
if ((!current_filter) || (0 == strlen(current_filter)))
g_snprintf(str, 255, "%s", dirstr);
else
g_snprintf(str, 255, "(%s) || (%s)", current_filter, dirstr);
break;
case 4:
/* and not selected */
g_snprintf(str, 255, "(%s) && !(%s)", current_filter, dirstr);
if ((!current_filter) || (0 == strlen(current_filter)))
g_snprintf(str, 255, "!(%s)", dirstr);
else
g_snprintf(str, 255, "(%s) && !(%s)", current_filter, dirstr);
break;
case 5:
/* or not selected */
g_snprintf(str, 255, "(%s) || !(%s)", current_filter, dirstr);
if ((!current_filter) || (0 == strlen(current_filter)))
g_snprintf(str, 255, "!(%s)", dirstr);
else
g_snprintf(str, 255, "(%s) || !(%s)", current_filter, dirstr);
break;
}

View File

@ -347,19 +347,31 @@ hostlist_select_filter_cb(GtkWidget *widget _U_, gpointer callback_data, guint c
break;
case 2:
/* and selected */
g_snprintf(str, 255, "(%s) && (%s)", current_filter, dirstr);
if ((!current_filter) || (0 == strlen(current_filter)))
g_snprintf(str, 255, "%s", dirstr);
else
g_snprintf(str, 255, "(%s) && (%s)", current_filter, dirstr);
break;
case 3:
/* or selected */
g_snprintf(str, 255, "(%s) || (%s)", current_filter, dirstr);
if ((!current_filter) || (0 == strlen(current_filter)))
g_snprintf(str, 255, "%s", dirstr);
else
g_snprintf(str, 255, "(%s) || (%s)", current_filter, dirstr);
break;
case 4:
/* and not selected */
g_snprintf(str, 255, "(%s) && !(%s)", current_filter, dirstr);
if ((!current_filter) || (0 == strlen(current_filter)))
g_snprintf(str, 255, "!(%s)", dirstr);
else
g_snprintf(str, 255, "(%s) && !(%s)", current_filter, dirstr);
break;
case 5:
/* or not selected */
g_snprintf(str, 255, "(%s) || !(%s)", current_filter, dirstr);
if ((!current_filter) || (0 == strlen(current_filter)))
g_snprintf(str, 255, "!(%s)", dirstr);
else
g_snprintf(str, 255, "(%s) || !(%s)", current_filter, dirstr);
break;
}

View File

@ -193,23 +193,35 @@ srt_select_filter_cb(GtkWidget *widget _U_, gpointer callback_data, guint callba
break;
case 2:
/* and selected */
str = g_strdup_printf("(%s) && (%s==%d)", current_filter,
rst->filter_string, selection);
if ((!current_filter) || (0 == strlen(current_filter)))
str = g_strdup_printf("%s==%d", rst->filter_string, selection);
else
str = g_strdup_printf("(%s) && (%s==%d)", current_filter,
rst->filter_string, selection);
break;
case 3:
/* or selected */
str = g_strdup_printf("(%s) || (%s==%d)", current_filter,
rst->filter_string, selection);
if ((!current_filter) || (0 == strlen(current_filter)))
str = g_strdup_printf("%s==%d", rst->filter_string, selection);
else
str = g_strdup_printf("(%s) || (%s==%d)", current_filter,
rst->filter_string, selection);
break;
case 4:
/* and not selected */
str = g_strdup_printf("(%s) && !(%s==%d)", current_filter,
rst->filter_string, selection);
if ((!current_filter) || (0 == strlen(current_filter)))
str = g_strdup_printf("!(%s==%d)", rst->filter_string, selection);
else
str = g_strdup_printf("(%s) && !(%s==%d)", current_filter,
rst->filter_string, selection);
break;
case 5:
/* or not selected */
str = g_strdup_printf("(%s) || !(%s==%d)", current_filter,
rst->filter_string, selection);
if ((!current_filter) || (0 == strlen(current_filter)))
str = g_strdup_printf("!(%s==%d)", rst->filter_string, selection);
else
str = g_strdup_printf("(%s) || !(%s==%d)", current_filter,
rst->filter_string, selection);
break;
}