Skip to content

Commit

Permalink
tweak ui
Browse files Browse the repository at this point in the history
  • Loading branch information
D4SK committed May 6, 2023
1 parent fe2d1fa commit 32a3113
Show file tree
Hide file tree
Showing 6 changed files with 73 additions and 77 deletions.
2 changes: 1 addition & 1 deletion klippy/extras/usage.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
import logging

class Usage:
usage_path = os.path.expanduser('~/usage.json')
usage_path = os.path.expanduser('~/config/usage.json')

def __init__(self, config):
# TODO add total print time, up time, aborted prints, finished prints
Expand Down
2 changes: 1 addition & 1 deletion klippy/klippy.py
Original file line number Diff line number Diff line change
Expand Up @@ -272,7 +272,7 @@ def invoke_shutdown(self, msg):
return
logging.error("Transition to shutdown state: %s", msg)
self.in_shutdown_state = True
self.send_event("klippy:critical_error", "Error - Safety Shutdown activated", msg)
self.send_event("klippy:critical_error", "Error - Safety Shutdown", msg)
self._set_state("%s%s" % (msg, message_shutdown))
for cb in self.reactor.event_handlers.get("klippy:shutdown", []):
try:
Expand Down
17 changes: 3 additions & 14 deletions klippy/parallel_extras/kgui/kv/elements.kv
Original file line number Diff line number Diff line change
Expand Up @@ -438,17 +438,17 @@
width: self.height
pos_hint: {'center_x': 0.5, 'top': 1}
StateText:
pos: root.x + 2*p.padding, collision_state.top
pos: root.x + 2.5*p.padding, collision_state.top
width: root.width - 3*p.padding
id: print_time
state: 'transparent'
StateText:
pos: root.x + 2*p.padding, material_state.top
pos: root.x + 2.5*p.padding, material_state.top
width: root.width - 3*p.padding
id: collision_state
state: 'transparent'
StateText:
pos: root.x + 2*p.padding, root.center_y + dp(0)
pos: root.x + 2.5*p.padding, root.center_y + dp(0)
width: root.width - 3*p.padding
id: material_state
state: 'transparent'
Expand Down Expand Up @@ -570,17 +570,6 @@
size: self.width, self.height
pos: self.x, self.y
radius: (p.radius,)
Label:
size: root.size
pos: root.right + dp(22), root.y
text: ">" if root.problems & Problem.AMOUNT else "" if root.problems else ""
text_size: self.size
font_size: p.large_font + sp(7)
valign: 'middle'
halign: 'left'
color: p.yellow
size_hint: None, None
bold: True

