Skip to content

Commit e5275f9

Browse files
committed
Ajout message d'attente et logo sur l'app
1 parent 02325e6 commit e5275f9

5 files changed

Lines changed: 94 additions & 17 deletions

File tree

File renamed without changes.

Low-Fuel_win.spec

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
# -*- mode: python ; coding: utf-8 -*-
2+
from kivy_deps import sdl2, glew
3+
from kivy.tools.packaging.pyinstaller_hooks import get_deps_minimal, get_deps_all, hookspath, runtime_hooks
4+
import sys
5+
6+
sys.setrecursionlimit(sys.getrecursionlimit()*5)
7+
8+
block_cipher = None
9+
10+
11+
a = Analysis(
12+
['main.py'],
13+
pathex=[],
14+
binaries=[],
15+
datas=[('image','image'),('info.gouv','info.gouv'),('image\\marker.png', 'kivy_garden\\mapview\\icons\\')],
16+
hiddenimports=[],
17+
hookspath=[],
18+
hooksconfig={},
19+
runtime_hooks=[],
20+
excludes=[],
21+
win_no_prefer_redirects=False,
22+
win_private_assemblies=False,
23+
cipher=block_cipher,
24+
noarchive=False,
25+
)
26+
pyz = PYZ(a.pure, a.zipped_data, cipher=block_cipher)
27+
28+
exe = EXE(
29+
pyz,
30+
a.scripts,
31+
a.binaries,
32+
a.zipfiles,
33+
a.datas,
34+
*[Tree(p) for p in (sdl2.dep_bins + glew.dep_bins)],
35+
[],
36+
name='Low-Fuel',
37+
debug=False,
38+
bootloader_ignore_signals=False,
39+
strip=False,
40+
upx=True,
41+
upx_exclude=[],
42+
runtime_tmpdir='%TEMP%',
43+
console=False,
44+
disable_windowed_traceback=True,
45+
argv_emulation=False,
46+
target_arch=None,
47+
codesign_identity=None,
48+
entitlements_file=None,
49+
icon=['image\\petrol_pump.ico'],
50+
)

image/Logo_Bit-Scripts.gif

680 KB
Loading

main.py

Lines changed: 40 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -32,13 +32,24 @@
3232
from kivy.uix.button import Button
3333
from kivy.uix.textinput import TextInput
3434
from kivy.uix.dropdown import DropDown
35+
from kivy.uix.image import Image
3536
from kivy.resources import resource_add_path, resource_find
3637

3738
from my_kivy.create_uix import kivyUi
3839
from my_kivy.coloredlabel import ColoredLabel
3940
from domain.logic import colorHtmlToKivy
4041
from kivy.config import Config
4142
from kivy.app import App
43+
from kivy.clock import Clock
44+
45+
class MyImage(Image):
46+
frame_counter = 0
47+
frame_number = 36 # my example GIF had 36 frames
48+
49+
def on_texture(self, instance, value):
50+
if self.frame_counter == self.frame_number + 1:
51+
self.frame_counter = 0
52+
self.frame_counter += 1
4253

4354
class RootWidget(FloatLayout):
4455

@@ -75,7 +86,7 @@ def __init__(self, **kwargs):
7586

