@@ -312,16 +312,41 @@ Item
312312
313313 flags: Qt .Tool | Qt .WindowTitleHint ;
314314
315+ function boolCheck (value ) // Hack to ensure a good match between python and qml.
316+ {
317+ if (value == " True" )
318+ {
319+ return true
320+ }else if (value == " False" || value == undefined )
321+ {
322+ return false
323+ }
324+ else
325+ {
326+ return value
327+ }
328+ }
329+
315330 minimumWidth: UM .Theme .getSize (" print_setup_widget" ).width
316331 maximumWidth: minimumWidth
317332 width: minimumWidth
318333
319334 minimumHeight: Math .floor (1.5 * minimumWidth)
320- height: UM .Preferences .getValue (" sidebargui/settings_window_height" ) != 0 ? UM .Preferences .getValue (" sidebargui/settings_window_left " ) : minimumHeight
335+ height: UM .Preferences .getValue (" sidebargui/settings_window_height" ) != 0 ? UM .Preferences .getValue (" sidebargui/settings_window_height " ) : minimumHeight
321336 onHeightChanged: UM .Preferences .setValue (" sidebargui/settings_window_height" , height)
322337
323- x: UM .Preferences .getValue (" sidebargui/settings_window_left" ) != 65535 ? UM .Preferences .getValue (" sidebargui/settings_window_left" ) : undefined
324- y: UM .Preferences .getValue (" sidebargui/settings_window_top" ) != 65535 ? UM .Preferences .getValue (" sidebargui/settings_window_top" ) : undefined
338+ x:
339+ {
340+ if (UM .Preferences .getValue (" sidebargui/settings_window_left" ) != 65535 && boolCheck (UM .Preferences .getValue (" general/restore_window_geometry" )))
341+ return UM .Preferences .getValue (" sidebargui/settings_window_left" )
342+ return base .x + base .width - sidebarToolWindow .width + UM .Theme .getSize (" wide_margin" ).width
343+ }
344+ y:
345+ {
346+ if (UM .Preferences .getValue (" sidebargui/settings_window_top" ) != 65535 && boolCheck (UM .Preferences .getValue (" general/restore_window_geometry" )))
347+ return UM .Preferences .getValue (" sidebargui/settings_window_top" )
348+ return base .y + UM .Theme .getSize (" wide_margin" ).width
349+ }
325350 onXChanged: UM .Preferences .setValue (" sidebargui/settings_window_left" , x)
326351 onYChanged: UM .Preferences .setValue (" sidebargui/settings_window_top" , y)
327352
@@ -342,6 +367,11 @@ Item
342367 {
343368 if (visible)
344369 {
370+ if (! Cura .SidebarGUIPlugin .checkRectangleOnScreen (Qt .rect (sidebarToolWindow .x , sidebarToolWindow .y , sidebarToolWindow .width , sidebarToolWindow .height )))
371+ {
372+ sidebarToolWindow .x = base .x + base .width - sidebarToolWindow .width + UM .Theme .getSize (" wide_margin" ).width
373+ sidebarToolWindow .y = base .y + UM .Theme .getSize (" wide_margin" ).width
374+ }
345375 printSetupWindow .children = [sidebarContents]
346376 printSetupTooltip .visible = false // hide vestigial tooltip in main window
347377 }
0 commit comments