~mimose/+junk/hplip-3.16.11

« back to all changes in this revision

Viewing changes to ui/chooseprinterdlg.py

  • Committer: guoyalong
  • Date: 2017-09-20 10:13:05 UTC
  • Revision ID: guoyalong@kylinos.cn-20170920101305-82zaolzpv1qghz29
Modified debian/control & debian/rules.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
# -*- coding: utf-8 -*-
 
2
#
 
3
# (c) Copyright 2001-2015 HP Development Company, L.P.
 
4
#
 
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.
 
9
#
 
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.
 
14
#
 
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
 
18
#
 
19
# Author: Don Welch
 
20
#
 
21
 
 
22
from base.g import *
 
23
from base import device
 
24
from base.sixext import  to_unicode
 
25
import sys
 
26
from qt import *
 
27
 
 
28
class ChoosePrinterDlg(QDialog):
 
29
    def __init__(self, printers, back_end_filter=['hp'], parent = None,name = None,modal = 0,fl = 0, show_uris=True):
 
30
        QDialog.__init__(self,parent,name,modal,fl)
 
31
 
 
32
        if not name:
 
33
            self.setName("ChooseDeviceDlg")
 
34
 
 
35
        self.device_uri = ''
 
36
        self.printer_name = ''
 
37
        self.back_end_filter = back_end_filter
 
38
 
 
39
        ChooseDeviceDlg_Layout = QGridLayout(self,1,1,6,6,"ChooseDeviceDlg_Layout")
 
40
 
 
41
        self.OKButton = QPushButton(self,"OKButton")
 
42
 
 
43
        ChooseDeviceDlg_Layout.addWidget(self.OKButton,2,2)
 
44
 
 
45
        self.CancelButton = QPushButton(self,"CancelButton")
 
46
 
 
47
        ChooseDeviceDlg_Layout.addWidget(self.CancelButton,2,1)
 
48
        spacer1 = QSpacerItem(391,20,QSizePolicy.Expanding,QSizePolicy.Minimum)
 
49
        ChooseDeviceDlg_Layout.addItem(spacer1,2,0)
 
50
        spacer2 = QSpacerItem(20,290,QSizePolicy.Minimum,QSizePolicy.Expanding)
 
51
        ChooseDeviceDlg_Layout.addItem(spacer2,1,0)
 
52
 
 
53
        self.DevicesButtonGroup = QButtonGroup(self,"DevicesButtonGroup")
 
54
        self.DevicesButtonGroup.setColumnLayout(0,Qt.Vertical)
 
55
        self.DevicesButtonGroup.layout().setSpacing(6)
 
56
        self.DevicesButtonGroup.layout().setMargin(6)
 
57
        DevicesButtonGroupLayout = QGridLayout(self.DevicesButtonGroup.layout())
 
58
        DevicesButtonGroupLayout.setAlignment(Qt.AlignTop)
 
59
 
 
60
        self.radio_buttons = {}
 
61
 
 
62
        self.printer_index, x = {}, 0
 
63
        for p in printers:
 
64
            try:
 
65
                back_end, is_hp, bus, model, serial, dev_file, host, zc, port = \
 
66
                    device.parseDeviceURI(p.device_uri)
 
67
 
 
68
            except Error:
 
69
                continue
 
70
 
 
71
            if back_end in back_end_filter:
 
72
                self.printer_index[x] = (p.name, p.device_uri)
 
73
                x += 1
 
74
 
 
75
 
 
76
        for y in range(len(self.printer_index)):
 
77
            if y == 0:
 
78
                self.device_uri = self.printer_index[y][1]
 
79
                self.printer_name = self.printer_index[y][0]
 
80
 
 
81
            self.radio_buttons[y] = QRadioButton(self.DevicesButtonGroup,"radioButton%d" % y)
 
82
 
 
83
            if show_uris:
 
84
                self.radio_buttons[y].setText("%s  (%s)" % self.printer_index[y])
 
85
            else:
 
86
                self.radio_buttons[y].setText(self.printer_index[y])
 
87
 
 
88
            DevicesButtonGroupLayout.addWidget(self.radio_buttons[y], y, 0)
 
89
 
 
90
        self.radio_buttons[0].setChecked(1)
 
91
 
 
92
        ChooseDeviceDlg_Layout.addMultiCellWidget(self.DevicesButtonGroup,0,0,0,2)
 
93
 
 
94
        self.languageChange()
 
95
 
 
96
        self.resize(QSize(592,112).expandedTo(self.minimumSizeHint()))
 
97
        self.clearWState(Qt.WState_Polished)
 
98
 
 
99
        self.connect(self.OKButton,SIGNAL("clicked()"),self,SLOT("accept()"))
 
100
        self.connect(self.CancelButton,SIGNAL("clicked()"),self,SLOT("reject()"))
 
101
        self.connect(self.DevicesButtonGroup,SIGNAL("clicked(int)"),self.DevicesButtonGroup_clicked)
 
102
 
 
103
    def languageChange(self):
 
104
        self.setCaption(self.__tr("Choose Device"))
 
105
        self.OKButton.setText(self.__tr("OK"))
 