7687
self.addresse_label = ColoredLabel(text="Adresse Non trouvé", color=colorHtmlToKivy('#ffffff'), background_color=(0.34509803921568627,0.34509803921568627,0.34509803921568627,.65), size_hint=(.4,.2), pos_hint={'x': .3, 'y': .4})
7788
self.essence_label = ColoredLabel(text="Type d'essence non correct", color=colorHtmlToKivy('#ffffff'), background_color=(0.34509803921568627,0.34509803921568627,0.34509803921568627,.65), size_hint=(.4,.2), pos_hint={'x': .3, 'y': .4})
78-
89+
7990
self.fuel_DropDown = DropDown()
8091
self.btn_Gazole = Button(text='Gazole', size_hint_y=None, height=44)
8192
self.btn_Gazole.bind(on_release=lambda btn_Gazole: self.fuel_DropDown.select(self.btn_Gazole.text))
@@ -91,13 +102,10 @@ def __init__(self, **kwargs):
91102
self.btn_GPLc.bind(on_release=lambda btn_GPLc: self.fuel_DropDown.select(self.btn_GPLc.text))
92103
self.button_DropDown = Button(text="Carburant utilisé", size_hint=(.16666667, .15), pos_hint={'x': .66666667, 'y': .85})
93104
self.button_DropDown.bind(on_release=self.fuel_DropDown.open)
94-
self.fuel_DropDown.bind(on_select=lambda instance, x: setattr(self.button_DropDown, 'text', x))
95-
105+
self.fuel_DropDown.bind(on_select=lambda instance, x: setattr(self.button_DropDown, 'text', x))
96106
self.submitButton = Button(text="Mettre à jour", size_hint=(.16666667, .15), pos_hint={'x': .833333333, 'y': .85})
97-
self.submitButton.bind(on_press=lambda instance: self.updateMapView(self.street_entry.text, self.post_code_entry.text, self.city_entry.text, self.radius_entry.text, self.button_DropDown.text, self.addresse_label, self.essence_label))
98-
self.download_data_label = ColoredLabel(text="Récupération des données", color=(1,1,1,1), background_color=(0.34509803921568627,0.34509803921568627,0.34509803921568627,.65), size_hint=(.4,.2), pos_hint={'x': .3, 'y': .4})
99-
self.loading_label = ColoredLabel(text="Traitement des données", color=(1,1,1,1), background_color=(0.34509803921568627,0.34509803921568627,0.34509803921568627,.65), size_hint=(.4,.2), pos_hint={'x': .3, 'y': .4})
100-
107+
self.submitButton.bind(on_press=lambda instance: self.intermediate(self.street_entry.text, self.post_code_entry.text, self.city_entry.text, self.radius_entry.text, self.button_DropDown.text, self.addresse_label, self.essence_label))
108+
self.bit_scripts_logo = MyImage(source = "image/Logo_Bit-Scripts.gif", size_hint=(.1, .1), pos_hint={'x': .01, 'y': .01})
101109

102110
self.add_widget(self.submitButton)
103111
self.fuel_DropDown.add_widget(self.btn_Gazole)
@@ -115,6 +123,7 @@ def __init__(self, **kwargs):
115123
self.add_widget(self.city_entry)
116124
self.add_widget(self.radius_label)
117125
self.add_widget(self.radius_entry)
126+
self.add_widget(self.bit_scripts_logo)
118127
self.locator = Nominatim(user_agent="low-fuel")
119128

120129
def on_text(self, instance, value):
@@ -130,20 +139,27 @@ def on_text_(self, instance, value):
130139
else:
131140
self.city_entry.text = ''
132141

133-
def updateMapView(self, street_entry, post_code_entry, city_entry, radius_entry, fuel_entry, addresse_label, essence_label):
142+
def intermediate(self, street_entry, post_code_entry, city_entry, radius_entry, button_DropDown, addresse_label, essence_label):
143+
self.download_data_label = ColoredLabel(text="Récupération des données", color=(1,1,1,1), background_color=(0.34509803921568627,0.34509803921568627,0.34509803921568627,.65), size_hint=(.4,.2), pos_hint={'x': .3, 'y': .4})
144+
self.loading_label = ColoredLabel(text="Traitement des données", color=(1,1,1,1), background_color=(0.34509803921568627,0.34509803921568627,0.34509803921568627,.65), size_hint=(.4,.2), pos_hint={'x': .3, 'y': .4})
145+
self.add_widget(self.download_data_label)
146+
Clock.schedule_once(lambda dt: self.next_intermediate(street_entry, post_code_entry, city_entry, radius_entry, button_DropDown, addresse_label, essence_label), 0)
147+
148+
149+
def next_intermediate(self, street_entry, post_code_entry, city_entry, radius_entry, fuel_entry, addresse_label, essence_label):
134150
self.remove_widget(self.addresse_label)
135151
self.remove_widget(self.essence_label)
152+
Clock.schedule_once(lambda dt: self.next_update(street_entry, post_code_entry, city_entry, radius_entry, fuel_entry, addresse_label, essence_label), 0)
136153

