##// END OF EJS Templates
segun diagrana 1era parte - no funciona ...
ralonso -
r75:76
parent child
Show More
@@ -1,269 +1,281
1 1 # -*- coding: utf-8 -*-
2 2
3 3 #class BKmanager:
4 4 # def __init__(self):
5 5
6 6 from subprocess import *
7 7 import sys
8 8 import os
9 9 import subprocess
10 10 import commands
11 11 import shutil
12 12
13 13 #--------------------------------------------- Entero a cadena agregando ceros delante -------------------------------------------------
14 14
15 15 def i2s(var_n, var_length=4):
16 16 var_n2=str(var_n)
17 17 while len(var_n2) < var_length:
18 18 var_n2 = "0"+var_n2
19 19 return var_n2
20 20
21 21
22 22 #----------------------------------------- Se verifica que la ruta exista y sea un directorio -------------------------------------------------
23 23
24 24 def dir_exists(var_dir, self):
25 25 if os.path.isdir(var_dir):
26 26 return True
27 27 else:
28 28 self.txtInfo.append("Incorrect path:" + str(var_dir))
29 29 return False
30 30
31 31
32 32 #-------------------------------- Se buscan los archivos del tipo especificado y se cargan las fechas -----------------------------
33 33
34 34 def load_days(self):
35 35
36 36 self.var_list=[]
37 37 self.lstStartDay.clear()
38 38 self.lstStopDay.clear()
39 39
40 40 if self.statusDpath == False:
41 41 self.btnGbkp.setEnabled(False)
42 42 return
43 43
44 44 if self.var_Dtype == '':
45 45 return
46 46
47 47 var_cmd="find " + str(self.var_Dpath) + " -name *."+ str(self.var_Dtype) +" | awk -F/ '{print substr($NF,2,7)}' | sort| uniq"
48 48 output=commands.getstatusoutput(var_cmd)[1]
49 49
50 50 #Si no se encuentra ningun archivo
51 51 if len(output) == 0:
52 52 self.txtInfo.append("File not found")
53 53 self.btnGbkp.setEnabled(False)
54 54 return
55 55
56 56 #Se cargan las listas para seleccionar StartDay y StopDay (QComboBox)
57 57 for i in range(0, (len(output)+1)/8):
58 58 self.var_list.append(output[8*i:8*(i+1)-1])
59 59
60 60 for i in self.var_list:
61 61 self.lstStartDay.addItem(i)
62 62 self.lstStopDay.addItem(i)
63 63 self.lstStopDay.setCurrentIndex(self.lstStartDay.count()-1)
64 64
65 65 get_sub_list(self)
66 66 self.btnGbkp.setEnabled(True)
67 67
68 68
69 69 #-------------------------------------------------- Obtiene el rango de las fechas seleccionadas -----------------------------------------
70 70
71 71 def get_sub_list(self):
72 72 self.var_sublist=[]
73 73 for i in self.var_list[self.lstStartDay.currentIndex():self.lstStartDay.currentIndex() + self.lstStopDay.currentIndex()+1]:
74 74 self.var_sublist.append(i)
75 75
76 76
77 77 #----------------------------------------------------- Verifica los parametros faltantes -----------------------------------------------------------
78 78
79 79 def validate_parameters(self):
80 80 #Verifica que las ruta del proyecto sea valida
81 81 if self.statusRpath == False:
82 82 self.txtInfo.append("Incorrect proyect path")
83 83 return False
84 84
85 85 #Verifica la etiqueta
86 86 if len(self.var_Elabel) == 0:
87 87 self.txtInfo.append("Enter label")
88 88 return False
89 89
90 90 return True
91 91
92 92
93 93 #------------------------------------------------- Crea directorios en la ruta indicada -----------------------------------------------------------
94 94
95 95 def make_dirs(list_dirs, self):
96 96 """
97 97
98 98 """
99 99
100 100 for var_dir in list_dirs:
101 101 shutil.rmtree(self.var_Rpath+'/'+var_dir, True)
102 102 var_output=commands.getstatusoutput("mkdir -p "+self.var_Rpath+'/'+var_dir)[0]
103 103 if var_output != 0:
104 104 self.txtInfo.append("Error creating directory: "+var_dir+", output_error:" + str(var_output))
105 105 return False
106 106 self.txtInfo.append('Directories created correctly')
107 107 return True
108 108
109 109
110 110 #-------------------------------------------- Busca los archivos con los parametros de busqueda ---------------------------------------
111 111
112 112 def list_files(self):
113 113 var_files_list=[]
114 114 for var_doy in self.var_sublist:
115 115 var_cmd="find " + str(self.var_Dpath) + " -name ?"+var_doy+"???."+ str(self.var_Dtype) + " |sort"
116 116 var_output=commands.getstatusoutput(var_cmd)[1]
117 117 for var_file in var_output.split():
118 118 var_files_list.append(var_file) #Almacena cada archivo en la lista
119 119 return var_files_list
120 120
121 121
122 122 #--------------- Genera la lista de archivos .dat que contienen los archivos a grabar en cada DVD -----------------------
123 123
124 124 def make_files_dat(var_files_list, self):
125 125 var_Rpath_ppath=self.var_Rpath+"/ppath" #Ruta de los archivos a grabar
126 126 var_n=1 #Numero del DVD actual
127 127 var_tmp=0 #Se usa para acumular el tamaño de los archivos de la lista
128 128 var_files_list_2=[] #Se usa para almacenar la lista de archivos agrbar en cada DVD
129 129
130 130 for i in var_files_list: #Se asignan en i los archivos de la lista
131 131
132 132 var_size_i=os.path.getsize(i)/1024+1 #tamaño en KB del archivo de la lista, se suma 1 KB para evitar problemas al momento de sumar
133 133 var_tmp += var_size_i #Se acumulan el tamaño de los archivos de la lista
134 134
135 135 #Si el tamaño acumulado es mayor que el de el DVD
136 136 if var_tmp > (self.var_Dcapacity * 1024):
137 137 var_tmp -= var_size_i #se quita el tamaño sumado para mostrar el tamaño real
138 138 #se crea un archivo con numeral en el sufijo y extension .dat
139 139 var_file = open(var_Rpath_ppath+"/"+self.var_Elabel+"_"+i2s(var_n)+".dat","w")
140 140 #Se añade la lista de archivos a grabar en el DVD al archivo .dat
141 141 for line in var_files_list_2:
142 142 var_tmp_path=line.split(self.var_Dpath)[1][:-13]
143 143 var_file.write(var_tmp_path+'='+line+'\n')
144 144 var_file.close()
145 145
146 146 var_tmp = var_size_i #Se asigna a la variable el tamaño del archivo actual
147 147 var_files_list_2=[] #Se reinicia la lista
148 148 var_n += 1
149 149 var_files_list_2.append(i)
150 150
151 151 #se crea un archivo con numeral en el sufijo y extension .dat
152 152 var_file = open(var_Rpath_ppath+"/"+self.var_Elabel+"_"+i2s(var_n)+".dat","w")
153 153 #Se añade la lista de archivos a grabar en el DVD al archivo .dat
154 154 for line in var_files_list_2:
155 155 var_tmp_path=line.split(self.var_Dpath)[1][:-13]
156 156 var_file.write(var_tmp_path+'='+line+'\n')
157 157 var_file.close()
158 158
159 159 self.txtInfo.append("configuration files created")
160 160 return var_n
161 161
162 162
163 163 #------------------------------ Genera los archivos .print con los cuales se creara los postscript -----------------------------------
164 164
165 165 def make_files_print(self):
166 166
167 167 var_Rpath_ppath=self.var_Rpath+"/ppath" #Ruta de los archivos a grabar
168 168 var_Rpath_gpath=self.var_Rpath+"/gpath" #Ruta de los archivos postscript
169 169 var_labels=[]
170 170 for m in range (0, self.txtPSgraphic.value() - 1):
171 171 var_lines = "\n" * 9
172 172 var_labels.append(var_lines)
173 173
174 174 # Se leen todos los archivos .dat creados para crear las etiquetas en los archivos .print
175 175 for var_n in range(1, self.var_Discs + 1):
176 176
177 177 #se abren los archivos .dat en modo lectura
178 178 var_file = open(var_Rpath_ppath+"/"+self.var_Elabel+"_"+i2s(var_n)+".dat","r")
179 179 lines=var_file.readlines() # Se lee las lineas en el archivo y se almacenan en la lista
180 180 var_file.close()
181 181 list_files=[]
182 182 var_lines=[]
183 183
184 184 for j in range(0, len(lines)):
185 185
186 186 if j == 0:
187 187 var_first_folder = lines[j].split('=')[0]
188 188 var_first_file = (lines[j].split('=')[1])[:-1]
189 189 continue
190 190
191 191 var_tmp_folder = lines[j].split('=')[0]
192 192 var_tmp_file = (lines[j].split('=')[1])[:-1]
193 193
194 194 # Si el subfolder superior o el DOY del archivo actual y el anterior son diferentes
195 195 if (var_tmp_folder != var_first_folder) or (var_tmp_file[0:-5] != var_first_file[0:-5]):
196 196 var_last_file = (lines[j-1].split('=')[1])[:-1]
197 197 list_files.append([var_first_folder, var_first_file, var_last_file])
198 198
199 199 var_first_folder = lines[j].split('=')[0]
200 200 var_first_file = (lines[j].split('=')[1])[:-1]
201 201
202 202 var_last_file = (lines[-1].split('=')[1])[:-1]
203 203 list_files.append([var_first_folder, var_first_file, var_last_file])
204 204
205 205 var_lines2 = lines_print(list_files, self.var_Elabel)
206 206
207 207 for k in range(0, len(var_lines2) / 5):
208 208 var_lines=["\n"]
209 209 var_lines.append(" "+self.var_Elabel+" "+i2s(var_n)+"/"+i2s(self.var_Discs)+"\n")
210 210 var_lines.append("Year Doy Folder"+" "*6+"Set"+" "*9+"Time range\n")
211 211 var_lines.extend(var_lines2[(5*k):(5*(k+1))])
212 212 var_lines.append("\n")
213 213 var_labels.append(var_lines)
214 214
215 215 for i in range(0, (len(var_labels) // 33) +1 ):
216 216 var_file=var_Rpath_gpath+"/"+self.var_Elabel+"_"+i2s(i+1)
217 217 file_ps = open(var_file+".print","w")
218 218 if i == (len(var_labels) // 33):
219 219 var_sub_labels = var_labels[33*i:]
220 220 else:
221 221 var_sub_labels = var_labels[33*i:33*(i+1)]
222 222
223 223 for label in var_sub_labels:
224 224 for line in label:
225 225 file_ps.write(line)
226 226 file_ps.close()
227 227 var_cmd="enscript "+var_file+".print -p "+var_file+".ps -f Times-Roman7 " \
228 228 +" -3R -j -B --margins=21.25:20.4:25.51:20 --media=A4"
229 229 var_output=commands.getstatusoutput(var_cmd)[0]
230 230
231 231
232 232 def lines_print(list_files, var_Elabel):
233 233 """
234 234 Devuelve las lineas del rango de archivos de cada etiqueta segun el formato
235 235 """
236 236 var_lines=[]
237 237 for i in list_files:
238 238
239 239 # Si el archivo se grabara directamente en la / del DVD y no en un /directorio/
240 240 # se usa la etiqueta para indicar la parte de la etiqueta donde va el subdirectorio
241 241 if i[0] == '/':
242 242 var_folder = var_Elabel
243 243 else:
244 244 var_folder = i[0].split('/')[-2]
245 245
246 246 var_first_file = i[1]
247 247 var_last_file = i[2]
248 248
249 249 var_date_first_file=commands.getstatusoutput("date -r "+var_first_file+" +'%T'")[1]
250 250 var_date_last_file=commands.getstatusoutput("date -r "+var_last_file+" +'%T'")[1]
251 251
252 var_lines.append(var_first_file[-12:-8]+" "+var_first_file[-8:-5]+" "+var_folder +" "+var_first_file[-5:-2]+" "
253 +var_last_file[-5:-2]+" "+var_date_first_file+" "+var_date_last_file+"\n")
252 var_lines.append(var_first_file[-12:-8]+" "+var_first_file[-8:-5]+" "+var_folder +" "+var_first_file[-5:-2]+"-"
253 +var_last_file[-5:-2]+" "+var_date_first_file+"-"+var_date_last_file+"\n")
254 254 #Nos aseguramos que sea un mutiplo de 5
255 255 while (len(var_lines) % 5) != 0:
256 256 var_lines.append("\n")
257 257
258 258 return var_lines
259 259
260 260 def cmd_iso(self):
261 261 var_Rpath_ppath=self.var_Rpath+"/ppath"
262 262 var_Rpath_iso=self.var_Rpath+"/iso"
263 263 #comando para la creacion del archivo.iso
264 264 file_dat=var_Rpath_ppath+"/"+self.var_Elabel+"_"+i2s(self.var_disc_n)+".dat"
265 265 file_iso=var_Rpath_iso+"/"+i2s(self.var_disc_n)+".iso"
266 266 var_cmd = 'genisoimage -hide-joliet-trans-tbl -joliet-long -r '
267 267 var_cmd += ' -A '+self.var_Elabel+' -V '+self.var_Elabel
268 268 var_cmd += ' -graft-points -path-list '+ file_dat+' -o '+file_iso
269 269 return var_cmd
270
271
272 def next_var_disc(self, error = False):
273 pass
274 # if self.var_copy_n < self.var_Copys:
275 # self.var_copy_n += 1
276 # self.var_step == 1:
277 #
278 # if self.var_disc_n < self.var_Discs:
279
280 pass
281
@@ -1,242 +1,248
1 1 # -*- coding: utf-8 -*-
2 2
3 3
4 4 from subprocess import *
5 5 import sys
6 6 import os
7 7 import subprocess
8 8 import commands
9 9
10 10 #----------------------------------------------------- Deteccion de los dispositivos de grabacion ---------------------------------------------------------------
11 11
12 12 def detect_devices(self):
13 13 """
14 14 Deteccion de los dispositvos de grabacion
15 15 """
16 16 #var_cmd="wodim --devices | grep /dev/ | awk -F\' '{print $2}'" #Funciona en consola pero no en python ¿?
17 17 var_cmd="wodim --devices | grep /dev/ | awk '{print $2}' | awk -F= '{print $2}'"
18 18
19 19 var_output = commands.getstatusoutput(var_cmd)
20 20 if var_output[0] != 0:
21 21 self.txtInfo.append("No recording devices")
22 22 else:
23 # self.txtInfo.append("dispositivos encontrados")
24 23 var_devices = var_output[1].split('\n')
25 24
26 25 var_tmp=[]
27 26 for i in range(0, 4):
28 27 if i < len(var_devices):
29 28 var_len = len(var_devices[i])
30 29 var_tmp.append(var_devices[i][1:var_len - 1])
31 30 else:
32 31 var_tmp.append('')
33 32
34 33 #Se escriben los dispostivos correspodientes, si existen
35 34 self.txtDeviceA.setText(str(var_tmp[0]))
36 35 self.txtDeviceB.setText(str(var_tmp[1]))
37 36 self.txtDeviceC.setText(str(var_tmp[2]))
38 37 self.txtDeviceD.setText(str(var_tmp[3]))
39 38 #Se desactivan los que no existen
40 39 if len(var_tmp[0]) == 0 :
41 40 self.chkDevA.setChecked(False)
42 41 self.chkDevA.setEnabled(False)
43 42 if len(var_tmp[1]) == 0 :
44 43 self.chkDevB.setChecked(False)
45 44 self.chkDevB.setEnabled(False)
46 45 if len(var_tmp[2]) == 0 :
47 46 self.chkDevC.setChecked(False)
48 47 self.chkDevC.setEnabled(False)
49 48 if len(var_tmp[3]) == 0 :
50 49 self.chkDevD.setChecked(False)
51 50 self.chkDevD.setEnabled(False)
52 51
53 52 #----------------------------------- expulsa los dispositivos de grabacion --------------------------------------------
54 53
55 54 def eject_devices(self):
56 55 self.txtInfo.append("Ejecting recording devices")
57 56 return
58 57 for var_dev in self.var_devices:
59 58 var_cmd = 'eject ' + var_dev
60 59 commands.getstatusoutput(var_cmd)
61 60
62 61 #----------------------------------- listado de los dispositivos de grabacion seleccionados --------------------------------------------
63 62
64 63 def selected_devices(self):
65 64 self.var_devices=[]
66 65 if self.chkDevA.isChecked():
67 66 self.var_devices.append(str(self.txtDeviceA.text()))
68 67 if self.chkDevB.isChecked():
69 68 self.var_devices.append(str(self.txtDeviceB.text()))
70 69 if self.chkDevC.isChecked():
71 70 self.var_devices.append(str(self.txtDeviceC.text()))
72 71 if self.chkDevD.isChecked():
73 72 self.var_devices.append(str(self.txtDeviceD.text()))
74 73
75 74 if len(self.var_devices) == 0:
76 75 return False
77 76 else:
78 77 return True
79 78
80 79
81 80 #----------------------------------------------------- Inicializacion para pruebas---------------------------------------------------------------
82 81
83 82 def set_parameters_test(self):
84 83 """
85 84 Se usa para inicializar ciertos parametros para pruebas
86 85 """
87 86 self.txtDpath.setText('/home/ricardoar/optional/STORAGE/EW_DRIFTS')
88 87 self.txtRpath.setText('/home/ricardoar/optional/prueba1_jro_backup_manager')
89 88 self.txtElabel.setText('EW_DRIFTS_pruebas')
90 89 self.lstDcapacity.setCurrentIndex(4)
91 90 self.txtDcapacity.setValue(100.0)
92 91 self.txtDcapacity.setReadOnly(False)
92
93 def set_devices_test(self):
93 94 self.txtDeviceA.setText("/dev/scd0")
94 95 self.txtDeviceB.setText("/dev/scd1")
95 96 self.txtDeviceC.setText("/dev/scd2")
96 97 self.txtDeviceD.setText("/dev/scd3")
97 98
98 99
99 100
100 101 #----------------------------------------------------- crea parameters.conf ---------------------------------------------------------------
101 102
102 103 def make_parameters_conf(self):
103 104 var_file = open("parameters.conf","w")
104 105 var_file.write(self.var_Dpath+"\n") #0 Ruta de los datos
105 106 var_file.write(self.var_Rpath+"\n") #1 Ruta del proyecto
106 107 var_file.write(str(self.var_lstDtype)+"\n") #2 opcion Data Type
107 108 var_file.write(self.var_Dtype+"\n") #3 extension Data Type
108 109 var_file.write(self.var_Elabel+"\n") #4 etiqueta
109 110 var_file.write(str(self.var_Copys)+"\n") #5 Numero de copias
110 111 var_file.write(str(self.var_lstDcapacity)+"\n") #6 opcion Device Capacity
111 112 var_file.write(str(self.var_Dcapacity)+"\n") #7 tamaño Device Capacity
112 113 var_file.write(str(self.var_Discs)+"\n") #8 Numero de discos a grabar
113 114 # var_file.write(str(self.lstStartDay.currentIndex())+"\n") #9 Indice fecha inicial
114 115 # var_file.write(str(self.lstStopDay.currentIndex())+"\n") #10 Indice fecha final
115
116 116 var_file.close()
117 117
118 118 #----------------------------------------------------- carga parameters.conf ---------------------------------------------------------------
119 119
120 120 def get_parameters_conf(self):
121 121 var_file = open("parameters.conf","r")
122 122 lines = var_file.readlines()
123 123 self.txtDpath.setText(lines[0][:-1]) #0
124 124 self.txtRpath.setText(lines[1][:-1]) #1
125 125 self.lstDtype.setCurrentIndex(int(lines[2])) #2
126 126 self.txtDtype.setText(lines[3][:-1]) #3
127 127 self.txtElabel.setText(lines[4][:-1]) #4
128 128 self.txtCopys.setValue(int(lines[5][:-1])) #5
129 129 self.lstDcapacity.setCurrentIndex(int(lines[6])) #6
130 130 self.txtDcapacity.setValue(float(lines[7])) #7
131 131 self.var_Discs = int(lines[8]) #8
132 132 # var_StartDay = int(lines[6]) #9
133 133 # var_StopDay = int(lines[7]) #10
134 134 ################################
135 135 self.var_Copys = self.txtCopys.value() #5
136 136 ################################
137 137
138 138 var_file.close()
139 139
140 140
141
142 141 #-------------------------- actualiza el valor de las variables con los parametros seleccionados -----------------------------
143 142
144 143 def set_vars(self):
145 144 self.var_Dpath = str(self.txtDpath.text()) #0
146 145 self.var_Rpath = str(self.txtRpath.text()) #1
147 146 self.var_lstDtype = self.lstDtype.currentIndex() #2
148 147 self.var_Dtype = str(self.txtDtype.text()) #3
149 148 self.var_Elabel = str(self.txtElabel.text()) #4
150 149 self.var_Copys = self.txtCopys.value() #5
151 150 self.var_lstDcapacity = self.lstDcapacity.currentIndex() #6
152 151 self.var_Dcapacity = self.txtDcapacity.value() #7
153 152 self.var_Discs = self.var_Discs #8
154 153
155 154
156 155 #-------------------------- crea burning.conf -----------------------------
157 156
158 157 def make_burning_conf(self):
159 158 var_file = open("burning.conf","w")
160 159 var_n_burned_discs = ( ( (self.var_disc_n - 1) * self.var_Copys) + self.var_copy_n -1 )
161 160 var_file.write(str(var_n_burned_discs)+"\n") #0 Numero de discos ya grabados
162 161 var_file.write(str(self.var_disc_n)+"\n") #1 Disco actual para grabar
163 162 var_file.write(str(self.var_copy_n)+"\n") #2 Numero de copia actual para grabar
164 163 var_file.close()
165 164
166 165 #----------------------------------------------------- carga burning.conf ---------------------------------------------------------------
167 166
168 167 def get_burning_conf(self):
169 168 var_file = open("burning.conf","r")
170 169 lines = var_file.readlines()
171 170 self.var_burned_discs = int(lines[0]) #0
172 171 self.var_disc_n = int(lines[1])
173 172 self.var_copy_n = int(lines[2])
174 173 var_file.close()
175 174
176 175 #---------------------------------------------- Habilitacion y deshabilitacion de items -------------------------------------------------------
177 176
178 177 def enabled_items1(var_bool, self):
179 178 self.tabParameters.setEnabled(not(var_bool))
180 179 self.lstDcapacity.setEnabled(not(var_bool))
181 180 self.txtDcapacity.setEnabled(not(var_bool))
182 181 self.actionChange_Parameters.setEnabled(var_bool)
183 182 self.btnGbkp.setEnabled(not(var_bool))
184 183 self.btnRestart.setEnabled(var_bool)
185 184 self.btnStartburn.setEnabled(var_bool)
186 185
187 186
188 187 def enabled_items2(var_bool, self):
189 188 self.btnRestart.setEnabled(not(var_bool))
190 189 self.btnStartburn.setEnabled(not(var_bool))
191 190 self.btnStopburn.setEnabled(var_bool)
192 191 self.chkCheck.setEnabled(not(var_bool))
193 192 self.actionChange_Parameters.setEnabled(False)
194 193
195 194
196 195
197 196
198 197 #---------------------------------------------- Actualiza estado en los labels -------------------------------------------------------
199 198
200 def update_message(type, self):
201
202 var_index = ( ( (self.var_disc_n - 1) * self.var_Copys) + (self.var_copy_n - 1) - self.var_burned_discs ) % len(self.var_devices)
199 def update_message(type, message, self, index=0):
200 if index == 0:
201 var_index = ( ( (self.var_disc_n - 1) * self.var_Copys) + (self.var_copy_n - 1) - self.var_burned_discs ) % len(self.var_devices)
202 else:
203 var_index = index
204
205 var_message = message
206 # var_message = "BURNING"
207 # var_message = "COMPLETED"
208 # var_message = "ERROR"
209 # var_message = "CHECKING"
210 # var_message = "CHECKED"
203 211
204 212 if type == 1:
205 var_message = "BURNING"
213
206 214 if var_index == 0:
207 215 self.txtBstatusA.setText(var_message)
208 216 self.txtBdiscA.setText(str(self.var_disc_n))
209 217 self.txtBcopyA.setText(str(self.var_copy_n))
210 218
211 219 if var_index == 1:
212 220 self.txtBstatusB.setText(var_message)
213 221 self.txtBdiscB.setText(str(self.var_disc_n))
214 222 self.txtBcopyB.setText(str(self.var_copy_n))
215 223
216 224 if var_index == 2:
217 225 self.txtBstatusC.setText(var_message)
218 226 self.txtBdiscC.setText(str(self.var_disc_n))
219 227 self.txtBcopyC.setText(str(self.var_copy_n))
220 228
221 229 if var_index == 3:
222 230 self.txtBstatusD.setText(var_message)
223 231 self.txtBdiscD.setText(str(self.var_disc_n))
224 232 self.txtBcopyD.setText(str(self.var_copy_n))
225
233
226 234 if type == 2:
227 var_message = "COMPLETED"
235
228 236 if var_index == 0:
229 self.txtBstatusA.setText(var_message)
237 self.txtCHstatusA.setText(var_message)
230 238
231 239 if var_index == 1:
232 self.txtBstatusB.setText(var_message)
240 self.txtCHstatusB.setText(var_message)
233 241
234 242 if var_index == 2:
235 self.txtBstatusC.setText(var_message)
243 self.txtCHstatusC.setText(var_message)
236 244
237 245 if var_index == 3:
238 self.txtBstatusD.setText(var_message)
239
240
241
242
246 self.txtCHstatusD.setText(var_message)
247
248
@@ -1,523 +1,598
1 1 # -*- coding: utf-8 -*-
2 2
3 3 """
4 4 Module implementing MainWindow.
5 5 """
6 6
7 7 from PyQt4.QtGui import QMainWindow
8 8 from PyQt4.QtCore import pyqtSignature
9 9 from PyQt4 import QtCore
10 10 from Ui_MainWindow import Ui_MainWindow
11 11 from Ui_Parameters import Ui_Parameters
12 12 from Ui_About import Ui_About
13 13 from PyQt4 import QtGui
14 14 from subprocess import *
15 15 import sys
16 16 import os
17 17 #import subprocess
18 import time
18 19 import commands
19 20 from functions import functions
20 21 from functions import functions2
21 22
22 23 class MainWindow(QMainWindow, Ui_MainWindow):
23 24 """
24 25 Class documentation goes here.
25 26 """
26 27
27 28 def __init__(self, parent = None):
28 29 QMainWindow.__init__(self, parent)
29 30 self.setupUi(self)
30
31 31 self.setupUi2()
32 #sys.stdout = self #redirige salida estandar
33 32
34 33 def setupUi2(self):
35 34
35 # Reconocimiento de los dispositivos de grabacion
36 36 # functions2.detect_devices(self) #busca los dispositivos de grabacion
37
37 ####################################
38 functions2.set_devices_test(self) ############
39 ####################################
40
41 #Inicialiazacion de variables
38 42 self.var_Discs = 0 #Numero de discos del proyecto
39 43 self.var_Copys = 0 #Numero de copias
40 self.var_disc_n = 0
41 self.var_copy_n = 0
42 self.var_burned_discs = 0
43
44 self.var_list=[]
45 self.var_sublist=[]
46
47 self.var_devices=[]
48
49 self.var_step = 0
50 self.bool_state_burning = False
51 self.blank_discs = False
52
53
54 #Revisa si existe el archivo de confirguracion
44 self.var_disc_n = 0 # disco actual
45 self.var_copy_n = 0 # copia actual
46 self.var_burned_discs = 0 #numero de discos ya grabados
47
48 self.var_step = 0 # numero de paso en el proceso
49 self.bool_state_burning = False #si es True se puede grabar
50 self.blank_discs = False # Si es true significa que se acaban de ingresar discos en blanco
51
52 self.var_list=[] # Lista de DOYs
53 self.var_sublist=[] # Sub-lista de DOYs seleccionados
54 self.var_devices=[] #Lista de dispositivos seleccionados
55
56 #Revisa si existe el archivo de confirguracion y lo carga
55 57 if os.path.isfile("parameters.conf"):
56 58 functions2.get_parameters_conf(self)
57 59 self.txtInfo.append("Parameters were loaded from configuration file")
58 60 self.txtInfo.append("Total number of discs for recording: "+str(self.var_Discs * self.var_Copys))
59 61
60 62 else:
61 # self.txtInfo.append("Elija los parametros de configuracion")
62 63 functions2.set_parameters_test(self) #Establece ciertos parametros, para pruebas
63 64
64 65 functions2.set_vars(self) #Carga las variables de la clase con los parametros seleccionados
65 66
66 67 self.statusDpath = functions.dir_exists(self.var_Dpath, self)
67 68 self.statusRpath = functions.dir_exists(self.var_Rpath, self)
68 69 functions.load_days(self)
69 70
70 71 if os.path.isfile("parameters.conf"):
71 72 functions2.enabled_items1(True, self) #Se bloquean los parametros de configuracion
72 73
73 74 if os.path.isfile("burning.conf"):
74 75 functions2.get_burning_conf(self)
75 76 self.txtInfo.append("Current disc: "+str(self.var_disc_n))
76 77 self.txtInfo.append("Current copy: "+str(self.var_copy_n))
78 self.txtInfo.append("Burned discs: "+str(self.var_burned_discs))
77 79 self.btnStartburn.setText("Continue")
78 80
79 self.txtDeviceA.setText("/dev/scd0")
80 self.txtDeviceB.setText("/dev/scd1")
81 self.txtDeviceC.setText("/dev/scd2")
82 self.txtDeviceD.setText("/dev/scd3")
81
83 82
84 83 self.connect(self.actionChange_Parameters, QtCore.SIGNAL("triggered()"), self.changeParameters)
85 84 self.connect(self.actionAbout, QtCore.SIGNAL("triggered()"), self.about)
86 85
87 self.var_process = QtCore.QProcess()
88 self.connect(self.var_process, QtCore.SIGNAL('readyReadStandardOutput()'), self.readOuput)
89 self.connect(self.var_process, QtCore.SIGNAL('readyReadStandardError()'), self.readError)
90 self.connect(self.var_process, QtCore.SIGNAL('finished(int,QProcess::ExitStatus)'), self.finished)
91
92 self.var_process_check = QtCore.QProcess()
93 self.connect(self.var_process_check, QtCore.SIGNAL('readyReadStandardOutput()'), self.readOuput_check)
94 self.connect(self.var_process_check, QtCore.SIGNAL('readyReadStandardError()'), self.readError_check)
95 self.connect(self.var_process_check, QtCore.SIGNAL('finished(int,QProcess::ExitStatus)'), self.finished_check)
96
97 def write(self, txt):
98 self.txtInfo.append(str(txt))
99
86 self.process_iso = QtCore.QProcess()
87 self.connect(self.process_iso, QtCore.SIGNAL('readyReadStandardOutput()'), self.readOuput_iso)
88 self.connect(self.process_iso, QtCore.SIGNAL('readyReadStandardError()'), self.readError_iso)
89 self.connect(self.process_iso, QtCore.SIGNAL('finished(int,QProcess::ExitStatus)'), self.finished_iso)
90
91 self.process_burn = QtCore.QProcess()
92 self.connect(self.process_burn, QtCore.SIGNAL('readyReadStandardOutput()'), self.readOuput_burn)
93 self.connect(self.process_burn, QtCore.SIGNAL('readyReadStandardError()'), self.readError_burn)
94 self.connect(self.process_burn, QtCore.SIGNAL('finished(int,QProcess::ExitStatus)'), self.finished_burn)
95
96 self.process_check = QtCore.QProcess()
97 self.connect(self.process_check, QtCore.SIGNAL('readyReadStandardOutput()'), self.readOuput_check)
98 self.connect(self.process_check, QtCore.SIGNAL('readyReadStandardError()'), self.readError_check)
99 self.connect(self.process_check, QtCore.SIGNAL('finished(int,QProcess::ExitStatus)'), self.finished_check)
100
101
100 102 def changeParameters(self):
101 103 dlg=QtGui.QDialog()
102 104 dlgui=Ui_Parameters()
103 105 dlgui.setupUi(dlg)
104 106 if (dlg.exec_() == QtGui.QDialog.Accepted):
105 107 if dlgui.txtDisc.value() > self.var_Discs or dlgui.txtCopy.value() > dlgui.txtNcopys.value():
106 108 self.txtInfo.append("Wrong parameters")
107 109 else:
108 110 self.var_Copys = dlgui.txtNcopys.value()
109 111 self.var_disc_n = dlgui.txtDisc.value()
110 112 self.var_copy_n = dlgui.txtCopy.value()
111 113 self.txtInfo.append("Changed parameters")
112 114 self.var_burned_discs = ( ( (self.var_disc_n - 1) * self.var_Copys) + self.var_copy_n -1 )
113 115
114 116
115 117 def about(self):
116 118 dlg_about=QtGui.QDialog()
117 119 dlgui_about=Ui_About()
118 120 dlgui_about.setupUi(dlg_about)
119 121 dlg_about.exec_()
120 122
121 #----------------------------------------------------- Funciones del proceso ---------------------------------------------------------------
122
123 def readOuput(self):
124 # self.txtInfo.insertPlainText("stdout: " + QtCore.QString(self.var_process.readAllStandardOutput()))
125 pass
126
127 def readError(self):
128 self.txtInfo.insertPlainText("stderr: " + QtCore.QString(self.var_process.readAllStandardError()))
129
130 def finished(self):
131 self.txtInfo.insertPlainText("\nprocess completed"+QtCore.QString(self.var_process.exitCode())+"\n")
132
133
134 if self.var_process.exitCode() != 0:
135 self.txtInfo.append("ERROR")
136
137 if self.bool_state_burning:
138 if self.var_step == 0:
139 self.var_step = 1 #Se ira al paso de la grabacion en la siguiente llamada
140
141 elif self.var_step == 1:
142 functions2.update_message(2, self)
143 self.var_copy_n += 1
144
145 self.burning()
146
147
148 #----------------------------------------------------- Funciones del proceso de verificacion ---------------------------------------------------------------
149
150 def readOuput_check(self):
151 self.txtInfo.insertPlainText("stdout check: " + QtCore.QString(self.var_process_check.readAllStandardOutput()))
152
153 def readError_check(self):
154 self.txtInfo.setText("stderr check: " + QtCore.QString(self.var_process_check.readAllStandardError()))
155
156 def finished_check(self):
157 self.txtInfo.append("check process completed "+QtCore.QString(self.var_process_check.exitCode())+"\n")
158
123
124 #==============================================================================
125 # Manejo de los eventos
126 #==============================================================================
159 127
160 128 #----------------------------------------------------- Obtencion de la ruta de los datos ---------------------------------------------------------------
161 129
162 130 @pyqtSignature("")
163 131 def on_btnDpath_clicked(self):
164 132 """
165 133 Permite seleccionar graficamente el direcorio de los datos a grabar
166 134 """
167 135 self.var_Dpath= str(QtGui.QFileDialog.getExistingDirectory(self, 'Open Directory', './', QtGui.QFileDialog.ShowDirsOnly))
168 136 self.txtDpath.setText(self.var_Dpath)
169 137 self.statusDpath = functions.dir_exists(self.var_Dpath, self)
170 138 functions.load_days(self)
171 139
172 140
173 141 @pyqtSignature("")
174 142 def on_txtDpath_editingFinished(self):
175 143 """
176 144 Carga la ruta editada y verifica que sea correcta y carga la lista de dias
177 145 """
178 146 self.var_Dpath=str(self.txtDpath.text()) #Se carga la variable con la ruta recien editada
179 147 self.statusDpath = functions.dir_exists(self.var_Dpath, self)
180 148 functions.load_days(self)
181 149
182 150
183 151 #----------------------------------------------------- Obtencion de las ruta del proyecto ---------------------------------------------------------------
184 152
185 153 @pyqtSignature("")
186 154 def on_btnRpath_clicked(self):
187 155 """
188 156 Permite seleccionar graficamente el direcorio del proyecto
189 157 """
190 158 self.var_Rpath = str(QtGui.QFileDialog.getExistingDirectory(self, 'Open Directory', './', QtGui.QFileDialog.ShowDirsOnly))
191 159 self.txtRpath.setText(self.var_Rpath)
192 160 self.statusRpath = functions.dir_exists(self.var_Rpath, self)
193 161
194 162
195 163 @pyqtSignature("")
196 164 def on_txtRpath_editingFinished(self):
197 165 """
198 166 Valida la ruta del proyecto
199 167 """
200 168 self.var_Rpath = str(self.txtRpath.text()) #Se carga la variable con la ruta recien editada
201 169 self.statusRpath = functions.dir_exists(self.var_Rpath, self)
202 170
203 171
204 172 #----------------------------------------------------- Tipo de datos ---------------------------------------------------------------
205 173
206 174 @pyqtSignature("int")
207 175 def on_lstDtype_activated(self, index):
208 176 """
209 177 Permite elegir entre los tipos de archivos
210 178 """
211 179 self.txtDtype.setReadOnly(True)
212 180 if index == 0:
213 181 self.var_Dtype ='r'
214 182 elif index == 1:
215 183 self.var_Dtype ='pdata'
216 184 elif index == 2:
217 185 self.var_Dtype ='sswma'
218 186 else :
219 187 self.var_Dtype =''
220 188 self.txtDtype.setReadOnly(False)
221 189
222 190 self.txtDtype.setText(self.var_Dtype)
223 191 functions.load_days(self) #llamada a funcion
224 192
225 193 @pyqtSignature("")
226 194 def on_txtDtype_editingFinished(self):
227 195 self.var_Dtype=str(self.txtDtype.text())
228 196 functions.load_days(self) #llamada a funcion
229 197
230 198
231 199 #----------------------------------------------------- Etiqueta ---------------------------------------------------------------
232 200
233 201 @pyqtSignature("")
234 202 def on_txtElabel_editingFinished(self):
235 203 self.var_Elabel = str(self.txtElabel.text())
236 204
237 205 #----------------------------------------------------- Numero de copias ---------------------------------------------------------------
238 206 @pyqtSignature("")
239 207 def on_txtCopys_editingFinished(self):
240 208 self.var_Copys = self.txtCopys.value()
241 209
242 210 #----------------------------------------------------- Seleccion del rango de fechas ---------------------------------------------------------------
243 211
244 212 @pyqtSignature("int") #CLOSED
245 213 def on_lstStartDay_activated(self, index):
246 214 """
247 215 Cambia la lista de opciones en lstStopDay
248 216 """
249 217 var_StopDay_index=self.lstStopDay.count() - self.lstStopDay.currentIndex()
250 218 self.lstStopDay.clear()
251 219
252 220 for i in self.var_list[index:]:
253 221 self.lstStopDay.addItem(i)
254 222
255 223 self.lstStopDay.setCurrentIndex(self.lstStopDay.count() - var_StopDay_index)
256 224
257 225 functions.get_sub_list(self)
258 226
259 227
260 228 @pyqtSignature("int") #CLOSED
261 229 def on_lstStopDay_activated(self, index):
262 230 """
263 231 Cambia la lista de opciones en lstStartDay
264 232 """
265 233 var_StartDay_index=self.lstStartDay.currentIndex()
266 234 var_end_index = self.lstStopDay.count() - index
267 235 self.lstStartDay.clear()
268 236
269 237 for i in self.var_list[:len(self.var_list) - var_end_index + 1]:
270 238 self.lstStartDay.addItem(i)
271 239
272 240 self.lstStartDay.setCurrentIndex(var_StartDay_index)
273 241
274 242 functions.get_sub_list(self)
275 243
276 244
277 245 #----------------------------------------------------- Capacidad del dispositivo de grabacion ---------------------------------------------------------------
278 246
279 247 @pyqtSignature("")
280 248 def on_txtDcapacity_editingFinished(self):
281 249 self.var_Dcapacity = self.txtDcapacity.value()
282 250
283 251
284 252 @pyqtSignature("int") #CLOSED
285 253 def on_lstDcapacity_activated(self, index):
286 254 """
287 255 Permite elegir el tamaño del disco
288 256 """
289 257 if index == 0:
290 258 var_size=25.0
291 259 elif index == 1:
292 260 var_size=8.5
293 261 elif index == 2:
294 262 var_size=4.7
295 263 elif index == 3:
296 264 var_size=0.7
297 265
298 266 if index != 4:
299 267 self.txtDcapacity.setValue(var_size*10**9/1024**2)
300 268 self.txtDcapacity.setReadOnly(True)
301 269 else:
302 270 self.txtDcapacity.setValue(100.0)
303 271 self.txtDcapacity.setReadOnly(False)
304 272
305 273 self.var_lstDcapacity = self.lstDcapacity.currentIndex()
306 274 self.var_Dcapacity = self.txtDcapacity.value()
307 275
308
309 #==============================================================================
310 # Botones para la generacion de los archivos de configuracion y el proceso de grabacion
276 #----------------------------------------------------- Testeo de las unidades de grabacion ---------------------------------------------------------------
277
278 @pyqtSignature("")
279 def on_btnTdevA_clicked(self):
280 var_dev = str(self.txtDeviceA.text())
281 var_cmd = 'eject ' + var_dev + '; eject -t ' + var_dev
282 commands.getstatusoutput(var_cmd)
283
284 @pyqtSignature("")
285 def on_btnTdevB_clicked(self):
286 var_dev = str(self.txtDeviceB.text())
287 var_cmd = 'eject ' + var_dev + '; eject -t ' + var_dev
288 commands.getstatusoutput(var_cmd)
289
290 @pyqtSignature("")
291 def on_btnTdevC_clicked(self):
292 var_dev = str(self.txtDeviceC.text())
293 var_cmd = 'eject ' + var_dev + '; eject -t ' + var_dev
294 commands.getstatusoutput(var_cmd)
295
296 @pyqtSignature("")
297 def on_btnTdevD_clicked(self):
298 var_dev = str(self.txtDeviceD.text())
299 var_cmd = 'eject ' + var_dev + '; eject -t ' + var_dev
300 commands.getstatusoutput(var_cmd)
301
302
303 #==============================================================================
304 # Botones para la generacion de los archivos de configuracion
311 305 #==============================================================================
312 306
313 307 #----------------------------------------------------- Generacion de la configuracion usando los parametros ---------------------------------------------------------------
314 308
315 309 @pyqtSignature("")
316 310 def on_btnGbkp_clicked(self):
317 311 """
318 312 Generacion de archivos de configuracion usando los parametros
319 313 """
320 314
321 315 if functions.validate_parameters(self) == False:
322 316 return
323 317
324 318 #Crea las carpetas en la ruta del proyecto y verifica que se crearon correctamente
325 319 list_dirs=['gpath','iso','ppath', 'tmpdata']
326 320 bool_make_dirs = functions.make_dirs(list_dirs, self)
327 321 if bool_make_dirs == False:
328 322 return
329 323
330 324 var_files_list = functions.list_files(self) #Se obtiene la lista de archivos a grabar
331 325
332 326 self.var_Discs = functions.make_files_dat(var_files_list, self) #Se crean los archivos .dat
333 327
334 328 functions.make_files_print(self) # Se crean los archivos .print
335 329
336 330 functions2.make_parameters_conf(self) # se crea el archivo parameters.conf
337 331
338 332 self.txtInfo.append("Total number of discs for recording: "+str(self.var_Discs * self.var_Copys))
339 333
340 334 #Se bloquean los parametros de configuracion
341 335 functions2.enabled_items1(True, self)
342 336
343 337
344 338
345 339 #----------------------------------------------------- Permite reiniciar la configuracion ---------------------------------------------------------------
346 340
347 341 @pyqtSignature("")
348 342 def on_btnRestart_clicked(self):
349 343 """
350 344 Permite que se puedan cambiar los parametros
351 345 """
352 346 if os.path.isfile("parameters.conf"):
353 347 os.remove("parameters.conf")
354 348 if os.path.isfile("burning.conf"):
355 349 os.remove("burning.conf")
356 350
357 351 functions2.enabled_items1(False, self)
358 352 self.btnStartburn.setText("Start Burn")
359 353
360 354
355 #==============================================================================
356 # Acciones de los procesos
357 #==============================================================================
358
359 #------------------------------------------------ Funciones del proceso de creacion del iso ------------------------------------------------------
360
361 def readOuput_iso(self):
362 self.txtProgress.setText("stdout iso: " + QtCore.QString(self.process_iso.readAllStandardOutput()))
363
364 def readError_iso(self):
365 self.txtProgress.setText("stderr iso: " + QtCore.QString(self.process_iso.readAllStandardError()))
366
367 def finished_iso(self):
368 self.txtProgress.clear()
369
370 if not(self.bool_state_burning):
371 return
372
373 if self.process_iso.exitCode() == 0:
374 self.txtInfo.append("Iso file"+function.i2s(self.var_disc_n)+" created successfully \n")
375 self.var_step = 1
376 self.function_burn()
377
378 else:
379 self.txtInfo.append("Error creating iso file "+function.i2s(self.var_disc_n)
380 +" , code "+QtCore.QString(self.process_iso.exitCode()))
381 self.txtInfo.append("Please check the data \n")
382
383 #----------------------------------------------------- Funciones del proceso de grabado ---------------------------------------------------------------
384
385 def readOuput_burn(self):
386 self.txtProgress.setText("stdout burn: " + QtCore.QString(self.process_burn.readAllStandardOutput()))
387
388 def readError_burn(self):
389 self.txtProgress.setText("stderr burn: " + QtCore.QString(self.process_burn.readAllStandardError()))
390
391 def finished_burn(self):
392 self.txtProgress.clear()
393
394 if not(self.bool_state_burning):
395 return
396
397 if self.process_burn.exitCode() == 0:
398 self.txtInfo.append("Complete recording, disc: "+self.var_disc_n+" copy: "+self.var_copy_n)
399 functions2.update_message(1, "COMPLETED", self)
400 self.var_step = 2
401 self.function_check()
402
403 else:
404 self.txtInfo.append("Error recording, disc: "+function.i2s(self.var_disc_n)+" copy: "
405 +function.i2s(self.var_copy_n)+", code "+QtCore.QString(self.process_burn.exitCode()))
406 functions2.update_message(1, "ERROR", self)
407
408 functions.next_var_disc(self, True)
409 if self.var_step == 0:
410 self.function_iso()
411 elif self.var_step == 1:
412 self.function_burn()
413
414
415 #----------------------------------------------------- Funciones del proceso de verificacion ---------------------------------------------------------------
416
417 def readOuput_check(self):
418 self.txtProgress.setText("stdout check: " + QtCore.QString(self.process_check.readAllStandardOutput()))
419
420 def readError_check(self):
421 self.txtProgress.setText("stderr check: " + QtCore.QString(self.process_check.readAllStandardError()))
422
423 def finished_check(self):
424 self.txtProgress.clear()
425
426 if not(self.bool_state_burning):
427 return
428
429 if self.process_check.exitCode() == 0:
430 self.txtInfo.append("Complete checking, disc: "+self.var_disc_n+" copy: "+self.var_copy_n)
431 functions2.update_message(2, "CHECKED", self)
432
433 else:
434 self.txtInfo.append("Error checking, disc: "+function.i2s(self.var_disc_n)+" copy: "
435 +function.i2s(self.var_copy_n)+", code "+QtCore.QString(self.process_check.exitCode()))
436 functions2.update_message(2, "ERROR", self)
437
438 self.function_check()
439
440
441
442 #==============================================================================
443 # Botones para el proceso de grabacion
444 #==============================================================================
361 445
362 446 #----------------------------------------------------- Iniciar proceso de grabacion ---------------------------------------------------------------
363 447
364 448 @pyqtSignature("")
365 449 def on_btnStartburn_clicked(self):
366 450 """
367 451 Se inicia el proceso de grabacion
368 452 """
369 ####### self.txtInfo.append("BUTTON: on_btnStartburn_clicked")
453 self.txtInfo.append("BUTTON: on_btnStartburn_clicked")
454
370 455 #Verifica que exista algun dispositivo de grabacion seleccionado
371 456 if not(functions2.selected_devices(self)):
372 457 self.txtInfo.append("There is no recording device selected")
373 458 return
374 459
375 460 # #Lista los dispositivos de grabacion a usar
376 461 # for dev in self.var_devices:
377 462 # self.txtInfo.append("recording device :"+dev)
378 463
379 464 #Si se ingresaron los DVDs en blanco
380 465 if self.blank_discs == True:
381 466 self.btnStartburn.setEnabled(False)
382 467 self.burning()
383 468 return
384 469
385 470 #Si se cargo los parametros de burning.conf
386 471 if self.var_burned_discs != 0:
387 472 self.txtInfo.append("BURNED DISC: "+str(self.var_burned_discs))
388 473 self.var_step = 0
389 474 self.bool_state_burning = True
390 475 self.blank_discs = False
391 476 functions2.enabled_items2(True, self)
392 477 self.burning()
393 478 return
394 479
395 480 #Asigna las variables con los valores iniciales
396 481 self.var_disc_n = 1 # numero de disco actual para grabacion
397 482 self.var_copy_n = 1
398 483 self.var_burned_discs = 0 #numero de discos grabados
399 484 self.var_step = 0
400 485 self.bool_state_burning = True
401 486 self.blank_discs = False
402 487 functions2.enabled_items2(True, self)
403 488 self.burning()
404 489
490 #----------------------------------------------------- Funcion para el grabado ---------------------------------------------------------------
405 491
406 492 def burning(self):
407 493
408 494 var_Rpath_ppath=self.var_Rpath+"/ppath"
409 495 var_Rpath_iso=self.var_Rpath+"/iso"
410 496
411 497 #Si ya se grabaron todas las copias del disco
412 498 if self.var_copy_n > self.var_Copys:
413 499 #borra la imagen.iso del numero de disco anterior
414 500 file_iso=var_Rpath_iso+"/"+functions.i2s(self.var_disc_n)+".iso"
415 501 # self.txtInfo.append("Deleting iso file")
416 502 # os.remove(file_iso)
417 503 self.var_copy_n = 1
418 504 self.var_disc_n += 1 # aumenta numero de disco actual para grabacion
419 505 self.var_step = 0
420 506
421 507 #Si ya se grabaron todos los discos
422 508 if self.var_disc_n > self.var_Discs:
423 509 self.bool_state_burning = False
424 510 self.txtInfo.append("Recording process is complete")
425 511 functions2.eject_devices(self) # Expulsa las bandejas de los dispostivos de grabacion
426 512 self.on_btnRestart_clicked()
427 513 self.btnStopburn.setEnabled(False)
428 514 return
429 515
430 516 # self.txtInfo.append("\n"+str(self.var_disc_n)+" "+str(self.var_copy_n)+" "+str(self.var_step))
431 517
432 518 #Creacion del archivo.iso para la grabacion
433 519 if self.var_step == 0:
434 520 self.txtInfo.append("########## Disc number: "+str(self.var_disc_n)+"##########")
435 521 self.txtInfo.append("---------Creating iso file number: "+str(self.var_disc_n))
436 522 var_cmd = functions.cmd_iso(self)
437 523
438 524 #Grabacion de los DVDs
439 525 elif self.var_step == 1:
440 526
441 527 functions2.make_burning_conf(self)
442 528
443 529 var_index = ( ( (self.var_disc_n - 1) * self.var_Copys) + (self.var_copy_n - 1) - self.var_burned_discs ) % len(self.var_devices)
444 530 # self.txtInfo.append("INDEX: "+str(var_index))
445 531 if var_index == 0 and self.blank_discs == False:
446 532 functions2.eject_devices(self) # Expulsa las bandejas de los dispostivos de grabacion
447 533 self.blank_discs = True
448 534 self.btnStartburn.setText("Continue")
449 535 self.btnStartburn.setEnabled(True)
450 536 return
451 537
452 538 self.blank_discs = False
453 539
454 540 self.txtInfo.append("recording disc:"+str(self.var_copy_n)+", copy:"+str(self.var_copy_n))
455 functions2.update_message(1, self)
541 functions2.update_message(1, "BURNING", self)
456 542
457 543 var_dev_tmp = self.var_devices[var_index]
458 544 file_iso=var_Rpath_iso+"/"+functions.i2s(self.var_disc_n)+".iso"
459 545 var_cmd = "wodim -v dev="+var_dev_tmp+" speed=16 "+ file_iso
460 546
461 547 self.var_process.start('echo "comando"')
462 548 # self.txtInfo.append("CMD: "+var_cmd)
463 549
464 550 # self.txtInfo.append("creando iso")
465 551 # self.var_process.start(var_cmd)
466 552
467 553
468 554 #----------------------------------------------------- Detener proceso de grabacion ---------------------------------------------------------------
469 555
470 556 @pyqtSignature("")
471 557 def on_btnStopburn_clicked(self):
472 558 """
473 559 Slot documentation goes here.
474 560 """
475 561 self.bool_state_burning = False
476 self.var_process.terminate() #Termina el proceso, si puede
477 # self.var_process.kill() #Mata el proceso, no es la forma adecuada, solo usar si terminate() no funciona
562
563 if self.var_step == 0:
564 self.process_iso.terminate() #Termina el proceso, si puede
565 # self.process_iso.kill() #Mata el proceso, no es la forma adecuada, solo usar si terminate() no funciona
566 elif self.var_step == 1:
567 self.process_burn.terminate()
568 elif self.var_step == 2:
569 self.process_check.terminate()
570
478 571 self.txtInfo.append("Stopped recording")
479 572 functions2.enabled_items2(False, self)
480 573
481 574
482 #----------------------------------------------------- Testeo de las unidades de grabacion ---------------------------------------------------------------
483
484 @pyqtSignature("")
485 def on_btnTdevA_clicked(self):
486 var_dev = str(self.txtDeviceA.text())
487 var_cmd = 'eject ' + var_dev + '; eject -t ' + var_dev
488 commands.getstatusoutput(var_cmd)
489
490 @pyqtSignature("")
491 def on_btnTdevB_clicked(self):
492 var_dev = str(self.txtDeviceB.text())
493 var_cmd = 'eject ' + var_dev + '; eject -t ' + var_dev
494 commands.getstatusoutput(var_cmd)
495
496 @pyqtSignature("")
497 def on_btnTdevC_clicked(self):
498 var_dev = str(self.txtDeviceC.text())
499 var_cmd = 'eject ' + var_dev + '; eject -t ' + var_dev
500 commands.getstatusoutput(var_cmd)
501
502 @pyqtSignature("")
503 def on_btnTdevD_clicked(self):
504 var_dev = str(self.txtDeviceD.text())
505 var_cmd = 'eject ' + var_dev + '; eject -t ' + var_dev
506 commands.getstatusoutput(var_cmd)
575 #==============================================================================
576 # Proceso verificacion manual
577 #==============================================================================
578
579
580 #----------------------------------------------------- Proceso de verificaion manual ---------------------------------------------------------------
581
507 582
508 583 @pyqtSignature("")
509 584 def on_btnTDpath_clicked(self):
510 585 """
511 586 Slot documentation goes here.
512 587 """
513 588 self.var_TDpath= str(QtGui.QFileDialog.getExistingDirectory(self, 'Open Directory', './', QtGui.QFileDialog.ShowDirsOnly))
514 589 self.txtTDpath.setText(self.var_TDpath)
515 590 self.statusTDpath = functions.dir_exists(self.var_TDpath, self)
516 591
517 592
518 593 @pyqtSignature("")
519 594 def on_btnCHstart_clicked(self):
520 595 """
521 596 Slot documentation goes here.
522 597 """
523 598 pass
@@ -1,1458 +1,1463
1 1 <?xml version="1.0" encoding="UTF-8"?>
2 2 <ui version="4.0">
3 3 <class>MainWindow</class>
4 4 <widget class="QMainWindow" name="MainWindow">
5 5 <property name="geometry">
6 6 <rect>
7 7 <x>0</x>
8 8 <y>0</y>
9 <width>824</width>
9 <width>621</width>
10 10 <height>717</height>
11 11 </rect>
12 12 </property>
13 13 <property name="windowTitle">
14 14 <string>JRO BACKUP MANAGER</string>
15 15 </property>
16 16 <widget class="QWidget" name="centralwidget">
17 17 <layout class="QVBoxLayout" name="verticalLayout">
18 18 <item>
19 19 <widget class="QTabWidget" name="tabWidget">
20 20 <property name="enabled">
21 21 <bool>true</bool>
22 22 </property>
23 23 <property name="sizePolicy">
24 24 <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
25 25 <horstretch>0</horstretch>
26 26 <verstretch>0</verstretch>
27 27 </sizepolicy>
28 28 </property>
29 29 <property name="currentIndex">
30 30 <number>0</number>
31 31 </property>
32 32 <widget class="QWidget" name="tabParameters">
33 33 <property name="enabled">
34 34 <bool>true</bool>
35 35 </property>
36 36 <attribute name="title">
37 37 <string>Parameters</string>
38 38 </attribute>
39 39 <layout class="QVBoxLayout" name="verticalLayout_2">
40 40 <item>
41 41 <layout class="QHBoxLayout" name="horizontalLayout">
42 42 <property name="sizeConstraint">
43 43 <enum>QLayout::SetDefaultConstraint</enum>
44 44 </property>
45 45 <item>
46 46 <widget class="QLineEdit" name="txtDpath">
47 47 <property name="sizePolicy">
48 48 <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
49 49 <horstretch>0</horstretch>
50 50 <verstretch>0</verstretch>
51 51 </sizepolicy>
52 52 </property>
53 53 </widget>
54 54 </item>
55 55 <item>
56 56 <widget class="QPushButton" name="btnDpath">
57 57 <property name="sizePolicy">
58 58 <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
59 59 <horstretch>0</horstretch>
60 60 <verstretch>0</verstretch>
61 61 </sizepolicy>
62 62 </property>
63 63 <property name="text">
64 64 <string>Data Path</string>
65 65 </property>
66 66 <property name="checkable">
67 67 <bool>false</bool>
68 68 </property>
69 69 </widget>
70 70 </item>
71 71 </layout>
72 72 </item>
73 73 <item>
74 74 <layout class="QHBoxLayout" name="horizontalLayout_3">
75 75 <item>
76 76 <widget class="QLineEdit" name="txtRpath"/>
77 77 </item>
78 78 <item>
79 79 <widget class="QPushButton" name="btnRpath">
80 80 <property name="text">
81 81 <string>Resource Path</string>
82 82 </property>
83 83 </widget>
84 84 </item>
85 85 </layout>
86 86 </item>
87 87 <item>
88 88 <widget class="QLabel" name="lblDtype">
89 89 <property name="text">
90 90 <string>Data Type</string>
91 91 </property>
92 92 </widget>
93 93 </item>
94 94 <item>
95 95 <layout class="QHBoxLayout" name="horizontalLayout_4">
96 96 <item>
97 97 <widget class="QComboBox" name="lstDtype">
98 98 <item>
99 99 <property name="text">
100 100 <string>Raw Data</string>
101 101 </property>
102 102 </item>
103 103 <item>
104 104 <property name="text">
105 105 <string>Process Data</string>
106 106 </property>
107 107 </item>
108 108 <item>
109 109 <property name="text">
110 110 <string>BLTR Data</string>
111 111 </property>
112 112 </item>
113 113 <item>
114 114 <property name="text">
115 115 <string>Other</string>
116 116 </property>
117 117 </item>
118 118 </widget>
119 119 </item>
120 120 <item>
121 121 <widget class="QLineEdit" name="txtDtype">
122 122 <property name="sizePolicy">
123 123 <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
124 124 <horstretch>0</horstretch>
125 125 <verstretch>0</verstretch>
126 126 </sizepolicy>
127 127 </property>
128 128 <property name="text">
129 129 <string>r</string>
130 130 </property>
131 131 <property name="readOnly">
132 132 <bool>true</bool>
133 133 </property>
134 134 </widget>
135 135 </item>
136 136 <item>
137 137 <spacer name="horizontalSpacer">
138 138 <property name="orientation">
139 139 <enum>Qt::Horizontal</enum>
140 140 </property>
141 141 <property name="sizeType">
142 142 <enum>QSizePolicy::Expanding</enum>
143 143 </property>
144 144 <property name="sizeHint" stdset="0">
145 145 <size>
146 146 <width>40</width>
147 147 <height>20</height>
148 148 </size>
149 149 </property>
150 150 </spacer>
151 151 </item>
152 152 </layout>
153 153 </item>
154 154 <item>
155 155 <layout class="QHBoxLayout" name="horizontalLayout_6">
156 156 <item>
157 157 <widget class="QLabel" name="lblElabel">
158 158 <property name="text">
159 159 <string>Exp. Label at device</string>
160 160 </property>
161 161 </widget>
162 162 </item>
163 163 <item>
164 164 <widget class="QLabel" name="lblCopys">
165 165 <property name="text">
166 166 <string>Copys</string>
167 167 </property>
168 168 </widget>
169 169 </item>
170 170 </layout>
171 171 </item>
172 172 <item>
173 173 <layout class="QHBoxLayout" name="horizontalLayout_5">
174 174 <item>
175 175 <widget class="QLineEdit" name="txtElabel"/>
176 176 </item>
177 177 <item>
178 178 <widget class="QSpinBox" name="txtCopys">
179 179 <property name="sizePolicy">
180 180 <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
181 181 <horstretch>0</horstretch>
182 182 <verstretch>0</verstretch>
183 183 </sizepolicy>
184 184 </property>
185 185 <property name="minimum">
186 186 <number>1</number>
187 187 </property>
188 188 </widget>
189 189 </item>
190 190 </layout>
191 191 </item>
192 192 <item>
193 193 <layout class="QHBoxLayout" name="horizontalLayout_7">
194 194 <item>
195 195 <widget class="QLabel" name="lblStartDay">
196 196 <property name="text">
197 197 <string>Start Day:</string>
198 198 </property>
199 199 </widget>
200 200 </item>
201 201 <item>
202 202 <widget class="QLabel" name="lblStopDay">
203 203 <property name="text">
204 204 <string>Stop Day:</string>
205 205 </property>
206 206 </widget>
207 207 </item>
208 208 </layout>
209 209 </item>
210 210 <item>
211 211 <layout class="QHBoxLayout" name="horizontalLayout_8">
212 212 <item>
213 213 <widget class="QComboBox" name="lstStartDay"/>
214 214 </item>
215 215 <item>
216 216 <widget class="QComboBox" name="lstStopDay"/>
217 217 </item>
218 218 </layout>
219 219 </item>
220 220 </layout>
221 221 </widget>
222 222 <widget class="QWidget" name="tabDconfig">
223 223 <property name="enabled">
224 224 <bool>true</bool>
225 225 </property>
226 226 <property name="sizePolicy">
227 227 <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
228 228 <horstretch>0</horstretch>
229 229 <verstretch>0</verstretch>
230 230 </sizepolicy>
231 231 </property>
232 232 <attribute name="title">
233 233 <string>Device Config.</string>
234 234 </attribute>
235 235 <layout class="QVBoxLayout" name="verticalLayout_3">
236 236 <item>
237 237 <layout class="QHBoxLayout" name="horizontalLayout_12">
238 238 <item>
239 239 <layout class="QVBoxLayout" name="verticalLayout_15">
240 240 <item>
241 241 <widget class="QCheckBox" name="chkDevA">
242 242 <property name="text">
243 243 <string>Dev A</string>
244 244 </property>
245 245 <property name="checked">
246 246 <bool>true</bool>
247 247 </property>
248 248 </widget>
249 249 </item>
250 250 <item>
251 251 <widget class="QWidget" name="grpDevA" native="true">
252 252 <layout class="QVBoxLayout" name="verticalLayout_11">
253 253 <item>
254 254 <widget class="QLineEdit" name="txtDeviceA">
255 255 <property name="readOnly">
256 256 <bool>true</bool>
257 257 </property>
258 258 </widget>
259 259 </item>
260 260 <item>
261 261 <widget class="QSpinBox" name="txtBspeedA">
262 <property name="readOnly">
263 <bool>true</bool>
264 </property>
262 265 <property name="minimum">
263 266 <number>1</number>
264 267 </property>
265 268 <property name="value">
266 269 <number>16</number>
267 270 </property>
268 271 </widget>
269 272 </item>
270 273 <item>
271 274 <widget class="QLineEdit" name="txtBmodeA">
272 275 <property name="text">
273 276 <string>-sao</string>
274 277 </property>
275 278 <property name="readOnly">
276 279 <bool>true</bool>
277 280 </property>
278 281 </widget>
279 282 </item>
280 283 <item>
281 284 <widget class="QPushButton" name="btnTdevA">
282 285 <property name="text">
283 286 <string>Test DevA</string>
284 287 </property>
285 288 </widget>
286 289 </item>
287 290 </layout>
288 291 </widget>
289 292 </item>
290 293 </layout>
291 294 </item>
292 295 <item>
293 296 <layout class="QVBoxLayout" name="verticalLayout_16">
294 297 <item>
295 298 <widget class="QCheckBox" name="chkDevB">
296 299 <property name="text">
297 300 <string>Dev B</string>
298 301 </property>
299 302 <property name="checked">
300 303 <bool>true</bool>
301 304 </property>
302 305 </widget>
303 306 </item>
304 307 <item>
305 308 <widget class="QWidget" name="grpDevB" native="true">
306 309 <layout class="QVBoxLayout" name="verticalLayout_12">
307 310 <item>
308 311 <widget class="QLineEdit" name="txtDeviceB">
309 312 <property name="readOnly">
310 313 <bool>true</bool>
311 314 </property>
312 315 </widget>
313 316 </item>
314 317 <item>
315 318 <widget class="QSpinBox" name="txtBspeedB">
319 <property name="readOnly">
320 <bool>true</bool>
321 </property>
316 322 <property name="minimum">
317 323 <number>1</number>
318 324 </property>
319 325 <property name="value">
320 326 <number>16</number>
321 327 </property>
322 328 </widget>
323 329 </item>
324 330 <item>
325 331 <widget class="QLineEdit" name="txtBmodeB">
326 332 <property name="text">
327 333 <string>-sao</string>
328 334 </property>
329 335 <property name="readOnly">
330 336 <bool>true</bool>
331 337 </property>
332 338 </widget>
333 339 </item>
334 340 <item>
335 341 <widget class="QPushButton" name="btnTdevB">
336 342 <property name="text">
337 343 <string>Test DevB</string>
338 344 </property>
339 345 </widget>
340 346 </item>
341 347 </layout>
342 348 </widget>
343 349 </item>
344 350 </layout>
345 351 </item>
346 352 <item>
347 353 <layout class="QVBoxLayout" name="verticalLayout_17">
348 354 <item>
349 355 <widget class="QCheckBox" name="chkDevC">
350 356 <property name="text">
351 357 <string>Dev C</string>
352 358 </property>
353 359 <property name="checked">
354 360 <bool>true</bool>
355 361 </property>
356 362 </widget>
357 363 </item>
358 364 <item>
359 365 <widget class="QWidget" name="grpDevC" native="true">
360 366 <layout class="QVBoxLayout" name="verticalLayout_13">
361 367 <item>
362 368 <widget class="QLineEdit" name="txtDeviceC">
363 369 <property name="readOnly">
364 370 <bool>true</bool>
365 371 </property>
366 372 </widget>
367 373 </item>
368 374 <item>
369 375 <widget class="QSpinBox" name="txtBspeedC">
376 <property name="readOnly">
377 <bool>true</bool>
378 </property>
370 379 <property name="minimum">
371 380 <number>1</number>
372 381 </property>
373 382 <property name="value">
374 383 <number>16</number>
375 384 </property>
376 385 </widget>
377 386 </item>
378 387 <item>
379 388 <widget class="QLineEdit" name="txtBmodeC">
380 389 <property name="text">
381 390 <string>-sao</string>
382 391 </property>
383 392 <property name="readOnly">
384 393 <bool>true</bool>
385 394 </property>
386 395 </widget>
387 396 </item>
388 397 <item>
389 398 <widget class="QPushButton" name="btnTdevC">
390 399 <property name="text">
391 400 <string>Test DevC</string>
392 401 </property>
393 402 </widget>
394 403 </item>
395 404 </layout>
396 405 </widget>
397 406 </item>
398 407 </layout>
399 408 </item>
400 409 <item>
401 410 <layout class="QVBoxLayout" name="verticalLayout_18">
402 411 <item>
403 412 <widget class="QCheckBox" name="chkDevD">
404 413 <property name="text">
405 414 <string>Dev D</string>
406 415 </property>
407 416 <property name="checked">
408 417 <bool>true</bool>
409 418 </property>
410 419 </widget>
411 420 </item>
412 421 <item>
413 422 <widget class="QWidget" name="grpDevD" native="true">
414 423 <layout class="QVBoxLayout" name="verticalLayout_14">
415 424 <item>
416 425 <widget class="QLineEdit" name="txtDeviceD">
417 426 <property name="readOnly">
418 427 <bool>true</bool>
419 428 </property>
420 429 </widget>
421 430 </item>
422 431 <item>
423 432 <widget class="QSpinBox" name="txtBspeedD">
433 <property name="readOnly">
434 <bool>true</bool>
435 </property>
424 436 <property name="minimum">
425 437 <number>1</number>
426 438 </property>
427 439 <property name="value">
428 440 <number>16</number>
429 441 </property>
430 442 </widget>
431 443 </item>
432 444 <item>
433 445 <widget class="QLineEdit" name="txtBmodeD">
434 446 <property name="text">
435 447 <string>-sao</string>
436 448 </property>
437 449 <property name="readOnly">
438 450 <bool>true</bool>
439 451 </property>
440 452 </widget>
441 453 </item>
442 454 <item>
443 455 <widget class="QPushButton" name="btnTdevD">
444 456 <property name="text">
445 457 <string>Test DevD</string>
446 458 </property>
447 459 </widget>
448 460 </item>
449 461 </layout>
450 462 </widget>
451 463 </item>
452 464 </layout>
453 465 </item>
454 466 <item>
455 467 <layout class="QVBoxLayout" name="verticalLayout_19">
456 468 <item>
457 469 <spacer name="verticalSpacer_3">
458 470 <property name="orientation">
459 471 <enum>Qt::Vertical</enum>
460 472 </property>
461 473 <property name="sizeType">
462 474 <enum>QSizePolicy::Minimum</enum>
463 475 </property>
464 476 <property name="sizeHint" stdset="0">
465 477 <size>
466 478 <width>20</width>
467 479 <height>40</height>
468 480 </size>
469 481 </property>
470 482 </spacer>
471 483 </item>
472 484 <item>
473 485 <widget class="QWidget" name="grpDevD_2" native="true">
474 486 <layout class="QVBoxLayout" name="verticalLayout_20">
475 487 <item>
476 488 <widget class="QLabel" name="lblDevice">
477 489 <property name="text">
478 490 <string>Device</string>
479 491 </property>
480 492 </widget>
481 493 </item>
482 494 <item>
483 495 <widget class="QLabel" name="lblBspeed">
484 496 <property name="text">
485 497 <string>Burn Speed</string>
486 498 </property>
487 499 </widget>
488 500 </item>
489 501 <item>
490 502 <widget class="QLabel" name="lblBmode">
491 503 <property name="text">
492 504 <string>Burn Mode</string>
493 505 </property>
494 506 </widget>
495 507 </item>
496 508 <item>
497 509 <spacer name="verticalSpacer_4">
498 510 <property name="orientation">
499 511 <enum>Qt::Vertical</enum>
500 512 </property>
501 513 <property name="sizeType">
502 514 <enum>QSizePolicy::Fixed</enum>
503 515 </property>
504 516 <property name="sizeHint" stdset="0">
505 517 <size>
506 518 <width>20</width>
507 519 <height>40</height>
508 520 </size>
509 521 </property>
510 522 </spacer>
511 523 </item>
512 524 </layout>
513 525 </widget>
514 526 </item>
515 527 </layout>
516 528 </item>
517 529 </layout>
518 530 </item>
519 531 <item>
520 532 <spacer name="verticalSpacer_2">
521 533 <property name="orientation">
522 534 <enum>Qt::Vertical</enum>
523 535 </property>
524 536 <property name="sizeType">
525 537 <enum>QSizePolicy::Minimum</enum>
526 538 </property>
527 539 <property name="sizeHint" stdset="0">
528 540 <size>
529 541 <width>20</width>
530 542 <height>40</height>
531 543 </size>
532 544 </property>
533 545 </spacer>
534 546 </item>
535 547 <item>
536 548 <layout class="QHBoxLayout" name="horizontalLayout_11">
537 549 <property name="spacing">
538 550 <number>6</number>
539 551 </property>
540 552 <property name="sizeConstraint">
541 553 <enum>QLayout::SetDefaultConstraint</enum>
542 554 </property>
543 555 <item>
544 556 <widget class="QLabel" name="lblDcapacity">
545 557 <property name="sizePolicy">
546 558 <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
547 559 <horstretch>0</horstretch>
548 560 <verstretch>0</verstretch>
549 561 </sizepolicy>
550 562 </property>
551 563 <property name="text">
552 564 <string>Device Capacity</string>
553 565 </property>
554 566 </widget>
555 567 </item>
556 568 <item>
557 569 <spacer name="horizontalSpacer_2">
558 570 <property name="orientation">
559 571 <enum>Qt::Horizontal</enum>
560 572 </property>
561 573 <property name="sizeHint" stdset="0">
562 574 <size>
563 575 <width>40</width>
564 576 <height>20</height>
565 577 </size>
566 578 </property>
567 579 </spacer>
568 580 </item>
569 581 </layout>
570 582 </item>
571 583 <item>
572 584 <layout class="QHBoxLayout" name="horizontalLayout_10">
573 585 <property name="sizeConstraint">
574 586 <enum>QLayout::SetFixedSize</enum>
575 587 </property>
576 588 <item>
577 589 <widget class="QComboBox" name="lstDcapacity">
578 590 <property name="currentIndex">
579 591 <number>2</number>
580 592 </property>
581 593 <item>
582 594 <property name="text">
583 595 <string>BluRay [25.0 GB]</string>
584 596 </property>
585 597 </item>
586 598 <item>
587 599 <property name="text">
588 600 <string>DVD2 [8.5 GB]</string>
589 601 </property>
590 602 </item>
591 603 <item>
592 604 <property name="text">
593 605 <string>DVD1 [4.7 GB]</string>
594 606 </property>
595 607 </item>
596 608 <item>
597 609 <property name="text">
598 610 <string>CD [0.7 GB]</string>
599 611 </property>
600 612 </item>
601 613 <item>
602 614 <property name="text">
603 615 <string>Other [? MB]</string>
604 616 </property>
605 617 </item>
606 618 </widget>
607 619 </item>
608 620 <item>
609 621 <widget class="QDoubleSpinBox" name="txtDcapacity">
610 622 <property name="sizePolicy">
611 623 <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
612 624 <horstretch>0</horstretch>
613 625 <verstretch>0</verstretch>
614 626 </sizepolicy>
615 627 </property>
616 628 <property name="readOnly">
617 629 <bool>true</bool>
618 630 </property>
619 631 <property name="minimum">
620 632 <double>100.000000000000000</double>
621 633 </property>
622 634 <property name="maximum">
623 635 <double>99999.990000000005239</double>
624 636 </property>
625 637 <property name="value">
626 638 <double>4482.270000000000437</double>
627 639 </property>
628 640 </widget>
629 641 </item>
630 642 <item>
631 643 <spacer name="horizontalSpacer_3">
632 644 <property name="orientation">
633 645 <enum>Qt::Horizontal</enum>
634 646 </property>
635 647 <property name="sizeHint" stdset="0">
636 648 <size>
637 649 <width>40</width>
638 650 <height>20</height>
639 651 </size>
640 652 </property>
641 653 </spacer>
642 654 </item>
643 655 <item>
644 656 <widget class="QLabel" name="lblPSgraphic">
645 657 <property name="text">
646 658 <string>PS Graphic</string>
647 659 </property>
648 660 </widget>
649 661 </item>
650 662 <item>
651 663 <widget class="QSpinBox" name="txtPSgraphic">
652 664 <property name="minimum">
653 665 <number>1</number>
654 666 </property>
655 667 <property name="maximum">
656 668 <number>33</number>
657 669 </property>
658 670 </widget>
659 671 </item>
660 672 </layout>
661 673 </item>
662 674 </layout>
663 675 </widget>
664 676 <widget class="QWidget" name="tabStatus">
665 677 <attribute name="title">
666 678 <string>Status Burn</string>
667 679 </attribute>
668 680 <layout class="QVBoxLayout" name="verticalLayout_4">
669 681 <item>
670 682 <layout class="QHBoxLayout" name="horizontalLayout_18">
671 683 <item>
672 684 <layout class="QVBoxLayout" name="verticalLayout_21">
673 685 <item>
674 686 <widget class="QLabel" name="label_4">
675 687 <property name="text">
676 688 <string>BURN</string>
677 689 </property>
678 690 </widget>
679 691 </item>
680 692 <item>
681 693 <spacer name="horizontalSpacer_9">
682 694 <property name="orientation">
683 695 <enum>Qt::Horizontal</enum>
684 696 </property>
685 697 <property name="sizeType">
686 698 <enum>QSizePolicy::Minimum</enum>
687 699 </property>
688 700 <property name="sizeHint" stdset="0">
689 701 <size>
690 702 <width>40</width>
691 703 <height>20</height>
692 704 </size>
693 705 </property>
694 706 </spacer>
695 707 </item>
696 708 <item>
697 709 <widget class="QLabel" name="lblSTATUS">
698 710 <property name="sizePolicy">
699 711 <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
700 712 <horstretch>0</horstretch>
701 713 <verstretch>0</verstretch>
702 714 </sizepolicy>
703 715 </property>
704 716 <property name="text">
705 717 <string>STATUS</string>
706 718 </property>
707 719 </widget>
708 720 </item>
709 721 <item>
710 722 <widget class="QLabel" name="lblINFO">
711 723 <property name="text">
712 724 <string>DISC</string>
713 725 </property>
714 726 </widget>
715 727 </item>
716 728 <item>
717 729 <widget class="QLabel" name="lblSET">
718 730 <property name="text">
719 731 <string>COPY</string>
720 732 </property>
721 733 </widget>
722 734 </item>
723 735 </layout>
724 736 </item>
725 737 <item>
726 738 <layout class="QVBoxLayout" name="verticalLayout_22">
727 739 <item>
728 740 <spacer name="horizontalSpacer_5">
729 741 <property name="orientation">
730 742 <enum>Qt::Horizontal</enum>
731 743 </property>
732 744 <property name="sizeType">
733 745 <enum>QSizePolicy::Minimum</enum>
734 746 </property>
735 747 <property name="sizeHint" stdset="0">
736 748 <size>
737 749 <width>40</width>
738 750 <height>20</height>
739 751 </size>
740 752 </property>
741 753 </spacer>
742 754 </item>
743 755 <item>
744 756 <widget class="QLabel" name="lblDevA">
745 757 <property name="text">
746 758 <string>DEV A</string>
747 759 </property>
748 760 <property name="alignment">
749 761 <set>Qt::AlignCenter</set>
750 762 </property>
751 763 </widget>
752 764 </item>
753 765 <item>
754 766 <widget class="QLineEdit" name="txtBstatusA">
755 767 <property name="readOnly">
756 768 <bool>true</bool>
757 769 </property>
758 770 </widget>
759 771 </item>
760 772 <item>
761 773 <widget class="QLineEdit" name="txtBdiscA">
762 774 <property name="readOnly">
763 775 <bool>true</bool>
764 776 </property>
765 777 </widget>
766 778 </item>
767 779 <item>
768 780 <widget class="QLineEdit" name="txtBcopyA">
769 781 <property name="readOnly">
770 782 <bool>true</bool>
771 783 </property>
772 784 </widget>
773 785 </item>
774 786 </layout>
775 787 </item>
776 788 <item>
777 789 <layout class="QVBoxLayout" name="verticalLayout_23">
778 790 <item>
779 791 <spacer name="horizontalSpacer_6">
780 792 <property name="orientation">
781 793 <enum>Qt::Horizontal</enum>
782 794 </property>
783 795 <property name="sizeType">
784 796 <enum>QSizePolicy::Minimum</enum>
785 797 </property>
786 798 <property name="sizeHint" stdset="0">
787 799 <size>
788 800 <width>40</width>
789 801 <height>20</height>
790 802 </size>
791 803 </property>
792 804 </spacer>
793 805 </item>
794 806 <item>
795 807 <widget class="QLabel" name="lblDevB">
796 808 <property name="text">
797 809 <string>DEV B</string>
798 810 </property>
799 811 <property name="alignment">
800 812 <set>Qt::AlignCenter</set>
801 813 </property>
802 814 </widget>
803 815 </item>
804 816 <item>
805 817 <widget class="QLineEdit" name="txtBstatusB">
806 818 <property name="readOnly">
807 819 <bool>true</bool>
808 820 </property>
809 821 </widget>
810 822 </item>
811 823 <item>
812 824 <widget class="QLineEdit" name="txtBdiscB">
813 825 <property name="readOnly">
814 826 <bool>true</bool>
815 827 </property>
816 828 </widget>
817 829 </item>
818 830 <item>
819 831 <widget class="QLineEdit" name="txtBcopyB">
820 832 <property name="readOnly">
821 833 <bool>true</bool>
822 834 </property>
823 835 </widget>
824 836 </item>
825 837 </layout>
826 838 </item>
827 839 <item>
828 840 <layout class="QVBoxLayout" name="verticalLayout_24">
829 841 <item>
830 842 <spacer name="horizontalSpacer_7">
831 843 <property name="orientation">
832 844 <enum>Qt::Horizontal</enum>
833 845 </property>
834 846 <property name="sizeType">
835 847 <enum>QSizePolicy::Minimum</enum>
836 848 </property>
837 849 <property name="sizeHint" stdset="0">
838 850 <size>
839 851 <width>40</width>
840 852 <height>20</height>
841 853 </size>
842 854 </property>
843 855 </spacer>
844 856 </item>
845 857 <item>
846 858 <widget class="QLabel" name="lblDevC">
847 859 <property name="text">
848 860 <string>DEV C</string>
849 861 </property>
850 862 <property name="alignment">
851 863 <set>Qt::AlignCenter</set>
852 864 </property>
853 865 </widget>
854 866 </item>
855 867 <item>
856 868 <widget class="QLineEdit" name="txtBstatusC">
857 869 <property name="readOnly">
858 870 <bool>true</bool>
859 871 </property>
860 872 </widget>
861 873 </item>
862 874 <item>
863 875 <widget class="QLineEdit" name="txtBdiscC">
864 876 <property name="readOnly">
865 877 <bool>true</bool>
866 878 </property>
867 879 </widget>
868 880 </item>
869 881 <item>
870 882 <widget class="QLineEdit" name="txtBcopyC">
871 883 <property name="readOnly">
872 884 <bool>true</bool>
873 885 </property>
874 886 </widget>
875 887 </item>
876 888 </layout>
877 889 </item>
878 890 <item>
879 891 <layout class="QVBoxLayout" name="verticalLayout_25">
880 892 <item>
881 893 <spacer name="horizontalSpacer_8">
882 894 <property name="orientation">
883 895 <enum>Qt::Horizontal</enum>
884 896 </property>
885 897 <property name="sizeType">
886 898 <enum>QSizePolicy::Minimum</enum>
887 899 </property>
888 900 <property name="sizeHint" stdset="0">
889 901 <size>
890 902 <width>40</width>
891 903 <height>20</height>
892 904 </size>
893 905 </property>
894 906 </spacer>
895 907 </item>
896 908 <item>
897 909 <widget class="QLabel" name="lblDevD">
898 910 <property name="text">
899 911 <string>DEV D</string>
900 912 </property>
901 913 <property name="alignment">
902 914 <set>Qt::AlignCenter</set>
903 915 </property>
904 916 </widget>
905 917 </item>
906 918 <item>
907 919 <widget class="QLineEdit" name="txtBstatusD">
908 920 <property name="readOnly">
909 921 <bool>true</bool>
910 922 </property>
911 923 </widget>
912 924 </item>
913 925 <item>
914 926 <widget class="QLineEdit" name="txtBdiscD">
915 927 <property name="readOnly">
916 928 <bool>true</bool>
917 929 </property>
918 930 </widget>
919 931 </item>
920 932 <item>
921 933 <widget class="QLineEdit" name="txtBcopyD">
922 934 <property name="readOnly">
923 935 <bool>true</bool>
924 936 </property>
925 937 </widget>
926 938 </item>
927 939 </layout>
928 940 </item>
929 941 </layout>
930 942 </item>
931 943 <item>
932 944 <spacer name="verticalSpacer">
933 945 <property name="orientation">
934 946 <enum>Qt::Vertical</enum>
935 947 </property>
936 948 <property name="sizeType">
937 949 <enum>QSizePolicy::Fixed</enum>
938 950 </property>
939 951 <property name="sizeHint" stdset="0">
940 952 <size>
941 953 <width>20</width>
942 954 <height>20</height>
943 955 </size>
944 956 </property>
945 957 </spacer>
946 958 </item>
947 959 <item>
948 960 <layout class="QHBoxLayout" name="horizontalLayout_16">
949 961 <item>
950 962 <widget class="QLabel" name="label">
951 963 <property name="text">
952 964 <string>CHECK</string>
953 965 </property>
954 966 </widget>
955 967 </item>
956 968 <item>
957 969 <spacer name="horizontalSpacer_14">
958 970 <property name="orientation">
959 971 <enum>Qt::Horizontal</enum>
960 972 </property>
961 973 <property name="sizeHint" stdset="0">
962 974 <size>
963 975 <width>40</width>
964 976 <height>20</height>
965 977 </size>
966 978 </property>
967 979 </spacer>
968 980 </item>
969 981 </layout>
970 982 </item>
971 983 <item>
972 984 <layout class="QHBoxLayout" name="horizontalLayout_17">
973 985 <item>
974 986 <spacer name="horizontalSpacer_13">
975 987 <property name="orientation">
976 988 <enum>Qt::Horizontal</enum>
977 989 </property>
978 990 <property name="sizeType">
979 991 <enum>QSizePolicy::Fixed</enum>
980 992 </property>
981 993 <property name="sizeHint" stdset="0">
982 994 <size>
983 995 <width>50</width>
984 996 <height>20</height>
985 997 </size>
986 998 </property>
987 999 </spacer>
988 1000 </item>
989 1001 <item>
990 1002 <widget class="QLineEdit" name="txtTDpath">
991 1003 <property name="enabled">
992 1004 <bool>false</bool>
993 1005 </property>
994 1006 </widget>
995 1007 </item>
996 1008 <item>
997 1009 <widget class="QPushButton" name="btnTDpath">
998 1010 <property name="enabled">
999 1011 <bool>false</bool>
1000 1012 </property>
1001 1013 <property name="text">
1002 1014 <string>Temp Data Path</string>
1003 1015 </property>
1004 1016 </widget>
1005 1017 </item>
1006 1018 </layout>
1007 1019 </item>
1008 1020 <item>
1009 1021 <layout class="QHBoxLayout" name="horizontalLayout_19">
1010 1022 <item>
1011 1023 <layout class="QVBoxLayout" name="verticalLayout_26">
1012 1024 <item>
1013 1025 <spacer name="horizontalSpacer_10">
1014 1026 <property name="orientation">
1015 1027 <enum>Qt::Horizontal</enum>
1016 1028 </property>
1017 1029 <property name="sizeType">
1018 1030 <enum>QSizePolicy::Minimum</enum>
1019 1031 </property>
1020 1032 <property name="sizeHint" stdset="0">
1021 1033 <size>
1022 1034 <width>40</width>
1023 1035 <height>20</height>
1024 1036 </size>
1025 1037 </property>
1026 1038 </spacer>
1027 1039 </item>
1028 1040 <item>
1029 1041 <widget class="QLabel" name="lblSTATUS_2">
1030 1042 <property name="sizePolicy">
1031 1043 <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
1032 1044 <horstretch>0</horstretch>
1033 1045 <verstretch>0</verstretch>
1034 1046 </sizepolicy>
1035 1047 </property>
1036 1048 <property name="text">
1037 1049 <string>STATUS</string>
1038 1050 </property>
1039 1051 </widget>
1040 1052 </item>
1041 1053 </layout>
1042 1054 </item>
1043 1055 <item>
1044 1056 <layout class="QVBoxLayout" name="verticalLayout_27">
1045 1057 <item>
1046 1058 <widget class="QLabel" name="lblDevA_2">
1047 1059 <property name="text">
1048 1060 <string>DEV A</string>
1049 1061 </property>
1050 1062 <property name="alignment">
1051 1063 <set>Qt::AlignCenter</set>
1052 1064 </property>
1053 1065 </widget>
1054 1066 </item>
1055 1067 <item>
1056 1068 <widget class="QLineEdit" name="txtCHstatusA">
1057 1069 <property name="readOnly">
1058 1070 <bool>true</bool>
1059 1071 </property>
1060 1072 </widget>
1061 1073 </item>
1062 1074 </layout>
1063 1075 </item>
1064 1076 <item>
1065 1077 <layout class="QVBoxLayout" name="verticalLayout_28">
1066 1078 <item>
1067 1079 <widget class="QLabel" name="lblDevB_2">
1068 1080 <property name="text">
1069 1081 <string>DEV B</string>
1070 1082 </property>
1071 1083 <property name="alignment">
1072 1084 <set>Qt::AlignCenter</set>
1073 1085 </property>
1074 1086 </widget>
1075 1087 </item>
1076 1088 <item>
1077 1089 <widget class="QLineEdit" name="txtCHstatusB">
1078 1090 <property name="readOnly">
1079 1091 <bool>true</bool>
1080 1092 </property>
1081 1093 </widget>
1082 1094 </item>
1083 1095 </layout>
1084 1096 </item>
1085 1097 <item>
1086 1098 <layout class="QVBoxLayout" name="verticalLayout_29">
1087 1099 <item>
1088 1100 <widget class="QLabel" name="lblDevC_2">
1089 1101 <property name="text">
1090 1102 <string>DEV C</string>
1091 1103 </property>
1092 1104 <property name="alignment">
1093 1105 <set>Qt::AlignCenter</set>
1094 1106 </property>
1095 1107 </widget>
1096 1108 </item>
1097 1109 <item>
1098 1110 <widget class="QLineEdit" name="txtCHstatusC">
1099 1111 <property name="readOnly">
1100 1112 <bool>true</bool>
1101 1113 </property>
1102 1114 </widget>
1103 1115 </item>
1104 1116 </layout>
1105 1117 </item>
1106 1118 <item>
1107 1119 <layout class="QVBoxLayout" name="verticalLayout_30">
1108 1120 <item>
1109 1121 <widget class="QLabel" name="lblDevD_2">
1110 1122 <property name="text">
1111 1123 <string>DEV D</string>
1112 1124 </property>
1113 1125 <property name="alignment">
1114 1126 <set>Qt::AlignCenter</set>
1115 1127 </property>
1116 1128 </widget>
1117 1129 </item>
1118 1130 <item>
1119 1131 <widget class="QLineEdit" name="txtCHstatusD">
1120 1132 <property name="readOnly">
1121 1133 <bool>true</bool>
1122 1134 </property>
1123 1135 </widget>
1124 1136 </item>
1125 1137 </layout>
1126 1138 </item>
1127 1139 </layout>
1128 1140 </item>
1129 1141 <item>
1130 1142 <layout class="QHBoxLayout" name="horizontalLayout_20">
1131 1143 <item>
1132 1144 <spacer name="horizontalSpacer_12">
1133 1145 <property name="orientation">
1134 1146 <enum>Qt::Horizontal</enum>
1135 1147 </property>
1136 1148 <property name="sizeType">
1137 1149 <enum>QSizePolicy::Minimum</enum>
1138 1150 </property>
1139 1151 <property name="sizeHint" stdset="0">
1140 1152 <size>
1141 1153 <width>50</width>
1142 1154 <height>20</height>
1143 1155 </size>
1144 1156 </property>
1145 1157 </spacer>
1146 1158 </item>
1147 1159 <item>
1148 1160 <widget class="QCheckBox" name="chkCheck">
1149 1161 <property name="enabled">
1150 1162 <bool>true</bool>
1151 1163 </property>
1152 1164 <property name="text">
1153 1165 <string>MANUAL</string>
1154 1166 </property>
1155 1167 </widget>
1156 1168 </item>
1157 1169 <item>
1158 1170 <spacer name="horizontalSpacer_15">
1159 1171 <property name="orientation">
1160 1172 <enum>Qt::Horizontal</enum>
1161 1173 </property>
1162 1174 <property name="sizeHint" stdset="0">
1163 1175 <size>
1164 1176 <width>40</width>
1165 1177 <height>20</height>
1166 1178 </size>
1167 1179 </property>
1168 1180 </spacer>
1169 1181 </item>
1170 1182 <item>
1171 1183 <widget class="QPushButton" name="btnCHstart">
1172 1184 <property name="enabled">
1173 1185 <bool>false</bool>
1174 1186 </property>
1175 1187 <property name="text">
1176 1188 <string>START</string>
1177 1189 </property>
1178 1190 </widget>
1179 1191 </item>
1180 1192 </layout>
1181 1193 </item>
1182 <item>
1183 <widget class="QWidget" name="widget_2" native="true">
1184 <property name="sizePolicy">
1185 <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
1186 <horstretch>0</horstretch>
1187 <verstretch>0</verstretch>
1188 </sizepolicy>
1189 </property>
1190 <property name="maximumSize">
1191 <size>
1192 <width>500</width>
1193 <height>16777215</height>
1194 </size>
1195 </property>
1196 <layout class="QGridLayout" name="gridLayout_2"/>
1197 </widget>
1198 </item>
1199 1194 </layout>
1200 1195 </widget>
1201 1196 </widget>
1202 1197 </item>
1203 1198 <item>
1204 1199 <widget class="QTextEdit" name="txtInfo">
1205 1200 <property name="readOnly">
1206 1201 <bool>true</bool>
1202 </property>
1203 </widget>
1204 </item>
1205 <item>
1206 <widget class="QLineEdit" name="txtProgress">
1207 <property name="sizePolicy">
1208 <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
1209 <horstretch>0</horstretch>
1210 <verstretch>0</verstretch>
1211 </sizepolicy>
1207 1212 </property>
1208 1213 </widget>
1209 1214 </item>
1210 1215 <item>
1211 1216 <layout class="QHBoxLayout" name="horizontalLayout_2">
1212 1217 <property name="sizeConstraint">
1213 1218 <enum>QLayout::SetDefaultConstraint</enum>
1214 1219 </property>
1215 1220 <item>
1216 1221 <widget class="QPushButton" name="btnGbkp">
1217 1222 <property name="enabled">
1218 1223 <bool>false</bool>
1219 1224 </property>
1220 1225 <property name="text">
1221 1226 <string>Generate Bkp</string>
1222 1227 </property>
1223 1228 </widget>
1224 1229 </item>
1225 1230 <item>
1226 1231 <widget class="QPushButton" name="btnRestart">
1227 1232 <property name="enabled">
1228 1233 <bool>false</bool>
1229 1234 </property>
1230 1235 <property name="text">
1231 1236 <string>Restart</string>
1232 1237 </property>
1233 1238 </widget>
1234 1239 </item>
1235 1240 <item>
1236 1241 <widget class="QPushButton" name="btnStartburn">
1237 1242 <property name="enabled">
1238 1243 <bool>false</bool>
1239 1244 </property>
1240 1245 <property name="text">
1241 1246 <string>Start Burn</string>
1242 1247 </property>
1243 1248 </widget>
1244 1249 </item>
1245 1250 <item>
1246 1251 <widget class="QPushButton" name="btnStopburn">
1247 1252 <property name="enabled">
1248 1253 <bool>false</bool>
1249 1254 </property>
1250 1255 <property name="text">
1251 1256 <string>Stop Burn</string>
1252 1257 </property>
1253 1258 </widget>
1254 1259 </item>
1255 1260 </layout>
1256 1261 </item>
1257 1262 </layout>
1258 1263 </widget>
1259 1264 <widget class="QMenuBar" name="menubar">
1260 1265 <property name="geometry">
1261 1266 <rect>
1262 1267 <x>0</x>
1263 1268 <y>0</y>
1264 <width>824</width>
1265 <height>25</height>
1269 <width>621</width>
1270 <height>21</height>
1266 1271 </rect>
1267 1272 </property>
1268 1273 <widget class="QMenu" name="menuFile">
1269 1274 <property name="title">
1270 1275 <string>File</string>
1271 1276 </property>
1272 1277 <addaction name="actionQuit"/>
1273 1278 </widget>
1274 1279 <widget class="QMenu" name="menuHelp">
1275 1280 <property name="title">
1276 1281 <string>Help</string>
1277 1282 </property>
1278 1283 <addaction name="actionAbout"/>
1279 1284 </widget>
1280 1285 <widget class="QMenu" name="menuParameters">
1281 1286 <property name="title">
1282 1287 <string>Parameters</string>
1283 1288 </property>
1284 1289 <addaction name="actionChange_Parameters"/>
1285 1290 </widget>
1286 1291 <addaction name="menuFile"/>
1287 1292 <addaction name="menuParameters"/>
1288 1293 <addaction name="menuHelp"/>
1289 1294 </widget>
1290 1295 <widget class="QStatusBar" name="statusbar"/>
1291 1296 <action name="actionChange_Parameters">
1292 1297 <property name="enabled">
1293 1298 <bool>false</bool>
1294 1299 </property>
1295 1300 <property name="text">
1296 1301 <string>Change Parameters</string>
1297 1302 </property>
1298 1303 </action>
1299 1304 <action name="actionQuit">
1300 1305 <property name="text">
1301 1306 <string>Quit</string>
1302 1307 </property>
1303 1308 </action>
1304 1309 <action name="actionAbout">
1305 1310 <property name="text">
1306 1311 <string>About</string>
1307 1312 </property>
1308 1313 </action>
1309 1314 </widget>
1310 1315 <tabstops>
1311 1316 <tabstop>txtDpath</tabstop>
1312 1317 <tabstop>btnDpath</tabstop>
1313 1318 <tabstop>txtRpath</tabstop>
1314 1319 <tabstop>btnRpath</tabstop>
1315 1320 <tabstop>lstDtype</tabstop>
1316 1321 <tabstop>txtDtype</tabstop>
1317 1322 <tabstop>txtElabel</tabstop>
1318 1323 <tabstop>lstStartDay</tabstop>
1319 1324 <tabstop>lstStopDay</tabstop>
1320 1325 <tabstop>lstDcapacity</tabstop>
1321 1326 <tabstop>tabWidget</tabstop>
1322 1327 <tabstop>btnGbkp</tabstop>
1323 1328 <tabstop>btnRestart</tabstop>
1324 1329 <tabstop>btnStartburn</tabstop>
1325 1330 <tabstop>btnStopburn</tabstop>
1326 1331 </tabstops>
1327 1332 <resources/>
1328 1333 <connections>
1329 1334 <connection>
1330 1335 <sender>actionQuit</sender>
1331 1336 <signal>triggered()</signal>
1332 1337 <receiver>MainWindow</receiver>
1333 1338 <slot>close()</slot>
1334 1339 <hints>
1335 1340 <hint type="sourcelabel">
1336 1341 <x>-1</x>
1337 1342 <y>-1</y>
1338 1343 </hint>
1339 1344 <hint type="destinationlabel">
1340 1345 <x>306</x>
1341 1346 <y>358</y>
1342 1347 </hint>
1343 1348 </hints>
1344 1349 </connection>
1345 1350 <connection>
1346 1351 <sender>chkCheck</sender>
1347 1352 <signal>toggled(bool)</signal>
1348 1353 <receiver>txtTDpath</receiver>
1349 1354 <slot>setEnabled(bool)</slot>
1350 1355 <hints>
1351 1356 <hint type="sourcelabel">
1352 1357 <x>160</x>
1353 1358 <y>378</y>
1354 1359 </hint>
1355 1360 <hint type="destinationlabel">
1356 1361 <x>231</x>
1357 1362 <y>306</y>
1358 1363 </hint>
1359 1364 </hints>
1360 1365 </connection>
1361 1366 <connection>
1362 1367 <sender>chkCheck</sender>
1363 1368 <signal>toggled(bool)</signal>
1364 1369 <receiver>btnTDpath</receiver>
1365 1370 <slot>setEnabled(bool)</slot>
1366 1371 <hints>
1367 1372 <hint type="sourcelabel">
1368 1373 <x>160</x>
1369 1374 <y>387</y>
1370 1375 </hint>
1371 1376 <hint type="destinationlabel">
1372 1377 <x>802</x>
1373 1378 <y>305</y>
1374 1379 </hint>
1375 1380 </hints>
1376 1381 </connection>
1377 1382 <connection>
1378 1383 <sender>chkCheck</sender>
1379 1384 <signal>toggled(bool)</signal>
1380 1385 <receiver>btnCHstart</receiver>
1381 1386 <slot>setEnabled(bool)</slot>
1382 1387 <hints>
1383 1388 <hint type="sourcelabel">
1384 1389 <x>160</x>
1385 1390 <y>383</y>
1386 1391 </hint>
1387 1392 <hint type="destinationlabel">
1388 1393 <x>802</x>
1389 1394 <y>389</y>
1390 1395 </hint>
1391 1396 </hints>
1392 1397 </connection>
1393 1398 <connection>
1394 1399 <sender>chkDevD</sender>
1395 1400 <signal>toggled(bool)</signal>
1396 1401 <receiver>grpDevD</receiver>
1397 1402 <slot>setEnabled(bool)</slot>
1398 1403 <hints>
1399 1404 <hint type="sourcelabel">
1400 1405 <x>701</x>
1401 1406 <y>98</y>
1402 1407 </hint>
1403 1408 <hint type="destinationlabel">
1404 1409 <x>701</x>
1405 1410 <y>251</y>
1406 1411 </hint>
1407 1412 </hints>
1408 1413 </connection>
1409 1414 <connection>
1410 1415 <sender>chkDevB</sender>
1411 1416 <signal>toggled(bool)</signal>
1412 1417 <receiver>grpDevB</receiver>
1413 1418 <slot>setEnabled(bool)</slot>
1414 1419 <hints>
1415 1420 <hint type="sourcelabel">
1416 1421 <x>263</x>
1417 1422 <y>79</y>
1418 1423 </hint>
1419 1424 <hint type="destinationlabel">
1420 1425 <x>251</x>
1421 1426 <y>167</y>
1422 1427 </hint>
1423 1428 </hints>
1424 1429 </connection>
1425 1430 <connection>
1426 1431 <sender>chkDevC</sender>
1427 1432 <signal>toggled(bool)</signal>
1428 1433 <receiver>grpDevC</receiver>
1429 1434 <slot>setEnabled(bool)</slot>
1430 1435 <hints>
1431 1436 <hint type="sourcelabel">
1432 1437 <x>391</x>
1433 1438 <y>79</y>
1434 1439 </hint>
1435 1440 <hint type="destinationlabel">
1436 1441 <x>391</x>
1437 1442 <y>202</y>
1438 1443 </hint>
1439 1444 </hints>
1440 1445 </connection>
1441 1446 <connection>
1442 1447 <sender>chkDevA</sender>
1443 1448 <signal>toggled(bool)</signal>
1444 1449 <receiver>grpDevA</receiver>
1445 1450 <slot>setEnabled(bool)</slot>
1446 1451 <hints>
1447 1452 <hint type="sourcelabel">
1448 1453 <x>105</x>
1449 1454 <y>79</y>
1450 1455 </hint>
1451 1456 <hint type="destinationlabel">
1452 1457 <x>95</x>
1453 1458 <y>167</y>
1454 1459 </hint>
1455 1460 </hints>
1456 1461 </connection>
1457 1462 </connections>
1458 1463 </ui>
@@ -1,58 +1,58
1 1 # -*- coding: utf-8 -*-
2 2
3 3 # Form implementation generated from reading ui file '/home/ricardoar/JRO_SVN/eric4/jro_backup_manager/ui/About.ui'
4 4 #
5 # Created: Mon May 24 17:45:30 2010
6 # by: PyQt4 UI code generator 4.6
5 # Created: Mon May 24 22:39:27 2010
6 # by: PyQt4 UI code generator 4.7.2
7 7 #
8 8 # WARNING! All changes made in this file will be lost!
9 9
10 10 from PyQt4 import QtCore, QtGui
11 11
12 12 class Ui_About(object):
13 13 def setupUi(self, About):
14 14 About.setObjectName("About")
15 15 About.resize(250, 230)
16 16 About.setMinimumSize(QtCore.QSize(250, 230))
17 17 About.setMaximumSize(QtCore.QSize(250, 230))
18 18 self.verticalLayout = QtGui.QVBoxLayout(About)
19 19 self.verticalLayout.setObjectName("verticalLayout")
20 20 self.textEdit = QtGui.QTextEdit(About)
21 21 self.textEdit.setMaximumSize(QtCore.QSize(16777215, 16777215))
22 22 self.textEdit.setReadOnly(True)
23 23 self.textEdit.setObjectName("textEdit")
24 24 self.verticalLayout.addWidget(self.textEdit)
25 25 self.btnOK = QtGui.QPushButton(About)
26 26 self.btnOK.setObjectName("btnOK")
27 27 self.verticalLayout.addWidget(self.btnOK)
28 28
29 29 self.retranslateUi(About)
30 30 QtCore.QObject.connect(self.btnOK, QtCore.SIGNAL("clicked()"), About.close)
31 31 QtCore.QMetaObject.connectSlotsByName(About)
32 32
33 33 def retranslateUi(self, About):
34 34 About.setWindowTitle(QtGui.QApplication.translate("About", "About", None, QtGui.QApplication.UnicodeUTF8))
35 35 self.textEdit.setHtml(QtGui.QApplication.translate("About", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
36 36 "<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
37 37 "p, li { white-space: pre-wrap; }\n"
38 38 "</style></head><body style=\" font-family:\'Sans\'; font-size:10pt; font-weight:400; font-style:normal;\">\n"
39 39 "<p align=\"center\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-weight:600;\">JRO BACKUP MANAGER</span></p>\n"
40 40 "<p align=\"center\" style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;\"></p>\n"
41 41 "<p align=\"center\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-style:italic;\">Author:</span></p>\n"
42 42 "<p align=\"center\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-style:italic;\">Ricardo Farino Alonso Rondón</span></p>\n"
43 43 "<p align=\"center\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-style:italic;\">ricardo.alonso@jro.igp.gob.pe</span></p>\n"
44 44 "<p align=\"center\" style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-style:italic;\"></p>\n"
45 45 "<p align=\"center\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-style:italic;\">Jicamarca Radio Observatory</span></p>\n"
46 46 "<p align=\"center\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-style:italic;\">Jicamarca - May 2010</span></p></body></html>", None, QtGui.QApplication.UnicodeUTF8))
47 47 self.btnOK.setText(QtGui.QApplication.translate("About", "OK", None, QtGui.QApplication.UnicodeUTF8))
48 48
49 49
50 50 if __name__ == "__main__":
51 51 import sys
52 52 app = QtGui.QApplication(sys.argv)
53 53 About = QtGui.QDialog()
54 54 ui = Ui_About()
55 55 ui.setupUi(About)
56 56 About.show()
57 57 sys.exit(app.exec_())
58 58
@@ -1,707 +1,708
1 1 # -*- coding: utf-8 -*-
2 2
3 3 # Form implementation generated from reading ui file '/home/ricardoar/JRO_SVN/eric4/jro_backup_manager/ui/MainWindow.ui'
4 4 #
5 # Created: Mon May 24 17:45:30 2010
6 # by: PyQt4 UI code generator 4.6
5 # Created: Mon May 24 22:39:26 2010
6 # by: PyQt4 UI code generator 4.7.2
7 7 #
8 8 # WARNING! All changes made in this file will be lost!
9 9
10 10 from PyQt4 import QtCore, QtGui
11 11
12 12 class Ui_MainWindow(object):
13 13 def setupUi(self, MainWindow):
14 14 MainWindow.setObjectName("MainWindow")
15 MainWindow.resize(824, 717)
15 MainWindow.resize(621, 717)
16 16 self.centralwidget = QtGui.QWidget(MainWindow)
17 17 self.centralwidget.setObjectName("centralwidget")
18 18 self.verticalLayout = QtGui.QVBoxLayout(self.centralwidget)
19 19 self.verticalLayout.setObjectName("verticalLayout")
20 20 self.tabWidget = QtGui.QTabWidget(self.centralwidget)
21 21 self.tabWidget.setEnabled(True)
22 22 sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding)
23 23 sizePolicy.setHorizontalStretch(0)
24 24 sizePolicy.setVerticalStretch(0)
25 25 sizePolicy.setHeightForWidth(self.tabWidget.sizePolicy().hasHeightForWidth())
26 26 self.tabWidget.setSizePolicy(sizePolicy)
27 27 self.tabWidget.setObjectName("tabWidget")
28 28 self.tabParameters = QtGui.QWidget()
29 29 self.tabParameters.setEnabled(True)
30 30 self.tabParameters.setObjectName("tabParameters")
31 31 self.verticalLayout_2 = QtGui.QVBoxLayout(self.tabParameters)
32 32 self.verticalLayout_2.setObjectName("verticalLayout_2")
33 33 self.horizontalLayout = QtGui.QHBoxLayout()
34 34 self.horizontalLayout.setSizeConstraint(QtGui.QLayout.SetDefaultConstraint)
35 35 self.horizontalLayout.setObjectName("horizontalLayout")
36 36 self.txtDpath = QtGui.QLineEdit(self.tabParameters)
37 37 sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Fixed)
38 38 sizePolicy.setHorizontalStretch(0)
39 39 sizePolicy.setVerticalStretch(0)
40 40 sizePolicy.setHeightForWidth(self.txtDpath.sizePolicy().hasHeightForWidth())
41 41 self.txtDpath.setSizePolicy(sizePolicy)
42 42 self.txtDpath.setObjectName("txtDpath")
43 43 self.horizontalLayout.addWidget(self.txtDpath)
44 44 self.btnDpath = QtGui.QPushButton(self.tabParameters)
45 45 sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed)
46 46 sizePolicy.setHorizontalStretch(0)
47 47 sizePolicy.setVerticalStretch(0)
48 48 sizePolicy.setHeightForWidth(self.btnDpath.sizePolicy().hasHeightForWidth())
49 49 self.btnDpath.setSizePolicy(sizePolicy)
50 50 self.btnDpath.setCheckable(False)
51 51 self.btnDpath.setObjectName("btnDpath")
52 52 self.horizontalLayout.addWidget(self.btnDpath)
53 53 self.verticalLayout_2.addLayout(self.horizontalLayout)
54 54 self.horizontalLayout_3 = QtGui.QHBoxLayout()
55 55 self.horizontalLayout_3.setObjectName("horizontalLayout_3")
56 56 self.txtRpath = QtGui.QLineEdit(self.tabParameters)
57 57 self.txtRpath.setObjectName("txtRpath")
58 58 self.horizontalLayout_3.addWidget(self.txtRpath)
59 59 self.btnRpath = QtGui.QPushButton(self.tabParameters)
60 60 self.btnRpath.setObjectName("btnRpath")
61 61 self.horizontalLayout_3.addWidget(self.btnRpath)
62 62 self.verticalLayout_2.addLayout(self.horizontalLayout_3)
63 63 self.lblDtype = QtGui.QLabel(self.tabParameters)
64 64 self.lblDtype.setObjectName("lblDtype")
65 65 self.verticalLayout_2.addWidget(self.lblDtype)
66 66 self.horizontalLayout_4 = QtGui.QHBoxLayout()
67 67 self.horizontalLayout_4.setObjectName("horizontalLayout_4")
68 68 self.lstDtype = QtGui.QComboBox(self.tabParameters)
69 69 self.lstDtype.setObjectName("lstDtype")
70 70 self.lstDtype.addItem("")
71 71 self.lstDtype.addItem("")
72 72 self.lstDtype.addItem("")
73 73 self.lstDtype.addItem("")
74 74 self.horizontalLayout_4.addWidget(self.lstDtype)
75 75 self.txtDtype = QtGui.QLineEdit(self.tabParameters)
76 76 sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Fixed)
77 77 sizePolicy.setHorizontalStretch(0)
78 78 sizePolicy.setVerticalStretch(0)
79 79 sizePolicy.setHeightForWidth(self.txtDtype.sizePolicy().hasHeightForWidth())
80 80 self.txtDtype.setSizePolicy(sizePolicy)
81 81 self.txtDtype.setReadOnly(True)
82 82 self.txtDtype.setObjectName("txtDtype")
83 83 self.horizontalLayout_4.addWidget(self.txtDtype)
84 84 spacerItem = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
85 85 self.horizontalLayout_4.addItem(spacerItem)
86 86 self.verticalLayout_2.addLayout(self.horizontalLayout_4)
87 87 self.horizontalLayout_6 = QtGui.QHBoxLayout()
88 88 self.horizontalLayout_6.setObjectName("horizontalLayout_6")
89 89 self.lblElabel = QtGui.QLabel(self.tabParameters)
90 90 self.lblElabel.setObjectName("lblElabel")
91 91 self.horizontalLayout_6.addWidget(self.lblElabel)
92 92 self.lblCopys = QtGui.QLabel(self.tabParameters)
93 93 self.lblCopys.setObjectName("lblCopys")
94 94 self.horizontalLayout_6.addWidget(self.lblCopys)
95 95 self.verticalLayout_2.addLayout(self.horizontalLayout_6)
96 96 self.horizontalLayout_5 = QtGui.QHBoxLayout()
97 97 self.horizontalLayout_5.setObjectName("horizontalLayout_5")
98 98 self.txtElabel = QtGui.QLineEdit(self.tabParameters)
99 99 self.txtElabel.setObjectName("txtElabel")
100 100 self.horizontalLayout_5.addWidget(self.txtElabel)
101 101 self.txtCopys = QtGui.QSpinBox(self.tabParameters)
102 102 sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed)
103 103 sizePolicy.setHorizontalStretch(0)
104 104 sizePolicy.setVerticalStretch(0)
105 105 sizePolicy.setHeightForWidth(self.txtCopys.sizePolicy().hasHeightForWidth())
106 106 self.txtCopys.setSizePolicy(sizePolicy)
107 107 self.txtCopys.setMinimum(1)
108 108 self.txtCopys.setObjectName("txtCopys")
109 109 self.horizontalLayout_5.addWidget(self.txtCopys)
110 110 self.verticalLayout_2.addLayout(self.horizontalLayout_5)
111 111 self.horizontalLayout_7 = QtGui.QHBoxLayout()
112 112 self.horizontalLayout_7.setObjectName("horizontalLayout_7")
113 113 self.lblStartDay = QtGui.QLabel(self.tabParameters)
114 114 self.lblStartDay.setObjectName("lblStartDay")
115 115 self.horizontalLayout_7.addWidget(self.lblStartDay)
116 116 self.lblStopDay = QtGui.QLabel(self.tabParameters)
117 117 self.lblStopDay.setObjectName("lblStopDay")
118 118 self.horizontalLayout_7.addWidget(self.lblStopDay)
119 119 self.verticalLayout_2.addLayout(self.horizontalLayout_7)
120 120 self.horizontalLayout_8 = QtGui.QHBoxLayout()
121 121 self.horizontalLayout_8.setObjectName("horizontalLayout_8")
122 122 self.lstStartDay = QtGui.QComboBox(self.tabParameters)
123 123 self.lstStartDay.setObjectName("lstStartDay")
124 124 self.horizontalLayout_8.addWidget(self.lstStartDay)
125 125 self.lstStopDay = QtGui.QComboBox(self.tabParameters)
126 126 self.lstStopDay.setObjectName("lstStopDay")
127 127 self.horizontalLayout_8.addWidget(self.lstStopDay)
128 128 self.verticalLayout_2.addLayout(self.horizontalLayout_8)
129 129 self.tabWidget.addTab(self.tabParameters, "")
130 130 self.tabDconfig = QtGui.QWidget()
131 131 self.tabDconfig.setEnabled(True)
132 132 sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Minimum)
133 133 sizePolicy.setHorizontalStretch(0)
134 134 sizePolicy.setVerticalStretch(0)
135 135 sizePolicy.setHeightForWidth(self.tabDconfig.sizePolicy().hasHeightForWidth())
136 136 self.tabDconfig.setSizePolicy(sizePolicy)
137 137 self.tabDconfig.setObjectName("tabDconfig")
138 138 self.verticalLayout_3 = QtGui.QVBoxLayout(self.tabDconfig)
139 139 self.verticalLayout_3.setObjectName("verticalLayout_3")
140 140 self.horizontalLayout_12 = QtGui.QHBoxLayout()
141 141 self.horizontalLayout_12.setObjectName("horizontalLayout_12")
142 142 self.verticalLayout_15 = QtGui.QVBoxLayout()
143 143 self.verticalLayout_15.setObjectName("verticalLayout_15")
144 144 self.chkDevA = QtGui.QCheckBox(self.tabDconfig)
145 145 self.chkDevA.setChecked(True)
146 146 self.chkDevA.setObjectName("chkDevA")
147 147 self.verticalLayout_15.addWidget(self.chkDevA)
148 148 self.grpDevA = QtGui.QWidget(self.tabDconfig)
149 149 self.grpDevA.setObjectName("grpDevA")
150 150 self.verticalLayout_11 = QtGui.QVBoxLayout(self.grpDevA)
151 151 self.verticalLayout_11.setObjectName("verticalLayout_11")
152 152 self.txtDeviceA = QtGui.QLineEdit(self.grpDevA)
153 153 self.txtDeviceA.setReadOnly(True)
154 154 self.txtDeviceA.setObjectName("txtDeviceA")
155 155 self.verticalLayout_11.addWidget(self.txtDeviceA)
156 156 self.txtBspeedA = QtGui.QSpinBox(self.grpDevA)
157 self.txtBspeedA.setReadOnly(True)
157 158 self.txtBspeedA.setMinimum(1)
158 159 self.txtBspeedA.setProperty("value", 16)
159 160 self.txtBspeedA.setObjectName("txtBspeedA")
160 161 self.verticalLayout_11.addWidget(self.txtBspeedA)
161 162 self.txtBmodeA = QtGui.QLineEdit(self.grpDevA)
162 163 self.txtBmodeA.setReadOnly(True)
163 164 self.txtBmodeA.setObjectName("txtBmodeA")
164 165 self.verticalLayout_11.addWidget(self.txtBmodeA)
165 166 self.btnTdevA = QtGui.QPushButton(self.grpDevA)
166 167 self.btnTdevA.setObjectName("btnTdevA")
167 168 self.verticalLayout_11.addWidget(self.btnTdevA)
168 169 self.verticalLayout_15.addWidget(self.grpDevA)
169 170 self.horizontalLayout_12.addLayout(self.verticalLayout_15)
170 171 self.verticalLayout_16 = QtGui.QVBoxLayout()
171 172 self.verticalLayout_16.setObjectName("verticalLayout_16")
172 173 self.chkDevB = QtGui.QCheckBox(self.tabDconfig)
173 174 self.chkDevB.setChecked(True)
174 175 self.chkDevB.setObjectName("chkDevB")
175 176 self.verticalLayout_16.addWidget(self.chkDevB)
176 177 self.grpDevB = QtGui.QWidget(self.tabDconfig)
177 178 self.grpDevB.setObjectName("grpDevB")
178 179 self.verticalLayout_12 = QtGui.QVBoxLayout(self.grpDevB)
179 180 self.verticalLayout_12.setObjectName("verticalLayout_12")
180 181 self.txtDeviceB = QtGui.QLineEdit(self.grpDevB)
181 182 self.txtDeviceB.setReadOnly(True)
182 183 self.txtDeviceB.setObjectName("txtDeviceB")
183 184 self.verticalLayout_12.addWidget(self.txtDeviceB)
184 185 self.txtBspeedB = QtGui.QSpinBox(self.grpDevB)
186 self.txtBspeedB.setReadOnly(True)
185 187 self.txtBspeedB.setMinimum(1)
186 188 self.txtBspeedB.setProperty("value", 16)
187 189 self.txtBspeedB.setObjectName("txtBspeedB")
188 190 self.verticalLayout_12.addWidget(self.txtBspeedB)
189 191 self.txtBmodeB = QtGui.QLineEdit(self.grpDevB)
190 192 self.txtBmodeB.setReadOnly(True)
191 193 self.txtBmodeB.setObjectName("txtBmodeB")
192 194 self.verticalLayout_12.addWidget(self.txtBmodeB)
193 195 self.btnTdevB = QtGui.QPushButton(self.grpDevB)
194 196 self.btnTdevB.setObjectName("btnTdevB")
195 197 self.verticalLayout_12.addWidget(self.btnTdevB)
196 198 self.verticalLayout_16.addWidget(self.grpDevB)
197 199 self.horizontalLayout_12.addLayout(self.verticalLayout_16)
198 200 self.verticalLayout_17 = QtGui.QVBoxLayout()
199 201 self.verticalLayout_17.setObjectName("verticalLayout_17")
200 202 self.chkDevC = QtGui.QCheckBox(self.tabDconfig)
201 203 self.chkDevC.setChecked(True)
202 204 self.chkDevC.setObjectName("chkDevC")
203 205 self.verticalLayout_17.addWidget(self.chkDevC)
204 206 self.grpDevC = QtGui.QWidget(self.tabDconfig)
205 207 self.grpDevC.setObjectName("grpDevC")
206 208 self.verticalLayout_13 = QtGui.QVBoxLayout(self.grpDevC)
207 209 self.verticalLayout_13.setObjectName("verticalLayout_13")
208 210 self.txtDeviceC = QtGui.QLineEdit(self.grpDevC)
209 211 self.txtDeviceC.setReadOnly(True)
210 212 self.txtDeviceC.setObjectName("txtDeviceC")
211 213 self.verticalLayout_13.addWidget(self.txtDeviceC)
212 214 self.txtBspeedC = QtGui.QSpinBox(self.grpDevC)
215 self.txtBspeedC.setReadOnly(True)
213 216 self.txtBspeedC.setMinimum(1)
214 217 self.txtBspeedC.setProperty("value", 16)
215 218 self.txtBspeedC.setObjectName("txtBspeedC")
216 219 self.verticalLayout_13.addWidget(self.txtBspeedC)
217 220 self.txtBmodeC = QtGui.QLineEdit(self.grpDevC)
218 221 self.txtBmodeC.setReadOnly(True)
219 222 self.txtBmodeC.setObjectName("txtBmodeC")
220 223 self.verticalLayout_13.addWidget(self.txtBmodeC)
221 224 self.btnTdevC = QtGui.QPushButton(self.grpDevC)
222 225 self.btnTdevC.setObjectName("btnTdevC")
223 226 self.verticalLayout_13.addWidget(self.btnTdevC)
224 227 self.verticalLayout_17.addWidget(self.grpDevC)
225 228 self.horizontalLayout_12.addLayout(self.verticalLayout_17)
226 229 self.verticalLayout_18 = QtGui.QVBoxLayout()
227 230 self.verticalLayout_18.setObjectName("verticalLayout_18")
228 231 self.chkDevD = QtGui.QCheckBox(self.tabDconfig)
229 232 self.chkDevD.setChecked(True)
230 233 self.chkDevD.setObjectName("chkDevD")
231 234 self.verticalLayout_18.addWidget(self.chkDevD)
232 235 self.grpDevD = QtGui.QWidget(self.tabDconfig)
233 236 self.grpDevD.setObjectName("grpDevD")
234 237 self.verticalLayout_14 = QtGui.QVBoxLayout(self.grpDevD)
235 238 self.verticalLayout_14.setObjectName("verticalLayout_14")
236 239 self.txtDeviceD = QtGui.QLineEdit(self.grpDevD)
237 240 self.txtDeviceD.setReadOnly(True)
238 241 self.txtDeviceD.setObjectName("txtDeviceD")
239 242 self.verticalLayout_14.addWidget(self.txtDeviceD)
240 243 self.txtBspeedD = QtGui.QSpinBox(self.grpDevD)
244 self.txtBspeedD.setReadOnly(True)
241 245 self.txtBspeedD.setMinimum(1)
242 246 self.txtBspeedD.setProperty("value", 16)
243 247 self.txtBspeedD.setObjectName("txtBspeedD")
244 248 self.verticalLayout_14.addWidget(self.txtBspeedD)
245 249 self.txtBmodeD = QtGui.QLineEdit(self.grpDevD)
246 250 self.txtBmodeD.setReadOnly(True)
247 251 self.txtBmodeD.setObjectName("txtBmodeD")
248 252 self.verticalLayout_14.addWidget(self.txtBmodeD)
249 253 self.btnTdevD = QtGui.QPushButton(self.grpDevD)
250 254 self.btnTdevD.setObjectName("btnTdevD")
251 255 self.verticalLayout_14.addWidget(self.btnTdevD)
252 256 self.verticalLayout_18.addWidget(self.grpDevD)
253 257 self.horizontalLayout_12.addLayout(self.verticalLayout_18)
254 258 self.verticalLayout_19 = QtGui.QVBoxLayout()
255 259 self.verticalLayout_19.setObjectName("verticalLayout_19")
256 260 spacerItem1 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Minimum)
257 261 self.verticalLayout_19.addItem(spacerItem1)
258 262 self.grpDevD_2 = QtGui.QWidget(self.tabDconfig)
259 263 self.grpDevD_2.setObjectName("grpDevD_2")
260 264 self.verticalLayout_20 = QtGui.QVBoxLayout(self.grpDevD_2)
261 265 self.verticalLayout_20.setObjectName("verticalLayout_20")
262 266 self.lblDevice = QtGui.QLabel(self.grpDevD_2)
263 267 self.lblDevice.setObjectName("lblDevice")
264 268 self.verticalLayout_20.addWidget(self.lblDevice)
265 269 self.lblBspeed = QtGui.QLabel(self.grpDevD_2)
266 270 self.lblBspeed.setObjectName("lblBspeed")
267 271 self.verticalLayout_20.addWidget(self.lblBspeed)
268 272 self.lblBmode = QtGui.QLabel(self.grpDevD_2)
269 273 self.lblBmode.setObjectName("lblBmode")
270 274 self.verticalLayout_20.addWidget(self.lblBmode)
271 275 spacerItem2 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Fixed)
272 276 self.verticalLayout_20.addItem(spacerItem2)
273 277 self.verticalLayout_19.addWidget(self.grpDevD_2)
274 278 self.horizontalLayout_12.addLayout(self.verticalLayout_19)
275 279 self.verticalLayout_3.addLayout(self.horizontalLayout_12)
276 280 spacerItem3 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Minimum)
277 281 self.verticalLayout_3.addItem(spacerItem3)
278 282 self.horizontalLayout_11 = QtGui.QHBoxLayout()
279 283 self.horizontalLayout_11.setSpacing(6)
280 284 self.horizontalLayout_11.setSizeConstraint(QtGui.QLayout.SetDefaultConstraint)
281 285 self.horizontalLayout_11.setObjectName("horizontalLayout_11")
282 286 self.lblDcapacity = QtGui.QLabel(self.tabDconfig)
283 287 sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed)
284 288 sizePolicy.setHorizontalStretch(0)
285 289 sizePolicy.setVerticalStretch(0)
286 290 sizePolicy.setHeightForWidth(self.lblDcapacity.sizePolicy().hasHeightForWidth())
287 291 self.lblDcapacity.setSizePolicy(sizePolicy)
288 292 self.lblDcapacity.setObjectName("lblDcapacity")
289 293 self.horizontalLayout_11.addWidget(self.lblDcapacity)
290 294 spacerItem4 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
291 295 self.horizontalLayout_11.addItem(spacerItem4)
292 296 self.verticalLayout_3.addLayout(self.horizontalLayout_11)
293 297 self.horizontalLayout_10 = QtGui.QHBoxLayout()
294 298 self.horizontalLayout_10.setSizeConstraint(QtGui.QLayout.SetFixedSize)
295 299 self.horizontalLayout_10.setObjectName("horizontalLayout_10")
296 300 self.lstDcapacity = QtGui.QComboBox(self.tabDconfig)
297 301 self.lstDcapacity.setObjectName("lstDcapacity")
298 302 self.lstDcapacity.addItem("")
299 303 self.lstDcapacity.addItem("")
300 304 self.lstDcapacity.addItem("")
301 305 self.lstDcapacity.addItem("")
302 306 self.lstDcapacity.addItem("")
303 307 self.horizontalLayout_10.addWidget(self.lstDcapacity)
304 308 self.txtDcapacity = QtGui.QDoubleSpinBox(self.tabDconfig)
305 309 sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed)
306 310 sizePolicy.setHorizontalStretch(0)
307 311 sizePolicy.setVerticalStretch(0)
308 312 sizePolicy.setHeightForWidth(self.txtDcapacity.sizePolicy().hasHeightForWidth())
309 313 self.txtDcapacity.setSizePolicy(sizePolicy)
310 314 self.txtDcapacity.setReadOnly(True)
311 315 self.txtDcapacity.setMinimum(100.0)
312 316 self.txtDcapacity.setMaximum(99999.99)
313 317 self.txtDcapacity.setProperty("value", 4482.27)
314 318 self.txtDcapacity.setObjectName("txtDcapacity")
315 319 self.horizontalLayout_10.addWidget(self.txtDcapacity)
316 320 spacerItem5 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
317 321 self.horizontalLayout_10.addItem(spacerItem5)
318 322 self.lblPSgraphic = QtGui.QLabel(self.tabDconfig)
319 323 self.lblPSgraphic.setObjectName("lblPSgraphic")
320 324 self.horizontalLayout_10.addWidget(self.lblPSgraphic)
321 325 self.txtPSgraphic = QtGui.QSpinBox(self.tabDconfig)
322 326 self.txtPSgraphic.setMinimum(1)
323 327 self.txtPSgraphic.setMaximum(33)
324 328 self.txtPSgraphic.setObjectName("txtPSgraphic")
325 329 self.horizontalLayout_10.addWidget(self.txtPSgraphic)
326 330 self.verticalLayout_3.addLayout(self.horizontalLayout_10)
327 331 self.tabWidget.addTab(self.tabDconfig, "")
328 332 self.tabStatus = QtGui.QWidget()
329 333 self.tabStatus.setObjectName("tabStatus")
330 334 self.verticalLayout_4 = QtGui.QVBoxLayout(self.tabStatus)
331 335 self.verticalLayout_4.setObjectName("verticalLayout_4")
332 336 self.horizontalLayout_18 = QtGui.QHBoxLayout()
333 337 self.horizontalLayout_18.setObjectName("horizontalLayout_18")
334 338 self.verticalLayout_21 = QtGui.QVBoxLayout()
335 339 self.verticalLayout_21.setObjectName("verticalLayout_21")
336 340 self.label_4 = QtGui.QLabel(self.tabStatus)
337 341 self.label_4.setObjectName("label_4")
338 342 self.verticalLayout_21.addWidget(self.label_4)
339 343 spacerItem6 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Minimum)
340 344 self.verticalLayout_21.addItem(spacerItem6)
341 345 self.lblSTATUS = QtGui.QLabel(self.tabStatus)
342 346 sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Preferred)
343 347 sizePolicy.setHorizontalStretch(0)
344 348 sizePolicy.setVerticalStretch(0)
345 349 sizePolicy.setHeightForWidth(self.lblSTATUS.sizePolicy().hasHeightForWidth())
346 350 self.lblSTATUS.setSizePolicy(sizePolicy)
347 351 self.lblSTATUS.setObjectName("lblSTATUS")
348 352 self.verticalLayout_21.addWidget(self.lblSTATUS)
349 353 self.lblINFO = QtGui.QLabel(self.tabStatus)
350 354 self.lblINFO.setObjectName("lblINFO")
351 355 self.verticalLayout_21.addWidget(self.lblINFO)
352 356 self.lblSET = QtGui.QLabel(self.tabStatus)
353 357 self.lblSET.setObjectName("lblSET")
354 358 self.verticalLayout_21.addWidget(self.lblSET)
355 359 self.horizontalLayout_18.addLayout(self.verticalLayout_21)
356 360 self.verticalLayout_22 = QtGui.QVBoxLayout()
357 361 self.verticalLayout_22.setObjectName("verticalLayout_22")
358 362 spacerItem7 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Minimum)
359 363 self.verticalLayout_22.addItem(spacerItem7)
360 364 self.lblDevA = QtGui.QLabel(self.tabStatus)
361 365 self.lblDevA.setAlignment(QtCore.Qt.AlignCenter)
362 366 self.lblDevA.setObjectName("lblDevA")
363 367 self.verticalLayout_22.addWidget(self.lblDevA)
364 368 self.txtBstatusA = QtGui.QLineEdit(self.tabStatus)
365 369 self.txtBstatusA.setReadOnly(True)
366 370 self.txtBstatusA.setObjectName("txtBstatusA")
367 371 self.verticalLayout_22.addWidget(self.txtBstatusA)
368 372 self.txtBdiscA = QtGui.QLineEdit(self.tabStatus)
369 373 self.txtBdiscA.setReadOnly(True)
370 374 self.txtBdiscA.setObjectName("txtBdiscA")
371 375 self.verticalLayout_22.addWidget(self.txtBdiscA)
372 376 self.txtBcopyA = QtGui.QLineEdit(self.tabStatus)
373 377 self.txtBcopyA.setReadOnly(True)
374 378 self.txtBcopyA.setObjectName("txtBcopyA")
375 379 self.verticalLayout_22.addWidget(self.txtBcopyA)
376 380 self.horizontalLayout_18.addLayout(self.verticalLayout_22)
377 381 self.verticalLayout_23 = QtGui.QVBoxLayout()
378 382 self.verticalLayout_23.setObjectName("verticalLayout_23")
379 383 spacerItem8 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Minimum)
380 384 self.verticalLayout_23.addItem(spacerItem8)
381 385 self.lblDevB = QtGui.QLabel(self.tabStatus)
382 386 self.lblDevB.setAlignment(QtCore.Qt.AlignCenter)
383 387 self.lblDevB.setObjectName("lblDevB")
384 388 self.verticalLayout_23.addWidget(self.lblDevB)
385 389 self.txtBstatusB = QtGui.QLineEdit(self.tabStatus)
386 390 self.txtBstatusB.setReadOnly(True)
387 391 self.txtBstatusB.setObjectName("txtBstatusB")
388 392 self.verticalLayout_23.addWidget(self.txtBstatusB)
389 393 self.txtBdiscB = QtGui.QLineEdit(self.tabStatus)
390 394 self.txtBdiscB.setReadOnly(True)
391 395 self.txtBdiscB.setObjectName("txtBdiscB")
392 396 self.verticalLayout_23.addWidget(self.txtBdiscB)
393 397 self.txtBcopyB = QtGui.QLineEdit(self.tabStatus)
394 398 self.txtBcopyB.setReadOnly(True)
395 399 self.txtBcopyB.setObjectName("txtBcopyB")
396 400 self.verticalLayout_23.addWidget(self.txtBcopyB)
397 401 self.horizontalLayout_18.addLayout(self.verticalLayout_23)
398 402 self.verticalLayout_24 = QtGui.QVBoxLayout()
399 403 self.verticalLayout_24.setObjectName("verticalLayout_24")
400 404 spacerItem9 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Minimum)
401 405 self.verticalLayout_24.addItem(spacerItem9)
402 406 self.lblDevC = QtGui.QLabel(self.tabStatus)
403 407 self.lblDevC.setAlignment(QtCore.Qt.AlignCenter)
404 408 self.lblDevC.setObjectName("lblDevC")
405 409 self.verticalLayout_24.addWidget(self.lblDevC)
406 410 self.txtBstatusC = QtGui.QLineEdit(self.tabStatus)
407 411 self.txtBstatusC.setReadOnly(True)
408 412 self.txtBstatusC.setObjectName("txtBstatusC")
409 413 self.verticalLayout_24.addWidget(self.txtBstatusC)
410 414 self.txtBdiscC = QtGui.QLineEdit(self.tabStatus)
411 415 self.txtBdiscC.setReadOnly(True)
412 416 self.txtBdiscC.setObjectName("txtBdiscC")
413 417 self.verticalLayout_24.addWidget(self.txtBdiscC)
414 418 self.txtBcopyC = QtGui.QLineEdit(self.tabStatus)
415 419 self.txtBcopyC.setReadOnly(True)
416 420 self.txtBcopyC.setObjectName("txtBcopyC")
417 421 self.verticalLayout_24.addWidget(self.txtBcopyC)
418 422 self.horizontalLayout_18.addLayout(self.verticalLayout_24)
419 423 self.verticalLayout_25 = QtGui.QVBoxLayout()
420 424 self.verticalLayout_25.setObjectName("verticalLayout_25")
421 425 spacerItem10 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Minimum)
422 426 self.verticalLayout_25.addItem(spacerItem10)
423 427 self.lblDevD = QtGui.QLabel(self.tabStatus)
424 428 self.lblDevD.setAlignment(QtCore.Qt.AlignCenter)
425 429 self.lblDevD.setObjectName("lblDevD")
426 430 self.verticalLayout_25.addWidget(self.lblDevD)
427 431 self.txtBstatusD = QtGui.QLineEdit(self.tabStatus)
428 432 self.txtBstatusD.setReadOnly(True)
429 433 self.txtBstatusD.setObjectName("txtBstatusD")
430 434 self.verticalLayout_25.addWidget(self.txtBstatusD)
431 435 self.txtBdiscD = QtGui.QLineEdit(self.tabStatus)
432 436 self.txtBdiscD.setReadOnly(True)
433 437 self.txtBdiscD.setObjectName("txtBdiscD")
434 438 self.verticalLayout_25.addWidget(self.txtBdiscD)
435 439 self.txtBcopyD = QtGui.QLineEdit(self.tabStatus)
436 440 self.txtBcopyD.setReadOnly(True)
437 441 self.txtBcopyD.setObjectName("txtBcopyD")
438 442 self.verticalLayout_25.addWidget(self.txtBcopyD)
439 443 self.horizontalLayout_18.addLayout(self.verticalLayout_25)
440 444 self.verticalLayout_4.addLayout(self.horizontalLayout_18)
441 445 spacerItem11 = QtGui.QSpacerItem(20, 20, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Fixed)
442 446 self.verticalLayout_4.addItem(spacerItem11)
443 447 self.horizontalLayout_16 = QtGui.QHBoxLayout()
444 448 self.horizontalLayout_16.setObjectName("horizontalLayout_16")
445 449 self.label = QtGui.QLabel(self.tabStatus)
446 450 self.label.setObjectName("label")
447 451 self.horizontalLayout_16.addWidget(self.label)
448 452 spacerItem12 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
449 453 self.horizontalLayout_16.addItem(spacerItem12)
450 454 self.verticalLayout_4.addLayout(self.horizontalLayout_16)
451 455 self.horizontalLayout_17 = QtGui.QHBoxLayout()
452 456 self.horizontalLayout_17.setObjectName("horizontalLayout_17")
453 457 spacerItem13 = QtGui.QSpacerItem(50, 20, QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Minimum)
454 458 self.horizontalLayout_17.addItem(spacerItem13)
455 459 self.txtTDpath = QtGui.QLineEdit(self.tabStatus)
456 460 self.txtTDpath.setEnabled(False)
457 461 self.txtTDpath.setObjectName("txtTDpath")
458 462 self.horizontalLayout_17.addWidget(self.txtTDpath)
459 463 self.btnTDpath = QtGui.QPushButton(self.tabStatus)
460 464 self.btnTDpath.setEnabled(False)
461 465 self.btnTDpath.setObjectName("btnTDpath")
462 466 self.horizontalLayout_17.addWidget(self.btnTDpath)
463 467 self.verticalLayout_4.addLayout(self.horizontalLayout_17)
464 468 self.horizontalLayout_19 = QtGui.QHBoxLayout()
465 469 self.horizontalLayout_19.setObjectName("horizontalLayout_19")
466 470 self.verticalLayout_26 = QtGui.QVBoxLayout()
467 471 self.verticalLayout_26.setObjectName("verticalLayout_26")
468 472 spacerItem14 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Minimum)
469 473 self.verticalLayout_26.addItem(spacerItem14)
470 474 self.lblSTATUS_2 = QtGui.QLabel(self.tabStatus)
471 475 sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Preferred)
472 476 sizePolicy.setHorizontalStretch(0)
473 477 sizePolicy.setVerticalStretch(0)
474 478 sizePolicy.setHeightForWidth(self.lblSTATUS_2.sizePolicy().hasHeightForWidth())
475 479 self.lblSTATUS_2.setSizePolicy(sizePolicy)
476 480 self.lblSTATUS_2.setObjectName("lblSTATUS_2")
477 481 self.verticalLayout_26.addWidget(self.lblSTATUS_2)
478 482 self.horizontalLayout_19.addLayout(self.verticalLayout_26)
479 483 self.verticalLayout_27 = QtGui.QVBoxLayout()
480 484 self.verticalLayout_27.setObjectName("verticalLayout_27")
481 485 self.lblDevA_2 = QtGui.QLabel(self.tabStatus)
482 486 self.lblDevA_2.setAlignment(QtCore.Qt.AlignCenter)
483 487 self.lblDevA_2.setObjectName("lblDevA_2")
484 488 self.verticalLayout_27.addWidget(self.lblDevA_2)
485 489 self.txtCHstatusA = QtGui.QLineEdit(self.tabStatus)
486 490 self.txtCHstatusA.setReadOnly(True)
487 491 self.txtCHstatusA.setObjectName("txtCHstatusA")
488 492 self.verticalLayout_27.addWidget(self.txtCHstatusA)
489 493 self.horizontalLayout_19.addLayout(self.verticalLayout_27)
490 494 self.verticalLayout_28 = QtGui.QVBoxLayout()
491 495 self.verticalLayout_28.setObjectName("verticalLayout_28")
492 496 self.lblDevB_2 = QtGui.QLabel(self.tabStatus)
493 497 self.lblDevB_2.setAlignment(QtCore.Qt.AlignCenter)
494 498 self.lblDevB_2.setObjectName("lblDevB_2")
495 499 self.verticalLayout_28.addWidget(self.lblDevB_2)
496 500 self.txtCHstatusB = QtGui.QLineEdit(self.tabStatus)
497 501 self.txtCHstatusB.setReadOnly(True)
498 502 self.txtCHstatusB.setObjectName("txtCHstatusB")
499 503 self.verticalLayout_28.addWidget(self.txtCHstatusB)
500 504 self.horizontalLayout_19.addLayout(self.verticalLayout_28)
501 505 self.verticalLayout_29 = QtGui.QVBoxLayout()
502 506 self.verticalLayout_29.setObjectName("verticalLayout_29")
503 507 self.lblDevC_2 = QtGui.QLabel(self.tabStatus)
504 508 self.lblDevC_2.setAlignment(QtCore.Qt.AlignCenter)
505 509 self.lblDevC_2.setObjectName("lblDevC_2")
506 510 self.verticalLayout_29.addWidget(self.lblDevC_2)
507 511 self.txtCHstatusC = QtGui.QLineEdit(self.tabStatus)
508 512 self.txtCHstatusC.setReadOnly(True)
509 513 self.txtCHstatusC.setObjectName("txtCHstatusC")
510 514 self.verticalLayout_29.addWidget(self.txtCHstatusC)
511 515 self.horizontalLayout_19.addLayout(self.verticalLayout_29)
512 516 self.verticalLayout_30 = QtGui.QVBoxLayout()
513 517 self.verticalLayout_30.setObjectName("verticalLayout_30")
514 518 self.lblDevD_2 = QtGui.QLabel(self.tabStatus)
515 519 self.lblDevD_2.setAlignment(QtCore.Qt.AlignCenter)
516 520 self.lblDevD_2.setObjectName("lblDevD_2")
517 521 self.verticalLayout_30.addWidget(self.lblDevD_2)
518 522 self.txtCHstatusD = QtGui.QLineEdit(self.tabStatus)
519 523 self.txtCHstatusD.setReadOnly(True)
520 524 self.txtCHstatusD.setObjectName("txtCHstatusD")
521 525 self.verticalLayout_30.addWidget(self.txtCHstatusD)
522 526 self.horizontalLayout_19.addLayout(self.verticalLayout_30)
523 527 self.verticalLayout_4.addLayout(self.horizontalLayout_19)
524 528 self.horizontalLayout_20 = QtGui.QHBoxLayout()
525 529 self.horizontalLayout_20.setObjectName("horizontalLayout_20")
526 530 spacerItem15 = QtGui.QSpacerItem(50, 20, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Minimum)
527 531 self.horizontalLayout_20.addItem(spacerItem15)
528 532 self.chkCheck = QtGui.QCheckBox(self.tabStatus)
529 533 self.chkCheck.setEnabled(True)
530 534 self.chkCheck.setObjectName("chkCheck")
531 535 self.horizontalLayout_20.addWidget(self.chkCheck)
532 536 spacerItem16 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
533 537 self.horizontalLayout_20.addItem(spacerItem16)
534 538 self.btnCHstart = QtGui.QPushButton(self.tabStatus)
535 539 self.btnCHstart.setEnabled(False)
536 540 self.btnCHstart.setObjectName("btnCHstart")
537 541 self.horizontalLayout_20.addWidget(self.btnCHstart)
538 542 self.verticalLayout_4.addLayout(self.horizontalLayout_20)
539 self.widget_2 = QtGui.QWidget(self.tabStatus)
540 sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed)
541 sizePolicy.setHorizontalStretch(0)
542 sizePolicy.setVerticalStretch(0)
543 sizePolicy.setHeightForWidth(self.widget_2.sizePolicy().hasHeightForWidth())
544 self.widget_2.setSizePolicy(sizePolicy)
545 self.widget_2.setMaximumSize(QtCore.QSize(500, 16777215))
546 self.widget_2.setObjectName("widget_2")
547 self.gridLayout_2 = QtGui.QGridLayout(self.widget_2)
548 self.gridLayout_2.setObjectName("gridLayout_2")
549 self.verticalLayout_4.addWidget(self.widget_2)
550 543 self.tabWidget.addTab(self.tabStatus, "")
551 544 self.verticalLayout.addWidget(self.tabWidget)
552 545 self.txtInfo = QtGui.QTextEdit(self.centralwidget)
553 546 self.txtInfo.setReadOnly(True)
554 547 self.txtInfo.setObjectName("txtInfo")
555 548 self.verticalLayout.addWidget(self.txtInfo)
549 self.txtProgress = QtGui.QLineEdit(self.centralwidget)
550 sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Fixed)
551 sizePolicy.setHorizontalStretch(0)
552 sizePolicy.setVerticalStretch(0)
553 sizePolicy.setHeightForWidth(self.txtProgress.sizePolicy().hasHeightForWidth())
554 self.txtProgress.setSizePolicy(sizePolicy)
555 self.txtProgress.setObjectName("txtProgress")
556 self.verticalLayout.addWidget(self.txtProgress)
556 557 self.horizontalLayout_2 = QtGui.QHBoxLayout()
557 558 self.horizontalLayout_2.setSizeConstraint(QtGui.QLayout.SetDefaultConstraint)
558 559 self.horizontalLayout_2.setObjectName("horizontalLayout_2")
559 560 self.btnGbkp = QtGui.QPushButton(self.centralwidget)
560 561 self.btnGbkp.setEnabled(False)
561 562 self.btnGbkp.setObjectName("btnGbkp")
562 563 self.horizontalLayout_2.addWidget(self.btnGbkp)
563 564 self.btnRestart = QtGui.QPushButton(self.centralwidget)
564 565 self.btnRestart.setEnabled(False)
565 566 self.btnRestart.setObjectName("btnRestart")
566 567 self.horizontalLayout_2.addWidget(self.btnRestart)
567 568 self.btnStartburn = QtGui.QPushButton(self.centralwidget)
568 569 self.btnStartburn.setEnabled(False)
569 570 self.btnStartburn.setObjectName("btnStartburn")
570 571 self.horizontalLayout_2.addWidget(self.btnStartburn)
571 572 self.btnStopburn = QtGui.QPushButton(self.centralwidget)
572 573 self.btnStopburn.setEnabled(False)
573 574 self.btnStopburn.setObjectName("btnStopburn")
574 575 self.horizontalLayout_2.addWidget(self.btnStopburn)
575 576 self.verticalLayout.addLayout(self.horizontalLayout_2)
576 577 MainWindow.setCentralWidget(self.centralwidget)
577 578 self.menubar = QtGui.QMenuBar(MainWindow)
578 self.menubar.setGeometry(QtCore.QRect(0, 0, 824, 25))
579 self.menubar.setGeometry(QtCore.QRect(0, 0, 621, 21))
579 580 self.menubar.setObjectName("menubar")
580 581 self.menuFile = QtGui.QMenu(self.menubar)
581 582 self.menuFile.setObjectName("menuFile")
582 583 self.menuHelp = QtGui.QMenu(self.menubar)
583 584 self.menuHelp.setObjectName("menuHelp")
584 585 self.menuParameters = QtGui.QMenu(self.menubar)
585 586 self.menuParameters.setObjectName("menuParameters")
586 587 MainWindow.setMenuBar(self.menubar)
587 588 self.statusbar = QtGui.QStatusBar(MainWindow)
588 589 self.statusbar.setObjectName("statusbar")
589 590 MainWindow.setStatusBar(self.statusbar)
590 591 self.actionChange_Parameters = QtGui.QAction(MainWindow)
591 592 self.actionChange_Parameters.setEnabled(False)
592 593 self.actionChange_Parameters.setObjectName("actionChange_Parameters")
593 594 self.actionQuit = QtGui.QAction(MainWindow)
594 595 self.actionQuit.setObjectName("actionQuit")
595 596 self.actionAbout = QtGui.QAction(MainWindow)
596 597 self.actionAbout.setObjectName("actionAbout")
597 598 self.menuFile.addAction(self.actionQuit)
598 599 self.menuHelp.addAction(self.actionAbout)
599 600 self.menuParameters.addAction(self.actionChange_Parameters)
600 601 self.menubar.addAction(self.menuFile.menuAction())
601 602 self.menubar.addAction(self.menuParameters.menuAction())
602 603 self.menubar.addAction(self.menuHelp.menuAction())
603 604
604 605 self.retranslateUi(MainWindow)
605 606 self.tabWidget.setCurrentIndex(0)
606 607 self.lstDcapacity.setCurrentIndex(2)
607 608 QtCore.QObject.connect(self.actionQuit, QtCore.SIGNAL("triggered()"), MainWindow.close)
608 609 QtCore.QObject.connect(self.chkCheck, QtCore.SIGNAL("toggled(bool)"), self.txtTDpath.setEnabled)
609 610 QtCore.QObject.connect(self.chkCheck, QtCore.SIGNAL("toggled(bool)"), self.btnTDpath.setEnabled)
610 611 QtCore.QObject.connect(self.chkCheck, QtCore.SIGNAL("toggled(bool)"), self.btnCHstart.setEnabled)
611 612 QtCore.QObject.connect(self.chkDevD, QtCore.SIGNAL("toggled(bool)"), self.grpDevD.setEnabled)
612 613 QtCore.QObject.connect(self.chkDevB, QtCore.SIGNAL("toggled(bool)"), self.grpDevB.setEnabled)
613 614 QtCore.QObject.connect(self.chkDevC, QtCore.SIGNAL("toggled(bool)"), self.grpDevC.setEnabled)
614 615 QtCore.QObject.connect(self.chkDevA, QtCore.SIGNAL("toggled(bool)"), self.grpDevA.setEnabled)
615 616 QtCore.QMetaObject.connectSlotsByName(MainWindow)
616 617 MainWindow.setTabOrder(self.txtDpath, self.btnDpath)
617 618 MainWindow.setTabOrder(self.btnDpath, self.txtRpath)
618 619 MainWindow.setTabOrder(self.txtRpath, self.btnRpath)
619 620 MainWindow.setTabOrder(self.btnRpath, self.lstDtype)
620 621 MainWindow.setTabOrder(self.lstDtype, self.txtDtype)
621 622 MainWindow.setTabOrder(self.txtDtype, self.txtElabel)
622 623 MainWindow.setTabOrder(self.txtElabel, self.lstStartDay)
623 624 MainWindow.setTabOrder(self.lstStartDay, self.lstStopDay)
624 625 MainWindow.setTabOrder(self.lstStopDay, self.lstDcapacity)
625 626 MainWindow.setTabOrder(self.lstDcapacity, self.tabWidget)
626 627 MainWindow.setTabOrder(self.tabWidget, self.btnGbkp)
627 628 MainWindow.setTabOrder(self.btnGbkp, self.btnRestart)
628 629 MainWindow.setTabOrder(self.btnRestart, self.btnStartburn)
629 630 MainWindow.setTabOrder(self.btnStartburn, self.btnStopburn)
630 631
631 632 def retranslateUi(self, MainWindow):
632 633 MainWindow.setWindowTitle(QtGui.QApplication.translate("MainWindow", "JRO BACKUP MANAGER", None, QtGui.QApplication.UnicodeUTF8))
633 634 self.btnDpath.setText(QtGui.QApplication.translate("MainWindow", "Data Path", None, QtGui.QApplication.UnicodeUTF8))
634 635 self.btnRpath.setText(QtGui.QApplication.translate("MainWindow", "Resource Path", None, QtGui.QApplication.UnicodeUTF8))
635 636 self.lblDtype.setText(QtGui.QApplication.translate("MainWindow", "Data Type", None, QtGui.QApplication.UnicodeUTF8))
636 637 self.lstDtype.setItemText(0, QtGui.QApplication.translate("MainWindow", "Raw Data", None, QtGui.QApplication.UnicodeUTF8))
637 638 self.lstDtype.setItemText(1, QtGui.QApplication.translate("MainWindow", "Process Data", None, QtGui.QApplication.UnicodeUTF8))
638 639 self.lstDtype.setItemText(2, QtGui.QApplication.translate("MainWindow", "BLTR Data", None, QtGui.QApplication.UnicodeUTF8))
639 640 self.lstDtype.setItemText(3, QtGui.QApplication.translate("MainWindow", "Other", None, QtGui.QApplication.UnicodeUTF8))
640 641 self.txtDtype.setText(QtGui.QApplication.translate("MainWindow", "r", None, QtGui.QApplication.UnicodeUTF8))
641 642 self.lblElabel.setText(QtGui.QApplication.translate("MainWindow", "Exp. Label at device", None, QtGui.QApplication.UnicodeUTF8))
642 643 self.lblCopys.setText(QtGui.QApplication.translate("MainWindow", "Copys", None, QtGui.QApplication.UnicodeUTF8))
643 644 self.lblStartDay.setText(QtGui.QApplication.translate("MainWindow", "Start Day:", None, QtGui.QApplication.UnicodeUTF8))
644 645 self.lblStopDay.setText(QtGui.QApplication.translate("MainWindow", "Stop Day:", None, QtGui.QApplication.UnicodeUTF8))
645 646 self.tabWidget.setTabText(self.tabWidget.indexOf(self.tabParameters), QtGui.QApplication.translate("MainWindow", "Parameters", None, QtGui.QApplication.UnicodeUTF8))
646 647 self.chkDevA.setText(QtGui.QApplication.translate("MainWindow", "Dev A", None, QtGui.QApplication.UnicodeUTF8))
647 648 self.txtBmodeA.setText(QtGui.QApplication.translate("MainWindow", "-sao", None, QtGui.QApplication.UnicodeUTF8))
648 649 self.btnTdevA.setText(QtGui.QApplication.translate("MainWindow", "Test DevA", None, QtGui.QApplication.UnicodeUTF8))
649 650 self.chkDevB.setText(QtGui.QApplication.translate("MainWindow", "Dev B", None, QtGui.QApplication.UnicodeUTF8))
650 651 self.txtBmodeB.setText(QtGui.QApplication.translate("MainWindow", "-sao", None, QtGui.QApplication.UnicodeUTF8))
651 652 self.btnTdevB.setText(QtGui.QApplication.translate("MainWindow", "Test DevB", None, QtGui.QApplication.UnicodeUTF8))
652 653 self.chkDevC.setText(QtGui.QApplication.translate("MainWindow", "Dev C", None, QtGui.QApplication.UnicodeUTF8))
653 654 self.txtBmodeC.setText(QtGui.QApplication.translate("MainWindow", "-sao", None, QtGui.QApplication.UnicodeUTF8))
654 655 self.btnTdevC.setText(QtGui.QApplication.translate("MainWindow", "Test DevC", None, QtGui.QApplication.UnicodeUTF8))
655 656 self.chkDevD.setText(QtGui.QApplication.translate("MainWindow", "Dev D", None, QtGui.QApplication.UnicodeUTF8))
656 657 self.txtBmodeD.setText(QtGui.QApplication.translate("MainWindow", "-sao", None, QtGui.QApplication.UnicodeUTF8))
657 658 self.btnTdevD.setText(QtGui.QApplication.translate("MainWindow", "Test DevD", None, QtGui.QApplication.UnicodeUTF8))
658 659 self.lblDevice.setText(QtGui.QApplication.translate("MainWindow", "Device", None, QtGui.QApplication.UnicodeUTF8))
659 660 self.lblBspeed.setText(QtGui.QApplication.translate("MainWindow", "Burn Speed", None, QtGui.QApplication.UnicodeUTF8))
660 661 self.lblBmode.setText(QtGui.QApplication.translate("MainWindow", "Burn Mode", None, QtGui.QApplication.UnicodeUTF8))
661 662 self.lblDcapacity.setText(QtGui.QApplication.translate("MainWindow", "Device Capacity", None, QtGui.QApplication.UnicodeUTF8))
662 663 self.lstDcapacity.setItemText(0, QtGui.QApplication.translate("MainWindow", "BluRay [25.0 GB]", None, QtGui.QApplication.UnicodeUTF8))
663 664 self.lstDcapacity.setItemText(1, QtGui.QApplication.translate("MainWindow", "DVD2 [8.5 GB]", None, QtGui.QApplication.UnicodeUTF8))
664 665 self.lstDcapacity.setItemText(2, QtGui.QApplication.translate("MainWindow", "DVD1 [4.7 GB]", None, QtGui.QApplication.UnicodeUTF8))
665 666 self.lstDcapacity.setItemText(3, QtGui.QApplication.translate("MainWindow", "CD [0.7 GB]", None, QtGui.QApplication.UnicodeUTF8))
666 667 self.lstDcapacity.setItemText(4, QtGui.QApplication.translate("MainWindow", "Other [? MB]", None, QtGui.QApplication.UnicodeUTF8))
667 668 self.lblPSgraphic.setText(QtGui.QApplication.translate("MainWindow", "PS Graphic", None, QtGui.QApplication.UnicodeUTF8))
668 669 self.tabWidget.setTabText(self.tabWidget.indexOf(self.tabDconfig), QtGui.QApplication.translate("MainWindow", "Device Config.", None, QtGui.QApplication.UnicodeUTF8))
669 670 self.label_4.setText(QtGui.QApplication.translate("MainWindow", "BURN", None, QtGui.QApplication.UnicodeUTF8))
670 671 self.lblSTATUS.setText(QtGui.QApplication.translate("MainWindow", "STATUS", None, QtGui.QApplication.UnicodeUTF8))
671 672 self.lblINFO.setText(QtGui.QApplication.translate("MainWindow", "DISC", None, QtGui.QApplication.UnicodeUTF8))
672 673 self.lblSET.setText(QtGui.QApplication.translate("MainWindow", "COPY", None, QtGui.QApplication.UnicodeUTF8))
673 674 self.lblDevA.setText(QtGui.QApplication.translate("MainWindow", "DEV A", None, QtGui.QApplication.UnicodeUTF8))
674 675 self.lblDevB.setText(QtGui.QApplication.translate("MainWindow", "DEV B", None, QtGui.QApplication.UnicodeUTF8))
675 676 self.lblDevC.setText(QtGui.QApplication.translate("MainWindow", "DEV C", None, QtGui.QApplication.UnicodeUTF8))
676 677 self.lblDevD.setText(QtGui.QApplication.translate("MainWindow", "DEV D", None, QtGui.QApplication.UnicodeUTF8))
677 678 self.label.setText(QtGui.QApplication.translate("MainWindow", "CHECK", None, QtGui.QApplication.UnicodeUTF8))
678 679 self.btnTDpath.setText(QtGui.QApplication.translate("MainWindow", "Temp Data Path", None, QtGui.QApplication.UnicodeUTF8))
679 680 self.lblSTATUS_2.setText(QtGui.QApplication.translate("MainWindow", "STATUS", None, QtGui.QApplication.UnicodeUTF8))
680 681 self.lblDevA_2.setText(QtGui.QApplication.translate("MainWindow", "DEV A", None, QtGui.QApplication.UnicodeUTF8))
681 682 self.lblDevB_2.setText(QtGui.QApplication.translate("MainWindow", "DEV B", None, QtGui.QApplication.UnicodeUTF8))
682 683 self.lblDevC_2.setText(QtGui.QApplication.translate("MainWindow", "DEV C", None, QtGui.QApplication.UnicodeUTF8))
683 684 self.lblDevD_2.setText(QtGui.QApplication.translate("MainWindow", "DEV D", None, QtGui.QApplication.UnicodeUTF8))
684 685 self.chkCheck.setText(QtGui.QApplication.translate("MainWindow", "MANUAL", None, QtGui.QApplication.UnicodeUTF8))
685 686 self.btnCHstart.setText(QtGui.QApplication.translate("MainWindow", "START", None, QtGui.QApplication.UnicodeUTF8))
686 687 self.tabWidget.setTabText(self.tabWidget.indexOf(self.tabStatus), QtGui.QApplication.translate("MainWindow", "Status Burn", None, QtGui.QApplication.UnicodeUTF8))
687 688 self.btnGbkp.setText(QtGui.QApplication.translate("MainWindow", "Generate Bkp", None, QtGui.QApplication.UnicodeUTF8))
688 689 self.btnRestart.setText(QtGui.QApplication.translate("MainWindow", "Restart", None, QtGui.QApplication.UnicodeUTF8))
689 690 self.btnStartburn.setText(QtGui.QApplication.translate("MainWindow", "Start Burn", None, QtGui.QApplication.UnicodeUTF8))
690 691 self.btnStopburn.setText(QtGui.QApplication.translate("MainWindow", "Stop Burn", None, QtGui.QApplication.UnicodeUTF8))
691 692 self.menuFile.setTitle(QtGui.QApplication.translate("MainWindow", "File", None, QtGui.QApplication.UnicodeUTF8))
692 693 self.menuHelp.setTitle(QtGui.QApplication.translate("MainWindow", "Help", None, QtGui.QApplication.UnicodeUTF8))
693 694 self.menuParameters.setTitle(QtGui.QApplication.translate("MainWindow", "Parameters", None, QtGui.QApplication.UnicodeUTF8))
694 695 self.actionChange_Parameters.setText(QtGui.QApplication.translate("MainWindow", "Change Parameters", None, QtGui.QApplication.UnicodeUTF8))
695 696 self.actionQuit.setText(QtGui.QApplication.translate("MainWindow", "Quit", None, QtGui.QApplication.UnicodeUTF8))
696 697 self.actionAbout.setText(QtGui.QApplication.translate("MainWindow", "About", None, QtGui.QApplication.UnicodeUTF8))
697 698
698 699
699 700 if __name__ == "__main__":
700 701 import sys
701 702 app = QtGui.QApplication(sys.argv)
702 703 MainWindow = QtGui.QMainWindow()
703 704 ui = Ui_MainWindow()
704 705 ui.setupUi(MainWindow)
705 706 MainWindow.show()
706 707 sys.exit(app.exec_())
707 708
@@ -1,77 +1,77
1 1 # -*- coding: utf-8 -*-
2 2
3 3 # Form implementation generated from reading ui file '/home/ricardoar/JRO_SVN/eric4/jro_backup_manager/ui/Parameters.ui'
4 4 #
5 # Created: Mon May 24 17:45:30 2010
6 # by: PyQt4 UI code generator 4.6
5 # Created: Mon May 24 22:39:28 2010
6 # by: PyQt4 UI code generator 4.7.2
7 7 #
8 8 # WARNING! All changes made in this file will be lost!
9 9
10 10 from PyQt4 import QtCore, QtGui
11 11
12 12 class Ui_Parameters(object):
13 13 def setupUi(self, Parameters):
14 14 Parameters.setObjectName("Parameters")
15 15 Parameters.resize(207, 152)
16 16 self.verticalLayout = QtGui.QVBoxLayout(Parameters)
17 17 self.verticalLayout.setObjectName("verticalLayout")
18 18 self.horizontalLayout_3 = QtGui.QHBoxLayout()
19 19 self.horizontalLayout_3.setObjectName("horizontalLayout_3")
20 20 self.verticalLayout_2 = QtGui.QVBoxLayout()
21 21 self.verticalLayout_2.setObjectName("verticalLayout_2")
22 22 self.label = QtGui.QLabel(Parameters)
23 23 self.label.setObjectName("label")
24 24 self.verticalLayout_2.addWidget(self.label)
25 25 self.label_3 = QtGui.QLabel(Parameters)
26 26 self.label_3.setObjectName("label_3")
27 27 self.verticalLayout_2.addWidget(self.label_3)
28 28 self.label_2 = QtGui.QLabel(Parameters)
29 29 self.label_2.setObjectName("label_2")
30 30 self.verticalLayout_2.addWidget(self.label_2)
31 31 self.horizontalLayout_3.addLayout(self.verticalLayout_2)
32 32 self.verticalLayout_3 = QtGui.QVBoxLayout()
33 33 self.verticalLayout_3.setObjectName("verticalLayout_3")
34 34 self.txtNcopys = QtGui.QSpinBox(Parameters)
35 35 self.txtNcopys.setMinimum(1)
36 36 self.txtNcopys.setMaximum(999)
37 37 self.txtNcopys.setObjectName("txtNcopys")
38 38 self.verticalLayout_3.addWidget(self.txtNcopys)
39 39 self.txtDisc = QtGui.QSpinBox(Parameters)
40 40 self.txtDisc.setMinimum(1)
41 41 self.txtDisc.setMaximum(999999)
42 42 self.txtDisc.setObjectName("txtDisc")
43 43 self.verticalLayout_3.addWidget(self.txtDisc)
44 44 self.txtCopy = QtGui.QSpinBox(Parameters)
45 45 self.txtCopy.setMinimum(1)
46 46 self.txtCopy.setMaximum(999)
47 47 self.txtCopy.setObjectName("txtCopy")
48 48 self.verticalLayout_3.addWidget(self.txtCopy)
49 49 self.horizontalLayout_3.addLayout(self.verticalLayout_3)
50 50 self.verticalLayout.addLayout(self.horizontalLayout_3)
51 51 self.buttonBox = QtGui.QDialogButtonBox(Parameters)
52 52 self.buttonBox.setOrientation(QtCore.Qt.Horizontal)
53 53 self.buttonBox.setStandardButtons(QtGui.QDialogButtonBox.Cancel|QtGui.QDialogButtonBox.Ok)
54 54 self.buttonBox.setObjectName("buttonBox")
55 55 self.verticalLayout.addWidget(self.buttonBox)
56 56
57 57 self.retranslateUi(Parameters)
58 58 QtCore.QObject.connect(self.buttonBox, QtCore.SIGNAL("accepted()"), Parameters.accept)
59 59 QtCore.QObject.connect(self.buttonBox, QtCore.SIGNAL("rejected()"), Parameters.reject)
60 60 QtCore.QMetaObject.connectSlotsByName(Parameters)
61 61
62 62 def retranslateUi(self, Parameters):
63 63 Parameters.setWindowTitle(QtGui.QApplication.translate("Parameters", "Parameters", None, QtGui.QApplication.UnicodeUTF8))
64 64 self.label.setText(QtGui.QApplication.translate("Parameters", "N° Copys", None, QtGui.QApplication.UnicodeUTF8))
65 65 self.label_3.setText(QtGui.QApplication.translate("Parameters", "Disc", None, QtGui.QApplication.UnicodeUTF8))
66 66 self.label_2.setText(QtGui.QApplication.translate("Parameters", "Copy", None, QtGui.QApplication.UnicodeUTF8))
67 67
68 68
69 69 if __name__ == "__main__":
70 70 import sys
71 71 app = QtGui.QApplication(sys.argv)
72 72 Parameters = QtGui.QDialog()
73 73 ui = Ui_Parameters()
74 74 ui.setupUi(Parameters)
75 75 Parameters.show()
76 76 sys.exit(app.exec_())
77 77
General Comments 0
You need to be logged in to leave comments. Login now