diff --git a/BraceletGenerator/about.py b/BraceletGenerator/about.py
index a6697ba..ee25dbb 100755
--- a/BraceletGenerator/about.py
+++ b/BraceletGenerator/about.py
@@ -22,8 +22,8 @@
"""
from tkinter import Text, Toplevel
-from tkinter.ttk import Button, Label, Style
-from BraceletGenerator.constantes import open_image, BG_COLOR, STYLE, VERSION, IM_ICON48, set_icon, webOpen
+from tkinter.ttk import Button, Label
+from BraceletGenerator.constantes import open_image, BG_COLOR, VERSION, IM_ICON48, set_icon, webOpen
class About(Toplevel):
@@ -40,10 +40,6 @@ def __init__(self, master, **options):
set_icon(self)
- self.style = Style(self)
- self.style.theme_use(STYLE)
- self.style.configure('TButton', background=BG_COLOR)
- self.style.configure('TLabel', background=BG_COLOR)
self.image = open_image(file=IM_ICON48, master=self)
Label(self, image=self.image).grid(row=0, columnspan=2, pady=10)
@@ -84,10 +80,6 @@ def close():
fen.grab_set()
fen.configure(bg=BG_COLOR)
set_icon(fen)
- style = Style(fen)
- style.theme_use(STYLE)
- style.configure('TButton', background=BG_COLOR)
- style.configure('TLabel', background=BG_COLOR)
texte = Text(fen, width=50, height=18)
texte.pack()
diff --git a/BraceletGenerator/bicolore.py b/BraceletGenerator/bicolore.py
index 5d0658d..0ccd180 100755
--- a/BraceletGenerator/bicolore.py
+++ b/BraceletGenerator/bicolore.py
@@ -68,11 +68,11 @@ def __init__(self, master, row_nb=10, string_nb=8,
self.log_nb_ligne = 2 # nombre de lignes du fichier log
# style
- style = Style(self)
- style.theme_use(cst.STYLE)
- style.configure('TButton', background=cst.BG_COLOR)
- style.configure('TLabel', background=cst.BG_COLOR)
- style.configure('TFrame', background=cst.BG_COLOR)
+# style = Style(self)
+# style.theme_use(cst.STYLE)
+# style.configure('TButton', background=cst.BG_COLOR)
+# style.configure('TLabel', background=cst.BG_COLOR)
+# style.configure('TFrame', background=cst.BG_COLOR)
# menu
self.m_plus = cst.open_image(file=cst.IM_PLUS_M, master=self)
diff --git a/BraceletGenerator/bracelet.py b/BraceletGenerator/bracelet.py
index e9fd039..d3d0af4 100755
--- a/BraceletGenerator/bracelet.py
+++ b/BraceletGenerator/bracelet.py
@@ -35,6 +35,7 @@
from BraceletGenerator.couleurs import Couleurs
from BraceletGenerator.bicolore import Bicolore
from BraceletGenerator.about import About
+from BraceletGenerator.version_check import UpdateChecker
class Bracelet(Tk):
@@ -61,10 +62,16 @@ def __init__(self, row_nb=4, string_nb=4, color="#ff0000", fichier=""):
self.style = Style(self)
self.style.theme_use(cst.STYLE)
self.style.configure('TButton', background=cst.BG_COLOR)
+ self.style.configure('TCheckbutton', background=cst.BG_COLOR)
self.style.configure('TLabel', background=cst.BG_COLOR)
self.style.configure('TFrame', background=cst.BG_COLOR)
self.style.configure('flat.TButton', relief="flat",
background=cst.BG_COLOR)
+ self.style.map('flat.TButton',
+ background=[("disabled", cst.BG_COLOR),
+ ("active", "!disabled",
+ self.style.lookup("TButton", "background",
+ state=("active", "!disabled")))])
self.style.configure("test.TButton", padding=2)
### menu
@@ -194,6 +201,10 @@ def __init__(self, row_nb=4, string_nb=4, color="#ff0000", fichier=""):
self.menu_help.add_command(label=_("Online Help"), image=self.m_help,
command=cst.help_web, compound="left",
accelerator="Ctrl+F1")
+ self.menu_help.add_separator()
+ self.menu_help.add_command(label=_("Check for updates"),
+ command=lambda: UpdateChecker(self))
+ self.menu_help.add_separator()
self.menu_help.add_command(label=_("About"), image=self.m_about,
command=self.about, compound="left")
@@ -357,6 +368,10 @@ def __init__(self, row_nb=4, string_nb=4, color="#ff0000", fichier=""):
else:
self.path_save = "" # saved pattern path
+ ### Update check
+ if cst.CONFIG.getboolean("General", "check_update"):
+ UpdateChecker(self)
+
def __setattr__(self, name, value):
""" gestion de la modification attributs, en particulier
les nombres de fils et de lignes ainsi que la sauvegarde """
@@ -370,6 +385,10 @@ def __setattr__(self, name, value):
dico = {"True":"disabled", "False":"normal"}
self.save_button.configure(state=dico[str(value)])
self.menu_file.entryconfigure(5, state=dico[str(value)])
+ elif name == "path_save":
+ if not value:
+ self.save_button.configure(state="disabled")
+ self.menu_file.entryconfigure(5, state="disabled")
object.__setattr__(self, name, value)
diff --git a/BraceletGenerator/constantes.py b/BraceletGenerator/constantes.py
index 749d03e..25f643a 100755
--- a/BraceletGenerator/constantes.py
+++ b/BraceletGenerator/constantes.py
@@ -18,7 +18,7 @@
along with this program. If not, see .
-IM_QUESTION_DATA was taken from "icons.tcl":
+IM_QUESTION_DATA and IM_WARNING_DATA was taken from "tk8.6/icons.tcl":
A set of stock icons for use in Tk dialogs. The icons used here
were provided by the Tango Desktop project which provides a
@@ -31,7 +31,7 @@
Copyright (c) 2009 Pat Thoyts
Most of the other icons are modified versions of icons from the elementary project
-Copyright 2007-2013 elementary LLC, except a few I made myself.
+Copyright 2007-2013 elementary LLC, except a few I designed myself.
Constants and global functions of Bracelet Generator
@@ -247,6 +247,34 @@ def save_config():
SUVORK5CYII=
"""
+IM_WARNING_DATA = """
+iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABHNCSVQICAgIfAhkiAAABSZJREFU
+WIXll1toVEcYgL+Zc87u2Yu7MYmrWRuTJuvdiMuqiJd4yYKXgMQKVkSjFR80kFIVJfWCWlvpg4h9
+8sXGWGof8iKNICYSo6JgkCBEJRG8ImYThNrNxmaTeM7pQ5IlJkabi0/9YZhhZv7///4z/8zPgf+7
+KCNRLgdlJijXwRyuDTlcxV9hbzv8nQmxMjg+XDtiOEplkG9PSfkztGmTgmFQd+FCVzwa3fYN/PHZ
+AcpBaReicW5xcbb64IEQqko8Lc26d/58cxS+/BY6hmJvyEfQBoUpwWCmW1FErKaGWHU13uRk4QkE
+UtxQNFR7QwIoB4eiKD9PWbVKbb10CZmaCqmpxCormRYO26QQx85B0mcD+AeK0xYvHqu1tNDx+DH6
+gQM4jh0j3tCA3tGBLyfHLuD7zwJwAcYqun44sHy51nr5MsqsWWj5+djCYdS5c4ldvUr24sU2qarf
+lUL6qAN0wqH0vDy7+fAhXZEI+v79CNmt7igpofPVK5SmJvyhkJBwYlQBSiHd7vUWZ86bp8WqqtCW
+LkVbuBAhBEIItGAQ2+rVxG7cICMY1KTDsekc5IwagIQTmStXis47dzBiMfR9+xCi+wb39s79+zFi
+MczGRjLmzTMlnBoVgLMwyzF+/Cb/lClq2/Xr2AoKUKdPxzAMWltbiUajmKaJkpGBY8sW3tbW4g8E
+VNXrXVEKK0YMoMKp7Px8K15Tg2VZOHbvBiASiRAMBgkGg0QiEYQQOIuLsRSFrnv3yJo/HxVOW594
+7D4KUAa57qysvNSUFOVtbS32rVuRfj9CCFwuV2Kfy+VCCIFMScFVVET7/fukJidLm883rQy+HhaA
+BUII8cvUNWt4W1WFcLvRd+5MnHl/AOjOB+eOHchx44jX1ZEdCqkSTpaDbcgA5+GrpNmzc9ymKdvr
+67Hv2oVMSko4cjgcKIqCoijoup64EdLpxLV3Lx1PnuCVUrgmTfK9hV1DAjgKqlSUk1PCYdl25QrS
+70cvLEw4SWS+04nT6XxvXgiBc8MGtKlTaa+rIysnR1Ok/OF38PxngAzY4VuwYKL99WvR8fQpjj17
+kLqeiL6393g8eDyeAWBSVfEcOkRXczOOaBRvVpZuDPJEDwD4DVyKrv+UlZurxSorUWfMQC8oGOBc
+CDHgC/Rdc4TD2BctIl5fT+bkyTahaXvOw8RPApiwd2Ju7hjZ2EhXSwvOkhKQcoADgIqKCioqKgYc
+QW9LOnIEIxZDbWpiXCCABT9+FKAUxtm83pKMUEiLVVejLVqEtmTJB50LIdi2bRuFPbnRd7232efM
+wbVuHR2PHjHR77dJXS8sg5mDAihweFJenmrevYvR1oazpGTQ6IQQaJqG7ClI/dd655IOHsSyLMSL
+F6QFAib9nugEQClk2Xy+orTsbK3t1i3sa9ei5eQMGr0QgvLyci5evDiocyEEtsxMPNu30/nsGRO8
+XlVzu8NlkNvrV+0T/fHMZcusrtu3MeNx9PXrobUVq8cYQrw3TrRub1h9+v573Bs3Ej1zBvP5c/zp
+6dbLhoaTwPy+ANKCfF92thq7dg2A6JYt/fNlxGK8eUNSerryHEJHQT8K8V4A5ztojty8OeaLzZul
+1DSwLCzDANPEMozusWFgmWZ33288YK3/nGlixuM0v3xpWfDX0Z4i1VupXEWwIgRnJfhGPfQ+YsLr
++7DzNFwCuvqWyiRg7DSYoIBu9smPkYqEd4AwIN4ITUAL0A4Da7UC6ICdEfy2fUBMoAvo7GnWKNoe
+mfwLcAuinuFNL7QAAAAASUVORK5CYII=
+"""
+
### colors
if platform == 'darwin' or PL == 'nt':
BG_COLOR = '#F0F0F0'
@@ -343,7 +371,7 @@ def help_web(event=None):
from PIL import Image, ImageTk
from BraceletGenerator.custom_messagebox import ob_checkbutton
if not CONFIG.has_option("General", "old_tcl_warning") or CONFIG.getboolean("General", "old_tcl_warning"):
- ans = ob_checkbutton(title=_("Information"), style=STYLE,
+ ans = ob_checkbutton(title=_("Information"), image=IM_WARNING_DATA,
message=_("This software has been developped using Tcl/Tk 8.6, but you are using an older version. Please consider upgrading your Tcl/Tk version."),
checkmessage=_("Do not show this message again."))
CONFIG.set("General", "old_tcl_warning", str(not ans))
diff --git a/BraceletGenerator/couleurs.py b/BraceletGenerator/couleurs.py
index 33af736..5913790 100755
--- a/BraceletGenerator/couleurs.py
+++ b/BraceletGenerator/couleurs.py
@@ -21,8 +21,8 @@
"""
from tkinter import Toplevel, Canvas, PhotoImage
-from tkinter.ttk import Button, Label, Style, Separator, Frame
-from BraceletGenerator.constantes import BG_COLOR, STYLE, MOUSEWHEEL, set_icon, mouse_wheel, fill, askcolor, LANG
+from tkinter.ttk import Button, Label, Separator, Frame
+from BraceletGenerator.constantes import BG_COLOR, MOUSEWHEEL, set_icon, mouse_wheel, fill, askcolor, LANG
from BraceletGenerator.scrollbar import AutoScrollbar as Scrollbar
class Couleurs(Toplevel):
@@ -54,13 +54,6 @@ def __init__(self, master, coul_def, colors, **options):
# Icône
set_icon(self)
- ### Style
- style = Style(self)
- style.theme_use(STYLE)
- style.configure('TButton', background=BG_COLOR)
- style.configure('TLabel', background=BG_COLOR)
- style.configure('TFrame', background=BG_COLOR)
-
### Contenu :
self.can = Canvas(self,bg=BG_COLOR) # pour utiliser une scrollbar
self.can.grid(row=0, column=0, sticky="nswe")
diff --git a/BraceletGenerator/custom_messagebox.py b/BraceletGenerator/custom_messagebox.py
index e2c3232..aed9d4b 100755
--- a/BraceletGenerator/custom_messagebox.py
+++ b/BraceletGenerator/custom_messagebox.py
@@ -22,15 +22,16 @@
"""
-from tkinter import Toplevel, BooleanVar, Tk
-from tkinter.ttk import Label, Button, Style, Checkbutton
+from tkinter import BooleanVar, Tk, PhotoImage, TclError
+from tkinter.ttk import Label, Button, Checkbutton, Style
+from BraceletGenerator.constantes import STYLE
class OBCheckbutton(Tk):
""" Messagebox with only one button and a checkbox below the button
for instance to add a 'Do not show this again' option """
def __init__(self, title="", message="", button="Ok", image=None,
- checkmessage="", style="clam", **options):
+ checkmessage="", **options):
"""
Create a messagebox with one button and a checkbox below the button:
parent: parent of the toplevel window
@@ -44,28 +45,38 @@ def __init__(self, title="", message="", button="Ok", image=None,
Tk.__init__(self, **options)
self.title(title)
self.resizable(False, False)
- s = Style(self)
- s.theme_use(style)
- if image:
- Label(self, text=message, wraplength=335,
- font="Sans 11", compound="left", image=image).grid(row=0, padx=10, pady=(10,0))
- else:
- Label(self, text=message, wraplength=335,
- font="Sans 11").grid(row=0, padx=10, pady=(10,0))
+ self.columnconfigure(1, weight=1)
+ self.rowconfigure(0, weight=1)
+
+ style = Style(self)
+ style.theme_use(STYLE)
+ self.img = None
+ if isinstance(image, str):
+ try:
+ self.img = PhotoImage(file=image)
+ except TclError:
+ self.img = PhotoImage(data=image)
+ elif image:
+ self.img = image
+ if self.img:
+ Label(self, image=self.img).grid(row=0, column=0, padx=10, pady=(10,0))
+ Label(self, text=message, wraplength=335,
+ font="TkDefaultFont 10 bold").grid(row=0, column=1,
+ padx=10, pady=(10,0))
b = Button(self, text=button, command=self.destroy)
- b.grid(row=2, padx=10, pady=10)
+ b.grid(row=2, padx=10, pady=10, columnspan=2)
self.var = BooleanVar(self)
c = Checkbutton(self, text=checkmessage, variable=self.var)
- c.grid(row=1, padx=10, pady=0, sticky="e")
+ c.grid(row=1, padx=10, pady=4, sticky="e", columnspan=2)
self.grab_set()
b.focus_set()
- self.wait_window(self)
def get_check(self):
return self.var.get()
def ob_checkbutton(title="", message="", button="Ok", image=None,
- checkmessage="", style="clam", **options):
+ checkmessage="", **options):
""" Open a OBCheckbutton and return the value of the checkbutton when closed. """
- ob = OBCheckbutton(title, message, button, image, checkmessage, style, **options)
+ ob = OBCheckbutton(title, message, button, image, checkmessage, **options)
+ ob.wait_window(ob)
return ob.get_check()
diff --git a/BraceletGenerator/locale/en_US/LC_MESSAGES/BraceletGenerator.mo b/BraceletGenerator/locale/en_US/LC_MESSAGES/BraceletGenerator.mo
index 8e73cae..7919dd2 100644
Binary files a/BraceletGenerator/locale/en_US/LC_MESSAGES/BraceletGenerator.mo and b/BraceletGenerator/locale/en_US/LC_MESSAGES/BraceletGenerator.mo differ
diff --git a/BraceletGenerator/locale/fr_FR/LC_MESSAGES/BraceletGenerator.mo b/BraceletGenerator/locale/fr_FR/LC_MESSAGES/BraceletGenerator.mo
index 88ab868..253d1f6 100644
Binary files a/BraceletGenerator/locale/fr_FR/LC_MESSAGES/BraceletGenerator.mo and b/BraceletGenerator/locale/fr_FR/LC_MESSAGES/BraceletGenerator.mo differ
diff --git a/BraceletGenerator/version_check.py b/BraceletGenerator/version_check.py
index 80f73ec..598223d 100644
--- a/BraceletGenerator/version_check.py
+++ b/BraceletGenerator/version_check.py
@@ -29,7 +29,8 @@
from webbrowser import open as webOpen
from tkinter import Toplevel, PhotoImage
from tkinter.ttk import Label, Button, Frame, Checkbutton
-from BraceletGenerator.constants import VERSION, CONFIG, save_config, IM_QUESTION_DATA
+from BraceletGenerator.constantes import VERSION, CONFIG, save_config
+from BraceletGenerator.constantes import BG_COLOR, IM_QUESTION_DATA
class VersionParser(HTMLParser):
@@ -66,26 +67,27 @@ def __init__(self, master):
self.columnconfigure(1, weight=1)
self.protocol("WM_DELETE_WINDOW", self.quit)
+ self.configure(background=BG_COLOR)
+
self.img = PhotoImage(data=IM_QUESTION_DATA, master=self)
frame = Frame(self)
frame.grid(row=0, columnspan=2, sticky="ewsn")
Label(frame, image=self.img).pack(side="left", padx=(10, 4), pady=(10, 4))
Label(frame,
- text=_("A new version of Bracelet Generator is available.\
-\nDo you want to download it?"),
+ text=_("A new version of Bracelet Generator is available. Do you want to download it?"),
font="TkDefaultFont 10 bold",
wraplength=335).pack(side="left", padx=(4, 10), pady=(10, 4))
self.b1 = Button(self, text=_("Yes"), command=self.download)
self.b1.grid(row=1, column=0, padx=10, pady=10, sticky="e")
Button(self, text=_("No"), command=self.quit).grid(row=1, column=1,
- padx=10, pady=10,
- sticky="w")
+ padx=10, pady=10,
+ sticky="w")
self.ch = Checkbutton(self, text=_("Check for updates on startup."))
if CONFIG.getboolean("General", "check_update"):
self.ch.state(("selected", ))
- self.ch.grid(row=2, columnspan=2, sticky='w')
+ self.ch.grid(row=2, columnspan=2, sticky='e')
self.update = None
self.thread = Thread(target=self.update_available, daemon=True)
diff --git a/MANIFEST.in b/MANIFEST.in
index 3c4b01c..96ab679 100644
--- a/MANIFEST.in
+++ b/MANIFEST.in
@@ -1,6 +1,4 @@
include *.txt *.rst *.py bracelet-generator.*
-include BraceletGenerator/locale/fr_FR/LC_MESSAGES/BraceletGenerator.mo
-include BraceletGenerator/locale/en_US/LC_MESSAGES/BraceletGenerator.mo
recursive-include examples *
recursive-include BraceletGenerator/images *
recursive-include BraceletGenerator/doc *
diff --git a/bracelet-generator b/bracelet-generator
index 09184f0..116500b 100755
--- a/bracelet-generator
+++ b/bracelet-generator
@@ -38,6 +38,9 @@ try:
finally: # remove logs even if the app crashed to avoid accumulation
try:
os.remove(BRACELET_LOG)
+ except FileNotFoundError:
+ pass
+ try:
os.remove(BICOLOR_LOG)
except FileNotFoundError:
pass
diff --git a/bracelet-generator.py b/bracelet-generator.py
index 7c06ca7..116500b 100755
--- a/bracelet-generator.py
+++ b/bracelet-generator.py
@@ -20,6 +20,7 @@
main
"""
+
import sys
import os
from BraceletGenerator.constantes import CONFIG, BRACELET_LOG, BICOLOR_LOG, save_config
@@ -27,14 +28,20 @@
try:
if len(sys.argv) == 1:
- Bracelet(string_nb=CONFIG.getint("Bracelet", "string_nb"),
- row_nb=CONFIG.getint("Bracelet", "row_nb"),
- color=CONFIG.get("Bracelet", "default_color"))
+ app = Bracelet(string_nb=CONFIG.getint("Bracelet", "string_nb"),
+ row_nb=CONFIG.getint("Bracelet", "row_nb"),
+ color=CONFIG.get("Bracelet", "default_color"))
else:
fichier = os.path.realpath(sys.argv[1])
app = Bracelet(fichier=fichier)
- app.mainloop()
+ app.mainloop()
finally: # remove logs even if the app crashed to avoid accumulation
- os.remove(BRACELET_LOG)
- os.remove(BICOLOR_LOG)
+ try:
+ os.remove(BRACELET_LOG)
+ except FileNotFoundError:
+ pass
+ try:
+ os.remove(BICOLOR_LOG)
+ except FileNotFoundError:
+ pass
save_config()
diff --git a/changelog b/changelog
index 3bb6272..f871f08 100644
--- a/changelog
+++ b/changelog
@@ -9,10 +9,11 @@ Copyright 2014-2017 Juliette Monsel
- Update checker
- 2. Bug correction
+ 2. Bug corrections
- - Log not removed when app crashes
- App was not runnable locally on linux
+ - Save button not disabled when new bracelet started
+ - Changed symmetrize icons for license reason
- Version 1.4.0
@@ -22,8 +23,8 @@ Copyright 2014-2017 Juliette Monsel
2. Bug correction
- - mouse-scrolling in Windows
- - mouse button bindings in OS X
+ - Mouse-scrolling in Windows
+ - Mouse button bindings in OS X
- Added script to add Ghostscript path to the system path variable
in Windows because PIL cannot always find it.
diff --git a/debian/changelog b/debian/changelog
index 0e6e22c..0cb3b82 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -3,6 +3,7 @@ bracelet-generator (1.4.1-1) unstable; urgency=low
* New feature: update checker
* Bug correction: log not removed when app crashes
* Bug correction: app was not runnable locally on linux
+ * Bug correction: save button not disabled when new bracelet started
-- Juliette Monsel Sat, 14 Jan 2017 17:57:54 +0100
diff --git a/po/en_US.po b/po/en_US.po
index f1b73ff..63fac66 100644
--- a/po/en_US.po
+++ b/po/en_US.po
@@ -6,8 +6,8 @@
msgid ""
msgstr ""
"Project-Id-Version: 1.4.1\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-04-08 22:35+0200\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-04-09 11:41+0200\n"
"PO-Revision-Date: 2016-08-24 19:25+0200\n"
"Last-Translator: Juliette Monsel \n"
"Language-Team: English\n"
@@ -17,15 +17,15 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: BraceletGenerator/couleurs.py:39 BraceletGenerator/bracelet.py:177
+#: BraceletGenerator/couleurs.py:39 BraceletGenerator/bracelet.py:184
msgid "Color Manager"
msgstr "Color Manager"
-#: BraceletGenerator/couleurs.py:80
+#: BraceletGenerator/couleurs.py:73
msgid "Default color"
msgstr "Default color"
-#: BraceletGenerator/couleurs.py:94
+#: BraceletGenerator/couleurs.py:87
msgid "String colors"
msgstr "String colors"
@@ -33,24 +33,24 @@ msgstr "String colors"
msgid "About Bracelet Generator"
msgstr "About Bracelet Generator"
-#: BraceletGenerator/about.py:51
+#: BraceletGenerator/about.py:47
#, python-format
msgid "Bracelet Generator %(version)s"
msgstr "Bracelet Generator %(version)s"
-#: BraceletGenerator/about.py:53
+#: BraceletGenerator/about.py:49
msgid "Friendship bracelet patterns designer"
msgstr "Friendship bracelet patterns designer"
-#: BraceletGenerator/about.py:56 BraceletGenerator/about.py:80
+#: BraceletGenerator/about.py:52 BraceletGenerator/about.py:76
msgid "License"
msgstr "License"
-#: BraceletGenerator/about.py:57 BraceletGenerator/about.py:112
+#: BraceletGenerator/about.py:53 BraceletGenerator/about.py:104
msgid "Close"
msgstr "Close"
-#: BraceletGenerator/about.py:95
+#: BraceletGenerator/about.py:87
msgid ""
"Bracelet Generator is free software: you can redistribute it and/or modify "
"it under the terms of the GNU General Public License as published by the "
@@ -64,7 +64,7 @@ msgstr ""
"option) any later version.\n"
"\n"
-#: BraceletGenerator/about.py:97
+#: BraceletGenerator/about.py:89
msgid ""
"Bracelet Generator is distributed in the hope that it will be useful, but "
"WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY "
@@ -78,7 +78,7 @@ msgstr ""
"more details.\n"
"\n"
-#: BraceletGenerator/about.py:99
+#: BraceletGenerator/about.py:91
msgid ""
"You should have received a copy of the GNU General Public License along with "
"this program. If not, see http://www.gnu.org/licenses/."
@@ -86,12 +86,12 @@ msgstr ""
"You should have received a copy of the GNU General Public License along with "
"this program. If not, see http://www.gnu.org/licenses/."
-#: BraceletGenerator/constantes.py:346 BraceletGenerator/bracelet.py:1689
+#: BraceletGenerator/constantes.py:374 BraceletGenerator/bracelet.py:1708
#: add_gs_to_path.py:59
msgid "Information"
msgstr "Information"
-#: BraceletGenerator/constantes.py:347
+#: BraceletGenerator/constantes.py:375
msgid ""
"This software has been developped using Tcl/Tk 8.6, but you are using an "
"older version. Please consider upgrading your Tcl/Tk version."
@@ -99,144 +99,148 @@ msgstr ""
"This software has been developped using Tcl/Tk 8.6, but you are using an "
"older version. Please consider upgrading your Tcl/Tk version."
-#: BraceletGenerator/constantes.py:348
+#: BraceletGenerator/constantes.py:376
msgid "Do not show this message again."
msgstr "Do not show this message again."
-#: BraceletGenerator/constantes.py:376 BraceletGenerator/bracelet.py:100
+#: BraceletGenerator/constantes.py:404 BraceletGenerator/bracelet.py:107
#: BraceletGenerator/bicolore.py:112
msgid "Open"
msgstr "Open"
-#: BraceletGenerator/constantes.py:411 BraceletGenerator/bracelet.py:111
+#: BraceletGenerator/constantes.py:439 BraceletGenerator/bracelet.py:118
#: BraceletGenerator/bicolore.py:124
msgid "Save As"
msgstr "Save As"
-#: BraceletGenerator/version_check.py:62
+#: BraceletGenerator/version_check.py:63
msgid "Update"
msgstr "Update"
-#: BraceletGenerator/version_check.py:75
+#: BraceletGenerator/version_check.py:78
msgid ""
-"A new version of Bracelet Generator is available.\n"
-"Do you want to download it?"
+"A new version of Bracelet Generator is available. Do you want to download it?"
msgstr ""
+"A new version of Bracelet Generator is available. Do you want to download it?"
-#: BraceletGenerator/version_check.py:80
+#: BraceletGenerator/version_check.py:82
msgid "Yes"
msgstr "Yes"
-#: BraceletGenerator/version_check.py:82
+#: BraceletGenerator/version_check.py:84
msgid "No"
msgstr "No"
-#: BraceletGenerator/version_check.py:85
+#: BraceletGenerator/version_check.py:87
msgid "Check for updates on startup."
msgstr "Check for updates on startup."
-#: BraceletGenerator/bracelet.py:48
+#: BraceletGenerator/bracelet.py:49
msgid "Bracelet Generator"
msgstr "Bracelet Generator"
-#: BraceletGenerator/bracelet.py:96
+#: BraceletGenerator/bracelet.py:103
msgid "New"
msgstr "New"
-#: BraceletGenerator/bracelet.py:103 BraceletGenerator/bicolore.py:115
+#: BraceletGenerator/bracelet.py:110 BraceletGenerator/bicolore.py:115
msgid "Recent Files"
msgstr "Recent Files"
-#: BraceletGenerator/bracelet.py:108 BraceletGenerator/bicolore.py:120
+#: BraceletGenerator/bracelet.py:115 BraceletGenerator/bicolore.py:120
msgid "Save"
msgstr "Save"
-#: BraceletGenerator/bracelet.py:113 BraceletGenerator/bicolore.py:127
+#: BraceletGenerator/bracelet.py:120 BraceletGenerator/bicolore.py:127
msgid "Shift+Ctrl+S"
msgstr "Shift+Ctrl+S"
-#: BraceletGenerator/bracelet.py:115
+#: BraceletGenerator/bracelet.py:122
msgid "Export as picture"
msgstr "Export as picture"
-#: BraceletGenerator/bracelet.py:118
+#: BraceletGenerator/bracelet.py:125
msgid "Export as text"
msgstr "Export as text"
-#: BraceletGenerator/bracelet.py:122
+#: BraceletGenerator/bracelet.py:129
msgid "Quit"
msgstr "Quit"
-#: BraceletGenerator/bracelet.py:134 BraceletGenerator/bicolore.py:141
+#: BraceletGenerator/bracelet.py:141 BraceletGenerator/bicolore.py:141
msgid "Undo"
msgstr "Undo"
-#: BraceletGenerator/bracelet.py:137 BraceletGenerator/bicolore.py:144
+#: BraceletGenerator/bracelet.py:144 BraceletGenerator/bicolore.py:144
msgid "Redo"
msgstr "Redo"
-#: BraceletGenerator/bracelet.py:141 BraceletGenerator/bicolore.py:159
+#: BraceletGenerator/bracelet.py:148 BraceletGenerator/bicolore.py:159
msgid "Add Row"
msgstr "Add Row"
-#: BraceletGenerator/bracelet.py:146 BraceletGenerator/bicolore.py:164
+#: BraceletGenerator/bracelet.py:153 BraceletGenerator/bicolore.py:164
msgid "Delete Row"
msgstr "Delete Row"
-#: BraceletGenerator/bracelet.py:152 BraceletGenerator/bicolore.py:170
+#: BraceletGenerator/bracelet.py:159 BraceletGenerator/bicolore.py:170
msgid "Add String"
msgstr "Add String"
-#: BraceletGenerator/bracelet.py:157 BraceletGenerator/bicolore.py:175
+#: BraceletGenerator/bracelet.py:164 BraceletGenerator/bicolore.py:175
msgid "Delete String"
msgstr "Delete String"
-#: BraceletGenerator/bracelet.py:163
+#: BraceletGenerator/bracelet.py:170
msgid "Create a Two-Colored Motif"
msgstr "Create a Two-Colored Motif"
-#: BraceletGenerator/bracelet.py:168 BraceletGenerator/bicolore.py:245
+#: BraceletGenerator/bracelet.py:175 BraceletGenerator/bicolore.py:245
msgid "Vertical Symmetry"
msgstr "Vertical Symmetry"
-#: BraceletGenerator/bracelet.py:172 BraceletGenerator/bicolore.py:249
+#: BraceletGenerator/bracelet.py:179 BraceletGenerator/bicolore.py:249
msgid "Horizontal Symmetry"
msgstr "Horizontal Symmetry"
-#: BraceletGenerator/bracelet.py:192 BraceletGenerator/bracelet.py:204
+#: BraceletGenerator/bracelet.py:199 BraceletGenerator/bracelet.py:215
#: BraceletGenerator/bicolore.py:255 BraceletGenerator/bicolore.py:268
msgid "Help"
msgstr "Help"
-#: BraceletGenerator/bracelet.py:194 BraceletGenerator/bicolore.py:258
+#: BraceletGenerator/bracelet.py:201 BraceletGenerator/bicolore.py:258
msgid "Online Help"
msgstr "Online Help"
-#: BraceletGenerator/bracelet.py:197 BraceletGenerator/bicolore.py:262
+#: BraceletGenerator/bracelet.py:205
+msgid "Check for updates"
+msgstr "Check for updates"
+
+#: BraceletGenerator/bracelet.py:208 BraceletGenerator/bicolore.py:262
msgid "About"
msgstr "About"
-#: BraceletGenerator/bracelet.py:201 BraceletGenerator/bicolore.py:265
+#: BraceletGenerator/bracelet.py:212 BraceletGenerator/bicolore.py:265
msgid "File"
msgstr "File"
-#: BraceletGenerator/bracelet.py:202 BraceletGenerator/bicolore.py:266
+#: BraceletGenerator/bracelet.py:213 BraceletGenerator/bicolore.py:266
msgid "Edit"
msgstr "Edit"
-#: BraceletGenerator/bracelet.py:203
+#: BraceletGenerator/bracelet.py:214
msgid "Language"
msgstr "Language"
-#: BraceletGenerator/bracelet.py:252 BraceletGenerator/bicolore.py:351
+#: BraceletGenerator/bracelet.py:263 BraceletGenerator/bicolore.py:351
msgid "Rows: "
msgstr "Rows: "
-#: BraceletGenerator/bracelet.py:264 BraceletGenerator/bicolore.py:363
+#: BraceletGenerator/bracelet.py:275 BraceletGenerator/bicolore.py:363
msgid "Strings: "
msgstr "Strings: "
-#: BraceletGenerator/bracelet.py:1312
+#: BraceletGenerator/bracelet.py:1331
msgid ""
"The pattern has not been saved. Do you want to save it before replacing it "
"by a new one?"
@@ -244,7 +248,7 @@ msgstr ""
"The pattern has not been saved. Do you want to save it before replacing it "
"by a new one?"
-#: BraceletGenerator/bracelet.py:1352 BraceletGenerator/bracelet.py:1525
+#: BraceletGenerator/bracelet.py:1371 BraceletGenerator/bracelet.py:1544
msgid ""
"The pattern has not been saved. Do you want to save it before replacing it "
"by another one?"
@@ -252,38 +256,38 @@ msgstr ""
"The pattern has not been saved. Do you want to save it before replacing it "
"by another one?"
-#: BraceletGenerator/bracelet.py:1387 BraceletGenerator/bracelet.py:1390
-#: BraceletGenerator/bracelet.py:1414 BraceletGenerator/bracelet.py:1487
+#: BraceletGenerator/bracelet.py:1406 BraceletGenerator/bracelet.py:1409
+#: BraceletGenerator/bracelet.py:1433 BraceletGenerator/bracelet.py:1506
#: BraceletGenerator/bicolore.py:886 BraceletGenerator/bicolore.py:890
#: BraceletGenerator/bicolore.py:945 add_gs_to_path.py:53
msgid "Error"
msgstr "Error"
-#: BraceletGenerator/bracelet.py:1388
+#: BraceletGenerator/bracelet.py:1407
#, python-format
msgid "The file %(name)s is not a valid pattern file."
msgstr "The file %(name)s is not a valid pattern file."
-#: BraceletGenerator/bracelet.py:1391 BraceletGenerator/bicolore.py:891
+#: BraceletGenerator/bracelet.py:1410 BraceletGenerator/bicolore.py:891
#, python-format
msgid "The file %(name)s does not exists."
msgstr "The file %(name)s does not exists."
-#: BraceletGenerator/bracelet.py:1415
+#: BraceletGenerator/bracelet.py:1434
#, python-format
msgid "%(extension)s is not a valid extension for a pattern file."
msgstr "%(extension)s is not a valid extension for a pattern file."
-#: BraceletGenerator/bracelet.py:1457 BraceletGenerator/bracelet.py:1503
+#: BraceletGenerator/bracelet.py:1476 BraceletGenerator/bracelet.py:1522
msgid "Export"
msgstr "Export"
-#: BraceletGenerator/bracelet.py:1488
+#: BraceletGenerator/bracelet.py:1507
#, python-format
msgid "The pattern cannot be exported in .%(extension)s"
msgstr "The pattern cannot be exported in .%(extension)s"
-#: BraceletGenerator/bracelet.py:1516
+#: BraceletGenerator/bracelet.py:1535
msgid ""
"0: forward knot, 1: backward knot, 2: backward forward, 3: forward backward\n"
"\n"
@@ -291,7 +295,7 @@ msgstr ""
"0: forward knot, 1: backward knot, 2: backward forward, 3: forward backward\n"
"\n"
-#: BraceletGenerator/bracelet.py:1517
+#: BraceletGenerator/bracelet.py:1536
#, python-brace-format
msgid ""
"strings: {string_nb}, rows: {row_nb}\n"
@@ -300,11 +304,11 @@ msgstr ""
"strings: {string_nb}, rows: {row_nb}\n"
"\n"
-#: BraceletGenerator/bracelet.py:1572
+#: BraceletGenerator/bracelet.py:1591
msgid "The pattern has not been saved. Do you want to save it before closing?"
msgstr "The pattern has not been saved. Do you want to save it before closing?"
-#: BraceletGenerator/bracelet.py:1690
+#: BraceletGenerator/bracelet.py:1709
msgid "The language setting will take effect after restarting the application"
msgstr "The language setting will take effect after restarting the application"
diff --git a/po/fr.po b/po/fr.po
index 6b3a2d5..95fbdf0 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: 1.4.1\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-04-08 22:33+0200\n"
+"POT-Creation-Date: 2017-04-09 11:44+0200\n"
"PO-Revision-Date: 2016-08-21 19:21+0200\n"
"Last-Translator: Juliette Monsel \n"
"Language-Team: French\n"
@@ -17,15 +17,15 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-#: BraceletGenerator/couleurs.py:39 BraceletGenerator/bracelet.py:177
+#: BraceletGenerator/couleurs.py:39 BraceletGenerator/bracelet.py:184
msgid "Color Manager"
msgstr "Gestionnaire de couleurs"
-#: BraceletGenerator/couleurs.py:80
+#: BraceletGenerator/couleurs.py:73
msgid "Default color"
msgstr "Couleur par défaut"
-#: BraceletGenerator/couleurs.py:94
+#: BraceletGenerator/couleurs.py:87
msgid "String colors"
msgstr "Couleurs des fils"
@@ -33,24 +33,24 @@ msgstr "Couleurs des fils"
msgid "About Bracelet Generator"
msgstr "À propos de Bracelet Générateur"
-#: BraceletGenerator/about.py:51
+#: BraceletGenerator/about.py:47
#, python-format
msgid "Bracelet Generator %(version)s"
msgstr "Bracelet Générateur %(version)s"
-#: BraceletGenerator/about.py:53
+#: BraceletGenerator/about.py:49
msgid "Friendship bracelet patterns designer"
msgstr "Générateur de patrons de bracelets brésiliens"
-#: BraceletGenerator/about.py:56 BraceletGenerator/about.py:80
+#: BraceletGenerator/about.py:52 BraceletGenerator/about.py:76
msgid "License"
msgstr "Licence"
-#: BraceletGenerator/about.py:57 BraceletGenerator/about.py:112
+#: BraceletGenerator/about.py:53 BraceletGenerator/about.py:104
msgid "Close"
msgstr "Fermer"
-#: BraceletGenerator/about.py:95
+#: BraceletGenerator/about.py:87
msgid ""
"Bracelet Generator is free software: you can redistribute it and/or modify "
"it under the terms of the GNU General Public License as published by the "
@@ -64,7 +64,7 @@ msgstr ""
"licence, soit (à votre convenance) une version ultérieure.\n"
"\n"
-#: BraceletGenerator/about.py:97
+#: BraceletGenerator/about.py:89
msgid ""
"Bracelet Generator is distributed in the hope that it will be useful, but "
"WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY "
@@ -78,7 +78,7 @@ msgstr ""
"pour plus de détails.\n"
"\n"
-#: BraceletGenerator/about.py:99
+#: BraceletGenerator/about.py:91
msgid ""
"You should have received a copy of the GNU General Public License along with "
"this program. If not, see http://www.gnu.org/licenses/."
@@ -86,12 +86,12 @@ msgstr ""
"Vous devriez avoir reçu une copie de la Licence Publique Générale GNU avec "
"ce programme. Sinon, consultez http://www.gnu.org/licenses/."
-#: BraceletGenerator/constantes.py:346 BraceletGenerator/bracelet.py:1689
+#: BraceletGenerator/constantes.py:374 BraceletGenerator/bracelet.py:1708
#: add_gs_to_path.py:59
msgid "Information"
msgstr "Information"
-#: BraceletGenerator/constantes.py:347
+#: BraceletGenerator/constantes.py:375
msgid ""
"This software has been developped using Tcl/Tk 8.6, but you are using an "
"older version. Please consider upgrading your Tcl/Tk version."
@@ -99,144 +99,149 @@ msgstr ""
"Ce logiciel a été développé avec Tcl/Tk 8.6, mais vous utilisez une version "
"plus ancienne. Il est conseillé de mettre à jour Tcl/Tk."
-#: BraceletGenerator/constantes.py:348
+#: BraceletGenerator/constantes.py:376
msgid "Do not show this message again."
msgstr "Ne plus afficher ce message."
-#: BraceletGenerator/constantes.py:376 BraceletGenerator/bracelet.py:100
+#: BraceletGenerator/constantes.py:404 BraceletGenerator/bracelet.py:107
#: BraceletGenerator/bicolore.py:112
msgid "Open"
msgstr "Ouvrir"
-#: BraceletGenerator/constantes.py:411 BraceletGenerator/bracelet.py:111
+#: BraceletGenerator/constantes.py:439 BraceletGenerator/bracelet.py:118
#: BraceletGenerator/bicolore.py:124
msgid "Save As"
msgstr "Enregistrer sous"
-#: BraceletGenerator/version_check.py:62
+#: BraceletGenerator/version_check.py:63
msgid "Update"
msgstr "Mise à jour"
-#: BraceletGenerator/version_check.py:75
+#: BraceletGenerator/version_check.py:78
msgid ""
-"A new version of Bracelet Generator is available.\n"
-"Do you want to download it?"
+"A new version of Bracelet Generator is available. Do you want to download it?"
msgstr ""
+"Une nouvelle version de Bracelet Générateur est disponible. Voulez-vous la "
+"télécharger ?"
-#: BraceletGenerator/version_check.py:80
+#: BraceletGenerator/version_check.py:82
msgid "Yes"
msgstr "Oui"
-#: BraceletGenerator/version_check.py:82
+#: BraceletGenerator/version_check.py:84
msgid "No"
msgstr "Non"
-#: BraceletGenerator/version_check.py:85
+#: BraceletGenerator/version_check.py:87
msgid "Check for updates on startup."
msgstr "Vérifier les mises à jour au démarrage."
-#: BraceletGenerator/bracelet.py:48
+#: BraceletGenerator/bracelet.py:49
msgid "Bracelet Generator"
msgstr "Bracelet Générateur"
-#: BraceletGenerator/bracelet.py:96
+#: BraceletGenerator/bracelet.py:103
msgid "New"
msgstr "Nouveau"
-#: BraceletGenerator/bracelet.py:103 BraceletGenerator/bicolore.py:115
+#: BraceletGenerator/bracelet.py:110 BraceletGenerator/bicolore.py:115
msgid "Recent Files"
msgstr "Fichiers récents"
-#: BraceletGenerator/bracelet.py:108 BraceletGenerator/bicolore.py:120
+#: BraceletGenerator/bracelet.py:115 BraceletGenerator/bicolore.py:120
msgid "Save"
msgstr "Enregistrer"
-#: BraceletGenerator/bracelet.py:113 BraceletGenerator/bicolore.py:127
+#: BraceletGenerator/bracelet.py:120 BraceletGenerator/bicolore.py:127
msgid "Shift+Ctrl+S"
msgstr "Maj+Ctrl+S"
-#: BraceletGenerator/bracelet.py:115
+#: BraceletGenerator/bracelet.py:122
msgid "Export as picture"
msgstr "Exporter - image"
-#: BraceletGenerator/bracelet.py:118
+#: BraceletGenerator/bracelet.py:125
msgid "Export as text"
msgstr "Exporter - texte"
-#: BraceletGenerator/bracelet.py:122
+#: BraceletGenerator/bracelet.py:129
msgid "Quit"
msgstr "Quitter"
-#: BraceletGenerator/bracelet.py:134 BraceletGenerator/bicolore.py:141
+#: BraceletGenerator/bracelet.py:141 BraceletGenerator/bicolore.py:141
msgid "Undo"
msgstr "Annuler"
-#: BraceletGenerator/bracelet.py:137 BraceletGenerator/bicolore.py:144
+#: BraceletGenerator/bracelet.py:144 BraceletGenerator/bicolore.py:144
msgid "Redo"
msgstr "Rétablir"
-#: BraceletGenerator/bracelet.py:141 BraceletGenerator/bicolore.py:159
+#: BraceletGenerator/bracelet.py:148 BraceletGenerator/bicolore.py:159
msgid "Add Row"
msgstr "Ajouter deux lignes"
-#: BraceletGenerator/bracelet.py:146 BraceletGenerator/bicolore.py:164
+#: BraceletGenerator/bracelet.py:153 BraceletGenerator/bicolore.py:164
msgid "Delete Row"
msgstr "Supprimer deux lignes"
-#: BraceletGenerator/bracelet.py:152 BraceletGenerator/bicolore.py:170
+#: BraceletGenerator/bracelet.py:159 BraceletGenerator/bicolore.py:170
msgid "Add String"
msgstr "Ajouter un fil"
-#: BraceletGenerator/bracelet.py:157 BraceletGenerator/bicolore.py:175
+#: BraceletGenerator/bracelet.py:164 BraceletGenerator/bicolore.py:175
msgid "Delete String"
msgstr "Supprimer un fil"
-#: BraceletGenerator/bracelet.py:163
+#: BraceletGenerator/bracelet.py:170
msgid "Create a Two-Colored Motif"
msgstr "Créer un motif bicolore"
-#: BraceletGenerator/bracelet.py:168 BraceletGenerator/bicolore.py:245
+#: BraceletGenerator/bracelet.py:175 BraceletGenerator/bicolore.py:245
msgid "Vertical Symmetry"
msgstr "Symétrie verticale"
-#: BraceletGenerator/bracelet.py:172 BraceletGenerator/bicolore.py:249
+#: BraceletGenerator/bracelet.py:179 BraceletGenerator/bicolore.py:249
msgid "Horizontal Symmetry"
msgstr "Symétrie horizontale"
-#: BraceletGenerator/bracelet.py:192 BraceletGenerator/bracelet.py:204
+#: BraceletGenerator/bracelet.py:199 BraceletGenerator/bracelet.py:215
#: BraceletGenerator/bicolore.py:255 BraceletGenerator/bicolore.py:268
msgid "Help"
msgstr "Aide"
-#: BraceletGenerator/bracelet.py:194 BraceletGenerator/bicolore.py:258
+#: BraceletGenerator/bracelet.py:201 BraceletGenerator/bicolore.py:258
msgid "Online Help"
msgstr "Aide en ligne"
-#: BraceletGenerator/bracelet.py:197 BraceletGenerator/bicolore.py:262
+#: BraceletGenerator/bracelet.py:205
+msgid "Check for updates"
+msgstr "Vérifier les mises à jour"
+
+#: BraceletGenerator/bracelet.py:208 BraceletGenerator/bicolore.py:262
msgid "About"
msgstr "À propos"
-#: BraceletGenerator/bracelet.py:201 BraceletGenerator/bicolore.py:265
+#: BraceletGenerator/bracelet.py:212 BraceletGenerator/bicolore.py:265
msgid "File"
msgstr "Fichier"
-#: BraceletGenerator/bracelet.py:202 BraceletGenerator/bicolore.py:266
+#: BraceletGenerator/bracelet.py:213 BraceletGenerator/bicolore.py:266
msgid "Edit"
msgstr "Édition"
-#: BraceletGenerator/bracelet.py:203
+#: BraceletGenerator/bracelet.py:214
msgid "Language"
msgstr "Langue"
-#: BraceletGenerator/bracelet.py:252 BraceletGenerator/bicolore.py:351
+#: BraceletGenerator/bracelet.py:263 BraceletGenerator/bicolore.py:351
msgid "Rows: "
msgstr "Lignes : "
-#: BraceletGenerator/bracelet.py:264 BraceletGenerator/bicolore.py:363
+#: BraceletGenerator/bracelet.py:275 BraceletGenerator/bicolore.py:363
msgid "Strings: "
msgstr "Fils : "
-#: BraceletGenerator/bracelet.py:1312
+#: BraceletGenerator/bracelet.py:1331
msgid ""
"The pattern has not been saved. Do you want to save it before replacing it "
"by a new one?"
@@ -244,7 +249,7 @@ msgstr ""
"Le patron n'est pas enregistré. Voulez-vous l'enregistrer avant de le "
"remplacer par un nouveau ?"
-#: BraceletGenerator/bracelet.py:1352 BraceletGenerator/bracelet.py:1525
+#: BraceletGenerator/bracelet.py:1371 BraceletGenerator/bracelet.py:1544
msgid ""
"The pattern has not been saved. Do you want to save it before replacing it "
"by another one?"
@@ -252,39 +257,39 @@ msgstr ""
"Le patron n'est pas enregistré. Voulez-vous l'enregistrer avant de le "
"remplacer par un autre ?"
-#: BraceletGenerator/bracelet.py:1387 BraceletGenerator/bracelet.py:1390
-#: BraceletGenerator/bracelet.py:1414 BraceletGenerator/bracelet.py:1487
+#: BraceletGenerator/bracelet.py:1406 BraceletGenerator/bracelet.py:1409
+#: BraceletGenerator/bracelet.py:1433 BraceletGenerator/bracelet.py:1506
#: BraceletGenerator/bicolore.py:886 BraceletGenerator/bicolore.py:890
#: BraceletGenerator/bicolore.py:945 add_gs_to_path.py:53
msgid "Error"
msgstr "Erreur"
-#: BraceletGenerator/bracelet.py:1388
+#: BraceletGenerator/bracelet.py:1407
#, python-format
msgid "The file %(name)s is not a valid pattern file."
msgstr "%(name)s n'est pas un fichier de patron valide."
-#: BraceletGenerator/bracelet.py:1391 BraceletGenerator/bicolore.py:891
+#: BraceletGenerator/bracelet.py:1410 BraceletGenerator/bicolore.py:891
#, python-format
msgid "The file %(name)s does not exists."
msgstr "Le fichier %(name)s n'existe pas."
-#: BraceletGenerator/bracelet.py:1415
+#: BraceletGenerator/bracelet.py:1434
#, python-format
msgid "%(extension)s is not a valid extension for a pattern file."
msgstr ""
".%(extension)s n'est pas une extension valide pour un fichier de patron."
-#: BraceletGenerator/bracelet.py:1457 BraceletGenerator/bracelet.py:1503
+#: BraceletGenerator/bracelet.py:1476 BraceletGenerator/bracelet.py:1522
msgid "Export"
msgstr "Exporter"
-#: BraceletGenerator/bracelet.py:1488
+#: BraceletGenerator/bracelet.py:1507
#, python-format
msgid "The pattern cannot be exported in .%(extension)s"
msgstr "Le patron ne peut pas être exporté en .%(extension)s"
-#: BraceletGenerator/bracelet.py:1516
+#: BraceletGenerator/bracelet.py:1535
msgid ""
"0: forward knot, 1: backward knot, 2: backward forward, 3: forward backward\n"
"\n"
@@ -293,7 +298,7 @@ msgstr ""
"endroit/envers\n"
"\n"
-#: BraceletGenerator/bracelet.py:1517
+#: BraceletGenerator/bracelet.py:1536
#, python-brace-format
msgid ""
"strings: {string_nb}, rows: {row_nb}\n"
@@ -302,12 +307,12 @@ msgstr ""
"fils: {string_nb}, lignes: {row_nb}\n"
"\n"
-#: BraceletGenerator/bracelet.py:1572
+#: BraceletGenerator/bracelet.py:1591
msgid "The pattern has not been saved. Do you want to save it before closing?"
msgstr ""
"Le patron n'est pas enregistré. Voulez-vous l'enregistrer avant de quitter ?"
-#: BraceletGenerator/bracelet.py:1690
+#: BraceletGenerator/bracelet.py:1709
msgid "The language setting will take effect after restarting the application"
msgstr "Le changement de langue prendra effet au prochain démarrage."
diff --git a/setup.py b/setup.py
index b92d9e2..ca7f018 100755
--- a/setup.py
+++ b/setup.py
@@ -10,7 +10,7 @@
doc = ["BraceletGenerator/doc/doc_install_linux.html",
"BraceletGenerator/doc/doc_fr_install_linux.html",
"BraceletGenerator/doc/style.css"]
- doc.extend(["README.rst"])
+ doc.extend(["README.rst", "changelog"])
images = [os.path.join("BraceletGenerator", "images", f) for f in os.listdir("BraceletGenerator/images")]
examples = [os.path.join("examples", f) for f in os.listdir("examples")]
data_files = [("share/pixmaps", ["bracelet-generator.svg"]),
@@ -25,14 +25,14 @@
else:
files = ["images/*", "doc/doc.html", "doc/doc_fr.html", "doc/style.css", "locale/en_US/LC_MESSAGES/*", "locale/fr_FR/LC_MESSAGES/*"]
data_files = []
-
+
setup(name = "bracelet-generator",
- version = "1.4.0",
+ version = "1.4.1",
description = "Friendship bracelet pattern designer",
author = "Juliette Monsel",
author_email = "j_4321@protonmail.com",
url = "https://braceletgenerator.sourceforge.io/",
- license = "GNU General Public License v3",
+ license = "GPLv3",
packages = ['BraceletGenerator'],
package_data = {'BraceletGenerator' : files},
data_files = data_files,
@@ -41,7 +41,8 @@
It enables you to easily design your own patterns, add rows and strings, change the colors.
With the two-colored motif editor, create your motif and the pattern will automatically be generated.
The patterns can be exported in .png, .jpe, .ps and in text format.""",
- requires = ["PIL","tkinter","sys","os","pickle","locale","gettext"]
+ requires = ["PIL", "tkinter", "sys", "os", "pickle", "locale", "gettext",
+ "html", "threading", "urllib", "re"]
)