1 # -*- coding: utf-8 -*-
3 # (c) Copyright 2001-2008 Hewlett-Packard Development Company, L.P.
5 # This program is free software; you can redistribute it and/or modify
6 # it under the terms of the GNU General Public License as published by
7 # the Free Software Foundation; either version 2 of the License, or
8 # (at your option) any later version.
10 # This program is distributed in the hope that it will be useful,
11 # but WITHOUT ANY WARRANTY; without even the implied warranty of
12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 # GNU General Public License for more details.
15 # You should have received a copy of the GNU General Public License
16 # along with this program; if not, write to the Free Software
17 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 # Authors: Don Welch, Naga Samrat Chowdary Narla,
27 from base import device, utils, maint, status
28 #from prnt import cups
29 from base.codes import *
30 from ui_utils import *
33 from PyQt4.QtCore import *
34 from PyQt4.QtGui import *
37 from aligndialog_base import Ui_Dialog
42 PAGE_ALIGNMENT_NUMBER = 3
43 PAGE_COLOR_ADJ = 4 # types 4, 5 & 7
44 PAGE_LBOW = 5 # types 10 & 11
45 PAGE_AIO = 6 # Place on scanner, ...
46 PAGE_FRONT_PANEL = 7 # Use front panel menu
52 ALIGN_TYPE_INITIAL = 1000
53 ALIGN_TYPE_TEST = 1001
56 ALIGN_TYPE_XBOW_OFFSET = 100
57 ALIGN_TYPE_XBOW_BLACK_ONLY = ALIGN_TYPE_XBOW_OFFSET + AGENT_CONFIG_BLACK_ONLY
58 ALIGN_TYPE_XBOW_PHOTO_ONLY = ALIGN_TYPE_XBOW_OFFSET + AGENT_CONFIG_PHOTO_ONLY
59 ALIGN_TYPE_XBOW_COLOR_ONLY = ALIGN_TYPE_XBOW_OFFSET + AGENT_CONFIG_COLOR_ONLY
60 ALIGN_TYPE_XBOW_COLOR_AND_BLACK = ALIGN_TYPE_XBOW_OFFSET + AGENT_CONFIG_COLOR_AND_BLACK
61 ALIGN_TYPE_XBOW_COLOR_AND_PHOTO = ALIGN_TYPE_XBOW_OFFSET + AGENT_CONFIG_COLOR_AND_PHOTO
68 class AlignDialog(QDialog, Ui_Dialog):
69 def __init__(self, parent, device_uri):
70 QDialog.__init__(self, parent)
71 self.device_uri = device_uri
74 self.align_type = ALIGN_TYPE_INITIAL
76 self.a, self.b, self.c, self.d, self.zca = 0, 0, 0, 0, 0
77 self.e, self.f, self.g = 0, 0, 0
78 self.num_inks = 0 # type 8
79 self.pattern = 0 # type 10
80 self.values = [] # type 10
85 ALIGN_TYPE_UNSUPPORTED : 1,
89 ALIGN_TYPE_LIDIL_0_3_8 : 0,
90 ALIGN_TYPE_LIDIL_0_4_3 : 0,
91 ALIGN_TYPE_LIDIL_AIO : 3,
92 ALIGN_TYPE_LIDIL_VIP : 0,
93 ALIGN_TYPE_DESKJET_450 : 0,
94 ALIGN_TYPE_9XX_NO_EDGE_ALIGN : 6,
96 ALIGN_TYPE_LIDIL_0_5_4 : 0,
97 ALIGN_TYPE_OJ_PRO : 0,
100 ALIGN_TYPE_LIDIL_DJ_D1600: 0,
102 ALIGN_TYPE_LEDM_MANUAL: 0,
103 ALIGN_TYPE_LEDM_FF_CC_0: 0,
106 self.seq = { # (func|method, tuple of params|None)
107 ALIGN_TYPE_TEST : [ # testing only
108 (self.showColorAdjustPage, ('F', 21)),
109 (self.endColorAdjustPage, ('F',)),
110 (self.showColorAdjustPage, ('G', 11)),
111 (self.endColorAdjustPage, ('G',)),
115 ALIGN_TYPE_INITIAL : [ # (used when starting up and align-type isn't known)
116 (self.showStartPage, None),
117 (self.endStartPage, None), # switch to a valid align-type here
120 ALIGN_TYPE_UNSUPPORTED : [ # -1
121 (self.showFrontPanelPage, None),
122 (self.endFronPanelPage, None),
126 # ALIGN_TYPE_NONE : [ # 0
130 ALIGN_TYPE_AUTO : [ # 1
131 (self.showLoadPaperPage, None),
132 (maint.AlignType1PML, (lambda : self.dev, lambda: true)),
133 (self.closeAll, None),
137 ALIGN_TYPE_8XX : [ # 2
138 (self.checkType2PenConfig, None),
139 (self.showLoadPaperPage, None),
140 (maint.alignType2Phase1, (lambda: self.dev,)),
141 (self.showAlignmentNumberPage, ('A', 'h', 'kc', 2, 11)),
142 (self.endAlignmentNumberPage, ('A',)),
143 (self.showAlignmentNumberPage, ('B', 'v', 'kc', 2, 11)),
144 (self.endAlignmentNumberPage, ('B',)),
145 (self.showAlignmentNumberPage, ('C', 'v', 'kc', 2, 5)),
146 (self.endAlignmentNumberPage, ('C',)),
147 (self.showAlignmentNumberPage, ('D', 'v', 'c', 2, 5)),
148 (self.endAlignmentNumberPage, ('D',)),
149 (self.setAlignButton, (BUTTON_ALIGN,)),
150 (self.showLoadPaperPage, (lambda: True,)),
151 (maint.alignType2Phase2, (lambda: self.dev, lambda: self.a, lambda: self.b,
152 lambda: self.c, lambda: self.d)),
156 ALIGN_TYPE_9XX : [ # 3
157 (self.showLoadPaperPage, None),
158 (self.showAlignmentNumberPage, ('A', 'h', 'kc', 2, 11)),
159 (self.endAlignmentNumberPage, ('A',)),
160 (self.showAlignmentNumberPage, ('B', 'v', 'kc', 2, 11)),
161 (self.endAlignmentNumberPage, ('B',)),
162 (self.showAlignmentNumberPage, ('C', 'v', 'k', 2, 11)),
163 (self.endAlignmentNumberPage, ('C',)),
164 (self.setAlignButton, (BUTTON_ALIGN,)),
165 (self.showAlignmentNumberPage, ('D', 'v', 'kc', 2, 11)),
166 (self.endAlignmentNumberPage, ('D',)),
167 (maint.alignType3Phase2, (lambda: self.dev, lambda: self.a, lambda: self.b,
168 lambda: self.c, lambda: self.d)),
169 (maint.alignType3Phase3, (lambda: self.dev,)),
170 (self.showPageEdgePage, None),
171 (self.endPageEdgePage, None),
172 (maint.alignType3Phase4, (lambda: self.dev, lambda: self.zca)),
176 ALIGN_TYPE_LIDIL_0_3_8 : [ # 4
177 (self.showLoadPaperPage, None),
178 (self.setPenConfig, None),
179 (maint.alignType4Phase1, (lambda: self.dev,)),
180 (self.setXBow, None),
181 # switches to offset align_type here
184 ALIGN_TYPE_LIDIL_0_4_3 : [ # 5
185 (self.showLoadPaperPage, None),
186 (self.setPenConfig, None),
187 (maint.alignType5Phase1, (lambda: self.dev,)),
188 (self.showPageEdgePage, ('A',)),
189 (self.endPageEdgePage, None),
190 (self.setXBow, None),
191 # switches to offset align_type here
194 ALIGN_TYPE_LIDIL_VIP : [ # 7
195 (self.showLoadPaperPage, None),
196 (self.setPenConfig, None),
197 (maint.alignType7Phase1, (lambda: self.dev,)),
198 (self.showPageEdgePage, ('A',)),
199 (self.endPageEdgePage, None),
200 (self.setXBow, None),
201 # switches to offset align_type here (next 5 types)
204 # xBow offset alignment type
205 ALIGN_TYPE_XBOW_BLACK_ONLY : [ # 4, 5 & 7
206 (self.showAlignmentNumberPage, ('B', 'v', 'k', 2, 11)),
207 (self.endAlignmentNumberPage, ('B',)),
208 (self.setXBowValues, None),
212 # xBow offset alignment type
213 ALIGN_TYPE_XBOW_PHOTO_ONLY : [ # 4, 5 & 7
214 (self.showAlignmentNumberPage, ('B', 'v', 'k', 2, 11)),
215 (self.endAlignmentNumberPage, ('B',)),
216 (self.setXBowValues, None),
220 # xBow offset alignment type
221 ALIGN_TYPE_XBOW_COLOR_ONLY : [ # 4, 5 & 7
222 (self.showAlignmentNumberPage, ('B', 'v', 'kc', 2, 11)),
223 (self.endAlignmentNumberPage, ('B',)),
224 (self.setXBowValues, None),
228 # xBow offset alignment type
229 ALIGN_TYPE_XBOW_COLOR_AND_BLACK : [ # 4, 5 & 7
230 (self.showAlignmentNumberPage, ('B', 'h', 'kc', 2, 17)),
231 (self.endAlignmentNumberPage, ('B',)),
232 (self.showAlignmentNumberPage, ('C', 'v', 'kc', 2, 17)),
233 (self.endAlignmentNumberPage, ('C',)),
234 (self.showAlignmentNumberPage, ('D', 'v', 'k', 2, 11)),
235 (self.endAlignmentNumberPage, ('D',)),
236 (self.showAlignmentNumberPage, ('E', 'v', 'kc', 2, 11)),
237 (self.endAlignmentNumberPage, ('E',)),
238 (self.setXBowValues, None),
242 # xBow offset alignment type
243 ALIGN_TYPE_XBOW_COLOR_AND_PHOTO : [ # 4, 5 & 7
244 (self.showAlignmentNumberPage, ('B', 'h', 'kc', 2, 17)),
245 (self.endAlignmentNumberPage, ('B',)),
246 (self.showAlignmentNumberPage, ('C', 'v', 'kc', 2, 17)),
247 (self.endAlignmentNumberPage, ('C',)),
248 (self.showAlignmentNumberPage, ('D', 'v', 'k', 2, 11)),
249 (self.endAlignmentNumberPage, ('D',)),
250 (self.showAlignmentNumberPage, ('E', 'v', 'kc', 2, 11)),
251 (self.endAlignmentNumberPage, ('E',)),
252 (self.showColorAdjustPage, ('F', 21)),
253 (self.endColorAdjustPage, ('F',)),
254 (self.showColorAdjustPage, ('G', 21)),
255 (self.endColorAdjustPage, ('G',)),
256 (self.setXBowValues, None),
260 ALIGN_TYPE_LIDIL_AIO : [ # 6 (semi-auto)
261 (self.showLoadPaperPage, None),
262 (maint.alignType6Phase1, (lambda: self.dev,)),
263 (self.setAlignButton, (BUTTON_FINISH,)),
264 (self.showAioPage, None),
268 ALIGN_TYPE_DESKJET_450 : [ # 8
269 (self.showLoadPaperPage, None),
270 (self.alignType8Phase1, None), # sets num_inks
271 (self.showAlignmentNumberPage, ('A', 'v', 'k', 3, 9)),
272 (self.endAlignmentNumberPage, ('A',)),
273 (self.showAlignmentNumberPage, ('B', 'v', 'c', 3, 9)),
274 (self.endAlignmentNumberPage, ('B',)),
275 (self.showAlignmentNumberPage, ('C', 'v', 'kc', 3, 9)),
276 (self.endAlignmentNumberPage, ('C',)),
277 (self.setAlignButton, (BUTTON_ALIGN,)),
278 (self.showAlignmentNumberPage, ('D', 'h', 'kc', 3, 9)),
279 (self.endAlignmentNumberPage, ('D',)),
280 (maint.alignType3Phase2, (lambda: self.dev, lambda: self.num_inks, lambda: self.a,
281 lambda: self.b, lambda: self.c, lambda: self.d)),
285 ALIGN_TYPE_9XX_NO_EDGE_ALIGN : [ # 9
286 (self.showLoadPaperPage, None),
287 (self.showAlignmentNumberPage, ('A', 'h', 'kc', 2, 11)),
288 (self.endAlignmentNumberPage, ('A',)),
289 (self.showAlignmentNumberPage, ('B', 'v', 'kc', 2, 11)),
290 (self.endAlignmentNumberPage, ('B',)),
291 (self.showAlignmentNumberPage, ('C', 'v', 'k', 2, 11)),
292 (self.endAlignmentNumberPage, ('C',)),
293 (self.setAlignButton, (BUTTON_ALIGN,)),
294 (self.showAlignmentNumberPage, ('D', 'v', 'kc', 2, 11)),
295 (self.endAlignmentNumberPage, ('D',)),
296 (maint.alignType3Phase2, (lambda: self.dev, lambda: self.a, lambda: self.b,
297 lambda: self.c, lambda: self.d)),
301 ALIGN_TYPE_LBOW : [ # 10
302 (self.showLoadPaperPage, None),
303 (maint.alignType10Phase1, (lambda: self.dev,)),
304 (self.setAlignButton, (BUTTON_ALIGN,)),
305 (self.showLBowPage, (lambda: self.pattern,)),
306 (self.endLBowPage, None), # sets values
307 (maint.alignType10Phase2, (lambda: self.dev, lambda: self.values,
308 lambda: self.pattern)),
309 (self.setAlignButton, (BUTTON_FINISH,)),
310 (self.showLoadPaperPage, (lambda: True,)),
311 (maint.alignType10Phase3, (lambda: self.dev,)),
315 ALIGN_TYPE_LIDIL_0_5_4 : [ # 11
316 (self.showLoadPaperPage, None),
317 (maint.alignType11Phase1, (lambda: self.dev,)),
318 (self.setAlignButton, (BUTTON_ALIGN,)),
319 (self.showLBowPage, (lambda: self.pattern,)),
320 (self.endLBowPage, None), # sets values
321 (maint.alignType11Phase2, (lambda: self.dev, lambda: self.values,
322 lambda: self.pattern, lambda: self.dev.pen_config)),
323 (self.setAlignButton, (BUTTON_FINISH,)),
324 (self.showLoadPaperPage, (lambda: True,)),
325 (maint.alignType11Phase3, (lambda: self.dev,)),
329 ALIGN_TYPE_OJ_PRO : [ # 12
330 (self.showLoadPaperPage, None),
331 (maint.AlignType12, (lambda : self.dev, lambda: true)),
335 ALIGN_TYPE_AIO : [ #13
336 (self.showLoadPaperPage, None),
337 (maint.alignType13Phase1, (lambda: self.dev,)),
338 (self.setAlignButton, (BUTTON_FINISH,)),
339 (self.showAioPage, None),
343 ALIGN_TYPE_LIDIL_DJ_D1600 : [ # 14
344 (self.showLoadPaperPage, None),
345 (maint.alignType14Phase1, (lambda: self.dev,)),
346 (self.setAlignButton, (BUTTON_ALIGN,)),
347 (self.showLBowPage, (lambda: self.pattern,)),
348 (self.endLBowPage, None), # sets values
349 (maint.alignType14Phase2, (lambda: self.dev, lambda: self.values,
350 lambda: self.pattern, lambda: self.dev.pen_config)),
351 (self.setAlignButton, (BUTTON_FINISH,)),
352 (self.showLoadPaperPage, (lambda: True,)),
353 (maint.alignType14Phase3, (lambda: self.dev,)),
357 ALIGN_TYPE_LEDM : [ # 15
358 (self.showLoadPaperPage, None),
359 (maint.AlignType15Phase1, (lambda : self.dev, lambda: self.showAioPage)),
363 ALIGN_TYPE_LEDM_MANUAL : [ # 16
364 (self.showLoadPaperPage, None),
365 (maint.AlignType15Phase1, (lambda : self.dev, lambda: true)),
366 (self.showAlignmentNumberPage, ('A', 'v', 'kc', 3, 23)),
367 (self.endAlignmentNumberPage, ('A',)),
368 (self.showAlignmentNumberPage, ('B', 'h', 'kc', 3, 11)),
369 (self.endAlignmentNumberPage, ('B',)),
370 (self.showAlignmentNumberPage, ('C', 'v', 'k', 3, 23)),
371 (self.endAlignmentNumberPage, ('C',)),
372 (self.showAlignmentNumberPage, ('D', 'v', 'c', 3, 23)),
373 (self.endAlignmentNumberPage, ('D',)),
374 (self.showAlignmentNumberPage, ('E', 'h', 'k', 3, 11)),
375 (self.endAlignmentNumberPage, ('E',)),
376 (self.showAlignmentNumberPage, ('F', 'h', 'k', 3, 11)),
377 (self.endAlignmentNumberPage, ('F',)),
378 (self.showAlignmentNumberPage, ('G', 'h', 'k', 3, 11)),
379 (self.endAlignmentNumberPage, ('G',)),
380 (self.showAlignmentNumberPage, ('H', 'v', 'k', 3, 9)),
381 (self.endAlignmentNumberPage, ('H',)),
382 (self.showAlignmentNumberPage, ('I', 'v', 'c', 3, 9)),
383 (self.endAlignmentNumberPage, ('I',)),
384 (maint.AlignType16Phase1, (lambda: self.dev, lambda: self.a, lambda: self.b,
385 lambda: self.c, lambda: self.d, lambda: self.e,
386 lambda: self.f, lambda: self.g, lambda: self.h,
390 ALIGN_TYPE_LEDM_FF_CC_0 : [ # 17
391 (self.showLoadPaperPage, None),
392 (maint.AlignType17Phase1, (lambda : self.dev, lambda: self.showAioPage)),
400 QTimer.singleShot(0, self.nextSequence)
404 # connect signals/slots
405 self.connect(self.CancelButton, SIGNAL("clicked()"), self.CancelButton_clicked)
406 self.connect(self.NextButton, SIGNAL("clicked()"), self.NextButton_clicked)
407 #self.connect(self.BackButton, SIGNAL("clicked()"), self.BackButton_clicked)
408 self.connect(self.DeviceComboBox, SIGNAL("DeviceUriComboBox_noDevices"), self.DeviceUriComboBox_noDevices)
409 self.connect(self.DeviceComboBox, SIGNAL("DeviceUriComboBox_currentChanged"), self.DeviceUriComboBox_currentChanged)
410 self.DeviceComboBox.setFilter({'align-type': (operator.gt, 0)})
413 self.setWindowIcon(QIcon(load_pixmap('hp_logo', '128x128')))
416 self.DeviceComboBox.setInitialDevice(self.device_uri)
419 def DeviceUriComboBox_noDevices(self):
420 FailureUI(self, self.__tr("<b>No devices that support print cartridge alignment found.</b><p>Click <i>OK</i> to exit.</p>"))
424 def DeviceUriComboBox_currentChanged(self, device_uri):
425 self.device_uri = device_uri
428 def CancelButton_clicked(self):
432 def NextButton_clicked(self):
436 def nextSequence(self):
439 seq, params = self.seq[self.align_type][self.seq_index]
447 self.new_page = False
450 if params is not None:
458 log.debug("%s(%s)" % (seq.func_name, ','.join([repr(x) for x in t])))
459 except AttributeError:
478 def showStartPage(self):
479 # self.BackButton.setEnabled(False)
480 num_devices = self.DeviceComboBox.setDevices()
486 self.DeviceComboBox.updateUi()
487 self.displayPage(PAGE_START)
490 def endStartPage(self):
491 self.mq = device.queryModelByURI(self.device_uri)
492 self.align_type = self.mq.get('align-type', ALIGN_TYPE_NONE)
495 #self.align_type = ALIGN_TYPE_TEST# XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
497 log.debug("align-type=%d" % self.align_type)
498 self.step_max = self.max_steps[self.align_type]
501 self.dev = device.Device(self.device_uri)
507 def showLoadPaperPage(self, finish=False):
509 self.LoadPaper.button_name = self.__tr("Finish >")
510 self.LoadPaper.updateUi()
511 self.displayPage(PAGE_LOAD_PAPER)
514 def endLoadPaperPage(self):
518 def showAlignmentNumberPage(self, line_id, orientation, colors, line_count, choice_count):
519 # line_id: 'A', 'B', etc.
520 # orientation: 'v' or 'h'
521 # colors: 'k' or 'c' or 'kc'
523 # choice_count: 5, 7, 9, 11, etc. (odd)
524 self.AlignmentNumberTitle.setText(self.__tr("From the printed Alignment page, Choose the set of lines in group %1 where the line segments are <b>best</b> aligned.").arg(line_id))
525 self.AlignmentNumberIcon.setPixmap(load_pixmap('%s-%s-%d' % (orientation, colors, line_count), 'other'))
526 self.AlignmentNumberComboBox.clear()
528 for x in range(choice_count):
529 self.AlignmentNumberComboBox.addItem(QString("%1%2").arg(line_id).arg(x+1))
531 self.displayPage(PAGE_ALIGNMENT_NUMBER)
535 def endAlignmentNumberPage(self, line_id):
536 v = int(str(self.AlignmentNumberComboBox.currentText())[1:])
540 log.debug("A=%d" % v)
544 log.debug("B=%d" % v)
548 log.debug("C=%d" % v)
552 log.debug("D=%d" % v)
556 log.debug("E=%d" % v)
560 log.debug("F=%d" % v)
564 log.debug("G=%d" % v)
568 log.debug("H=%d" % v)
572 log.debug("I=%d" % v)
574 def showPageEdgePage(self, prefix=None, count=13):
575 self.PageEdgeTitle.setText(self.__tr("Choose the <b>numbered arrow</b> that <b>best </b>marks the edge of the paper."))
576 self.PageEdgeIcon.setPixmap(load_pixmap('zca.png', 'other'))
578 self.PageEdgeComboBox.clear()
579 for x in range(count):
581 self.PageEdgeComboBox.addItem(QString("%1").arg(x+1))
583 self.PageEdgeComboBox.addItem(QString("%1%2").arg(prefix).arg(x+1)) # for xBow
585 self.displayPage(PAGE_EDGE)
588 def endPageEdgePage(self):
589 v = int(str(self.PageEdgeComboBox.currentText())[1:])
591 log.debug("ZCA=%d" % v)
594 def showLBowPage(self, pattern):
595 self.LBowIcon.setPixmap(load_pixmap('align10', 'other'))
597 if self.align_type == ALIGN_TYPE_LBOW:
598 pattern = maint.alignType10SetPattern(self.dev)
600 elif self.align_type == ALIGN_TYPE_LIDIL_DJ_D1600:
601 pattern = maint.alignType14SetPattern(self.dev)
603 else: # ALIGN_TYPE_LIDIL_0_5_4
604 pattern = maint.alignType11SetPattern(self.dev)
607 log.error("Invalid pattern!")
610 self.controls = maint.align10and11and14Controls(pattern, self.align_type)
611 keys = self.controls.keys()
615 if self.controls[line][0]:
620 self.LBowTitle.setText(self.__tr("For each row A - %1, select the label representing the box in which in the inner lines are the <b>least</b> visible.").arg(max_line))
622 for line in self.controls:
623 if not self.controls[line][0]:
624 eval('self.%sComboBox.setEnabled(False)' % line.lower())
626 for x in range(self.controls[line][1]):
627 eval('self.%sComboBox.addItem("%s%d")' % (line.lower(), line, x + 1))
629 self.displayPage(PAGE_LBOW)
633 def endLBowPage(self):
635 controls = self.controls.keys()
638 for line in controls:
639 if not self.controls[line][0]:
640 self.values.append(0)
642 exec('selected = unicode(self.%sComboBox.currentText())' % line.lower())
644 selected = int(selected[1:])
648 self.values.append(selected)
651 def showAioPage(self):
652 self.AioIcon.setPixmap(load_pixmap('aio_align', 'other'))
653 self.displayPage(PAGE_AIO)
656 def endAioPage(self):
660 def showColorAdjustPage(self, line_id, count=21):
661 self.ColorAdjustComboBox.clear()
662 self.ColorAdjustIcon.setPixmap(load_pixmap('color_adj', 'other'))
663 self.ColorAdjustLabel.setText(self.__tr("Line %1:").arg(line_id))
665 for x in range(count):
666 self.ColorAdjustComboBox.addItem(QString("%1%2").arg(line_id).arg(x+1))
668 self.displayPage(PAGE_COLOR_ADJ)
671 def endColorAdjustPage(self, line_id):
672 v = int(str(self.ColorAdjustComboBox.currentText())[1:])
676 log.debug("F=%d" % v)
680 log.debug("G=%d" % v)
683 def showFrontPanelPage(self):
684 # self.BackButton.setEnabled(False)
685 self.setAlignButton(BUTTON_FINISH)
686 self.displayPage(PAGE_FRONT_PANEL)
689 def endFronPanelPage(self):
693 # ALIGN-TYPE SPECIFIC
696 def checkType2PenConfig(self):
698 # TODO: set abort if problem
701 def alignType8Phase1(self):
702 self.num_inks = maint.alignType8Phase1(self.dev)
706 # TODO: set abort if invalid pen config
707 self.real_align_type = self.align_type
708 self.align_type = ALIGN_TYPE_XBOW_OFFSET + self.dev.pen_config
712 def setXBowValues(self):
713 if self.real_align_type == ALIGN_TYPE_LIDIL_0_3_8:
714 maint.alignType4Phase2(self.dev, self.zca, self.b, self.c, self.d, self.e)
715 maint.alignType4Phase3(self.dev)
717 elif self.real_align_type == ALIGN_TYPE_LIDIL_0_4_3:
718 maint.alignType5Phase2(self.dev, self.zca, self.b, self.c, self.d, self.e, self.f, self.g)
719 maint.alignType5Phase3(self.dev)
721 elif self.real_align_type == ALIGN_TYPE_LIDIL_VIP:
722 maint.alignType7Phase2(self.dev, self.zca, self.b, self.c, self.d, self.e, self.f, self.g)
723 maint.alignType7Phase3(self.dev)
730 def displayPage(self, page):
731 self.updateStepText(self.step)
734 self.StackedWidget.setCurrentIndex(page)
739 self.new_page = False
742 def updateStepText(self, p=None):
743 if p is None or not self.step_max:
744 self.StepText.setText(QString(""))
746 self.StepText.setText(self.__tr("Step %1 of %2").arg(p).arg(self.step_max))
749 def setAlignButton(self, typ=BUTTON_ALIGN):
750 if typ == BUTTON_ALIGN:
751 self.NextButton.setText(self.__tr("Align"))
752 elif typ == BUTTON_NEXT:
753 self.NextButton.setText(self.__tr("Next >"))
754 elif typ == BUTTON_FINISH:
755 self.NextButton.setText(self.__tr("Finish"))
758 def setPenConfig(self):
759 self.dev.pen_config = status.getPenConfiguration(self.dev.getStatusFromDeviceID())
763 if self.dev is not None:
767 def __tr(self,s,c = None):
768 return qApp.translate("AlignDialog",s,c)