##// END OF EJS Templates
#Falta terminar el proceso de revision manual
ralonso -
r84:85
parent child
Show More
@@ -1,356 +1,361
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 import functions2
13 13
14 14 #--------------------------------------------- Entero a cadena agregando ceros delante -------------------------------------------------
15 15
16 16 def i2s(var_n, var_length=4):
17 17 var_n2=str(var_n)
18 18 while len(var_n2) < var_length:
19 19 var_n2 = "0"+var_n2
20 20 return var_n2
21 21
22 22
23 23 #----------------------------------------- Se verifica que la ruta exista y sea un directorio -------------------------------------------------
24 24
25 25 def dir_exists(var_dir, self):
26 26 if os.path.isdir(var_dir):
27 27 return True
28 28 else:
29 29 self.txtInfo.append("Incorrect path:" + str(var_dir))
30 30 return False
31 31
32 32
33 33 #-------------------------------- Se buscan los archivos del tipo especificado y se cargan las fechas -----------------------------
34 34
35 35 def load_days(self):
36 36
37 37 self.var_list=[]
38 38 self.lstStartDay.clear()
39 39 self.lstStopDay.clear()
40 40
41 41 if self.statusDpath == False:
42 42 self.btnGbkp.setEnabled(False)
43 43 return
44 44
45 45 if self.var_Dtype == '':
46 46 return
47 47
48 48 var_cmd="find " + str(self.var_Dpath) + " -name *."+ str(self.var_Dtype) +" | awk -F/ '{print substr($NF,2,7)}' | sort| uniq"
49 49 output=commands.getstatusoutput(var_cmd)[1]
50 50
51 51 #Si no se encuentra ningun archivo
52 52 if len(output) == 0:
53 53 self.txtInfo.append("File not found")
54 54 self.btnGbkp.setEnabled(False)
55 55 return
56 56
57 57 #Se cargan las listas para seleccionar StartDay y StopDay (QComboBox)
58 58 for i in range(0, (len(output)+1)/8):
59 59 self.var_list.append(output[8*i:8*(i+1)-1])
60 60
61 61 for i in self.var_list:
62 62 self.lstStartDay.addItem(i)
63 63 self.lstStopDay.addItem(i)
64 64 self.lstStopDay.setCurrentIndex(self.lstStartDay.count()-1)
65 65
66 66 get_sub_list(self)
67 67 self.btnGbkp.setEnabled(True)
68 68
69 69
70 70 #-------------------------------------------------- Obtiene el rango de las fechas seleccionadas -----------------------------------------
71 71
72 72 def get_sub_list(self):
73 73 self.var_sublist=[]
74 74 for i in self.var_list[self.lstStartDay.currentIndex():self.lstStartDay.currentIndex() + self.lstStopDay.currentIndex()+1]:
75 75 self.var_sublist.append(i)
76 76
77 77
78 78 #----------------------------------------------------- Verifica los parametros faltantes -----------------------------------------------------------
79 79
80 80 def validate_parameters(self):
81 81 #Verifica que las ruta del proyecto sea valida
82 82 if self.statusRpath == False:
83 83 self.txtInfo.append("Incorrect proyect path")
84 84 return False
85 85
86 86 #Verifica la etiqueta
87 87 if len(self.var_Elabel) == 0:
88 88 self.txtInfo.append("Enter label")
89 89 return False
90 90
91 91 return True
92 92
93 93
94 94 #------------------------------------------------- Crea directorios en la ruta indicada -----------------------------------------------------------
95 95
96 96 def make_dirs(list_dirs, self):
97 97
98 98 for var_dir in list_dirs:
99 99 shutil.rmtree(self.var_Rpath+'/'+var_dir, True)
100 100 var_output=commands.getstatusoutput("mkdir -p "+self.var_Rpath+'/'+var_dir)
101 101 if var_output[0] != 0:
102 102 self.txtInfo.append("Error creating directory: "+var_dir+", output_error:" + str(var_output[0]))
103 103 return False
104 104 self.txtInfo.append('Directories created correctly')
105 105 return True
106 106
107 107 def remove_dir(var_dir, self):
108 108 var_output = commands.getstatusoutput('chmod -R 777 '+var_dir)
109 109 if var_output[0] != 0:
110 110 self.txtInfo.append("Error changing permissions: "+var_dir+", output_error:" + str(var_output[0]))
111 111 return False
112 112
113 113 var_output = commands.getstatusoutput('rm -rf '+var_dir)
114 114 if var_output[0] != 0:
115 115 self.txtInfo.append("Error deleting directory: "+var_dir+", output_error:" + str(var_output[0]))
116 116 return False
117 117 return True
118 118
119 119 def make_dir(var_dir, self):
120 120 var_output = commands.getstatusoutput('mkdir '+var_dir)
121 121 if var_output[0] != 0:
122 122 self.txtInfo.append("Error deleting directory: "+var_dir+", output_error:" + str(var_output[0]))
123 123 return False
124 124 return True
125 125
126 126 #-------------------------------------------- Busca los archivos con los parametros de busqueda ---------------------------------------
127 127
128 128 def list_files(self):
129 129 var_files_list=[]
130 130 for var_doy in self.var_sublist:
131 131 var_cmd="find " + str(self.var_Dpath) + " -name ?"+var_doy+"???."+ str(self.var_Dtype) + " |sort"
132 132 var_output=commands.getstatusoutput(var_cmd)[1]
133 133 for var_file in var_output.split():
134 134 var_files_list.append(var_file) #Almacena cada archivo en la lista
135 135 return var_files_list
136 136
137 137
138 138 #--------------- Genera la lista de archivos .dat que contienen los archivos a grabar en cada DVD -----------------------
139 139
140 140 def make_files_dat(var_files_list, self):
141 141 var_Rpath_ppath=self.var_Rpath+"/ppath" #Ruta de los archivos a grabar
142 142 var_n=1 #Numero del DVD actual
143 143 var_tmp=0 #Se usa para acumular el tamaño de los archivos de la lista
144 144 var_files_list_2=[] #Se usa para almacenar la lista de archivos agrbar en cada DVD
145 145
146 146 for i in var_files_list: #Se asignan en i los archivos de la lista
147 147
148 148 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
149 149 var_tmp += var_size_i #Se acumulan el tamaño de los archivos de la lista
150 150
151 151 #Si el tamaño acumulado es mayor que el de el DVD
152 152 if var_tmp > (self.var_Dcapacity * 1024):
153 153 var_tmp -= var_size_i #se quita el tamaño sumado para mostrar el tamaño real
154 154 #se crea un archivo con numeral en el sufijo y extension .dat
155 155 var_file = open(var_Rpath_ppath+"/"+self.var_Elabel+"_"+i2s(var_n)+".dat","w")
156 156 #Se añade la lista de archivos a grabar en el DVD al archivo .dat
157 157 for line in var_files_list_2:
158 158 var_tmp_path=line.split(self.var_Dpath)[1][:-13]
159 159 var_file.write(var_tmp_path+'='+line+'\n')
160 160 var_file.close()
161 161
162 162 var_tmp = var_size_i #Se asigna a la variable el tamaño del archivo actual
163 163 var_files_list_2=[] #Se reinicia la lista
164 164 var_n += 1
165 165 var_files_list_2.append(i)
166 166
167 167 #se crea un archivo con numeral en el sufijo y extension .dat
168 168 var_file = open(var_Rpath_ppath+"/"+self.var_Elabel+"_"+i2s(var_n)+".dat","w")
169 169 #Se añade la lista de archivos a grabar en el DVD al archivo .dat
170 170 for line in var_files_list_2:
171 171 var_tmp_path=line.split(self.var_Dpath)[1][:-13]
172 172 var_file.write(var_tmp_path+'='+line+'\n')
173 173 var_file.close()
174 174
175 175 self.txtInfo.append("configuration files created")
176 176 return var_n
177 177
178 178
179 179 #------------------------------ Genera los archivos .print con los cuales se creara los postscript -----------------------------------
180 180
181 181 def make_files_print(self):
182 182
183 183 var_Rpath_ppath=self.var_Rpath+"/ppath" #Ruta de los archivos a grabar
184 184 var_Rpath_gpath=self.var_Rpath+"/gpath" #Ruta de los archivos postscript
185 185 var_labels=[]
186 186 for m in range (0, self.txtPSgraphic.value() - 1):
187 187 var_lines = "\n" * 9
188 188 var_labels.append(var_lines)
189 189
190 190 # Se leen todos los archivos .dat creados para crear las etiquetas en los archivos .print
191 191 for var_n in range(1, self.var_Discs + 1):
192 192
193 193 #se abren los archivos .dat en modo lectura
194 194 var_file = open(var_Rpath_ppath+"/"+self.var_Elabel+"_"+i2s(var_n)+".dat","r")
195 195 lines=var_file.readlines() # Se lee las lineas en el archivo y se almacenan en la lista
196 196 var_file.close()
197 197 list_files=[]
198 198 var_lines=[]
199 199
200 200 for j in range(0, len(lines)):
201 201
202 202 if j == 0:
203 203 var_first_folder = lines[j].split('=')[0]
204 204 var_first_file = (lines[j].split('=')[1])[:-1]
205 205 continue
206 206
207 207 var_tmp_folder = lines[j].split('=')[0]
208 208 var_tmp_file = (lines[j].split('=')[1])[:-1]
209 209
210 210 # Si el subfolder superior o el DOY del archivo actual y el anterior son diferentes
211 211 if (var_tmp_folder != var_first_folder) or (var_tmp_file[0:-5] != var_first_file[0:-5]):
212 212 var_last_file = (lines[j-1].split('=')[1])[:-1]
213 213 list_files.append([var_first_folder, var_first_file, var_last_file])
214 214
215 215 var_first_folder = lines[j].split('=')[0]
216 216 var_first_file = (lines[j].split('=')[1])[:-1]
217 217
218 218 var_last_file = (lines[-1].split('=')[1])[:-1]
219 219 list_files.append([var_first_folder, var_first_file, var_last_file])
220 220
221 221 var_lines2 = lines_print(list_files, self.var_Elabel)
222 222
223 223 for k in range(0, len(var_lines2) / 5):
224 224 var_lines=["\n"]
225 225 var_lines.append(" "+self.var_Elabel+" "+i2s(var_n)+"/"+i2s(self.var_Discs)+"\n")
226 226 var_lines.append("Year Doy Folder"+" "*9+"Set"+" "*11+"Time range\n")
227 227 var_lines.extend(var_lines2[(5*k):(5*(k+1))])
228 228 var_lines.append("\n")
229 229 var_labels.append(var_lines)
230 230
231 231 for i in range(0, (len(var_labels) // 33) +1 ):
232 232 var_file=var_Rpath_gpath+"/"+self.var_Elabel+"_"+i2s(i+1)
233 233 file_ps = open(var_file+".print","w")
234 234 if i == (len(var_labels) // 33):
235 235 var_sub_labels = var_labels[33*i:]
236 236 else:
237 237 var_sub_labels = var_labels[33*i:33*(i+1)]
238 238
239 239 for label in var_sub_labels:
240 240 for line in label:
241 241 file_ps.write(line)
242 242 file_ps.close()
243 243 var_cmd="enscript "+var_file+".print -p "+var_file+".ps -f Times-Roman7 " \
244 244 +" -3R -j -B --margins=21.25:20.4:25.51:20 --media=A4"
245 245 var_output=commands.getstatusoutput(var_cmd)[0]
246 246
247 247
248 248 def lines_print(list_files, var_Elabel):
249 249 """
250 250 Devuelve las lineas del rango de archivos de cada etiqueta segun el formato
251 251 """
252 252 var_lines=[]
253 253 for i in list_files:
254 254
255 255 # Si el archivo se grabara directamente en la / del DVD y no en un /directorio/
256 256 # se usa la etiqueta para indicar la parte de la etiqueta donde va el subdirectorio
257 257 if i[0] == '/':
258 258 var_folder = var_Elabel
259 259 else:
260 260 var_folder = i[0].split('/')[-2]
261 261
262 262 var_first_file = i[1]
263 263 var_last_file = i[2]
264 264
265 265 var_date_first_file=commands.getstatusoutput("date -r "+var_first_file+" +'%T'")[1]
266 266 var_date_last_file=commands.getstatusoutput("date -r "+var_last_file+" +'%T'")[1]
267 267
268 268 var_lines.append(var_first_file[-12:-8]+" "+var_first_file[-8:-5]+" "+var_folder +" "+var_first_file[-5:-2]+"-"
269 269 +var_last_file[-5:-2]+" "+var_date_first_file+"-"+var_date_last_file+"\n")
270 270 #Nos aseguramos que sea un mutiplo de 5
271 271 while (len(var_lines) % 5) != 0:
272 272 var_lines.append("\n")
273 273
274 274 return var_lines
275 275
276 276 #---------------------------------------comandos para el proceso de grabacion ------------------------------------------
277 277 def cmd_iso(self):
278 278 var_Rpath_ppath=self.var_Rpath+"/ppath"
279 279 var_Rpath_iso=self.var_Rpath+"/iso"
280 280 #comando para la creacion del archivo.iso
281 281 file_dat=var_Rpath_ppath+"/"+self.var_Elabel+"_"+i2s(self.var_disc_n)+".dat"
282 282 file_iso=var_Rpath_iso+"/"+i2s(self.var_disc_n)+".iso"
283 283 var_cmd = 'genisoimage -hide-joliet-trans-tbl -joliet-long -r '
284 284 var_cmd += ' -A '+self.var_Elabel+' -V '+self.var_Elabel
285 285 var_cmd += ' -graft-points -path-list '+ file_dat+' -o '+file_iso
286 286 return var_cmd
287 287
288 288 def cmd_burn(self):
289 289 var_Rpath_iso=self.var_Rpath+"/iso"
290 290 file_iso=var_Rpath_iso+"/"+i2s(self.var_disc_n)+".iso"
291 291
292 292 var_index = ( ( (self.var_disc_n - 1) * self.var_Copys) + (self.var_copy_n - 1) - self.var_burned_discs ) % len(self.var_devices)
293 293 var_dev_tmp = self.var_devices[var_index]
294 294
295 295 # var_cmd = "wodim -v dev="+var_dev_tmp+" speed=16 "+ file_iso
296 296 var_cmd = "growisofs -dvd-compat -Z "+var_dev_tmp+"="+ file_iso
297 297 return var_cmd
298 298
299 299
300 300 def cmd_check(dev_sr, self):
301 301
302 302 var_Rpath_tmpdata=self.var_Rpath+"/tmpdata"
303 303
304 304 var_output=commands.getstatusoutput('df -hT | grep '+dev_sr)
305 305 if var_output[0] != 0:
306 306 return "FATAL ERROR"
307 307 else:
308 308 var_cmd = "cp -rfv "+var_output[1] .split()[-1]+"/ "+var_Rpath_tmpdata+"/"
309 309 return var_cmd
310 310
311 def cmd_manual_check(var_data_dir, var_TDpath):
312
313 var_cmd = "cp -rfv "+var_data_dir+"/ "+var_TDpath+"/"
314 return var_cmd
315
311 316
312 317 def remove_iso(self):
313 318 var_Rpath_iso=self.var_Rpath+"/iso"
314 319 file_iso=var_Rpath_iso+"/"+i2s(self.var_disc_n)+".iso"
315 320 # shutil.rmtree(self.var_Rpath+'/'+var_dir, True)
316 321 if os.path.isfile(file_iso):
317 322 os.remove(file_iso)
318 323
319 324 #Si es el ultimo disco se termina el proceso
320 325 def is_last_disc_and_copy(self):
321 326 if self.var_disc_n == self.var_Discs and self.var_copy_n == self.var_Copys:
322 327 self.function_final()
323 328 else:
324 329 next_disc(self)
325 330
326 331 #Define cual es el siguiente disco a grabar y que paso seguir
327 332 def next_disc(self, error = False):
328 333 if self.var_copy_n == self.var_Copys:
329 334 #borrado del iso
330 335 self.txtInfo.append("Deleting iso file: "+i2s(self.var_disc_n)+".iso")
331 336 remove_iso(self)
332 337
333 338 self.var_disc_n += 1
334 339 self.var_copy_n = 1
335 340 self.var_step = 0
336 341
337 342 else:
338 343 self.var_copy_n += 1
339 344 self.var_step = 1
340 345
341 346 functions2.make_burning_conf(self) # Si el proceso no ha sido detenido manualmente
342 347 #crea el archivo burning.conf para el seguimiento de los discos grabados
343 348
344 349 var_index = ( ( (self.var_disc_n - 1) * self.var_Copys) + (self.var_copy_n - 1) - self.var_burned_discs ) % len(self.var_devices)
345 350
346 351 self.txtInfo.append("NEXT DISC: "+str(self.var_disc_n)+" COPY: "+str(self.var_copy_n)
347 352 +" INDEX: "+str(var_index)+" STEP: "+str(self.var_step))
348 353 self.txtInfo.append("\n")
349 354
350 355 if var_index == 0 :
351 356 self.function_eject()
352 357
353 358 elif self.var_step == 0:
354 359 self.function_iso()
355 360 elif self.var_step == 1:
356 361 self.function_burn()
@@ -1,274 +1,291
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 23 var_devices = var_output[1].split('\n')
24 24
25 25 var_tmp=[]
26 26 for i in range(0, 4):
27 27 if i < len(var_devices):
28 28 var_len = len(var_devices[i])
29 29 var_tmp.append(var_devices[i][1:var_len - 1])
30 30 else:
31 31 var_tmp.append('')
32 32
33 33 #Se escriben los dispostivos correspodientes, si existen
34 34 self.txtDeviceA.setText(str(var_tmp[0]))
35 35 self.txtDeviceB.setText(str(var_tmp[1]))
36 36 self.txtDeviceC.setText(str(var_tmp[2]))
37 37 self.txtDeviceD.setText(str(var_tmp[3]))
38 38 #Se desactivan los que no existen
39 39 if len(var_tmp[0]) == 0 :
40 40 self.chkDevA.setChecked(False)
41 41 self.chkDevA.setEnabled(False)
42 42 if len(var_tmp[1]) == 0 :
43 43 self.chkDevB.setChecked(False)
44 44 self.chkDevB.setEnabled(False)
45 45 if len(var_tmp[2]) == 0 :
46 46 self.chkDevC.setChecked(False)
47 47 self.chkDevC.setEnabled(False)
48 48 if len(var_tmp[3]) == 0 :
49 49 self.chkDevD.setChecked(False)
50 50 self.chkDevD.setEnabled(False)
51 51
52 52 #----------------------------------- expulsa los dispositivos de grabacion --------------------------------------------
53 53
54 54 def eject_devices(self):
55 55 for var_dev in self.var_devices:
56 56 var_cmd = 'eject ' + var_dev
57 57 commands.getstatusoutput(var_cmd)
58 58
59 59 #Expulsa el dispositivo de grabacion actual
60 60 def eject_one_device(self):
61 61 var_index = ( ( (self.var_disc_n - 1) * self.var_Copys) + (self.var_copy_n - 1) - self.var_burned_discs ) % len(self.var_devices)
62 62 var_dev = self.var_devices[var_index]
63 63 var_cmd = 'eject ' + var_dev
64 64 commands.getstatusoutput(var_cmd)
65 65
66 66 def eject_t_one_device(self):
67 67 var_index = ( ( (self.var_disc_n - 1) * self.var_Copys) + (self.var_copy_n - 1) - self.var_burned_discs ) % len(self.var_devices)
68 68 var_dev = self.var_devices[var_index]
69 69 var_cmd = 'eject -t ' + var_dev
70 70 commands.getstatusoutput(var_cmd)
71 71
72 72 def get_dev_sr(self):
73 73 var_index = ( ( (self.var_disc_n - 1) * self.var_Copys) + (self.var_copy_n - 1) - self.var_burned_discs ) % len(self.var_devices)
74 74 var_dev = self.var_devices[var_index]
75 75 var_output=commands.getstatusoutput('ls -lh '+var_dev)
76 76 if var_output[0] != 0:
77 77 return "FATAL ERROR"
78 78 else:
79 79 var_dev_sr = "/dev/"+var_output[1] .split()[-1]
80 80 return var_dev_sr
81 81
82 82
83 #----------------------------------- expulsa los dispositivos de grabacion --------------------------------------------
84 def mounted_devices():
85 var_output=commands.getstatusoutput('df -hT | grep tmpfs')
86
87 if var_output[0] != 0:
88 return "FATAL ERROR"
89
90 else:
91 if len(var_output[1]) == 0:
92 return "FATAL ERROR"
93
94 list_dirs = []
95 for var_dir in var_output[1].split('\n'):
96 list_dirs.append(var_dir.split()[-1])
97
98 return list_dirs
99
83 100
84 101 #----------------------------------- listado de los dispositivos de grabacion seleccionados --------------------------------------------
85 102
86 103 def selected_devices(self):
87 104 self.var_devices=[]
88 105 if self.chkDevA.isChecked():
89 106 self.var_devices.append(str(self.txtDeviceA.text()))
90 107 if self.chkDevB.isChecked():
91 108 self.var_devices.append(str(self.txtDeviceB.text()))
92 109 if self.chkDevC.isChecked():
93 110 self.var_devices.append(str(self.txtDeviceC.text()))
94 111 if self.chkDevD.isChecked():
95 112 self.var_devices.append(str(self.txtDeviceD.text()))
96 113
97 114 if len(self.var_devices) == 0:
98 115 return False
99 116 else:
100 117 return True
101 118
102 119
103 120 #----------------------------------------------------- Inicializacion para pruebas---------------------------------------------------------------
104 121
105 122 def set_parameters_test(self):
106 123 """
107 124 Se usa para inicializar ciertos parametros para pruebas
108 125 """
109 126 self.txtDpath.setText('/home/ricardoar/optional/STORAGE/EW_DRIFTS')
110 127 self.txtRpath.setText('/home/ricardoar/optional/prueba1_jro_backup_manager')
111 128 self.txtElabel.setText('EW_DRIFTS_pruebas')
112 129 self.lstDcapacity.setCurrentIndex(4)
113 130 self.txtDcapacity.setValue(100.0)
114 131 self.txtDcapacity.setReadOnly(False)
115 132
116 133 def set_devices_test(self):
117 134 self.txtDeviceA.setText("/dev/scd0")
118 135 self.txtDeviceB.setText("/dev/scd1")
119 136 self.txtDeviceC.setText("/dev/scd2")
120 137 self.txtDeviceD.setText("/dev/scd3")
121 138
122 139
123 140
124 141 #----------------------------------------------------- crea parameters.conf ---------------------------------------------------------------
125 142
126 143 def make_parameters_conf(self):
127 144 var_file = open("parameters.conf","w")
128 145 var_file.write(self.var_Dpath+"\n") #0 Ruta de los datos
129 146 var_file.write(self.var_Rpath+"\n") #1 Ruta del proyecto
130 147 var_file.write(str(self.var_lstDtype)+"\n") #2 opcion Data Type
131 148 var_file.write(self.var_Dtype+"\n") #3 extension Data Type
132 149 var_file.write(self.var_Elabel+"\n") #4 etiqueta
133 150 var_file.write(str(self.var_Copys)+"\n") #5 Numero de copias
134 151 var_file.write(str(self.var_lstDcapacity)+"\n") #6 opcion Device Capacity
135 152 var_file.write(str(self.var_Dcapacity)+"\n") #7 tamaño Device Capacity
136 153 var_file.write(str(self.var_Discs)+"\n") #8 Numero de discos a grabar
137 154 # var_file.write(str(self.lstStartDay.currentIndex())+"\n") #9 Indice fecha inicial
138 155 # var_file.write(str(self.lstStopDay.currentIndex())+"\n") #10 Indice fecha final
139 156 var_file.close()
140 157
141 158 #----------------------------------------------------- carga parameters.conf ---------------------------------------------------------------
142 159
143 160 def get_parameters_conf(self):
144 161 var_file = open("parameters.conf","r")
145 162 lines = var_file.readlines()
146 163 self.txtDpath.setText(lines[0][:-1]) #0
147 164 self.txtRpath.setText(lines[1][:-1]) #1
148 165 self.lstDtype.setCurrentIndex(int(lines[2])) #2
149 166 self.txtDtype.setText(lines[3][:-1]) #3
150 167 self.txtElabel.setText(lines[4][:-1]) #4
151 168 self.txtCopys.setValue(int(lines[5][:-1])) #5
152 169 self.lstDcapacity.setCurrentIndex(int(lines[6])) #6
153 170 self.txtDcapacity.setValue(float(lines[7])) #7
154 171 self.var_Discs = int(lines[8]) #8
155 172 # var_StartDay = int(lines[6]) #9
156 173 # var_StopDay = int(lines[7]) #10
157 174 ################################
158 175 self.var_Copys = self.txtCopys.value() #5
159 176 ################################
160 177
161 178 var_file.close()
162 179
163 180
164 181 #-------------------------- actualiza el valor de las variables con los parametros seleccionados -----------------------------
165 182
166 183 def set_vars(self):
167 184 self.var_Dpath = str(self.txtDpath.text()) #0
168 185 self.var_Rpath = str(self.txtRpath.text()) #1
169 186 self.var_lstDtype = self.lstDtype.currentIndex() #2
170 187 self.var_Dtype = str(self.txtDtype.text()) #3
171 188 self.var_Elabel = str(self.txtElabel.text()) #4
172 189 self.var_Copys = self.txtCopys.value() #5
173 190 self.var_lstDcapacity = self.lstDcapacity.currentIndex() #6
174 191 self.var_Dcapacity = self.txtDcapacity.value() #7
175 192 self.var_Discs = self.var_Discs #8
176 193
177 194
178 195 #-------------------------- crea burning.conf -----------------------------
179 196
180 197 def make_burning_conf(self):
181 198 var_file = open("burning.conf","w")
182 199 var_n_burned_discs = ( ( (self.var_disc_n - 1) * self.var_Copys) + self.var_copy_n - 1 )
183 200 var_file.write(str(var_n_burned_discs)+"\n") #0 Numero de discos ya grabados
184 201 var_file.write(str(self.var_disc_n)+"\n") #1 Disco actual para grabar
185 202 var_file.write(str(self.var_copy_n)+"\n") #2 Numero de copia actual para grabar
186 203 var_file.close()
187 204
188 205 #----------------------------------------------------- carga burning.conf ---------------------------------------------------------------
189 206
190 207 def get_burning_conf(self):
191 208 var_file = open("burning.conf","r")
192 209 lines = var_file.readlines()
193 210 self.var_burned_discs = int(lines[0]) #0
194 211 self.var_disc_n = int(lines[1])
195 212 self.var_copy_n = int(lines[2])
196 213 var_file.close()
197 214
198 215 #---------------------------------------------- Habilitacion y deshabilitacion de items -------------------------------------------------------
199 216
200 217 def enabled_items1(var_bool, self):
201 218 self.tabParameters.setEnabled(not(var_bool))
202 219 self.lstDcapacity.setEnabled(not(var_bool))
203 220 self.txtDcapacity.setEnabled(not(var_bool))
204 221 self.actionChange_Parameters.setEnabled(var_bool)
205 222 self.btnGbkp.setEnabled(not(var_bool))
206 223 self.btnRestart.setEnabled(var_bool)
207 224 self.btnStartburn.setEnabled(var_bool)
208 225
209 226
210 227 def enabled_items2(var_bool, self):
211 228 self.btnRestart.setEnabled(not(var_bool))
212 229 self.btnStartburn.setEnabled(not(var_bool))
213 230 self.btnStopburn.setEnabled(var_bool)
214 231 self.chkCheck.setEnabled(not(var_bool))
215 232 self.chkCheck.setChecked(False)
216 233
217 234 self.actionChange_Parameters.setEnabled(False)
218 235
219 236
220 237
221 238
222 239
223 240 #---------------------------------------------- Actualiza estado en los labels -------------------------------------------------------
224 241
225 def update_message(type, message, self, index=0, ):
242 def update_message(type, message, self, index=0):
226 243 if index == 0:
227 244 var_index = ( ( (self.var_disc_n - 1) * self.var_Copys) + (self.var_copy_n - 1) - self.var_burned_discs ) % len(self.var_devices)
228 245 else:
229 246 var_index = index
230 247
231 248 var_message = message
232 249 # var_message = "BURNING"
233 250 # var_message = "COMPLETED"
234 251 # var_message = "ERROR"
235 252 # var_message = "CHECKING"
236 253 # var_message = "CHECKED"
237 254
238 255 if type == 1:
239 256
240 257 if var_index == 0:
241 258 self.txtBstatusA.setText(var_message)
242 259 self.txtBdiscA.setText(str(self.var_disc_n))
243 260 self.txtBcopyA.setText(str(self.var_copy_n))
244 261
245 262 if var_index == 1:
246 263 self.txtBstatusB.setText(var_message)
247 264 self.txtBdiscB.setText(str(self.var_disc_n))
248 265 self.txtBcopyB.setText(str(self.var_copy_n))
249 266
250 267 if var_index == 2:
251 268 self.txtBstatusC.setText(var_message)
252 269 self.txtBdiscC.setText(str(self.var_disc_n))
253 270 self.txtBcopyC.setText(str(self.var_copy_n))
254 271
255 272 if var_index == 3:
256 273 self.txtBstatusD.setText(var_message)
257 274 self.txtBdiscD.setText(str(self.var_disc_n))
258 275 self.txtBcopyD.setText(str(self.var_copy_n))
259 276
260 277 if type == 2:
261 278
262 279 if var_index == 0:
263 280 self.txtCHstatusA.setText(var_message)
264 281
265 282 if var_index == 1:
266 283 self.txtCHstatusB.setText(var_message)
267 284
268 285 if var_index == 2:
269 286 self.txtCHstatusC.setText(var_message)
270 287
271 288 if var_index == 3:
272 289 self.txtCHstatusD.setText(var_message)
273 290
274 291
@@ -1,666 +1,758
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 18 import time
19 19 import commands
20 20 from functions import functions
21 21 from functions import functions2
22 22
23 23 class MainWindow(QMainWindow, Ui_MainWindow):
24 24 """
25 25 Class documentation goes here.
26 26 """
27 27
28 28 def __init__(self, parent = None):
29 29 QMainWindow.__init__(self, parent)
30 30 self.setupUi(self)
31 31 self.setupUi2()
32 32
33 33 def setupUi2(self):
34 34
35 35 self.txtInfo.append("cambio 1")
36 36
37 37 self.allTrue = False
38 38
39 39 if self.allTrue == True:
40 40 self.var_real_principal = True
41 41 self.var_real_detect_devices = True
42 42 self.var_real_iso = True
43 43 self.var_real_burn = True
44 44 self.var_real_check = True
45 45 self.var_real_eject = True
46 self.var_real_manual_check = True
46 47 self.var_real_show_cmd = True
47 48
48 49 else:
49 50 self.var_real_principal = False
50 51 self.var_real_detect_devices = False
51 52 self.var_real_iso = False
52 53 self.var_real_burn = False
53 self.var_real_check = True
54 self.var_real_check = False
54 55 self.var_real_eject = False
56 self.var_real_manual_check = False
55 57 self.var_real_show_cmd = True
56 58
57 59 if self.var_real_detect_devices == True:
58 60 # Reconocimiento de los dispositivos de grabacion
59 61 functions2.detect_devices(self)
60 62 else:
61 63 functions2.set_devices_test(self)
62 64
63 65 #Inicialiazacion de variables
64 66 self.var_Discs = 0 #Numero de discos del proyecto
65 67 self.var_Copys = 0 #Numero de copias
66 68 self.var_disc_n = 0 # disco actual
67 69 self.var_copy_n = 0 # copia actual
68 70 self.var_burned_discs = 0 #numero de discos ya grabados
69 71
70 72 self.bool_first_iso = False
71 73 self.var_step = 0 # numero de paso en el proceso
72 74 self.bool_state_burning = False #si es True se puede grabar
73 75 self.blank_discs = False # Si es true significa que se acaban de ingresar discos en blanco
74 76
75 77 self.var_list=[] # Lista de DOYs
76 78 self.var_sublist=[] # Sub-lista de DOYs seleccionados
77 79 self.var_devices=[] #Lista de dispositivos seleccionados
78 80
79 81 #Revisa si existe el archivo de confirguracion y lo carga
80 82 if os.path.isfile("parameters.conf"):
81 83 functions2.get_parameters_conf(self)
82 84 self.bool_first_iso = True
83 85 self.txtInfo.append("Parameters were loaded from configuration file")
84 86 self.txtInfo.append("Total number of discs for recording: "+str(self.var_Discs * self.var_Copys))
85 87
86 88 elif self.var_real_principal == False:
87 89 functions2.set_parameters_test(self) #Establece ciertos parametros, para pruebas
88 90
89 91 functions2.set_vars(self) #Carga las variables de la clase con los parametros seleccionados
90 92
91 93 self.statusDpath = functions.dir_exists(self.var_Dpath, self)
92 94 self.statusRpath = functions.dir_exists(self.var_Rpath, self)
93 95 functions.load_days(self)
94 96
95 97 if os.path.isfile("parameters.conf"):
96 98 functions2.enabled_items1(True, self) #Se bloquean los parametros de configuracion
97 99
98 100 if os.path.isfile("burning.conf"):
99 101 functions2.get_burning_conf(self)
100 102 self.txtInfo.append("Current disc: "+str(self.var_disc_n))
101 103 self.txtInfo.append("Current copy: "+str(self.var_copy_n))
102 104 self.txtInfo.append("Burned discs: "+str(self.var_burned_discs))
103 105 self.btnStartburn.setText("Continue")
104 106 self.actionChange_Parameters.setEnabled(False)
105 107
106 108 self.connect(self.actionChange_Parameters, QtCore.SIGNAL("triggered()"), self.changeParameters)
107 109 self.connect(self.actionAbout, QtCore.SIGNAL("triggered()"), self.about)
108 110
109 111 self.process_iso = QtCore.QProcess()
110 112 self.connect(self.process_iso, QtCore.SIGNAL('readyReadStandardOutput()'), self.readOuput_iso)
111 113 self.connect(self.process_iso, QtCore.SIGNAL('readyReadStandardError()'), self.readError_iso)
112 114 self.connect(self.process_iso, QtCore.SIGNAL('finished(int,QProcess::ExitStatus)'), self.finished_iso)
113 115
114 116 self.process_burn = QtCore.QProcess()
115 117 self.connect(self.process_burn, QtCore.SIGNAL('readyReadStandardOutput()'), self.readOuput_burn)
116 118 self.connect(self.process_burn, QtCore.SIGNAL('readyReadStandardError()'), self.readError_burn)
117 119 self.connect(self.process_burn, QtCore.SIGNAL('finished(int,QProcess::ExitStatus)'), self.finished_burn)
118 120
119 121 self.process_check = QtCore.QProcess()
120 122 self.connect(self.process_check, QtCore.SIGNAL('readyReadStandardOutput()'), self.readOuput_check)
121 123 self.connect(self.process_check, QtCore.SIGNAL('readyReadStandardError()'), self.readError_check)
122 124 self.connect(self.process_check, QtCore.SIGNAL('finished(int,QProcess::ExitStatus)'), self.finished_check)
123 125
126 self.process_manual_check = QtCore.QProcess()
127 self.connect(self.process_manual_check, QtCore.SIGNAL('readyReadStandardOutput()'), self.readOuput_manual_check)
128 self.connect(self.process_manual_check, QtCore.SIGNAL('readyReadStandardError()'), self.readError_manual_check)
129 self.connect(self.process_manual_check, QtCore.SIGNAL('finished(int,QProcess::ExitStatus)'), self.finished_manual_check)
124 130
125 131 def changeParameters(self):
126 132 dlg=QtGui.QDialog()
127 133 dlgui=Ui_Parameters()
128 134 dlgui.setupUi(dlg)
129 135 if (dlg.exec_() == QtGui.QDialog.Accepted):
130 136 if dlgui.txtDisc.value() > self.var_Discs or dlgui.txtCopy.value() > dlgui.txtNcopys.value():
131 137 self.txtInfo.append("Wrong parameters")
132 138 else:
133 139 self.var_Copys = dlgui.txtNcopys.value()
134 140 self.var_disc_n = dlgui.txtDisc.value()
135 141 self.var_copy_n = dlgui.txtCopy.value()
136 142 self.txtInfo.append("Changed parameters")
137 143 self.var_burned_discs = ( ( (self.var_disc_n - 1) * self.var_Copys) + self.var_copy_n -1 )
138 144 self.bool_first_iso = True
139 145 self.txtInfo.append("Current disc: "+str(self.var_disc_n))
140 146 self.txtInfo.append("Current copy: "+str(self.var_copy_n))
141 147 self.txtInfo.append("Nro Copys: "+str(self.var_Copys))
142 148 functions2.make_parameters_conf(self)
143 149 self.txtCopys.setValue(self.var_Copys) #Actualizo mananualmente el valor Copys
144 150
145 151
146 152
147 153 def about(self):
148 154 dlg_about=QtGui.QDialog()
149 155 dlgui_about=Ui_About()
150 156 dlgui_about.setupUi(dlg_about)
151 157 dlg_about.exec_()
152 158
153 159
154 160 #==============================================================================
155 161 # Manejo de los eventos
156 162 #==============================================================================
157 163
158 164 #----------------------------------------------------- Obtencion de la ruta de los datos ---------------------------------------------------------------
159 165
160 166 @pyqtSignature("")
161 167 def on_btnDpath_clicked(self):
162 168 """
163 169 Permite seleccionar graficamente el direcorio de los datos a grabar
164 170 """
165 171 self.var_Dpath= str(QtGui.QFileDialog.getExistingDirectory(self, 'Open Directory', './', QtGui.QFileDialog.ShowDirsOnly))
166 172 self.txtDpath.setText(self.var_Dpath)
167 173 self.statusDpath = functions.dir_exists(self.var_Dpath, self)
168 174 functions.load_days(self)
169 175
170 176
171 177 @pyqtSignature("")
172 178 def on_txtDpath_editingFinished(self):
173 179 """
174 180 Carga la ruta editada y verifica que sea correcta y carga la lista de dias
175 181 """
176 182 self.var_Dpath=str(self.txtDpath.text()) #Se carga la variable con la ruta recien editada
177 183 self.statusDpath = functions.dir_exists(self.var_Dpath, self)
178 184 functions.load_days(self)
179 185
180 186
181 187 #----------------------------------------------------- Obtencion de las ruta del proyecto ---------------------------------------------------------------
182 188
183 189 @pyqtSignature("")
184 190 def on_btnRpath_clicked(self):
185 191 """
186 192 Permite seleccionar graficamente el direcorio del proyecto
187 193 """
188 194 self.var_Rpath = str(QtGui.QFileDialog.getExistingDirectory(self, 'Open Directory', './', QtGui.QFileDialog.ShowDirsOnly))
189 195 self.txtRpath.setText(self.var_Rpath)
190 196 self.statusRpath = functions.dir_exists(self.var_Rpath, self)
191 197
192 198
193 199 @pyqtSignature("")
194 200 def on_txtRpath_editingFinished(self):
195 201 """
196 202 Valida la ruta del proyecto
197 203 """
198 204 self.var_Rpath = str(self.txtRpath.text()) #Se carga la variable con la ruta recien editada
199 205 self.statusRpath = functions.dir_exists(self.var_Rpath, self)
200 206
201 207
202 208 #----------------------------------------------------- Tipo de datos ---------------------------------------------------------------
203 209
204 210 @pyqtSignature("int")
205 211 def on_lstDtype_activated(self, index):
206 212 """
207 213 Permite elegir entre los tipos de archivos
208 214 """
209 215 self.txtDtype.setReadOnly(True)
210 216 if index == 0:
211 217 self.var_Dtype ='r'
212 218 elif index == 1:
213 219 self.var_Dtype ='pdata'
214 220 elif index == 2:
215 221 self.var_Dtype ='sswma'
216 222 else :
217 223 self.var_Dtype =''
218 224 self.txtDtype.setReadOnly(False)
219 225
220 226 self.txtDtype.setText(self.var_Dtype)
221 227 functions.load_days(self) #llamada a funcion
222 228
223 229 @pyqtSignature("")
224 230 def on_txtDtype_editingFinished(self):
225 231 self.var_Dtype=str(self.txtDtype.text())
226 232 functions.load_days(self) #llamada a funcion
227 233
228 234
229 235 #----------------------------------------------------- Etiqueta ---------------------------------------------------------------
230 236
231 237 @pyqtSignature("")
232 238 def on_txtElabel_editingFinished(self):
233 239 self.var_Elabel = str(self.txtElabel.text())
234 240
235 241 #----------------------------------------------------- Numero de copias ---------------------------------------------------------------
236 242 @pyqtSignature("")
237 243 def on_txtCopys_editingFinished(self):
238 244 self.var_Copys = self.txtCopys.value()
239 245
240 246 #----------------------------------------------------- Seleccion del rango de fechas ---------------------------------------------------------------
241 247
242 248 @pyqtSignature("int") #CLOSED
243 249 def on_lstStartDay_activated(self, index):
244 250 """
245 251 Cambia la lista de opciones en lstStopDay
246 252 """
247 253 var_StopDay_index=self.lstStopDay.count() - self.lstStopDay.currentIndex()
248 254 self.lstStopDay.clear()
249 255
250 256 for i in self.var_list[index:]:
251 257 self.lstStopDay.addItem(i)
252 258
253 259 self.lstStopDay.setCurrentIndex(self.lstStopDay.count() - var_StopDay_index)
254 260
255 261 functions.get_sub_list(self)
256 262
257 263
258 264 @pyqtSignature("int") #CLOSED
259 265 def on_lstStopDay_activated(self, index):
260 266 """
261 267 Cambia la lista de opciones en lstStartDay
262 268 """
263 269 var_StartDay_index=self.lstStartDay.currentIndex()
264 270 var_end_index = self.lstStopDay.count() - index
265 271 self.lstStartDay.clear()
266 272
267 273 for i in self.var_list[:len(self.var_list) - var_end_index + 1]:
268 274 self.lstStartDay.addItem(i)
269 275
270 276 self.lstStartDay.setCurrentIndex(var_StartDay_index)
271 277
272 278 functions.get_sub_list(self)
273 279
274 280
275 281 #----------------------------------------------------- Capacidad del dispositivo de grabacion ---------------------------------------------------------------
276 282
277 283 @pyqtSignature("")
278 284 def on_txtDcapacity_editingFinished(self):
279 285 self.var_Dcapacity = self.txtDcapacity.value()
280 286
281 287
282 288 @pyqtSignature("int") #CLOSED
283 289 def on_lstDcapacity_activated(self, index):
284 290 """
285 291 Permite elegir el tamaño del disco
286 292 """
287 293 if index == 0:
288 294 var_size=25.0
289 295 elif index == 1:
290 296 var_size=8.5
291 297 elif index == 2:
292 298 var_size=4.7
293 299 elif index == 3:
294 300 var_size=0.7
295 301
296 302 if index != 4:
297 303 self.txtDcapacity.setValue(var_size*10**9/1024**2)
298 304 self.txtDcapacity.setReadOnly(True)
299 305 else:
300 306 self.txtDcapacity.setValue(100.0)
301 307 self.txtDcapacity.setReadOnly(False)
302 308
303 309 self.var_lstDcapacity = self.lstDcapacity.currentIndex()
304 310 self.var_Dcapacity = self.txtDcapacity.value()
305 311
306 312 #----------------------------------------------------- Testeo de las unidades de grabacion ---------------------------------------------------------------
307 313
308 314 @pyqtSignature("")
309 315 def on_btnTdevA_clicked(self):
310 316 var_dev = str(self.txtDeviceA.text())
311 317 var_cmd = 'eject ' + var_dev + '; eject -t ' + var_dev
312 318 commands.getstatusoutput(var_cmd)
313 319
314 320 @pyqtSignature("")
315 321 def on_btnTdevB_clicked(self):
316 322 var_dev = str(self.txtDeviceB.text())
317 323 var_cmd = 'eject ' + var_dev + '; eject -t ' + var_dev
318 324 commands.getstatusoutput(var_cmd)
319 325
320 326 @pyqtSignature("")
321 327 def on_btnTdevC_clicked(self):
322 328 var_dev = str(self.txtDeviceC.text())
323 329 var_cmd = 'eject ' + var_dev + '; eject -t ' + var_dev
324 330 commands.getstatusoutput(var_cmd)
325 331
326 332 @pyqtSignature("")
327 333 def on_btnTdevD_clicked(self):
328 334 var_dev = str(self.txtDeviceD.text())
329 335 var_cmd = 'eject ' + var_dev + '; eject -t ' + var_dev
330 336 commands.getstatusoutput(var_cmd)
331 337
332 338
333 339 #==============================================================================
334 340 # Botones para la generacion de los archivos de configuracion
335 341 #==============================================================================
336 342
337 343 #----------------------------------------------------- Generacion de la configuracion usando los parametros ---------------------------------------------------------------
338 344
339 345 @pyqtSignature("")
340 346 def on_btnGbkp_clicked(self):
341 347 """
342 348 Generacion de archivos de configuracion usando los parametros
343 349 """
344 350
345 351 if functions.validate_parameters(self) == False:
346 352 return
347 353
348 354 #Crea las carpetas en la ruta del proyecto y verifica que se crearon correctamente
349 355 list_dirs=['gpath','iso','ppath', 'tmpdata']
350 356 bool_make_dirs = functions.make_dirs(list_dirs, self)
351 357 if bool_make_dirs == False:
352 358 return
353 359
354 360 var_files_list = functions.list_files(self) #Se obtiene la lista de archivos a grabar
355 361
356 362 self.var_Discs = functions.make_files_dat(var_files_list, self) #Se crean los archivos .dat
357 363
358 364 functions.make_files_print(self) # Se crean los archivos .print
359 365
360 366 functions2.make_parameters_conf(self) # se crea el archivo parameters.conf
361 367
362 368 self.txtInfo.append("Total number of discs for recording: "+str(self.var_Discs * self.var_Copys))
363 369
364 370 #Se bloquean los parametros de configuracion
365 371 functions2.enabled_items1(True, self)
366 372 self.var_disc_n = 1
367 373 self.var_copy_n = 1
368 374 self.bool_first_iso = True
369 375 self.var_burned_discs = 0 #numero de discos grabados
370 376
371 377
372 378 #----------------------------------------------------- Permite reiniciar la configuracion ---------------------------------------------------------------
373 379
374 380 @pyqtSignature("")
375 381 def on_btnRestart_clicked(self):
376 382 """
377 383 Permite que se puedan cambiar los parametros
378 384 """
379 385 if os.path.isfile("parameters.conf"):
380 386 os.remove("parameters.conf")
381 387 if os.path.isfile("burning.conf"):
382 388 os.remove("burning.conf")
383 389
384 390 functions2.enabled_items1(False, self)
385 391 self.btnStartburn.setText("Start Burn")
386 392 self.txtInfo.clear()
387 393
388 394
389 395
390 396 #==============================================================================
391 397 # Acciones de los procesos
392 398 #==============================================================================
393 399
394 400 #------------------------------------------------ Funciones del proceso de creacion del iso ------------------------------------------------------
395 401
396 402 def readOuput_iso(self):
397 403 self.txtProgress.setText("stdout iso: " + QtCore.QString(self.process_iso.readAllStandardOutput()))
398 404
399 405 def readError_iso(self):
400 406 self.txtProgress.setText("stderr iso: " + QtCore.QString(self.process_iso.readAllStandardError()))
401 407
402 408 def finished_iso(self):
403 409 self.txtProgress.clear()
404 410
405 411 if not(self.bool_state_burning):
406 412 return
407 413
408 414 if self.process_iso.exitCode() == 0:
409 415 self.txtInfo.append("------Iso file: "+functions.i2s(self.var_disc_n)+" created successfully\n")
410 416 self.var_step = 1
411 417 self.function_burn()
412 418
413 419 else:
414 420 self.txtInfo.append("#####Error creating iso file "+functions.i2s(self.var_disc_n)
415 421 +" , code "+QtCore.QString(self.process_iso.exitCode()))
416 422 self.txtInfo.append("Please check the data")
417 423 self.txtInfo.append("FATAL ERROR")
418 424
419 425 #----------------------------------------------------- Funciones del proceso de grabado ---------------------------------------------------------------
420 426
421 427 def readOuput_burn(self):
422 428 self.txtProgress.setText("stdout burn: " + QtCore.QString(self.process_burn.readAllStandardOutput()))
423 429
424 430 def readError_burn(self):
425 431 self.txtProgress.setText("stderr burn: " + QtCore.QString(self.process_burn.readAllStandardError()))
426 432
427 433 def finished_burn(self):
428 434 self.txtProgress.clear()
429 435
430 436 #Si se paro el proceso manualmente se termina
431 437 if not(self.bool_state_burning):
432 438 return
433 439
434 440 if self.process_burn.exitCode() == 0:
435 441 self.txtInfo.append("-----Complete recording, disc: "+str(self.var_disc_n)+" copy: "+str(self.var_copy_n))
436 442 functions2.update_message(1, "COMPLETED", self)
437 443 self.var_step = 2
438 444 self.function_check()
439 445
440 446 else:
441 447 self.txtInfo.append("#######Error recording, disc: "+functions.i2s(self.var_disc_n)+" copy: "
442 448 +functions.i2s(self.var_copy_n)+", code "+QtCore.QString(self.process_burn.exitCode()))
443 449 functions2.update_message(1, "ERROR", self)
444 450
445 451 functions.is_last_disc_and_copy(self)
446 452
447 453
448 454 #----------------------------------------------------- Funciones del proceso de verificacion ---------------------------------------------------------------
449 455
450 456 def readOuput_check(self):
451 457 self.txtProgress.setText("stdout check: " + QtCore.QString(self.process_check.readAllStandardOutput()))
452 458
453 459 def readError_check(self):
454 460 self.txtProgress.setText("stderr check: " + QtCore.QString(self.process_check.readAllStandardError()))
455 461
456 462 def finished_check(self):
457 463 self.txtProgress.clear()
458 464
459 465 if not(self.bool_state_burning):
460 466 return
461 467
462 468 if self.process_check.exitCode() == 0:
463 469 self.txtInfo.append("--------Complete checking, disc: "+str(self.var_disc_n)+" copy: "+str(self.var_copy_n))
464 470 functions2.update_message(2, "CHECKED", self)
465 471
466 472 else:
467 473 self.txtInfo.append("#######Error checking, disc: "+functions.i2s(self.var_disc_n)+" copy: "
468 474 +functions.i2s(self.var_copy_n)+", code "+QtCore.QString(self.process_check.exitCode()))
469 475 functions2.update_message(2, "ERROR", self)
470 476
471 477 #borrar el contenido de tmpdata
472 478 var_tmpdata=self.var_Rpath+"/tmpdata"
473 479
474 480 bool_return = functions.remove_dir(var_tmpdata, self)
475 481 if not(bool_return):
476 482 self.txtInfo.append("Error deleting directory: "+var_tmpdata)
477 483 self.bool_state_burning = False
478 484 return
479 485
480 486 bool_return = functions.make_dir(var_tmpdata, self)
481 487 if not(bool_return):
482 488 self.txtInfo.append("Error creating directory:"+ var_tmpdata)
483 489 self.bool_state_burning = False
484 490 return
485 491
486 492 functions.is_last_disc_and_copy(self)
487 493
494 #----------------------------------------------------- Funciones del proceso de verificacion manual ---------------------------------------------------------------
495
496 def readOuput_manual_check(self):
497 self.txtProgress.setText("stdout check: " + QtCore.QString(self.process_manual_check.readAllStandardOutput()))
498
499 def readError_manual_check(self):
500 self.txtProgress.setText("stderr check: " + QtCore.QString(self.process_manual_check.readAllStandardError()))
501
502 def finished_manual_check(self):
503 self.txtProgress.clear()
504
505 if not(self.bool_state_manual_check):
506 return
507
508 if self.process_manual_check.exitCode() == 0:
509 self.txtInfo.append("--------Complete checking, disc: "+str(self.var_n_check_dirs + 1))
510 functions2.update_message(2, "CHECKED", self, index=self.var_n_check_dirs)
511
512 else:
513 self.txtInfo.append("#######Error checking, disc: "+str(self.var_n_check_dirs + 1)
514 +", code "+QtCore.QString(self.process_manual_check.exitCode()))
515 functions2.update_message(2, "ERROR", self, index=self.var_n_check_dirs)
516
517 #borrar el contenido de tmpdata
518 var_tmpdata=self.var_Rpath+"/tmpdata"
519
520 bool_return = functions.remove_dir(var_tmpdata, self)
521 if not(bool_return):
522 self.txtInfo.append("Error deleting directory: "+var_tmpdata)
523 self.bool_state_burning = False
524 return
525
526 bool_return = functions.make_dir(var_tmpdata, self)
527 if not(bool_return):
528 self.txtInfo.append("Error creating directory:"+ var_tmpdata)
529 self.bool_state_burning = False
530 return
531
532 if self.var_n_check_dirs >= len(self.list_check_dirs) :
533 self.bool_state_manual_check = False
534 return
535
536 self.var_n_check_dirs +=1
537 self.manual_check()
488 538
489 539
490 540 #==============================================================================
491 541 # Botones para el proceso de grabacion
492 542 #==============================================================================
493 543
494 544 #----------------------------------------------------- Iniciar proceso de grabacion ---------------------------------------------------------------
495 545
496 546 @pyqtSignature("")
497 547 def on_btnStartburn_clicked(self):
498 548 """
499 549 Se inicia el proceso de grabacion
500 550 """
501 551 #Verifica que exista algun dispositivo de grabacion seleccionado
502 552 if not(functions2.selected_devices(self)):
503 553 self.txtInfo.append("There is no recording device selected")
504 554 return
505 555
506 556 # #Lista los dispositivos de grabacion a usar
507 557 # for dev in self.var_devices:
508 558 # self.txtInfo.append("recording device :"+dev)
509 559
510 560 self.bool_state_burning = True
511 561 functions2.enabled_items2(True, self)
512 562
513 563 if self.bool_first_iso == True:
514 564 self.txtInfo.append("BUTTON: on_btnStartburn_clicked")
515 565 self.var_step = 4
516 566 self.function_eject()
517 567 return
518 568
519 569 if self.var_step == 0:
520 570 self.function_iso()
521 571 return
522 572
523 573 if self.var_step == 1:
524 574 self.function_burn()
525 575 return
526 576
527 577 #----------------------------------------------------- Funcion para el grabado ---------------------------------------------------------------
528 578
529 579 def function_iso(self):
530 580 #Creacion del archivo.iso para la grabacion
531 581 if self.var_step == 0:
532 582 self.txtInfo.append("########## Disc number: "+str(self.var_disc_n)+"##########")
533 583 self.txtInfo.append("------Creating iso file number: "+str(self.var_disc_n))
534 584
535 585 var_cmd = functions.cmd_iso(self)
536 586
537 587 if self.var_real_show_cmd == True:
538 588 self.txtInfo.append("CMD: "+var_cmd)
539 589
540 590 if self.var_real_iso == False:
541 591 self.txtInfo.append('**function_iso')
542 592 var_cmd="echo 'function_iso'"
543 593
544 594 self.process_iso.start(var_cmd)
545 595
546 596 def function_burn(self):
547 597 #Grabacion de los DVDs
548 598
549 599 if self.var_step == 1:
550 600 self.txtInfo.append("------Recording disc: "+str(self.var_disc_n)+", copy:"+str(self.var_copy_n))
551 601 functions2.update_message(1, "BURNING", self)
552 602
553 603 var_cmd = functions.cmd_burn(self)
554 604
555 605 if self.var_real_show_cmd == True:
556 606 self.txtInfo.append("CMD: "+var_cmd)
557 607
558 608 if self.var_real_burn == False:
559 609 self.txtInfo.append('**function_burn')
560 610 var_cmd="echo 'function_burn'"
561 611
562 612 self.process_burn.start(var_cmd)
563 613
564 614 def function_check(self):
565 615 #Verificacion de los discos
566 616 if self.var_step == 2:
567 617 self.txtInfo.append("-----------checking disc:"+str(self.var_disc_n)+", copy:"+str(self.var_copy_n))
568 618
569 619 functions2.eject_one_device(self)
570 620 functions2.eject_t_one_device(self)
571 621 self.txtInfo.append("Waiting ...")
572 622 time .sleep(20)
573 623
574 624 functions2.update_message(2, "CHECKING", self)
575 625
576 626 dev_sr = functions2.get_dev_sr(self)
577 627 var_cmd = functions.cmd_check(dev_sr, self)
578 628
579 629 if self.var_real_show_cmd == True:
580 630 self.txtInfo.append("CMD: "+var_cmd)
581 631
582 632 if self.var_real_check == False:
583 633 self.txtInfo.append('**function_check')
584 634 var_cmd="echo 'function_check'"
585 635
586 636 self.process_check.start(var_cmd)
587 637
588 638 #OK
589 639 def function_eject(self):
590 640 self.txtInfo.append("Ejecting recording devices")
591 641 self.txtInfo.append("Please insert blank discs")
592 642
593 643 if self.var_real_eject == True:
594 644 functions2.eject_devices(self) # Expulsa las bandejas de los dispostivos de grabacion
595 645 else:
596 646 self.txtInfo.append("**functions2.eject_devices")
597 647
598 648 self.btnStartburn.setText("Continue")
599 649 self.btnStartburn.setEnabled(True)
600 650
601 651 if self.bool_first_iso == True:
602 652 self.bool_first_iso = False
603 653 self.var_step = 0
604 654
605 655 elif self.var_copy_n == 1:
606 656 self.var_step = 0
607 657
608 658 else:
609 659 self.var_step = 1
610 660
611 661 def function_final(self):
612 662 self.txtInfo.append("Recording process is complete")
613 663 if os.path.isfile("parameters.conf"):
614 664 os.remove("parameters.conf")
615 665 if os.path.isfile("burning.conf"):
616 666 os.remove("burning.conf")
617 667
618 668
619 669
620 670 #----------------------------------------------------- Detener proceso de grabacion ---------------------------------------------------------------
621 671
622 672 @pyqtSignature("")
623 673 def on_btnStopburn_clicked(self):
624 674 """
625 675 Slot documentation goes here.
626 676 """
627 677 self.bool_state_burning = False
628 678
629 679 if self.var_step == 0:
630 680 self.process_iso.terminate() #Termina el proceso, si puede
631 681 # self.process_iso.kill() #Mata el proceso, no es la forma adecuada, solo usar si terminate() no funciona
632 682 elif self.var_step == 1:
633 683 self.process_burn.terminate()
634 684 elif self.var_step == 2:
635 685 self.process_check.terminate()
636 686
637 687 self.txtInfo.append("Stopped recording")
638 688 functions2.enabled_items2(False, self)
639 689 self.bool_first_iso = True
640 690
641 691
642 692
643 693 #==============================================================================
644 694 # Proceso verificacion manual
645 695 #==============================================================================
646 696
647 697
648 698 #----------------------------------------------------- Proceso de verificaion manual ---------------------------------------------------------------
649 699
650 700
651 701 @pyqtSignature("")
652 702 def on_btnTDpath_clicked(self):
653 703 """
654 704 Slot documentation goes here.
655 705 """
656 706 self.var_TDpath= str(QtGui.QFileDialog.getExistingDirectory(self, 'Open Directory', './', QtGui.QFileDialog.ShowDirsOnly))
657 707 self.txtTDpath.setText(self.var_TDpath)
658 708 self.statusTDpath = functions.dir_exists(self.var_TDpath, self)
709 if self.statusTDpath:
710 self.btnCHstart.setEnabled(True)
659 711
660 712
661 713 @pyqtSignature("")
662 714 def on_btnCHstart_clicked(self):
663 715 """
664 716 Slot documentation goes here.
665 717 """
666 pass
718 list_dirs = functions2.mounted_devices()
719 if list_dirs == "FATAL ERROR":
720 self.txtInfo.append("ERROR")
721 return
722
723 for i in list_dirs:
724 self.txtInfo.append(i)
725
726 self.list_check_dirs = list_dirs #contiene los directorios donde estan montados los discos a verificar
727 self.var_n_check_dirs = 0
728 self.bool_state_manual_check = True
729
730 self.btnTDpath.setEnabled(False) #Deshabilito el boton que permite cambiar la ruta de verificacion
731 self.btnCHstart.setText("STOP") #Cambio el texto del boton
732
733 self.function_manual_check()
734
735
736 def function_manual_check(self):
737
738 #Verificacion de los discos
739 if self.bool_state_manual_check == True:
740
741 self.txtInfo.append("-----------manually checking disc: "+self.var_n_check_dirs
742 +" data"+self.list_check_dirs[self.var_n_check_dirs])
743
744 functions2.update_message(2, "CHECKING", self, index=self.var_n_check_dirs)
745
746 var_data_dir = self.list_check_dirs[self.var_n_check_dirs] #Carpeta donde esta montado el disco actual
747
748 var_cmd = functions.cmd_manual_check(var_data_dir, self.var_TDpath)
749
750 if self.var_real_show_cmd == True:
751 self.txtInfo.append("CMD: "+var_cmd)
752
753 if self.var_real_manual_check == False:
754 self.txtInfo.append('**function_manual_check')
755 var_cmd="echo 'function_manual_check'"
756
757 self.process_manual_check.start(var_cmd)
758
@@ -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: Tue May 25 00:54:30 2010
6 # by: PyQt4 UI code generator 4.7.2
5 # Created: Wed May 26 16:31:58 2010
6 # by: PyQt4 UI code generator 4.6
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,708 +1,709
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: Tue May 25 00:54:29 2010
6 # by: PyQt4 UI code generator 4.7.2
5 # Created: Wed May 26 16:31:57 2010
6 # by: PyQt4 UI code generator 4.6
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(621, 717)
15 MainWindow.resize(824, 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 157 self.txtBspeedA.setReadOnly(True)
158 158 self.txtBspeedA.setMinimum(1)
159 159 self.txtBspeedA.setProperty("value", 16)
160 160 self.txtBspeedA.setObjectName("txtBspeedA")
161 161 self.verticalLayout_11.addWidget(self.txtBspeedA)
162 162 self.txtBmodeA = QtGui.QLineEdit(self.grpDevA)
163 163 self.txtBmodeA.setReadOnly(True)
164 164 self.txtBmodeA.setObjectName("txtBmodeA")
165 165 self.verticalLayout_11.addWidget(self.txtBmodeA)
166 166 self.btnTdevA = QtGui.QPushButton(self.grpDevA)
167 167 self.btnTdevA.setObjectName("btnTdevA")
168 168 self.verticalLayout_11.addWidget(self.btnTdevA)
169 169 self.verticalLayout_15.addWidget(self.grpDevA)
170 170 self.horizontalLayout_12.addLayout(self.verticalLayout_15)
171 171 self.verticalLayout_16 = QtGui.QVBoxLayout()
172 172 self.verticalLayout_16.setObjectName("verticalLayout_16")
173 173 self.chkDevB = QtGui.QCheckBox(self.tabDconfig)
174 174 self.chkDevB.setChecked(True)
175 175 self.chkDevB.setObjectName("chkDevB")
176 176 self.verticalLayout_16.addWidget(self.chkDevB)
177 177 self.grpDevB = QtGui.QWidget(self.tabDconfig)
178 178 self.grpDevB.setObjectName("grpDevB")
179 179 self.verticalLayout_12 = QtGui.QVBoxLayout(self.grpDevB)
180 180 self.verticalLayout_12.setObjectName("verticalLayout_12")
181 181 self.txtDeviceB = QtGui.QLineEdit(self.grpDevB)
182 182 self.txtDeviceB.setReadOnly(True)
183 183 self.txtDeviceB.setObjectName("txtDeviceB")
184 184 self.verticalLayout_12.addWidget(self.txtDeviceB)
185 185 self.txtBspeedB = QtGui.QSpinBox(self.grpDevB)
186 186 self.txtBspeedB.setReadOnly(True)
187 187 self.txtBspeedB.setMinimum(1)
188 188 self.txtBspeedB.setProperty("value", 16)
189 189 self.txtBspeedB.setObjectName("txtBspeedB")
190 190 self.verticalLayout_12.addWidget(self.txtBspeedB)
191 191 self.txtBmodeB = QtGui.QLineEdit(self.grpDevB)
192 192 self.txtBmodeB.setReadOnly(True)
193 193 self.txtBmodeB.setObjectName("txtBmodeB")
194 194 self.verticalLayout_12.addWidget(self.txtBmodeB)
195 195 self.btnTdevB = QtGui.QPushButton(self.grpDevB)
196 196 self.btnTdevB.setObjectName("btnTdevB")
197 197 self.verticalLayout_12.addWidget(self.btnTdevB)
198 198 self.verticalLayout_16.addWidget(self.grpDevB)
199 199 self.horizontalLayout_12.addLayout(self.verticalLayout_16)
200 200 self.verticalLayout_17 = QtGui.QVBoxLayout()
201 201 self.verticalLayout_17.setObjectName("verticalLayout_17")
202 202 self.chkDevC = QtGui.QCheckBox(self.tabDconfig)
203 203 self.chkDevC.setChecked(True)
204 204 self.chkDevC.setObjectName("chkDevC")
205 205 self.verticalLayout_17.addWidget(self.chkDevC)
206 206 self.grpDevC = QtGui.QWidget(self.tabDconfig)
207 207 self.grpDevC.setObjectName("grpDevC")
208 208 self.verticalLayout_13 = QtGui.QVBoxLayout(self.grpDevC)
209 209 self.verticalLayout_13.setObjectName("verticalLayout_13")
210 210 self.txtDeviceC = QtGui.QLineEdit(self.grpDevC)
211 211 self.txtDeviceC.setReadOnly(True)
212 212 self.txtDeviceC.setObjectName("txtDeviceC")
213 213 self.verticalLayout_13.addWidget(self.txtDeviceC)
214 214 self.txtBspeedC = QtGui.QSpinBox(self.grpDevC)
215 215 self.txtBspeedC.setReadOnly(True)
216 216 self.txtBspeedC.setMinimum(1)
217 217 self.txtBspeedC.setProperty("value", 16)
218 218 self.txtBspeedC.setObjectName("txtBspeedC")
219 219 self.verticalLayout_13.addWidget(self.txtBspeedC)
220 220 self.txtBmodeC = QtGui.QLineEdit(self.grpDevC)
221 221 self.txtBmodeC.setReadOnly(True)
222 222 self.txtBmodeC.setObjectName("txtBmodeC")
223 223 self.verticalLayout_13.addWidget(self.txtBmodeC)
224 224 self.btnTdevC = QtGui.QPushButton(self.grpDevC)
225 225 self.btnTdevC.setObjectName("btnTdevC")
226 226 self.verticalLayout_13.addWidget(self.btnTdevC)
227 227 self.verticalLayout_17.addWidget(self.grpDevC)
228 228 self.horizontalLayout_12.addLayout(self.verticalLayout_17)
229 229 self.verticalLayout_18 = QtGui.QVBoxLayout()
230 230 self.verticalLayout_18.setObjectName("verticalLayout_18")
231 231 self.chkDevD = QtGui.QCheckBox(self.tabDconfig)
232 232 self.chkDevD.setChecked(True)
233 233 self.chkDevD.setObjectName("chkDevD")
234 234 self.verticalLayout_18.addWidget(self.chkDevD)
235 235 self.grpDevD = QtGui.QWidget(self.tabDconfig)
236 236 self.grpDevD.setObjectName("grpDevD")
237 237 self.verticalLayout_14 = QtGui.QVBoxLayout(self.grpDevD)
238 238 self.verticalLayout_14.setObjectName("verticalLayout_14")
239 239 self.txtDeviceD = QtGui.QLineEdit(self.grpDevD)
240 240 self.txtDeviceD.setReadOnly(True)
241 241 self.txtDeviceD.setObjectName("txtDeviceD")
242 242 self.verticalLayout_14.addWidget(self.txtDeviceD)
243 243 self.txtBspeedD = QtGui.QSpinBox(self.grpDevD)
244 244 self.txtBspeedD.setReadOnly(True)
245 245 self.txtBspeedD.setMinimum(1)
246 246 self.txtBspeedD.setProperty("value", 16)
247 247 self.txtBspeedD.setObjectName("txtBspeedD")
248 248 self.verticalLayout_14.addWidget(self.txtBspeedD)
249 249 self.txtBmodeD = QtGui.QLineEdit(self.grpDevD)
250 250 self.txtBmodeD.setReadOnly(True)
251 251 self.txtBmodeD.setObjectName("txtBmodeD")
252 252 self.verticalLayout_14.addWidget(self.txtBmodeD)
253 253 self.btnTdevD = QtGui.QPushButton(self.grpDevD)
254 254 self.btnTdevD.setObjectName("btnTdevD")
255 255 self.verticalLayout_14.addWidget(self.btnTdevD)
256 256 self.verticalLayout_18.addWidget(self.grpDevD)
257 257 self.horizontalLayout_12.addLayout(self.verticalLayout_18)
258 258 self.verticalLayout_19 = QtGui.QVBoxLayout()
259 259 self.verticalLayout_19.setObjectName("verticalLayout_19")
260 260 spacerItem1 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Minimum)
261 261 self.verticalLayout_19.addItem(spacerItem1)
262 262 self.grpDevD_2 = QtGui.QWidget(self.tabDconfig)
263 263 self.grpDevD_2.setObjectName("grpDevD_2")
264 264 self.verticalLayout_20 = QtGui.QVBoxLayout(self.grpDevD_2)
265 265 self.verticalLayout_20.setObjectName("verticalLayout_20")
266 266 self.lblDevice = QtGui.QLabel(self.grpDevD_2)
267 267 self.lblDevice.setObjectName("lblDevice")
268 268 self.verticalLayout_20.addWidget(self.lblDevice)
269 269 self.lblBspeed = QtGui.QLabel(self.grpDevD_2)
270 270 self.lblBspeed.setObjectName("lblBspeed")
271 271 self.verticalLayout_20.addWidget(self.lblBspeed)
272 272 self.lblBmode = QtGui.QLabel(self.grpDevD_2)
273 273 self.lblBmode.setObjectName("lblBmode")
274 274 self.verticalLayout_20.addWidget(self.lblBmode)
275 275 spacerItem2 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Fixed)
276 276 self.verticalLayout_20.addItem(spacerItem2)
277 277 self.verticalLayout_19.addWidget(self.grpDevD_2)
278 278 self.horizontalLayout_12.addLayout(self.verticalLayout_19)
279 279 self.verticalLayout_3.addLayout(self.horizontalLayout_12)
280 280 spacerItem3 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Minimum)
281 281 self.verticalLayout_3.addItem(spacerItem3)
282 282 self.horizontalLayout_11 = QtGui.QHBoxLayout()
283 283 self.horizontalLayout_11.setSpacing(6)
284 284 self.horizontalLayout_11.setSizeConstraint(QtGui.QLayout.SetDefaultConstraint)
285 285 self.horizontalLayout_11.setObjectName("horizontalLayout_11")
286 286 self.lblDcapacity = QtGui.QLabel(self.tabDconfig)
287 287 sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed)
288 288 sizePolicy.setHorizontalStretch(0)
289 289 sizePolicy.setVerticalStretch(0)
290 290 sizePolicy.setHeightForWidth(self.lblDcapacity.sizePolicy().hasHeightForWidth())
291 291 self.lblDcapacity.setSizePolicy(sizePolicy)
292 292 self.lblDcapacity.setObjectName("lblDcapacity")
293 293 self.horizontalLayout_11.addWidget(self.lblDcapacity)
294 294 spacerItem4 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
295 295 self.horizontalLayout_11.addItem(spacerItem4)
296 296 self.verticalLayout_3.addLayout(self.horizontalLayout_11)
297 297 self.horizontalLayout_10 = QtGui.QHBoxLayout()
298 298 self.horizontalLayout_10.setSizeConstraint(QtGui.QLayout.SetFixedSize)
299 299 self.horizontalLayout_10.setObjectName("horizontalLayout_10")
300 300 self.lstDcapacity = QtGui.QComboBox(self.tabDconfig)
301 301 self.lstDcapacity.setObjectName("lstDcapacity")
302 302 self.lstDcapacity.addItem("")
303 303 self.lstDcapacity.addItem("")
304 304 self.lstDcapacity.addItem("")
305 305 self.lstDcapacity.addItem("")
306 306 self.lstDcapacity.addItem("")
307 307 self.horizontalLayout_10.addWidget(self.lstDcapacity)
308 308 self.txtDcapacity = QtGui.QDoubleSpinBox(self.tabDconfig)
309 309 sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed)
310 310 sizePolicy.setHorizontalStretch(0)
311 311 sizePolicy.setVerticalStretch(0)
312 312 sizePolicy.setHeightForWidth(self.txtDcapacity.sizePolicy().hasHeightForWidth())
313 313 self.txtDcapacity.setSizePolicy(sizePolicy)
314 314 self.txtDcapacity.setReadOnly(True)
315 315 self.txtDcapacity.setMinimum(100.0)
316 316 self.txtDcapacity.setMaximum(99999.99)
317 317 self.txtDcapacity.setProperty("value", 4482.27)
318 318 self.txtDcapacity.setObjectName("txtDcapacity")
319 319 self.horizontalLayout_10.addWidget(self.txtDcapacity)
320 320 spacerItem5 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
321 321 self.horizontalLayout_10.addItem(spacerItem5)
322 322 self.lblPSgraphic = QtGui.QLabel(self.tabDconfig)
323 323 self.lblPSgraphic.setObjectName("lblPSgraphic")
324 324 self.horizontalLayout_10.addWidget(self.lblPSgraphic)
325 325 self.txtPSgraphic = QtGui.QSpinBox(self.tabDconfig)
326 326 self.txtPSgraphic.setMinimum(1)
327 327 self.txtPSgraphic.setMaximum(33)
328 328 self.txtPSgraphic.setObjectName("txtPSgraphic")
329 329 self.horizontalLayout_10.addWidget(self.txtPSgraphic)
330 330 self.verticalLayout_3.addLayout(self.horizontalLayout_10)
331 331 self.tabWidget.addTab(self.tabDconfig, "")
332 332 self.tabStatus = QtGui.QWidget()
333 333 self.tabStatus.setObjectName("tabStatus")
334 334 self.verticalLayout_4 = QtGui.QVBoxLayout(self.tabStatus)
335 335 self.verticalLayout_4.setObjectName("verticalLayout_4")
336 336 self.horizontalLayout_18 = QtGui.QHBoxLayout()
337 337 self.horizontalLayout_18.setObjectName("horizontalLayout_18")
338 338 self.verticalLayout_21 = QtGui.QVBoxLayout()
339 339 self.verticalLayout_21.setObjectName("verticalLayout_21")
340 340 self.label_4 = QtGui.QLabel(self.tabStatus)
341 341 self.label_4.setObjectName("label_4")
342 342 self.verticalLayout_21.addWidget(self.label_4)
343 343 spacerItem6 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Minimum)
344 344 self.verticalLayout_21.addItem(spacerItem6)
345 345 self.lblSTATUS = QtGui.QLabel(self.tabStatus)
346 346 sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Preferred)
347 347 sizePolicy.setHorizontalStretch(0)
348 348 sizePolicy.setVerticalStretch(0)
349 349 sizePolicy.setHeightForWidth(self.lblSTATUS.sizePolicy().hasHeightForWidth())
350 350 self.lblSTATUS.setSizePolicy(sizePolicy)
351 351 self.lblSTATUS.setObjectName("lblSTATUS")
352 352 self.verticalLayout_21.addWidget(self.lblSTATUS)
353 353 self.lblINFO = QtGui.QLabel(self.tabStatus)
354 354 self.lblINFO.setObjectName("lblINFO")
355 355 self.verticalLayout_21.addWidget(self.lblINFO)
356 356 self.lblSET = QtGui.QLabel(self.tabStatus)
357 357 self.lblSET.setObjectName("lblSET")
358 358 self.verticalLayout_21.addWidget(self.lblSET)
359 359 self.horizontalLayout_18.addLayout(self.verticalLayout_21)
360 360 self.verticalLayout_22 = QtGui.QVBoxLayout()
361 361 self.verticalLayout_22.setObjectName("verticalLayout_22")
362 362 spacerItem7 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Minimum)
363 363 self.verticalLayout_22.addItem(spacerItem7)
364 364 self.lblDevA = QtGui.QLabel(self.tabStatus)
365 365 self.lblDevA.setAlignment(QtCore.Qt.AlignCenter)
366 366 self.lblDevA.setObjectName("lblDevA")
367 367 self.verticalLayout_22.addWidget(self.lblDevA)
368 368 self.txtBstatusA = QtGui.QLineEdit(self.tabStatus)
369 369 self.txtBstatusA.setReadOnly(True)
370 370 self.txtBstatusA.setObjectName("txtBstatusA")
371 371 self.verticalLayout_22.addWidget(self.txtBstatusA)
372 372 self.txtBdiscA = QtGui.QLineEdit(self.tabStatus)
373 373 self.txtBdiscA.setReadOnly(True)
374 374 self.txtBdiscA.setObjectName("txtBdiscA")
375 375 self.verticalLayout_22.addWidget(self.txtBdiscA)
376 376 self.txtBcopyA = QtGui.QLineEdit(self.tabStatus)
377 377 self.txtBcopyA.setReadOnly(True)
378 378 self.txtBcopyA.setObjectName("txtBcopyA")
379 379 self.verticalLayout_22.addWidget(self.txtBcopyA)
380 380 self.horizontalLayout_18.addLayout(self.verticalLayout_22)
381 381 self.verticalLayout_23 = QtGui.QVBoxLayout()
382 382 self.verticalLayout_23.setObjectName("verticalLayout_23")
383 383 spacerItem8 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Minimum)
384 384 self.verticalLayout_23.addItem(spacerItem8)
385 385 self.lblDevB = QtGui.QLabel(self.tabStatus)
386 386 self.lblDevB.setAlignment(QtCore.Qt.AlignCenter)
387 387 self.lblDevB.setObjectName("lblDevB")
388 388 self.verticalLayout_23.addWidget(self.lblDevB)
389 389 self.txtBstatusB = QtGui.QLineEdit(self.tabStatus)
390 390 self.txtBstatusB.setReadOnly(True)
391 391 self.txtBstatusB.setObjectName("txtBstatusB")
392 392 self.verticalLayout_23.addWidget(self.txtBstatusB)
393 393 self.txtBdiscB = QtGui.QLineEdit(self.tabStatus)
394 394 self.txtBdiscB.setReadOnly(True)
395 395 self.txtBdiscB.setObjectName("txtBdiscB")
396 396 self.verticalLayout_23.addWidget(self.txtBdiscB)
397 397 self.txtBcopyB = QtGui.QLineEdit(self.tabStatus)
398 398 self.txtBcopyB.setReadOnly(True)
399 399 self.txtBcopyB.setObjectName("txtBcopyB")
400 400 self.verticalLayout_23.addWidget(self.txtBcopyB)
401 401 self.horizontalLayout_18.addLayout(self.verticalLayout_23)
402 402 self.verticalLayout_24 = QtGui.QVBoxLayout()
403 403 self.verticalLayout_24.setObjectName("verticalLayout_24")
404 404 spacerItem9 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Minimum)
405 405 self.verticalLayout_24.addItem(spacerItem9)
406 406 self.lblDevC = QtGui.QLabel(self.tabStatus)
407 407 self.lblDevC.setAlignment(QtCore.Qt.AlignCenter)
408 408 self.lblDevC.setObjectName("lblDevC")
409 409 self.verticalLayout_24.addWidget(self.lblDevC)
410 410 self.txtBstatusC = QtGui.QLineEdit(self.tabStatus)
411 411 self.txtBstatusC.setReadOnly(True)
412 412 self.txtBstatusC.setObjectName("txtBstatusC")
413 413 self.verticalLayout_24.addWidget(self.txtBstatusC)
414 414 self.txtBdiscC = QtGui.QLineEdit(self.tabStatus)
415 415 self.txtBdiscC.setReadOnly(True)
416 416 self.txtBdiscC.setObjectName("txtBdiscC")
417 417 self.verticalLayout_24.addWidget(self.txtBdiscC)
418 418 self.txtBcopyC = QtGui.QLineEdit(self.tabStatus)
419 419 self.txtBcopyC.setReadOnly(True)
420 420 self.txtBcopyC.setObjectName("txtBcopyC")
421 421 self.verticalLayout_24.addWidget(self.txtBcopyC)
422 422 self.horizontalLayout_18.addLayout(self.verticalLayout_24)
423 423 self.verticalLayout_25 = QtGui.QVBoxLayout()
424 424 self.verticalLayout_25.setObjectName("verticalLayout_25")
425 425 spacerItem10 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Minimum)
426 426 self.verticalLayout_25.addItem(spacerItem10)
427 427 self.lblDevD = QtGui.QLabel(self.tabStatus)
428 428 self.lblDevD.setAlignment(QtCore.Qt.AlignCenter)
429 429 self.lblDevD.setObjectName("lblDevD")
430 430 self.verticalLayout_25.addWidget(self.lblDevD)
431 431 self.txtBstatusD = QtGui.QLineEdit(self.tabStatus)
432 432 self.txtBstatusD.setReadOnly(True)
433 433 self.txtBstatusD.setObjectName("txtBstatusD")
434 434 self.verticalLayout_25.addWidget(self.txtBstatusD)
435 435 self.txtBdiscD = QtGui.QLineEdit(self.tabStatus)
436 436 self.txtBdiscD.setReadOnly(True)
437 437 self.txtBdiscD.setObjectName("txtBdiscD")
438 438 self.verticalLayout_25.addWidget(self.txtBdiscD)
439 439 self.txtBcopyD = QtGui.QLineEdit(self.tabStatus)
440 440 self.txtBcopyD.setReadOnly(True)
441 441 self.txtBcopyD.setObjectName("txtBcopyD")
442 442 self.verticalLayout_25.addWidget(self.txtBcopyD)
443 443 self.horizontalLayout_18.addLayout(self.verticalLayout_25)
444 444 self.verticalLayout_4.addLayout(self.horizontalLayout_18)
445 445 spacerItem11 = QtGui.QSpacerItem(20, 20, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Fixed)
446 446 self.verticalLayout_4.addItem(spacerItem11)
447 447 self.horizontalLayout_16 = QtGui.QHBoxLayout()
448 448 self.horizontalLayout_16.setObjectName("horizontalLayout_16")
449 449 self.label = QtGui.QLabel(self.tabStatus)
450 450 self.label.setObjectName("label")
451 451 self.horizontalLayout_16.addWidget(self.label)
452 452 spacerItem12 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
453 453 self.horizontalLayout_16.addItem(spacerItem12)
454 454 self.verticalLayout_4.addLayout(self.horizontalLayout_16)
455 455 self.horizontalLayout_17 = QtGui.QHBoxLayout()
456 456 self.horizontalLayout_17.setObjectName("horizontalLayout_17")
457 457 spacerItem13 = QtGui.QSpacerItem(50, 20, QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Minimum)
458 458 self.horizontalLayout_17.addItem(spacerItem13)
459 459 self.txtTDpath = QtGui.QLineEdit(self.tabStatus)
460 460 self.txtTDpath.setEnabled(False)
461 self.txtTDpath.setReadOnly(True)
461 462 self.txtTDpath.setObjectName("txtTDpath")
462 463 self.horizontalLayout_17.addWidget(self.txtTDpath)
463 464 self.btnTDpath = QtGui.QPushButton(self.tabStatus)
464 465 self.btnTDpath.setEnabled(False)
465 466 self.btnTDpath.setObjectName("btnTDpath")
466 467 self.horizontalLayout_17.addWidget(self.btnTDpath)
467 468 self.verticalLayout_4.addLayout(self.horizontalLayout_17)
468 469 self.horizontalLayout_19 = QtGui.QHBoxLayout()
469 470 self.horizontalLayout_19.setObjectName("horizontalLayout_19")
470 471 self.verticalLayout_26 = QtGui.QVBoxLayout()
471 472 self.verticalLayout_26.setObjectName("verticalLayout_26")
472 473 spacerItem14 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Minimum)
473 474 self.verticalLayout_26.addItem(spacerItem14)
474 475 self.lblSTATUS_2 = QtGui.QLabel(self.tabStatus)
475 476 sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Preferred)
476 477 sizePolicy.setHorizontalStretch(0)
477 478 sizePolicy.setVerticalStretch(0)
478 479 sizePolicy.setHeightForWidth(self.lblSTATUS_2.sizePolicy().hasHeightForWidth())
479 480 self.lblSTATUS_2.setSizePolicy(sizePolicy)
480 481 self.lblSTATUS_2.setObjectName("lblSTATUS_2")
481 482 self.verticalLayout_26.addWidget(self.lblSTATUS_2)
482 483 self.horizontalLayout_19.addLayout(self.verticalLayout_26)
483 484 self.verticalLayout_27 = QtGui.QVBoxLayout()
484 485 self.verticalLayout_27.setObjectName("verticalLayout_27")
485 486 self.lblDevA_2 = QtGui.QLabel(self.tabStatus)
486 487 self.lblDevA_2.setAlignment(QtCore.Qt.AlignCenter)
487 488 self.lblDevA_2.setObjectName("lblDevA_2")
488 489 self.verticalLayout_27.addWidget(self.lblDevA_2)
489 490 self.txtCHstatusA = QtGui.QLineEdit(self.tabStatus)
490 491 self.txtCHstatusA.setReadOnly(True)
491 492 self.txtCHstatusA.setObjectName("txtCHstatusA")
492 493 self.verticalLayout_27.addWidget(self.txtCHstatusA)
493 494 self.horizontalLayout_19.addLayout(self.verticalLayout_27)
494 495 self.verticalLayout_28 = QtGui.QVBoxLayout()
495 496 self.verticalLayout_28.setObjectName("verticalLayout_28")
496 497 self.lblDevB_2 = QtGui.QLabel(self.tabStatus)
497 498 self.lblDevB_2.setAlignment(QtCore.Qt.AlignCenter)
498 499 self.lblDevB_2.setObjectName("lblDevB_2")
499 500 self.verticalLayout_28.addWidget(self.lblDevB_2)
500 501 self.txtCHstatusB = QtGui.QLineEdit(self.tabStatus)
501 502 self.txtCHstatusB.setReadOnly(True)
502 503 self.txtCHstatusB.setObjectName("txtCHstatusB")
503 504 self.verticalLayout_28.addWidget(self.txtCHstatusB)
504 505 self.horizontalLayout_19.addLayout(self.verticalLayout_28)
505 506 self.verticalLayout_29 = QtGui.QVBoxLayout()
506 507 self.verticalLayout_29.setObjectName("verticalLayout_29")
507 508 self.lblDevC_2 = QtGui.QLabel(self.tabStatus)
508 509 self.lblDevC_2.setAlignment(QtCore.Qt.AlignCenter)
509 510 self.lblDevC_2.setObjectName("lblDevC_2")
510 511 self.verticalLayout_29.addWidget(self.lblDevC_2)
511 512 self.txtCHstatusC = QtGui.QLineEdit(self.tabStatus)
512 513 self.txtCHstatusC.setReadOnly(True)
513 514 self.txtCHstatusC.setObjectName("txtCHstatusC")
514 515 self.verticalLayout_29.addWidget(self.txtCHstatusC)
515 516 self.horizontalLayout_19.addLayout(self.verticalLayout_29)
516 517 self.verticalLayout_30 = QtGui.QVBoxLayout()
517 518 self.verticalLayout_30.setObjectName("verticalLayout_30")
518 519 self.lblDevD_2 = QtGui.QLabel(self.tabStatus)
519 520 self.lblDevD_2.setAlignment(QtCore.Qt.AlignCenter)
520 521 self.lblDevD_2.setObjectName("lblDevD_2")
521 522 self.verticalLayout_30.addWidget(self.lblDevD_2)
522 523 self.txtCHstatusD = QtGui.QLineEdit(self.tabStatus)
523 524 self.txtCHstatusD.setReadOnly(True)
524 525 self.txtCHstatusD.setObjectName("txtCHstatusD")
525 526 self.verticalLayout_30.addWidget(self.txtCHstatusD)
526 527 self.horizontalLayout_19.addLayout(self.verticalLayout_30)
527 528 self.verticalLayout_4.addLayout(self.horizontalLayout_19)
528 529 self.horizontalLayout_20 = QtGui.QHBoxLayout()
529 530 self.horizontalLayout_20.setObjectName("horizontalLayout_20")
530 531 spacerItem15 = QtGui.QSpacerItem(50, 20, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Minimum)
531 532 self.horizontalLayout_20.addItem(spacerItem15)
532 533 self.chkCheck = QtGui.QCheckBox(self.tabStatus)
533 534 self.chkCheck.setEnabled(True)
534 535 self.chkCheck.setObjectName("chkCheck")
535 536 self.horizontalLayout_20.addWidget(self.chkCheck)
536 537 spacerItem16 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
537 538 self.horizontalLayout_20.addItem(spacerItem16)
538 539 self.btnCHstart = QtGui.QPushButton(self.tabStatus)
539 540 self.btnCHstart.setEnabled(False)
540 541 self.btnCHstart.setObjectName("btnCHstart")
541 542 self.horizontalLayout_20.addWidget(self.btnCHstart)
542 543 self.verticalLayout_4.addLayout(self.horizontalLayout_20)
543 544 self.tabWidget.addTab(self.tabStatus, "")
544 545 self.verticalLayout.addWidget(self.tabWidget)
545 546 self.txtInfo = QtGui.QTextEdit(self.centralwidget)
546 547 self.txtInfo.setReadOnly(True)
547 548 self.txtInfo.setObjectName("txtInfo")
548 549 self.verticalLayout.addWidget(self.txtInfo)
549 550 self.txtProgress = QtGui.QLineEdit(self.centralwidget)
550 551 sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Fixed)
551 552 sizePolicy.setHorizontalStretch(0)
552 553 sizePolicy.setVerticalStretch(0)
553 554 sizePolicy.setHeightForWidth(self.txtProgress.sizePolicy().hasHeightForWidth())
554 555 self.txtProgress.setSizePolicy(sizePolicy)
555 556 self.txtProgress.setObjectName("txtProgress")
556 557 self.verticalLayout.addWidget(self.txtProgress)
557 558 self.horizontalLayout_2 = QtGui.QHBoxLayout()
558 559 self.horizontalLayout_2.setSizeConstraint(QtGui.QLayout.SetDefaultConstraint)
559 560 self.horizontalLayout_2.setObjectName("horizontalLayout_2")
560 561 self.btnGbkp = QtGui.QPushButton(self.centralwidget)
561 562 self.btnGbkp.setEnabled(False)
562 563 self.btnGbkp.setObjectName("btnGbkp")
563 564 self.horizontalLayout_2.addWidget(self.btnGbkp)
564 565 self.btnRestart = QtGui.QPushButton(self.centralwidget)
565 566 self.btnRestart.setEnabled(False)
566 567 self.btnRestart.setObjectName("btnRestart")
567 568 self.horizontalLayout_2.addWidget(self.btnRestart)
568 569 self.btnStartburn = QtGui.QPushButton(self.centralwidget)
569 570 self.btnStartburn.setEnabled(False)
570 571 self.btnStartburn.setObjectName("btnStartburn")
571 572 self.horizontalLayout_2.addWidget(self.btnStartburn)
572 573 self.btnStopburn = QtGui.QPushButton(self.centralwidget)
573 574 self.btnStopburn.setEnabled(False)
574 575 self.btnStopburn.setObjectName("btnStopburn")
575 576 self.horizontalLayout_2.addWidget(self.btnStopburn)
576 577 self.verticalLayout.addLayout(self.horizontalLayout_2)
577 578 MainWindow.setCentralWidget(self.centralwidget)
578 579 self.menubar = QtGui.QMenuBar(MainWindow)
579 self.menubar.setGeometry(QtCore.QRect(0, 0, 621, 21))
580 self.menubar.setGeometry(QtCore.QRect(0, 0, 824, 25))
580 581 self.menubar.setObjectName("menubar")
581 582 self.menuFile = QtGui.QMenu(self.menubar)
582 583 self.menuFile.setObjectName("menuFile")
583 584 self.menuHelp = QtGui.QMenu(self.menubar)
584 585 self.menuHelp.setObjectName("menuHelp")
585 586 self.menuParameters = QtGui.QMenu(self.menubar)
586 587 self.menuParameters.setObjectName("menuParameters")
587 588 MainWindow.setMenuBar(self.menubar)
588 589 self.statusbar = QtGui.QStatusBar(MainWindow)
589 590 self.statusbar.setObjectName("statusbar")
590 591 MainWindow.setStatusBar(self.statusbar)
591 592 self.actionChange_Parameters = QtGui.QAction(MainWindow)
592 593 self.actionChange_Parameters.setEnabled(False)
593 594 self.actionChange_Parameters.setObjectName("actionChange_Parameters")
594 595 self.actionQuit = QtGui.QAction(MainWindow)
595 596 self.actionQuit.setObjectName("actionQuit")
596 597 self.actionAbout = QtGui.QAction(MainWindow)
597 598 self.actionAbout.setObjectName("actionAbout")
598 599 self.menuFile.addAction(self.actionQuit)
599 600 self.menuHelp.addAction(self.actionAbout)
600 601 self.menuParameters.addAction(self.actionChange_Parameters)
601 602 self.menubar.addAction(self.menuFile.menuAction())
602 603 self.menubar.addAction(self.menuParameters.menuAction())
603 604 self.menubar.addAction(self.menuHelp.menuAction())
604 605
605 606 self.retranslateUi(MainWindow)
606 self.tabWidget.setCurrentIndex(0)
607 self.tabWidget.setCurrentIndex(2)
607 608 self.lstDcapacity.setCurrentIndex(2)
608 609 QtCore.QObject.connect(self.actionQuit, QtCore.SIGNAL("triggered()"), MainWindow.close)
609 610 QtCore.QObject.connect(self.chkCheck, QtCore.SIGNAL("toggled(bool)"), self.txtTDpath.setEnabled)
610 611 QtCore.QObject.connect(self.chkCheck, QtCore.SIGNAL("toggled(bool)"), self.btnTDpath.setEnabled)
611 612 QtCore.QObject.connect(self.chkCheck, QtCore.SIGNAL("toggled(bool)"), self.btnCHstart.setEnabled)
612 613 QtCore.QObject.connect(self.chkDevD, QtCore.SIGNAL("toggled(bool)"), self.grpDevD.setEnabled)
613 614 QtCore.QObject.connect(self.chkDevB, QtCore.SIGNAL("toggled(bool)"), self.grpDevB.setEnabled)
614 615 QtCore.QObject.connect(self.chkDevC, QtCore.SIGNAL("toggled(bool)"), self.grpDevC.setEnabled)
615 616 QtCore.QObject.connect(self.chkDevA, QtCore.SIGNAL("toggled(bool)"), self.grpDevA.setEnabled)
616 617 QtCore.QMetaObject.connectSlotsByName(MainWindow)
617 618 MainWindow.setTabOrder(self.txtDpath, self.btnDpath)
618 619 MainWindow.setTabOrder(self.btnDpath, self.txtRpath)
619 620 MainWindow.setTabOrder(self.txtRpath, self.btnRpath)
620 621 MainWindow.setTabOrder(self.btnRpath, self.lstDtype)
621 622 MainWindow.setTabOrder(self.lstDtype, self.txtDtype)
622 623 MainWindow.setTabOrder(self.txtDtype, self.txtElabel)
623 624 MainWindow.setTabOrder(self.txtElabel, self.lstStartDay)
624 625 MainWindow.setTabOrder(self.lstStartDay, self.lstStopDay)
625 626 MainWindow.setTabOrder(self.lstStopDay, self.lstDcapacity)
626 627 MainWindow.setTabOrder(self.lstDcapacity, self.tabWidget)
627 628 MainWindow.setTabOrder(self.tabWidget, self.btnGbkp)
628 629 MainWindow.setTabOrder(self.btnGbkp, self.btnRestart)
629 630 MainWindow.setTabOrder(self.btnRestart, self.btnStartburn)
630 631 MainWindow.setTabOrder(self.btnStartburn, self.btnStopburn)
631 632
632 633 def retranslateUi(self, MainWindow):
633 634 MainWindow.setWindowTitle(QtGui.QApplication.translate("MainWindow", "JRO BACKUP MANAGER", None, QtGui.QApplication.UnicodeUTF8))
634 635 self.btnDpath.setText(QtGui.QApplication.translate("MainWindow", "Data Path", None, QtGui.QApplication.UnicodeUTF8))
635 636 self.btnRpath.setText(QtGui.QApplication.translate("MainWindow", "Resource Path", None, QtGui.QApplication.UnicodeUTF8))
636 637 self.lblDtype.setText(QtGui.QApplication.translate("MainWindow", "Data Type", None, QtGui.QApplication.UnicodeUTF8))
637 638 self.lstDtype.setItemText(0, QtGui.QApplication.translate("MainWindow", "Raw Data", None, QtGui.QApplication.UnicodeUTF8))
638 639 self.lstDtype.setItemText(1, QtGui.QApplication.translate("MainWindow", "Process Data", None, QtGui.QApplication.UnicodeUTF8))
639 640 self.lstDtype.setItemText(2, QtGui.QApplication.translate("MainWindow", "BLTR Data", None, QtGui.QApplication.UnicodeUTF8))
640 641 self.lstDtype.setItemText(3, QtGui.QApplication.translate("MainWindow", "Other", None, QtGui.QApplication.UnicodeUTF8))
641 642 self.txtDtype.setText(QtGui.QApplication.translate("MainWindow", "r", None, QtGui.QApplication.UnicodeUTF8))
642 643 self.lblElabel.setText(QtGui.QApplication.translate("MainWindow", "Exp. Label at device", None, QtGui.QApplication.UnicodeUTF8))
643 644 self.lblCopys.setText(QtGui.QApplication.translate("MainWindow", "Copys", None, QtGui.QApplication.UnicodeUTF8))
644 645 self.lblStartDay.setText(QtGui.QApplication.translate("MainWindow", "Start Day:", None, QtGui.QApplication.UnicodeUTF8))
645 646 self.lblStopDay.setText(QtGui.QApplication.translate("MainWindow", "Stop Day:", None, QtGui.QApplication.UnicodeUTF8))
646 647 self.tabWidget.setTabText(self.tabWidget.indexOf(self.tabParameters), QtGui.QApplication.translate("MainWindow", "Parameters", None, QtGui.QApplication.UnicodeUTF8))
647 648 self.chkDevA.setText(QtGui.QApplication.translate("MainWindow", "Dev A", None, QtGui.QApplication.UnicodeUTF8))
648 649 self.txtBmodeA.setText(QtGui.QApplication.translate("MainWindow", "-sao", None, QtGui.QApplication.UnicodeUTF8))
649 650 self.btnTdevA.setText(QtGui.QApplication.translate("MainWindow", "Test DevA", None, QtGui.QApplication.UnicodeUTF8))
650 651 self.chkDevB.setText(QtGui.QApplication.translate("MainWindow", "Dev B", None, QtGui.QApplication.UnicodeUTF8))
651 652 self.txtBmodeB.setText(QtGui.QApplication.translate("MainWindow", "-sao", None, QtGui.QApplication.UnicodeUTF8))
652 653 self.btnTdevB.setText(QtGui.QApplication.translate("MainWindow", "Test DevB", None, QtGui.QApplication.UnicodeUTF8))
653 654 self.chkDevC.setText(QtGui.QApplication.translate("MainWindow", "Dev C", None, QtGui.QApplication.UnicodeUTF8))
654 655 self.txtBmodeC.setText(QtGui.QApplication.translate("MainWindow", "-sao", None, QtGui.QApplication.UnicodeUTF8))
655 656 self.btnTdevC.setText(QtGui.QApplication.translate("MainWindow", "Test DevC", None, QtGui.QApplication.UnicodeUTF8))
656 657 self.chkDevD.setText(QtGui.QApplication.translate("MainWindow", "Dev D", None, QtGui.QApplication.UnicodeUTF8))
657 658 self.txtBmodeD.setText(QtGui.QApplication.translate("MainWindow", "-sao", None, QtGui.QApplication.UnicodeUTF8))
658 659 self.btnTdevD.setText(QtGui.QApplication.translate("MainWindow", "Test DevD", None, QtGui.QApplication.UnicodeUTF8))
659 660 self.lblDevice.setText(QtGui.QApplication.translate("MainWindow", "Device", None, QtGui.QApplication.UnicodeUTF8))
660 661 self.lblBspeed.setText(QtGui.QApplication.translate("MainWindow", "Burn Speed", None, QtGui.QApplication.UnicodeUTF8))
661 662 self.lblBmode.setText(QtGui.QApplication.translate("MainWindow", "Burn Mode", None, QtGui.QApplication.UnicodeUTF8))
662 663 self.lblDcapacity.setText(QtGui.QApplication.translate("MainWindow", "Device Capacity", None, QtGui.QApplication.UnicodeUTF8))
663 664 self.lstDcapacity.setItemText(0, QtGui.QApplication.translate("MainWindow", "BluRay [25.0 GB]", None, QtGui.QApplication.UnicodeUTF8))
664 665 self.lstDcapacity.setItemText(1, QtGui.QApplication.translate("MainWindow", "DVD2 [8.5 GB]", None, QtGui.QApplication.UnicodeUTF8))
665 666 self.lstDcapacity.setItemText(2, QtGui.QApplication.translate("MainWindow", "DVD1 [4.7 GB]", None, QtGui.QApplication.UnicodeUTF8))
666 667 self.lstDcapacity.setItemText(3, QtGui.QApplication.translate("MainWindow", "CD [0.7 GB]", None, QtGui.QApplication.UnicodeUTF8))
667 668 self.lstDcapacity.setItemText(4, QtGui.QApplication.translate("MainWindow", "Other [? MB]", None, QtGui.QApplication.UnicodeUTF8))
668 669 self.lblPSgraphic.setText(QtGui.QApplication.translate("MainWindow", "PS Graphic", None, QtGui.QApplication.UnicodeUTF8))
669 670 self.tabWidget.setTabText(self.tabWidget.indexOf(self.tabDconfig), QtGui.QApplication.translate("MainWindow", "Device Config.", None, QtGui.QApplication.UnicodeUTF8))
670 671 self.label_4.setText(QtGui.QApplication.translate("MainWindow", "BURN", None, QtGui.QApplication.UnicodeUTF8))
671 672 self.lblSTATUS.setText(QtGui.QApplication.translate("MainWindow", "STATUS", None, QtGui.QApplication.UnicodeUTF8))
672 673 self.lblINFO.setText(QtGui.QApplication.translate("MainWindow", "DISC", None, QtGui.QApplication.UnicodeUTF8))
673 674 self.lblSET.setText(QtGui.QApplication.translate("MainWindow", "COPY", None, QtGui.QApplication.UnicodeUTF8))
674 675 self.lblDevA.setText(QtGui.QApplication.translate("MainWindow", "DEV A", None, QtGui.QApplication.UnicodeUTF8))
675 676 self.lblDevB.setText(QtGui.QApplication.translate("MainWindow", "DEV B", None, QtGui.QApplication.UnicodeUTF8))
676 677 self.lblDevC.setText(QtGui.QApplication.translate("MainWindow", "DEV C", None, QtGui.QApplication.UnicodeUTF8))
677 678 self.lblDevD.setText(QtGui.QApplication.translate("MainWindow", "DEV D", None, QtGui.QApplication.UnicodeUTF8))
678 679 self.label.setText(QtGui.QApplication.translate("MainWindow", "CHECK", None, QtGui.QApplication.UnicodeUTF8))
679 680 self.btnTDpath.setText(QtGui.QApplication.translate("MainWindow", "Temp Data Path", None, QtGui.QApplication.UnicodeUTF8))
680 681 self.lblSTATUS_2.setText(QtGui.QApplication.translate("MainWindow", "STATUS", None, QtGui.QApplication.UnicodeUTF8))
681 682 self.lblDevA_2.setText(QtGui.QApplication.translate("MainWindow", "DEV A", None, QtGui.QApplication.UnicodeUTF8))
682 683 self.lblDevB_2.setText(QtGui.QApplication.translate("MainWindow", "DEV B", None, QtGui.QApplication.UnicodeUTF8))
683 684 self.lblDevC_2.setText(QtGui.QApplication.translate("MainWindow", "DEV C", None, QtGui.QApplication.UnicodeUTF8))
684 685 self.lblDevD_2.setText(QtGui.QApplication.translate("MainWindow", "DEV D", None, QtGui.QApplication.UnicodeUTF8))
685 686 self.chkCheck.setText(QtGui.QApplication.translate("MainWindow", "MANUAL", None, QtGui.QApplication.UnicodeUTF8))
686 687 self.btnCHstart.setText(QtGui.QApplication.translate("MainWindow", "START", None, QtGui.QApplication.UnicodeUTF8))
687 688 self.tabWidget.setTabText(self.tabWidget.indexOf(self.tabStatus), QtGui.QApplication.translate("MainWindow", "Status Burn", None, QtGui.QApplication.UnicodeUTF8))
688 689 self.btnGbkp.setText(QtGui.QApplication.translate("MainWindow", "Generate Bkp", None, QtGui.QApplication.UnicodeUTF8))
689 690 self.btnRestart.setText(QtGui.QApplication.translate("MainWindow", "Restart", None, QtGui.QApplication.UnicodeUTF8))
690 691 self.btnStartburn.setText(QtGui.QApplication.translate("MainWindow", "Start Burn", None, QtGui.QApplication.UnicodeUTF8))
691 692 self.btnStopburn.setText(QtGui.QApplication.translate("MainWindow", "Stop Burn", None, QtGui.QApplication.UnicodeUTF8))
692 693 self.menuFile.setTitle(QtGui.QApplication.translate("MainWindow", "File", None, QtGui.QApplication.UnicodeUTF8))
693 694 self.menuHelp.setTitle(QtGui.QApplication.translate("MainWindow", "Help", None, QtGui.QApplication.UnicodeUTF8))
694 695 self.menuParameters.setTitle(QtGui.QApplication.translate("MainWindow", "Parameters", None, QtGui.QApplication.UnicodeUTF8))
695 696 self.actionChange_Parameters.setText(QtGui.QApplication.translate("MainWindow", "Change Parameters", None, QtGui.QApplication.UnicodeUTF8))
696 697 self.actionQuit.setText(QtGui.QApplication.translate("MainWindow", "Quit", None, QtGui.QApplication.UnicodeUTF8))
697 698 self.actionAbout.setText(QtGui.QApplication.translate("MainWindow", "About", None, QtGui.QApplication.UnicodeUTF8))
698 699
699 700
700 701 if __name__ == "__main__":
701 702 import sys
702 703 app = QtGui.QApplication(sys.argv)
703 704 MainWindow = QtGui.QMainWindow()
704 705 ui = Ui_MainWindow()
705 706 ui.setupUi(MainWindow)
706 707 MainWindow.show()
707 708 sys.exit(app.exec_())
708 709
@@ -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: Tue May 25 00:54:30 2010
6 # by: PyQt4 UI code generator 4.7.2
5 # Created: Wed May 26 16:31:58 2010
6 # by: PyQt4 UI code generator 4.6
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