From: Daid Date: Fri, 24 Feb 2012 21:37:53 +0000 (+0100) Subject: Fixed some windows UI bugs X-Git-Tag: RC1~152 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=85e67e9851aa303752a9d9989832aac2fa5beb4c;p=cura.git Fixed some windows UI bugs Set some defaults for settings Fixed start/end swap (oops) Fixed rounding error (again) --- diff --git a/SkeinPyPy_NewUI/fabmetheus_utilities/settings.py b/SkeinPyPy_NewUI/fabmetheus_utilities/settings.py index ccae2dca..75dfcb78 100644 --- a/SkeinPyPy_NewUI/fabmetheus_utilities/settings.py +++ b/SkeinPyPy_NewUI/fabmetheus_utilities/settings.py @@ -53,8 +53,7 @@ def calculateShells(setting): def calculateSolidLayerCount(setting): layerHeight = float(getSetting('layer_height')) solidThickness = float(getSetting('solid_layer_thickness')) - ret = int(math.ceil(solidThickness / layerHeight)) - print "calculateSolidLayerCount: " + str(ret) + " " + str(solidThickness / layerHeight) + ret = int(math.ceil(solidThickness / layerHeight - 0.0001)) return ret def getSkeinPyPyProfileInformation(): @@ -152,7 +151,7 @@ def getSkeinPyPyProfileInformation(): 'Perimeter_Flow_Rate_Multiplier_ratio': defaultSetting, 'Travel_Feed_Rate_mm/s': storedSetting("travel_speed"), },'temperature': { - 'Activate_Temperature': defaultSetting, + 'Activate_Temperature': "False", 'Cooling_Rate_Celcius/second': defaultSetting, 'Heating_Rate_Celcius/second': defaultSetting, 'Base_Temperature_Celcius': defaultSetting, @@ -163,7 +162,7 @@ def getSkeinPyPyProfileInformation(): 'Support_Layers_Temperature_Celcius': defaultSetting, 'Supported_Layers_Temperature_Celcius': defaultSetting, },'raft': { - 'Activate_Raft': defaultSetting, + 'Activate_Raft': "False", 'Add_Raft,_Elevate_Nozzle,_Orbit': defaultSetting, 'Base_Feed_Rate_Multiplier_ratio': defaultSetting, 'Base_Flow_Rate_Multiplier_ratio': defaultSetting, @@ -208,18 +207,18 @@ def getSkeinPyPyProfileInformation(): 'Maximum_Tower_Height_layers': defaultSetting, 'Tower_Start_Layer_integer': defaultSetting, },'jitter': { - 'Activate_Jitter': defaultSetting, + 'Activate_Jitter': "False", 'Jitter_Over_Perimeter_Width_ratio': defaultSetting, },'clip': { - 'Activate_Clip': defaultSetting, + 'Activate_Clip': "False", 'Clip_Over_Perimeter_Width_ratio': defaultSetting, 'Maximum_Connection_Distance_Over_Perimeter_Width_ratio': defaultSetting, },'smooth': { - 'Activate_Smooth': defaultSetting, + 'Activate_Smooth': "False", 'Layers_From_index': defaultSetting, 'Maximum_Shortening_over_Width_float': defaultSetting, },'stretch': { - 'Activate_Stretch': defaultSetting, + 'Activate_Stretch': "False", 'Cross_Limit_Distance_Over_Perimeter_Width_ratio': defaultSetting, 'Loop_Stretch_Over_Perimeter_Width_ratio': defaultSetting, 'Path_Stretch_Over_Perimeter_Width_ratio': defaultSetting, @@ -227,17 +226,17 @@ def getSkeinPyPyProfileInformation(): 'Perimeter_Outside_Stretch_Over_Perimeter_Width_ratio': defaultSetting, 'Stretch_From_Distance_Over_Perimeter_Width_ratio': defaultSetting, },'skin': { - 'Activate_Skin': defaultSetting, + 'Activate_Skin': "False", 'Horizontal_Infill_Divisions_integer': defaultSetting, 'Horizontal_Perimeter_Divisions_integer': defaultSetting, 'Vertical_Divisions_integer': defaultSetting, 'Hop_When_Extruding_Infill': defaultSetting, 'Layers_From_index': defaultSetting, },'comb': { - 'Activate_Comb': defaultSetting, + 'Activate_Comb': "True", 'Running_Jump_Space_mm': defaultSetting, },'cool': { - 'Activate_Cool': defaultSetting, + 'Activate_Cool': "True", 'Bridge_Cool_Celcius': defaultSetting, 'Cool_Type': defaultSetting, 'Maximum_Cool_Celcius': defaultSetting, @@ -296,7 +295,7 @@ def getSkeinPyPyProfileInformation(): 'X_Backlash_mm': defaultSetting, 'Y_Backlash_mm': defaultSetting, },'fillet': { - 'Activate_Fillet': defaultSetting, + 'Activate_Fillet': "False", 'Arc_Point': defaultSetting, 'Arc_Radius': defaultSetting, 'Arc_Segment': defaultSetting, @@ -306,28 +305,28 @@ def getSkeinPyPyProfileInformation(): 'Reversal_Slowdown_Distance_over_Perimeter_Width_ratio': defaultSetting, 'Use_Intermediate_Feed_Rate_in_Corners': defaultSetting, },'limit': { - 'Activate_Limit': defaultSetting, + 'Activate_Limit': "False", 'Maximum_Initial_Feed_Rate_mm/s': defaultSetting, },'unpause': { - 'Activate_Unpause': defaultSetting, + 'Activate_Unpause': "False", 'Delay_milliseconds': defaultSetting, 'Maximum_Speed_ratio': defaultSetting, },'dimension': { 'Activate_Dimension': "True", 'Absolute_Extrusion_Distance': "True", 'Relative_Extrusion_Distance': "False", - 'Extruder_Retraction_Speed_mm/s': defaultSetting, - 'Filament_Diameter_mm': defaultSetting, - 'Filament_Packing_Density_ratio': defaultSetting, + 'Extruder_Retraction_Speed_mm/s': storedSetting('retraction_speed'), + 'Filament_Diameter_mm': storedSetting("filament_diameter"), + 'Filament_Packing_Density_ratio': storedSetting("filament_density"), 'Maximum_E_Value_before_Reset_float': defaultSetting, - 'Minimum_Travel_for_Retraction_millimeters': defaultSetting, + 'Minimum_Travel_for_Retraction_millimeters': storedSetting("retraction_min_travel"), 'Retract_Within_Island': defaultSetting, - 'Retraction_Distance_millimeters': defaultSetting, - 'Restart_Extra_Distance_millimeters': defaultSetting, + 'Retraction_Distance_millimeters': storedSetting('retraction_amount'), + 'Restart_Extra_Distance_millimeters': storedSetting('retraction_extra'), },'alteration': { - 'Activate_Alteration': defaultSetting, - 'Name_of_End_File': "start.gcode", - 'Name_of_Start_File': "end.gcode", + 'Activate_Alteration': "True", + 'Name_of_End_File': "end.gcode", + 'Name_of_Start_File': "start.gcode", 'Remove_Redundant_Mcode': "True", 'Replace_Variable_with_Setting': defaultSetting, },'export': { diff --git a/SkeinPyPy_NewUI/newui/alterationPanel.py b/SkeinPyPy_NewUI/newui/alterationPanel.py index d2dfcaf5..509e5163 100644 --- a/SkeinPyPy_NewUI/newui/alterationPanel.py +++ b/SkeinPyPy_NewUI/newui/alterationPanel.py @@ -34,6 +34,6 @@ class alterationPanel(wx.Panel): def OnFocusLost(self, e): filename = os.path.join(archive.getSkeinforgePath('alterations'), self.alterationFileList[self.list.GetSelection()]) - f = open(filename, "w") + f = open(filename, "wb") f.write(self.textArea.GetValue()) f.close() diff --git a/SkeinPyPy_NewUI/newui/mainWindow.py b/SkeinPyPy_NewUI/newui/mainWindow.py index bee82589..7953f9c6 100644 --- a/SkeinPyPy_NewUI/newui/mainWindow.py +++ b/SkeinPyPy_NewUI/newui/mainWindow.py @@ -1,7 +1,7 @@ from __future__ import absolute_import import __init__ -import wx, os +import wx, os, platform from fabmetheus_utilities import settings @@ -54,15 +54,15 @@ class mainWindow(wx.Frame): validators.wallThicknessValidator(c) TitleRow(left, "Fill") - c = SettingRow(left, "Bottom/Top thickness (mm)", 'solid_layer_thickness', '0.6', 'This controls the thickness of the bottom and top layers, the amount of solid layers put down is calculated by the layer thickness and this value.') + c = SettingRow(left, "Bottom/Top thickness (mm)", 'solid_layer_thickness', '0.6', 'This controls the thickness of the bottom and top layers, the amount of solid layers put down is calculated by the layer thickness and this value.\nHaving this value a multiply of the layer thickness makes sense. And keep it near your wall thickness to make an evenly strong part.') validators.validFloat(c, 0.0) c = SettingRow(left, "Fill Density (%)", 'fill_density', '20', 'This controls how densily filled the insides of your print will be. For a solid part use 100%, for an empty part use 0%. A value around 20% is usually enough') validators.validFloat(c, 0.0, 100.0) TitleRow(left, "Skirt") - c = SettingRow(left, "Line count", 'skirt_line_count', '1') + c = SettingRow(left, "Line count", 'skirt_line_count', '1', 'The skirt is a line drawn around the object at the first layer. This helps to prime your extruder, and to see if the object fits on your platform.\nSetting this to 0 will disable the skirt.') validators.validInt(c, 0, 10) - c = SettingRow(left, "Start distance (mm)", 'skirt_gap', '6.0') + c = SettingRow(left, "Start distance (mm)", 'skirt_gap', '6.0', 'The distance between the skirt and the first layer.\nThis is the minimal distance, multiple skirt lines will be put outwards from this distance.') validators.validFloat(c, 0.0) TitleRow(right, "Cool") @@ -73,9 +73,9 @@ class mainWindow(wx.Frame): (left, right) = self.CreateConfigTab(nb, 'Machine && Filament') TitleRow(left, "Machine size") - c = SettingRow(left, "Machine center X (mm)", 'machine_center_x', '100') + c = SettingRow(left, "Machine center X (mm)", 'machine_center_x', '100', 'The center of your machine, your print will be placed at this location') validators.validInt(c, 10) - c = SettingRow(left, "Machine center Y (mm)", 'machine_center_y', '100') + c = SettingRow(left, "Machine center Y (mm)", 'machine_center_y', '100', 'The center of your machine, your print will be placed at this location') validators.validInt(c, 10) #self.AddSetting(left, "Width (mm)", settings.IntSpin().getFromValue(10, "machine_width", None, 1000, 205)) #self.AddSetting(left, "Depth (mm)", settings.IntSpin().getFromValue(10, "machine_depth", None, 1000, 205)) @@ -139,7 +139,7 @@ class mainWindow(wx.Frame): self.popup.SetBackgroundColour(wx.SystemSettings.GetColour(wx.SYS_COLOUR_INFOBK)) self.popup.text = wx.StaticText(self.popup, -1, ''); self.popup.sizer = wx.BoxSizer() - self.popup.sizer.Add(self.popup.text, flag=wx.EXPAND) + self.popup.sizer.Add(self.popup.text, flag=wx.EXPAND|wx.ALL, border=1) self.popup.SetSizer(self.popup.sizer) @@ -174,6 +174,11 @@ class mainWindow(wx.Frame): else: self.popup.text.SetLabel(setting.helpText) self.popup.text.Wrap(350) + if platform.system() == "Windows": + #for some reason, under windows, the popup is relative to the main window... + wx, wy = self.ClientToScreenXY(0, 0) + x -= wx + y -= wy self.popup.SetPosition((x, y+sy)) self.popup.Fit() self.popup.Show(True) @@ -317,6 +322,7 @@ class SettingRow(): self.ctrl.SetBackgroundColour('Yellow') else: self.ctrl.SetBackgroundColour(wx.NullColour) + self.ctrl.Refresh() settings.putSetting(self.configName, self.GetValue()) self.validationMsg = '\n'.join(msgs)