X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;ds=sidebyside;f=src%2Fui%2Fgui%2Fpsppire-spreadsheet-model.c;h=d02c1c558c94bcc937ea16881849e95bac4a17f3;hb=d7a8159acf53f6bf70940d711b32348b6ae75f16;hp=240356f294cb87f3b6239e752bcafed70314b2c5;hpb=404bd133ab1d8d446564100debb606fd2786371f;p=pspp diff --git a/src/ui/gui/psppire-spreadsheet-model.c b/src/ui/gui/psppire-spreadsheet-model.c index 240356f294..d02c1c558c 100644 --- a/src/ui/gui/psppire-spreadsheet-model.c +++ b/src/ui/gui/psppire-spreadsheet-model.c @@ -1,5 +1,5 @@ /* PSPPIRE - a graphical user interface for PSPP. - Copyright (C) 2013 Free Software Foundation + Copyright (C) 2013, 2014 Free Software Foundation This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -14,15 +14,25 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ +/* This file implements a GtkTreeModel. It allows GtkComboBox and + GtkTreeView to display the names and non-empty cell ranges of the + sheets aka "Tables" of spreadsheet files. + It doesn't take any notice of the spreadsheet data itself. +*/ #include #include -#include "psppire-spreadsheet-model.h" +#include + +#include +#define _(msgid) gettext (msgid) +#define N_(msgid) msgid + +#include "psppire-spreadsheet-model.h" #include "data/spreadsheet-reader.h" -#include "data/gnumeric-reader.h" static void psppire_spreadsheet_model_init (PsppireSpreadsheetModel * spreadsheetModel); @@ -202,7 +212,7 @@ tree_model_get_iter (GtkTreeModel * model, GtkTreeIter * iter, n = indices[0]; iter->stamp = spreadsheetModel->stamp; - iter->user_data = (gpointer) n; + iter->user_data = (gpointer) (intptr_t) n; return TRUE; } @@ -217,7 +227,7 @@ tree_model_iter_next (GtkTreeModel *model, GtkTreeIter *iter) if (iter == NULL) return FALSE; - if ((gint) iter->user_data >= spreadsheetModel->spreadsheet->sheets - 1) + if ((intptr_t) iter->user_data >= spreadsheetModel->spreadsheet->n_sheets - 1) { iter->user_data = NULL; iter->stamp = 0; @@ -245,17 +255,19 @@ tree_model_get_value (GtkTreeModel * model, GtkTreeIter * iter, case PSPPIRE_SPREADSHEET_MODEL_COL_NAME: { const char *x = - gnumeric_get_sheet_name (spreadsheetModel->spreadsheet, - (gint) iter->user_data); + spreadsheet_get_sheet_name (spreadsheetModel->spreadsheet, + (intptr_t) iter->user_data); + g_value_set_string (value, x); } break; case PSPPIRE_SPREADSHEET_MODEL_COL_RANGE: { char *x = - gnumeric_get_sheet_range (spreadsheetModel->spreadsheet, - (gint) iter->user_data); - g_value_set_string (value, x); + spreadsheet_get_sheet_range (spreadsheetModel->spreadsheet, + (intptr_t) iter->user_data); + + g_value_set_string (value, x ? x : _("(empty)")); g_free (x); } break; @@ -276,11 +288,11 @@ tree_model_nth_child (GtkTreeModel * model, GtkTreeIter * iter, if (parent) return FALSE; - if (n >= spreadsheetModel->spreadsheet->sheets) + if (n >= spreadsheetModel->spreadsheet->n_sheets) return FALSE; iter->stamp = spreadsheetModel->stamp; - iter->user_data = (gpointer) n; + iter->user_data = (gpointer) (intptr_t) n; return TRUE; } @@ -292,7 +304,7 @@ tree_model_n_children (GtkTreeModel * model, GtkTreeIter * iter) PSPPIRE_SPREADSHEET_MODEL (model); if (iter == NULL) - return spreadsheetModel->spreadsheet->sheets; + return spreadsheetModel->spreadsheet->n_sheets; return 0; } @@ -309,7 +321,7 @@ tree_model_get_path (GtkTreeModel * model, GtkTreeIter * iter) PsppireSpreadsheetModel *spreadsheetModel = PSPPIRE_SPREADSHEET_MODEL (model); GtkTreePath *path; - gint index = (gint) iter->user_data; + gint index = (intptr_t) iter->user_data; g_return_val_if_fail (iter->stamp == spreadsheetModel->stamp, NULL);