# -*- coding: utf-8 -*-
#
# (c) Copyright 2001-2015 HP Development Company, L.P.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
# Author: Don Welch
#
# Local
from base.g import *
from base import utils
from prnt import cups
from base.sixext import to_unicode
# Qt
from qt import *
class PINValidator(QValidator):
def __init__(self, parent=None, name=None):
QValidator.__init__(self, parent, name)
def validate(self, input, pos):
for x in to_unicode(input)[pos-1:]:
if x not in '0123456789':
return QValidator.Invalid, pos
return QValidator.Acceptable, pos
class TextValidator(QValidator):
def __init__(self, parent=None, name=None):
QValidator.__init__(self, parent, name)
def validate(self, input, pos):
for x in to_unicode(input)[pos-1:]:
if x not in '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ -':
return QValidator.Invalid, pos
return QValidator.Acceptable, pos
class JobStorageMixin(object):
def __init__(self):
pass
def initJobStorage(self, print_settings_mode=False):
self.print_settings_mode = print_settings_mode
self.job_storage_mode = JOB_STORAGE_TYPE_OFF
self.job_storage_pin = "0000"
self.job_storage_use_pin = False
self.job_storage_username = to_unicode(prop.username[:16])
self.job_storage_auto_username = True
self.job_storage_jobname = "Untitled"
self.job_storage_auto_jobname = True
self.job_storage_job_exist = 0
def addJobStorage(self, current_options=None):
self.addJobStorageMode()
self.addJobStoragePIN()
self.addJobStorageUsername()
self.addJobStorageID()
self.addJobStorageIDExists()
self.jobStorageDisable()
if current_options is None:
cups.resetOptions()
cups.openPPD(self.cur_printer)
current_options = dict(cups.getOptions())
cups.closePPD()
self.job_storage_pin = to_unicode(current_options.get('HOLDKEY', '0000')[:4])
self.jobStoragePINEdit.setText(self.job_storage_pin)
self.job_storage_username = to_unicode(current_options.get('USERNAME', prop.username)[:16])
self.jobStorageUsernameEdit.setText(self.job_storage_username)
self.job_storage_jobname = to_unicode(current_options.get('JOBNAME', "Untitled")[:16])
self.jobStorageIDEdit.setText(self.job_storage_jobname)
hold = current_options.get('HOLD', 'OFF')
holdtype = current_options.get('HOLDTYPE', 'PUBLIC')
if hold == 'OFF':
self.job_storage_mode = JOB_STORAGE_TYPE_OFF
elif hold == 'ON':
if holdtype == 'PUBLIC':
self.job_storage_mode = JOB_STORAGE_TYPE_QUICK_COPY
else: # 'PRIVATE'
self.job_storage_mode = JOB_STORAGE_TYPE_PERSONAL
self.job_storage_use_pin = True
elif hold == 'PROOF':
if holdtype == 'PUBLIC':
self.job_storage_mode = JOB_STORAGE_TYPE_PROOF_AND_HOLD
else:
self.job_storage_mode = JOB_STORAGE_TYPE_PERSONAL
self.job_storage_use_pin = True
elif hold == 'STORE':
self.job_storage_mode = JOB_STORAGE_TYPE_STORE
self.job_storage_use_pin = (holdtype == 'PRIVATE')
self.jobStorageModeComboBox.setCurrentItem(self.job_storage_mode)
self.jobStorageModeDefaultPushButton.setEnabled(self.job_storage_mode != JOB_STORAGE_TYPE_OFF)
self.setModeTooltip()
self.setPrinterOptionHold()
duplicate = current_options.get('DUPLICATEJOB', 'REPLACE')
if duplicate == 'REPLACE':
self.job_storage_job_exist = 0
else:
self.job_storage_job_exist = 1
self.jobStorageIDExistsComboBox.setCurrentItem(self.job_storage_job_exist)
self.setPrinterOptionIDExists()
#
if self.job_storage_mode == JOB_STORAGE_TYPE_OFF:
self.jobStorageDisable()
else:
self.jobStorageUserJobEnable()
self.setPrinterOptionID()
self.setPrinterOptionPIN()
self.setPrinterOptionUsername()
self.jobStoragePINButtonGroup.setButton(self.job_storage_use_pin)
self.jobStoragePINEnable(self.job_storage_mode in (JOB_STORAGE_TYPE_PERSONAL, JOB_STORAGE_TYPE_STORE))
def addJobStorageMode(self):
widget = self.getWidget()
layout34 = QHBoxLayout(widget,5,10,"layout34")
self.jobStorageModeLabel = QLabel(widget,"jobStorageModeLabel")
layout34.addWidget(self.jobStorageModeLabel)
spacer20_4 = QSpacerItem(20,20,QSizePolicy.Expanding,QSizePolicy.Minimum)
layout34.addItem(spacer20_4)
self.jobStorageModeComboBox = QComboBox(0,widget,"jobStorageModeComboBox")
layout34.addWidget(self.jobStorageModeComboBox)
self.jobStorageModeDefaultPushButton = QPushButton(widget,"pagesetDefaultPushButton")
layout34.addWidget(self.jobStorageModeDefaultPushButton)
self.jobStorageModeLabel.setText(self.__tr("Job Storage Mode:"))
self.jobStorageModeComboBox.clear()
self.jobStorageModeComboBox.insertItem(self.__tr("Off"))
self.jobStorageModeComboBox.insertItem(self.__tr("Proof and Hold"))
self.jobStorageModeComboBox.insertItem(self.__tr("Personal/Private Job"))
self.jobStorageModeComboBox.insertItem(self.__tr("Quick Copy"))
self.jobStorageModeComboBox.insertItem(self.__tr("Stored Job"))
self.jobStorageModeDefaultPushButton.setText(self.__tr("Default"))
self.jobStorageModeDefaultPushButton.setEnabled(False)
self.connect(self.jobStorageModeComboBox, SIGNAL("activated(int)"), self.jobStorageModeComboBox_activated)
self.connect(self.jobStorageModeDefaultPushButton, SIGNAL("clicked()"), self.jobStorageModeDefaultPushButton_clicked)
self.addWidget(widget, "job_storage_mode")
def jobStorageModeComboBox_activated(self, a):
#print a
self.job_storage_mode = a
self.jobStorageModeDefaultPushButton.setEnabled(a != JOB_STORAGE_TYPE_OFF)
if a == JOB_STORAGE_TYPE_OFF:
#print "off!"
self.jobStorageDisable()
else:
self.jobStorageUserJobEnable()
self.setPrinterOptionHold()
self.jobStoragePINEnable(a in (JOB_STORAGE_TYPE_PERSONAL, JOB_STORAGE_TYPE_STORE))
self.setModeTooltip()
def setModeTooltip(self):
QToolTip.remove(self.jobStorageModeComboBox)
if self.job_storage_mode == JOB_STORAGE_TYPE_OFF:
QToolTip.add(self.jobStorageModeComboBox,
self.__tr("""Your job will be printed but not stored on the printer."""))
elif self.job_storage_mode == JOB_STORAGE_TYPE_PERSONAL:
QToolTip.add(self.jobStorageModeComboBox,
self.__tr("""Your job will be stored on the printer and nothing will be printed until you request the job from the printer's control panel.
Once the job is printed, it will automatically be removed from the printer's job storage. For Private print jobs, add a 4-digit PIN."""))
elif self.job_storage_mode == JOB_STORAGE_TYPE_PROOF_AND_HOLD:
QToolTip.add(self.jobStorageModeComboBox,
self.__tr("""When multiples copies are requested, the first copy will be printed.
The remaining copies will be held on the printer until you release them using the printer's control panel."""))
elif self.job_storage_mode == JOB_STORAGE_TYPE_QUICK_COPY:
QToolTip.add(self.jobStorageModeComboBox,
self.__tr("""After your job prints, you can use the printer's control panel to print additional copies of your job."""))
elif self.job_storage_mode == JOB_STORAGE_TYPE_STORE:
QToolTip.add(self.jobStorageModeComboBox,
self.__tr("""Your job will not immediately print, but instead be stored in the printer.
You can request copies of this job from the printer's control panel. Use this for storage of forms and other common or shared documents."""))
def setPrinterOptionHold(self):
if self.print_settings_mode:
if self.job_storage_mode == JOB_STORAGE_TYPE_OFF:
#print "off!!!"
self.setPrinterOption('HOLD', 'OFF')
self.removePrinterOption('HOLDTYPE')
self.removePrinterOption('HOLDKEY')
self.removePrinterOption('USERNAME')
self.removePrinterOption('JOBNAME')
self.removePrinterOption('DUPLICATEJOB')
elif self.job_storage_mode == JOB_STORAGE_TYPE_PROOF_AND_HOLD:
#print "proof"
self.job_storage_use_pin = False
self.setPrinterOption('HOLD', 'PROOF')
self.removePrinterOption('HOLDTYPE')
self.removePrinterOption('HOLDKEY')
elif self.job_storage_mode == JOB_STORAGE_TYPE_PERSONAL:
#print "personal"
#self.setPrinterOption('HOLDTYPE', 'PRIVATE')
if self.job_storage_use_pin:
self.setPrinterOption('HOLD', 'ON')
self.setPrinterOption('HOLDTYPE', 'PRIVATE')
else:
self.setPrinterOption('HOLD', 'PROOF')
self.setPrinterOption('HOLDTYPE', 'PUBLIC')
self.removePrinterOption('HOLDKEY')
elif self.job_storage_mode == JOB_STORAGE_TYPE_QUICK_COPY:
#print "qc"
self.job_storage_use_pin = False
self.setPrinterOption('HOLD', 'ON')
self.setPrinterOption('HOLDTYPE', 'PUBLIC')
self.removePrinterOption('HOLDKEY')
elif self.job_storage_mode == JOB_STORAGE_TYPE_STORE:
#print "store"
self.setPrinterOption('HOLD', 'STORE')
if self.job_storage_use_pin:
self.setPrinterOption('HOLDTYPE', 'PRIVATE')
else:
self.removePrinterOption('HOLDTYPE')
self.removePrinterOption('HOLDKEY')
def jobStorageModeDefaultPushButton_clicked(self):
self.jobStorageModeComboBox.setCurrentItem(0)
self.job_storage_mode = JOB_STORAGE_TYPE_OFF
self.setPrinterOptionHold()
self.setModeTooltip()
def jobStorageDisable(self): # Off: Turn off all options
self.jobStorageModeDefaultPushButton.setEnabled(False)
self.jobStoragePINEnable(False)
self.jobStorageUserJobEnable(False)
#self.setPrinterOptionHold()
def jobStoragePINEnable(self, e=True): # PIN On/Off
t = e and self.jobStoragePINButtonGroup.selectedId() == 1
self.jobStoragePINButtonGroup.setEnabled(e)
self.jobStoragePINEdit.setEnabled(t)
self.jobStoragePINDefaultPushButton.setEnabled(t)
self.setPrinterOptionPIN()
def jobStorageUserJobEnable(self, e=True): # Username/Job ID/Job ID Exists On/Off
t = e and self.jobStorageUsernameButtonGroup.selectedId() == 1
self.jobStorageUsernameButtonGroup.setEnabled(e)
self.jobStorageUsernameDefaultPushButton.setEnabled(t)
self.jobStorageUsernameEdit.setEnabled(t)
if e: self.setPrinterOptionUsername()
t = e and self.jobStorageIDButtonGroup.selectedId() == 1
self.jobStorageIDButtonGroup.setEnabled(e)
self.jobStorageIDDefaultPushButton.setEnabled(t)
self.jobStorageIDEdit.setEnabled(t)
if e: self.setPrinterOptionID()
t = e and self.jobStorageIDExistsComboBox.currentItem() == 1
self.jobStorageIDExistsComboBox.setEnabled(e)
self.jobStorageIDExistsDefaultPushButton.setEnabled(t)
if e: self.setPrinterOptionIDExists()
# PIN
def addJobStoragePIN(self):
widget = self.getWidget()
layout39 = QGridLayout(widget,1,1,5,10,"layout39")
self.jobStoragePINEdit = QLineEdit(widget,"self.jobStoragePINEdit")
self.jobStoragePINEdit.setMaxLength(4)
self.jobStoragePINEdit.setInputMask(QString("9999"))
self.jobStoragePINEdit.setText(self.job_storage_pin)
layout39.addWidget(self.jobStoragePINEdit,0,3)
spacer20_2 = QSpacerItem(20,20,QSizePolicy.Expanding,QSizePolicy.Minimum)
layout39.addItem(spacer20_2,0,1)
textLabel5_2 = QLabel(widget,"textLabel5_2")
layout39.addWidget(textLabel5_2,0,0)
self.jobStoragePINDefaultPushButton = QPushButton(widget,"jobStoragePINDefaultPushButton")
layout39.addWidget(self.jobStoragePINDefaultPushButton,0,4)
self.jobStoragePINButtonGroup = QButtonGroup(widget,"self.jobStoragePINButtonGroup")
self.jobStoragePINButtonGroup.setLineWidth(0)
self.jobStoragePINButtonGroup.setColumnLayout(0,Qt.Vertical)
self.jobStoragePINButtonGroup.layout().setSpacing(0)
self.jobStoragePINButtonGroup.layout().setMargin(0)
self.jobStoragePINButtonGroupLayout = QGridLayout(self.jobStoragePINButtonGroup.layout())
self.jobStoragePINButtonGroupLayout.setAlignment(Qt.AlignTop)
radioButton3_2 = QRadioButton(self.jobStoragePINButtonGroup,"radioButton3_2")
radioButton3_2.setChecked(1)
self.jobStoragePINButtonGroup.insert( radioButton3_2,0)
self.jobStoragePINButtonGroupLayout.addWidget(radioButton3_2,0,0)
radioButton4_2 = QRadioButton(self.jobStoragePINButtonGroup,"radioButton4_2")
self.jobStoragePINButtonGroup.insert( radioButton4_2,1)
self.jobStoragePINButtonGroupLayout.addWidget(radioButton4_2,0,1)
layout39.addWidget(self.jobStoragePINButtonGroup,0,2)
self.bg = self.jobStoragePINEdit.paletteBackgroundColor()
self.invalid_page_range = False
self.jobStoragePINEdit.setValidator(PINValidator(self.jobStoragePINEdit))
textLabel5_2.setText(self.__tr("Make Job Private (use PIN to print):"))
radioButton3_2.setText(self.__tr("Public/Off"))
radioButton4_2.setText(self.__tr("Private/Use PIN:"))
self.jobStoragePINDefaultPushButton.setText(self.__tr("Default"))
self.connect(self.jobStoragePINButtonGroup, SIGNAL("clicked(int)"), self.jobStoragePINButtonGroup_clicked)
self.connect(self.jobStoragePINEdit,SIGNAL("lostFocus()"),self.jobStoragePINEdit_lostFocus)
self.connect(self.jobStoragePINEdit,SIGNAL("textChanged(const QString&)"),self.jobStoragePINEdit_textChanged)
self.connect(self.jobStoragePINDefaultPushButton, SIGNAL("clicked()"), self.jobStoragePINDefaultPushButton_clicked)
self.addWidget(widget, "job_storage_pin")
def jobStoragePINButtonGroup_clicked(self, a):
if a == 0: # Public/Off
self.jobStoragePINDefaultPushButton.setEnabled(False)
self.jobStoragePINEdit.setEnabled(False)
self.job_storage_use_pin = False
self.job_storage_pin = "0000"
self.setPrinterOptionPIN()
else: # On/Private/Use PIN
self.jobStoragePINDefaultPushButton.setEnabled(True)
self.jobStoragePINEdit.setEnabled(True)
self.job_storage_use_pin = True
self.job_storage_pin = to_unicode(self.jobStoragePINEdit.text())
self.setPrinterOptionPIN()
def setPrinterOptionPIN(self):
if self.print_settings_mode :
if self.job_storage_use_pin:
self.setPrinterOption('HOLDKEY', self.job_storage_pin.encode('ascii'))
#self.setPrinterOption('HOLD', 'ON')
else:
self.removePrinterOption('HOLDKEY')
#self.setPrinterOption('HOLD', 'PROOF')
def jobStoragePINEdit_lostFocus(self):
#self.setPrinterOptionPIN()
pass
def jobStoragePINEdit_textChanged(self, a):
self.job_storage_pin = to_unicode(a)
self.setPrinterOptionPIN()
def jobStoragePINDefaultPushButton_clicked(self):
self.jobStoragePINButtonGroup.setButton(0)
self.jobStoragePINDefaultPushButton.setEnabled(False)
self.jobStoragePINEdit.setEnabled(False)
self.job_storage_use_pin = False
# Username
def addJobStorageUsername(self):
widget = self.getWidget()
layout39 = QGridLayout(widget,1,1,5,10,"layout39")
self.jobStorageUsernameEdit = QLineEdit(widget,"self.jobStorageUsernameEdit")
self.jobStorageUsernameEdit.setMaxLength(16)
self.jobStorageUsernameEdit.setText(self.job_storage_username)
layout39.addWidget(self.jobStorageUsernameEdit,0,3)
spacer20_2 = QSpacerItem(20,20,QSizePolicy.Expanding,QSizePolicy.Minimum)
layout39.addItem(spacer20_2,0,1)
textLabel5_2 = QLabel(widget,"textLabel5_2")
layout39.addWidget(textLabel5_2,0,0)
self.jobStorageUsernameDefaultPushButton = QPushButton(widget,"jobStorageUsernameDefaultPushButton")
layout39.addWidget(self.jobStorageUsernameDefaultPushButton,0,4)
self.jobStorageUsernameButtonGroup = QButtonGroup(widget,"self.jobStorageUsernameButtonGroup")
self.jobStorageUsernameButtonGroup.setLineWidth(0)
self.jobStorageUsernameButtonGroup.setColumnLayout(0,Qt.Vertical)
self.jobStorageUsernameButtonGroup.layout().setSpacing(0)
self.jobStorageUsernameButtonGroup.layout().setMargin(0)
self.jobStorageUsernameButtonGroupLayout = QGridLayout(self.jobStorageUsernameButtonGroup.layout())
self.jobStorageUsernameButtonGroupLayout.setAlignment(Qt.AlignTop)
radioButton3_2 = QRadioButton(self.jobStorageUsernameButtonGroup,"radioButton3_2")
radioButton3_2.setChecked(1)
self.jobStorageUsernameButtonGroup.insert( radioButton3_2,0)
self.jobStorageUsernameButtonGroupLayout.addWidget(radioButton3_2,0,0)
radioButton4_2 = QRadioButton(self.jobStorageUsernameButtonGroup,"radioButton4_2")
self.jobStorageUsernameButtonGroup.insert( radioButton4_2,1)
self.jobStorageUsernameButtonGroupLayout.addWidget(radioButton4_2,0,1)
layout39.addWidget(self.jobStorageUsernameButtonGroup,0,2)
self.bg = self.jobStorageUsernameEdit.paletteBackgroundColor()
self.invalid_page_range = False
self.jobStorageUsernameEdit.setValidator(TextValidator(self.jobStorageUsernameEdit))
textLabel5_2.setText(self.__tr("User name (for job identification):"))
radioButton3_2.setText(self.__tr("Automatic"))
radioButton4_2.setText(self.__tr("Custom:"))
self.jobStorageUsernameDefaultPushButton.setText(self.__tr("Default"))
self.connect(self.jobStorageUsernameButtonGroup, SIGNAL("clicked(int)"), self.jobStorageUsernameButtonGroup_clicked)
self.connect(self.jobStorageUsernameEdit,SIGNAL("lostFocus()"),self.jobStorageUsernameEdit_lostFocus)
self.connect(self.jobStorageUsernameEdit,SIGNAL("textChanged(const QString&)"),self.jobStorageUsernameEdit_textChanged)
self.connect(self.jobStorageUsernameDefaultPushButton, SIGNAL("clicked()"), self.jobStorageUsernameDefaultPushButton_clicked)
self.addWidget(widget, "job_storage_username")
def jobStorageUsernameButtonGroup_clicked(self, a):
if a == 0: # Automatic
self.jobStorageUsernameDefaultPushButton.setEnabled(False)
self.jobStorageUsernameEdit.setEnabled(False)
self.job_storage_auto_username = True
self.job_storage_username = to_unicode(prop.username[:16])
self.setPrinterOptionUsername()
else: # Custom
self.jobStorageUsernameDefaultPushButton.setEnabled(True)
self.jobStorageUsernameEdit.setEnabled(True)
self.job_storage_auto_username = False
self.job_storage_username = to_unicode(self.jobStorageUsernameEdit.text())
self.setPrinterOptionUsername()
def jobStorageUsernameEdit_lostFocus(self):
#self.setPrinterOptionUsername()
pass
def jobStorageUsernameEdit_textChanged(self, a):
self.job_storage_username = to_unicode(a)
self.setPrinterOptionUsername()
def jobStorageUsernameDefaultPushButton_clicked(self):
self.jobStorageUsernameButtonGroup.setButton(0)
self.jobStorageUsernameDefaultPushButton.setEnabled(False)
self.jobStorageUsernameEdit.setEnabled(False)
self.job_storage_auto_username = True
self.job_storage_username = to_unicode(prop.username[:16])
self.setPrinterOptionUsername()
def setPrinterOptionUsername(self):
if self.print_settings_mode:
self.setPrinterOption('USERNAME', self.job_storage_username.encode('ascii').replace(' ', '_'))
# Job ID
def addJobStorageID(self):
widget = self.getWidget()
layout39 = QGridLayout(widget,1,1,5,10,"layout39")
self.jobStorageIDEdit = QLineEdit(widget,"self.jobStorageIDEdit")
self.jobStorageIDEdit.setMaxLength(16)
self.jobStorageIDEdit.setText(self.job_storage_jobname)
layout39.addWidget(self.jobStorageIDEdit,0,3)
spacer20_2 = QSpacerItem(20,20,QSizePolicy.Expanding,QSizePolicy.Minimum)
layout39.addItem(spacer20_2,0,1)
textLabel5_2 = QLabel(widget,"textLabel5_2")
layout39.addWidget(textLabel5_2,0,0)
self.jobStorageIDDefaultPushButton = QPushButton(widget,"jobStorageIDDefaultPushButton")
layout39.addWidget(self.jobStorageIDDefaultPushButton,0,4)
self.jobStorageIDButtonGroup = QButtonGroup(widget,"self.jobStorageIDButtonGroup")
self.jobStorageIDButtonGroup.setLineWidth(0)
self.jobStorageIDButtonGroup.setColumnLayout(0,Qt.Vertical)
self.jobStorageIDButtonGroup.layout().setSpacing(0)
self.jobStorageIDButtonGroup.layout().setMargin(0)
self.jobStorageIDButtonGroupLayout = QGridLayout(self.jobStorageIDButtonGroup.layout())
self.jobStorageIDButtonGroupLayout.setAlignment(Qt.AlignTop)
radioButton3_2 = QRadioButton(self.jobStorageIDButtonGroup,"radioButton3_2")
radioButton3_2.setChecked(1)
self.jobStorageIDButtonGroup.insert( radioButton3_2,0)
self.jobStorageIDButtonGroupLayout.addWidget(radioButton3_2,0,0)
radioButton4_2 = QRadioButton(self.jobStorageIDButtonGroup,"radioButton4_2")
self.jobStorageIDButtonGroup.insert( radioButton4_2,1)
self.jobStorageIDButtonGroupLayout.addWidget(radioButton4_2,0,1)
layout39.addWidget(self.jobStorageIDButtonGroup,0,2)
self.bg = self.jobStorageIDEdit.paletteBackgroundColor()
self.invalid_page_range = False
self.jobStorageIDEdit.setValidator(TextValidator(self.jobStorageIDEdit))
textLabel5_2.setText(self.__tr("Job name (for job identification):"))
radioButton3_2.setText(self.__tr("Automatic"))
radioButton4_2.setText(self.__tr("Custom:"))
self.jobStorageIDDefaultPushButton.setText(self.__tr("Default"))
self.connect(self.jobStorageIDButtonGroup, SIGNAL("clicked(int)"), self.jobStorageIDButtonGroup_clicked)
self.connect(self.jobStorageIDEdit,SIGNAL("lostFocus()"),self.jobStorageIDEdit_lostFocus)
self.connect(self.jobStorageIDEdit,SIGNAL("textChanged(const QString&)"),self.jobStorageIDEdit_textChanged)
self.connect(self.jobStorageIDDefaultPushButton, SIGNAL("clicked()"), self.jobStorageIDDefaultPushButton_clicked)
self.addWidget(widget, "job_storage_ID")
def jobStorageIDButtonGroup_clicked(self, a):
if a == 0: # Automatic
self.jobStorageIDDefaultPushButton.setEnabled(False)
self.jobStorageIDEdit.setEnabled(False)
self.job_storage_auto_jobname = True
self.job_storage_jobname = "Untitled"
self.setPrinterOptionID()
else: # Custom
self.jobStorageIDDefaultPushButton.setEnabled(True)
self.jobStorageIDEdit.setEnabled(True)
self.job_storage_auto_jobname = False
self.job_storage_jobname = to_unicode(self.jobStorageIDEdit.text())
self.setPrinterOptionID()
def jobStorageIDEdit_lostFocus(self):
#self.setPrinterOptionID()
pass
def jobStorageIDEdit_textChanged(self, a):
self.job_storage_jobname = to_unicode(a)
self.setPrinterOptionID()
def jobStorageIDDefaultPushButton_clicked(self):
self.jobStorageIDButtonGroup.setButton(0)
self.jobStorageIDDefaultPushButton.setEnabled(False)
self.jobStorageIDEdit.setEnabled(False)
self.job_storage_auto_jobname = True
self.job_storage_jobname = "Untitled"
self.setPrinterOptionID()
def setPrinterOptionID(self):
if self.print_settings_mode:
self.setPrinterOption('JOBNAME', self.job_storage_jobname.encode('ascii').replace(' ', '_'))
# Job ID Exists
def addJobStorageIDExists(self):
widget = self.getWidget()
layout34 = QHBoxLayout(widget,5,10,"layout34")
self.jobStorageIDExistsLabel = QLabel(widget,"jobStorageIDExistsLabel")
layout34.addWidget(self.jobStorageIDExistsLabel)
spacer20_4 = QSpacerItem(20,20,QSizePolicy.Expanding,QSizePolicy.Minimum)
layout34.addItem(spacer20_4)
self.jobStorageIDExistsComboBox = QComboBox(0,widget,"jobStorageIDExistsComboBox")
layout34.addWidget(self.jobStorageIDExistsComboBox)
self.jobStorageIDExistsDefaultPushButton = QPushButton(widget,"pagesetDefaultPushButton")
layout34.addWidget(self.jobStorageIDExistsDefaultPushButton)
self.jobStorageIDExistsLabel.setText(self.__tr("If Job Name already exists:"))
self.jobStorageIDExistsComboBox.clear()
self.jobStorageIDExistsComboBox.insertItem(self.__tr("Replace existing job"))
self.jobStorageIDExistsComboBox.insertItem(self.__tr("Use Job Name + (1-99)"))
self.jobStorageIDExistsDefaultPushButton.setText(self.__tr("Default"))
self.connect(self.jobStorageIDExistsComboBox, SIGNAL("activated(int)"), self.jobStorageIDExistsComboBox_activated)
self.connect(self.jobStorageIDExistsDefaultPushButton, SIGNAL("clicked()"), self.jobStorageIDExistsDefaultPushButton_clicked)
self.addWidget(widget, "job_storage_id_exists")
def jobStorageIDExistsComboBox_activated(self, a):
self.jobStorageIDExistsDefaultPushButton.setEnabled(a==1)
self.job_storage_job_exist = a
self.setPrinterOptionIDExists()
def jobStorageIDExistsDefaultPushButton_clicked(self):
self.jobStorageIDExistsComboBox.setCurrentItem(0)
self.jobStorageIDExistsDefaultPushButton.setEnabled(False)
self.job_storage_job_exist = 0
self.setPrinterOptionIDExists()
def setPrinterOptionIDExists(self):
if self.print_settings_mode:
if self.job_storage_job_exist == 0:
self.setPrinterOption('DUPLICATEJOB', 'REPLACE')
else:
self.setPrinterOption('DUPLICATEJOB', 'APPEND')
def __tr(self,s,c = None):
return qApp.translate("JobStorage",s,c)