projects
/
pspp
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Provide wrapper for gtk_menu_popup_at_pointer.
[pspp]
/
src
/
ui
/
gui
/
find-dialog.c
diff --git
a/src/ui/gui/find-dialog.c
b/src/ui/gui/find-dialog.c
index 1bdf35e422cd86811168a7a26d03aad439d13d71..123f7cf69b3148e4a846fc42a6646c4205a05f53 100644
(file)
--- a/
src/ui/gui/find-dialog.c
+++ b/
src/ui/gui/find-dialog.c
@@
-1,5
+1,5
@@
/* PSPPIRE - a graphical user interface for PSPP.
/* PSPPIRE - a graphical user interface for PSPP.
- Copyright (C) 2007, 2009, 2011, 2012 Free Software Foundation
+ Copyright (C) 2007, 2009, 2011, 2012
, 2015
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
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
@@
-36,7
+36,6
@@
which match particular strings */
#include "ui/gui/dict-display.h"
#include "ui/gui/find-dialog.h"
#include "ui/gui/helper.h"
#include "ui/gui/dict-display.h"
#include "ui/gui/find-dialog.h"
#include "ui/gui/helper.h"
-#include "ui/gui/psppire-data-sheet.h"
#include "ui/gui/psppire-data-store.h"
#include "ui/gui/psppire-data-window.h"
#include "ui/gui/psppire-dialog.h"
#include "ui/gui/psppire-data-store.h"
#include "ui/gui/psppire-data-window.h"
#include "ui/gui/psppire-dialog.h"
@@
-100,28
+99,21
@@
refresh (GObject *obj, const struct find_dialog *fd)
static void
do_find (GObject *obj, const struct find_dialog *fd)
{
static void
do_find (GObject *obj, const struct find_dialog *fd)
{
- PsppireDataSheet *data_sheet;
casenumber x = -1;
gint column = -1;
glong row;
casenumber x = -1;
gint column = -1;
glong row;
- data_sheet = psppire_data_editor_get_active_data_sheet (fd->de->data_editor);
- row = psppire_data_sheet_get_selected_case (data_sheet);
- if ( row < 0 )
- row = 0;
-
find_value (fd, row, &x, &column)
;
+
row = 10
;
+ find_value (fd, row, &x, &column);
if ( x != -1)
{
gtk_notebook_set_current_page (GTK_NOTEBOOK (fd->de->data_editor),
PSPPIRE_DATA_EDITOR_DATA_VIEW);
if ( x != -1)
{
gtk_notebook_set_current_page (GTK_NOTEBOOK (fd->de->data_editor),
PSPPIRE_DATA_EDITOR_DATA_VIEW);
- psppire_data_sheet_goto_case (data_sheet, x);
- psppire_data_sheet_show_variable (data_sheet, column);
}
}
-
}
/* Callback on the selector.
}
/* Callback on the selector.
@@
-198,7
+190,7
@@
find_dialog (PsppireDataWindow *de)
fd.xml = builder_new ("find.ui");
fd.de = de;
fd.xml = builder_new ("find.ui");
fd.de = de;
- find_button = gtk_button_new_
from_stock (GTK_STOCK_FIND
);
+ find_button = gtk_button_new_
with_label (_("Find")
);
gtk_widget_show (find_button);
buttonbox = get_widget_assert (fd.xml, "find-buttonbox");
gtk_widget_show (find_button);
buttonbox = get_widget_assert (fd.xml, "find-buttonbox");
@@
-317,6
+309,9
@@
cp1c (casenumber current, struct datasheet *data)
static casenumber
cm1 (casenumber current, struct datasheet *data)
{
static casenumber
cm1 (casenumber current, struct datasheet *data)
{
+ if (current == -1)
+ return datasheet_get_n_rows (data);
+
return current - 1;
}
return current - 1;
}
@@
-326,6
+321,9
@@
cm1c (casenumber current, struct datasheet *data)
{
casenumber next = current;
{
casenumber next = current;
+ if (current == -1)
+ return datasheet_get_n_rows (data);
+
backward_wrap (&next, data);
return next;
backward_wrap (&next, data);
return next;
@@
-341,6
+339,9
@@
last (casenumber current, struct datasheet *data)
static casenumber
minus1 (casenumber current, struct datasheet *data)
{
static casenumber
minus1 (casenumber current, struct datasheet *data)
{
+ if (current == -1)
+ return 0;
+
return -1;
}
return -1;
}
@@
-465,8
+466,13
@@
string_label_compare (const struct comparator *cmptr,
const struct string_comparator *ssc =
(const struct string_comparator *) cmptr;
const struct string_comparator *ssc =
(const struct string_comparator *) cmptr;
+ int width;
+
const char *text = var_lookup_value_label (cmptr->var, val);
const char *text = var_lookup_value_label (cmptr->var, val);
- int width = strlen (text);
+ if (text == NULL)
+ return false;
+
+ width = strlen (text);
assert ( cmptr->flags & STR_CMP_LABELS);
assert ( cmptr->flags & STR_CMP_LABELS);
@@
-697,7
+703,6
@@
find_value (const struct find_dialog *fd, casenumber current_row,
const char *target_string = gtk_entry_get_text (GTK_ENTRY (fd->value_entry));
enum string_cmp_flags flags = 0;
const char *target_string = gtk_entry_get_text (GTK_ENTRY (fd->value_entry));
enum string_cmp_flags flags = 0;
- g_assert (current_row >= 0);
var = dict_lookup_var (fd->dict->dict, var_name);
if ( ! var )
var = dict_lookup_var (fd->dict->dict, var_name);
if ( ! var )