sort of got the assistant working with the combo model
authorJohn Darrington <john@darrington.wattle.id.au>
Sat, 26 Jan 2013 20:01:46 +0000 (21:01 +0100)
committerJohn Darrington <john@darrington.wattle.id.au>
Sat, 16 Feb 2013 14:03:44 +0000 (15:03 +0100)
src/ui/gui/automake.mk
src/ui/gui/page-assistant.c
src/ui/gui/page-file.c
src/ui/gui/page-first-line.c
src/ui/gui/page-formats.c
src/ui/gui/page-intro.c
src/ui/gui/page-separators.c
src/ui/gui/page-sheet-spec.c
src/ui/gui/sheet-test.c
src/ui/gui/text-data-import-dialog.c
src/ui/gui/text-data-import.ui

index dafad5ed515da5475dc4b91c483127db2abce274..38a22b6e69f71252d409b7b5edb6dca2ee800024 100644 (file)
@@ -286,6 +286,8 @@ src_ui_gui_psppire_SOURCES = \
        src/ui/gui/psppire-output-window.h \
        src/ui/gui/psppire-var-view.c \
        src/ui/gui/psppire-var-view.h \
+       src/ui/gui/psppire-spreadsheet-model.c \
+       src/ui/gui/psppire-spreadsheet-model.h \
        src/ui/gui/psppire-selector.h \
        src/ui/gui/psppire-select-dest.c \
        src/ui/gui/psppire-select-dest.h \
