diff options
| author | Steven Rostedt <srostedt@redhat.com> | 2009-12-01 13:46:45 -0500 |
|---|---|---|
| committer | Steven Rostedt <rostedt@goodmis.org> | 2009-12-17 21:43:46 -0500 |
| commit | 9b871aa553482770a9cddebd6ea6e55151ae4aa0 (patch) | |
| tree | 4efd91c1372fb527593e6a03f2618a87022952ed | |
| parent | 24259ddaebbdf6e43fc369ef502f52733e28a9ba (diff) | |
Fixed column finding without all columns visible
Fixed a bug where the column returned when all columns were not
visible would be less than 1.
Consolidated the calculating of the column index into a single function.
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
| -rw-r--r-- | trace-view-store.c | 47 |
1 files changed, 29 insertions, 18 deletions
diff --git a/trace-view-store.c b/trace-view-store.c index 6d3cfaf..37c98f6 100644 --- a/trace-view-store.c +++ b/trace-view-store.c | |||
| @@ -239,6 +239,33 @@ trace_view_store_get_n_columns (GtkTreeModel *tree_model) | |||
| 239 | return TRACE_VIEW_STORE(tree_model)->n_columns; | 239 | return TRACE_VIEW_STORE(tree_model)->n_columns; |
| 240 | } | 240 | } |
| 241 | 241 | ||
| 242 | /***************************************************************************** | ||
| 243 | * | ||
| 244 | * get_visible_column: Return the index of the visible columns | ||
| 245 | * | ||
| 246 | *****************************************************************************/ | ||
| 247 | |||
| 248 | static gint get_visible_column(TraceViewStore *trace_view, gint column) | ||
| 249 | { | ||
| 250 | guint i; | ||
| 251 | |||
| 252 | /* If all columns are visible just use what was passed in */ | ||
| 253 | if (trace_view->visible_column_mask == ((1 << TRACE_VIEW_STORE_N_COLUMNS) - 1)) | ||
| 254 | return column; | ||
| 255 | |||
| 256 | column++; /* make 0 drop out */ | ||
| 257 | |||
| 258 | for (i = 0; column && i < TRACE_VIEW_STORE_N_COLUMNS; i++) { | ||
| 259 | if (!trace_view->visible_column_mask & (1 << i)) | ||
| 260 | continue; | ||
| 261 | |||
| 262 | column--; | ||
| 263 | } | ||
| 264 | g_assert(column == 0); | ||
| 265 | |||
| 266 | /* We upped column, so me must dec the return */ | ||
| 267 | return i - 1; | ||
| 268 | } | ||
| 242 | 269 | ||
| 243 | /***************************************************************************** | 270 | /***************************************************************************** |
| 244 | * | 271 | * |
| @@ -254,6 +281,7 @@ trace_view_store_get_column_type (GtkTreeModel *tree_model, | |||
| 254 | g_return_val_if_fail (TRACE_VIEW_IS_LIST(tree_model), G_TYPE_INVALID); | 281 | g_return_val_if_fail (TRACE_VIEW_IS_LIST(tree_model), G_TYPE_INVALID); |
| 255 | g_return_val_if_fail (index < TRACE_VIEW_STORE(tree_model)->n_columns && index >= 0, G_TYPE_INVALID); | 282 | g_return_val_if_fail (index < TRACE_VIEW_STORE(tree_model)->n_columns && index >= 0, G_TYPE_INVALID); |
| 256 | 283 | ||
| 284 | index = get_visible_column(TRACE_VIEW_STORE(tree_model), index); | ||
| 257 | return TRACE_VIEW_STORE(tree_model)->column_types[index]; | 285 | return TRACE_VIEW_STORE(tree_model)->column_types[index]; |
| 258 | } | 286 | } |
| 259 | 287 | ||
| @@ -380,24 +408,7 @@ trace_view_store_get_value (GtkTreeModel *tree_model, | |||
| 380 | if(record->pos >= trace_view_store->num_rows) | 408 | if(record->pos >= trace_view_store->num_rows) |
| 381 | g_return_if_reached(); | 409 | g_return_if_reached(); |
| 382 | 410 | ||
| 383 | /* If all columns are visible just use what was passed in */ | 411 | column = get_visible_column(TRACE_VIEW_STORE(tree_model), column); |
| 384 | if (trace_view_store->visible_column_mask != | ||
| 385 | ((1 << TRACE_VIEW_STORE_N_COLUMNS) - 1)) { | ||
| 386 | guint i; | ||
| 387 | |||
| 388 | column++; /* make 0 drop out */ | ||
| 389 | |||
| 390 | for (i = 0; column && i < TRACE_VIEW_STORE_N_COLUMNS; i++) { | ||
| 391 | if (!trace_view_store->visible_column_mask & (1 << i)) | ||
| 392 | continue; | ||
| 393 | |||
| 394 | column--; | ||
| 395 | } | ||
| 396 | |||
| 397 | g_return_if_fail(column); | ||
| 398 | |||
| 399 | column = i; | ||
| 400 | } | ||
| 401 | 412 | ||
| 402 | switch(column) | 413 | switch(column) |
| 403 | { | 414 | { |