137-
self.add_widget(self.download_data_label)
138-
154+
def next_update(self, street_entry, post_code_entry, city_entry, radius_entry, fuel_entry, addresse_label, essence_label):
139155
self.street_entry_post = street_entry
140156
self.post_code_entry_post = post_code_entry
141157
self.city_entry_post = city_entry
142158
self.radius_entry_post = radius_entry
143159
self.fuel_entry_post = fuel_entry
144-
self.addresse_label_post = addresse_label
145-
self.essence_label_post = essence_label
146-
160+
self.addresse_label = addresse_label
161+
self.essence_label = essence_label
162+
147163
self.points = []
148164

149165
self.address=f'{self.street_entry_post} {self.post_code_entry_post} {self.city_entry_post}'
@@ -158,7 +174,7 @@ def updateMapView(self, street_entry, post_code_entry, city_entry, radius_entry,
158174
else:
159175
for c in list(self.children):
160176
if c == self.addresse_label: self.remove_widget(self.addresse_label)
161-
if self.fuel_entry_post != 'Gazole' and self.fuel_entry_post != 'SP98' and self.fuel_entry_post != 'SP95' and self.fuel_entry_post!= 'GPLc' and self.fuel_entry_post != 'E10' and self.fuel_entry_post != 'E85':
177+
if self.fuel_entry_post != 'Gazole' and self.fuel_entry_post != 'SP98' and self.fuel_entry_post != 'SP95' and self.fuel_entry_post != 'GPLc' and self.fuel_entry_post != 'E10' and self.fuel_entry_post != 'E85':
162178
self.remove_widget(self.download_data_label)
163179
self.add_widget(self.essence_label)
164180
return None
@@ -181,9 +197,16 @@ def updateMapView(self, street_entry, post_code_entry, city_entry, radius_entry,
181197
self.path_of_file : str = 'info.gouv/prix-carburants.json'
182198
# TODO ajout irve : https://public.opendatasoft.com/api/records/1.0/search/?dataset=fichier-consolide-des-bornes-de-recharge-pour-vehicules-electriques-irve&q=&lang=fr&rows=20&facet=n_enseigne&facet=nbre_pdc&facet=puiss_max&facet=accessibilite&facet=nom_epci&facet=commune&facet=nom_reg&facet=nom_dep&geofilter.distance=47.439%2C+0.699%2C+5000
183199
self.remove_widget(self.download_data_label)
184-
200+
Clock.schedule_once(lambda dt: self.near_updateMapView(self.street_entry_post, self.post_code_entry_post, self.city_entry_post), 0)
201+
202+
def near_updateMapView(self, street_entry, post_code_entry, city_entry):
185203
self.add_widget(self.loading_label)
204+
Clock.schedule_once(lambda dt: self.updateMapView(street_entry, post_code_entry, city_entry), 0)
186205

206+
def updateMapView(self, street_entry, post_code_entry, city_entry):
207+
self.street_entry_post = street_entry
208+
self.post_code_entry_post = post_code_entry
209+
self.city_entry_post = city_entry
187210
self.parsejson = ParseJson(self.url_data, self.path_of_file, self.user_address)
188211

189212
self.my_sell_points: List[SellPoint] = self.parsejson.station_list()
@@ -247,7 +270,9 @@ def updateMapView(self, street_entry, post_code_entry, city_entry, radius_entry,
247270
self.points.append((self.sellpoint.address[3], self.sellpoint.address[4], self.data_text, self.color))
248271

249272
self.remove_widget(self.loading_label)
273+
Clock.schedule_once(lambda dt: self.end_of_update_mapview(), 0)
250274

275+
def end_of_update_mapview(self):
251276
kivy = kivyUi(self.points, self, self.mapview)
252277
kivy.createMarkerPopup(self.points)
253278
kivy.newLat = self.location[0]

requirements.txt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,13 @@ pillow
1010
pyinstaller
1111
requests
1212
kivy
13+
kivy.clock
1314
kivy-garden
1415
kivy_garden
1516
kivy-garden.mapview
1617
kivy_garden.mapview
1718
kivy_garden.graph
1819
requests
19-
typing
20-
pgeocode
20+
pgeocode
21+
wheel
22+
setuptools

0 commit comments

Comments
 (0)