date: 2004/06/14 05:01:07; author: tom; state: Exp; lines: +31 -15
* Added padding to labels
* Made FileSelector dialog return None on cancel
* Made cancelling return None in most/all places, fixing some
buggy dialogs that wouldn't die.
----------------------------
2014-08-17 Bernhard Reiter <ockhamraz.or.at>
* Bump version to 0.17.5.
2014-08-03 Bernhard Reiter <ockhamraz.or.at>
* Get rid of obsolete progress_func argument.
2014-07-27 Bernhard Reiter <ockhamraz.or.at>
* Fix twisted logic of of this line's previous change.
* When exporting, don't check for linked reciped if all recipes are exported.
2014-06-14 Steffen Pankratz <kratz00>
* Fixed crash in MCB importer
2014-06-05 Bernhard Reiter <ockhamraz.or.at>
* Mention Unix distributions in INSTALL.md.
2014-06-02 Bernhard Reiter <ockhamraz.or.at>
* Merge translations.
* Use *.po files from Launchpad.
* Remove obsolete po/xx_XX.po files.
* Update po/.
* When saving a shopping list as a menu, add the time in its title.
2014-06-01 Bernhard Reiter <ockhamraz.or.at>
* Fix links in InfoBars under Windows, also for threaded export/import.
* Fix links in InfoBars under Windows.
* Bump version to 0.17.4.
* Move offer_url() to reccard.py.
* Fix guess_singulars() in defaults_en_GB.py by copying it from defaults_en.py.
* Fix guess_plurals() in defaults_en_GB.py by copying it from defaults_en.py.
* Remove obsolete offer_url related functions.
2014-05-29 Jessica Eccles <pounamu>
* fixed typo
* added appdata file Fixes 759
2014-05-29 Bernhard Reiter <ockhamraz.or.at>
* Remove incorrect width and height attributes from gourmet.appdata.xml.in.
* Add gourmet.appdata.xml.in to po/POTFILES.in, MANIFEST.in, and setup.py.
* I18nize gourmet.appdata.xml.in.
* Fix error in gourmet.appdata.xml.in.
2014-05-27 Jessica Eccles <pounamu>
* changed keyboard shortcuts as per Tom's comment Fixes 264
* added requested keyboard shortcuts Fixes 264
2014-05-21 Bernhard Reiter <ockhamraz.or.at>
* In reccard, import launch_url.
* Have xml_importer accept unicode filenames.
2014-05-19 Bernhard Reiter <ockhamraz.or.at>
* Little fix in case get_pluralized_form is passed an empty string.
* When adding a recipe to the shopping list that's already there,
increase the amounts of ingredients accordingly.
2014-05-11 Bernhard Reiter <ockhamraz.or.at>
* INSTALL.md: add ReportLab download link.
2014-05-10 Bernhard Reiter <ockhamraz.or.at>
* Use InfoBar for message in duplicate finder after website import.
* Move import/export progress bar to InfoBar.
* Replace Jump to button in successful export infobar by link to file.
* When exporting from recipe card, display InfoBar there.
* In offer_url(), use InfoBar instead of MessageDialog.
2014-05-06 Bernhard Reiter <ockhamraz.or.at>
* I18n offer_url parameters.
* Revert "Don't use Gtk.InfoBar yet as it requires pyGtk >= 2.22.
We'll keep this in a branch for now."
2014-05-04 Bernhard Reiter <ockhamraz.or.at>
* MCB plugin: create XML in temporary directory.
* MCB plugin: Handle yields/servings properly.
* Add MCB plugin to default_active_plugin_sets.
* Add lxml dependencies to setup.py (required for MCB plugin on Windows).
* Rename mcb-plugin to mycookbook_plugin.
* Update ChangeLog.
2014-05-03 Bernhard Reiter <ockhamraz.or.at>
* Fix rating export and import for the MCB plugin.
* Update ChangeLog.
2014-05-02 Bernhard Reiter <ockhamraz.or.at>
* Fix the MCB plugin's Export all function.
2014-04-28 Bernhard Reiter <ockhamraz.or.at>
* Update ChangeLog.
2014-04-20 Bernhard Reiter <ockhamraz.or.at>
* Wrap a PIL import.
* Add Fink section to INSTALL.md
* Change manage.py location and contents for Django 1.6.
* Remove a couple of spurious imports from the MCB plugin.
* Add MyCookbook plugin files to po/POTFILES.in.
2014-04-20 thierry
* timestamp changed
* Add MyCookbook export plugin.
2014-04-19 thierry
* fix segfault
2014-04-14 Bernhard Reiter <ockhamraz.or.at>
* In the web plugin, fix the link to the Gourmet website.
* Replace compressed jQuery v1.4.2 by uncompressed v1.11.0.
2014-04-03 Bernhard Reiter <ockhamraz.or.at>
* Bump version to 0.17.3.
* Add xml.dom to packages included by cx_Freeze.
2014-04-02 Bernhard Reiter <ockhamraz.or.at>
* Add FAQ item on setting display resolution.
2014-03-23 Bernhard Reiter <ockhamraz.or.at>
* Use playbin2 instead of deprecated playbin for gst sound playback.
* More on OS X.
* Add MacPorts section to INSTALL.md
2014-03-20 Bernhard Reiter <ockhamraz.or.at>
* Update ChangeLog.
* Add note about code signing .msi file to INSTALL.md.
* Bump version to 0.17.2.
2014-03-16 Bernhard Reiter <ockhamraz.or.at>
* Remove a couple of spurious lines from setup.cfg.
* Update ChangeLog.
* Bump version to 0.17.1.
* Remove build_rpms.py and related.
* Remove obsolete lines from print plugin code.
* Add space to command invoking Adobe reader.
2014-03-09 Bernhard Reiter <ockhamraz.or.at>
* Add cx_Freeze requirement to INSTALL.md.
* Remove EclipseNSIS paragraph from CODING.md.
* Update CODING, rename to CODING.md.
* Update README.md and INSTALL.md.
2014-03-08 Bernhard Reiter <ockhamraz.or.at>
* Remove some obsolete code meant for PyGTK < 2.6.
* Require Python 2.7 in README.md.
* Add two imports to plugins/import_export/gxml_plugin/gxml2_importer.py.
2014-02-26 Bernhard Reiter <ockhamraz.or.at>
* Fix a number of regressions in html_exporter.py.
* Update ChangeLog.
2014-02-25 Bernhard Reiter <ockhamraz.or.at>
* Remove redundant newlines from error message.
* Update *.po[t] files and add/fix some German and Austrian strings.
* Update ChangeLog.
* Fix a translation bug in de_DE.po.
* Remove *.mo files that ware accidentally added to git.
2014-02-24 Bernhard Reiter <ockhamraz.or.at>
* Update gourmet.desktop.in.
* Shorten years listing in copyright notice.
* Add Flattr donations button to About dialog.
2014-02-23 Bernhard Reiter <ockhamraz.or.at>
* Fix loading of FAQ from recipe card and shopping UI.
* Fix web browser invocation from About dialog under Windows.
* Remove obsolete exception clause.
* Under Windows, use Adobe Reader to print reportlab created PDF.
2014-02-22 Bernhard Reiter <ockhamraz.or.at>
* Simplify loading of LICENSE file into About dialog.
* Add donations text and buttons to the About dialog.
* Update ChangeLog.
2014-02-20 Bernhard Reiter <ockhamraz.or.at>
* Add 2014 to copyright years.
2014-02-18 Bernhard Reiter <ockhamraz.or.at>
* Some gourmet/backends/db.py cleanup.
* When connecting to a MySQL database, force UTF-8 charset.
2014-02-09 Bernhard Reiter <ockhamraz.or.at>
* Replace deprecated PoolListener by event.listens_for decorator.
2014-02-08 Bernhard Reiter <ockhamraz.or.at>
* Remove \r escape sequence from sl.po.
* Change Yield unit accelerator in batch editor, update po files.
* Fix a translation bug in nl.po.
* Fix bug in Dutch translation.
2014-01-23 Bernhard Reiter <ockhamraz.or.at>
* UTF-8-decode ingkey in shopping_key_editor_plugin.
2014-01-21 Bernhard Reiter <ockhamraz.or.at>
* Fix a regression introduced by the last commit.
2014-01-20 Bernhard Reiter <ockhamraz.or.at>
* When de-activating Browse Recipes plugin, remove its tab.
2014-01-12 Bernhard Reiter <ockhamraz.or.at>
* Fix a typo.
2014-01-11 Lyra <lyra2108gmail.com>
* FIX: Create a shopping list even if one entry hasn't an amount
2014-01-06 Bernhard Reiter <ockhamraz.or.at>
* Some cleanup.
* Clean up gourmet/exporters/exporter.py a bit.
* Update MANIFEST.in.
* Remove tools/ directory.
* Remove an obsolete reportlab version check and related code.
2014-01-05 Thomas M. Hinkle <tmhinklegmail.com>
* Hackishly remove indents needed after if statement to workaround build error.
* Allow null units to be looked up. Otherwise, we can never get conversions for things like "3 eggs."
* Remove GourmetWindows.pyw
2014-01-05 Bernhard Reiter <ockhamraz.or.at>
* Revert "Fix stupid mistake."
2014-01-04 Bernhard Reiter <ockhamraz.or.at>
* Check if active_plugin is really there.
2014-01-03 Bernhard Reiter <ockhamraz.or.at>
* Add myself as maintainer in setup.py.
* Add 2012, 2013 to copyright years.
* Add comment to setup.py.
* Remove obsolete README.windows.md.
* Fix stupid mistake.
* Fix a typo in INSTALL.md.
* Update TODO, rename to TODO.md.
* Update CODING.
* Add more Windows building instructions to INSTALL.md.
* Disable the PDFPrintPlugin under Windows as poppler doesn't work there.
* Use Python logging instead of printing a traceback.
* Migrate from py2exe to cx_Freeze.
* Set data_dir correctly if Gourmet is frozen.
* Update IPython requirement in INSTALL.md.
* Update ChangelLog.
2014-01-02 Bernhard Reiter <ockhamraz.or.at>
* Remove NSIS related files.
2014-01-01 Bernhard Reiter <ockhamraz.or.at>
* Replace PIL by Pillow requirement.
* Move *.gourmet-plugin.in files to gourmet/plugins/.
* Remove an obsolete line.
* Replace pywin32 requirement by a ctypes function call.
* Small whitespace fix.
* Remove missing signal handlers.
* Bump version to 0.17.0.
* Fix a translation bug in po/de.po.
2013-12-15 Bernhard Reiter <ockhamraz.or.at>
* Add reportlab packages to setup.py so py2exe includes them.
2013-11-19 Bernhard Reiter <ockhamraz.or.at>
* De-dupe AboutDotComWebParser class.
* Move duplicate code into a common base class member.
* Remove some redundant code.
* Remove obsolete KeyManagerOldSchool class.
* Remove duplicate code from gourmet/recipeManager.py.
* Remove duplicate file gourmet/convertGui.py.
2013-11-15 Bernhard Reiter <ockhamraz.or.at>
* Fix wildcard imports.
2013-11-13 Bernhard Reiter <ockhamraz.or.at>
* Fix another PIL import.
2013-11-02 Joe Sapp <joebabyjoe>
* Remove "Application" from desktop entry
2013-01-11 Bernhard Reiter <ockhamraz.or.at>
* s/options/args/ to make bin/gourmet launch.
2013-01-11 Jeff Raber <jeff.rabergmail.com>
* Replace deprecated optparse with argparse, per issue 683 [1]
2013-10-12 Bernhard Reiter <ockhamraz.or.at>
* Fix a typo that broke the nutritional information plugin DB upgrade.
2013-10-11 Bernhard Reiter <ockhamraz.or.at>
* Remove some more metakit remnants.
* Update po[t] files.
* Remove legacy_db (i.e. metakit) stuff.
2013-10-10 Bernhard Reiter <ockhamraz.or.at>
* Clean up recindex.py.
* Clean up GourmetRecipeManager.py.
* Clean up reccard.py
2013-09-30 Bernhard Reiter <ockhamraz.or.at>
* In PDF export, print title only once (as heading).
2013-09-20 Bernhard Reiter <ockhamraz.or.at>
* Only set_current_folder if get_user_special_dir(USER_DIRECTORY_PICTURES) isn't None.
2013-09-09 Bernhard Reiter <ockhamraz.or.at>
* Update *.po[t] files.
* Fix batch editing of categories.
* Translate attributes in batch editor's confirmation message box.
* In Batch Editor, replace "Servings" by "Yield" and "Yield Unit" rows.
* Small fix to ui/catalog/README.
* Remove some obsolete code checking for old gtk versions.
* Remove some spurious imports from recindex.py.
2013-09-06 Bernhard Reiter <ockhamraz.or.at>
* s/ui/ui_string/ fix in a couple of files.
2013-09-01 Bernhard Reiter <ockhamraz.or.at>
* Remove some spurious Image (i.e. PIL) imports.
2013-08-30 Bernhard Reiter <ockhamraz.or.at>
* Update Changelog.
2013-08-29 Bernhard Reiter <ockhamraz.or.at>
* Update version to 0.16.1 in gourmet/version.py.
* Update MANIFEST.in.
* Update translation files.
2013-08-28 Bernhard Reiter <ockhamraz.or.at>
* Little schema.org parser improvement.
* Properly raise an exception in print_plugin.py.
* Fix a translation bug in po/de_AT.po.
* Update allrecipes.com test recipe URL.
In (commented out and still dysfunctional part of) testImporters.py.
2013-08-27 Bernhard Reiter <ockhamraz.or.at>
* Drop Python version 2.6 in INSTALL.md.
* Add PYTHON_ARGCOMPLETE_OK string to bin/gourmet.
* Remove some obsolete imports from gourmet/importers/html_importer.py.
* Fix testImporters.py.
* Merge pull request 724 from sappjw/master
Replace more 'Image' imports with Pillow-compatible blocks
* Fix allrecipes.com importer, by extending our newly created schema_org_parser.
Also add a test gourmet/test/test_allrecipes_com_plugin.py which is capable of
testing the importer offline, using gourmet/test/recipe_files/allrecipes_com.html.
(Trying to integrate such an offline test into the existing, commented-out
allrecipes.com test in gourmet/test/testImporters.py proved a nightmare as
the importer code is tightly interwoven with the web page download and interactive
importer functions.)
Fixes 261
* Make ica.se importer aware of a recipe's yields property.
* Scrap more schema.org/Recipe fields.
* Remove obsolete gtk import from gourmet/importers/generic_recipe_parser.py.
* Have ica_se tests check for presence of category field.
* Factor schema.org parsing out of ica_se_plugin.py into a newly created schema_org_parser.py.
* Have gourmet/test/test_ica_se_plugin.py also test for cooktime parsing.
* Small fix for more a expressive test result.
* Small fix, mainly for future BeautifulSoup4 compliance.
* Move foodnetwork and ica.se importer tests to gourmet/test/.
2013-08-27 Joe Sapp <joebabyjoe>
* Replace more 'Image' imports with Pillow-compatible blocks
2013-08-25 Bernhard Reiter <ockhamraz.or.at>
* Fix testImporters.py.
Among other things, use a temporary in-memory SQLite database for testing.
2013-08-24 Bernhard Reiter <ockhamraz.or.at>
* Truncate Source field in PDF export.
Fixes 721
2013-08-10 Bernhard Reiter <ockhamraz.or.at>
* One more string exception to fix.
2013-08-09 Bernhard Reiter <ockhamraz.or.at>
* s/thinkle.github.com/thinkle.github.io/
2013-08-06 Bernhard Reiter <ockhamraz.or.at>
* Merge pull request 723 from gyp/master
importing gettext in exportManager as it has localized strings
2013-08-06 Peter Gyongyosi <gypbalabit.hu>
* importing gettext in exportManager as it has localized strings
This fixes https://bugs.launchpad.net/gourmet/+bug/1157969
2013-08-04 Bernhard Reiter <ockhamraz.or.at>
* Add INSTALL.md.
2013-07-30 Bernhard Reiter <ockhamraz.or.at>
* Add db upgrade logic for the fix introduced with the previous commit.
Fixes 711.
* Merge pull request 722 from rleibman/master
Fixing issue with mysql, VARCHAR requires a length
2013-07-30 Roberto Leibman <robertoleibmanland.com>
* Fixing issue with mysql, VARCHAR requires a length, I figure 255 is probably good enough
2013-06-01 Bernhard Reiter <ockhamraz.or.at>
* Remove obsolete tools/upgrade_pre_script.py.
* Remove hardwired sys.path.append('/usr/share/gourmet') lines.
2013-05-27 Bernhard Reiter <ockhamraz.or.at>
* Additional fix for plugins/python_shell/ipython_view.py.
* Fix interactive shell plugin to work with current IPython versions.
Achieved by updating plugins/python_shell/ipython_view.py
(which was taken from the Accerciser project)
to the commit before Accerciser's Python3 migration [1],
reverting their previous PyGI migration [2].
[1] https://git.gnome.org/browse/accerciser/commit/?id=b9bb2f48eebbf9f21ca633b6ecd6a58d6befe04a
[2] https://git.gnome.org/browse/accerciser/commit/?id=48b8c06d598f84943ab7a0af1259408b7409484d
* Prepare plugins/python_shell/ipython_view.py for update.
2013-05-17 Bernhard Reiter <ockhamraz.or.at>
* Remove a bunch of unused imports.
* Fix setup.py so it works on non-Windows platforms again.
* Remove obsolete checks for PyGTK version < 2.8.
* Remove obsolete gtk_extras/ThumbnailGenerator.py.
* Remove obsolete gtk_extras/chooserNotebook.py.
* Remove obsolete gtk_extras/fauxDruid.py.
* Remove obsolete gtk_extras/FauxActionGroups.py.
2013-05-07 jens persson <jenspersson.cx>
* Buglet found with tests and som whitespace triming in foodnetwork plugin
* Add tests for foodnetwork plugin
* Fix buglet discovered due to tests
* Add tests for ica.se plugin
2013-04-20 Bernhard Reiter <ockhamraz.or.at>
* Merge pull request 715 from MrShark/master
An importer for ica.se (Swedish storechain)
2013-04-11 jens persson <jenspersson.cx>
* First shot on an importer for ica.se
2013-04-06 Bernhard Reiter <ockhamraz.or.at>
* Revert "Add back gnomeprinter.py." (Accidental commit, meant to be in a new branch.)
This reverts commit acad0d848f7c0567bf553dae27d7e6bbd3fe67a4.
* Add FAQ item about Gourmet's data storage location.
* Add back gnomeprinter.py.
* Remove obsolete PIL import.
* Add 'Francouzská' and 'Indická' (French and Indian) to defaults_sk.py
* Add "French" and "Asian/Indian" to Cuisine defaults.
Fixes 713.
2013-03-25 Bernhard Reiter <ockhamraz.or.at>
* Add Development Tools section (taken from the Wiki).
* Move Windows version warning to README.windows.md.
2013-03-23 Bernhard Reiter <ockhamraz.or.at>
* Fix a bug in defaults_ru.py
2013-03-12 Bernhard Reiter <ockhamraz.or.at>
* Merge setup_win.py into setup.py.
Also add some extra functionality to include required Gtk+ Theme files.
* Add __init__.py to web_plugin to turn it into a module.
Otherwise, there's an error with py2exe.
2013-03-10 Bernhard Reiter <ockhamraz.or.at>
* Add (Eclipse's) .settings/ dir to .gitignore
* Fix a bug in get_pluralized_form.
2013-03-09 Bernhard Reiter <ockhamraz.or.at>
* Remove some obsolete imports from gourmet/importers/html_importer.py.
* Remove obsolete Queue import from gourmet/importers/imageBrowser.py.
This was causing problems with py2exe.
* Add *.pyo files to .gitignore.
2013-03-06 Bernhard Reiter <ockhamraz.or.at>
* Fix a bug that caused gourmet to fail when LC_ALL=C
2013-03-06 Bernhard Reiter <ockhamraz.or.at>
* Remove -dev suffix from version in gourmet/version.py.
* Update MANIFEST.in.
Running "python setup.py sdist" will now exactly reproduce
the current git state.
* Add .project to .gitignore.
* Remove gourmet/.gitignore as omission of *.pyc files is recursively
covered by our root .gitignore
* Remove bin/gourmet-importer and bin/gourmet-importer-profile.
Both are apparently unused, unmaintained and severely outdated.
* Remove translation scripts from po/ as they're obsoleted
by distutils-extra (see CODING file).
* Replace 'import Image' by 'try: from PIL import Image
except ImportError: import Image'.
Rationale: http://lists.debian.org/debian-python/2013/02/msg00017.html
* Update Gourmet and Python version in windows/gourmet-installer.nsi.
* Update *.po files to match current source.
* Update *.po files from Launchpad Translations.
* Add author_email field to setup.py.
* Update MANIFEST.in.
* Remove windows/Gourmet.pyw from po/POTFILES.in.
2013-03-04 Bernhard Reiter <ockhamraz.or.at>
* Remove obsolete files.
* Update LICENSE (new FSF address).
* Remove windows/Gourmet.pyw as it's obsoleted by bin/gourmet.
* Fix some py2exe parameters.
2013-03-03 Bernhard Reiter <ockhamraz.or.at>
* Fix directory locations in setup_win.py.
* Fix import path in setup_win.py
2013-02-27 Bernhard Reiter <ockhamraz.or.at>
* Backup when upgrading the DB to v0.16.
* Remove obsolete comment.
* Remove obsolete file gourmet/PngImagePluginUpToDate.py.
* Simplify a conditional expression.
* Avoid a KeyError when pressing Enter on an empty search entry.
* Remove gourmet/importers/mealmaster_importer.py from po/POTFILES.in.
2013-02-20 Bernhard Reiter <ockhamraz.or.at>
* Remove gourmet/importers/mealmaster_importer.py as it's obsolete.
That file lives now in gourmet/plugins/import_export/mealmaster_plugin/.
* Remove shebangs from non-executable files.
* Change wording of README.md a bit.
* Merge pull request 694 from MrShark/master
Make working in a virtualenv easier
2013-02-14 jens persson <jenspersson.cx>
* Update documentation
* changed /usr/bin/python to /usr/bin/env python to alow usage in virtualenvs
* Remove hardcoded install path
2013-02-06 Bernhard Reiter <ockhamraz.or.at>
Fix 288.
2013-02-05 Bernhard Reiter <ockhamraz.or.at>
* Remove some clauses that checked for SQLALchemy < 0.6 as we're relying on >= 0.7 anyway now.
* Add Integer primary key columns (named 'id') to all remaining tables.
2013-02-04 Bernhard Reiter <ockhamraz.or.at>
Remove pickle_key and pickle_val options from dbDic.
2013-02-03 Thomas Mills Hinkle <tompebble>
* gourmet/convert.py (integerp): Restore NUMBER_END_NO_RANGE_REGEXP
(integerp): Quick fix to NumberEnry
* gourmet/backends/db.py (regexp): Fix sqlite custom function
error -- regexp searching now works. This closes 691. This bug
was caused by a change in SQLAlchemy behavior 0.6->0.7.
2013-02-02 Thomas Mills Hinkle <tompebble>
* gourmet/plugins/import_export/mealmaster_plugin/mealmaster_importer.py (mmf_constants.__init__): servings->yields
* gourmet/plugins/import_export/krecipe_plugin/krecipe_importer.py (KrecHandler): servingsyields->
* gourmet/importers/importer.py (Importer.commit_rec): Update servings->yields.
* gourmet/backends/db.py (RecData.add_rec): Update servings/yields
code.
* gourmet/exporters/exportManager.py
(ExportManager.offer_multiple_export): Fix bug 234, 691.
2013-02-01 Bernhard Reiter <ockhamraz.or.at>
Unpickle Booleans and Strings that have erroneously remained pickled in the
database during previous Metakit -> SQLite -> SQLAlchemy database migrations.
Fixes 678.
2013-01-30 Bernhard Reiter <ockhamraz.or.at>
* Rename gourmet/sound_gnome.py to gourmet/sound_gst.py.
* Restructure directory layout once again.
Move images, icons, sound, and style directories to data/;
this is in preparation of a possible future move to DistutilExtra's
auto setup (see 679).
* Install FAQ and LICENSE to share/doc/gourmet/.
* Prepend chromium-browser to list of *.html document launchers.
* Prepend libreoffice to list of *.rtf document launchers.
* When exporting, point Save as dialog to user's Documents directory by default.
2013-01-29 Thomas Mills Hinkle <tompebble>
* gourmet/plugins/nutritional_information/nutrition.py
(NutritionData.get_matches): Make sure get_matches returns a list
as expected, not None.
(NutritionData.get_nutinfo_for_item): Handle empty units correctly.
(NutritionData.get_conversion_for_amt): Handle empty units correctly.
* gourmet/plugins/import_export/mealmaster_plugin/mealmaster_exporter.py (mealmaster_exporter.__init__): Fix boneheaded typo.
(mealmaster_exporter.write_attr): Update servings-->yields
(mealmaster_exporter.write_attr): Reduce padding to conform to MMF standard
(mealmaster_exporter.write_categories): Reduce padding to conform to MMF standard
(mealmaster_exporter.write_ing): Allow for empty units (fix boneheaded error)
* gourmet/plugins/import_export/html_plugin/html_exporter.py
(html_exporter.write_text): Fix NAME_TO_ATTR lookup issue w/
plugins.
* gourmet/plugins/field_editor/fieldEditor.py
(FieldEditor.fieldChangedCB): Fix possible issue with NAME_TO_ATTR
lookups and plugins searching for attributes that don't exist
there.
* gourmet/plugins/import_export/mealmaster_plugin/mealmaster_importer.py
(mmf_constants.__init__): Respect new Gourmet norms regarding
standard ingredient abbreviations (remove periods, mostly)
* gourmet/plugins/import_export/mealmaster_plugin/mealmaster_exporter.py
(mealmaster_exporter.__init__): Make sure category comes first as
per mealmaster specs.
(mealmaster_exporter.__init__): Remove redundant/stupid code
(mealmaster_exporter.write_ing): Fix ingredient code and make more
robust against future changes in defaults.
2013-01-25 Bernhard Reiter <ockhamraz.or.at>
* Mention BeautifulSoup in the Extra Requirements section of README.md.
* Merge pull request 689 from jraber/unbundleBeautifulSoup
Removed bundled (old) versions of BeautifulSoup.py
* Change back perms for bin/gourmet to 755.
2013-01-17 Jeff Raber <jeff.rabergmail.com>
Removed bundled (old) versions of BeautifulSoup.py
BeautifulSoup.py seems to be available in the common linux distros. Otherwise, it can
be installed with 'pip install BeautifulSoup'
Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=895228
2013-01-15 Bernhard Reiter <ockhamraz.or.at>
Add slogan to README.md ;-)
2013-01-12 Thomas Mills Hinkle <tompebble>
* gourmet/importers/importManager.py: gettext fix
2013-01-12 Bernhard Reiter <ockhamraz.or.at>
* Add new Integer primary keys to the shopcats, shopcatsorder, and pantry tables.
Those tables had Text columns as primary keys, which, when used with MySQL,
requires an extra parameter specifying the length of the substring that MySQL
is supposed to use for the key. Thus, we're adding columns named id of type
Integer and make them the new primary keys instead.
Fixes 681.
* Move *.gourmet-plugin files to plugins/, install to share/gourmet/plugins.
This is required for python-distutils-extra to be able
to translate and install *.gourmet-plugin files properly.
2013-01-09 Bernhard Reiter <ockhamraz.or.at>
* Change data/recipe.dtd perms from 755 to 644.
* .gitignore: Remove obsolete lines, add .pydevproject. .cvsignore: Delete.
2013-01-07 Bernhard Reiter <ockhamraz.or.at>
* Enable building of *.mo and *.gourmet-plugin files during development.
Furthermore, update CODING with instructions, and remove
bin/gourmet_in_place as it's now obsolete.
* Modify file locations in built settings.py, not the one in the source tree.
2013-01-06 Thomas Mills Hinkle <tompebble>
* gourmet/GourmetRecipeManager.py (RecGui.setup_main_window): Make sure search entry has focus.
* gourmet/plugins/listsaver/shoppingSaverPlugin.py: gettext fix
* gourmet/plugins/key_editor/recipeEditorPlugin.py: gettext fix
* gourmet/plugins/import_export/pdf_plugin/print_plugin.py: Fix gettext
2013-01-06 Bernhard Reiter <ockhamraz.or.at>
* Remove obsolete cruft from windows/ directory.
* Update website, download link and Tom's email address in NSIS script.
* In the HTML output, don't translate class names.
Otherwise, this would require CSS selectors to be also localized and would
not work across languages. That's obviously not how it should be done.
* Remove modules_check and other cruft from setup.py
This hasn't been used or updated for a while, and as it isn't really
supported by distutils, it has been more a source of redundancy (read
confusion and maintenance burden) in conjunction with dependencies
listed in our README.
* Rename README to README.md, and use Markdown to style it.
* Remove bin/__init__.py as it's obsolete now.
* Minor line layout fix.
* Replace our custom tools/gourmet_distutils.py by a python-distutils-extra dependency.
* Update po/POTFILES.in and po/gourmet.pot.
2013-01-05 Bernhard Reiter <ockhamraz.or.at>
* Replace some wildcard imports.
* Remove some cruft from gourmet/__init__.py.
2013-01-02 Bernhard Reiter <ockhamraz.or.at>
* Update requirements in the README file.
* Update setup.cfg to at least somewhat reflect current RPM based distributions.
* Remove rpm/gourmet.fedora.spec and rpm_build.sh.
This stuff was severely outdated, duplicates information from setup.py and
setup.cfg (if we're really going to keep providing RPMs which hasn't been done
during the past releases), and is maintained better at Fedora anyway.
* Change more URLS from Sourceforge to GitHub.
2013-01-01 Bernhard Reiter <ockhamraz.or.at>
* Change old SourceForge URLs to new GitHub ones where applicable.
* Move practically all program information to version.py and import it from there into setup.py and setup_win.py.
* Fix some install locations.
* Add back toolbar, with an option in the preferences dialog to hide it.
* Don't fall back to version = 0.11.0 in setup.py.
* Simplify some code.
2012-12-31 Bernhard Reiter <ockhamraz.or.at>
Remove BUG_URL link from gglobals.py as its both outdated and not used anywhere.
2012-12-30 Bernhard Reiter <ockhamraz.or.at>
* Don't use Gtk.InfoBar yet as it requires pyGtk >= 2.22. We'll keep this in a branch for now.
* Remove obsolete line from gglobals.py
* Move info.py contents back into version.py as we got rid of the critical circular dependency with OptionParser.py.
* Remove checks for gtk.CellRendererCombo as it has been part of GTK since v2.6.
* Determine location of installed files properly.
* Another stylesheet path fix in html_exporter.py.
2012-12-28 Bernhard Reiter <ockhamraz.or.at>
* Add *.html pattern to html_exporter_plugin.py's saveas_filters.
* Fix default.css location in HTML exporter plugin.
* Remove custom file type widget from FileSelectorDialog.
* Remove FileChooserSaveAs.py as it has long been obsoleted by gtk_extras/dialog_extras.py.
2012-12-25 Bernhard Reiter <ockhamraz.or.at>
* Let tools.gourmet_distutils.py take care of translation and installation of gourmet.desktop.
* Install png and svg icons to locations that enable desktop environments to pick proper file.
See http://standards.freedesktop.org/icon-theme-spec/icon-theme-spec-latest.html#directory_layout
2012-12-19 Bernhard Reiter <ockhamraz.or.at>
Remove obsolete GourmetFauxThreads.py and GourmetThreads.py.
2012-12-17 Bernhard Reiter <ockhamraz.or.at>
* Fix db.py to allow (dev) version suffices like 0.16.0-dev.
* Add patch to include schema.org metadata for HTML exporter by SF user freedo.
See https://sourceforge.net/tracker/?func=detail&aid=3519632&group_id=108118&atid=649654
and http://www.schema.org/Recipe, respectively.
* Add plurals handling fix by A. Katz.
"Just a quick patch to fix a bug in default.py.
The function for converting a plural to a singular unit had two issues.
a) WORD_TO_SING_PLUR_PAIR keys are lowercase but the word being handed to the function could be in any case
b) if the word is not in WORD_TO_SING_PLUR_PAIR it does nothing, this patch tries lang.guess_singulars before
giving up."
See https://sourceforge.net/tracker/?func=detail&aid=3420657&group_id=108118&atid=649654
2012-11-27 Bernhard Reiter <ockhamraz.or.at>
Remove obsolete line from setup.py
2012-11-26 Bernhard Reiter <ockhamraz.or.at>
* Fix gourmet/backends/db.py so it works with SQLAlchemy >= 0.7.
* Remove po/*/LC_MESSAGES/gourmet.mo files as they are generated at build time from po/*.po files.
2012-11-22 Bernhard Reiter <ockhamraz.or.at>
Remove obsolete file (now in gourmet/plugins/import_export/mastercook_import_plugin/)
2012-05-25 Thomas Hinkle <tmhinklegmail.com>
* Fixed conflict
* ++gettext
2012-04-27 Tom <tomlocalhost6.localdomain6>
* gourmet/plugins/unit_display_prefs/__init__.py: import gettext
* gourmet/plugins/python_shell/__init__.py: import gettext
* gourmet/plugins/nutritional_information/nutrition.py (NutritionData.get_nutinfo): remove verbosity
* gourmet/plugins/nutritional_information/nutPrefsPlugin.py: import gettext
* gourmet/plugins/nutritional_information/main_plugin.py: import gettext
* gourmet/plugins/field_editor/__init__.py: import gettext
* gourmet/plugins/email_plugin/emailer_plugin.py: import gettext
* gourmet/plugins/duplicate_finder/recipeMergerPlugin.py: import gettext
* gourmet/plugin_gui.py: import gettext
* gourmet/info.py: import gettext
* gourmet/plugin_loader.py (Pluggable.get_plugin_by_module): Add
convenience function for grabbing plugin instances.
2012-04-22 Bernhard Reiter <ockhamraz.or.at>
Bump version number to 0.16.0-dev
2012-03-06 Bernhard Reiter <ockhamraz.or.at>
* Remove gettext_setup.py as its logic has been split in settings.py and gglobals.py (and info.py)
* Remove some obsolete logic from setup.py.
* Move localized stuff from version.py to newly created info.py to avoid circular dependencies.
* Move logic that searches for the data files path from gglobals.py to newly created settings.py.
* Wrap the path finding stuff in bin/_preamble.py in a function
* Add __init__.py to the bin/ directory so we can import it as a module.
* Rename --data-directory cmdline option to --gourmet-base.
* Fix occurrences of HELP_FILE constant.
2012-02-27 Bernhard Reiter <ockhamraz.or.at>
* Remove --image-directory and --ui-directory cmd line options, as those are now subdirectories of --data-directory.
* Replace custom inquiry if existing file should be overwritten by GTK one.
2012-02-26 Bernhard Reiter <ockhamraz.or.at>
* Replace create_manifest.py by MANIFEST.in
* Remove some more duplicates
2012-02-20 Bernhard Reiter <ockhamraz.or.at>
Minor setup.py fix
2012-02-16 Bernhard Reiter <ockhamraz.or.at>
Remove tools/gourmet_distutils as it's unused (there's still tools/gourmet_distutils.py)
2012-02-12 Bernhard Reiter <ockhamraz.or.at>
* Move website URL from GRM.py to version.py
* Replace old splash screen by new one
* Change directory layout once more. Looks good now, but still a lot of code fixes ahead.
2012-02-11 Bernhard Reiter <ockhamraz.or.at>
* Un-hardwire intltool's path under windows in setup.py
* Fix FAQ and LICENSE locations in code
* Update setup.cfg, mostly to use .bz2 compression
* Restructure data/ directory
* Add images/gourmet.svg, and remove a couple of outdated images.
* Rename glade/ directory to ui/
* Restructure directory layout to comply more to
http://as.ynchrono.us/2007/12/filesystem-structure-of-python-project_21.html
2012-02-10 Thomas Hinkle <tmhinklegmail.com>
* Fixed density of sugar (I think I'd used the density from a chemistry,
rather than a cooking, site, which didn't account for the air between
the sugar crystals when you measure it)
* Don't fail if elib.intl isn't present -- print a warning instead.
* Glade-->UI
2012-02-09 Bernhard Reiter <ockhamraz.or.at>
Rename i18n/ directory to po/ so intltool-update --maintain will work
2012-02-08 Bernhard Reiter <ockhamraz.or.at>
* Images cleanup
* Remove a stray .po file
* Rename gladed command line option to uid
* Rename some more methods from glade to ui (or builder)
* s/gladebase/uibase/g
* Use updated i18n/de.po from Launchpad
2012-02-07 Bernhard Reiter <ockhamraz.or.at>
* Replace custom hack in setup_gettext.py by elib.intl module
* Add Lauchpad header to i18n/de.po
2012-02-06 Bernhard Reiter <ockhamraz.or.at>
Update i18n/gourmet.pot translation template
2012-02-05 Bernhard Reiter <ockhamraz.or.at>
* New German translations by nobody (at) t4b.me
* i18n string unification fixes by nobody (at) t4b.me
* Another i18n fix
2012-02-01 Bernhard Reiter <ockhamraz.or.at>
* Yet another (somewhat prominent) i18n fix.
* Internationalize src/lib/plugins/import_export/archive_plugin/zip_importer_plugin.py
* s/ = /=/ in the *.gourmet-plugin.in files, which previously impeded
localization, as intltool-merge can't deal with whitespaces on the wrong places.
2012-01-31 Bernhard Reiter <ockhamraz.or.at>
* Fix i18n/POTFILES.in to properly include .gourmet-plugin.in files
* Add Russian localization files i18n/ru.po and src/lib/defaults/defaults_ru.py
by Alexander Prokoudine, from our Sourceforge patch tracker: see
https://sourceforge.net/tracker/?func=detail&aid=2858486&group_id=108118&atid=649654
and https://sourceforge.net/tracker/?func=detail&aid=2858485&group_id=108118&atid=649654
* Fix sort of a typo
* Replace occurrences of .props.someproperty by {g|s}et_property('someproperty') to fix bug 3480177
* Replace occurrences of .props.someproperty by {g|s}et_property('someproperty') to fix bug 3480177
* Another fix to make i18n work.
2012-01-30 Bernhard Reiter <ockhamraz.or.at>
Small i18n related fix.
2012-01-29 Bernhard Reiter <ockhamraz.or.at>
* Add domain=gourmet attribute to the interface tag in the .ui files
* Update i18n/POTFILES.in to reflect .glade -> .ui file conversion
* Add [type: gettext/glade] prefix to .ui files in i18n/POTFILES.in
so that they're actually searched for strings by intltool.
* Add locale.bindtextdomain('gourmet',DIR) so that the strings from
our .ui (and glade) files are actually translated -- which they previously weren't.
2012-01-21 Bernhard Reiter <ockhamraz.or.at>
* Add i18n/generate_mo.sh as i18n/generate_mo.py doesn't seem to work for me.
* In src/lib/version.py, import gettext_setup so trings get translated.
* Make ImageSelectorDialog open the user's Pictures directory when launching it.
2012-01-19 Bernhard Reiter <ockhamraz.or.at>
* Remove obsolete cmd line options documentation from gourmet.1
* Move LICENSE displaying logic from version.py to GourmetRecipeManager.py
as it requires some imports; and add LICENSE to setup.py
2012-01-17 Bernhard Reiter <ockhamraz.or.at>
Add LICENSE to MANIFEST as it's needed by the About dialog.
2012-01-12 Bernhard Reiter <ockhamraz.or.at>
Comment out an obsolete windows workaround.
2012-01-11 Bernhard Reiter <ockhamraz.or.at>
Remove a stray file that had sneaked into MANIFEST and i18n/POTFILES.in
2012-01-10 Bernhard Reiter <ockhamraz.or.at>
* Regenerate i18n/gourmet.pot and i18n/*.po files by running i18n/grab_strings.sh
* Update i18n/POTFILES.in based on MANIFEST contents
* Update MANIFEST
* Update POTFILES, translation template (gourmet.pot), and merge into individual *.po files
* Fix Nutritional Information plugin
2012-01-07 Bernhard Reiter <ockhamraz.or.at>
Remove make_star_button and make_star_image functions as they aren't needed anymore.
2012-01-06 Bernhard Reiter <ockhamraz.or.at>
* Replace gnome.sound_* stuff with gstreamer (gst) stuff.
This should conclude our removal of (python-)gnome dependencies.
We now need pygtk >= 2.16 and (py)gst instead (which is much less heavy-weight than gnome).
* Remove gnome stuff from the pdf_exporter.py test code.
* Replace gnome-open by the cross-desktop xdg-open command.
* Remove gnomeprint import from gglobals.py
* Remove obsolete 'printer' command line option.
* Remove call to gnome.url_show as we can assume gtk.show_uri to exist in PyGTK >= 2.16
2011-12-30 Bernhard Reiter <ockhamraz.or.at>
Replace gnome.ui.About dialog by gtk.AboutDialog
2011-12-27 Bernhard Reiter <ockhamraz.or.at>
Use an InfoBar to display deletion warning message
2011-12-19 Bernhard Reiter <ockhamraz.or.at>
Add alignment objects to recCardDisplay.ui as that information got lost during gtk.Builder migration.
2011-12-17 Bernhard Reiter <ockhamraz.or.at>
Add NutritionLabel widget back to nut_recipe_card_display.ui which got lost in the migration to gtk.Builder
2011-12-16 Bernhard Reiter <ockhamraz.or.at>
* Fix a signal handler related bug due to gtk.Builder migration
* Remove import gtk.glade statements everywhere.
* Remove custom_handlers stuff as it's obsolete now after migrating to gtk.Builder.
* Migrate even the faux stuff to gtk.Builder
* Remove references to *.glade files in setup.py and create_manifest.py; recreate MANIFEST.
* Migrate the Nutritional Information plugin to gtk.Builder. This requires still some polishing.
* Change NumberEntry's default_to_fractions argument default value to False
(as that's what it's set to practically everywhere, and it will make migration to gtk.Builder easier).
* Forgot to add keyeditor.ui and remove keyeditor.glade
* Migrate recipeMerger.py to gtk.Builder
* Migrate keyEditor.py to gtk.Builder
* Remove app.glade (in favor of app.gui)
* Migrate chooserNotebook.py to gtk.Builder (though currently unused)
* Remove recipeMerger.py from src/lib as it's now in a plugin subdirectory
* Replace remaining glade.XML occurrences in GRM.py by gtk.Builder equivalents.
* Migration to gtk.Builder: Add app.ui and change remaining occurrences of app.glade to app.ui
* Replace checks for app.glade by checks for app.ui
* Remove an unnecessary import from src/lib/reccard.py
* Migrate batchEditor from glade to gtk.Builder
* Remove glade/keyeditor.glade as that files is already in src/lib/plugins/key_editor/
* Remove glade/*.glade and glade/*.gladep files for which conversion to *.ui is complete.
* Migrate recipe card to gtk.Builder
2011-12-15 Bernhard Reiter <ockhamraz.or.at>
* Fix reccard.py after migration to gtk.Builder; plus two fixes to ratingWidget.py
* Add a README to glade/catalog
* More recCardDisplay to gtk.Builder fixes
* Properly migrate recCardDisplay to gtk.Builder
* Create gourmetwidgets catalog for glade, adapt widgets code.
2011-12-13 Bernhard Reiter <ockhamraz.or.at>
Start migrating recCardDisplay to gtk.Builder
2011-07-01 Tom <tomlocalhost6.localdomain6>
* src/lib/convert.py (NUMBER_FINDER_REGEXP): Avoid seeing things
with a terminal . or , as numbers, thus avoiding seeing numbered
lists as ingredients.
2011-06-28 Tom <tomlocalhost6.localdomain6>
* src/lib/reccard.py (IngredientController.commit_ingredients.commit_iter):
Fix attr lookup error in corner cases.
2011-03-20 Tom <tomlocalhost6.localdomain6>
* src/lib/version.py (version): Version --> 0.15.9
* src/lib/shopgui.py (ShopGui.show): Make sure window shows up
when something's added.
* src/lib/backends/db.py (RecData.initialize_connection): Remove
threadlocal strategy. This may be a mistake, but it seems to clear
up the commit errors numerous people were experiencing.
* src/lib/shopgui.py (ShopGui.__init__): Make sure popup menu gets
set-up for changing categories in shopping list.
* src/lib/reccard.py (shop_for_recipe_cb): Fix shopping list, and improve error messages.
* src/lib/GourmetRecipeManager.py (StuffThatShouldBePlugins.shop_recs): fix shopping list.
* src/lib/shopping.py: Fix refactoring error.
* src/lib/shopgui.py (ShopGui.getOptionalIngDic): Fix refactoring
error that broke "add-to-shopping list" behavior
2011-03-08 Tom <tomlocalhost6.localdomain6>
* src/lib/version.py (version): Version --> 0.15.8
2011-03-07 Tom <tomlocalhost6.localdomain6>
* src/lib/backends/db.py (RecData._force_unicode): Don't unicode-ify images!
2011-02-02 Tom <Thomas_Hinklesf.net>
* src/lib/plugins/import_export/mealmaster_plugin/mealmaster_importer.py:
Adapt mealmaster plugin to handle 'Windows Gourmet' file (who
knows what this program was, but we appreciate their name!). The
adaptations shouldn't do any harm to mealmaster, and may help with
imports of some of the many broken mealmaster files that exist on
the internet.
2011-01-05 Tom <Thomas_Hinklesf.net>
* create_manifest.py:
(write_lst_to_file): Include *.ui files!
* README: Remove obsolete material about Gnomeprint.
* src/lib/plugin.py (RecEditorModule.grab_focus): Add method for
editor modules to setup focus for editing.
* src/lib/reccard.py (RecEditor.present): Add code to allow each
module to grab focus programatically to set up editing.
(DescriptionEditorModule.grab_focus): Make DescriptionEditorModule
grab focus for the "title" box right away, so that when you open
the editor window you can start typing.
* src/lib/backends/db.py (RecData.get_unique_values): Fix bug in
DB code that caused a SQL error.
2010-12-16 Tom <Thomas_Hinklesf.net>
* src/lib/version.py (version): Version->0.15.7
* src/lib/backends/db.py (RecData.get_unique_values): Patch from
Steve Langasek for Ubuntu bug 534088
(RecData.get_unique_values): Fix handling of null criteria.
2010-12-10 Tom <Thomas_Hinklesf.net>
* src/lib/plugins/web_plugin/gourmetweb/templates/shop.html: Add forms to add/remove from pantry.
* src/lib/plugins/web_plugin/gourmetweb/recview/views.py (MyShoppingList.get_shopper): Use database for shopping list so we can store e.g. pantry data.
(multiply_rec): Use 'yields' when possible; otherwise use multiply
(shop_to_pantry): Add callback to move items to pantry
(shop_to_list): Add callback to remove items from pantry
* src/lib/plugins/web_plugin/gourmetweb/urls.py: Add shopping list
callbacks (move to/from pantry)
2010-12-09 Tom <Thomas_Hinklesf.net>
* src/lib/plugins/key_editor/keyEditor.py (KeyEditor.isearchCB):
Set cursor to busy while searching.
* src/lib/recindex.py (RecIndex.search): Fix busy cursor while searching.
* src/lib/backends/db.py (RecData.get_ingkeys_with_count): Fix bug
that broke IngredientEditor view entirely.
* src/lib/plugins/key_editor/keyEditor.py (KeyStore.reset_views):
Don't undo search when resetting view after applying an edit.
* src/lib/backends/db.py (RecData.do_modify): Force unicode (Fixes 3120915)
2010-11-28 Thomas Mills Hinkle <Thomas_Hinklesf.net>
* src/lib/backends/db.py (RecData.update_version_info): Patch from Jeff Raber to remove sqlite3 reference
(RecData.get_unique_values): Patch from buergi to get working with MySQL
2010-11-16 Thomas Mills Hinkle <Thomas_Hinklesf.net>
* src/lib/reccard.py (DescriptionEditorModule.update_from_database):
Fix signal used for spinbutton for yield and any other
spinbuttons. (patch from Saulius Lukauskas)
* src/lib/plugins/import_export/mastercook_import_plugin/mastercook_plaintext_importer.py:
Patch from Saulius Lukauskas fixing column-matching/dash-matching
conflict that broke ingredient import.
2010-10-20 Thomas Hinkle <tomgrenville>
* src/lib/plugins/web_plugin/gourmetweb/templates/rec.html: Start
adding some style to web-based recipe view.
* src/lib/backends/db.py (RecData.add_column_to_table): Workaround
sqlalchemy 0.6.0 incompatability
* src/lib/plugins/nutritional_information/nutrition.py (NutritionData.get_nutinfo_for_ing):
Take into account amounts on recipes called as ingredients.
2010-08-01 Thomas Mills Hinkle <Thomas_Hinklesf.net>
* src/lib/plugins/web_plugin/gourmetweb/templates/rec.html: Add
AJAX magic to do multiplication ajax-style when javascript is
available.
2010-07-30 Thomas Mills Hinkle <Thomas_Hinklesf.net>
* src/lib/shopping.py: Refactor code -- move some code from
shopgui classes to front-end neutral ShoppingList class that can
be base class for HTML front-end.
* src/lib/shopgui.py: Refactor code to allow web-front-end
* src/lib/plugins/web_plugin/: Start a django-based web-front-end
to Gourmet
2010-07-21 Thomas M. Hinkle <tomgrenville>
* src/lib/version.py (version): Version->0.15.6
2010-07-20 Thomas M. Hinkle <tomgrenville>
* src/lib/plugins/import_export/web_import_plugin/generic_web_importer_plugin.py (GenericWebImporter.mimetypes):
Fixed bug in mimetypes, by adding expected application/xhtml+xml
type.
* src/lib/backends/db.py (RecData.get_criteria): Fix another
sqlalchemy-API-change-caused bug.
2010-07-13 Thomas M. Hinkle <tomgrenville>
* src/lib/backends/db.py (RecData.save): Try to work around
sqlalchemy bug that seems to through error on some (extra?)
commits.
2010-07-10 Thomas M. Hinkle <tomgrenville>
* src/lib/version.py (version): Version-->0.15.5
* src/lib/recindex.py (RecIndex.tree_keypress_cb): Handle Page-Up,
Page-Down, Home and End properly for our multiple page interface.
2010-07-09 Thomas M. Hinkle <tomgrenville>
* src/lib/backends/db.py (RecipeManager.parse_ingredient): Fix
typo/logic-error that prevented some units from being recognized.
* src/lib/* Get rid of raise + string calls, as python 2.6
prohibits them (patch from 2979619)
* src/lib/recindex.py (RecIndex.make_search_dic): Look anywhere in
text, not just at beginning. (fixes bug 3021913)
* src/lib/reccard.py (DescriptionEditorModule.save): Remove old
debug statements. Note to self: leaving in print statements is
dangerous, as it can raise unicode errors and create bugs where
all was well, as in bug 3018283
* glade/recCardIngredientsEditor.glade: Update ingredient editor tooltip.
2010-06-07 Thomas Mills Hinkle <Thomas_Hinklesf.net>
* src/lib/backends/db.py (map_type_to_sqlalchemy): Use LargeBinary type if available (sqlalchemy 0.6+)
(RecData.get_unique_values): Fix boolean-related sqlalchemy 0.6+ bug.
* src/lib/importers/interactive_importer.py (InteractiveImporter.label_selection):
Fix error (we needed iter, we got mark) (patch from Jeff Spaleta)
(InteractiveImporter.set_text): Fix logic error (remove extra
newlines before parsing when it still matters).(patch from Jeff
Spaleta)
* src/lib/plugins/import_export/web_import_plugin/generic_web_importer_plugin.py (GenericWebImporter.test_url):
Check that content_type is iterable (modified version of patch
from Jeff Spaleta).
2010-05-19 Thomas M. Hinkle <Thomas_Hinklesf.net>
* src/lib/db.py: Change name of ingredient_parser to
parse_ingredient (following naming conventions used everyone else
by pretty much everyone alive). Make this change throughout other
source files.
* src/lib/importers/generic_recipe_parser.py (RecipeParser): Fix
unicode/regexp issue with ing_matcher
2010-03-25 Thomas M. Hinkle <Thomas_Hinklesf.net>
* src/lib/backends/db.py (RecData.update_version_info): Make sure
recipe_id doesn't already exist as a column before altering old
databases -- apparently we were wrong about when this change was
made.
2010-03-05 Thomas M. Hinkle <Thomas_Hinklesf.net>
* src/lib/gglobals.py (FLOAT_REC_ATTRS): Add list of recipe
attributes that are floats (as opposed to ints, text, etc)
* src/lib/reccard.py (DescriptionEditorModule.save): Make sure
floating attributes (e.g. yields) get grabbed as values and not as
text.
* glade/recCardDescriptionEditor.glade: Make yields amount entry
accept decimals.
* src/lib/defaults/defaults_en.py (UNITS): ++drops
* src/lib/defaults/defaults_en_GB.py (UNITS): ++drops
* src/lib/reccard.py (IngredientTreeUI.ingtree_keypress_cb): Make
delete-key in ingredient editor view only work in treeview (same
as change made for main view on 2/9/2010).
2010-03-03 Thomas M. Hinkle <Thomas_Hinklesf.net>
* src/lib/GourmetRecipeManager.py (GourmetApplication.get_attribute_model):
Don't bother caching the attribute models. It results in
inconsistency for the user and it's not that expensive to just
regenerate the lists each time we need them.
* defaults_en.py defaults_en_GB.py ++T. and t. as abbreviations
for Tablespoon and teaspoon
2010-02-09 Thomas M. Hinkle <Thomas_Hinklesf.net>
* src/lib/GourmetRecipeManager.py (RecGui): Make
delete-key-deletes-recipe behavior a callback on keypresses only
in treeview. This prevents users using the delete key in the
search box from accidentally deleting recipes. Also, let backspace
delete recipes as well for convenience.
* src/lib/backends/db.py (RecData.get_criteria): Make sure search
strings are proper unicode objects. Fixes bug 2948135.
2010-01-16 Thomas M. Hinkle <Thomas_Hinklesf.net>
* src/lib/version.py Version->0.15.4
* src/lib/plugins/import_export/web_import_plugin/webpage_importer.py (WebParser.postparse):
Strip extra newlines.
(MenuAndAdStrippingWebParser.cut_menus): Add more common website
nav class ID's (footer, header, sitemap).
(MenuAndAdStrippingWebParser.cut_menus): Don't ignore the whole
body tag, no matter what (fixes epicurious import)
* src/lib/importers/interactive_importer.py (InteractiveImporter.set_text):
Strip extra newlines.
2010-01-15 Thomas M. Hinkle <Thomas_Hinklesf.net>
* src/lib/gtk_extras/thumbnail.py (check_for_thumbnail): Catch
non-ASCII characters in URLs.
2010-01-06 Thomas M. Hinkle <Thomas_Hinklesf.net>
* src/lib/importers/interactive_importer.py (InteractiveImporter):
Replace text-tags in buffers with ComboBox widget that allows user
to change tag of marked-up region. Also, separated out giant list
of buttons into categories and made more suitable for wider and
shorter screens.
2010-01-02 Thomas M. Hinkle <Thomas_Hinklesf.net>
* src/lib/plugins/key_editor/recipeEditorPlugin.py (IngredientKeyEditor.setup_tree):
Wrap text in treeview when it is too long; automatically reflow as
window is resized.
2009-12-29 Thomas M Hinkle <tomminime>
* src/lib/plugins/import_export/web_import_plugin/generic_web_importer_plugin.py (GenericWebImporter.test_file):
Add support for xhtml. Be fallback option whenever we match a file
pattern.
* src/lib/plugins/import_export/plaintext_plugin/plaintext_importer_plugin.py (PlainTextImporterPlugin.test_file):
Don't match *all* files as fallback options -- have a list of
"antipatterns" to exclude.
2009-12-18 Thomas M. Hinkle <Thomas_Hinklesf.net>
* src/lib/gtk_extras/dialog_extras.py (SimpleFaqDialog.NESTED_MATCHER):
Fix bug in REGEXP in number-header parsing.
* src/lib/plugins/nutritional_information/databaseGrabber.py (DatabaseGrabber.parse_abbrevfile):
Remove old code.
* FAQ: Update FAQ (which was pretty seriously out-of-date).
2009-12-17 Thomas M. Hinkle <Thomas_Hinklesf.net>
* src/lib/backends/db.py (RecData.validate_recdic): Ensure recipe
info is unicode.
* src/lib/check_encodings.py: Be less verbose.
* Version -> 0.15.3
* src/lib/plugins/nutritional_information/parser_data.py (NUTRITION_FIELDS): Update fields for SR21.
* src/lib/plugins/nutritional_information/nutritionGrabberGui.py (check_for_db):
Update DBs from SR20 (check if there are choline entries to see if
the DB is old).
* src/lib/plugins/nutritional_information/databaseGrabber.py (DatabaseGrabber.parse_abbrevfile):
Update fields when adding doesn't work.
* src/lib/plugins/nutritional_information/data_plugin.py (NutritionDataPlugin.update_version): Add new field (choline)
* src/lib/backends/db.py (RecData.update_version_info): Fix update
from versions < 0.11.x
* i18n/gourmet.pot: Update.
* i18n/POTFILES.in: Update to reflect current MANIFEST
* src/lib/plugins/nutritional_information/parser_data.py (NUTRITION_FIELDS):
Reorder fields and add choline for SR21 (they changed more than I
had first thought!)
2009-12-14 Thomas M. Hinkle <Thomas_Hinklesf.net>
* src/lib/backends/db.py (RecData.update_version_info): Fix update
from versions < 0.11.x
2009-12-11 Thomas M. Hinkle <Thomas_Hinklesf.net>
* src/lib/plugins/nutritional_information/nutrition.py (foo.SimpleInterface.print_info):
Be less verbose.
* src/lib/importers/importer.py (Importer.commit_rec): Make sure
we provide unicode strings to db.
* src/lib/reccard.py (IngredientEditorModule.quick_add): Make sure
we provide unicode strings to DB.
(DescriptionEditorModule.save): Make sure we provide unicode strings.
2009-12-02 Thomas M. Hinkle <Thomas_Hinklesf.net>
* src/lib/check_encodings.py (GetFile.__init__): Divide lines
using built-in splitlines() function -- this fixes problems with
line breaks on e.g. mac text files.
* src/lib/importers/importManager.py (ImportManager.finish_web_import):
Print information about importer being used.
2009-12-01 Thomas M. Hinkle <Thomas_Hinklesf.net>
* src/lib/GourmetRecipeManager.py (RecGui.setup_main_window): Add
right-click menu back to main interface (we use the contents of
the action menu for the right-click).
* src/lib/reccard.py (RecCardDisplay.update_yields_multiplier):
Fix updating of yield_unit on yield_change.
2009-11-29 Thomas M Hinkle <tomminime>
* src/lib/prefsGui.py (PreferencesGui): Make PreferencesGui
pluggable.
* src/lib/plugins/nutritional_information/__init__.py: ++
preferences plugin
* src/lib/plugins/nutritional_information/export_plugin.py (NutritionBaseExporterPlugin):
Add preference that allows user to turn off nutritional export
altogether or to turn it off when information is only partial.
* src/lib/plugin.py (BaseExporterPlugin.add_field): Add parameter
write_empty_field (which defaults to False) to determine whether
we add custom fields with no content.
(DatabasePlugin.remove): Change "deactivate" call to "remove",
which was what was intended (deactivate is called when the
pluggable is destroyed; remove is called when the plugin is
deactivated).
(PrefsPlugin): Add base class for adding tabs to preferences
dialog.
* src/lib/plugin_loader.py (MasterLoader.register_pluggable): Fix
typo.
* glade/preferenceDialog.glade: Remove hardcoded email
preferences (if we want them back, they belong in the email
plugin).
2009-11-22 Thomas M. Hinkle <Thomas_Hinklesf.net>
* src/lib/plugins/import_export/pdf_plugin/pdf_exporter.py (CustomUnitOption):
Add custom widget for setting margins that allows adjusting of
units (cm/inch/points).
(PdfPrefGetter.get_args_from_opts): Save page layout preferences
correctly.
* src/lib/gtk_extras/optionTable.py (OptionTable.createOptionWidgets):
Add CustomOption option for callers who want to provide their own
widget for setting an option.
* src/lib/plugins/nutritional_information/export_plugin.py (NutritionBaseExporterPlugin.get_nutritional_info_as_text_blob):
Escape items in case they have &s or other characters that screw
up XML.
2009-11-21 Thomas M. Hinkle <Thomas_Hinklesf.net>
* src/lib/plugins/import_export/pdf_plugin/print_plugin.py (PDFRecipePrinter.begin_print):
Try to raise an error if there's a problem with the PDF.
* src/lib/plugins/import_export/pdf_plugin/pdf_exporter.py (PdfPrefTable):
Use prefs to save pdf settings automatically.
* src/lib/gtk_extras/optionTable.py (OptionTable.createOptionWidgets):
Fix bug where having a default value of 0 made any other value
unsettable.
* src/lib/reccard.py (RecCardDisplay.print_cb): Move repetitive
code to printmanager.
* src/lib/exporters/printer.py (PrintManager.print_recipes): Move
basic printing code to PrintManager.
* src/lib/GourmetRecipeManager.py (ImporterExporter.print_recs):
Move repetitive print code to print manager so we can do things
like handle exceptions elegantly there.
2009-11-20 Thomas M. Hinkle <Thomas_Hinklesf.net>
* src/lib/plugins/nutritional_information/export_plugin.py (NutritionBaseExporterPlugin.get_nutritional_info_as_text_blob):
Fix typo that broke printing.
* src/lib/GourmetRecipeManager.py (GourmetApplication.setup_recipes):
Clarify code around autosave.
* src/lib/plugins/nutritional_information/reccard_plugin.py (NutritionDisplayModule.enter_page):
Fix keyError bug on initialization.
* src/lib/plugins/nutritional_information/nutritionLabel.py (NutritionLabel.setup_yield_label):
Use singular form for "amount per ___" yield unit.
* src/lib/plugins/nutritional_information/export_plugin.py (NutritionBaseExporterPlugin.get_nutritional_info_as_text_blob):
Use singular form for "amount per ____" yield unit.
* src/lib/shopgui.py (ShopGui.setup_main): Don't show window
initially.
* src/lib/reccard.py (RecCardDisplay.update_yields_multiplier):
Use singular forms when settings yields to 1.
2009-11-19 Thomas M. Hinkle <Thomas_Hinklesf.net>
* src/lib/plugins/import_export/pdf_plugin/pdf_exporter.py (write_ingref):
Only write links that will work -- we do this by tracking which
recipes are going into our document and checking links against
that list of recipes.
* src/lib/plugins/import_export/pdf.gourmet-plugin.in: Change name
and description to reflect this plugin's new status as the primary
printing provider.
* src/lib/exporters/printer.py: Add simple message telling user
which plugin to install to get printing if there is no printing.
* src/lib/exporters/exporter.py (ExporterMultirec.append_referenced_recipes):
Add method to automatically append referenced recipes to the list
of recipes to be exported.
* src/lib/plugin_loader.py (MasterLoader.deactivate_plugin_set):
Fix typo that broke deactivation of plugins.
2009-11-17 Thomas M. Hinkle <Thomas_Hinklesf.net>
* src/lib/GourmetRecipeManager.py (ImporterExporter.print_recs):
Use new printing API to print.
* src/lib/plugin.py (PrinterPlugin): Add new plugin for printing.
* src/lib/reccard.py (RecCardDisplay.print_cb): Use new printing
API to print.
* src/lib/shopgui.py (ShopGui.doSave): No longer use "lprprinter"
to do text save.
(ShopGui.printList): Use new printing API to print.
* src/lib/exporters/printer.py: Rewrite printer.py to use a plugin
architecture. If no plugins are available, no printing. The
expected plugin will be the PDF plugin using Reportlab.
* plugins/import_export/pdf_plugin/print_plugin.py: Create plugin
for new printing plugin architecture.
2009-11-06 Thomas M Hinkle <tomminime>
* src/lib/plugins/import_export/website_import_plugins/__init__.py (plugins):
++new AllRecipes plugin
* src/lib/plugins/import_export/pdf_plugin/pdf_exporter.py (PdfPrefTable):
Add preference widget that can be embedded in print preview
dialog (in preparation for new printing back-end using
poppler+reportlab)
* src/lib/backends/db.py (RecData.update_version_info): Make sure
we do updates for 0.14.7 ++ for people updatings from versions
before 0.14
2009-11-01 Thomas M. Hinkle <Thomas_Hinklesf.net>
* lib/GourmetRecipeManager.py Make sure all actions w/o icons are
marked as important (fixes Gourmet in horizontal-toolbar mode)
* lib/plugin.py ditto (fix Gourmet in horizontal-toolbar mode)
* lib/reccard.py ditto (fix Gourmet in horizontal-toolbar mode)
* lib/shopgui.py ditto (fix Gourmet in horizontal-toolbar mode)
* lib/gtk_extras/__init__.py (fix_action_group_importance): New
convenience method to make sure all actions in an ActionGroup that
don't have icons are marked important
2009-10-31 Thomas M Hinkle <tomminime>
* src/lib/plugins/key_editor/recipeEditorPlugin.py (IngredientKeyEditor.update_from_ingredient_editor_cb.process_row):
Handle groups correctly.
* README: Fix sql dependencies.
2009-08-26 Thomas Hinkle <Thomas_Hinklesf.net>
* data/ABBREV.txt
* data/WEIGHT.txt
* data/FOOD_DES.txt update nutritional database version to SR21
2009-08-22 Thomas M Hinkle <tomminime>
* glade/recCardDisplay.glade: Fix add-to-shopping-list button (use stock id)
2009-08-18 Thomas M Hinkle <tomminime>
* src/lib/shopgui.py (ShopGui.__init__): Fix bug that screwed up
positions of panes in shopping list view.
2009-08-15 Thomas M Hinkle <tomminime>
* src/lib/version.py (version): Push version to 0.15.0 (will be
stable release -- dependencies, alas, have changed enough that
0.13.x has become unstable on up-to-date systems.
* create_manifest.py: Add style/ directory to manifest.
* src/test_gui.py (BasicTests.tearDown): Make sure processes
really die.
* src/lib/threadManager.py (ThreadManagerGui.__init__): Add title
to default dialog.
* src/lib/reccard.py (TextFieldEditor.setup_main_interface): Add
a11y names for all entries to help make dogtail-based testing
easier.
* src/lib/importers/interactive_importer.py: Fix default tags to
include tags for all text fields.
* src/lib/importers/importManager.py (ImportManager.offer_web_import):
Remove "." from dialog title (Enter website address)
* src/lib/importers/generic_recipe_parser.py (RecipeParser):
Include notes in list of fields automatically parsed.
(RecipeParser.ing_matcher): Fix typo in regexp that made any line
starting with the letter "a" look like in ingredient (require a
space between number or article and word)
* src/lib/gglobals.py (REC_ATTRS): Fix typo that put extra colon in yield unit field.
2009-08-06 Thomas M Hinkle <tomminime>
* src/lib/plugins/import_export/web_import_plugin/webpage_importer.py (WebParser.IGNORE):
Ignore style tag.
* src/lib/plugins/import_export/web_import_plugin/generic_web_importer_plugin.py (GenericWebImporter.get_importer):
Fix typo (get_web_importer -> self.get_web_importer
2009-08-03 Thomas M Hinkle <tomminime>
* src/lib/plugins/key_editor/keyEditor.py (KeyEditor.__init__):
Fix case of 'key' (error caused extra search to be run on
launching keyEditor.py)
(KeyStore.limit): Only limit if text has changed.
(KeyStore.get_recs): Fix recipe fetching (old DB change --
id->recipe_id in ingredients table)
2009-07-28 Thomas M Hinkle <tomminime>
* src/lib/reccard.py (RecCardDisplay.multiplication_change_cb):
Implement multiplication again.
2009-07-15 Thomas M Hinkle <tomminime>
* src/lib/ImageExtras.py (get_pixbuf_from_jpg): Create one unique
tempfile per session, rather than hardcoding name
gourmet_tempfile, which breaks Gourmet in multiuser
environments (bug 271712)
* windows/gtkrc: Remove custom theme to try to work around bug
with vertical notebooks (see bug 2768204)
* src/lib/plugin_loader.py (MasterLoader.load_plugin_directories):
Fix hardcoded / in glob path. Fix from Julianne Sharer.
2009-07-14 Thomas M Hinkle <tomminime>
* src/lib/importers/interactive_importer.py (InteractiveImporter.commit_changes):
Fix syntax error in last commit (parens).
* src/lib/defaults/defaults_de.py: Unicodify strings (u'')
* src/lib/convert.py (float_to_metric): Use integer format
code (%i) instead of string format-code which allows decimals to
slip through formatting algorithm when they shouldn't (and
non-localized decimals at that)
(float_string): Allow people with commas as decimal separators to
correctly parse recipes from period-separated locales where
unambiguous (e.g. 23.00 and not 23.000).
2009-06-27 Thomas Hinkle <Thomas_Hinklesf.net>
* src/lib/importers/interactive_importer.py (InteractiveImporter.commit_changes.mark_sorter):
Handle markup in title of recipe in imageBrowser dialog window.
2009-06-18 Thomas Hinkle <Thomas_Hinklesf.net>
* src/lib/* Get rid of old debugging print statements throughout library.
* src/lib/importers/interactive_importer.py (InteractiveImporter.setup_window):
Set parent to threadManagerGui dialog.
* src/lib/version.py: version->0.14.10
* src/lib/threadManager.py (ThreadManagerGui.__init__): Make
thread manager dialog transient for main Gourmet window if not
told who its transient for.
2009-06-17 Thomas Hinkle <Thomas_Hinklesf.net>
* src/lib/plugins/import_export/gxml_plugin/gxml_exporter_plugin.py (GourmetExportChecker.check_attrs):
Fix tests (read files as utf-8)
* src/lib/plugins/nutritional_information/reccard_plugin.py: servings->yields
* src/lib/plugins/nutritional_information/nutritionLabel.py: servings->yields
* src/lib/plugins/nutritional_information/export_plugin.py (NutritionBaseExporterPlugin.get_nutritional_info_as_text_blob): servings->yields
* src/lib/GourmetRecipeManager.py (StuffThatShouldBePlugins.batch_edit_recs):
Remove obsolete FieldEditor (moved to plugin).
2009-06-17 Thomas M Hinkle <tomminime>
* src/lib/keymanager.py (KeyManager.__init__): Initialize categories again.
2009-06-16 Thomas Hinkle <Thomas_Hinklesf.net>
* src/lib/plugins/nutritional_information/nutritionDruid.py (NutritionInfoDruid.apply_custom):
Fix custom information for fat.
2009-06-07 Thomas M Hinkle <tomminime>
* src/lib/recipeManager.py (DatabaseShopper.init_orgdic): Use new
initailize method of dbDic
(DatabaseShopper.init_pantry): Use new initialize method of dbDic
* src/lib/plugin_loader.py (MasterLoader.default_active_plugin_sets):
Fix typo in list of plugins (missing comma).
* src/lib/backends/db.py (dbDic.initialize): Add fast method for
initializing a dbDic from defaults (faster than adding rows one at
a time)
* src/lib/keyEditor: Get rid of cruft (moved to plugin long ago)
* src/lib/keymanager.py (KeyManager.__init__): Speed up
initialization of keydic. Don't initialize each word in keydic
from defaults (this should be part of the key editor plugin -- in
our default mode, our users don't really care about keys (they
always get the defaults) so we don't need to worry about setting
up the DB for search (which is costly and makes first load seem
unduly slow).
* src/lib/version.py (version): Version->0.14.9
2009-06-04 Thomas M Hinkle <tomminime>
* src/lib/plugin_loader.py (MasterLoader.default_active_plugin_sets):
Add spellcheck to plugins that default to on.
* src/lib/gtk_extras/TextBufferMarkup.py (PangoBuffer.get_text):
Ignore tags that we didn't put there (such as those from
gtkspell).
* src/lib/plugins/spellcheck*: Add spellcheck plugin (adds
automatic spell checking to all TextViews in recipe card editor.
* src/lib/convert.py (NUM_AND_FRACTION_REGEXP): Fix typo for
langauges without fraction support (ubuntu bug 352678)
* test_deb.sh: Wipe out packages installed by python2.6 as well.
* src/lib/reccard.py (RecCard.__init__): ++ get app if not handed
GRM instance.
* src/lib/plugin.py (RecEditorPlugin): ++documentation
* src/lib/gtk_extras/dialog_extras.py (MessageDialog.setup_dialog):
++title on dialog (helps out with testing w/ dogtail + just makes
sense).
2009-06-04 Thomas Hinkle <Thomas_Hinklesf.net>
* src/lib/importers/interactive_importer.py: Add support for old
style "servings" tags to support legacy importer/markup scripts.
* src/lib/importers/importer.py (Importer.commit_rec): Make sure
yields is floated.
2009-05-30 Thomas Hinkle <Thomas_Hinklesf.net>
* src/lib/reccard.py (RecSelector.ok): If recipe has a yields
value, ask user how much they would like to add (this allows user
to specify e.g. "3 cups" or "2 crusts", which is easier than
changing the amount of recipes, which is what shows up in the
ingredient list.
(YieldSelector): Dialog for selecting amount of recipe based on
yields value.
(getYieldSelection): Convenience function for grabbing amount of
recipe based on yields value (or not).
2009-05-30 Thomas M Hinkle <tomminime>
* src/lib/test_plugin_loader.py: Add simple plugin_loader test
file.
* src/lib/gtk_extras/dialog_extras.py (ProgressDialog.setup_buttons):
Bypass strange bug in pygtk with python2.6 which effectively
changes ToggleButton API