chiark / gitweb /
Fixing problem for #282
[cura.git] / Cura / gui / mainWindow.py
index 61b88f85e39e9018a01df7a2cbead8920bb05333..75fd9dac6cc7e762bc1f1d0f4a31d786390221c6 100644 (file)
@@ -110,16 +110,6 @@ class mainWindow(wx.Frame):
                self.menubar.Append(self.fileMenu, '&' + _("File"))
 
                toolsMenu = wx.Menu()
-
-               i = toolsMenu.Append(-1, _("Switch to quickprint..."))
-               self.switchToQuickprintMenuItem = i
-               self.Bind(wx.EVT_MENU, self.OnSimpleSwitch, i)
-
-               i = toolsMenu.Append(-1, _("Switch to full settings..."))
-               self.switchToNormalMenuItem = i
-               self.Bind(wx.EVT_MENU, self.OnNormalSwitch, i)
-
-               #toolsMenu.AppendSeparator()
                #i = toolsMenu.Append(-1, 'Batch run...')
                #self.Bind(wx.EVT_MENU, self.OnBatchRun, i)
                #self.normalModeOnlyItems.append(i)
@@ -143,6 +133,15 @@ class mainWindow(wx.Frame):
                self.menubar.Append(self.machineMenu, _("Machine"))
 
                expertMenu = wx.Menu()
+               i = expertMenu.Append(-1, _("Switch to quickprint..."), kind=wx.ITEM_RADIO)
+               self.switchToQuickprintMenuItem = i
+               self.Bind(wx.EVT_MENU, self.OnSimpleSwitch, i)
+
+               i = expertMenu.Append(-1, _("Switch to full settings..."), kind=wx.ITEM_RADIO)
+               self.switchToNormalMenuItem = i
+               self.Bind(wx.EVT_MENU, self.OnNormalSwitch, i)
+               expertMenu.AppendSeparator()
+
                i = expertMenu.Append(-1, _("Open expert settings..."))
                self.normalModeOnlyItems.append(i)
                self.Bind(wx.EVT_MENU, self.OnExpertOpen, i)
@@ -285,8 +284,10 @@ class mainWindow(wx.Frame):
 
                for i in self.normalModeOnlyItems:
                        i.Enable(not isSimple)
-               self.switchToQuickprintMenuItem.Enable(not isSimple)
-               self.switchToNormalMenuItem.Enable(isSimple)
+               if isSimple:
+                       self.switchToQuickprintMenuItem.Check()
+               else:
+                       self.switchToNormalMenuItem.Check()
 
                # Set splitter sash position & size
                if isSimple:
@@ -303,12 +304,14 @@ class mainWindow(wx.Frame):
                        self.splitter.SetSashPosition(self.normalSashPos, True)
                        # Enabled sash
                        self.splitter.SetSashSize(4)
+               self.defaultFirmwareInstallMenuItem.Enable(firmwareInstall.getDefaultFirmware() is not None)
                self.scene.updateProfileToControls()
 
        def OnPreferences(self, e):
                prefDialog = preferencesDialog.preferencesDialog(self)
                prefDialog.Centre()
                prefDialog.Show()
+               wx.CallAfter(prefDialog.Show)
 
        def OnMachineSettings(self, e):
                prefDialog = preferencesDialog.machineSettingsDialog(self)
@@ -382,10 +385,10 @@ class mainWindow(wx.Frame):
 
                #Add a menu item for each machine configuration.
                for n in xrange(0, profile.getMachineCount()):
-                       i = self.machineMenu.Append(n, profile.getMachineSetting('machine_name', n).title(), kind=wx.ITEM_RADIO)
+                       i = self.machineMenu.Append(n + 0x1000, profile.getMachineSetting('machine_name', n).title(), kind=wx.ITEM_RADIO)
                        if n == int(profile.getPreferenceFloat('active_machine')):
                                i.Check(True)
-                       self.Bind(wx.EVT_MENU, lambda e: self.OnSelectMachine(e.GetId()), i)
+                       self.Bind(wx.EVT_MENU, lambda e: self.OnSelectMachine(e.GetId() - 0x1000), i)
 
                self.machineMenu.AppendSeparator()
                i = self.machineMenu.Append(-1, _("Add new machine..."))
@@ -393,10 +396,11 @@ class mainWindow(wx.Frame):
 
                #Add tools for machines.
                self.machineMenu.AppendSeparator()
-               i = self.machineMenu.Append(-1, _("Install custom firmware"))
+               i = self.machineMenu.Append(-1, _("Install custom firmware..."))
                self.Bind(wx.EVT_MENU, self.OnCustomFirmware, i)
-               i = self.machineMenu.Append(-1, _("Install default Marlin firmware"))
-               self.Bind(wx.EVT_MENU, self.OnDefaultMarlinFirmware, i)
+
+               self.defaultFirmwareInstallMenuItem = self.machineMenu.Append(-1, _("Install default Marlin firmware..."))
+               self.Bind(wx.EVT_MENU, self.OnDefaultMarlinFirmware, self.defaultFirmwareInstallMenuItem)
 
        def OnLoadProfile(self, e):
                dlg=wx.FileDialog(self, _("Select profile file to load"), os.path.split(profile.getPreference('lastFile'))[0], style=wx.FD_OPEN|wx.FD_FILE_MUST_EXIST)
@@ -579,10 +583,7 @@ class normalSettingsPanel(configBase.configPanelBase):
 
                #Plugin page
                self.pluginPanel = pluginPanel.pluginPanel(self.nb, callback)
-               if len(self.pluginPanel.pluginList) > 0:
-                       self.nb.AddPage(self.pluginPanel, _("Plugins"))
-               else:
-                       self.pluginPanel.Show(False)
+               self.nb.AddPage(self.pluginPanel, _("Plugins"))
 
                #Alteration page
                if profile.getMachineSetting('gcode_flavor') == 'UltiGCode':