<StateText>:
canvas:
Expand Down
102 changes: 54 additions & 48 deletions klippy/parallel_extras/kgui/kv/home.kv
Original file line number Diff line number Diff line change
Expand Up @@ -31,26 +31,26 @@
PrintProgressBar:
id: progress_bar
size_hint: None, None
size: p.screen_width - 2*p.h_padding + 2, p.progress_bar_height
pos: p.h_padding - 1, p.tab_height + p.padding
size: p.screen_width - 2*p.home_h_padding + 2, p.progress_bar_height
pos: p.home_h_padding - 1, p.tab_height + p.home_padding
Label:
text: app.print_time
size_hint: None, None
size: p.screen_width - 2*p.padding, p.normal_font
size: p.screen_width - 2*p.home_padding, p.normal_font
text_size: self.size
font_size: p.normal_font
x: p.h_padding - 2
x: p.home_h_padding - 2
top: progress_bar.y - dp(5)
color: (1,1,1,1)
halign: 'left'
valign: 'bottom'
Label:
text: app.print_done_time
size_hint: None, None
size: p.screen_width - 2*p.padding, p.normal_font
size: p.screen_width - 2*p.home_padding, p.normal_font
text_size: self.size
font_size: p.normal_font
x: p.h_padding - 2
x: p.home_h_padding - 2
top: progress_bar.y - dp(5) if app.print_state in ('printing', 'pausing', 'paused') else progress_bar.y + dp(12)
color: p.btn_disabled
halign: 'right'
Expand All @@ -59,8 +59,8 @@
on_release: Factory.StopPopup().open()
id: btn_stop
size: dp(118), dp(118)
center_y: progress_bar.top + p.padding + p.btn_stop/2
center_x: p.screen_width - p.btn_stop/2 - p.h_padding
center_y: progress_bar.top + p.home_padding + p.btn_stop/2
center_x: p.screen_width - p.btn_stop/2 - p.home_h_padding
BtnPlay:
on_release: app.reactor.cb(printer_cmd.send_resume)
size: btn_stop.size
Expand All @@ -72,9 +72,10 @@
y: btn_stop.y
right: btn_stop.x
BtnClear:
id: btn_clear
on_release: app.hide_print(); app.reactor.cb(printer_cmd.clear_buildplate)
y: p.padding + p.tab_height if self.enabled else p.mars
right: p.screen_width - p.h_padding
y: p.home_padding + p.tab_height if self.enabled else p.mars
x: p.home_h_padding
Label:
id: l_filename
text: app.print_title
Expand All @@ -83,8 +84,8 @@
size: dp(280), dp(134)
text_size: self.size
font_size: p.large_font
x: p.h_padding - dp(3)
center_y: btn_stop.center_y
x: p.home_h_padding - dp(3)
center_y: btn_stop.center_y + (p.home_padding if btn_clear.enabled else 0)
shorten: True
halign: 'left'
valign: 'middle'
Expand All @@ -110,10 +111,12 @@
heater_id: "extruder1"
on_release: Factory.ExtTempPopup(creator=self, val=app.temp).open()
large_value: f"{app.temp[self.heater_id][1]:3.0f}°C" if app.temp[self.heater_id][1] > 0 else "--"
small_value: f"{app.temp[self.heater_id][0]:3.0f}" if app.temp[self.heater_id][0] != 0 else "Off"
small_value:
f"{app.force[1]:.2f}N {app.moisture[1]:.0f}%" if app.print_state in ('printing', 'pausing', 'paused') else \
f"{app.temp[self.heater_id][0]:3.0f}" if app.temp[self.heater_id][0] != 0 else "Off"
red: app.temp[self.heater_id][1] > 50
right: temp_bed.right if app.extruder_count > 1 else p.mars
y: p.tab_height + p.progress_bar_height + 4*p.padding + p.btn_height + p.btn_stop
y: p.tab_height + p.progress_bar_height + 5*p.home_padding + p.btn_height + p.btn_stop
BtnTemp:
canvas:
Color:
Expand All @@ -127,10 +130,12 @@
heater_id: "extruder"
on_release: Factory.ExtTempPopup(creator=self, val=app.temp).open()
large_value: f"{app.temp[self.heater_id][1]:3.0f}°C" if app.temp[self.heater_id][1] > 0 else "--"
small_value: f"{app.temp[self.heater_id][0]:3.0f}" if app.temp[self.heater_id][0] != 0 else "Off"
small_value:
f"{app.force[0]:.2f}N {app.moisture[0]:.0f}%" if app.print_state in ('printing', 'pausing', 'paused') else \
f"{app.temp[self.heater_id][0]:3.0f}" if app.temp[self.heater_id][0] != 0 else "Off"
red: app.temp[self.heater_id][1] > 50
right: temp_bed.right
y: p.tab_height + p.padding*3 + p.progress_bar_height + p.btn_stop
y: p.tab_height + p.home_padding*4 + p.progress_bar_height + p.btn_stop
BtnTemp:
canvas:
Color:
Expand All @@ -144,8 +149,8 @@
large_value: f"{app.temp['heater_bed'][1]:3.0f}°C"
small_value: f"{app.temp['heater_bed'][0]:3.0f}" if app.temp['heater_bed'][0] != 0 else "Off"
red: app.temp['heater_bed'][1] > 50
x: p.h_padding
y: p.tab_height + p.progress_bar_height + 5*p.padding + 2*p.btn_height + p.btn_stop
x: p.home_h_padding
y: p.tab_height + p.progress_bar_height + 6*p.home_padding + 2*p.btn_height + p.btn_stop
BtnTemp:
canvas:
Color:
Expand All @@ -159,7 +164,7 @@
large_value: f"{app.chamber_temp[1]:3.0f}°C"
small_value: f"{app.chamber_fan_speed:3.0f}%" if app.chamber_fan_speed != 0 else "Off"
right: temp_bed.right
y: p.tab_height + p.progress_bar_height + 6*p.padding + 3*p.btn_height + p.btn_stop
y: p.tab_height + p.progress_bar_height + 7*p.home_padding + 3*p.btn_height + p.btn_stop