106
        self.CancelButton.setText(self.__tr("Cancel"))
 
107
 
 
108
        if 'hp' in self.back_end_filter and 'hpfax' in self.back_end_filter:
 
109
            self.DevicesButtonGroup.setTitle(self.__tr("Available Devices:"))
 
110
        elif 'hp' in self.back_end_filter:
 
111
            self.DevicesButtonGroup.setTitle(self.__tr("Available Printers:"))
 
112
        elif 'hpfax' in self.back_end_filter:
 
113
            self.DevicesButtonGroup.setTitle(self.__tr("Available Faxes:"))
 
114
        else:
 
115
            self.DevicesButtonGroup.setTitle(self.__tr("Available Devices:"))
 
116
 
 
117
    def __tr(self,s,c = None):
 
118
        return qApp.translate("ChooseDeviceDlg",s,c)
 
119
 
 
120
    def DevicesButtonGroup_clicked(self,a0):
 
121
        for p in self.printer_index:
 
122
            pp = self.printer_index[p]
 
123
            if to_unicode(self.radio_buttons[a0].text()).startswith(pp[0]):
 
124
                self.device_uri = pp[1]
 
125
                self.printer_name = pp[0]
 
126
                break
 
127
 
 
128
 
 
129
 
 
130
class ChoosePrinterDlg2(QDialog):
 
131
    def __init__(self, printers, parent = None,name = None,modal = 0,fl = 0):
 
132
        QDialog.__init__(self,parent,name,modal,fl)
 
133
 
 
134
        self.printers = printers
 
135
 
 
136
        if not name:
 
137
            self.setName("ChooseDeviceDlg2")
 
138
 
 
139
        ChooseDeviceDlg_Layout = QGridLayout(self,1,1,6,6,"ChooseDeviceDlg_Layout")
 
140
 
 
141
        self.OKButton = QPushButton(self,"OKButton")
 
142
 
 
143
        ChooseDeviceDlg_Layout.addWidget(self.OKButton,2,2)
 
144
 
 
145
        self.CancelButton = QPushButton(self,"CancelButton")
 
146
 
 
147
        ChooseDeviceDlg_Layout.addWidget(self.CancelButton,2,1)
 
148
        spacer1 = QSpacerItem(391,20,QSizePolicy.Expanding,QSizePolicy.Minimum)
 
149
        ChooseDeviceDlg_Layout.addItem(spacer1,2,0)
 
150
        spacer2 = QSpacerItem(20,290,QSizePolicy.Minimum,QSizePolicy.Expanding)
 
151
        ChooseDeviceDlg_Layout.addItem(spacer2,1,0)
 
152
 
 
153
        self.DevicesButtonGroup = QButtonGroup(self,"DevicesButtonGroup")
 
154
        self.DevicesButtonGroup.setColumnLayout(0,Qt.Vertical)
 
155
        self.DevicesButtonGroup.layout().setSpacing(6)
 
156
        self.DevicesButtonGroup.layout().setMargin(6)
 
157
        DevicesButtonGroupLayout = QGridLayout(self.DevicesButtonGroup.layout())
 
158
        DevicesButtonGroupLayout.setAlignment(Qt.AlignTop)
 
159
 
 
160
        self.radio_buttons = {}
 
161
 
 
162
        for y in range(len(self.printers)):
 
163
            if y == 0:
 
164
                self.printer_name = self.printers[0]
 
165
 
 
166
            self.radio_buttons[y] = QRadioButton(self.DevicesButtonGroup,"radioButton%d" % y)
 
167
            self.radio_buttons[y].setText(self.printers[y])
 
168
            DevicesButtonGroupLayout.addWidget(self.radio_buttons[y], y, 0)
 
169
 
 
170
        self.radio_buttons[0].setChecked(1)
 
171
 
 
172
        ChooseDeviceDlg_Layout.addMultiCellWidget(self.DevicesButtonGroup,0,0,0,2)
 
173
 
 
174
        self.languageChange()
 
175
 
 
176
        self.resize(QSize(592,112).expandedTo(self.minimumSizeHint()))
 
177
        self.clearWState(Qt.WState_Polished)
 
178
 
 
179
        self.connect(self.OKButton,SIGNAL("clicked()"),self,SLOT("accept()"))
 
180
        self.connect(self.CancelButton,SIGNAL("clicked()"),self,SLOT("reject()"))
 
181
        self.connect(self.DevicesButtonGroup,SIGNAL("clicked(int)"),self.DevicesButtonGroup_clicked)
 
182
 
 
183
    def languageChange(self):
 
184
        self.setCaption(self.__tr("Choose Printer"))
 
185
        self.OKButton.setText(self.__tr("OK"))
 
186
        self.CancelButton.setText(self.__tr("Cancel"))
 
187
 
 
188
        self.DevicesButtonGroup.setTitle(self.__tr("Printers:"))
 
189
 
 
190
    def __tr(self,s,c = None):
 
191
        return qApp.translate("ChooseDeviceDlg2",s,c)
 
192
 
 
193
    def DevicesButtonGroup_clicked(self,a0):
 
194
        self.printer_name = self.printers[a0]