├── anymeal
├── locale
│ ├── .gitignore
│ ├── Makefile.am
│ ├── de
│ │ └── Makefile.am
│ ├── fr
│ │ └── Makefile.am
│ ├── it
│ │ └── Makefile.am
│ ├── nl
│ │ └── Makefile.am
│ └── sl
│ │ └── Makefile.am
├── icon.rc
├── header.bmp
├── splash.png
├── splash.xcf
├── anymeal.ico
├── anymeal.png
├── .gitignore
├── flag_nl.svg
├── flag_fr.svg
├── flag_it.svg
├── de.wedesoft.anymeal.desktop
├── flag_de.svg
├── flag_uk.svg
├── anymeal.qrc
├── export.hh
├── ingredient.cc
├── partition.hh
├── export_dialog.hh
├── import_dialog.hh
├── mealmaster.hh
├── category_dialog.hh
├── add_dialog.hh
├── de.wedesoft.anymeal.appdata.xml
├── anymeal.cc
├── rename_dialog.hh
├── recipe.cc
├── category_picker.hh
├── categories_model.hh
├── merge_dialog.hh
├── category_dialog.cc
├── html.hh
├── converter_window.hh
├── anymeal.man
├── categories_model.cc
├── add_dialog.cc
├── titles_model.hh
├── recode.hh
├── partition.cc
├── flag_sl.svg
├── rename_dialog.cc
├── merge_dialog.cc
├── export_dialog.cc
├── import_dialog.cc
├── instructions_model.hh
├── ingredient.hh
├── titles_model.cc
├── category_table_model.hh
├── add_dialog.ui
├── merge_dialog.ui
├── rename_dialog.ui
├── edit_dialog.hh
├── ingredient_model.hh
├── category_dialog.ui
├── recipe.hh
├── Makefile.am
├── main_window.hh
├── recode.cc
├── category_picker.ui
├── category_picker.cc
├── database.hh
├── converter_window.ui
├── instructions_model.cc
├── category_table_model.cc
├── duplicate.svg
├── export_dialog.ui
├── import_dialog.ui
└── export.cc
├── debian
├── clean
├── source
│ └── format
├── rules
├── upstream
│ ├── metadata
│ └── signing-key.asc
├── watch
├── control
└── copyright
├── tests
├── .gitignore
├── fixtures
│ ├── no_servings.mmf
│ ├── serving_spaces.mmf
│ ├── header.mmf
│ ├── instructions10.mmf
│ ├── instructions5.mmf
│ ├── instructions6.mmf
│ ├── instructions7.mmf
│ ├── instructions8.mmf
│ ├── header2.mmf
│ ├── instructions2.mmf
│ ├── instructions9.mmf
│ ├── title_spaces.mmf
│ ├── instructions3.mmf
│ ├── instructions4.mmf
│ ├── no_ingredient.mmf
│ ├── instructions1.mmf
│ ├── float.mmf
│ ├── ignore_0x14.mmf
│ ├── mixed.mmf
│ ├── replace_0x9.mmf
│ ├── fraction.mmf
│ ├── noamount.mmf
│ ├── append_to_line.mmf
│ ├── ingredient.mmf
│ ├── two_instructions.mmf
│ ├── ingredient_like.mmf
│ ├── preparation.mmf
│ ├── overlong_ingredient.mmf
│ ├── overlong_ingredient2.mmf
│ ├── skip_leading_spaces.mmf
│ ├── unexpected_continuation.mmf
│ ├── two_columns.mmf
│ ├── float_crlf.mmf
│ ├── two_ingredients.mmf
│ ├── force_newline.mmf
│ ├── instruction_eol.mmf
│ ├── instruction_eol2.mmf
│ ├── instruction_eol3.mmf
│ ├── instruction_number.mmf
│ ├── stray_ingredient.mmf
│ ├── continuation.mmf
│ ├── ignore_whitespaces.mmf
│ ├── instruction_eol4.mmf
│ ├── continuation_whitespace.mmf
│ ├── discard_two_spaces.mmf
│ ├── flush_ingredients.mmf
│ ├── three_ingredients.mmf
│ ├── section_whitespace.mmf
│ ├── column_major.mmf
│ ├── two_column_continuation4.mmf
│ ├── two_column_trailing.mmf
│ ├── two_column_continuation.mmf
│ ├── two_column_continuation2.mmf
│ ├── two_column_continuation3.mmf
│ ├── instruction_section.mmf
│ ├── section_hyphen.mmf
│ ├── section_spaces.mmf
│ ├── ingredient_section.mmf
│ ├── instruction_header.mmf
│ ├── erroneous_continuation.mmf
│ ├── ignore_newlines.mmf
│ ├── empty_ingredient_section.mmf
│ ├── two_column_section.mmf
│ └── Makefile.am
├── suite.cc
├── test_ingredient.cc
├── Makefile.am
├── test_recipe.cc
├── test_partition.cc
└── test_recode.cc
├── autogen.sh
├── m4
├── .gitignore
└── ax_lib_sqlite3.m4
├── Makefile.am
├── etc
├── dput.cf
├── docker-compose.yml
└── Dockerfile
├── .gitignore
├── configure.mingw
├── Makefile.package
├── Makefile.appimage
├── Dockerfile.sid
├── snapcraft.yaml
├── Makefile.sid
├── configure.ac
├── .github
└── workflows
│ └── anymeal.yml
├── README.md
└── anymeal.nsi
/anymeal/locale/.gitignore:
--------------------------------------------------------------------------------
1 | *.qm
2 |
--------------------------------------------------------------------------------
/debian/clean:
--------------------------------------------------------------------------------
1 | tests/gtest-all.cc
2 |
--------------------------------------------------------------------------------
/debian/source/format:
--------------------------------------------------------------------------------
1 | 3.0 (quilt)
2 |
--------------------------------------------------------------------------------
/anymeal/icon.rc:
--------------------------------------------------------------------------------
1 | anymeal ICON "anymeal.ico"
2 |
--------------------------------------------------------------------------------
/tests/.gitignore:
--------------------------------------------------------------------------------
1 | gmock-all.cc
2 | gtest-all.cc
3 |
--------------------------------------------------------------------------------
/anymeal/locale/Makefile.am:
--------------------------------------------------------------------------------
1 | SUBDIRS = de it nl fr sl
2 |
--------------------------------------------------------------------------------
/autogen.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | git log > ChangeLog
3 | autoreconf -i
4 |
--------------------------------------------------------------------------------
/anymeal/header.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wedesoft/anymeal/HEAD/anymeal/header.bmp
--------------------------------------------------------------------------------
/anymeal/splash.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wedesoft/anymeal/HEAD/anymeal/splash.png
--------------------------------------------------------------------------------
/anymeal/splash.xcf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wedesoft/anymeal/HEAD/anymeal/splash.xcf
--------------------------------------------------------------------------------
/anymeal/anymeal.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wedesoft/anymeal/HEAD/anymeal/anymeal.ico
--------------------------------------------------------------------------------
/anymeal/anymeal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wedesoft/anymeal/HEAD/anymeal/anymeal.png
--------------------------------------------------------------------------------
/anymeal/.gitignore:
--------------------------------------------------------------------------------
1 | anymeal
2 | mealmaster.cc
3 | lib*.a
4 | moc_*.cc
5 | ui_*.hh
6 | qrc_*.cc
7 |
--------------------------------------------------------------------------------
/m4/.gitignore:
--------------------------------------------------------------------------------
1 | libtool.m4
2 | ltoptions.m4
3 | ltsugar.m4
4 | ltversion.m4
5 | lt~obsolete.m4
6 |
--------------------------------------------------------------------------------
/Makefile.am:
--------------------------------------------------------------------------------
1 | ACLOCAL_AMFLAGS = -I m4
2 |
3 | SUBDIRS = anymeal tests
4 |
5 | doc_DATA = README.md
6 |
7 | EXTRA_DIST = README.md LICENSE anymeal.nsi
8 |
--------------------------------------------------------------------------------
/tests/fixtures/no_servings.mmf:
--------------------------------------------------------------------------------
1 | MMMMM----------------Meal-Master recipe exported by AnyMeal-----------------
2 | Title: apple pie
3 | Categories: pastries, cakes
4 |
5 | MMMMM
6 |
--------------------------------------------------------------------------------
/tests/fixtures/serving_spaces.mmf:
--------------------------------------------------------------------------------
1 | ---------- Recipe via Meal-Master (tm) v7.04
2 |
3 | Title: Hearty Russian Beet Soup
4 | Categories: Soups
5 | Servings: 8
6 |
7 | -----
8 |
--------------------------------------------------------------------------------
/debian/rules:
--------------------------------------------------------------------------------
1 | #!/usr/bin/make -f
2 |
3 | export DH_VERBOSE = 1
4 | export DEB_BUILD_MAINT_OPTIONS = hardening=+all
5 | export DEB_CFLAGS_MAINT_APPEND = -Wall -pedantic
6 |
7 | %:
8 | dh $@
9 |
--------------------------------------------------------------------------------
/tests/fixtures/header.mmf:
--------------------------------------------------------------------------------
1 | MMMMM----------------Meal-Master recipe exported by AnyMeal-----------------
2 | Title: apple pie
3 | Categories: pastries, cakes
4 | Servings: 42 pies
5 | MMMMM
6 |
--------------------------------------------------------------------------------
/tests/fixtures/instructions10.mmf:
--------------------------------------------------------------------------------
1 | ---------- Recipe via Meal-Master (tm) v8.05
2 |
3 | Title: cooked apple
4 | Categories: desserts
5 | Yield: 1 Servings
6 |
7 | 1 2/3 each.
8 | -----
9 |
--------------------------------------------------------------------------------
/tests/fixtures/instructions5.mmf:
--------------------------------------------------------------------------------
1 | ---------- Recipe via Meal-Master (tm) v8.05
2 |
3 | Title: cooked apple
4 | Categories: desserts
5 | Yield: 1 Servings
6 |
7 | -
8 | -----
9 |
--------------------------------------------------------------------------------
/tests/fixtures/instructions6.mmf:
--------------------------------------------------------------------------------
1 | ---------- Recipe via Meal-Master (tm) v8.05
2 |
3 | Title: cooked apple
4 | Categories: desserts
5 | Yield: 1 Servings
6 |
7 | 2 3 apples.
8 | -----
9 |
--------------------------------------------------------------------------------
/tests/fixtures/instructions7.mmf:
--------------------------------------------------------------------------------
1 | ---------- Recipe via Meal-Master (tm) v8.05
2 |
3 | Title: cooked apple
4 | Categories: desserts
5 | Yield: 1 Servings
6 |
7 | 1/x apples.
8 | -----
9 |
--------------------------------------------------------------------------------
/tests/fixtures/instructions8.mmf:
--------------------------------------------------------------------------------
1 | ---------- Recipe via Meal-Master (tm) v8.05
2 |
3 | Title: cooked apple
4 | Categories: desserts
5 | Yield: 1 Servings
6 |
7 | 1/2 apples.
8 | -----
9 |
--------------------------------------------------------------------------------
/tests/fixtures/header2.mmf:
--------------------------------------------------------------------------------
1 | MMMMM----------------Meal-Master recipe exported by AnyMeal-----------------
2 | Title: apple pie
3 | Categories: pastries, cakes
4 | Yield: 42 servings
5 | MMMMM
6 |
--------------------------------------------------------------------------------
/tests/fixtures/instructions2.mmf:
--------------------------------------------------------------------------------
1 | ---------- Recipe via Meal-Master (tm) v8.05
2 |
3 | Title: cooked apple
4 | Categories: desserts
5 | Yield: 1 Servings
6 |
7 | 1 cook is used.
8 | -----
9 |
--------------------------------------------------------------------------------
/tests/fixtures/instructions9.mmf:
--------------------------------------------------------------------------------
1 | ---------- Recipe via Meal-Master (tm) v8.05
2 |
3 | Title: cooked apple
4 | Categories: desserts
5 | Yield: 1 Servings
6 |
7 | 1 2/x apples.
8 | -----
9 |
--------------------------------------------------------------------------------
/tests/fixtures/title_spaces.mmf:
--------------------------------------------------------------------------------
1 | MMMMM----------------Meal-Master recipe exported by AnyMeal-----------------
2 | Title: apple pie
3 | Categories: pastries, cakes
4 | Servings: 42 pies
5 | MMMMM
6 |
--------------------------------------------------------------------------------
/tests/fixtures/instructions3.mmf:
--------------------------------------------------------------------------------
1 | ---------- Recipe via Meal-Master (tm) v8.05
2 |
3 | Title: cooked apple
4 | Categories: desserts
5 | Yield: 1 Servings
6 |
7 | Start cooking.
8 | -----
9 |
--------------------------------------------------------------------------------
/tests/fixtures/instructions4.mmf:
--------------------------------------------------------------------------------
1 | ---------- Recipe via Meal-Master (tm) v8.05
2 |
3 | Title: cooked apple
4 | Categories: desserts
5 | Yield: 1 Servings
6 |
7 | 2.5 apples are used.
8 | -----
9 |
--------------------------------------------------------------------------------
/tests/fixtures/no_ingredient.mmf:
--------------------------------------------------------------------------------
1 | ---------- Recipe via Meal-Master (tm) v8.01
2 |
3 | Title: Carrot Cake
4 | Categories: Cakes, Muffins
5 | Yield: 12 servings
6 |
7 | 20 mg cholesterol
8 | -----
9 |
--------------------------------------------------------------------------------
/tests/fixtures/instructions1.mmf:
--------------------------------------------------------------------------------
1 | ---------- Recipe via Meal-Master (tm) v8.05
2 |
3 | Title: cooked apple
4 | Categories: desserts
5 | Yield: 1 Servings
6 |
7 | Cook all the ingredients.
8 | -----
9 |
--------------------------------------------------------------------------------
/tests/fixtures/float.mmf:
--------------------------------------------------------------------------------
1 | MMMMM----------------Meal-Master recipe exported by AnyMeal-----------------
2 | Title: apple pie
3 | Categories: pastries, cakes
4 | Servings: 42 pies
5 |
6 | 2.5 g butter
7 | MMMMM
8 |
--------------------------------------------------------------------------------
/tests/fixtures/ignore_0x14.mmf:
--------------------------------------------------------------------------------
1 | ---------- Recipe via Meal-Master (tm) v7.04
2 |
3 | Title: Nora Mill Whole Wheat Pancakes
4 | Categories: Cakes
5 | Servings: 8
6 |
7 | First line.
8 |
9 | -----
10 |
--------------------------------------------------------------------------------
/tests/fixtures/mixed.mmf:
--------------------------------------------------------------------------------
1 | MMMMM----------------Meal-Master recipe exported by AnyMeal-----------------
2 | Title: apple pie
3 | Categories: pastries, cakes
4 | Servings: 42 pies
5 |
6 | 1 2/3 g fat
7 | MMMMM
8 |
--------------------------------------------------------------------------------
/tests/fixtures/replace_0x9.mmf:
--------------------------------------------------------------------------------
1 | ---------- Recipe via Meal-Master (tm) v7.04
2 |
3 | Title: Nora Mill Whole Wheat Pancakes
4 | Categories: Cakes
5 | Servings: 8
6 |
7 | First line.
8 |
9 | -----
10 |
--------------------------------------------------------------------------------
/etc/dput.cf:
--------------------------------------------------------------------------------
1 | [mentors]
2 | fqdn = mentors.debian.net
3 | incoming = /upload
4 | method = https
5 | allow_unsigned_uploads = 0
6 | progress_indicator = 2
7 | # Allow uploads for UNRELEASED packages
8 | allowed_distributions = .*
9 |
--------------------------------------------------------------------------------
/tests/fixtures/fraction.mmf:
--------------------------------------------------------------------------------
1 | MMMMM----------------Meal-Master recipe exported by AnyMeal-----------------
2 | Title: apple pie
3 | Categories: pastries, cakes
4 | Servings: 42 pies
5 |
6 | 2/3 c olive oil
7 | MMMMM
8 |
--------------------------------------------------------------------------------
/tests/fixtures/noamount.mmf:
--------------------------------------------------------------------------------
1 | MMMMM----------------Meal-Master recipe exported by AnyMeal-----------------
2 | Title: apple pie
3 | Categories: pastries, cakes
4 | Servings: 42 pies
5 |
6 | butter
7 | MMMMM
8 |
--------------------------------------------------------------------------------
/tests/fixtures/append_to_line.mmf:
--------------------------------------------------------------------------------
1 | ---------- Recipe via Meal-Master (tm) v8.05
2 |
3 | Title: cooked apple
4 | Categories: desserts
5 | Yield: 1 Servings
6 |
7 | First part.
8 | Second part.
9 | -----
10 |
11 |
--------------------------------------------------------------------------------
/tests/fixtures/ingredient.mmf:
--------------------------------------------------------------------------------
1 | MMMMM----------------Meal-Master recipe exported by AnyMeal-----------------
2 | Title: apple pie
3 | Categories: pastries, cakes
4 | Servings: 42 pies
5 |
6 | 250 g brown flour
7 | MMMMM
8 |
--------------------------------------------------------------------------------
/tests/fixtures/two_instructions.mmf:
--------------------------------------------------------------------------------
1 | ---------- Recipe via Meal-Master (tm) v8.05
2 |
3 | Title: cooked apple
4 | Categories: desserts
5 | Yield: 1 Servings
6 |
7 | First line.
8 |
9 | Third line.
10 | -----
11 |
--------------------------------------------------------------------------------
/etc/docker-compose.yml:
--------------------------------------------------------------------------------
1 | version: "3"
2 |
3 | services:
4 | app:
5 | image: anymeal:latest
6 | environment:
7 | - DISPLAY=${DISPLAY}
8 | volumes:
9 | - /tmp/.X11-unix:/tmp/.X11-unix
10 | network_mode: host
11 |
--------------------------------------------------------------------------------
/tests/fixtures/ingredient_like.mmf:
--------------------------------------------------------------------------------
1 | MMMMM----------------Meal-Master recipe exported by AnyMeal-----------------
2 | Title: apple pie
3 | Categories: pastries, cakes
4 | Servings: 42 pies
5 |
6 | First line
7 | 1 kg water.
8 | MMMMM
9 |
--------------------------------------------------------------------------------
/tests/fixtures/preparation.mmf:
--------------------------------------------------------------------------------
1 | MMMMM----------------Meal-Master recipe exported by AnyMeal-----------------
2 | Title: apple pie
3 | Categories: pastries, cakes
4 | Servings: 42 pies
5 |
6 | 250 g brown flour; sifted
7 | MMMMM
8 |
--------------------------------------------------------------------------------
/tests/fixtures/overlong_ingredient.mmf:
--------------------------------------------------------------------------------
1 | ---------- Recipe via Meal-Master (tm) v8.01
2 |
3 | Title: Carrot Cake
4 | Categories: Cakes, Muffins
5 | Yield: 12 servings
6 |
7 | 100 2/3 ts abcdefghijklmnopqrstuvwxyzabc defghijk
8 | -----
9 |
--------------------------------------------------------------------------------
/tests/fixtures/overlong_ingredient2.mmf:
--------------------------------------------------------------------------------
1 | ---------- Recipe via Meal-Master (tm) v8.01
2 |
3 | Title: Carrot Cake
4 | Categories: Cakes, Muffins
5 | Yield: 12 servings
6 |
7 | 100 2/3 ts abcdefghijklmnopqrstuvwxyzabcdefghijk
8 | -----
9 |
--------------------------------------------------------------------------------
/tests/fixtures/skip_leading_spaces.mmf:
--------------------------------------------------------------------------------
1 |
2 | ---------- Recipe via Meal-Master (tm) v8.05
3 |
4 | Title: cooked apple
5 | Categories: desserts
6 | Yield: 1 Servings
7 |
8 | First part.
9 | Second part.
10 | -----
11 |
12 |
--------------------------------------------------------------------------------
/tests/fixtures/unexpected_continuation.mmf:
--------------------------------------------------------------------------------
1 | MMMMM----------------Meal-Master recipe exported by AnyMeal-----------------
2 | Title: apple pie
3 | Categories: pastries, cakes
4 | Servings: 42 pies
5 |
6 | -John Doe-
7 | MMMMM
8 |
--------------------------------------------------------------------------------
/anymeal/flag_nl.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/tests/fixtures/two_columns.mmf:
--------------------------------------------------------------------------------
1 | ---------- Recipe via Meal-Master (tm) v8.01
2 |
3 | Title: Carrot Cake
4 | Categories: Cakes, Muffins
5 | Yield: 12 servings
6 |
7 | 100 2/3 c Oil 100 2/3 ts Baking soda
8 | -----
9 |
--------------------------------------------------------------------------------
/debian/upstream/metadata:
--------------------------------------------------------------------------------
1 | Name: anymeal
2 | Contact: Jan Wedekind
3 | Repository: https://github.com/wedesoft/anymeal.git
4 | Repository-Browse: https://github.com/wedesoft/anymeal
5 | Bug-Database: https://github.com/wedesoft/anymeal/issues
6 |
--------------------------------------------------------------------------------
/tests/fixtures/float_crlf.mmf:
--------------------------------------------------------------------------------
1 | MMMMM----------------Meal-Master recipe exported by AnyMeal-----------------
2 | Title: apple pie
3 | Categories: pastries, cakes
4 | Servings: 42 pies
5 |
6 | Posted on Apr 27,
7 | 1998.
8 |
9 | MMMMM
10 |
--------------------------------------------------------------------------------
/tests/fixtures/two_ingredients.mmf:
--------------------------------------------------------------------------------
1 | ---------- Recipe via Meal-Master (tm) v8.05
2 |
3 | Title: "21" Club Rice Pudding
4 | Categories: Dessert
5 | Yield: 10 Servings
6 |
7 | 1 qt pastry
8 | 6 c cooking apple
9 | -----
10 |
--------------------------------------------------------------------------------
/tests/fixtures/force_newline.mmf:
--------------------------------------------------------------------------------
1 | MMMMM----------------Meal-Master recipe exported by AnyMeal-----------------
2 | Title: apple pie
3 | Categories: pastries, cakes
4 | Servings: 42 pies
5 |
6 | First line.
7 | :Second line.
8 |
9 | MMMMM
10 |
--------------------------------------------------------------------------------
/tests/fixtures/instruction_eol.mmf:
--------------------------------------------------------------------------------
1 | MMMMM----------------Meal-Master recipe exported by AnyMeal-----------------
2 | Title: apple pie
3 | Categories: pastries, cakes
4 | Servings: 42 pies
5 |
6 | Posted on Apr 27,
7 | 1998.
8 |
9 | MMMMM
10 |
--------------------------------------------------------------------------------
/tests/fixtures/instruction_eol2.mmf:
--------------------------------------------------------------------------------
1 | MMMMM----------------Meal-Master recipe exported by AnyMeal-----------------
2 | Title: apple pie
3 | Categories: pastries, cakes
4 | Servings: 42 pies
5 |
6 | Posted on Apr 27,
7 | 1 2
8 |
9 | MMMMM
10 |
--------------------------------------------------------------------------------
/tests/fixtures/instruction_eol3.mmf:
--------------------------------------------------------------------------------
1 | MMMMM----------------Meal-Master recipe exported by AnyMeal-----------------
2 | Title: apple pie
3 | Categories: pastries, cakes
4 | Servings: 42 pies
5 |
6 | Posted on Apr 27,
7 | 1/
8 |
9 | MMMMM
10 |
--------------------------------------------------------------------------------
/tests/fixtures/instruction_number.mmf:
--------------------------------------------------------------------------------
1 | MMMMM----------------Meal-Master recipe exported by AnyMeal-----------------
2 | Title: apple pie
3 | Categories: pastries, cakes
4 | Servings: 42 pies
5 |
6 | Posted on Apr 27,
7 | 1998
8 |
9 | MMMMM
10 |
--------------------------------------------------------------------------------
/tests/fixtures/stray_ingredient.mmf:
--------------------------------------------------------------------------------
1 | MMMMM----------------Meal-Master recipe exported by AnyMeal-----------------
2 | Title: apple pie
3 | Categories: pastries, cakes
4 | Servings: 42 pies
5 |
6 | First line.
7 | 200.0 ml milk
8 |
9 | MMMMM
10 |
--------------------------------------------------------------------------------
/tests/fixtures/continuation.mmf:
--------------------------------------------------------------------------------
1 | MMMMM----------------Meal-Master recipe exported by AnyMeal-----------------
2 | Title: apple pie
3 | Categories: pastries, cakes
4 | Servings: 42 pies
5 |
6 | 2.5 g butter; molten
7 | -and stirred
8 | MMMMM
9 |
--------------------------------------------------------------------------------
/tests/fixtures/ignore_whitespaces.mmf:
--------------------------------------------------------------------------------
1 | ---------- Recipe via Meal-Master (tm) v8.05
2 |
3 | Title: "21" Club Rice Pudding
4 | Categories: Dessert
5 | Yield: 10 Servings
6 |
7 | 1 qt pastry
8 | 6 c cooking apple
9 | -----
10 |
11 |
--------------------------------------------------------------------------------
/tests/fixtures/instruction_eol4.mmf:
--------------------------------------------------------------------------------
1 | MMMMM----------------Meal-Master recipe exported by AnyMeal-----------------
2 | Title: apple pie
3 | Categories: pastries, cakes
4 | Servings: 42 pies
5 |
6 | Posted on Apr 27,
7 | 1998.
8 |
9 | MMMMM
10 |
--------------------------------------------------------------------------------
/anymeal/flag_fr.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/tests/fixtures/continuation_whitespace.mmf:
--------------------------------------------------------------------------------
1 | MMMMM----------------Meal-Master recipe exported by AnyMeal-----------------
2 | Title: apple pie
3 | Categories: pastries, cakes
4 | Servings: 42 pies
5 |
6 | 2.5 g butter; molten
7 | - and stirred
8 | MMMMM
9 |
--------------------------------------------------------------------------------
/tests/fixtures/discard_two_spaces.mmf:
--------------------------------------------------------------------------------
1 | MMMMM----------------Meal-Master recipe exported by AnyMeal-----------------
2 | Title: apple pie
3 | Categories: pastries
4 | Servings: 42 pies
5 |
6 | Only discard
7 | two
8 | leading spaces.
9 | MMMMM
10 |
--------------------------------------------------------------------------------
/tests/fixtures/flush_ingredients.mmf:
--------------------------------------------------------------------------------
1 |
2 | ---------- Recipe via Meal-Master (tm) v8.01
3 |
4 | Title: Carrot Cake
5 | Categories: Cakes, Muffins
6 | Yield: 12 servings
7 |
8 | 1 c ingredient1 1 ts ingredient2
9 |
10 | 1 cup.
11 | -----
12 |
13 |
14 |
--------------------------------------------------------------------------------
/tests/fixtures/three_ingredients.mmf:
--------------------------------------------------------------------------------
1 | ---------- Recipe via Meal-Master (tm) v8.01
2 |
3 | Title: Carrot Cake
4 | Categories: Cakes, Muffins
5 | Yield: 12 servings
6 |
7 | 1 c ingredient1 1 ts ingredient3
8 | 1 c ingredient2
9 | -----
10 |
11 |
12 |
--------------------------------------------------------------------------------
/anymeal/flag_it.svg:
--------------------------------------------------------------------------------
1 |
2 |
7 |
--------------------------------------------------------------------------------
/debian/watch:
--------------------------------------------------------------------------------
1 | version=4
2 |
3 | opts=downloadurlmangle=s/archive\/refs\/tags\/v(.*)\.tar\.gz/releases\/download\/v$1\/anymeal-$1\.tar\.xz/,\
4 | pgpsigurlmangle=s/$/.asc/,\
5 | dversionmangle=s/\+dfsg1//,repacksuffix=+dfsg1 \
6 | https://github.com/wedesoft/anymeal/tags \
7 | /wedesoft/anymeal/archive/refs/tags/v(.*)\.tar\.gz
8 |
--------------------------------------------------------------------------------
/tests/fixtures/section_whitespace.mmf:
--------------------------------------------------------------------------------
1 | MMMMM----------------Meal-Master recipe exported by AnyMeal-----------------
2 | Title: apple pie
3 | Categories: pastries, cakes
4 | Servings: 42 pies
5 |
6 | MMMMM-------------------------------meringue-------------------------------
7 | First line.
8 |
9 | MMMMM
10 |
--------------------------------------------------------------------------------
/tests/fixtures/column_major.mmf:
--------------------------------------------------------------------------------
1 | ---------- Recipe via Meal-Master (tm) v8.01
2 |
3 | Title: Carrot Cake
4 | Categories: Cakes, Muffins
5 | Yield: 12 servings
6 |
7 | 1 c ingredient1 1 ts ingredient3
8 | 1 c ingredient2 1 ts ingredient4
9 | -----
10 |
--------------------------------------------------------------------------------
/tests/fixtures/two_column_continuation4.mmf:
--------------------------------------------------------------------------------
1 | ---------- Recipe via Meal-Master (tm) v8.01
2 |
3 | Title: Carrot Cake
4 | Categories: Cakes, Muffins
5 | Yield: 12 servings
6 |
7 | 1 c ingredient1 -cont_b
8 | -cont_a -cont_c
9 | -----
10 |
--------------------------------------------------------------------------------
/tests/fixtures/two_column_trailing.mmf:
--------------------------------------------------------------------------------
1 | ---------- Recipe via Meal-Master (tm) v8.01
2 |
3 | Title: Hollandaise Sauce
4 | Categories: Sauces
5 | Yield: 1 servings
6 |
7 | 2 tb lemon juice
8 |
9 | In small saucepan with wire whisk beat all ingredients until smooth.
10 |
11 | -----
12 |
--------------------------------------------------------------------------------
/anymeal/locale/de/Makefile.am:
--------------------------------------------------------------------------------
1 | SUFFIXES = .ts .qm
2 |
3 | dedir = $(localedir)/de/LC_MESSAGES
4 | de_DATA = anymeal_qt.qm
5 |
6 | EXTRA_DIST = anymeal_qt.ts
7 |
8 | CLEANFILES = anymeal_qt.qm
9 |
10 | %.ts: $(wildcard ../../*.cc) $(wildcard ../../*.ui)
11 | $(QT_LUPDATE) $^ -ts $@
12 |
13 | .ts.qm:
14 | $(QT_LCONVERT) -o $@ $<
15 |
--------------------------------------------------------------------------------
/anymeal/locale/fr/Makefile.am:
--------------------------------------------------------------------------------
1 | SUFFIXES = .ts .qm
2 |
3 | frdir = $(localedir)/fr/LC_MESSAGES
4 | fr_DATA = anymeal_qt.qm
5 |
6 | EXTRA_DIST = anymeal_qt.ts
7 |
8 | CLEANFILES = anymeal_qt.qm
9 |
10 | %.ts: $(wildcard ../../*.cc) $(wildcard ../../*.ui)
11 | $(QT_LUPDATE) $^ -ts $@
12 |
13 | .ts.qm:
14 | $(QT_LCONVERT) -o $@ $<
15 |
--------------------------------------------------------------------------------
/anymeal/locale/it/Makefile.am:
--------------------------------------------------------------------------------
1 | SUFFIXES = .ts .qm
2 |
3 | itdir = $(localedir)/it/LC_MESSAGES
4 | it_DATA = anymeal_qt.qm
5 |
6 | EXTRA_DIST = anymeal_qt.ts
7 |
8 | CLEANFILES = anymeal_qt.qm
9 |
10 | %.ts: $(wildcard ../../*.cc) $(wildcard ../../*.ui)
11 | $(QT_LUPDATE) $^ -ts $@
12 |
13 | .ts.qm:
14 | $(QT_LCONVERT) -o $@ $<
15 |
--------------------------------------------------------------------------------
/anymeal/locale/nl/Makefile.am:
--------------------------------------------------------------------------------
1 | SUFFIXES = .ts .qm
2 |
3 | nldir = $(localedir)/nl/LC_MESSAGES
4 | nl_DATA = anymeal_qt.qm
5 |
6 | EXTRA_DIST = anymeal_qt.ts
7 |
8 | CLEANFILES = anymeal_qt.qm
9 |
10 | %.ts: $(wildcard ../../*.cc) $(wildcard ../../*.ui)
11 | $(QT_LUPDATE) $^ -ts $@
12 |
13 | .ts.qm:
14 | $(QT_LCONVERT) -o $@ $<
15 |
--------------------------------------------------------------------------------
/anymeal/locale/sl/Makefile.am:
--------------------------------------------------------------------------------
1 | SUFFIXES = .ts .qm
2 |
3 | sldir = $(localedir)/sl/LC_MESSAGES
4 | sl_DATA = anymeal_qt.qm
5 |
6 | EXTRA_DIST = anymeal_qt.ts
7 |
8 | CLEANFILES = anymeal_qt.qm
9 |
10 | %.ts: $(wildcard ../../*.cc) $(wildcard ../../*.ui)
11 | $(QT_LUPDATE) $^ -ts $@
12 |
13 | .ts.qm:
14 | $(QT_LCONVERT) -o $@ $<
15 |
--------------------------------------------------------------------------------
/tests/fixtures/two_column_continuation.mmf:
--------------------------------------------------------------------------------
1 | ---------- Recipe via Meal-Master (tm) v8.01
2 |
3 | Title: Carrot Cake
4 | Categories: Cakes, Muffins
5 | Yield: 12 servings
6 |
7 | 1 c ingredient1 1 ts ingredient3
8 | 1 c ingredient2 -continued
9 | -----
10 |
--------------------------------------------------------------------------------
/tests/fixtures/two_column_continuation2.mmf:
--------------------------------------------------------------------------------
1 | ---------- Recipe via Meal-Master (tm) v8.01
2 |
3 | Title: Carrot Cake
4 | Categories: Cakes, Muffins
5 | Yield: 12 servings
6 |
7 | 1 c ingredient1 1 ts ingredient2
8 | -continued 1 tb ingredient3
9 | -----
10 |
--------------------------------------------------------------------------------
/tests/fixtures/two_column_continuation3.mmf:
--------------------------------------------------------------------------------
1 | ---------- Recipe via Meal-Master (tm) v8.01
2 |
3 | Title: Carrot Cake
4 | Categories: Cakes, Muffins
5 | Yield: 12 servings
6 |
7 | 1 c ingredient1 -continued
8 | 1 ts ingredient2 1 tb ingredient3
9 | -----
10 |
--------------------------------------------------------------------------------
/tests/fixtures/instruction_section.mmf:
--------------------------------------------------------------------------------
1 | MMMMM----------------Meal-Master recipe exported by AnyMeal-----------------
2 | Title: apple pie
3 | Categories: pastries, cakes
4 | Servings: 42 pies
5 |
6 | First line.
7 | MMMMM-------------------------------meringue--------------------------------
8 | Second line.
9 |
10 | MMMMM
11 |
--------------------------------------------------------------------------------
/tests/fixtures/section_hyphen.mmf:
--------------------------------------------------------------------------------
1 | MMMMM----------------Meal-Master recipe exported by AnyMeal-----------------
2 | Title: apple pie
3 | Categories: pastries, cakes
4 | Servings: 42 pies
5 |
6 | 250 g brown flour
7 | MMMMM----------------------------section-hyphen-----------------------------
8 | 150 g sugar
9 | MMMMM
10 |
--------------------------------------------------------------------------------
/tests/fixtures/section_spaces.mmf:
--------------------------------------------------------------------------------
1 | MMMMM----------------Meal-Master recipe exported by AnyMeal-----------------
2 | Title: apple pie
3 | Categories: pastries, cakes
4 | Servings: 42 pies
5 |
6 | 250 g brown flour
7 | MMMMM--------------------------- section spaces ----------------------------
8 | 150 g sugar
9 | MMMMM
10 |
--------------------------------------------------------------------------------
/anymeal/de.wedesoft.anymeal.desktop:
--------------------------------------------------------------------------------
1 | [Desktop Entry]
2 | Name=anymeal
3 | GenericName=Recipe Manager
4 | Comment=Free recipe management software
5 | Keywords=recipes;cooking;database;
6 | StartupWMClass=anymeal
7 | StartupNotify=false
8 | Exec=anymeal
9 | Terminal=false
10 | Type=Application
11 | Icon=anymeal
12 | Categories=Qt;Utility;Viewer;
13 |
--------------------------------------------------------------------------------
/tests/fixtures/ingredient_section.mmf:
--------------------------------------------------------------------------------
1 | MMMMM----------------Meal-Master recipe exported by AnyMeal-----------------
2 | Title: apple pie
3 | Categories: pastries, cakes
4 | Servings: 42 pies
5 |
6 | 250 g brown flour
7 | MMMMM-------------------------------meringue--------------------------------
8 | 150 g sugar
9 | MMMMM
10 |
--------------------------------------------------------------------------------
/tests/fixtures/instruction_header.mmf:
--------------------------------------------------------------------------------
1 | MMMMM----------------Meal-Master recipe exported by AnyMeal-----------------
2 | Title: apple pie
3 | Categories: pastries, cakes
4 | Servings: 42 pies
5 |
6 | Ingredient
7 |
8 | MMMMM-------------------------------meringue--------------------------------
9 | First line.
10 |
11 | MMMMM
12 |
--------------------------------------------------------------------------------
/tests/fixtures/erroneous_continuation.mmf:
--------------------------------------------------------------------------------
1 | MMMMM----------------Meal-Master recipe exported by AnyMeal-----------------
2 | Title: apple pie
3 | Categories: pastries, cakes
4 | Servings: 42 pies
5 |
6 | 2.5 g butter; molten
7 | MMMMM-------------------------------meringue--------------------------------
8 | -and stirred
9 | MMMMM
10 |
--------------------------------------------------------------------------------
/tests/fixtures/ignore_newlines.mmf:
--------------------------------------------------------------------------------
1 | MMMMM----------------Meal-Master recipe exported by AnyMeal-----------------
2 | Title: apple pie
3 | Categories: pastries, cakes
4 | Servings: 42 pies
5 |
6 | First line.
7 |
8 | Third line.
9 |
10 | MMMMM------------------------------- section -------------------------------
11 | Fourth line.
12 |
13 |
14 | Sixth line.
15 |
16 | MMMMM
17 |
--------------------------------------------------------------------------------
/tests/fixtures/empty_ingredient_section.mmf:
--------------------------------------------------------------------------------
1 | MMMMM----------------Meal-Master recipe exported by AnyMeal-----------------
2 | Title: apple pie
3 | Categories: pastries, cakes
4 | Servings: 42 pies
5 |
6 | 250 g brown flour
7 | MMMMM--------------------------------empty----------------------------------
8 | MMMMM-------------------------------meringue--------------------------------
9 | 150 g sugar
10 | MMMMM
11 |
--------------------------------------------------------------------------------
/tests/fixtures/two_column_section.mmf:
--------------------------------------------------------------------------------
1 | MMMMM----------------Meal-Master recipe exported by AnyMeal-----------------
2 | Title: apple pie
3 | Categories: pastries, cakes
4 | Servings: 42 pies
5 |
6 | 1 c ingredient1 1 ts ingredient2
7 | MMMMM-------------------------------meringue--------------------------------
8 | 1 c ingredient3 1 ts ingredient4
9 | MMMMM
10 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .deps
2 | .libs
3 | AppDir
4 | ChangeLog
5 | Makefile
6 | Makefile.in
7 | aclocal.m4
8 | autom4te.cache
9 | compile
10 | config.guess
11 | config.h
12 | config.h.in
13 | config.h.in~
14 | config.log
15 | config.status
16 | config.sub
17 | configure
18 | depcomp
19 | docker
20 | install-sh
21 | libtool
22 | ltmain.sh
23 | missing
24 | pkg
25 | stamp-h1
26 | suite
27 | ylwrap
28 | *.AppImage
29 | *.xz
30 | *.asc
31 | *.o
32 | *.exe
33 |
--------------------------------------------------------------------------------
/configure.mingw:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | ./configure --prefix=/mingw64 --with-sqlite3=/mingw64 --with-x=no --with-gtest=/c/msys64/mingw64/src/gtest LIBS="-Wl,-subsystem,windows -L/mingw64/lib -lQt6Core -lQt6Widgets -lQt6Gui -lQt6PrintSupport -lQt6Svg -liconv" CFLAGS=-I/mingw64/include CXXFLAGS="-I/mingw64/include -I/mingw64/include/qt6 -I/mingw64/include/qt6/QtCore -I/mingw64/include/qt6/QtGui -I/mingw64/include/qt6/QtPrintSupport -I/mingw64/include/qt6/QtSvg -I/mingw64/include/qt6/QtWidgets"
3 |
--------------------------------------------------------------------------------
/anymeal/flag_de.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/Makefile.package:
--------------------------------------------------------------------------------
1 | # https://wiki.debian.org/IntroDebianPackaging
2 | # https://en.opensuse.org/openSUSE:Build_Service_Tutorial
3 |
4 | VERSION=$(shell grep AC_INIT configure.ac | sed -e "s/.*\[\([0-9\.]*\)\].*/\1/")
5 |
6 | package: anymeal.tar.xz anymeal.tar.xz.asc
7 | mkdir -p pkg
8 | cp anymeal.tar.xz pkg/anymeal_$(VERSION).orig.tar.xz
9 | cp anymeal.tar.xz.asc pkg/anymeal_$(VERSION).orig.tar.xz.asc
10 | tar xf anymeal.tar.xz -C pkg
11 | cp -a debian pkg/anymeal-$(VERSION)
12 | cd pkg/anymeal-$(VERSION) && debuild -us -uc -j4 && cd ../..
13 |
--------------------------------------------------------------------------------
/etc/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM debian:sid
2 | LABEL maintainer="Jan Wedekind "
3 | RUN echo "deb http://httpredir.debian.org/debian unstable main" > /etc/apt/sources.list
4 | RUN apt-get update # Forced update Fri 20 Sep 15:16:57 BST 2024
5 | RUN apt-get -q -y dist-upgrade
6 | RUN apt-get install -y xauth
7 | ADD anymeal_1.34-1_amd64.deb anymeal_1.34-1_amd64.deb
8 | RUN apt install -y ./anymeal_1.34-1_amd64.deb
9 | # get string with xauth list
10 | RUN xauth add wedetux/unix:1 MIT-MAGIC-COOKIE-1 6cb65c8a386b1ddd7652b3656de94a95
11 | CMD ["anymeal"]
12 |
--------------------------------------------------------------------------------
/anymeal/flag_uk.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/anymeal/anymeal.qrc:
--------------------------------------------------------------------------------
1 |
2 |
3 | duplicate.svg
4 | down.svg
5 | up.svg
6 | calculator.svg
7 | categoryadd.svg
8 | edit.svg
9 | search.svg
10 | categoryremove.svg
11 | trash.svg
12 | splash.png
13 | delete.svg
14 | import.svg
15 | export.svg
16 | preview.svg
17 | print.svg
18 | quit.svg
19 | anymeal.png
20 | new.svg
21 | flag_uk.svg
22 | flag_de.svg
23 | flag_fr.svg
24 | flag_it.svg
25 | flag_nl.svg
26 | flag_sl.svg
27 |
28 |
29 |
--------------------------------------------------------------------------------
/debian/control:
--------------------------------------------------------------------------------
1 | Source: anymeal
2 | Section: utils
3 | Priority: optional
4 | Maintainer: Jan Wedekind
5 | Standards-Version: 4.7.0
6 | Vcs-Git: https://github.com/wedesoft/anymeal.git
7 | Vcs-Browser: https://github.com/wedesoft/anymeal
8 | Homepage: https://wedesoft.github.io/anymeal/
9 | Build-Depends: debhelper-compat (=13), flex, googletest, libsqlite3-dev, qt6-base-dev-tools, qt6-tools-dev, qt6-base-dev, qt6-svg-dev, pkgconf
10 | Rules-Requires-Root: no
11 |
12 | Package: anymeal
13 | Architecture: any
14 | Depends: ${shlibs:Depends}, ${misc:Depends}, libqt6svg6, libqt6svgwidgets6
15 | Description: Recipe management software
16 | AnyMeal is a free recipe management software developed using
17 | SQLite3 and Qt6. It can manage a cookbook with more than
18 | 250000 MealMaster recipes, thereby allowing to import,
19 | export, search, display, edit, and print them.
20 |
--------------------------------------------------------------------------------
/anymeal/export.hh:
--------------------------------------------------------------------------------
1 | /* AnyMeal recipe management software
2 | Copyright (C) 2020, 2023 Jan Wedekind
3 |
4 | This program is free software: you can redistribute it and/or modify
5 | it under the terms of the GNU General Public License as published by
6 | the Free Software Foundation, either version 3 of the License, or
7 | (at your option) any later version.
8 |
9 | This program is distributed in the hope that it will be useful,
10 | but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | GNU General Public License for more details.
13 |
14 | You should have received a copy of the GNU General Public License
15 | along with this program. If not, see . */
16 | #pragma once
17 | #include
18 | #include "recipe.hh"
19 |
20 |
21 | std::string recipe_to_mealmaster(Recipe &recipe);
22 |
--------------------------------------------------------------------------------
/anymeal/ingredient.cc:
--------------------------------------------------------------------------------
1 | /* AnyMeal recipe management software
2 | Copyright (C) 2020, 2023 Jan Wedekind
3 |
4 | This program is free software: you can redistribute it and/or modify
5 | it under the terms of the GNU General Public License as published by
6 | the Free Software Foundation, either version 3 of the License, or
7 | (at your option) any later version.
8 |
9 | This program is distributed in the hope that it will be useful,
10 | but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | GNU General Public License for more details.
13 |
14 | You should have received a copy of the GNU General Public License
15 | along with this program. If not, see . */
16 | #include "ingredient.hh"
17 |
18 |
19 | Ingredient::Ingredient(void): m_amount_integer(0), m_amount_numerator(0), m_amount_denominator(1), m_amount_float(0.0)
20 | {
21 | }
22 |
--------------------------------------------------------------------------------
/tests/suite.cc:
--------------------------------------------------------------------------------
1 | /* AnyMeal recipe management software
2 | Copyright (C) 2021, 2023 Jan Wedekind
3 |
4 | This program is free software: you can redistribute it and/or modify
5 | it under the terms of the GNU General Public License as published by
6 | the Free Software Foundation, either version 3 of the License, or
7 | (at your option) any later version.
8 |
9 | This program is distributed in the hope that it will be useful,
10 | but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | GNU General Public License for more details.
13 |
14 | You should have received a copy of the GNU General Public License
15 | along with this program. If not, see . */
16 | #include
17 |
18 |
19 | using namespace testing;
20 |
21 | int main(int argc, char *argv[]) {
22 | InitGoogleTest(&argc, argv);
23 | return RUN_ALL_TESTS();
24 | }
25 |
--------------------------------------------------------------------------------
/anymeal/partition.hh:
--------------------------------------------------------------------------------
1 | /* AnyMeal recipe management software
2 | Copyright (C) 2020, 2023 Jan Wedekind
3 |
4 | This program is free software: you can redistribute it and/or modify
5 | it under the terms of the GNU General Public License as published by
6 | the Free Software Foundation, either version 3 of the License, or
7 | (at your option) any later version.
8 |
9 | This program is distributed in the hope that it will be useful,
10 | but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | GNU General Public License for more details.
13 |
14 | You should have received a copy of the GNU General Public License
15 | along with this program. If not, see . */
16 | #pragma once
17 | #include
18 | #include
19 | #include
20 |
21 |
22 | std::vector recipes(std::istream &stream, bool *unexpected_eof=nullptr);
23 |
--------------------------------------------------------------------------------
/Makefile.appimage:
--------------------------------------------------------------------------------
1 | # docker run -ti --rm -v `pwd`:/mnt -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix --privileged debian:buster /bin/bash
2 | # apt-get update
3 | # apt-get install build-essential flex libgtest-dev libsqlite3-dev qt6-default qttools6-dev-tools wget fuse file git
4 | # cd /mnt
5 | # ./configure --prefix=/usr
6 | # make clean
7 | # make
8 | # make check
9 | # make -f Makefile.appimage
10 |
11 |
12 | appimage: linuxdeploy-x86_64.AppImage linuxdeploy-plugin-qt-x86_64.AppImage
13 | rm -Rf AppDir
14 | $(MAKE) install DESTDIR=$(CURDIR)/AppDir
15 | PATH=/usr/lib/qt6/bin:/usr/lib/qt6/libexec:$(PATH) ./linuxdeploy-x86_64.AppImage --appdir AppDir --plugin qt --output appimage
16 |
17 | linuxdeploy-x86_64.AppImage:
18 | wget -q https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage
19 | chmod a+x $@
20 |
21 | linuxdeploy-plugin-qt-x86_64.AppImage:
22 | wget -q https://github.com/linuxdeploy/linuxdeploy-plugin-qt/releases/download/continuous/linuxdeploy-plugin-qt-x86_64.AppImage
23 | chmod a+x $@
24 |
--------------------------------------------------------------------------------
/anymeal/export_dialog.hh:
--------------------------------------------------------------------------------
1 | /* AnyMeal recipe management software
2 | Copyright (C) 2020, 2023 Jan Wedekind
3 |
4 | This program is free software: you can redistribute it and/or modify
5 | it under the terms of the GNU General Public License as published by
6 | the Free Software Foundation, either version 3 of the License, or
7 | (at your option) any later version.
8 |
9 | This program is distributed in the hope that it will be useful,
10 | but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | GNU General Public License for more details.
13 |
14 | You should have received a copy of the GNU General Public License
15 | along with this program. If not, see . */
16 | #pragma once
17 | #include
18 | #include "ui_export_dialog.hh"
19 |
20 |
21 | class ExportDialog: public QDialog
22 | {
23 | Q_OBJECT
24 | public:
25 | ExportDialog(QWidget *parent=NULL);
26 | std::string encoding(void);
27 | std::string error_file(void);
28 | Ui::ExportDialog m_ui;
29 | public slots:
30 | void select_error_file(void);
31 | };
32 |
--------------------------------------------------------------------------------
/anymeal/import_dialog.hh:
--------------------------------------------------------------------------------
1 | /* AnyMeal recipe management software
2 | Copyright (C) 2020, 2023 Jan Wedekind
3 |
4 | This program is free software: you can redistribute it and/or modify
5 | it under the terms of the GNU General Public License as published by
6 | the Free Software Foundation, either version 3 of the License, or
7 | (at your option) any later version.
8 |
9 | This program is distributed in the hope that it will be useful,
10 | but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | GNU General Public License for more details.
13 |
14 | You should have received a copy of the GNU General Public License
15 | along with this program. If not, see . */
16 | #pragma once
17 | #include
18 | #include
19 | #include "ui_import_dialog.hh"
20 |
21 |
22 | class ImportDialog: public QDialog
23 | {
24 | Q_OBJECT
25 | public:
26 | ImportDialog(QWidget *parent=NULL);
27 | std::string encoding(void);
28 | std::string error_file(void);
29 | Ui::ImportDialog m_ui;
30 | public slots:
31 | void select_error_file(void);
32 | };
33 |
--------------------------------------------------------------------------------
/tests/test_ingredient.cc:
--------------------------------------------------------------------------------
1 | /* AnyMeal recipe management software
2 | Copyright (C) 2021, 2023 Jan Wedekind
3 |
4 | This program is free software: you can redistribute it and/or modify
5 | it under the terms of the GNU General Public License as published by
6 | the Free Software Foundation, either version 3 of the License, or
7 | (at your option) any later version.
8 |
9 | This program is distributed in the hope that it will be useful,
10 | but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | GNU General Public License for more details.
13 |
14 | You should have received a copy of the GNU General Public License
15 | along with this program. If not, see . */
16 | #include
17 | #include "ingredient.hh"
18 |
19 |
20 | using namespace testing;
21 | using namespace std;
22 |
23 |
24 | TEST(IngredientTest, DefaultValues) {
25 | Ingredient ingredient;
26 | EXPECT_EQ(0, ingredient.amount_integer());
27 | EXPECT_EQ(0, ingredient.amount_numerator());
28 | EXPECT_EQ(1, ingredient.amount_denominator());
29 | EXPECT_EQ(0.0, ingredient.amount_float());
30 | }
31 |
--------------------------------------------------------------------------------
/Dockerfile.sid:
--------------------------------------------------------------------------------
1 | # Docker file to build AnyMeal package for Debian Sid.
2 | #
3 | # configure /etc/default/docker
4 | # DOCKER_OPTS="--dns 8.8.8.8 --dns 8.8.4.4 --ip-masq=true"
5 | FROM debian:sid
6 | LABEL maintainer="Jan Wedekind "
7 | RUN echo "deb http://httpredir.debian.org/debian unstable main" > /etc/apt/sources.list
8 | RUN apt-get update # Forced update So 7. Nov 20:18:00 GMT 2021
9 | RUN apt-get -q -y dist-upgrade
10 | RUN apt-get install -q -y apt-utils
11 | RUN apt-get install -q -y build-essential
12 | RUN apt-get install -q -y devscripts equivs
13 | RUN apt-get install -q -y flex
14 | RUN apt-get install -q -y googletest
15 | RUN apt-get install -q -y libsqlite3-dev
16 | RUN apt-get install -q -y qt6-base-dev-tools
17 | RUN apt-get install -q -y qt6-tools-dev-tools
18 | RUN apt-get install -q -y qt6-base-dev
19 |
20 | RUN mkdir -p /usr/src/anymeal
21 | WORKDIR /usr/src/anymeal
22 | ADD debian/control debian/control
23 | RUN mk-build-deps --install --remove --tool 'apt-get -q --yes' debian/control
24 | COPY anymeal.tar.xz .
25 | COPY anymeal.tar.xz.asc .
26 | ADD configure.ac .
27 | ADD debian debian
28 | ADD Makefile.package .
29 | RUN make -f Makefile.package
30 | RUN dpkg --install pkg/anymeal_*.deb
31 |
--------------------------------------------------------------------------------
/tests/Makefile.am:
--------------------------------------------------------------------------------
1 | SUFFIXES = .cc .hh
2 |
3 | SUBDIRS = fixtures
4 |
5 | if ENABLE_TESTS
6 | if GOOGLE_TEST_SRC
7 | BUILT_SOURCES = gtest-all.cc
8 | endif
9 | check_PROGRAMS = suite
10 | suite_LDFLAGS =
11 | if GOOGLE_TEST_SRC
12 | suite_SOURCES = suite.cc gtest-all.cc test_partition.cc test_recipe.cc test_ingredient.cc test_mealmaster.cc \
13 | test_recode.cc test_database.cc test_html.cc test_export.cc
14 | suite_CXXFLAGS = -I$(top_srcdir)/anymeal $(SQLITE3_CFLAGS) -I$(GTESTSRC)/include -I$(GTESTSRC)
15 | suite_LDADD = ../anymeal/libanymeal.a $(SQLITE3_LDFLAGS) -lpthread
16 | else
17 | suite_SOURCES = suite.cc test_partition.cc test_recipe.cc test_ingredient.cc test_mealmaster.cc \
18 | test_recode.cc test_database.cc test_html.cc test_export.cc
19 | suite_CXXFLAGS = -I$(top_srcdir)/anymeal $(SQLITE3_CFLAGS) $(GTEST_CFLAGS)
20 | suite_LDADD = ../anymeal/libanymeal.a $(GTEST_LIBS) $(SQLITE3_LDFLAGS) -lpthread
21 | endif
22 | else
23 | BUILT_SOURCES =
24 | check_PROGRAMS =
25 | endif
26 |
27 | CLEANFILES = $(BUILT_SOURCES)
28 |
29 | if GOOGLE_TEST_SRC
30 | gtest-all.cc: $(GTESTSRC)/src/gtest-all.cc
31 | rm -f $@
32 | $(LN_S) $< $@
33 | endif
34 |
35 | if ENABLE_TESTS
36 | check-local:
37 | ./suite
38 | endif
39 |
--------------------------------------------------------------------------------
/anymeal/mealmaster.hh:
--------------------------------------------------------------------------------
1 | /* AnyMeal recipe management software
2 | Copyright (C) 2020, 2023 Jan Wedekind
3 |
4 | This program is free software: you can redistribute it and/or modify
5 | it under the terms of the GNU General Public License as published by
6 | the Free Software Foundation, either version 3 of the License, or
7 | (at your option) any later version.
8 |
9 | This program is distributed in the hope that it will be useful,
10 | but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | GNU General Public License for more details.
13 |
14 | You should have received a copy of the GNU General Public License
15 | along with this program. If not, see . */
16 | #pragma once
17 | #include
18 | #include
19 | #include
20 | #include "recipe.hh"
21 |
22 |
23 | class parse_exception: public std::exception
24 | {
25 | public:
26 | parse_exception(const std::string &error): m_error(error) {}
27 | virtual ~parse_exception(void) throw() {}
28 | virtual const char *what(void) const throw() { return m_error.c_str(); }
29 | protected:
30 | std::string m_error;
31 | };
32 |
33 | Recipe parse_mealmaster(std::istream &stream);
34 |
--------------------------------------------------------------------------------
/anymeal/category_dialog.hh:
--------------------------------------------------------------------------------
1 | /* AnyMeal recipe management software
2 | Copyright (C) 2020, 2023 Jan Wedekind
3 |
4 | This program is free software: you can redistribute it and/or modify
5 | it under the terms of the GNU General Public License as published by
6 | the Free Software Foundation, either version 3 of the License, or
7 | (at your option) any later version.
8 |
9 | This program is distributed in the hope that it will be useful,
10 | but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | GNU General Public License for more details.
13 |
14 | You should have received a copy of the GNU General Public License
15 | along with this program. If not, see . */
16 | #pragma once
17 | #include
18 | #include
19 | #include
20 | #include "ui_category_dialog.hh"
21 | #include "categories_model.hh"
22 |
23 |
24 | class CategoryDialog: public QDialog
25 | {
26 | Q_OBJECT
27 | public:
28 | CategoryDialog(QWidget *parent=NULL);
29 | void set_categories_model(CategoriesModel *categories_model);
30 | std::string category(void);
31 | protected:
32 | Ui::CategoryDialog m_ui;
33 | QCompleter *m_categories_completer;
34 | };
35 |
--------------------------------------------------------------------------------
/anymeal/add_dialog.hh:
--------------------------------------------------------------------------------
1 | /* AnyMeal recipe management software
2 | Copyright (C) 2020, 2025 Jan Wedekind
3 |
4 | This program is free software: you can redistribute it and/or modify
5 | it under the terms of the GNU General Public License as published by
6 | the Free Software Foundation, either version 3 of the License, or
7 | (at your option) any later version.
8 |
9 | This program is distributed in the hope that it will be useful,
10 | but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | GNU General Public License for more details.
13 |
14 | You should have received a copy of the GNU General Public License
15 | along with this program. If not, see . */
16 | #pragma once
17 | #include
18 | #include
19 | #include "ui_add_dialog.hh"
20 | #include "category_table_model.hh"
21 |
22 | class AddDialog: public QDialog
23 | {
24 | Q_OBJECT
25 | public:
26 | AddDialog(QWidget *parent=NULL);
27 | void set_model(CategoryTableModel *model) { m_model = model; }
28 | std::string name(void);
29 | public slots:
30 | void target_changed(const QString &target);
31 | protected:
32 | Ui::AddDialog m_ui;
33 | CategoryTableModel *m_model;
34 | QValidator *m_category_validator;
35 | };
36 |
--------------------------------------------------------------------------------
/anymeal/de.wedesoft.anymeal.appdata.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | de.wedesoft.anymeal
4 | CC0-1.0
5 | GPL-3.0+
6 | AnyMeal recipe management software
7 | Manage a large collection of MealMaster recipes
8 |
9 |
10 | AnyMeal is a free recipe management software developed using
11 | SQLite3 and Qt6. It can manage a cookbook with more than
12 | 250000 MealMaster recipes, thereby allowing to import,
13 | export, search, display, edit, and print them.
14 |