index dfe7748b140f22dd55d0df706802f85a600cd0a3..59ece176f5cd5b3b702e5245bc83c4c367a4120c 100644 (file)
@@ -166,10 +166,10 @@ on_prepare (GtkAssistant *assistant, GtkWidget *page,
   int pn = gtk_assistant_get_current_page (assistant);
   g_print ("%s:%d Page %d %p\n", __FILE__, __LINE__, pn, page);
 
-#if 0  
-  if (pn == 1 && ssp->spreadsheet)
-    post_sheet_spec_page (ia);
+  if (pn == 0)
+    prepare_sheet_spec_page (ia);
 
+#if 0  
   if (gtk_assistant_get_page_type (assistant, page)
       == GTK_ASSISTANT_PAGE_CONFIRM)
     gtk_widget_grab_focus (assistant->apply);
@@ -186,9 +186,6 @@ on_prepare (GtkAssistant *assistant, GtkWidget *page,
     {
       prepare_sheet_spec_page (ia);
     }
-
-
-
   
   gtk_widget_show (ia->asst.reset_button);
   if (page == ia->formats->page)
index 98362a3f13b5d1082eac4e9a73f9aeb9c0925849..b6100f369328ce56a287da2cd31922d08845c749 100644 (file)
@@ -99,6 +99,8 @@ init_file (struct import_assistant *ia, GtkWindow *parent_window)
 
   if (ia->spreadsheet == NULL)
     ia->spreadsheet = gnumeric_probe (file->file_name);
+
+  printf ("%s:%d %p\n", __FILE__, __LINE__, ia->spreadsheet);
   
   if (ia->spreadsheet == NULL)
     ia->spreadsheet = ods_probe (file->file_name);
index 9865d90c38c71b04b30dce202bf34e0f2df87d35..8a0e103227db7b2e07014892f8b3d2b606eb81e9 100644 (file)
@@ -87,8 +87,10 @@ first_line_page_create (struct import_assistant *ia)
 
   GtkBuilder *builder = ia->asst.builder;
 
+#if 0
   p->page = add_page_to_assistant (ia, get_widget_assert (builder, "FirstLine"),
                                    GTK_ASSISTANT_PAGE_CONTENT);
+#endif
   gtk_widget_destroy (get_widget_assert (builder, "first-line"));
   p->tree_view = create_lines_tree_view (
     GTK_CONTAINER (get_widget_assert (builder, "first-line-scroller")), ia);
index 9bce4d3204ceb7260cef7e9388aca05cbf194f02..56339017c4752a33fc1b8278b601d9e417af50cd 100644 (file)
@@ -82,8 +82,10 @@ formats_page_create (struct import_assistant *ia)
   GtkBuilder *builder = ia->asst.builder;
   struct formats_page *p = xzalloc (sizeof *p);
 
+#if 0
   p->page = add_page_to_assistant (ia, get_widget_assert (builder, "Formats"),
                                    GTK_ASSISTANT_PAGE_CONFIRM);
+#endif
   p->data_tree_view = GTK_TREE_VIEW (get_widget_assert (builder, "data"));
   p->modified_vars = NULL;
   p->modified_var_cnt = 0;
index 0a8306a05ca2eba77c19d65d8c4e63c396def7ac..f580310c1fe99b78485195c2096bbefa0310453c 100644 (file)
@@ -107,10 +107,12 @@ intro_page_create (struct import_assistant *ia)
                             1, 2,
                             2, 3);
 
+#if 0
   p->page = add_page_to_assistant (ia, get_widget_assert (builder, "Intro"),
                                    GTK_ASSISTANT_PAGE_INTRO);
-  
+
   g_print ("%s:%d Added page %p\n", __FILE__, __LINE__, p->page);
+#endif  
 
   p->all_cases_button = get_widget_assert (builder, "import-all-cases");
 
index c62c3bb767d25ce81b32acee20fda8f5195ce243..e153a231f53a296698ccbddd08e2a1f2198abecf 100644 (file)
@@ -157,8 +157,10 @@ separators_page_create (struct import_assistant *ia)
 
   struct separators_page *p = xzalloc (sizeof *p);
 
+#if 0
   p->page = add_page_to_assistant (ia, get_widget_assert (builder, "Separators"),
                                    GTK_ASSISTANT_PAGE_CONTENT);
+#endif
   p->custom_cb = get_widget_assert (builder, "custom-cb");
   p->custom_entry = get_widget_assert (builder, "custom-entry");
   p->quote_combo = get_widget_assert (builder, "quote-combo");
index 6f23fe0b34bf1f7d1148f8bee41f835f0167c27d..a23ac40dd62cf95b97318289d05cf4a0828e174b 100644 (file)
@@ -88,8 +88,12 @@ sheet_spec_page_create (struct import_assistant *ia)
   GtkBuilder *builder = ia->asst.builder;
   struct sheet_spec_page *p = xzalloc (sizeof (*p));
 
-  p->page = add_page_to_assistant (ia, get_widget_assert (builder, "Sheet"),
-                                   GTK_ASSISTANT_PAGE_INTRO);
+  GtkWidget *combo_box = get_widget_assert (builder, "sheet-entry");
+  GtkCellRenderer *renderer = gtk_cell_renderer_text_new ();
+  gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combo_box), renderer, TRUE);
+  gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combo_box), renderer,
+                                 "text", 0,
+                                 NULL);
 
   return p;
 }
@@ -98,13 +102,13 @@ sheet_spec_page_create (struct import_assistant *ia)
 void
 prepare_sheet_spec_page (struct import_assistant *ia)
 {
-  struct sheet_spec_page *p = ia->sheet_spec;
-
   GtkBuilder *builder = ia->asst.builder;
   GtkWidget *sheet_entry = get_widget_assert (builder, "sheet-entry");
+  printf ("%s:%d %p\n", __FILE__, __LINE__, ia->spreadsheet);
+  gtk_combo_box_set_model (GTK_COMBO_BOX (sheet_entry), 
+                          psppire_spreadsheet_model_new (ia->spreadsheet));
 
-    gtk_spin_button_set_digits (GTK_SPIN_BUTTON (sheet_entry), 0);
-  gtk_spin_button_set_range (GTK_SPIN_BUTTON (sheet_entry), 1, ia->spreadsheet->sheets);
+  gtk_combo_box_set_active (sheet_entry, 0);
 }
 
 
@@ -136,10 +140,9 @@ post_sheet_spec_page (struct import_assistant *ia)
   GtkWidget *range_entry = get_widget_assert (builder, "cell-range-entry");
   GtkWidget *readnames_checkbox = get_widget_assert (builder, "readnames-checkbox");
 
