[PATCH] fixes to cell Validation.



Attached are a pair of patches to fix several bugs with the cell
Validation functionality.  The patch is against latest CVS on both the
HEAD and gnome_1_4 branches.  The patch is appropriate for 1.0.4 because
it contains only bug-fixes (not new features) and because it's small, even
though the following changelog isn't particularly. =)

* src/validation.c:
  Return VALIDATION_STATUS_VALID on assertion failure, not "1".
  Treat VALIDATION_TYPE_AS_DATE/VALIDATION_TYPE_AS_TIME as
   VALIDATION_TYPE_ANY, since no one seems to know what they ought to
   do (added a TODO #warning here, too).
  Cleaned up the VALIDATION_TYPE_AS_NUMBER case with a switch statement.
   Covered corner cases better, and clarified the error messages to
   correspond with the wording in the validation properties dialog.
  Fixed a logic bug in VALIDATION_OP_BETWEEN that caused us to ignore the
   lower bound in this case.
  Clarified the default error message.
  (same changes here to both 1.0.4 and 1.1.x branch to keep code parallel)
* src/workbook-control-gui.c
    (delete_sheet_if_possible,wbcg_validation_message)
  *** 1.1.x BRANCH ONLY ***
  The gtk_dialog_run() function doesn't destroy the dialog window
   before it returns, like gnumeric_dialog_run did.  We have to do it
   ourselves (otherwise the window never goes away!).  Also,
   wbcg_validation_message accidentally inverted its test so
   it would always report that the opposite button had been pressed.
* src/dialogs/cell-format.glade:
  Fixed the dialog entry for the NOT_BETWEEN case: the test should
   be 'val < min || max < val' not 'val <= min || max <= val'.  Also
   changed the '||' in the dialog to english 'or'.
* src/dialogs/dialog-cell-format.c (validation_entry_to_expr):
  The validation_entry_to_expr function can be called before
   cb_fmt_dialog_set_focus sets the proper flags on the
   GnumericExprEntry, so we need to do it ourselves.  If we don't,
   gnumeric_expr_entry_parse/gnm_expr_entry_parse will fail and
   we'll 'forget' the proper value of the arguments.  (You'll
   see this bug if you open the validation window, change something
   [the validation operation, for example] and hit okay without ever
   focusing on the min/max fields.  Open the validation window
   again and the contents previously in min/max will be gone.)
* src/dialogs/dialog-cell-format.c (validation_entry_from_expr):
  *** 1.1.x BRANCH ONLY ***
  You can't cast a GnumericExprEntry to a GtkEntry.  You need
   to call gnm_expr_entry_get_entry.  This was causing the
   validation argument fields to always show up blank.

Enjoy!
 --scott

Boston KGB President AP Cheney United Nations MI5 mail drop Morwenstow 
Bejing TASS domestic disruption Uzi World Trade Center Sudan blowfish 
              ( http://lesser-magoo.lcs.mit.edu/~cananian )

Attachment: patch-1.0.4-cvs.valid2
Description: patch for 1.0.4 branch

Attachment: patch-HEAD-cvs.valid2
Description: patch for 1.1.x branch



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]