1
# -*- coding: utf-8 -*-
3
# (c) Copyright 2011-2014 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: Amarnath Chitumalla
28
from base import utils
30
from base.codes import *
31
from ui_utils import *
35
from PyQt4.QtCore import *
36
from PyQt4.QtGui import *
38
from PyQt4 import QtCore, QtGui
40
class Ui_Dialog(object):
41
def setupUi(self, Dialog, printerName, device_uri,Error_msg):
42
Dialog.setObjectName("Dialog")
43
Dialog.resize(700, 180)
44
self.printerName=printerName
45
self.device_uri=device_uri
46
self.Error_msg=Error_msg
47
self.gridlayout = QtGui.QGridLayout(Dialog)
48
self.gridlayout.setObjectName("gridlayout")
49
self.StackedWidget = QtGui.QStackedWidget(Dialog)
50
self.StackedWidget.setObjectName("StackedWidget")
51
self.page = QtGui.QWidget()
52
self.page.setObjectName("page")
53
self.gridlayout1 = QtGui.QGridLayout(self.page)
54
self.gridlayout1.setObjectName("gridlayout1")
55
self.label = QtGui.QLabel(self.page)
58
self.label.setFont(font)
59
self.label.setObjectName("label")
60
self.gridlayout1.addWidget(self.label, 0, 0, 1, 1)
61
self.line = QtGui.QFrame(self.page)
62
self.line.setFrameShape(QtGui.QFrame.HLine)
63
self.line.setFrameShadow(QtGui.QFrame.Sunken)
64
self.line.setObjectName("line")
65
self.gridlayout1.addWidget(self.line, 1, 0, 1, 2)
66
self.TitleLabel = QtGui.QLabel(self.page)
67
self.TitleLabel.setWordWrap(True)
68
self.TitleLabel.setObjectName("TitleLabel")
69
self.gridlayout1.addWidget(self.TitleLabel, 2, 0, 1, 2)
70
spacerItem = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
71
spacerItem2 = QtGui.QSpacerItem(200, 51, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
72
self.gridlayout1.addItem(spacerItem2, 5, 1, 1, 1)
73
self.StackedWidget.addWidget(self.page)
74
self.gridlayout.addWidget(self.StackedWidget, 0, 0, 1, 5)
75
self.line_2 = QtGui.QFrame(Dialog)
76
self.line_2.setFrameShape(QtGui.QFrame.HLine)
77
self.line_2.setFrameShadow(QtGui.QFrame.Sunken)
78
self.line_2.setObjectName("line_2")
79
self.gridlayout.addWidget(self.line_2, 1, 0, 1, 4)
80
self.NextButton = QtGui.QPushButton(Dialog)
81
self.NextButton.setObjectName("NextButton")
82
self.gridlayout.addWidget(self.NextButton, 2, 3, 1, 1)
83
self.CancelButton = QtGui.QPushButton(Dialog)
84
self.CancelButton.setObjectName("CancelButton")
85
self.gridlayout.addWidget(self.CancelButton, 2, 4, 1, 1)
87
self.retranslateUi(Dialog)
88
self.StackedWidget.setCurrentIndex(0)
89
QtCore.QMetaObject.connectSlotsByName(Dialog)
91
def retranslateUi(self, Dialog):
92
Dialog.setWindowTitle(QtGui.QApplication.translate("Dialog", "HP Device Manager - Queues diagnose", None, QtGui.QApplication.UnicodeUTF8))
93
if self.Error_msg == QUEUES_PAUSED:
94
self.label.setText(QtGui.QApplication.translate("Dialog", "Print/Fax Queue is Paused", None, QtGui.QApplication.UnicodeUTF8))
96
self.label.setText(QtGui.QApplication.translate("Dialog", "Queue needs to be reconfigured", None, QtGui.QApplication.UnicodeUTF8))
98
if self.Error_msg == QUEUES_INCORRECT_PPD:
99
text= "'"+ self.printerName + "' is using incorrect PPD file. Do you want to remove and reconfigure queue?"
100
elif self.Error_msg == QUEUES_PAUSED:
101
text="'"+ self.printerName + "' is paused. Do you want to enable queue?"
102
elif self.Error_msg == QUEUES_CONFIG_ERROR:
103
text="'"+ self.printerName + "' is not configured using hp-setup utility. Click 'Next' to remove and reconfigure queue."
105
if self.Error_msg != QUEUES_MSG_SENDING:
106
self.TitleLabel.setText(QtGui.QApplication.translate("Dialog", text, None, QtGui.QApplication.UnicodeUTF8))
107
if self.Error_msg == QUEUES_PAUSED or self.Error_msg == QUEUES_INCORRECT_PPD:
108
self.NextButton.setText(QtGui.QApplication.translate("Dialog", "Yes", None, QtGui.QApplication.UnicodeUTF8))
109
self.CancelButton.setText(QtGui.QApplication.translate("Dialog", "No", None, QtGui.QApplication.UnicodeUTF8))
111
self.NextButton.setText(QtGui.QApplication.translate("Dialog", "Next >", None, QtGui.QApplication.UnicodeUTF8))
112
self.CancelButton.setText(QtGui.QApplication.translate("Dialog", "Cancel", None, QtGui.QApplication.UnicodeUTF8))
117
class QueuesDiagnose(QDialog, Ui_Dialog):
118
def __init__(self, parent, printerName, device_uri, Error_msg):
119
QDialog.__init__(self, parent)
121
self.printerName = printerName
122
self.device_uri = device_uri
123
self.Error_msg = Error_msg
124
self.setupUi(self, printerName, device_uri,Error_msg)
125
self.user_settings = UserSettings()
126
self.user_settings.load()
127
self.user_settings.debug()
133
# connect signals/slots
134
self.connect(self.CancelButton, SIGNAL("clicked()"), self.CancelButton_clicked)
135
self.connect(self.NextButton, SIGNAL("clicked()"), self.NextButton_clicked)
138
self.setWindowIcon(QIcon(load_pixmap('hp_logo', '128x128')))
144
def displayPage(self, page):
145
self.updateStepText(page)
146
self.StackedWidget.setCurrentIndex(page)
148
def CancelButton_clicked(self):
152
def NextButton_clicked(self):
154
if self.Error_msg != QUEUES_PAUSED:
155
cups.delPrinter(self.printerName)
156
msg="' "+self.printerName+" ' removed successfully.\nRe-configuring this printer by hp-setup..."
158
path = utils.which('hp-setup')
160
log.debug("Starting hp-setup")
161
utils.run('hp-setup')
164
cups.enablePrinter(self.printerName)
165
msg ="'"+self.printerName+"' is enabled successfully"
166
SuccessUI(self, self.__tr(msg))
173
def showMessage(self,msg):
174
FailureUI(self, self.__tr(msg))
176
def showSuccessMessage(self,msg):
177
SuccessUI(self, self.__tr(msg))
179
def __tr(self,s,c = None):
180
return qApp.translate("PluginDialog",s,c)