Ensure that example_dir is relocatable.
[pspp] / src / ui / gui / psppire-window.c
index 9826b702d9f4e005da364c0244a880f58655e36b..c233eaa65d53e01a48a1819dd26c2e02134fd28d 100644 (file)
@@ -15,6 +15,7 @@
    along with this program.  If not, see <http://www.gnu.org/licenses/>. */
 
 #include <config.h>
+#include <gl/relocatable.h>
 
 #include "psppire-window.h"
 #include "psppire-window-base.h"
@@ -31,6 +32,7 @@
 #include "data/any-reader.h"
 #include "data/file-name.h"
 #include "data/dataset.h"
+#include "libpspp/version.h"
 
 #include "helper.h"
 #include "psppire-data-window.h"
@@ -765,6 +767,8 @@ psppire_window_open (PsppireWindow *de)
 {
   GtkWidget *dialog = psppire_window_file_chooser_dialog (de);
 
+  gtk_file_chooser_add_shortcut_folder (GTK_FILE_CHOOSER (dialog), relocate (examples_dir), NULL);
+
   switch (gtk_dialog_run (GTK_DIALOG (dialog)))
     {
     case GTK_RESPONSE_ACCEPT:
@@ -777,10 +781,10 @@ psppire_window_open (PsppireWindow *de)
         gchar *encoding = psppire_encoding_selector_get_encoding (
           gtk_file_chooser_get_extra_widget (GTK_FILE_CHOOSER (dialog)));
 
-       enum detect_result res = any_reader_may_open (sysname);
-       if (ANY_YES == res)
+        int retval = any_reader_detect (sysname, NULL);
+       if (retval == 1)
           open_data_window (de, name, encoding, NULL);
-       else if (ANY_NO == res)
+       else if (retval == 0)
          open_syntax_window (name, encoding);
 
         g_free (encoding);