<HomeScreen@Screen>:
name: "homescreen"
Expand All @@ -170,21 +175,22 @@
rgba: p.translucent_panel
RoundedRectangle:
radius: (p.popup_radius,)
pos: self.x - p.padding/2, self.y - p.padding/2
size: self.width + p.padding, self.height + p.padding
pos: self.pos
size: self.size
id: material_box
orientation: 'vertical'
size_hint: None, None
size: p.btn_width, (p.btn_height + p.padding)*2 - p.padding
y: p.padding
right: p.screen_width - p.h_padding
spacing: p.padding
size: p.btn_width+2*p.material_padding, (p.material_height + p.material_padding)*2 + p.material_padding
y: p.home_padding*2+p.btn_height/2 - p.material_height/2 - p.material_padding
right: p.screen_width - p.home_h_padding
spacing: p.material_padding
padding: (p.material_padding, )
BtnMaterial:
gcode_id: 'T1'
tool_idx: 1
extruder_id: 'extruder1'
pos_hint: {} if app.extruder_count > 1 else {'x': p.mars}
size: p.btn_width, p.btn_height
size: p.btn_width, p.material_height
material:
self.material if not (app.material and len(app.material['loaded']) > self.tool_idx) \
else app.material['loaded'][self.tool_idx]
Expand All @@ -193,7 +199,7 @@
gcode_id: 'T0'
tool_idx: 0
extruder_id: 'extruder'
size: p.btn_width, p.btn_height
size: p.btn_width, p.material_height
material:
self.material if not (app.material and len(app.material['loaded']) > self.tool_idx) \
else app.material['loaded'][self.tool_idx]
Expand All @@ -206,42 +212,42 @@
on_release: Factory.FlowPopup(val=app.flow_factor).open()
large_value: f"{app.flow*pi*(app.filament_diameter/2)**2:3.0f}mm³/s"
small_value: "Material Flow"
right: p.screen_width - p.h_padding
right: p.screen_width - p.home_h_padding
center_y: z_offset.center_y + 4*p.btn_spacing
BtnTemp:
id: speed
on_release: Factory.SpeedPopup(val=app.speed_factor).open()
large_value: f"{app.speed:3.0f}mm/s"
small_value: "Print Speed"
right: p.screen_width - p.h_padding
right: p.screen_width - p.home_h_padding
center_y: z_offset.center_y + 3*p.btn_spacing
BtnTemp:
id: acceleration
on_release: Factory.AccPopup(val=app.acceleration_factor).open()
large_value: f"{app.acceleration:3.1f}m/s²"
small_value: "Acceleration"
right: p.screen_width - p.h_padding
right: p.screen_width - p.home_h_padding
center_y: z_offset.center_y + 2*p.btn_spacing
BtnTemp:
id: pressure_advance
on_release: Factory.PressureAdvancePopup(val=app.pressure_advance).open()
large_value: f"{app.pressure_advance:4.3f}s"
small_value: "Pressure Advance"
right: p.screen_width - p.h_padding
right: p.screen_width - p.home_h_padding
center_y: z_offset.center_y + p.btn_spacing
BtnTemp:
id: z_offset
on_release: Factory.ZOffsetPopup(val=app.z_offset).open()
large_value: f"{app.z_offset:3.2f}mm"
small_value: "Z Calibration"
right: p.screen_width - p.h_padding
center_y: p.padding + p.btn_height/2
small_value: "Z Offset"
right: p.screen_width - p.home_h_padding
center_y: 2*p.home_padding + p.btn_height/2
BtnTemp:
id: fan
on_release: Factory.FanPopup(val=app.fan_speed).open()
large_value: f"{app.fan_speed:3.0f}%"
small_value: "Print Cooling"
x: p.h_padding
small_value: "Part Cooling"
x: p.home_h_padding
center_y: flow.center_y