-  gint num = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (sheet_entry));
-
   const gchar *range = gtk_entry_get_text (GTK_ENTRY (range_entry));
 
+  gint num = 0;
   if ( num < 1 )
     num = 1;
   
index d16cdda2b2ee8386280f88c24cc013ea14846550..c1ff9e937775a0e7e53f85cabbefab2b550fca38 100644 (file)
@@ -62,7 +62,7 @@ main (int argc, char *argv[] )
   gtk_container_set_border_width (GTK_CONTAINER (window), 10);
   
   //  tm = GTK_TREE_MODEL (make_store ());
-  combo_box = gtk_combo_box_new_with_model (tm);
+  combo_box = gtk_combo_box_new();
 
   {
     GtkCellRenderer *renderer = gtk_cell_renderer_text_new ();
@@ -72,6 +72,8 @@ main (int argc, char *argv[] )
                                    NULL);
   }
 
+  gtk_combo_box_set_model (GTK_COMBO_BOX (combo_box), 
+                          tm);
 
 
   gtk_combo_box_set_active (combo_box, 0);
index 0d66e8a20ea81e60324e005beb531e99f457cee1..ed7f8f4a4f44dd35c132e17d1d98cd01de10efa4 100644 (file)
@@ -72,6 +72,7 @@ text_data_import_assistant (PsppireDataWindow *dw)
 {
   GtkWindow *parent_window = GTK_WINDOW (dw);
   struct import_assistant *ia = init_assistant (parent_window);
+  GtkBuilder *builder = ia->asst.builder;
   struct sheet_spec_page *ssp ;
 
   if (!init_file (ia, parent_window))
@@ -82,6 +83,13 @@ text_data_import_assistant (PsppireDataWindow *dw)
 
   ssp = ia->sheet_spec;
 
+  add_page_to_assistant (ia, get_widget_assert (builder, "Sheet"),
+                        GTK_ASSISTANT_PAGE_INTRO);
+
+  add_page_to_assistant (ia, get_widget_assert (builder, "Formats"),
+                        GTK_ASSISTANT_PAGE_CONFIRM);
+
+
   gtk_widget_show_all (GTK_WIDGET (ia->asst.assistant));
 
   ia->asst.main_loop = g_main_loop_new (NULL, false);
index 62bdf94717121a5ef7412cd358bd0c465249d1bb..a7a393ea115c251407f77b19e22010805a5ce624 100644 (file)
@@ -653,25 +653,6 @@ The selected file contains N lines of text.  Only the first M of these will be s
       </object>
     </child>
   </object>
-  <object class="GtkAdjustment" id="adjustment1">
-    <property name="value">100</property>
-    <property name="lower">1</property>
-    <property name="upper">100</property>
-    <property name="step_increment">1</property>
-    <property name="page_increment">10</property>
-  </object>
-  <object class="GtkAdjustment" id="adjustment2">
-    <property name="value">1000</property>
-    <property name="upper">100000000</property>
-    <property name="step_increment">1</property>
-    <property name="page_increment">10</property>
-  </object>
-  <object class="GtkAdjustment" id="adjustment3">
-    <property name="value">1</property>
-    <property name="upper">100</property>
-    <property name="step_increment">1</property>
-    <property name="page_increment">10</property>
-  </object>
   <object class="GtkWindow" id="Sheet">
     <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
     <property name="border_width">12</property>
@@ -727,11 +708,10 @@ The selected file contains N lines of text.  Only the first M of these will be s
                           </packing>
                         </child>
                         <child>
-                          <object class="GtkSpinButton" id="sheet-entry">
+                          <object class="GtkComboBox" id="sheet-entry">
                             <property name="visible">True</property>
                             <property name="can_focus">True</property>
-                            <property name="invisible_char">&#x25CF;</property>
-                            <property name="adjustment">adjustment3</property>
+                           <property name="active">0</property>
                           </object>
                           <packing>
                             <property name="left_attach">1</property>