pax_global_header 0000666 0000000 0000000 00000000064 14107665416 0014524 g ustar 00root root 0000000 0000000 52 comment=28aaed75dfa9682a119bbb9e0f6aec9e8ffe7098
gourmand-1.0.0/ 0000775 0000000 0000000 00000000000 14107665416 0013336 5 ustar 00root root 0000000 0000000 gourmand-1.0.0/.flatpak/ 0000775 0000000 0000000 00000000000 14107665416 0015036 5 ustar 00root root 0000000 0000000 gourmand-1.0.0/.flatpak/io.github.GourmandRecipeManager.Gourmand.yml 0000664 0000000 0000000 00000003250 14107665416 0025422 0 ustar 00root root 0000000 0000000 app-id: io.github.GourmandRecipeManager.Gourmand
runtime: org.gnome.Platform
runtime-version: '40'
sdk: org.gnome.Sdk
command: gourmand
finish-args:
- --filesystem=host
- --socket=fallback-x11
- --socket=pulseaudio
- --share=network
modules:
- name: poppler
buildsystem: cmake-ninja
config-opts:
- -DENABLE_UTILS=OFF
- -DENABLE_CPP=OFF
- -DENABLE_QT5=OFF
sources:
- url: https://poppler.freedesktop.org/poppler-20.10.0.tar.xz
sha256: 434ecbbb539c1a75955030a1c9b24c7b58200b7f68d2e4269e29acf2f8f13336
type: archive
- name: cpython
sources:
- type: archive
url: https://www.python.org/ftp/python/3.8.4/Python-3.8.4.tar.xz
sha256: 5f41968a95afe9bc12192d7e6861aab31e80a46c46fa59d3d837def6a4cd4d37
- name: intltool
buildsystem: autotools
sources:
- type: archive
url: https://launchpad.net/intltool/trunk/0.51.0/+download/intltool-0.51.0.tar.gz
sha256: 67c74d94196b153b774ab9f89b2fa6c6ba79352407037c8c14d5aeb334e959cd
- name: gourmand
buildsystem: simple
build-options:
build-args:
- --share=network
build-commands:
- python3 -m pip install --upgrade pip setuptools wheel
- pip3 install pyenchant pygobject Sphinx
- pip3 install --prefix=/app .[epub-export,mycookbook,pdf-export,spellcheck,web-import]
- install -Dm644 data/io.github.GourmandRecipeManager.Gourmand.desktop -t /app/share/applications/
- install -Dm644 data/io.github.GourmandRecipeManager.Gourmand.svg -t /app/share/icons/hicolor/scalable/apps/
sources:
- type: git
branch: main
url: https://github.com/GourmandRecipeManager/gourmand
gourmand-1.0.0/.github/ 0000775 0000000 0000000 00000000000 14107665416 0014676 5 ustar 00root root 0000000 0000000 gourmand-1.0.0/.github/ISSUE_TEMPLATE.md 0000664 0000000 0000000 00000002512 14107665416 0017403 0 ustar 00root root 0000000 0000000
### Steps to Reproduce
1.
2.
3.
4.
### Expected Behavior
### Current Behavior
### Possible Solution
### Environment
* Operating System:
* Version or commit id:
* Installed as Flatpak or Python package?:
gourmand-1.0.0/.github/PULL_REQUEST_TEMPLATE.md 0000664 0000000 0000000 00000002314 14107665416 0020477 0 ustar 00root root 0000000 0000000
## Description
## How Has This Been Tested?
## Screenshots (if appropriate):
## Types of changes
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
## Checklist:
- [ ] My code follows the code style of this project.
- [ ] My change requires a change to the documentation.
- [ ] I have updated the documentation accordingly.
gourmand-1.0.0/.github/workflows/ 0000775 0000000 0000000 00000000000 14107665416 0016733 5 ustar 00root root 0000000 0000000 gourmand-1.0.0/.github/workflows/appimage.yml 0000664 0000000 0000000 00000004621 14107665416 0021244 0 ustar 00root root 0000000 0000000 name: Create AppImage
on:
push:
tags:
- '*'
workflow_dispatch:
jobs:
AppImage:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2
- name: Setup AppImage Environment
run: |
sudo apt-get update -q
sudo apt-get -y install python3-testresources intltool imagemagick libgirepository1.0-dev
wget -c https://github.com/$(wget -q https://github.com/niess/python-appimage/releases/tag/python3.8 -O - | grep "python3.8.*-cp38-cp38-manylinux1_x86_64.AppImage" | head -n 1 | cut -d '"' -f 2)
chmod +x ./python3*.AppImage
./python3*.AppImage --appimage-extract
wget -c https://github.com/$(wget -q https://github.com/probonopd/go-appimage/releases -O - | grep "appimagetool-.*-x86_64.AppImage" | head -n 1 | cut -d '"' -f 2)
chmod +x appimagetool-*.AppImage
- name: Install Gourmand in AppImage
run: |
./squashfs-root/AppRun -m pip install --upgrade pip
./squashfs-root/AppRun -m pip install decorator six BeautifulSoup4 html5lib lxml pyenchant pygobject Sphinx
./squashfs-root/AppRun setup.py bdist_wheel
./squashfs-root/AppRun -m pip install .[epub-export,mycookbook,pdf-export,spellcheck,web-import]
./squashfs-root/AppRun -m pip install dist/gourmand*.whl
sed -i -e 's|/opt/python3.8/bin/python3.8|/usr/bin/gourmand|g' ./squashfs-root/AppRun
rm squashfs-root/*.desktop
cp data/io.github.GourmandRecipeManager.Gourmand.desktop squashfs-root/usr/share/applications/io.github.GourmandRecipeManager.Gourmand.desktop
cp data/io.github.GourmandRecipeManager.Gourmand.desktop squashfs-root/io.github.GourmandRecipeManager.Gourmand.desktop
cp data/io.github.GourmandRecipeManager.Gourmand.appdata.xml squashfs-root/usr/share/metainfo/io.github.GourmandRecipeManager.Gourmand.desktop.appdata.xml
convert data/io.github.GourmandRecipeManager.Gourmand.svg squashfs-root/usr/share/icons/hicolor/256x256/apps/io.github.GourmandRecipeManager.Gourmand.png
convert data/io.github.GourmandRecipeManager.Gourmand.svg squashfs-root/io.github.GourmandRecipeManager.Gourmand.png
- name: Pack AppImage
run: |
VERSION=${GITHUB_SHA::8} ./appimagetool-*.AppImage squashfs-root/
- name: Upload AppImage
uses: actions/upload-artifact@v2
with:
name: gourmand.AppImage
path: ./Gourmand-*.AppImage
gourmand-1.0.0/.github/workflows/build.yml 0000664 0000000 0000000 00000001752 14107665416 0020562 0 ustar 00root root 0000000 0000000 # This workflow will install Python dependencies, and build the app
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions
name: Build
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2
- name: Setup build environment
run: |
sudo apt-get update -q
sudo apt-get install python3-testresources intltool
sudo pip3 install --upgrade pip setuptools wheel
- name: Create wheel and source distributions
run: |
python3 setup.py sdist bdist_wheel
mv dist/gourmand-*.tar.gz dist/gourmand-${GITHUB_SHA::8}.tar.gz
mv dist/gourmand-*-py3-none-any.whl dist/gourmand-${GITHUB_SHA::8}-py3-none-any.whl
- name: Upload artifacts
uses: actions/upload-artifact@v2
with:
name: gourmand
path: ./dist/gourmand-*
gourmand-1.0.0/.github/workflows/flatpak.yml 0000664 0000000 0000000 00000001632 14107665416 0021102 0 ustar 00root root 0000000 0000000 name: Create Flatpak
on:
push:
tags:
- '*'
workflow_dispatch:
jobs:
flatpak:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2
- name: Install Flatpak
run: |
sudo apt install flatpak flatpak-builder
- name: Setup Flatpak
run: |
flatpak remote-add --if-not-exists --user flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak install flathub org.gnome.Platform//40 org.gnome.Sdk//40 -y
- name: Build Flatpak
run: |
flatpak-builder --repo=repo --force-clean build-dir .flatpak/io.github.GourmandRecipeManager.Gourmand.yml
- name: Build Bundle
run: |
flatpak build-bundle repo gourmand-${GITHUB_SHA::8}.flatpak io.github.GourmandRecipeManager.Gourmand
- name: Upload Flatpak
uses: actions/upload-artifact@v2
with:
name: gourmand.flatpak
path: ./gourmand-*.flatpak
gourmand-1.0.0/.github/workflows/tests.yml 0000664 0000000 0000000 00000002435 14107665416 0020624 0 ustar 00root root 0000000 0000000 # This workflow will install Python dependencies, run tests and lint with a single version of Python
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions
name: Tests
on:
push:
branches: [main]
pull_request:
branches: [main]
workflow_dispatch:
jobs:
test:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-20.04]
steps:
- uses: actions/checkout@v2
- name: Install Ubuntu dependencies
run: >
sudo apt-get update -q && sudo apt-get install
--no-install-recommends -y xvfb python3-dev python3-gi
python3-gi-cairo gir1.2-gtk-3.0 libgirepository1.0-dev libcairo2-dev
intltool enchant python3-enchant gir1.2-poppler-0.18 python3-gst-1.0
python3-testresources
- name: Install build dependencies
run: |
sudo pip3 install --upgrade pip setuptools wheel
- name: Install Gourmand
run: sudo pip3 install -r development.in
- name: Test with pytest
run: LANGUAGE=de_DE.utf-8 xvfb-run -a pytest -vv tests/test_*
- name: Check imports ordering
run: >
isort --diff src/**/*.py &&
isort -c src/**/*.py
if: always()
gourmand-1.0.0/.gitignore 0000664 0000000 0000000 00000000470 14107665416 0015327 0 ustar 00root root 0000000 0000000 # Byte-compiled / optimized / DLL files
__pycache__/
# Distribution / packaging
*.egg-info/
*.gourmet-plugin
*.mo
/build/
/dist/
gourmet.appdata.xml
gourmet.desktop
/development.txt
# Test outputs
tests/recipe_files/athenos1.gourmetcleaned.mx2
# Virtual environments
/env/
/venv/
# Editors
*.swp
.idea/
gourmand-1.0.0/CHANGES 0000664 0000000 0000000 00000066314 14107665416 0014343 0 ustar 00root root 0000000 0000000 ==== Version 0.13.0 changes since 0.12.2 ====
* Addition of hash fields to help with identification of duplicate
recipes.
* Addition of last_modified field to recipe database.
* Addition of link field to database - now recipes imported from the
web will automatically have a link pointing back to the original page.
==== Version 0.12.2 changes since 0.12.1 ====
* Fix Mealmaster importing bug
* Fix bug (?) which could cause ingredient search to fail in strange
cases (where a DB had ingredients with key=None)
==== Version 0.12.1 changes since 0.12.0-pre1 ====
* Fix buggy trash behavior.
* Store version in database for ease of upgrades.
* Implement fix for broken databases from pre-0.11.4 installs
* Fix-up paragraphing in printing.
==== Version 0.12.0-pre1 changes since 0.11.5 ====
* Fix sort order
* Don't drop default entries for Category/Cuisine once user has entered one.
* Change version number to reflect intend to create a stable version
once we're sure this version doesn't have any show-stoppers.
==== Version 0.11.5 changes since 0.11.4 ====
* Add more PDF Export modes for printing index cards, multiple
columns, etc. Also add nice print page-layout widget.
* Tweak spacing in recipe card to avoid ugly disappearance of "Edit" buttons
* Recognize units in all kinds of capitalized or uncapitalized forms.
* Fix up bug in time-scanning code that led to making a link like
3 minutes instead of 3 minutes
* Add i18n for Swedish.
* Apply patch to fix text-flow in recipe card (Shane Hathaway)
* Apply localization patch to simplify translations. (Jens Persson)
==== Version 0.11.4 changes since 0.11.3 ====
* Make deleting an ingredient ungrey "Save" button
* Fix various bits of badness with Undo
* Fix gravity of cursor for text markup in instructions and notes.
* Fix allrecipes.com import
* Allow recognition of times written as 01:30 for 1 1/2 hours
* Improve testing suites (and therefore improve thoroughness of
bug-checking before release)
* Fixed generic web import.
* PDF Import
* Printing support for windows
* Fix ugly window placement issues on windows and some other places.
* Improve recipezaar import.
==== Version 0.11.3 changes since 0.11.2 ====
* i18n fixes from Simon Darlington
* Fix bug that reversed ingredient order when adding ingredients to a group.
* Allow fraction-use to be turned off, and make it default to off for
German (other locales can default it to off via defaults_foo.py)
* Fix bug that caused unicode error on upgrade from metakit.
* Fix some other bugginess in handling old upgrades.
* Rearrange main index window to work better on small screens.
* Update to DTD thanks to Gianpaolo Racca.
==== Version 0.11.2 changes since 0.11.1 ====
* Add new icons from Yula Zubritsky
* Add nifty timer.
* Parse times written out as words.
==== Version 0.11.1 changes since 0.11.0 ====
* Fix bug that broke changing the shopping category of an ingredient
from within the ingredient editing view.
* Fix traceback when filling ingredient-editor from a unitless
ingredient.
* Fix problem with recipe-links not working when they contained
unicode (such as the unicode for 1/2, 1/4, etc.)
* Make page-chooser in edit-view highlight the first page when we open
a new recipe card. Otherwise, the function of the widget is unclear.
==== Version 0.11.0 changes since 0.10.1 ====
* Fix ingredient editing so that changes are no longer automatically
committed to the DB. Now the ingredient tab of the recipe edit window
works like everything else, with a standard "save" model.
* While we're at it, we prevent crashes from happening.
* Make Undo work more consistently throughout recipe card.
* Make database upgrade happen at runtime rather than install-time --
this allows us to play nicely with RPM and DEB packages.
==== Version 0.10.2 changes since 0.10.1 ====
* Fix bug causing export from recipe card not to multiply ingredients
properly.
* Fix various problems with ingredient editing (display of updates,
undo/redo)
* Fix dialog responses so hitting return and escape works more consistently.
* Fix bug in addition of ingredients in shopping list.
==== Version 0.10.1 changes since 0.10.0 ====
* Fix bug causing recipe cards to be destroyed when closed.
* Fix bug causing "None" to show up in shopping list when there is no
unit.
* Fix popup menus throughout.
==== Version 0.10.0 changes cince 0.9.0.3 ====
* Switch database backend to SQLite. The backend is still abstract, so
if in the future someone wants to switch back to metakit or to
something else, it should be simple.
* Add new automated backup script into setup.py. This is less than
ideal, but there's no real way to import smoothly from the old system
to the new.
* Make editing of recipe card a separate dialog from viewing recipe
card. This allows the recipe card itself to lose the toolbar and look
much cleaner.
* Make text in recipe card reflow properly when resizing.
* Improve import speed drastically by not inserting auto-generated
keys into key table.
* Only add keys to ingkey table (used for automatic key-guessing) when
the user has modified something. This means we actually learn from the
user rather than generating our own random noise.
* Add support for typing "or" in a search instead of using the or bar (|).
* Import sorting of USDA DB searches (in the nutritional info druid)
to bring you better results faster.
* Many, many more bugfixes along the way.
==== Version 0.9.0.3 changes since 0.9.0.1 ====
* Fix email export
* Improve recipe card interface.
==== Version 0.9.0.2 changes since 0.9.0.1 ====
* Support python2.3
==== Version 0.9.0.1 changes since 0.9.0 ====
* Fixed shopping list handling of ranges.
* Fixed up MANIFEST to include all necessary files in our release.
==== Version 0.9.0 Changes since 0.8.x ====
* Implemented nutritional information database.
* Fixed a number of bugs causing crashing with the pageable-list view / metakit
* Cleaned up SQL code to an almost usable (but not quite usable) state.
* Generic HTML import as fallback when we have no filter for a given page
* Generic text import.
==== Version 0.8.6.5 Changes since 0.8.6.4 ====
* Fixed bug in recipe card editing that caused changes made in card
view not to save properly.
* Fix epicurious import.
* Fix trash / deletion.
* Fix Forward button (desensitize when there are no more pages).
* Properly register newly added ingredients in display tab of recipe card.
==== Version 0.8.6.4 Changes since 0.8.6.3 ====
* Improved encoding dialog.
* Fixed handling of webpages with screwy encoding.
==== Version 0.8.6.3 Changes since 0.8.6.2 ====
* Added fast add-ingredient box
* Fixed some broken stuff
* Changed code underlying pageable model so it is much more stable
(got rid of nasty error messages and many of the segfaults)
* Updated key editor to work with updates to backend/pageable model.
==== Version 0.8.6.2 Changes since 0.8.6.1 ====
* Display recipe in pages (first 25, next 25, so on) to speed up
Gourmet. This makes just about everything "feel" faster -- startup,
search, etc.
* Continue optimization of database.
* Properly handle multiple categories.
==== Version 0.8.6.1 Changes since 0.8.6.0 ====
* Database normalized; hopefully this will mean performance improvements
* Oodles of magic added to aid normalization of DB
* Key lookup improved / interface on recipe card should be less sluggish.
* ComboBoxEntry's changed so that one TAB moves focus out of them -- this
should improve e.g. recipe entry though it does break consistency with
other GTK apps.
==== Version 0.8.6.0 Changes since 0.8.5.x ====
* Changed database format for greater efficiency/speed.
* Times (cook/prep) are now stored internally as numbers of seconds,
which means sorting just works
* Ratings are now done one a star-system, which means sorting just
works.
* since ratings are done on a star system, we've introduced a dialog
to let the user select how they'd like to translate textual ratings
into stars
==== Version 0.8.5.12 Changes since 0.8.5.11 ====
* Added quick ingredient editor interface.
* Improved encoding dialog.
* Fixed handling of webpages with screwy encoding.
* Added foodnetwork.com import (preliminary).
======= end
==== Version 0.8.5.11 Changes since 0.8.5.10 ====
* Fixed menus in shopping list so they work without GNOME libraries.
* Fixed unit conversion (typo that resulted in e.g. "23 TBS flour"
showing up.
* Behave better when locales are behaving badly.
==== Version 0.8.5.10 Changes since 0.8.5.9 ====
* Improved/Fixed lag when adding ingredients with the ingredient
editor
==== Version 0.8.5.9 Changes since 0.8.5.8 ====
* Fixed nasty segfault when deleting unedited recipe
* Fixed problem with markup showing up in some dialogs.
==== Version 0.8.5.8 Changes since 0.8.5.7 ====
* Fixed bug in deletion of new recipe and improved interface for
deleting recipes that are already open
* Made search interface in select-recipe-as-ingredient dialog and
recipe-wastebasket dialog consistent with new main search interface
* Removed default serving size of 4 from new recipes.
* Fixed mnemonic-activation of preptime and cooktime entries in recipe
card view.
* Added shortcuts for deletion and printing.
* Added extra Control-O shortcut to open recipes, since it's pretty
intuitive for a user to hit Control-O
* Fixed search-as-you-type in ingredient view of recipe card so that
it properly finds group names as well as ingredients
* Got rid of some of the many gtk error messages spouted from time to
time.
* Fixed bug that made recipe trash disappear forever if you closed it
by closing the window
==== Version 0.8.5.7 Changes since 0.8.5.6 ====
* Improved automatic mnemonic conflict-resolution.
* Fixed hang in import from recipezaar website.
* Accept URLs without HTTP:// in webpage import.
* Cleaned up error messages for problems with webpage import.
==== Version 0.8.5.6 Changes since 0.8.5.5 ====
* Fixed bug in MM import that was causing instructions to be read as
ingredients
* Changed look/feel of search interface on index page
* Split out HTML import stuff into separate "plugin" files and set up
plugin interface for local user plugins.
* Added programmatic assignment of mnemonics to reduce mnemonic
conflicts w/o increasing translator burden :)
* Set minimum width of image column to 0 so that it doesn't take up
lots of space when there are no images
* Fixed bug in converter that caused conversion errors/inconsistency
with mass-to-volume conversions.
* Fixed unit conversion in shopping so that we don't display things
like 21 tbs. butter (even if all butter units we're combining were
originally in tbs.)
==== Version 0.8.5.5 Changes since 0.8.5.4 ====
* Changed search interface to make clearer.
==== Version 0.8.5.4 Changes since 0.8.5.3 ====
* Fixed some recently introduced bugs that broke
export
* Made updating search-by button automatically update search in
search-as-you-type mode.
* Fixed i18n bug that broke numbers.
==== Version 0.8.5.3 Changes since 0.8.5.2 ====
* Fixed bug in MealMaster import
* Import instructions from krecipes!
* Improved handling of recipe references.
==== Version 0.8.5.2 Changes since 0.8.5.1 ====
* Fixed RTF Export
* Added support for exporting images in RTF export
* Added recognition and production of unicode fraction characters
==== Version 0.8.5.1 Changes since 0.8.5.0 ====
* Fixed compatability issue with pygtk 2.4
* Fixed problem in mastercook import for some
malformed ingredient-lists.
* Correctly included zip_importer in MANIFEST
==== Version 0.8.5.0 Changes since 0.8.4.4 ====
* New web-page-importing architecture with support for three
basic html templates as well as support for importing already
supported formats directly from URLs.
* Added support for rezkonv import (German mealmaster clone)
* Fixed line-wrapping code in mealmaster/rezkonv import
* Improved UI of shopping list -- added explicit buttons for
moving items between shopping and pantry list.
* Added support for importing gzipped, zipped, and tarred files
from "Import file" or from "Import Webpage"
* Fixed defaults focus on dialogs (e.g. dialogs with Entry's put
default focus on the Entry now).
* Made mealmaster import do a better job when handling malformed
ingredient lists
* Added FAQ-style help from menus
* Fixed bug in Gourmet XML import
==== Version 0.8.4.4 Changes since 0.8.4.3 ====
* Made new recipes appear immediately again in index view.
* Fixed undo for combobox entries is recipe card view.
* Made changes in recipe index instantly reflected in reccard.
* Fixed alignment of widgets in recipe card "Details" view.
==== Version 0.8.4.3 Changes since 0.8.4.2 ====
* Fixed typo in gglobals in tarball
* Fixed bug that broke multiplication in shopping list.
==== Version 0.8.4.2 Changes since 0.8.4.1 ====
* Fixed bug that prevented adding nested recipes to
shopping lists.
* Fixed export bug that failed on unusual servings values.
==== Version 0.8.4.1 Changes since 0.8.4.0 ====
* Fixed bug that broke on fresh install.
* Removed extraneous "print" statements left from testing.
==== Version 0.8.4.0 Changes since 0.8.3.5 ====
* Fixed export from recipe card to properly handle multiplying
ingredients and following user preferences for changing unit.
* Consolidated preferences dialogs in one dialog with multiple tabs.
* Allow user to save choices about optional ingredients (and to forget
saved settings).
* Added preference to allow user to always include (or always ignore)
ingredients.
* Change order on exports so ingredients precede instructions.
* Properly handle ranges of ingredients throughout Gourmet!
* Moved "Preferences" to "Edit" menu where they are in most applications.
* Fixed window-position-saving so we don't remember size of maximized
position as if they were the window-size coordinates.
==== Version 0.8.3.5 Changes since 0.8.3.4 ====
* Fixed typo in rtfexporter.
* Fixed linewrapping of splash screen for i18n'd versions of gourmet w/
longer lines.
* Changed to building RPMs with specfiles based on those provided by
Michael Peters (who is packaging gourmet for fedora)
* Included new Dutch defaults translations.
==== Version 0.8.3.4 Changes from 0.8.3.3
* Made mealmaster import slightly more flexible in recognition of groups.
* Fixed bug in mastercook import of recipes with optional ingredients.
* Fixed bug that broke on opening a recipe card.
* Improved handling of international numbers
* Fix mealmaster export to resist i18n of standardized field names.
* Fixed mealmaster import to properly recognize numbers with ,s as
decimal points (as in German, Spanish, etc.)
==== Version 0.8.3.3 Changes from 0.8.3.2
* Fixed bug that broke renaming of ingredient groups.
* Fixed windows directory nonsense
* Use psyco if available to speed things up.
* Twiddled with sqlite to no end (still needs fix).
==== Version 0.8.3.2 Changes from 0.8.3.1
* Fixed bug that failed on fresh install.
==== Version 0.8.3.1 Changes from 0.8.3
* Fixed nasty nasty bug in DB database for users coming from <0.8.3.
* Fixed bug preventing images from saving.
* Fixed bug preventing ingredient groups from working properly.
==== Version 0.8.3 Changes from 0.8.2
* Added windows printing support using wx
* Fixed bug in which cooking time wasn't exported in Gourmet format
* Fixed bug which made gourmet not recognize it's own .grmt extension
* Fixed a bug preventing HTML E-mail from working.
==== Version 0.8.2.1 Changes from 0.8.2
* Fixed bug preventing saving of shopping list.
* Fixed bug preventing proper saving of ingredient orders.
==== Version 0.8.2 Changes from 0.8.1.2
* Added krecipe import
* Added image import/export
* Changed Gourmet XML file format to be vastly simplified and to support images.
* Fixed bug that made filetype choices disappear on multiple exports
==== Version 0.8.1.2 Changes from 0.8.1.1
* Fixed alignment of "Add to shopping list" button (patch from Mikey Cooper)
* Applied patch from calvin@users.sourceforge.net to make mealmaster import more flexible.
* Fixed "print" on Windows to show dialog explaining we don't have printing on Windows.
* Fixed encoding-detecting code on imports: we query the user when two encodings might work.
* Fixed bug that made filetype options disappear from menu on multiple imports/exports.
==== Version 0.8.1.1 Changes from 0.8.1
* Fix handling of "^T" characters in mealmaster/mastercook import.
* Fix misaligned icon.
* Get rid of "save" calls in metakit, opting for autosave on a timer instead.
==== Version 0.8.1 Changes from 0.8.0 ===
* Fixed Windows Application Directory
* Fixed import of "servings" in Mealmaster import
* Fixed line-unwrapping code in Mealmaster import
* Fixed typo prevening mealmaster export from working in 0.8.0
* Fixed a number of problems where &s screwed up
pango -- including layout and printing.
* Fixed search in recipe Wastebasket view.
==== Version 0.8.0 Changes from 0.7.1 ===
Miscellaneous
* Undo introduced across the board.
* Recipe's thrown in trash rather than deleted by default (allowing for
undoing and rescue of trashed recipes).
* Always ask for print command when gnomeprint isn't functional (don't assume
lpr, but do give it as the default).
Recipe Card
* New tabbed interface for recipe card
* Support for formatting text in instructions and notes
* Support for pasting ingredients
* Ask if you want to convert when you change a unit in the ingredient list view.
* Added new "Cooking Time" attribute.
Backends
* Experimental support for sqlite and mysql backends
* Automatic committing of DB (user no longer has to "save DB" to save
changes).
Import/Export
* Improved mealmaster(tm) export
* Substantially improved speed of mealmaster(tm) import
* Multiple imports allowed at a time by selecting multiple imports
(and elegantly displayed in new dialog).
* Added support for multiple columns of ingredients in mealmaster.
==== Version 0.7.1 Changes from 0.7.0 ====
* RPM spec file fixed so dependencies should be properly worked out now.
* Debian files included in source tarball.
* Unit Converter improvements with help from Richard Ferguson (more UI improvements soon to come!)
* Printing is now properly reported as non-existent across the board on Windows
* Non-GNOME printing is now improved -- if LPR doesn't exist, user is prompted for another print command.
* Fixed bug in recipe-card making it believe it is modified when a recipe has no servings information.
* Fixed bug in shopping list that prevented category info entered in "Add Item To Shopping List" dialog not
get saved.
* Moved around some files: printing has now been split into lprprinter, winprinter and gnomeprinter;
defaults_en_US has been eliminated (defaults_en is now the norm).
==== Version 0.7.0 Changes from 0.6.7 ====
* Gourmet now builds on Windows! Fixed various path-related problems
to make this work cleanly.
* Fixed bug in saveas dialog for shopping lists.
* Fixed bug that meant recipes called as in ingredients broke when they
included optional ingredients.
* Added unit magic to change to the most readable unit when changing
number of servings etc.
* Added preference dialog to Recipe Card view to allow selective removal
of UI elements the user doesn't want.
==== Version 0.6.7 Changes from 0.6.6 ====
* Added script to properly handle file encodings on Mealmaster import.
* Fixed check for import/exports when quitting
* Added work around for strange pygtk 2.5 bug that was slowing down
mealmaster imports.
==== Version 0.6.6 Changes from 0.6.5 ====
* Added support for printing multiple recipes and interface in main index view
for printing selected recipes.
* Added e-mail support for e-mailing recipe from card or from index view.
==== Version 0.6.4 Changes from 0.6.3 ====
* Improvements in Mealmaster(tm) import
* Improvements in threading code.
==== Version 0.6.3 Changes from 0.6.2 ====
* Made dialog's wrap text rather than getting longer.
* Made message dialogs have pretty icons, using gtk.MessageDialog
* Made menus only include one "Import" and "Export" option rather than having submenus.
* Added filetype selection to fileSelector dialogs
* Added gnomeprint interface to printing for printing shopping lists.
* Added gnomeprint interface for printing recipes (which allows you to print your
multiplications/divisions of recipes)
* Fixed threading code. Now imports and exports are pause-able and cancellable on quit.
* You can now type to select the searchBy menu.
* Changed searchbar in index view to allow proper tabbing between widgets.
* Added preview to image selection dialog.
==== Version 0.6.2 Changes from 0.6.1 ====
* Fixed up setup.py to not require gconf stuff (which
we weren't using anyway)
* Setup gettext before and took a first crack at Spanish translations
* Fixed a few minor bugs, including one in Converter interface and
one in quit confirmation.
* Added debian package.
==== Version 0.6.1 Changes from 0.6.0 ====
* Made sure HTML validates (fixed a number of small HTML bugs)
* Added
tag to specify correct encoding on HTML, following advice from
Fábio Mendes
* Fixed dialog_extras.py to properly give an "Okay" button
when creating a file or folder and an "Open" button when
selecting (before we always gave the "Open" button.
* We now make sure we create our .gourmet directory if it doesn't exist.
* We now include recipe.dtd in the distribution.
==== Version 0.6.0 Changes from 0.5.0 ====
* Added RTF Export
* Added mnemonics for entries as per GNOME HIG
* Added KeyEditor to allow editing ingredient keys en masse
* Fixed key guessing routine so it is less likely to put
together a wildly inaccurate guess
* Fixed Add-to-shopping-list dialog to use new ComboBoxEntry
widgets and to share code with Ingredient Editor.
* Added UnitConverter interface for user's convenience.
* Fixed flow of widgets (tabbing)
==== Version 0.5.3 Changes from 0.5.1 ====
* Added Key Manager interface to facilitate fixing keys en masse
and pave road for possibly adding a nutritional information
database.
* Simplified main App interface by removing import/export buttons
(these still
==== Version 0.5.2 Changes from 0.5.1 ====
* Added support for re-ordering shopping lists.
* Added a button to recipe cards for importing text ingredient lists.
==GourmetRecipeManager.py==
revision 1.68
date: 2004/09/12 23:59:00; author: tom; state: Exp; lines: +18 -6
Fixed ABOUT information & added new logo.
----------------------------
revision 1.67
date: 2004/09/12 20:36:37; author: tom; state: Exp; lines: +5 -1
Added new menu-items to list of items to be dimmed when no recipes are
selected.
----------------------------
==reccard.py==
revision 1.10
date: 2004/09/12 20:36:03; author: tom; state: Exp; lines: +24 -9
Added support for importing ingredients from plain text files.
==rmetakit.py==
revision 1.17
date: 2004/09/13 00:11:53; author: tom; state: Exp; lines: +26 -7
Added support for storing the order of shopping list ingredients and
categories.
==shopping.py==
revision 1.12
date: 2004/09/11 16:44:04; author: tom; state: Exp; lines: +69 -8
Created the mechanism for sorting our shopping list. Defaults to an
alphabetical sort, but will allow users to save custom orders.
==shopgui.py==
revision 1.5
date: 2004/09/12 23:59:42; author: tom; state: Exp; lines: +48 -4
Added code to commit order of shopping categories to
memory. (Currently, you can reorganize categories but not individual
items).
----------------------------
revision 1.4
date: 2004/09/11 16:44:57; author: tom; state: Exp; lines: +3 -12
Simplified list display, thanks to improved interface with shopping.py
==== Version 0.5.1 Changes from 0.5 ====
==setup.py==
Got rid of hard-coding of /usr/share/ and setup a MANIFEST file. Made
necessary changes in globals.py to make this work
==GourmetRecipeManager.py==
revision 1.66
date: 2004/08/20 01:16:44; author: tom; state: Exp; lines: +3 -4
Got rid of old hard-coded default XML file.
date: 2004/08/19 23:42:50; author: tom; state: Exp; lines: +45 -22
Some changes in threading code as well as superficial changes to
debugging code, etc.
==reccard.py==
revision 1.9
date: 2004/08/12 15:25:36; author: tom; state: Exp; lines: +1 -1
If an empty shopping category is entered, we don't set it to "None",
we simply ignore.
----------------------------
revision 1.8
date: 2004/08/12 15:24:12; author: tom; state: Exp; lines: +81 -37
Added functions to be called before and after modifying the tree to
avoid bizarre segfaults (pre_modify_tree and post_modify_tree).
==recindex.py==
revision 1.2
date: 2004/08/20 00:01:27; author: tom; state: Exp; lines: +39 -7
Added support for toggle-able use of regular expressions.
==rmetakit.py==
revision 1.16
date: 2004/08/20 00:04:43; author: tom; state: Exp; lines: +71 -22
Cleaned up system for generating new recipe IDs to avoid potential
confusion & problems when recipes are being added from multiple
points. Also made some changes to currently hard-coded location of
database file and default categories.
==rxml_to_metakit.py==
revision 1.8
date: 2004/08/20 00:07:47; author: tom; state: Exp; lines: +29 -15
Made sure we used proper escaping in more spots for writing XML. Also
created nicer code for dealing with recipe references as ingredients.
==shopping.py==
date: 2004/08/12 15:26:56; author: tom; state: Exp; lines: +16 -158
Moved defaults to another file. Added patch provided by Brett Smith
to fix a but when a shopping category is None.
==== Version 0.4 Changes ====
Set up "spatial" feel for application. More than one recipe card are now allowed. Editing
works nicely in the ingredient TreeView now.
GourmetRecipeManager.py
----------------------------
revision 1.51
date: 2004/06/14 13:15:08; author: tom; state: Exp; lines: +10 -2
Added support for multiple dnd types, making ingredient list accept
drags from Mozilla Firefox or from TreeView widgets (e.g. gedit).
----------------------------
revision 1.50
date: 2004/06/14 04:54:44; author: tom; state: Exp; lines: +291 -164
* View menus that update depending on what recipe cards are open.
* Behaving properly if users cancel dialogs
* Capitalize names of classes
* Create Revert-changes button for RecCard view
* Add Shopping Category to ingredient list view
* Set up editing in ingredient list view to auto-complete keys and shopping categories
* Set up popup menu for ingredient list view shopping category
* Fix bug that made you lose your image when applying other changes.
* Got rid of code for toggle buttons that toggled views. I've replaced
this with the new expander widgets.
----------------------------
revision 1.49
date: 2004/06/12 07:16:59; author: tom; state: Exp; lines: +176 -121
Redesigned code to create truly object oriented user interface. Glade
files have no been separated for ease of maintenance and to make it
easier to create multiple recipe card windows.
----------------------------
revision 1.48
date: 2004/06/12 04:14:02; author: tom; state: Exp; lines: +26 -5
laid basic groundwork for referring to recipe within ingredient list.
----------------------------
rmetakit.py
revision 1.13
date: 2004/06/14 04:58:24; author: tom; state: Exp; lines: +23 -18
* Neatened up code in various places.
* Fixed but in ingredient parser that made it break when ingredients didn't have amounts.
----------------------------
revision 1.3
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.
----------------------------
gourmand-1.0.0/ChangeLog 0000664 0000000 0000000 00000507320 14107665416 0015117 0 ustar 00root root 0000000 0000000 2014-08-17 Bernhard Reiter
* Bump version to 0.17.5.
2014-08-03 Bernhard Reiter
* Get rid of obsolete progress_func argument.
2014-07-27 Bernhard Reiter
* 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
* Fixed crash in MCB importer
2014-06-05 Bernhard Reiter
* Mention Unix distributions in INSTALL.md.
2014-06-02 Bernhard Reiter
* 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
* 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
* fixed typo
* added appdata file Fixes #759
2014-05-29 Bernhard Reiter
* 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
* changed keyboard shortcuts as per Tom's comment Fixes #264
* added requested keyboard shortcuts Fixes #264
2014-05-21 Bernhard Reiter
* In reccard, import launch_url.
* Have xml_importer accept unicode filenames.
2014-05-19 Bernhard Reiter
* 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
* INSTALL.md: add ReportLab download link.
2014-05-10 Bernhard Reiter
* 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
* 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
* 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
* Fix rating export and import for the MCB plugin.
* Update ChangeLog.
2014-05-02 Bernhard Reiter
* Fix the MCB plugin's Export all function.
2014-04-28 Bernhard Reiter
* Update ChangeLog.
2014-04-20 Bernhard Reiter
* 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
* 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
* Bump version to 0.17.3.
* Add xml.dom to packages included by cx_Freeze.
2014-04-02 Bernhard Reiter
* Add FAQ item on setting display resolution.
2014-03-23 Bernhard Reiter
* 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
* Update ChangeLog.
* Add note about code signing .msi file to INSTALL.md.
* Bump version to 0.17.2.
2014-03-16 Bernhard Reiter
* 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
* 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
* 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
* Fix a number of regressions in html_exporter.py.
* Update ChangeLog.
2014-02-25 Bernhard Reiter
* 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
* Update gourmet.desktop.in.
* Shorten years listing in copyright notice.
* Add Flattr donations button to About dialog.
2014-02-23 Bernhard Reiter
* 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
* Simplify loading of LICENSE file into About dialog.
* Add donations text and buttons to the About dialog.
* Update ChangeLog.
2014-02-20 Bernhard Reiter
* Add 2014 to copyright years.
2014-02-18 Bernhard Reiter
* Some gourmet/backends/db.py cleanup.
* When connecting to a MySQL database, force UTF-8 charset.
2014-02-09 Bernhard Reiter
* Replace deprecated PoolListener by @event.listens_for decorator.
2014-02-08 Bernhard Reiter
* 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
* UTF-8-decode ingkey in shopping_key_editor_plugin.
2014-01-21 Bernhard Reiter
* Fix a regression introduced by the last commit.
2014-01-20 Bernhard Reiter
* When de-activating Browse Recipes plugin, remove its tab.
2014-01-12 Bernhard Reiter
* Fix a typo.
2014-01-11 Lyra
* FIX: Create a shopping list even if one entry hasn't an amount
2014-01-06 Bernhard Reiter
* 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
* 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
* Revert "Fix stupid mistake."
2014-01-04 Bernhard Reiter
* Check if active_plugin is really there.
2014-01-03 Bernhard Reiter
* 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
* Remove NSIS related files.
2014-01-01 Bernhard Reiter
* 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
* Add reportlab packages to setup.py so py2exe includes them.
2013-11-19 Bernhard Reiter
* 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
* Fix wildcard imports.
2013-11-13 Bernhard Reiter
* Fix another PIL import.
2013-11-02 Joe Sapp
* Remove "Application" from desktop entry
2013-01-11 Bernhard Reiter
* s/options/args/ to make bin/gourmet launch.
2013-01-11 Jeff Raber
* Replace deprecated optparse with argparse, per issue 683 [1]
2013-10-12 Bernhard Reiter
* Fix a typo that broke the nutritional information plugin DB upgrade.
2013-10-11 Bernhard Reiter
* Remove some more metakit remnants.
* Update po[t] files.
* Remove legacy_db (i.e. metakit) stuff.
2013-10-10 Bernhard Reiter
* Clean up recindex.py.
* Clean up GourmetRecipeManager.py.
* Clean up reccard.py
2013-09-30 Bernhard Reiter
* In PDF export, print title only once (as heading).
2013-09-20 Bernhard Reiter
* Only set_current_folder if get_user_special_dir(USER_DIRECTORY_PICTURES) isn't None.
2013-09-09 Bernhard Reiter
* 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
* s/ui/ui_string/ fix in a couple of files.
2013-09-01 Bernhard Reiter
* Remove some spurious Image (i.e. PIL) imports.
2013-08-30 Bernhard Reiter
* Update Changelog.
2013-08-29 Bernhard Reiter
* Update version to 0.16.1 in gourmet/version.py.
* Update MANIFEST.in.
* Update translation files.
2013-08-28 Bernhard Reiter
* 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
* 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
* Replace more 'Image' imports with Pillow-compatible blocks
2013-08-25 Bernhard Reiter
* Fix testImporters.py.
Among other things, use a temporary in-memory SQLite database for testing.
2013-08-24 Bernhard Reiter
* Truncate Source field in PDF export.
Fixes #721
2013-08-10 Bernhard Reiter
* One more string exception to fix.
2013-08-09 Bernhard Reiter
* s/thinkle.github.com/thinkle.github.io/
2013-08-06 Bernhard Reiter
* Merge pull request #723 from gyp/master
importing gettext in exportManager as it has localized strings
2013-08-06 Peter Gyongyosi
* importing gettext in exportManager as it has localized strings
This fixes https://bugs.launchpad.net/gourmet/+bug/1157969
2013-08-04 Bernhard Reiter
* Add INSTALL.md.
2013-07-30 Bernhard Reiter
* 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
* Fixing issue with mysql, VARCHAR requires a length, I figure 255 is probably good enough
2013-06-01 Bernhard Reiter
* Remove obsolete tools/upgrade_pre_script.py.
* Remove hardwired sys.path.append('/usr/share/gourmet') lines.
2013-05-27 Bernhard Reiter
* 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
* 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
* 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
* Merge pull request #715 from MrShark/master
An importer for ica.se (Swedish storechain)
2013-04-11 jens persson
* First shot on an importer for ica.se
2013-04-06 Bernhard Reiter
* 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
* Add Development Tools section (taken from the Wiki).
* Move Windows version warning to README.windows.md.
2013-03-23 Bernhard Reiter
* Fix a bug in defaults_ru.py
2013-03-12 Bernhard Reiter
* 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
* Add (Eclipse's) .settings/ dir to .gitignore
* Fix a bug in get_pluralized_form.
2013-03-09 Bernhard Reiter
* 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
* Fix a bug that caused gourmet to fail when LC_ALL=C
2013-03-06 Bernhard Reiter
* 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
* 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
* Fix directory locations in setup_win.py.
* Fix import path in setup_win.py
2013-02-27 Bernhard Reiter
* 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
* 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
* 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
Fix #288.
2013-02-05 Bernhard Reiter
* 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
Remove pickle_key and pickle_val options from dbDic.
2013-02-03 Thomas Mills Hinkle
* 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
* 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
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
* 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
* 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
* 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
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
Add slogan to README.md ;-)
2013-01-12 Thomas Mills Hinkle
* gourmet/importers/importManager.py: gettext fix
2013-01-12 Bernhard Reiter
* 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
* Change data/recipe.dtd perms from 755 to 644.
* .gitignore: Remove obsolete lines, add .pydevproject. .cvsignore: Delete.
2013-01-07 Bernhard Reiter
* 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
* 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
* 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
* Replace some wildcard imports.
* Remove some cruft from gourmet/__init__.py.
2013-01-02 Bernhard Reiter
* 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
* 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
Remove BUG_URL link from gglobals.py as its both outdated and not used anywhere.
2012-12-30 Bernhard Reiter
* 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
* 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
* 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
Remove obsolete GourmetFauxThreads.py and GourmetThreads.py.
2012-12-17 Bernhard Reiter
* 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
Remove obsolete line from setup.py
2012-11-26 Bernhard Reiter
* 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
Remove obsolete file (now in gourmet/plugins/import_export/mastercook_import_plugin/)
2012-05-25 Thomas Hinkle
* Fixed conflict
* ++gettext
2012-04-27 Tom
* 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
Bump version number to 0.16.0-dev
2012-03-06 Bernhard Reiter
* 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
* 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
* Replace create_manifest.py by MANIFEST.in
* Remove some more duplicates
2012-02-20 Bernhard Reiter
Minor setup.py fix
2012-02-16 Bernhard Reiter
Remove tools/gourmet_distutils as it's unused (there's still tools/gourmet_distutils.py)
2012-02-12 Bernhard Reiter
* 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
* 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
* 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
Rename i18n/ directory to po/ so intltool-update --maintain will work
2012-02-08 Bernhard Reiter
* 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
* Replace custom hack in setup_gettext.py by elib.intl module
* Add Lauchpad header to i18n/de.po
2012-02-06 Bernhard Reiter
Update i18n/gourmet.pot translation template
2012-02-05 Bernhard Reiter
* 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
* 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
* 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
Small i18n related fix.
2012-01-29 Bernhard Reiter
* 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
* 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
* 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
Add LICENSE to MANIFEST as it's needed by the About dialog.
2012-01-12 Bernhard Reiter
Comment out an obsolete windows workaround.
2012-01-11 Bernhard Reiter
Remove a stray file that had sneaked into MANIFEST and i18n/POTFILES.in
2012-01-10 Bernhard Reiter
* 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
Remove make_star_button and make_star_image functions as they aren't needed anymore.
2012-01-06 Bernhard Reiter
* 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
Replace gnome.ui.About dialog by gtk.AboutDialog
2011-12-27 Bernhard Reiter
Use an InfoBar to display deletion warning message
2011-12-19 Bernhard Reiter
Add alignment objects to recCardDisplay.ui as that information got lost during gtk.Builder migration.
2011-12-17 Bernhard Reiter
Add NutritionLabel widget back to nut_recipe_card_display.ui which got lost in the migration to gtk.Builder
2011-12-16 Bernhard Reiter
* 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
* 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
Start migrating recCardDisplay to gtk.Builder
2011-07-01 Tom
* 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
* src/lib/reccard.py (IngredientController.commit_ingredients.commit_iter):
Fix attr lookup error in corner cases.
2011-03-20 Tom
* 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
* src/lib/version.py (version): Version --> 0.15.8
2011-03-07 Tom
* src/lib/backends/db.py (RecData._force_unicode): Don't unicode-ify images!
2011-02-02 Tom
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* src/lib/version.py (version): Version->0.15.6
2010-07-20 Thomas M. Hinkle
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* src/lib/gtk_extras/thumbnail.py (check_for_thumbnail): Catch
non-ASCII characters in URLs.
2010-01-06 Thomas M. Hinkle
* 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
* 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
* 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
* 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
* 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
* src/lib/backends/db.py (RecData.update_version_info): Fix update
from versions < 0.11.x
2009-12-11 Thomas M. Hinkle
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* data/ABBREV.txt
* data/WEIGHT.txt
* data/FOOD_DES.txt update nutritional database version to SR21
2009-08-22 Thomas M Hinkle
* glade/recCardDisplay.glade: Fix add-to-shopping-list button (use stock id)
2009-08-18 Thomas M Hinkle
* src/lib/shopgui.py (ShopGui.__init__): Fix bug that screwed up
positions of panes in shopping list view.
2009-08-15 Thomas M Hinkle
* 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
* 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
* 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
* src/lib/reccard.py (RecCardDisplay.multiplication_change_cb):
Implement multiplication again.
2009-07-15 Thomas M Hinkle
* 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
* 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
* 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
* 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
* 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
* src/lib/keymanager.py (KeyManager.__init__): Initialize categories again.
2009-06-16 Thomas Hinkle
* src/lib/plugins/nutritional_information/nutritionDruid.py (NutritionInfoDruid.apply_custom):
Fix custom information for fat.
2009-06-07 Thomas M Hinkle
* 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
* 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
* 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
* 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
* 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
* Release 0.14.8
2009-05-29 Thomas M Hinkle
* gourmet.desktop.in (_Comment): Update description of app.
* setup.py (maybe_intltool): Apply patch from Rupert Swarbrick
which avoids running intltool-merge
when not necessary.
2009-05-28 Thomas M Hinkle
* MANIFEST: Don't include test_* files in MANIFEST.
2009-05-26 Thomas M Hinkle
* src/lib/plugins/browse_recipes/browser.py (RecipeBrowserView.build_base_model):
Don't include yields in browser.
2009-05-25 Thomas M Hinkle
* src/lib/plugins/import_export/mealmaster_plugin/mealmaster_importer_plugin.py (test_dir):
Look for sample recs in src/tests/recipe_files...
* src/lib/exporters/test_exportManager.py (TestExports.testSingleExport):
Improve error message when plugin's check_export method throws an
error.
2009-05-24 Thomas M Hinkle
* src/lib/importers/xml_importer.py (Converter.do_run): Make sure
we get added_recs from recHandler class.
* src/lib/importers/importer.py (Importer.__init__): Get
keymanager using new singleton access method.
* src/lib/importers/importManager.py (ImportManager.import_filenames):
make import_filenames return a list of importer instances that we
used.
2009-05-24 Thomas Hinkle
* src/lib/exporters/exportManager.py (ExportManager.get_extra_prefs):
Add method for handling of extra prefs (through UI or
automagically).
(do_multiple_export): Use get_extra_prefs / extra_prefs parameter
(ExportManager.do_single_export): Use get_extra_prefs /
extra_prefs parameter
2009-05-24 Thomas M Hinkle
* src/lib/plugins/import_export/gxml_plugin/gxml_exporter_plugin.py (GourmetExportChecker):
Add class for testing exports for validity.
(GourmetExporterPlugin.check_export): Run export checker.
* src/lib/exporters/test_exportManager.py (TestExports.testSingleExport):
Run plugin's check_export script if it has one (allows plugins to
implement their own test).
* src/lib/reccard.py (IngredientController.get_extra_ingredient_attributes):
Don't throw error if item is blank/None
2009-05-23 Thomas M Hinkle
* src/tests/recipe_files/mealmaster.mmf: Add custom yield (6 puffs
for Almond puff)
* src/lib/plugins/import_export/mealmaster_plugin/mealmaster_importer.py (mmf_importer.handle_line):
Add support for yields units other than servingts.
2009-05-19 Thomas Hinkle
* src/lib/exporters/exporter.py (exporter.__init__._grab_attr_):
Fix handling of yield/yield unit output.
* src/lib/plugins/import_export/pdf_plugin/pdf_exporter_plugin.py (PdfExporterPlugin.get_default_prefs):
Use DEFAULT_PDF_ARGS for default PDF prefs.
* src/lib/plugins/import_export/pdf_plugin/pdf_exporter.py: Update default PDF args.
* src/lib/plugins/import_export/mealmaster_plugin/mealmaster_exporter_plugin.py (MealmasterExporterPlugin.get_multiple_exporter):
Remove obsolete args (conv/prog)
* src/lib/plugins/import_export/mealmaster_plugin/mealmaster_exporter.py (mealmaster_exporter.__init__):
Get mealmaster_importer from plugin, not from obsolete location
inside Gourmet's main libraries.
* src/lib/plugins/import_export/html_plugin/html_exporter.py (website_exporter): Update servings->yields
* (Head): Rename test suites (*_tests.py -> test_*). I had
preferred the alphabetization of *_tests.py, but a number of
unittest tools are written to work only the other way.
2009-05-17 Thomas Hinkle
* src/lib/plugins/nutritional_information/nutrition.py (NutritionData.get_nutinfo_for_ing):
Catch very unusual corner case where i.rangeamount and i.amount
don't add cleanly (this means something's wrong with the inputs --
but the least we can do is display a nicer error message).
* src/lib/backends/db_tests.py (TestMoreDataStuff.test_modify_rec):
Add test to make sure modify_rec is working.
(TestMoreDataStuff.test_modify_ing): Add test to make sure
modify_ing is working (this would have caught the regression in my
last commit).
* src/lib/backends/db.py (RecData.add_ings): Move fix previously
put in validate_ingdic here (putting it in validate_ingdic has bad
side effects -- oops)
(validate_ingdic): Remove code put here earlier today (it caused
modify_ing, etc. to delete data)
* src/lib/importers/importer_tests.py: Add new test suites for
base import class (including test against regression of today's
new bugfix)
* src/test_gourmet.py: Add new tests suites.
* src/lib/importers/interactive_importer_tests.py: basic test
suite for interactive importer (created to track down bug with
"disappearing" ingredient units).
* src/lib/importers/importer.py (RatingConverter.get_conversions):
Fix converter (bad import call)
* src/lib/backends/db.py (RecData.validate_ingdic): Make sure
ingdic includes keys for all columns. This avoids a very nasty bug
when executing an insert statement with more than one
row (basically, we'd drop random columns if the rows didn't all
have the same columns).
2009-05-16 Thomas Hinkle
* src/test_gourmet.py: Add unit testing script (currently tests DB
and convert backends.)
* src/lib/backends/db_tests.py: Convert db tests to use unittest
module.
* src/lib/convert_tests.py: Add testing file for our convert module.
2009-05-15 Thomas Hinkle
* src/tests/recipe_files/athenos.mx2: Add test mastercook file for importing.
src/lib/plugins/import_export/gxml_plugin/gxml2_importer.py (RecHandler.endElement):
Add code for parsing yields field into yields and yields_unit.
* src/lib/plugins/import_export/gxml_plugin/gxml2_exporter.py (recipe_table_to_xml.__init__):
Change servings to yields.
* src/lib/backends/db_tests.py (test_unicode): Extend tests of
unicode support.
2009-05-10 Thomas Hinkle
* src/lib/importers/xml_importer.py (Converter.__init__): Get rid
of self.name assignment (Thread throws an error otherwise)
* src/lib/backends/db.py (RecData._force_unicode): Force unicode
for modify methods as well (fixes traceback on import with
non-unicode text that was getting fed straight to sqlite.
2009-05-07 Thomas Hinkle
* src/lib/exporters/exporter.py (exporter_mult._grab_attr_): Add yields/yield_unit
(exporter.__init__._grab_attr_): Add support for yields/yield_unit
2009-05-05 Thomas Hinkle
* src/lib/threadManager.py (SuspendableThread.__init__): Don't set name attribute on Thread (pass it to Thread.__init__() call (setting name throws an error in python 2.6)
* src/lib/plugins/import_export/web_import_plugin/webpage_importer.py (WebParser.__init__):
No longer set name attribute (this breaks the python 2.6
implementation of Thread)
* src/lib/importers/interactive_importer.py: Add yield_unit to
buttons.
2009-05-01 Thomas Hinkle
* src/lib/recipeIdentifier.py (get_ingredient_hash): md5 ->
hashlib (remove deprecated md5 lib)
* src/lib/gtk_extras/thumbnail.py (check_for_thumbnail): md5 ->
hashlib (remove deprecated md5 lib)
* src/lib/backends/db.py : Fix unicode type errors from sqlalchemy.
* src/lib/*: Change servings->yields
2009-03-27 Thomas Hinkle
* src/lib/exporters/exportManager.py (ExportManager.offer_multiple_export):
Include any recipes linked to in your recipes in your export.
* src/lib/backends/db.py (RecData.include_linked_recipes): Add
convenience method to append linked recipes (from
recipe-as-ingredient) to a list of recipes.
2009-03-26 Thomas Hinkle
* src/lib/gtk_extras/dialog_extras.py (saveas_file): If we can't
guess our file type based on the extension, use whatever is
selected in the filetype combo box as fallback.
* src/lib/exporters/exportManager.py (ExportManager.offer_multiple_export):
Show error message if we don't get an export type.
* src/lib/backends/db.py (RecData.get_amount_and_unit): Don't
require conv argument to be passed (switching to singleton design
pattern...)
2009-03-26 Artis Rozentāls
* src/lib/plugins/nutritional_information/nutrition.py (NutritionData.set_key_from_ndbno):
Fix association editing.
2009-03-24 Thomas Hinkle
* src/lib/plugins/import_export/html_plugin/html_exporter_plugin.py (HtmlExporterPlugin.get_multiple_exporter):
Eliminate obsolete arguments (progress_func is no longer needed
with our new signal interface and converters are now gotten using
a singleton design pattern.
2009-03-14 Thomas Hinkle
* src/lib/plugin_gui.py (PluginChooser.do_change_plugin): Display
error to user when loading a plugin fails. Give suggestions as to
how to install dependencies in case of import error.
* src/lib/plugin_loader.py (MasterLoader): Remove key_editor from
default plugin set. This is a lot of functionality to put on
people who don't want it -- removing it greatly simplifies Gourmet
for those not interested.
(MasterLoader.__init__): Add class variable 'errors' to keep track
of errors raised in instantiating plugins, etc. This allows
plugin_gui to display these errors to users. Use this variable
when instantiating PluginSets to keep track of error messages our
users may want.
2009-03-07 Thomas Hinkle
* src/lib/shopgui.py (ShopGui): Prevent ShopGui window from
getting destroyed on delete-event (when user closes window from WM
control).
2009-03-01 Thomas Hinkle
* src/lib/shopgui.py (ShopGui.item_added): Make sure added items
don't end up in the pantry.
2009-02-28 Thomas Hinkle
* src/lib/plugins/listsaver: Added plugin (this was in the tarball
released earlier, but had accidentally not been added to CVS).
2009-02-22 Thomas Mills Hinkle
* src/lib/plugins/key_editor/recipeEditorPlugin.py (IngredientKeyEditor.update_from_ingredient_editor_cb):
Fix typo that caused weirdness in ingredient key editor
view (where key of last ingredient in list got propogated to
ingredients as they were added).
(IngredientKeyEditor.update_from_ingredient_editor_cb): Actually
guess the key using keyManager rather than just cutting off key
after the semicolon.
* src/lib/reccard.py (IngredientEditor): Remove old
IngredientEditor class (This has all been simplified or moved to
plugins).
* src/lib/keymanager.py (KeyManager.look_for_key): Change math on
key lookup slightly so that multi-word keys such as "chocolate
chips" get penalized when matching on single-word
items ("chocolate"), just as we would punish "chocolate" for being
only one word in "chocolate chips".
* src/lib/plugins/key_editor/keyEditor.py (KeyEditor.__init__):
Create our own keymodel (old use of rg.rd.inginfo is obsolete).
2009-02-21 Thomas Mills Hinkle
* src/lib/version.py - Version-> 0.14.7. Released 0.14.7
tarball+deb to SF
2009-02-21 Thomas Mills Hinkle