impuve UI to all screens
This commit is contained in:
39
main.py
39
main.py
@@ -18,6 +18,8 @@ from kivy.uix.label import Label
|
||||
from kivy.uix.boxlayout import BoxLayout
|
||||
from threading import Thread
|
||||
from kivy.clock import mainthread
|
||||
from kivy.uix.image import Image
|
||||
from kivy.uix.behaviors import ButtonBehavior
|
||||
|
||||
kivy.require("2.0.0")
|
||||
from kivy.core.window import Window
|
||||
@@ -346,7 +348,7 @@ class GetTripFromServer(Screen):
|
||||
"""Handle the Get trip server data button press."""
|
||||
selected_device = self.ids.devices_spinner.text
|
||||
start_date = self.ids.start_date_picker_button.text
|
||||
end_date = self.ids.end_date_picker_button.text
|
||||
end_date = self.ids.end_date_picker.text
|
||||
|
||||
if selected_device == "Loading devices..." or selected_device == "No devices found":
|
||||
print("No valid device selected.")
|
||||
@@ -484,18 +486,24 @@ class HomeScreen(Screen):
|
||||
row = BoxLayout(
|
||||
orientation="horizontal",
|
||||
size_hint_y=None,
|
||||
height=38,
|
||||
height=44,
|
||||
spacing=6,
|
||||
padding=(8, 4)
|
||||
padding=(8, 6)
|
||||
)
|
||||
from kivy.graphics import Color, Rectangle
|
||||
from kivy.graphics import Color, Line, RoundedRectangle
|
||||
with row.canvas.before:
|
||||
Color(0.11, 0.10, 0.15, 1) # Match app background
|
||||
row.bg_rect = Rectangle(pos=row.pos, size=row.size)
|
||||
def update_bg_rect(instance, value):
|
||||
row.bg_rect.pos = row.pos
|
||||
row.bg_rect.size = row.size
|
||||
row.bind(pos=update_bg_rect, size=update_bg_rect)
|
||||
Color(0.11, 0.10, 0.15, 1)
|
||||
row.bg_rect = RoundedRectangle(pos=row.pos, size=row.size, radius=[6])
|
||||
Color(0.341, 0.235, 0.980, 1)
|
||||
row.border_line = Line(rounded_rectangle=[row.x, row.y, row.width, row.height, 6], width=1)
|
||||
# Use a closure to bind the correct row instance
|
||||
def make_update_bg_rect(r):
|
||||
def update_bg_rect(instance, value):
|
||||
r.bg_rect.pos = r.pos
|
||||
r.bg_rect.size = r.size
|
||||
r.border_line.rounded_rectangle = [r.x, r.y, r.width, r.height, 6]
|
||||
return update_bg_rect
|
||||
row.bind(pos=make_update_bg_rect(row), size=make_update_bg_rect(row))
|
||||
|
||||
project_label = Label(
|
||||
text=project,
|
||||
@@ -506,13 +514,6 @@ class HomeScreen(Screen):
|
||||
shorten_from='right'
|
||||
)
|
||||
|
||||
# Edit icon button
|
||||
from kivy.uix.image import Image
|
||||
from kivy.uix.behaviors import ButtonBehavior
|
||||
|
||||
class IconButton(ButtonBehavior, Image):
|
||||
pass
|
||||
|
||||
edit_button = IconButton(
|
||||
source="resources/images/edit.png",
|
||||
size_hint_x=0.18,
|
||||
@@ -521,7 +522,6 @@ class HomeScreen(Screen):
|
||||
)
|
||||
edit_button.bind(on_press=lambda instance, p=project: self.edit_project(p))
|
||||
|
||||
# Delete icon button
|
||||
delete_button = IconButton(
|
||||
source="resources/images/delete.png",
|
||||
size_hint_x=0.18,
|
||||
@@ -600,6 +600,9 @@ class HomeScreen(Screen):
|
||||
# Optionally, delete the project folder after archiving
|
||||
self.delete_project(project_name)
|
||||
|
||||
class IconButton(ButtonBehavior, Image):
|
||||
pass
|
||||
|
||||
class TraccarApp(App):
|
||||
def build(self):
|
||||
if not os.path.exists(RESOURCES_FOLDER):
|
||||
|
||||
Reference in New Issue
Block a user