<PrintProgressBar@Widget>:
Expand Down Expand Up @@ -276,23 +282,23 @@
size: self.width + dp(40), self.height + dp(40)
pos: self.x - dp(20), self.y - dp(20)
Label:
color: p.red if root.red else (1,1,1,1) if root.enabled else p.btn_disabled
color: p.red if root.red else (1,1,1,0.7)
text: root.large_value
size_hint: None, None
size: root.width + dp(50), root.height
text_size: self.size
y: root.y + dp(6)
y: root.y
right: root.right
font_size: p.large_font - sp(2)
font_size: p.normal_font + sp(4)
valign: 'top'
halign: 'right'
Label:
color: p.btn_disabled
color: p.btn_temp
text: root.small_value
size_hint: None, None
size: root.width + dp(50), root.height
text_size: self.size
y: root.y - dp(2)
y: root.y
right: root.right
font_size: p.normal_font
valign: 'bottom'
Expand Down Expand Up @@ -345,20 +351,20 @@
<BtnClear@BaseButton>:
enabled: app.print_state in ('finished', 'aborted', 'queued')
text: " Confirm Print Removal"
size: dp(350), p.btn_height
size: dp(350), dp(85)
canvas:
Color:
rgba: p.green
Rectangle:
pos: self.x + self.height/2 - dp(25), self.center_y - dp(25)
size: dp(50)*p.disp_vertical_stretch, dp(50)
source: p.kgui_dir + "/logos/checkmark.png"
Color:
rgba: p.translucent_panel
RoundedRectangle:
radius: (p.popup_radius,)
pos: self.pos
size: self.size
Color:
rgba: p.green
Rectangle:
pos: self.x + self.height/2 - dp(25), self.center_y - dp(25)
size: dp(50)*p.disp_vertical_stretch, dp(50)
source: p.kgui_dir + "/logos/checkmark.png"
Color:
rgba: p.translucent_white if self.pressed and self.enabled else (0,0,0,0)
RoundedRectangle:
Expand Down
2 changes: 2 additions & 0 deletions klippy/parallel_extras/kgui/mainapp.py
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,8 @@ class MainApp(App, threading.Thread):
acceleration = NumericProperty(0)
acceleration_factor = NumericProperty(100)
pressure_advance = NumericProperty(0)
force = ListProperty([0,0])
moisture = ListProperty([0,0])
# Config
continuous_printing = BooleanProperty(False)
reposition = BooleanProperty(False)
Expand Down
25 changes: 12 additions & 13 deletions klippy/parallel_extras/kgui/parameters.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,27 +25,25 @@ def dp(val):
popup_radius = dp(16)
key_radius = dp(6)
status_bar_height = dp(31)
btn_height = dp(84)
btn_height = dp(78)
btn_stop = dp(65)
progress_bar_height = dp(10)
tab_height = dp(100)
title_bar_height = dp(110)
#generate even spacing based on all contents on homescreen
small_padding = dp(15)
btn_divider_padding = dp(8)
padding = (screen_height\
- status_bar_height\
- btn_height*6\
- btn_stop\
- progress_bar_height\
- tab_height)\
/7 # remaining space has to contain 7* padding
home_padding = dp(45)
material_padding = home_padding * 0.8
material_height = btn_height + home_padding - material_padding
home_h_padding = home_padding*disp_vertical_stretch
padding = dp(45)
h_padding = padding*disp_vertical_stretch
notification_padding = status_bar_height
notification_text_padding = dp(20)
btn_spacing = padding + btn_height
h_padding = padding*disp_vertical_stretch
btn_temp_width = dp(158)
btn_width = screen_width - 3.5*h_padding - btn_temp_width
btn_spacing = home_padding + btn_height
btn_temp_width = dp(165)
btn_width = screen_width - 3*home_h_padding - 2*material_padding - btn_temp_width

background = [0.05, 0.05, 0.05, 1]
notification_shadow = (0.065, 0.065, 0.065, 0.45)
Expand All @@ -56,7 +54,8 @@ def dp(val):
btn = (1, 1, 1, 0.08)
btn_outline = (1, 1, 1, 0.095)
btn_disabled = (1, 1, 1, 0.35)
nozzle = (1, 1, 1, 0.15)
nozzle = (1, 1, 1, 0.2)
btn_temp = (1, 1, 1, 0.38)

translucent_white = (1, 1, 1, 0.1)
translucent_panel = (1, 1, 1, 0.05)
Expand Down

0 comments on commit 32a3113

Please sign in to comment.