##// END OF EJS Templates
***
ralonso -
r80:81
parent child
Show More
@@ -1,634 +1,634
1 # -*- coding: utf-8 -*-
1 # -*- coding: utf-8 -*-
2
2
3 """
3 """
4 Module implementing MainWindow.
4 Module implementing MainWindow.
5 """
5 """
6
6
7 from PyQt4.QtGui import QMainWindow
7 from PyQt4.QtGui import QMainWindow
8 from PyQt4.QtCore import pyqtSignature
8 from PyQt4.QtCore import pyqtSignature
9 from PyQt4 import QtCore
9 from PyQt4 import QtCore
10 from Ui_MainWindow import Ui_MainWindow
10 from Ui_MainWindow import Ui_MainWindow
11 from Ui_Parameters import Ui_Parameters
11 from Ui_Parameters import Ui_Parameters
12 from Ui_About import Ui_About
12 from Ui_About import Ui_About
13 from PyQt4 import QtGui
13 from PyQt4 import QtGui
14 from subprocess import *
14 from subprocess import *
15 import sys
15 import sys
16 import os
16 import os
17 #import subprocess
17 #import subprocess
18 import time
18 import time
19 import commands
19 import commands
20 from functions import functions
20 from functions import functions
21 from functions import functions2
21 from functions import functions2
22
22
23 class MainWindow(QMainWindow, Ui_MainWindow):
23 class MainWindow(QMainWindow, Ui_MainWindow):
24 """
24 """
25 Class documentation goes here.
25 Class documentation goes here.
26 """
26 """
27
27
28 def __init__(self, parent = None):
28 def __init__(self, parent = None):
29 QMainWindow.__init__(self, parent)
29 QMainWindow.__init__(self, parent)
30 self.setupUi(self)
30 self.setupUi(self)
31 self.setupUi2()
31 self.setupUi2()
32
32
33 def setupUi2(self):
33 def setupUi2(self):
34
34
35
35
36 self.var_real_principal = False
36 self.var_real_principal = True
37
37
38 self.var_real_detect_devices = False
38 self.var_real_detect_devices = False
39
39
40 self.var_real_iso = True
40 self.var_real_iso = True
41 self.var_real_burn = False
41 self.var_real_burn = False
42 self.var_real_check = False
42 self.var_real_check = False
43 self.var_real_eject = False
43 self.var_real_eject = False
44
44
45 self.var_real_show_cmd = True
45 self.var_real_show_cmd = True
46
46
47 if self.var_real_detect_devices == True:
47 if self.var_real_detect_devices == True:
48 # Reconocimiento de los dispositivos de grabacion
48 # Reconocimiento de los dispositivos de grabacion
49 functions2.detect_devices(self)
49 functions2.detect_devices(self)
50 else:
50 else:
51 functions2.set_devices_test(self)
51 functions2.set_devices_test(self)
52
52
53 #Inicialiazacion de variables
53 #Inicialiazacion de variables
54 self.var_Discs = 0 #Numero de discos del proyecto
54 self.var_Discs = 0 #Numero de discos del proyecto
55 self.var_Copys = 0 #Numero de copias
55 self.var_Copys = 0 #Numero de copias
56 self.var_disc_n = 0 # disco actual
56 self.var_disc_n = 0 # disco actual
57 self.var_copy_n = 0 # copia actual
57 self.var_copy_n = 0 # copia actual
58 self.var_burned_discs = 0 #numero de discos ya grabados
58 self.var_burned_discs = 0 #numero de discos ya grabados
59
59
60 self.bool_first_iso = False
60 self.bool_first_iso = False
61 self.var_step = 0 # numero de paso en el proceso
61 self.var_step = 0 # numero de paso en el proceso
62 self.bool_state_burning = False #si es True se puede grabar
62 self.bool_state_burning = False #si es True se puede grabar
63 self.blank_discs = False # Si es true significa que se acaban de ingresar discos en blanco
63 self.blank_discs = False # Si es true significa que se acaban de ingresar discos en blanco
64
64
65 self.var_list=[] # Lista de DOYs
65 self.var_list=[] # Lista de DOYs
66 self.var_sublist=[] # Sub-lista de DOYs seleccionados
66 self.var_sublist=[] # Sub-lista de DOYs seleccionados
67 self.var_devices=[] #Lista de dispositivos seleccionados
67 self.var_devices=[] #Lista de dispositivos seleccionados
68
68
69 #Revisa si existe el archivo de confirguracion y lo carga
69 #Revisa si existe el archivo de confirguracion y lo carga
70 if os.path.isfile("parameters.conf"):
70 if os.path.isfile("parameters.conf"):
71 functions2.get_parameters_conf(self)
71 functions2.get_parameters_conf(self)
72 self.bool_first_iso = True
72 self.bool_first_iso = True
73 self.txtInfo.append("Parameters were loaded from configuration file")
73 self.txtInfo.append("Parameters were loaded from configuration file")
74 self.txtInfo.append("Total number of discs for recording: "+str(self.var_Discs * self.var_Copys))
74 self.txtInfo.append("Total number of discs for recording: "+str(self.var_Discs * self.var_Copys))
75
75
76 elif self.var_real_principal == False:
76 elif self.var_real_principal == False:
77 functions2.set_parameters_test(self) #Establece ciertos parametros, para pruebas
77 functions2.set_parameters_test(self) #Establece ciertos parametros, para pruebas
78
78
79 functions2.set_vars(self) #Carga las variables de la clase con los parametros seleccionados
79 functions2.set_vars(self) #Carga las variables de la clase con los parametros seleccionados
80
80
81 self.statusDpath = functions.dir_exists(self.var_Dpath, self)
81 self.statusDpath = functions.dir_exists(self.var_Dpath, self)
82 self.statusRpath = functions.dir_exists(self.var_Rpath, self)
82 self.statusRpath = functions.dir_exists(self.var_Rpath, self)
83 functions.load_days(self)
83 functions.load_days(self)
84
84
85 if os.path.isfile("parameters.conf"):
85 if os.path.isfile("parameters.conf"):
86 functions2.enabled_items1(True, self) #Se bloquean los parametros de configuracion
86 functions2.enabled_items1(True, self) #Se bloquean los parametros de configuracion
87
87
88 if os.path.isfile("burning.conf"):
88 if os.path.isfile("burning.conf"):
89 functions2.get_burning_conf(self)
89 functions2.get_burning_conf(self)
90 self.txtInfo.append("Current disc: "+str(self.var_disc_n))
90 self.txtInfo.append("Current disc: "+str(self.var_disc_n))
91 self.txtInfo.append("Current copy: "+str(self.var_copy_n))
91 self.txtInfo.append("Current copy: "+str(self.var_copy_n))
92 self.txtInfo.append("Burned discs: "+str(self.var_burned_discs))
92 self.txtInfo.append("Burned discs: "+str(self.var_burned_discs))
93 self.btnStartburn.setText("Continue")
93 self.btnStartburn.setText("Continue")
94 self.actionChange_Parameters.setEnabled(False)
94 self.actionChange_Parameters.setEnabled(False)
95
95
96 self.connect(self.actionChange_Parameters, QtCore.SIGNAL("triggered()"), self.changeParameters)
96 self.connect(self.actionChange_Parameters, QtCore.SIGNAL("triggered()"), self.changeParameters)
97 self.connect(self.actionAbout, QtCore.SIGNAL("triggered()"), self.about)
97 self.connect(self.actionAbout, QtCore.SIGNAL("triggered()"), self.about)
98
98
99 self.process_iso = QtCore.QProcess()
99 self.process_iso = QtCore.QProcess()
100 self.connect(self.process_iso, QtCore.SIGNAL('readyReadStandardOutput()'), self.readOuput_iso)
100 self.connect(self.process_iso, QtCore.SIGNAL('readyReadStandardOutput()'), self.readOuput_iso)
101 self.connect(self.process_iso, QtCore.SIGNAL('readyReadStandardError()'), self.readError_iso)
101 self.connect(self.process_iso, QtCore.SIGNAL('readyReadStandardError()'), self.readError_iso)
102 self.connect(self.process_iso, QtCore.SIGNAL('finished(int,QProcess::ExitStatus)'), self.finished_iso)
102 self.connect(self.process_iso, QtCore.SIGNAL('finished(int,QProcess::ExitStatus)'), self.finished_iso)
103
103
104 self.process_burn = QtCore.QProcess()
104 self.process_burn = QtCore.QProcess()
105 self.connect(self.process_burn, QtCore.SIGNAL('readyReadStandardOutput()'), self.readOuput_burn)
105 self.connect(self.process_burn, QtCore.SIGNAL('readyReadStandardOutput()'), self.readOuput_burn)
106 self.connect(self.process_burn, QtCore.SIGNAL('readyReadStandardError()'), self.readError_burn)
106 self.connect(self.process_burn, QtCore.SIGNAL('readyReadStandardError()'), self.readError_burn)
107 self.connect(self.process_burn, QtCore.SIGNAL('finished(int,QProcess::ExitStatus)'), self.finished_burn)
107 self.connect(self.process_burn, QtCore.SIGNAL('finished(int,QProcess::ExitStatus)'), self.finished_burn)
108
108
109 self.process_check = QtCore.QProcess()
109 self.process_check = QtCore.QProcess()
110 self.connect(self.process_check, QtCore.SIGNAL('readyReadStandardOutput()'), self.readOuput_check)
110 self.connect(self.process_check, QtCore.SIGNAL('readyReadStandardOutput()'), self.readOuput_check)
111 self.connect(self.process_check, QtCore.SIGNAL('readyReadStandardError()'), self.readError_check)
111 self.connect(self.process_check, QtCore.SIGNAL('readyReadStandardError()'), self.readError_check)
112 self.connect(self.process_check, QtCore.SIGNAL('finished(int,QProcess::ExitStatus)'), self.finished_check)
112 self.connect(self.process_check, QtCore.SIGNAL('finished(int,QProcess::ExitStatus)'), self.finished_check)
113
113
114
114
115 def changeParameters(self):
115 def changeParameters(self):
116 dlg=QtGui.QDialog()
116 dlg=QtGui.QDialog()
117 dlgui=Ui_Parameters()
117 dlgui=Ui_Parameters()
118 dlgui.setupUi(dlg)
118 dlgui.setupUi(dlg)
119 if (dlg.exec_() == QtGui.QDialog.Accepted):
119 if (dlg.exec_() == QtGui.QDialog.Accepted):
120 if dlgui.txtDisc.value() > self.var_Discs or dlgui.txtCopy.value() > dlgui.txtNcopys.value():
120 if dlgui.txtDisc.value() > self.var_Discs or dlgui.txtCopy.value() > dlgui.txtNcopys.value():
121 self.txtInfo.append("Wrong parameters")
121 self.txtInfo.append("Wrong parameters")
122 else:
122 else:
123 self.var_Copys = dlgui.txtNcopys.value()
123 self.var_Copys = dlgui.txtNcopys.value()
124 self.var_disc_n = dlgui.txtDisc.value()
124 self.var_disc_n = dlgui.txtDisc.value()
125 self.var_copy_n = dlgui.txtCopy.value()
125 self.var_copy_n = dlgui.txtCopy.value()
126 self.txtInfo.append("Changed parameters")
126 self.txtInfo.append("Changed parameters")
127 self.var_burned_discs = ( ( (self.var_disc_n - 1) * self.var_Copys) + self.var_copy_n -1 )
127 self.var_burned_discs = ( ( (self.var_disc_n - 1) * self.var_Copys) + self.var_copy_n -1 )
128 self.bool_first_iso = True
128 self.bool_first_iso = True
129 self.txtInfo.append("Current disc: "+str(self.var_disc_n))
129 self.txtInfo.append("Current disc: "+str(self.var_disc_n))
130 self.txtInfo.append("Current copy: "+str(self.var_copy_n))
130 self.txtInfo.append("Current copy: "+str(self.var_copy_n))
131 self.txtInfo.append("Nro Copys: "+str(self.var_Copys))
131 self.txtInfo.append("Nro Copys: "+str(self.var_Copys))
132 functions2.make_parameters_conf(self)
132 functions2.make_parameters_conf(self)
133 self.txtCopys.setValue(self.var_Copys) #Actualizo mananualmente el valor Copys
133 self.txtCopys.setValue(self.var_Copys) #Actualizo mananualmente el valor Copys
134
134
135
135
136
136
137 def about(self):
137 def about(self):
138 dlg_about=QtGui.QDialog()
138 dlg_about=QtGui.QDialog()
139 dlgui_about=Ui_About()
139 dlgui_about=Ui_About()
140 dlgui_about.setupUi(dlg_about)
140 dlgui_about.setupUi(dlg_about)
141 dlg_about.exec_()
141 dlg_about.exec_()
142
142
143
143
144 #==============================================================================
144 #==============================================================================
145 # Manejo de los eventos
145 # Manejo de los eventos
146 #==============================================================================
146 #==============================================================================
147
147
148 #----------------------------------------------------- Obtencion de la ruta de los datos ---------------------------------------------------------------
148 #----------------------------------------------------- Obtencion de la ruta de los datos ---------------------------------------------------------------
149
149
150 @pyqtSignature("")
150 @pyqtSignature("")
151 def on_btnDpath_clicked(self):
151 def on_btnDpath_clicked(self):
152 """
152 """
153 Permite seleccionar graficamente el direcorio de los datos a grabar
153 Permite seleccionar graficamente el direcorio de los datos a grabar
154 """
154 """
155 self.var_Dpath= str(QtGui.QFileDialog.getExistingDirectory(self, 'Open Directory', './', QtGui.QFileDialog.ShowDirsOnly))
155 self.var_Dpath= str(QtGui.QFileDialog.getExistingDirectory(self, 'Open Directory', './', QtGui.QFileDialog.ShowDirsOnly))
156 self.txtDpath.setText(self.var_Dpath)
156 self.txtDpath.setText(self.var_Dpath)
157 self.statusDpath = functions.dir_exists(self.var_Dpath, self)
157 self.statusDpath = functions.dir_exists(self.var_Dpath, self)
158 functions.load_days(self)
158 functions.load_days(self)
159
159
160
160
161 @pyqtSignature("")
161 @pyqtSignature("")
162 def on_txtDpath_editingFinished(self):
162 def on_txtDpath_editingFinished(self):
163 """
163 """
164 Carga la ruta editada y verifica que sea correcta y carga la lista de dias
164 Carga la ruta editada y verifica que sea correcta y carga la lista de dias
165 """
165 """
166 self.var_Dpath=str(self.txtDpath.text()) #Se carga la variable con la ruta recien editada
166 self.var_Dpath=str(self.txtDpath.text()) #Se carga la variable con la ruta recien editada
167 self.statusDpath = functions.dir_exists(self.var_Dpath, self)
167 self.statusDpath = functions.dir_exists(self.var_Dpath, self)
168 functions.load_days(self)
168 functions.load_days(self)
169
169
170
170
171 #----------------------------------------------------- Obtencion de las ruta del proyecto ---------------------------------------------------------------
171 #----------------------------------------------------- Obtencion de las ruta del proyecto ---------------------------------------------------------------
172
172
173 @pyqtSignature("")
173 @pyqtSignature("")
174 def on_btnRpath_clicked(self):
174 def on_btnRpath_clicked(self):
175 """
175 """
176 Permite seleccionar graficamente el direcorio del proyecto
176 Permite seleccionar graficamente el direcorio del proyecto
177 """
177 """
178 self.var_Rpath = str(QtGui.QFileDialog.getExistingDirectory(self, 'Open Directory', './', QtGui.QFileDialog.ShowDirsOnly))
178 self.var_Rpath = str(QtGui.QFileDialog.getExistingDirectory(self, 'Open Directory', './', QtGui.QFileDialog.ShowDirsOnly))
179 self.txtRpath.setText(self.var_Rpath)
179 self.txtRpath.setText(self.var_Rpath)
180 self.statusRpath = functions.dir_exists(self.var_Rpath, self)
180 self.statusRpath = functions.dir_exists(self.var_Rpath, self)
181
181
182
182
183 @pyqtSignature("")
183 @pyqtSignature("")
184 def on_txtRpath_editingFinished(self):
184 def on_txtRpath_editingFinished(self):
185 """
185 """
186 Valida la ruta del proyecto
186 Valida la ruta del proyecto
187 """
187 """
188 self.var_Rpath = str(self.txtRpath.text()) #Se carga la variable con la ruta recien editada
188 self.var_Rpath = str(self.txtRpath.text()) #Se carga la variable con la ruta recien editada
189 self.statusRpath = functions.dir_exists(self.var_Rpath, self)
189 self.statusRpath = functions.dir_exists(self.var_Rpath, self)
190
190
191
191
192 #----------------------------------------------------- Tipo de datos ---------------------------------------------------------------
192 #----------------------------------------------------- Tipo de datos ---------------------------------------------------------------
193
193
194 @pyqtSignature("int")
194 @pyqtSignature("int")
195 def on_lstDtype_activated(self, index):
195 def on_lstDtype_activated(self, index):
196 """
196 """
197 Permite elegir entre los tipos de archivos
197 Permite elegir entre los tipos de archivos
198 """
198 """
199 self.txtDtype.setReadOnly(True)
199 self.txtDtype.setReadOnly(True)
200 if index == 0:
200 if index == 0:
201 self.var_Dtype ='r'
201 self.var_Dtype ='r'
202 elif index == 1:
202 elif index == 1:
203 self.var_Dtype ='pdata'
203 self.var_Dtype ='pdata'
204 elif index == 2:
204 elif index == 2:
205 self.var_Dtype ='sswma'
205 self.var_Dtype ='sswma'
206 else :
206 else :
207 self.var_Dtype =''
207 self.var_Dtype =''
208 self.txtDtype.setReadOnly(False)
208 self.txtDtype.setReadOnly(False)
209
209
210 self.txtDtype.setText(self.var_Dtype)
210 self.txtDtype.setText(self.var_Dtype)
211 functions.load_days(self) #llamada a funcion
211 functions.load_days(self) #llamada a funcion
212
212
213 @pyqtSignature("")
213 @pyqtSignature("")
214 def on_txtDtype_editingFinished(self):
214 def on_txtDtype_editingFinished(self):
215 self.var_Dtype=str(self.txtDtype.text())
215 self.var_Dtype=str(self.txtDtype.text())
216 functions.load_days(self) #llamada a funcion
216 functions.load_days(self) #llamada a funcion
217
217
218
218
219 #----------------------------------------------------- Etiqueta ---------------------------------------------------------------
219 #----------------------------------------------------- Etiqueta ---------------------------------------------------------------
220
220
221 @pyqtSignature("")
221 @pyqtSignature("")
222 def on_txtElabel_editingFinished(self):
222 def on_txtElabel_editingFinished(self):
223 self.var_Elabel = str(self.txtElabel.text())
223 self.var_Elabel = str(self.txtElabel.text())
224
224
225 #----------------------------------------------------- Numero de copias ---------------------------------------------------------------
225 #----------------------------------------------------- Numero de copias ---------------------------------------------------------------
226 @pyqtSignature("")
226 @pyqtSignature("")
227 def on_txtCopys_editingFinished(self):
227 def on_txtCopys_editingFinished(self):
228 self.var_Copys = self.txtCopys.value()
228 self.var_Copys = self.txtCopys.value()
229
229
230 #----------------------------------------------------- Seleccion del rango de fechas ---------------------------------------------------------------
230 #----------------------------------------------------- Seleccion del rango de fechas ---------------------------------------------------------------
231
231
232 @pyqtSignature("int") #CLOSED
232 @pyqtSignature("int") #CLOSED
233 def on_lstStartDay_activated(self, index):
233 def on_lstStartDay_activated(self, index):
234 """
234 """
235 Cambia la lista de opciones en lstStopDay
235 Cambia la lista de opciones en lstStopDay
236 """
236 """
237 var_StopDay_index=self.lstStopDay.count() - self.lstStopDay.currentIndex()
237 var_StopDay_index=self.lstStopDay.count() - self.lstStopDay.currentIndex()
238 self.lstStopDay.clear()
238 self.lstStopDay.clear()
239
239
240 for i in self.var_list[index:]:
240 for i in self.var_list[index:]:
241 self.lstStopDay.addItem(i)
241 self.lstStopDay.addItem(i)
242
242
243 self.lstStopDay.setCurrentIndex(self.lstStopDay.count() - var_StopDay_index)
243 self.lstStopDay.setCurrentIndex(self.lstStopDay.count() - var_StopDay_index)
244
244
245 functions.get_sub_list(self)
245 functions.get_sub_list(self)
246
246
247
247
248 @pyqtSignature("int") #CLOSED
248 @pyqtSignature("int") #CLOSED
249 def on_lstStopDay_activated(self, index):
249 def on_lstStopDay_activated(self, index):
250 """
250 """
251 Cambia la lista de opciones en lstStartDay
251 Cambia la lista de opciones en lstStartDay
252 """
252 """
253 var_StartDay_index=self.lstStartDay.currentIndex()
253 var_StartDay_index=self.lstStartDay.currentIndex()
254 var_end_index = self.lstStopDay.count() - index
254 var_end_index = self.lstStopDay.count() - index
255 self.lstStartDay.clear()
255 self.lstStartDay.clear()
256
256
257 for i in self.var_list[:len(self.var_list) - var_end_index + 1]:
257 for i in self.var_list[:len(self.var_list) - var_end_index + 1]:
258 self.lstStartDay.addItem(i)
258 self.lstStartDay.addItem(i)
259
259
260 self.lstStartDay.setCurrentIndex(var_StartDay_index)
260 self.lstStartDay.setCurrentIndex(var_StartDay_index)
261
261
262 functions.get_sub_list(self)
262 functions.get_sub_list(self)
263
263
264
264
265 #----------------------------------------------------- Capacidad del dispositivo de grabacion ---------------------------------------------------------------
265 #----------------------------------------------------- Capacidad del dispositivo de grabacion ---------------------------------------------------------------
266
266
267 @pyqtSignature("")
267 @pyqtSignature("")
268 def on_txtDcapacity_editingFinished(self):
268 def on_txtDcapacity_editingFinished(self):
269 self.var_Dcapacity = self.txtDcapacity.value()
269 self.var_Dcapacity = self.txtDcapacity.value()
270
270
271
271
272 @pyqtSignature("int") #CLOSED
272 @pyqtSignature("int") #CLOSED
273 def on_lstDcapacity_activated(self, index):
273 def on_lstDcapacity_activated(self, index):
274 """
274 """
275 Permite elegir el tamaΓ±o del disco
275 Permite elegir el tamaΓ±o del disco
276 """
276 """
277 if index == 0:
277 if index == 0:
278 var_size=25.0
278 var_size=25.0
279 elif index == 1:
279 elif index == 1:
280 var_size=8.5
280 var_size=8.5
281 elif index == 2:
281 elif index == 2:
282 var_size=4.7
282 var_size=4.7
283 elif index == 3:
283 elif index == 3:
284 var_size=0.7
284 var_size=0.7
285
285
286 if index != 4:
286 if index != 4:
287 self.txtDcapacity.setValue(var_size*10**9/1024**2)
287 self.txtDcapacity.setValue(var_size*10**9/1024**2)
288 self.txtDcapacity.setReadOnly(True)
288 self.txtDcapacity.setReadOnly(True)
289 else:
289 else:
290 self.txtDcapacity.setValue(100.0)
290 self.txtDcapacity.setValue(100.0)
291 self.txtDcapacity.setReadOnly(False)
291 self.txtDcapacity.setReadOnly(False)
292
292
293 self.var_lstDcapacity = self.lstDcapacity.currentIndex()
293 self.var_lstDcapacity = self.lstDcapacity.currentIndex()
294 self.var_Dcapacity = self.txtDcapacity.value()
294 self.var_Dcapacity = self.txtDcapacity.value()
295
295
296 #----------------------------------------------------- Testeo de las unidades de grabacion ---------------------------------------------------------------
296 #----------------------------------------------------- Testeo de las unidades de grabacion ---------------------------------------------------------------
297
297
298 @pyqtSignature("")
298 @pyqtSignature("")
299 def on_btnTdevA_clicked(self):
299 def on_btnTdevA_clicked(self):
300 var_dev = str(self.txtDeviceA.text())
300 var_dev = str(self.txtDeviceA.text())
301 var_cmd = 'eject ' + var_dev + '; eject -t ' + var_dev
301 var_cmd = 'eject ' + var_dev + '; eject -t ' + var_dev
302 commands.getstatusoutput(var_cmd)
302 commands.getstatusoutput(var_cmd)
303
303
304 @pyqtSignature("")
304 @pyqtSignature("")
305 def on_btnTdevB_clicked(self):
305 def on_btnTdevB_clicked(self):
306 var_dev = str(self.txtDeviceB.text())
306 var_dev = str(self.txtDeviceB.text())
307 var_cmd = 'eject ' + var_dev + '; eject -t ' + var_dev
307 var_cmd = 'eject ' + var_dev + '; eject -t ' + var_dev
308 commands.getstatusoutput(var_cmd)
308 commands.getstatusoutput(var_cmd)
309
309
310 @pyqtSignature("")
310 @pyqtSignature("")
311 def on_btnTdevC_clicked(self):
311 def on_btnTdevC_clicked(self):
312 var_dev = str(self.txtDeviceC.text())
312 var_dev = str(self.txtDeviceC.text())
313 var_cmd = 'eject ' + var_dev + '; eject -t ' + var_dev
313 var_cmd = 'eject ' + var_dev + '; eject -t ' + var_dev
314 commands.getstatusoutput(var_cmd)
314 commands.getstatusoutput(var_cmd)
315
315
316 @pyqtSignature("")
316 @pyqtSignature("")
317 def on_btnTdevD_clicked(self):
317 def on_btnTdevD_clicked(self):
318 var_dev = str(self.txtDeviceD.text())
318 var_dev = str(self.txtDeviceD.text())
319 var_cmd = 'eject ' + var_dev + '; eject -t ' + var_dev
319 var_cmd = 'eject ' + var_dev + '; eject -t ' + var_dev
320 commands.getstatusoutput(var_cmd)
320 commands.getstatusoutput(var_cmd)
321
321
322
322
323 #==============================================================================
323 #==============================================================================
324 # Botones para la generacion de los archivos de configuracion
324 # Botones para la generacion de los archivos de configuracion
325 #==============================================================================
325 #==============================================================================
326
326
327 #----------------------------------------------------- Generacion de la configuracion usando los parametros ---------------------------------------------------------------
327 #----------------------------------------------------- Generacion de la configuracion usando los parametros ---------------------------------------------------------------
328
328
329 @pyqtSignature("")
329 @pyqtSignature("")
330 def on_btnGbkp_clicked(self):
330 def on_btnGbkp_clicked(self):
331 """
331 """
332 Generacion de archivos de configuracion usando los parametros
332 Generacion de archivos de configuracion usando los parametros
333 """
333 """
334
334
335 if functions.validate_parameters(self) == False:
335 if functions.validate_parameters(self) == False:
336 return
336 return
337
337
338 #Crea las carpetas en la ruta del proyecto y verifica que se crearon correctamente
338 #Crea las carpetas en la ruta del proyecto y verifica que se crearon correctamente
339 list_dirs=['gpath','iso','ppath', 'tmpdata']
339 list_dirs=['gpath','iso','ppath', 'tmpdata']
340 bool_make_dirs = functions.make_dirs(list_dirs, self)
340 bool_make_dirs = functions.make_dirs(list_dirs, self)
341 if bool_make_dirs == False:
341 if bool_make_dirs == False:
342 return
342 return
343
343
344 var_files_list = functions.list_files(self) #Se obtiene la lista de archivos a grabar
344 var_files_list = functions.list_files(self) #Se obtiene la lista de archivos a grabar
345
345
346 self.var_Discs = functions.make_files_dat(var_files_list, self) #Se crean los archivos .dat
346 self.var_Discs = functions.make_files_dat(var_files_list, self) #Se crean los archivos .dat
347
347
348 functions.make_files_print(self) # Se crean los archivos .print
348 functions.make_files_print(self) # Se crean los archivos .print
349
349
350 functions2.make_parameters_conf(self) # se crea el archivo parameters.conf
350 functions2.make_parameters_conf(self) # se crea el archivo parameters.conf
351
351
352 self.txtInfo.append("Total number of discs for recording: "+str(self.var_Discs * self.var_Copys))
352 self.txtInfo.append("Total number of discs for recording: "+str(self.var_Discs * self.var_Copys))
353
353
354 #Se bloquean los parametros de configuracion
354 #Se bloquean los parametros de configuracion
355 functions2.enabled_items1(True, self)
355 functions2.enabled_items1(True, self)
356 self.var_disc_n = 1
356 self.var_disc_n = 1
357 self.var_copy_n = 1
357 self.var_copy_n = 1
358 self.bool_first_iso = True
358 self.bool_first_iso = True
359 self.var_burned_discs = 0 #numero de discos grabados
359 self.var_burned_discs = 0 #numero de discos grabados
360
360
361
361
362 #----------------------------------------------------- Permite reiniciar la configuracion ---------------------------------------------------------------
362 #----------------------------------------------------- Permite reiniciar la configuracion ---------------------------------------------------------------
363
363
364 @pyqtSignature("")
364 @pyqtSignature("")
365 def on_btnRestart_clicked(self):
365 def on_btnRestart_clicked(self):
366 """
366 """
367 Permite que se puedan cambiar los parametros
367 Permite que se puedan cambiar los parametros
368 """
368 """
369 if os.path.isfile("parameters.conf"):
369 if os.path.isfile("parameters.conf"):
370 os.remove("parameters.conf")
370 os.remove("parameters.conf")
371 if os.path.isfile("burning.conf"):
371 if os.path.isfile("burning.conf"):
372 os.remove("burning.conf")
372 os.remove("burning.conf")
373
373
374 functions2.enabled_items1(False, self)
374 functions2.enabled_items1(False, self)
375 self.btnStartburn.setText("Start Burn")
375 self.btnStartburn.setText("Start Burn")
376 self.txtInfo.clear()
376 self.txtInfo.clear()
377
377
378
378
379
379
380 #==============================================================================
380 #==============================================================================
381 # Acciones de los procesos
381 # Acciones de los procesos
382 #==============================================================================
382 #==============================================================================
383
383
384 #------------------------------------------------ Funciones del proceso de creacion del iso ------------------------------------------------------
384 #------------------------------------------------ Funciones del proceso de creacion del iso ------------------------------------------------------
385
385
386 def readOuput_iso(self):
386 def readOuput_iso(self):
387 self.txtProgress.setText("stdout iso: " + QtCore.QString(self.process_iso.readAllStandardOutput()))
387 self.txtProgress.setText("stdout iso: " + QtCore.QString(self.process_iso.readAllStandardOutput()))
388
388
389 def readError_iso(self):
389 def readError_iso(self):
390 self.txtProgress.setText("stderr iso: " + QtCore.QString(self.process_iso.readAllStandardError()))
390 self.txtProgress.setText("stderr iso: " + QtCore.QString(self.process_iso.readAllStandardError()))
391
391
392 def finished_iso(self):
392 def finished_iso(self):
393 self.txtProgress.clear()
393 self.txtProgress.clear()
394
394
395 if not(self.bool_state_burning):
395 if not(self.bool_state_burning):
396 return
396 return
397
397
398 if self.process_iso.exitCode() == 0:
398 if self.process_iso.exitCode() == 0:
399 self.txtInfo.append("------Iso file: "+functions.i2s(self.var_disc_n)+" created successfully\n")
399 self.txtInfo.append("------Iso file: "+functions.i2s(self.var_disc_n)+" created successfully\n")
400 self.var_step = 1
400 self.var_step = 1
401 self.function_burn()
401 self.function_burn()
402
402
403 else:
403 else:
404 self.txtInfo.append("#####Error creating iso file "+function.i2s(self.var_disc_n)
404 self.txtInfo.append("#####Error creating iso file "+function.i2s(self.var_disc_n)
405 +" , code "+QtCore.QString(self.process_iso.exitCode()))
405 +" , code "+QtCore.QString(self.process_iso.exitCode()))
406 self.txtInfo.append("Please check the data")
406 self.txtInfo.append("Please check the data")
407 self.txtInfo.append("FATAL ERROR")
407 self.txtInfo.append("FATAL ERROR")
408
408
409 #----------------------------------------------------- Funciones del proceso de grabado ---------------------------------------------------------------
409 #----------------------------------------------------- Funciones del proceso de grabado ---------------------------------------------------------------
410
410
411 def readOuput_burn(self):
411 def readOuput_burn(self):
412 self.txtProgress.setText("stdout burn: " + QtCore.QString(self.process_burn.readAllStandardOutput()))
412 self.txtProgress.setText("stdout burn: " + QtCore.QString(self.process_burn.readAllStandardOutput()))
413
413
414 def readError_burn(self):
414 def readError_burn(self):
415 self.txtProgress.setText("stderr burn: " + QtCore.QString(self.process_burn.readAllStandardError()))
415 self.txtProgress.setText("stderr burn: " + QtCore.QString(self.process_burn.readAllStandardError()))
416
416
417 def finished_burn(self):
417 def finished_burn(self):
418 self.txtProgress.clear()
418 self.txtProgress.clear()
419
419
420 #Si se paro el proceso manualmente se termina
420 #Si se paro el proceso manualmente se termina
421 if not(self.bool_state_burning):
421 if not(self.bool_state_burning):
422 return
422 return
423
423
424 if self.process_burn.exitCode() == 0:
424 if self.process_burn.exitCode() == 0:
425 self.txtInfo.append("-----Complete recording, disc: "+str(self.var_disc_n)+" copy: "+str(self.var_copy_n))
425 self.txtInfo.append("-----Complete recording, disc: "+str(self.var_disc_n)+" copy: "+str(self.var_copy_n))
426 functions2.update_message(1, "COMPLETED", self)
426 functions2.update_message(1, "COMPLETED", self)
427 self.var_step = 2
427 self.var_step = 2
428 self.function_check()
428 self.function_check()
429
429
430 else:
430 else:
431 self.txtInfo.append("#######Error recording, disc: "+function.i2s(self.var_disc_n)+" copy: "
431 self.txtInfo.append("#######Error recording, disc: "+function.i2s(self.var_disc_n)+" copy: "
432 +function.i2s(self.var_copy_n)+", code "+QtCore.QString(self.process_burn.exitCode()))
432 +function.i2s(self.var_copy_n)+", code "+QtCore.QString(self.process_burn.exitCode()))
433 functions2.update_message(1, "ERROR", self)
433 functions2.update_message(1, "ERROR", self)
434
434
435 functions.is_last_disc_and_copy(self)
435 functions.is_last_disc_and_copy(self)
436
436
437
437
438 #----------------------------------------------------- Funciones del proceso de verificacion ---------------------------------------------------------------
438 #----------------------------------------------------- Funciones del proceso de verificacion ---------------------------------------------------------------
439
439
440 def readOuput_check(self):
440 def readOuput_check(self):
441 self.txtProgress.setText("stdout check: " + QtCore.QString(self.process_check.readAllStandardOutput()))
441 self.txtProgress.setText("stdout check: " + QtCore.QString(self.process_check.readAllStandardOutput()))
442
442
443 def readError_check(self):
443 def readError_check(self):
444 self.txtProgress.setText("stderr check: " + QtCore.QString(self.process_check.readAllStandardError()))
444 self.txtProgress.setText("stderr check: " + QtCore.QString(self.process_check.readAllStandardError()))
445
445
446 def finished_check(self):
446 def finished_check(self):
447 self.txtProgress.clear()
447 self.txtProgress.clear()
448
448
449 if not(self.bool_state_burning):
449 if not(self.bool_state_burning):
450 return
450 return
451
451
452 if self.process_check.exitCode() == 0:
452 if self.process_check.exitCode() == 0:
453 self.txtInfo.append("--------Complete checking, disc: "+str(self.var_disc_n)+" copy: "+str(self.var_copy_n))
453 self.txtInfo.append("--------Complete checking, disc: "+str(self.var_disc_n)+" copy: "+str(self.var_copy_n))
454 functions2.update_message(2, "CHECKED", self)
454 functions2.update_message(2, "CHECKED", self)
455
455
456 else:
456 else:
457 self.txtInfo.append("#######Error checking, disc: "+function.i2s(self.var_disc_n)+" copy: "
457 self.txtInfo.append("#######Error checking, disc: "+function.i2s(self.var_disc_n)+" copy: "
458 +function.i2s(self.var_copy_n)+", code "+QtCore.QString(self.process_check.exitCode()))
458 +function.i2s(self.var_copy_n)+", code "+QtCore.QString(self.process_check.exitCode()))
459 functions2.update_message(2, "ERROR", self)
459 functions2.update_message(2, "ERROR", self)
460
460
461 functions.is_last_disc_and_copy(self)
461 functions.is_last_disc_and_copy(self)
462
462
463
463
464
464
465 #==============================================================================
465 #==============================================================================
466 # Botones para el proceso de grabacion
466 # Botones para el proceso de grabacion
467 #==============================================================================
467 #==============================================================================
468
468
469 #----------------------------------------------------- Iniciar proceso de grabacion ---------------------------------------------------------------
469 #----------------------------------------------------- Iniciar proceso de grabacion ---------------------------------------------------------------
470
470
471 @pyqtSignature("")
471 @pyqtSignature("")
472 def on_btnStartburn_clicked(self):
472 def on_btnStartburn_clicked(self):
473 """
473 """
474 Se inicia el proceso de grabacion
474 Se inicia el proceso de grabacion
475 """
475 """
476 #Verifica que exista algun dispositivo de grabacion seleccionado
476 #Verifica que exista algun dispositivo de grabacion seleccionado
477 if not(functions2.selected_devices(self)):
477 if not(functions2.selected_devices(self)):
478 self.txtInfo.append("There is no recording device selected")
478 self.txtInfo.append("There is no recording device selected")
479 return
479 return
480
480
481 # #Lista los dispositivos de grabacion a usar
481 # #Lista los dispositivos de grabacion a usar
482 # for dev in self.var_devices:
482 # for dev in self.var_devices:
483 # self.txtInfo.append("recording device :"+dev)
483 # self.txtInfo.append("recording device :"+dev)
484
484
485 self.bool_state_burning = True
485 self.bool_state_burning = True
486 functions2.enabled_items2(True, self)
486 functions2.enabled_items2(True, self)
487
487
488 if self.bool_first_iso == True:
488 if self.bool_first_iso == True:
489 self.txtInfo.append("BUTTON: on_btnStartburn_clicked")
489 self.txtInfo.append("BUTTON: on_btnStartburn_clicked")
490 self.var_step = 4
490 self.var_step = 4
491 self.function_eject()
491 self.function_eject()
492 return
492 return
493
493
494 if self.var_step == 0:
494 if self.var_step == 0:
495 self.function_iso()
495 self.function_iso()
496 return
496 return
497
497
498 if self.var_step == 1:
498 if self.var_step == 1:
499 self.function_burn()
499 self.function_burn()
500 return
500 return
501
501
502 #----------------------------------------------------- Funcion para el grabado ---------------------------------------------------------------
502 #----------------------------------------------------- Funcion para el grabado ---------------------------------------------------------------
503
503
504 def function_iso(self):
504 def function_iso(self):
505 #Creacion del archivo.iso para la grabacion
505 #Creacion del archivo.iso para la grabacion
506 if self.var_step == 0:
506 if self.var_step == 0:
507 self.txtInfo.append("########## Disc number: "+str(self.var_disc_n)+"##########")
507 self.txtInfo.append("########## Disc number: "+str(self.var_disc_n)+"##########")
508 self.txtInfo.append("------Creating iso file number: "+str(self.var_disc_n))
508 self.txtInfo.append("------Creating iso file number: "+str(self.var_disc_n))
509
509
510 var_cmd = functions.cmd_iso(self)
510 var_cmd = functions.cmd_iso(self)
511
511
512 if self.var_real_show_cmd == True:
512 if self.var_real_show_cmd == True:
513 self.txtInfo.append("CMD: "+var_cmd)
513 self.txtInfo.append("CMD: "+var_cmd)
514
514
515 if self.var_real_iso == False:
515 if self.var_real_iso == False:
516 self.txtInfo.append('**function_iso')
516 self.txtInfo.append('**function_iso')
517 var_cmd="echo 'function_iso'"
517 var_cmd="echo 'function_iso'"
518
518
519 self.process_iso.start(var_cmd)
519 self.process_iso.start(var_cmd)
520
520
521 def function_burn(self):
521 def function_burn(self):
522 #Grabacion de los DVDs
522 #Grabacion de los DVDs
523
523
524 if self.var_step == 1:
524 if self.var_step == 1:
525 self.txtInfo.append("------Recording disc: "+str(self.var_disc_n)+", copy:"+str(self.var_copy_n))
525 self.txtInfo.append("------Recording disc: "+str(self.var_disc_n)+", copy:"+str(self.var_copy_n))
526 functions2.update_message(1, "BURNING", self)
526 functions2.update_message(1, "BURNING", self)
527
527
528 var_cmd = functions.cmd_burn(self)
528 var_cmd = functions.cmd_burn(self)
529
529
530 if self.var_real_show_cmd == True:
530 if self.var_real_show_cmd == True:
531 self.txtInfo.append("CMD: "+var_cmd)
531 self.txtInfo.append("CMD: "+var_cmd)
532
532
533 if self.var_real_burn == False:
533 if self.var_real_burn == False:
534 self.txtInfo.append('**function_burn')
534 self.txtInfo.append('**function_burn')
535 var_cmd="echo 'function_burn'"
535 var_cmd="echo 'function_burn'"
536
536
537 self.process_burn.start(var_cmd)
537 self.process_burn.start(var_cmd)
538
538
539 def function_check(self):
539 def function_check(self):
540 #Verificacion de los discos
540 #Verificacion de los discos
541 if self.var_step == 2:
541 if self.var_step == 2:
542 self.txtInfo.append("-----------checking disc:"+str(self.var_disc_n)+", copy:"+str(self.var_copy_n))
542 self.txtInfo.append("-----------checking disc:"+str(self.var_disc_n)+", copy:"+str(self.var_copy_n))
543 functions2.update_message(2, "CHECKING", self)
543 functions2.update_message(2, "CHECKING", self)
544
544
545 var_cmd = functions.cmd_check(self)
545 var_cmd = functions.cmd_check(self)
546
546
547 if self.var_real_show_cmd == True:
547 if self.var_real_show_cmd == True:
548 self.txtInfo.append("CMD: "+var_cmd)
548 self.txtInfo.append("CMD: "+var_cmd)
549
549
550 if self.var_real_check == False:
550 if self.var_real_check == False:
551 self.txtInfo.append('**function_check')
551 self.txtInfo.append('**function_check')
552 var_cmd="echo 'function_check'"
552 var_cmd="echo 'function_check'"
553
553
554 self.process_check.start(var_cmd)
554 self.process_check.start(var_cmd)
555
555
556 #OK
556 #OK
557 def function_eject(self):
557 def function_eject(self):
558 self.txtInfo.append("Ejecting recording devices")
558 self.txtInfo.append("Ejecting recording devices")
559 self.txtInfo.append("Please insert blank discs")
559 self.txtInfo.append("Please insert blank discs")
560
560
561 if self.var_real_eject == True:
561 if self.var_real_eject == True:
562 functions2.eject_devices(self) # Expulsa las bandejas de los dispostivos de grabacion
562 functions2.eject_devices(self) # Expulsa las bandejas de los dispostivos de grabacion
563 else:
563 else:
564 self.txtInfo.append("**functions2.eject_devices")
564 self.txtInfo.append("**functions2.eject_devices")
565
565
566 self.btnStartburn.setText("Continue")
566 self.btnStartburn.setText("Continue")
567 self.btnStartburn.setEnabled(True)
567 self.btnStartburn.setEnabled(True)
568
568
569 if self.bool_first_iso == True:
569 if self.bool_first_iso == True:
570 self.bool_first_iso = False
570 self.bool_first_iso = False
571 self.var_step = 0
571 self.var_step = 0
572
572
573 elif self.var_copy_n == 1:
573 elif self.var_copy_n == 1:
574 self.var_step = 0
574 self.var_step = 0
575
575
576 else:
576 else:
577 self.var_step = 1
577 self.var_step = 1
578
578
579 def function_final(self):
579 def function_final(self):
580 self.txtInfo.append("Recording process is complete")
580 self.txtInfo.append("Recording process is complete")
581 if os.path.isfile("parameters.conf"):
581 if os.path.isfile("parameters.conf"):
582 os.remove("parameters.conf")
582 os.remove("parameters.conf")
583 if os.path.isfile("burning.conf"):
583 if os.path.isfile("burning.conf"):
584 os.remove("burning.conf")
584 os.remove("burning.conf")
585
585
586
586
587
587
588 #----------------------------------------------------- Detener proceso de grabacion ---------------------------------------------------------------
588 #----------------------------------------------------- Detener proceso de grabacion ---------------------------------------------------------------
589
589
590 @pyqtSignature("")
590 @pyqtSignature("")
591 def on_btnStopburn_clicked(self):
591 def on_btnStopburn_clicked(self):
592 """
592 """
593 Slot documentation goes here.
593 Slot documentation goes here.
594 """
594 """
595 self.bool_state_burning = False
595 self.bool_state_burning = False
596
596
597 if self.var_step == 0:
597 if self.var_step == 0:
598 self.process_iso.terminate() #Termina el proceso, si puede
598 self.process_iso.terminate() #Termina el proceso, si puede
599 # self.process_iso.kill() #Mata el proceso, no es la forma adecuada, solo usar si terminate() no funciona
599 # self.process_iso.kill() #Mata el proceso, no es la forma adecuada, solo usar si terminate() no funciona
600 elif self.var_step == 1:
600 elif self.var_step == 1:
601 self.process_burn.terminate()
601 self.process_burn.terminate()
602 elif self.var_step == 2:
602 elif self.var_step == 2:
603 self.process_check.terminate()
603 self.process_check.terminate()
604
604
605 self.txtInfo.append("Stopped recording")
605 self.txtInfo.append("Stopped recording")
606 functions2.enabled_items2(False, self)
606 functions2.enabled_items2(False, self)
607 self.bool_first_iso = True
607 self.bool_first_iso = True
608
608
609
609
610
610
611 #==============================================================================
611 #==============================================================================
612 # Proceso verificacion manual
612 # Proceso verificacion manual
613 #==============================================================================
613 #==============================================================================
614
614
615
615
616 #----------------------------------------------------- Proceso de verificaion manual ---------------------------------------------------------------
616 #----------------------------------------------------- Proceso de verificaion manual ---------------------------------------------------------------
617
617
618
618
619 @pyqtSignature("")
619 @pyqtSignature("")
620 def on_btnTDpath_clicked(self):
620 def on_btnTDpath_clicked(self):
621 """
621 """
622 Slot documentation goes here.
622 Slot documentation goes here.
623 """
623 """
624 self.var_TDpath= str(QtGui.QFileDialog.getExistingDirectory(self, 'Open Directory', './', QtGui.QFileDialog.ShowDirsOnly))
624 self.var_TDpath= str(QtGui.QFileDialog.getExistingDirectory(self, 'Open Directory', './', QtGui.QFileDialog.ShowDirsOnly))
625 self.txtTDpath.setText(self.var_TDpath)
625 self.txtTDpath.setText(self.var_TDpath)
626 self.statusTDpath = functions.dir_exists(self.var_TDpath, self)
626 self.statusTDpath = functions.dir_exists(self.var_TDpath, self)
627
627
628
628
629 @pyqtSignature("")
629 @pyqtSignature("")
630 def on_btnCHstart_clicked(self):
630 def on_btnCHstart_clicked(self):
631 """
631 """
632 Slot documentation goes here.
632 Slot documentation goes here.
633 """
633 """
634 pass
634 pass
General Comments 0
You need to be logged in to leave comments. Login now