The branch, twofactorauth has been updated via c7f21295a90c5ad7d53a00359ef35186403d2fb2 (commit) from d444350f168b5ad8dd5d49338d1cb14873738478 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: pyhoca/wxgui/printingprefs.py | 133 +++++++++++++++++++++++++++++++++++++---- 1 file changed, 122 insertions(+), 11 deletions(-) The diff of changes is: diff --git a/pyhoca/wxgui/printingprefs.py b/pyhoca/wxgui/printingprefs.py index c4724bf..d5ff9c9 100644 --- a/pyhoca/wxgui/printingprefs.py +++ b/pyhoca/wxgui/printingprefs.py @@ -49,14 +49,14 @@ class PyHocaGUI_PrintingPreferences(wx.Dialog): wx.Dialog.__init__(self, None, -1, style=wx.DEFAULT_DIALOG_STYLE, ) self._availablePrintActions = { - 'PDFVIEW': _(u'Open with PDF Viewer'), + 'PDFVIEW': _(u'Open with PDF viewer'), 'PDFSAVE': _(u'Save to a local folder'), - 'PRINT': _(u'Print to a local Printer'), - 'PRINTCMD': _(u'Run Custom Print Command'), - 'DIALOG': _(u'Open this Dialog Window'), + 'PRINT': _(u'Print to a local printer'), + 'PRINTCMD': _(u'Run custom print command'), + 'DIALOG': _(u'Open this dialog window'), } if self.mode != 'edit': - self._availablePrintActions['DIALOG'] = _(u'<Select a Print Action here>') + self._availablePrintActions['DIALOG'] = _(u'<Select a print action here>') self.client_printing = self._PyHocaGUI.client_printing @@ -69,6 +69,33 @@ class PyHocaGUI_PrintingPreferences(wx.Dialog): self.PrintActionLabel = wx.StaticText(self, -1, _(u"Default action for incoming print jobs")+':') self.PrintAction = wx.ComboBox(self, -1, choices=self._availablePrintActions.values(), style=wx.CB_DROPDOWN|wx.CB_READONLY) + # widgets for print action PDFVIEW + self.PdfViewCmdLabel = wx.StaticText(self, -1, _(u'PDF viewer command') + ':', ) + self.PdfViewCmd = wx.TextCtrl(self, -1, '', ) + self.PdfViewCmdBrowseButton = wx.BitmapButton(self, -1, + wx.Bitmap('%s/PyHoca/16x16/system-search.png' % _icons_location, wx.BITMAP_TYPE_ANY) + ) + + # widgets for print action PDFSAVE + self.PdfSaveToFolderLabel = wx.StaticText(self, -1, _(u'Save PDFs to folder') + ':', ) + self.PdfSaveToFolder = wx.TextCtrl(self, -1, '', ) + self.PdfSaveToFolderBrowseButton = wx.BitmapButton(self, -1, + wx.Bitmap('%s/PyHoca/16x16/system-search.png' % _icons_location, wx.BITMAP_TYPE_ANY) + ) + + # widgets for print action PRINT + _printer_list = [] + if X2GOCLIENT_OS == 'Windows': + pass + else: + pass + self.PrintPrinterLabel = wx.StaticText(self, -1, _(u'Use this printer') + ':', ) + self.PrintPrinter = wx.ComboBox(self, -1, choices=_printer_list, style=wx.CB_DROPDOWN|wx.CB_READONLY) + + # widgets for print action PRINTCMD + self.PrintCmdLabel = wx.StaticText(self, -1, _(u'Custom print command') + ':', ) + self.PrintCmd = wx.TextCtrl(self, -1, '', ) + if self.mode == 'edit': self.OKButton = wx.Button(self, -1, _(u"Save")) else: @@ -80,6 +107,8 @@ class PyHocaGUI_PrintingPreferences(wx.Dialog): self.__update_fields() self.__do_layout() + self.Bind(wx.EVT_COMBOBOX, self.OnPrintActionChange, self.PrintAction) + self.Bind(wx.EVT_BUTTON, self.OnOKButton, self.OKButton) self.Bind(wx.EVT_BUTTON, self.OnCancel, self.CancelButton) @@ -95,12 +124,33 @@ class PyHocaGUI_PrintingPreferences(wx.Dialog): def __do_layout(self): sizer_1 = wx.BoxSizer(wx.VERTICAL) - sizer_1_1 = wx.BoxSizer(wx.VERTICAL) + sizer_1_1 = wx.GridBagSizer(hgap=2, vgap=5) + sizer_1_1.Add(self.PrintActionLabel, pos=(0,0), flag=wx.ALIGN_CENTER_VERTICAL|wx.RIGHT, border=7) + sizer_1_1.Add(self.PrintAction, pos=(0,1), ) + + sizer_1_1.Add(self.PdfViewCmdLabel, pos=(1,0), flag=wx.ALIGN_CENTER_VERTICAL|wx.RIGHT, border=7) sizer_1_1_1 = wx.BoxSizer(wx.HORIZONTAL) - sizer_1_1_1.Add(self.PrintActionLabel, flag=wx.ALIGN_CENTER_VERTICAL|wx.RIGHT, border=7) - sizer_1_1_1.Add(self.PrintAction) - sizer_1_1.Add(sizer_1_1_1, flag=wx.BOTTOM, border=5) + sizer_1_1_1.Add(self.PdfViewCmd, proportion=1, flag=wx.EXPAND|wx.RIGHT, border=7, ) + sizer_1_1_1.Add(self.PdfViewCmdBrowseButton, ) + sizer_1_1.Add(sizer_1_1_1, pos=(1,1), flag=wx.EXPAND|wx.ALIGN_CENTER_VERTICAL, ) + + sizer_1_1.Add(self.PdfSaveToFolderLabel, pos=(2,0), flag=wx.ALIGN_CENTER_VERTICAL|wx.RIGHT, border=7, ) + sizer_1_1_2 = wx.BoxSizer(wx.HORIZONTAL) + sizer_1_1_2.Add(self.PdfSaveToFolder, proportion=1, flag=wx.EXPAND|wx.RIGHT, border=7, ) + sizer_1_1_2.Add(self.PdfSaveToFolderBrowseButton, ) + sizer_1_1.Add(sizer_1_1_2, pos=(2,1), flag=wx.EXPAND|wx.ALIGN_CENTER_VERTICAL, ) + + sizer_1_1.Add(self.PrintPrinterLabel, pos=(3,0), flag=wx.ALIGN_CENTER_VERTICAL|wx.RIGHT, border=7, ) + sizer_1_1_3 = wx.BoxSizer(wx.HORIZONTAL) + sizer_1_1_3.Add(self.PrintPrinter, proportion=1, flag=wx.EXPAND, ) + sizer_1_1.Add(sizer_1_1_3, pos=(3,1), flag=wx.EXPAND|wx.ALIGN_CENTER_VERTICAL, ) + + sizer_1_1.Add(self.PrintCmdLabel, pos=(4,0), flag=wx.ALIGN_CENTER_VERTICAL|wx.RIGHT, border=7, ) + sizer_1_1_4 = wx.BoxSizer(wx.HORIZONTAL) + sizer_1_1_4.Add(self.PrintCmd, proportion=1, flag=wx.EXPAND, ) + sizer_1_1.Add(sizer_1_1_4, pos=(4,1), flag=wx.EXPAND|wx.ALIGN_CENTER_VERTICAL, ) sizer_1.Add(sizer_1_1, flag=wx.EXPAND|wx.ALL, border=10) + # the bottom area with OK and Cancel buttons sizer_B = wx.BoxSizer(wx.HORIZONTAL) sizer_B.Add(self.OKButton, flag=wx.ALL, border=5) @@ -123,9 +173,69 @@ class PyHocaGUI_PrintingPreferences(wx.Dialog): self.PrintAction.SetValue(self._availablePrintActions[print_action_name]) else: self.PrintAction.SetValue(print_action_name) + self._onPrintActionChange() def __update_from_screen(self): - pass + kwargs = { + 'pdfview_cmd': self.PdfViewCmd.GetValue(), + 'save_to_folder': self.PdfSaveToFolder.GetValue(), + 'printer': self.PrintPrinter.GetValue(), + 'print_cmd': self.PrintCmd.GetValue(), + } + self.client_printing.set_print_action(self._print_action, **kwargs) + + @property + def _print_action(self): + return [ p for p in self._availablePrintActions.keys() if self._availablePrintActions[p] == self.PrintAction.GetValue() ][0] + + def _onPrintActionChange(self): + if self._print_action == 'PDFVIEW': + self.PdfViewSelected() + elif self._print_action == 'PDFSAVE': + self.PdfSaveToFolderSelected() + elif self._print_action == 'PRINT': + self.PrintPrinterSelected() + elif self._print_action == 'PRINTCMD': + self.PrintCmdSelected() + else: + self._disable_PrintOptions() + + def OnPrintActionChange(self, evt): + self._onPrintActionChange() + + def _disable_PrintOptions(self): + self.PdfViewCmdLabel.Enable(False) + self.PdfViewCmd.Enable(False) + self.PdfViewCmdBrowseButton.Enable(False) + self.PdfSaveToFolderLabel.Enable(False) + self.PdfSaveToFolder.Enable(False) + self.PdfSaveToFolderBrowseButton.Enable(False) + self.PrintPrinterLabel.Enable(False) + self.PrintPrinter.Enable(False) + self.PrintCmdLabel.Enable(False) + self.PrintCmd.Enable(False) + + def PdfViewSelected(self): + self._disable_PrintOptions() + self.PdfViewCmdLabel.Enable(True) + self.PdfViewCmd.Enable(True) + self.PdfViewCmdBrowseButton.Enable(True) + + def PdfSaveToFolderSelected(self): + self._disable_PrintOptions() + self.PdfSaveToFolderLabel.Enable(True) + self.PdfSaveToFolder.Enable(True) + self.PdfSaveToFolderBrowseButton.Enable(True) + + def PrintPrinterSelected(self): + self._disable_PrintOptions() + self.PrintPrinterLabel.Enable(True) + self.PrintPrinter.Enable(True) + + def PrintCmdSelected(self): + self._disable_PrintOptions() + self.PrintCmdLabel.Enable(True) + self.PrintCmd.Enable(True) def __validate(self): validateOk = True @@ -135,7 +245,7 @@ class PyHocaGUI_PrintingPreferences(wx.Dialog): wx.BeginBusyCursor() self.__update_from_screen() if self.__validate(): - pass + self.client_printing.write() wx.EndBusyCursor() self.Close() @@ -144,6 +254,7 @@ class PyHocaGUI_PrintingPreferences(wx.Dialog): wx.EndBusyCursor() def OnCancel(self, event): + self.client_printing.load() self.Close() self.Destroy() hooks/post-receive -- pyhoca-gui.git (Python X2Go Client (wxPython GUI)) This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "pyhoca-gui.git" (Python X2Go Client (wxPython GUI)).