##// END OF EJS Templates
funciones ok, botones ok...
ralonso -
r46:47
parent child
Show More
@@ -1,100 +1,213
1 # -*- coding: utf-8 -*-
1 # -*- coding: utf-8 -*-
2
2
3 #class BKmanager:
3 #class BKmanager:
4 # def __init__(self):
4 # def __init__(self):
5
5
6 from subprocess import *
6 from subprocess import *
7 import sys
7 import sys
8 import os
8 import os
9 import subprocess
9 import subprocess
10 import commands
10 import commands
11
11
12
12
13 #Entero a cadena agregando ceros delante
13 #Entero a cadena agregando ceros delante
14 def i2s(var_n, var_length=4):
14 def i2s(var_n, var_length=4):
15 var_n2=str(var_n)
15 var_n2=str(var_n)
16 while len(var_n2) < var_length:
16 while len(var_n2) < var_length:
17 var_n2 = "0"+var_n2
17 var_n2 = "0"+var_n2
18 return var_n2
18 return var_n2
19
19
20
20
21 #Crea directorios en la ruta indicada
21 #Crea directorios en la ruta indicada
22 def make_dirs(var_path, list_dirs, self):
22 def make_dirs(list_dirs, self):
23 var_cmd="mkdir -p "+str(var_path)
23 var_cmd="mkdir -p "+str(self.var_Rpath)
24 for var_dir in list_dirs:
24 for var_dir in list_dirs:
25 var_output=commands.getstatusoutput(var_cmd+'/'+var_dir)[0]
25 var_output=commands.getstatusoutput(var_cmd+'/'+var_dir)[0]
26 print var_cmd+'/'+var_dir
27 if var_output != 0:
26 if var_output != 0:
28 self.txtInfo.append("Error al crear el directorio "+var_dir+", output_error:" + str(var_output))
27 self.txtInfo.append("Error al crear el directorio "+var_dir+", output_error:" + str(var_output))
29 return
28 return False
30 else:
29 self.txtInfo.append('Carpetas creadas correctamente')
31 self.txtInfo.append('Carpetas creadas correctamente')
30 return True
32
31
33
32
34 #Se verifica que la ruta exista y sea un directorio
33 #Se verifica que la ruta exista y sea un directorio
35 def dir_exists(var_dir, self):
34 def dir_exists(var_dir, self):
36 var_cmd="test -d "+str(var_dir)
35 var_cmd="test -d "+str(var_dir)
37 var_output=commands.getstatusoutput(var_cmd)[0]
36 var_output=commands.getstatusoutput(var_cmd)[0]
38 if var_output != 0:
37 if var_output != 0:
39 self.txtInfo.append("Ruta no valida, output_error:" + str(var_output))
38 self.txtInfo.append("Ruta no valida, output_error:" + str(var_output))
40 return False
39 return False
41 else:
40 else:
42 self.txtInfo.append("Ruta valida, sin error:" + str(var_dir))
41 self.txtInfo.append("Ruta valida, sin error:" + str(var_dir))
43 return True
42 return True
44
43
45
44
46 #Se buscan los archivos del tipo especificado
45 #Se buscan los archivos del tipo especificado
47 def load_days(self):
46 def load_days(self):
48
47
49 self.var_list=[]
48 self.var_list=[]
50 self.lstStartDay.clear()
49 self.lstStartDay.clear()
51 self.lstStopDay.clear()
50 self.lstStopDay.clear()
52
51
53 if self.statusDpath == False:
52 if self.statusDpath == False:
54 self.btnGbkp.setEnabled(False)
53 self.btnGbkp.setEnabled(False)
55 return
54 return
56
55
57 var_cmd="find " + str(self.var_Dpath) + " -name *."+ str(self.var_Dtype) +" | awk -F/ '{print substr($NF,2,7)}' | sort| uniq"
56 var_cmd="find " + str(self.var_Dpath) + " -name *."+ str(self.var_Dtype) +" | awk -F/ '{print substr($NF,2,7)}' | sort| uniq"
58 output=commands.getstatusoutput(var_cmd)[1]
57 output=commands.getstatusoutput(var_cmd)[1]
59
58
60 #Si no se encuentra ningun archivo
59 #Si no se encuentra ningun archivo
61 if len(output) == 0:
60 if len(output) == 0:
62 self.txtInfo.append("No se encontraron archivos")
61 self.txtInfo.append("No se encontraron archivos")
63 self.btnGbkp.setEnabled(False)
62 self.btnGbkp.setEnabled(False)
64 return
63 return
65
64
66 #Se cargan las listas para seleccionar StartDay y StopDay (QComboBox)
65 #Se cargan las listas para seleccionar StartDay y StopDay (QComboBox)
67 for i in range(0, (len(output)+1)/8):
66 for i in range(0, (len(output)+1)/8):
68 self.var_list.append(output[8*i:8*(i+1)-1])
67 self.var_list.append(output[8*i:8*(i+1)-1])
69
68
70 for i in self.var_list:
69 for i in self.var_list:
71 self.lstStartDay.addItem(i)
70 self.lstStartDay.addItem(i)
72 self.lstStopDay.addItem(i)
71 self.lstStopDay.addItem(i)
73 self.lstStopDay.setCurrentIndex(self.lstStartDay.count()-1)
72 self.lstStopDay.setCurrentIndex(self.lstStartDay.count()-1)
74
73
74 get_sub_list(self)
75 self.btnGbkp.setEnabled(True)
75 self.btnGbkp.setEnabled(True)
76
76
77
77
78 #Verifica que los parametros
78 #Verifica que los parametros
79 def validate_parameters(self):
79 def validate_parameters(self):
80 #Verifica que las rutas sean validas
80 #Verifica que las rutas sean validas
81 if self.statusRpath == False:
81 if self.statusRpath == False:
82 self.txtInfo.append("Ruta de proyecto no valida")
82 self.txtInfo.append("Ruta de proyecto no valida")
83 return False
83 return False
84
84
85 #Verifica la etiqueta
85 #Verifica la etiqueta
86 if len(self.var_Elabel) == 0:
86 if len(self.var_Elabel) == 0:
87 self.txtInfo.append("Debe ingresar el nombre de la etiqueta")
87 self.txtInfo.append("Debe ingresar el nombre de la etiqueta")
88 return False
88 return False
89
89
90 return True
90 return True
91
91
92
92
93 #Obtiene el rango de las fechas seleccionadas
93 def get_sub_list(self):
94 def get_sub_list(self):
94 self.var_sublist=[]
95 self.var_sublist=[]
95 for i in self.var_list[self.lstStartDay.currentIndex():self.lstStartDay.currentIndex() + self.lstStopDay.currentIndex()+1]:
96 for i in self.var_list[self.lstStartDay.currentIndex():self.lstStartDay.currentIndex() + self.lstStopDay.currentIndex()+1]:
96 self.var_sublist.append(i)
97 self.var_sublist.append(i)
97 if len(self.var_sublist) == 0:
98 if len(self.var_sublist) == 0:
98 self.txtInfo.append("No existen archivos encontrados")
99 self.txtInfo.append("No existen archivos encontrados")
99
100
100
101
102 #Busca los archivos con los parametros de busqueda
103 def list_files(self):
104 var_files_list=[]
105 for var_doy in self.var_sublist:
106 var_cmd="find " + str(self.var_Dpath) + " -name ?"+var_doy+"???."+ str(self.var_Dtype) + " |sort"
107 var_output=commands.getstatusoutput(var_cmd)[1]
108 for var_file in var_output.split():
109 var_files_list.append(var_file) #Almacena cada archivo en la lista
110 return var_files_list
111
112
113 #Genera la lista de archivos .dat que contienen los archivos a grabar en cada DVD
114 def make_files_dat(var_files_list, self):
115 var_Rpath_ppath=self.var_Rpath+"/ppath" #Ruta de los archivos a grabar
116 var_n=1 #Numero del DVD actual
117 var_tmp=0 #Se usa para acumular el tamaΓ±o de los archivos de la lista
118 var_files_list_2=[] #Se usa para almacenar la lista de archivos agrbar en cada DVD
119
120 for i in var_files_list: #Se asignan en i los archivos de la lista
121 self.txtInfo.append(i)
122 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
123 var_tmp += var_size_i #Se acumulan el tamaΓ±o de los archivos de la lista
124
125 #Si el tamaΓ±o acumulado es mayor que el de el DVD
126 if var_tmp > self.var_Dcapacity:
127 var_tmp -= var_size_i #se quita el tamaΓ±o sumado para mostrar el tamaΓ±o real
128 #se crea un archivo con numeral en el sufijo y extension .dat
129 var_file = open(var_Rpath_ppath+"/"+self.var_Elabel+"_"+i2s(var_n)+".dat","w")
130 #Se aΓ±ade la lista de archivos a grabar en el DVD al archivo .dat
131 for line in var_files_list_2:
132 var_tmp_path=(line.split(self.var_Dpath)[1]).split('/')
133 var_tmp_path2="/"
134 for l in range(0, len(var_tmp_path)-1):
135 var_tmp_path2=var_tmp_path2+str(var_tmp_path[l])+"/"
136 var_file.write(var_tmp_path2+'=')
137 var_file.write(line+'\n')
138 var_file.close()
139
140 var_tmp = var_size_i #Se asigna a la variable el tamaΓ±o del archivo actual
141 var_files_list_2=[] #Se reinicia la lista
142 var_n += 1
143 var_files_list_2.append(i)
144
145 #se crea un archivo con numeral en el sufijo y extension .dat
146 var_file = open(var_Rpath_ppath+"/"+self.var_Elabel+"_"+i2s(var_n)+".dat","w")
147 #Se aΓ±ade la lista de archivos a grabar en el DVD al archivo .dat
148 for line in var_files_list_2:
149 var_tmp_path=(line.split(self.var_Dpath)[1]).split('/')
150 var_tmp_path2="/"
151 for l in range(0, len(var_tmp_path)-1):
152 var_tmp_path2=var_tmp_path2+str(var_tmp_path[l])+"/"
153 var_file.write(var_tmp_path2+'=')
154 var_file.write(line+'\n')
155 var_file.close()
156
157 return var_n
158
159
160 #Genera los archivos .print con los cuales se creara los postscript
161 def make_files_print(self):
162
163 var_Rpath_ppath=self.var_Rpath+"/ppath" #Ruta de los archivos a grabar
164
165 # Se leen todos los archivos .dat creados para crear las etiquetas en los archivos .print
166 for var_n in range(1, self.var_n_discs + 1):
167 #se abren los archivos .dat en modo lectura
168 var_file = open(var_Rpath_ppath+"/"+self.var_Elabel+"_"+i2s(var_n)+".dat","r")
169 lines=var_file.readlines() # Se lee las lineas en el archivo y se almacenan en la lista
170 # Se crea el archivo .print
171 var_file_print = open(var_Rpath_ppath+"/"+self.var_Elabel+"_"+i2s(var_n)+".print","w")
172 var_file_print.write(self.var_Elabel+" "+i2s(var_n)+"/"+i2s(self.var_n_discs)+"\n")
173 var_file_print.write("Year Doy Folder Set Time range\n")
174
175 var_first_folder = lines[0].split('=')[0]
176 var_first_file = (lines[0].split('=')[1])[:-1]
177 var_date_first_file=commands.getstatusoutput("date -r "+var_first_file+" +'%T'")[1]
178
179 for j in range(1, len(lines)-1):
180 var_tmp_folder = lines[j].split('=')[0]
181 var_tmp_file = (lines[j].split('=')[1])[:-1]
182
183 # Si el subfolder superior o la fecha del archivo cambia se genera una nueva linea
184 if (var_tmp_folder != var_first_folder) or (var_tmp_file[0:-5] != var_first_file[0:-5]):
185 var_last_file = (lines[j-1].split('=')[1])[:-1]
186 var_date_last_file=commands.getstatusoutput("date -r "+var_last_file+" +'%T'")[1]
187 # Si el archivo se grabara directamente en la / del DVD y no en un /directorio/
188 # se usa la etiqueta para indicar la parte de la etiqueta donde va el subdirectorio
189 if var_first_folder == '/':
190 var_folder = self.var_Elabel
191 else:
192 var_folder = var_first_folder.split('/')[1]
193
194 var_file_print.write(var_first_file[-12:-8]+" "+var_first_file[-8:-5]+" "+var_folder +" "+var_first_file[-5:-2]+" "
195 +var_last_file[-5:-2]+" "+var_date_first_file+" "+var_date_last_file+"\n")
196
197 var_first_folder = lines[j].split('=')[0]
198 var_first_file = (lines[j].split('=')[1])[:-1]
199 var_date_first_file=commands.getstatusoutput("date -r "+var_first_file+" +'%T'")[1]
200
201 var_last_file = (lines[-1].split('=')[1])[:-1]
202 var_date_last_file=commands.getstatusoutput("date -r "+var_last_file+" +'%T'")[1]
203
204 if var_first_folder == '/':
205 var_folder = self.txtElabel.text()
206 else:
207 var_folder = var_first_folder.split('/')[1]
208
209 var_file_print.write(var_first_file[-12:-8]+" "+var_first_file[-8:-5]+" "+var_folder +" "+var_first_file[-5:-2]+" "
210 +var_last_file[-5:-2]+" "+var_date_first_file+" "+var_date_last_file+"\n")
211
212 var_file.close()
213 var_file_print.close()
@@ -1,65 +1,67
1 # -*- coding: utf-8 -*-
1 # -*- coding: utf-8 -*-
2
2
3
3
4 from subprocess import *
4 from subprocess import *
5 import sys
5 import sys
6 import os
6 import os
7 import subprocess
7 import subprocess
8 import commands
8 import commands
9
9
10
10
11 def set_parameters(self):
11 def set_parameters(self):
12 """
12 """
13 Se usa para inicializar ciertos parametros para pruebas
13 Se usa para inicializar ciertos parametros para pruebas
14 """
14 """
15 #self.txtDpath.setText('/home/ricardoar/optional/STORAGE/Data/RAW_EXP/JASMET/')
15 #self.txtDpath.setText('/home/ricardoar/optional/STORAGE/Data/RAW_EXP/JASMET/')
16 #self.txtRpath.setText('/home/ricardoar/optional/STORAGE/prueba1_jro_backup_manager/')
16 #self.txtRpath.setText('/home/ricardoar/optional/STORAGE/prueba1_jro_backup_manager/')
17 self.txtDpath.setText('/home/ricardoar/optional/STORAGE/EW_DRIFTS/')
17 self.txtDpath.setText('/home/ricardoar/optional/STORAGE/EW_DRIFTS/')
18 self.txtRpath.setText('/home/ricardoar/optional/prueba1_jro_backup_manager/')
18 self.txtRpath.setText('/home/ricardoar/optional/prueba1_jro_backup_manager/')
19 self.txtElabel.setText('EW_DRIFTS')
19 self.txtElabel.setText('EW_DRIFTS')
20 self.statusDpath = True
20 self.statusDpath = True
21 self.statusRpath = True
21 self.statusRpath = True
22 self.var_n_files=0
22 self.lstDcapacity.setCurrentIndex(4)
23 self.txtDcapacity.setValue(100.0)
24 self.txtDcapacity.setReadOnly(False)
23
25
24
26
25 def detect_devices(self):
27 def detect_devices(self):
26 """
28 """
27 Deteccion de los dispositvos de grabacion
29 Deteccion de los dispositvos de grabacion
28 """
30 """
29 #var_cmd="wodim --devices | grep /dev/ | awk -F\' '{print $2}'" #Funciona en consola pero no en python ΒΏ?
31 #var_cmd="wodim --devices | grep /dev/ | awk -F\' '{print $2}'" #Funciona en consola pero no en python ΒΏ?
30 var_cmd="wodim --devices | grep /dev/ | awk '{print $2}' | awk -F= '{print $2}'"
32 var_cmd="wodim --devices | grep /dev/ | awk '{print $2}' | awk -F= '{print $2}'"
31 var_output = commands.getstatusoutput(var_cmd)
33 var_output = commands.getstatusoutput(var_cmd)
32 if var_output[0] != 0:
34 if var_output[0] != 0:
33 self.txtInfo.append("No se pudo encontrar los dispositivos de grabacion, output_error:" + str(var_output))
35 self.txtInfo.append("No se pudo encontrar los dispositivos de grabacion, output_error:" + str(var_output))
34 else:
36 else:
35 self.txtInfo.append("dispositivos encontrados")
37 self.txtInfo.append("dispositivos encontrados")
36 var_devices = var_output[1].split('\n')
38 var_devices = var_output[1].split('\n')
37
39
38 var_tmp=[]
40 var_tmp=[]
39 for i in range(0, 4):
41 for i in range(0, 4):
40 if i < len(var_devices):
42 if i < len(var_devices):
41 var_len = len(var_devices[i])
43 var_len = len(var_devices[i])
42 var_tmp.append(var_devices[i][1:var_len - 1])
44 var_tmp.append(var_devices[i][1:var_len - 1])
43 else:
45 else:
44 var_tmp.append('')
46 var_tmp.append('')
45
47
46 #Se escriben los dispostivos correspodientes, si existen
48 #Se escriben los dispostivos correspodientes, si existen
47 self.txtDeviceA.setText(str(var_tmp[0]))
49 self.txtDeviceA.setText(str(var_tmp[0]))
48 self.txtDeviceB.setText(str(var_tmp[1]))
50 self.txtDeviceB.setText(str(var_tmp[1]))
49 self.txtDeviceC.setText(str(var_tmp[2]))
51 self.txtDeviceC.setText(str(var_tmp[2]))
50 self.txtDeviceD.setText(str(var_tmp[3]))
52 self.txtDeviceD.setText(str(var_tmp[3]))
51 #Se desactivan los que no existen
53 #Se desactivan los que no existen
52 if len(var_tmp[0]) == 0 :
54 if len(var_tmp[0]) == 0 :
53 self.chkDevA.setChecked(False)
55 self.chkDevA.setChecked(False)
54 self.chkDevA.setEnabled(False)
56 self.chkDevA.setEnabled(False)
55 if len(var_tmp[1]) == 0 :
57 if len(var_tmp[1]) == 0 :
56 self.chkDevB.setChecked(False)
58 self.chkDevB.setChecked(False)
57 self.chkDevB.setEnabled(False)
59 self.chkDevB.setEnabled(False)
58 if len(var_tmp[2]) == 0 :
60 if len(var_tmp[2]) == 0 :
59 self.chkDevC.setChecked(False)
61 self.chkDevC.setChecked(False)
60 self.chkDevC.setEnabled(False)
62 self.chkDevC.setEnabled(False)
61 if len(var_tmp[3]) == 0 :
63 if len(var_tmp[3]) == 0 :
62 self.chkDevD.setChecked(False)
64 self.chkDevD.setChecked(False)
63 self.chkDevD.setEnabled(False)
65 self.chkDevD.setEnabled(False)
64
66
65
67
@@ -1,162 +1,161
1 <?xml version="1.0" encoding="UTF-8"?>
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!DOCTYPE Project SYSTEM "Project-4.6.dtd">
2 <!DOCTYPE Project SYSTEM "Project-4.6.dtd">
3 <!-- eric4 project file for project jro_backup_manager -->
3 <!-- eric4 project file for project jro_backup_manager -->
4 <!-- Saved: 2010-05-16, 23:51:59 -->
4 <!-- Saved: 2010-05-17, 12:04:38 -->
5 <!-- Copyright (C) 2010 , -->
5 <!-- Copyright (C) 2010 , -->
6 <Project version="4.6">
6 <Project version="4.6">
7 <Language>en</Language>
7 <Language>en</Language>
8 <ProgLanguage mixed="0">Python</ProgLanguage>
8 <ProgLanguage mixed="0">Python</ProgLanguage>
9 <ProjectType>Qt4</ProjectType>
9 <ProjectType>Qt4</ProjectType>
10 <Description></Description>
10 <Description></Description>
11 <Version>0.1</Version>
11 <Version>0.1</Version>
12 <Author></Author>
12 <Author></Author>
13 <Email></Email>
13 <Email></Email>
14 <Sources>
14 <Sources>
15 <Source>__init__.py</Source>
15 <Source>__init__.py</Source>
16 <Source>ui/Ui_MainWindow.py</Source>
16 <Source>ui/Ui_MainWindow.py</Source>
17 <Source>ui/MainWindow.py</Source>
17 <Source>ui/MainWindow.py</Source>
18 <Source>main.py</Source>
18 <Source>main.py</Source>
19 <Source>ui/__init__.py</Source>
19 <Source>ui/__init__.py</Source>
20 <Source>functions/__init__.py</Source>
20 <Source>functions/__init__.py</Source>
21 <Source>functions/functions.py</Source>
21 <Source>functions/functions.py</Source>
22 <Source>functions/functions2.py</Source>
22 <Source>functions/functions2.py</Source>
23 <Source>functions/func_doc.py</Source>
23 <Source>functions/func_doc.py</Source>
24 </Sources>
24 </Sources>
25 <Forms>
25 <Forms>
26 <Form>ui/MainWindow.ui</Form>
26 <Form>ui/MainWindow.ui</Form>
27 </Forms>
27 </Forms>
28 <Translations>
28 <Translations>
29 </Translations>
29 </Translations>
30 <Resources>
30 <Resources>
31 </Resources>
31 </Resources>
32 <Interfaces>
32 <Interfaces>
33 </Interfaces>
33 </Interfaces>
34 <Others>
34 <Others>
35 <Other>functions/doc_tmp.txt</Other>
36 </Others>
35 </Others>
37 <MainScript>main.py</MainScript>
36 <MainScript>main.py</MainScript>
38 <Vcs>
37 <Vcs>
39 <VcsType>Subversion</VcsType>
38 <VcsType>Subversion</VcsType>
40 <VcsOptions>
39 <VcsOptions>
41 <dict>
40 <dict>
42 <key>
41 <key>
43 <string>add</string>
42 <string>add</string>
44 </key>
43 </key>
45 <value>
44 <value>
46 <list>
45 <list>
47 <string></string>
46 <string></string>
48 </list>
47 </list>
49 </value>
48 </value>
50 <key>
49 <key>
51 <string>checkout</string>
50 <string>checkout</string>
52 </key>
51 </key>
53 <value>
52 <value>
54 <list>
53 <list>
55 <string></string>
54 <string></string>
56 </list>
55 </list>
57 </value>
56 </value>
58 <key>
57 <key>
59 <string>commit</string>
58 <string>commit</string>
60 </key>
59 </key>
61 <value>
60 <value>
62 <list>
61 <list>
63 <string></string>
62 <string></string>
64 </list>
63 </list>
65 </value>
64 </value>
66 <key>
65 <key>
67 <string>diff</string>
66 <string>diff</string>
68 </key>
67 </key>
69 <value>
68 <value>
70 <list>
69 <list>
71 <string></string>
70 <string></string>
72 </list>
71 </list>
73 </value>
72 </value>
74 <key>
73 <key>
75 <string>export</string>
74 <string>export</string>
76 </key>
75 </key>
77 <value>
76 <value>
78 <list>
77 <list>
79 <string></string>
78 <string></string>
80 </list>
79 </list>
81 </value>
80 </value>
82 <key>
81 <key>
83 <string>global</string>
82 <string>global</string>
84 </key>
83 </key>
85 <value>
84 <value>
86 <list>
85 <list>
87 <string></string>
86 <string></string>
88 </list>
87 </list>
89 </value>
88 </value>
90 <key>
89 <key>
91 <string>history</string>
90 <string>history</string>
92 </key>
91 </key>
93 <value>
92 <value>
94 <list>
93 <list>
95 <string></string>
94 <string></string>
96 </list>
95 </list>
97 </value>
96 </value>
98 <key>
97 <key>
99 <string>log</string>
98 <string>log</string>
100 </key>
99 </key>
101 <value>
100 <value>
102 <list>
101 <list>
103 <string></string>
102 <string></string>
104 </list>
103 </list>
105 </value>
104 </value>
106 <key>
105 <key>
107 <string>remove</string>
106 <string>remove</string>
108 </key>
107 </key>
109 <value>
108 <value>
110 <list>
109 <list>
111 <string></string>
110 <string></string>
112 </list>
111 </list>
113 </value>
112 </value>
114 <key>
113 <key>
115 <string>status</string>
114 <string>status</string>
116 </key>
115 </key>
117 <value>
116 <value>
118 <list>
117 <list>
119 <string></string>
118 <string></string>
120 </list>
119 </list>
121 </value>
120 </value>
122 <key>
121 <key>
123 <string>tag</string>
122 <string>tag</string>
124 </key>
123 </key>
125 <value>
124 <value>
126 <list>
125 <list>
127 <string></string>
126 <string></string>
128 </list>
127 </list>
129 </value>
128 </value>
130 <key>
129 <key>
131 <string>update</string>
130 <string>update</string>
132 </key>
131 </key>
133 <value>
132 <value>
134 <list>
133 <list>
135 <string></string>
134 <string></string>
136 </list>
135 </list>
137 </value>
136 </value>
138 </dict>
137 </dict>
139 </VcsOptions>
138 </VcsOptions>
140 <VcsOtherData>
139 <VcsOtherData>
141 <dict>
140 <dict>
142 <key>
141 <key>
143 <string>standardLayout</string>
142 <string>standardLayout</string>
144 </key>
143 </key>
145 <value>
144 <value>
146 <bool>True</bool>
145 <bool>True</bool>
147 </value>
146 </value>
148 </dict>
147 </dict>
149 </VcsOtherData>
148 </VcsOtherData>
150 </Vcs>
149 </Vcs>
151 <FiletypeAssociations>
150 <FiletypeAssociations>
152 <FiletypeAssociation pattern="*.ui" type="FORMS" />
151 <FiletypeAssociation pattern="*.ui" type="FORMS" />
153 <FiletypeAssociation pattern="*.idl" type="INTERFACES" />
152 <FiletypeAssociation pattern="*.idl" type="INTERFACES" />
154 <FiletypeAssociation pattern="*.qm" type="TRANSLATIONS" />
153 <FiletypeAssociation pattern="*.qm" type="TRANSLATIONS" />
155 <FiletypeAssociation pattern="*.ptl" type="SOURCES" />
154 <FiletypeAssociation pattern="*.ptl" type="SOURCES" />
156 <FiletypeAssociation pattern="*.pyw" type="SOURCES" />
155 <FiletypeAssociation pattern="*.pyw" type="SOURCES" />
157 <FiletypeAssociation pattern="*.ui.h" type="FORMS" />
156 <FiletypeAssociation pattern="*.ui.h" type="FORMS" />
158 <FiletypeAssociation pattern="*.ts" type="TRANSLATIONS" />
157 <FiletypeAssociation pattern="*.ts" type="TRANSLATIONS" />
159 <FiletypeAssociation pattern="*.py" type="SOURCES" />
158 <FiletypeAssociation pattern="*.py" type="SOURCES" />
160 <FiletypeAssociation pattern="*.qrc" type="RESOURCES" />
159 <FiletypeAssociation pattern="*.qrc" type="RESOURCES" />
161 </FiletypeAssociations>
160 </FiletypeAssociations>
162 </Project> No newline at end of file
161 </Project>
@@ -1,412 +1,316
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 Ui_MainWindow import Ui_MainWindow
9 from Ui_MainWindow import Ui_MainWindow
10 from PyQt4 import QtGui
10 from PyQt4 import QtGui
11 from subprocess import *
11 from subprocess import *
12 import sys
12 import sys
13 import os
13 import os
14 import subprocess
14 import subprocess
15 import commands
15 import commands
16 from functions import functions
16 from functions import functions
17 from functions import functions2
17 from functions import functions2
18
18
19 class MainWindow(QMainWindow, Ui_MainWindow):
19 class MainWindow(QMainWindow, Ui_MainWindow):
20 """
20 """
21 Class documentation goes here.
21 Class documentation goes here.
22 """
22 """
23
23
24 def __init__(self, parent = None):
24 def __init__(self, parent = None):
25 QMainWindow.__init__(self, parent)
25 QMainWindow.__init__(self, parent)
26 self.setupUi(self)
26 self.setupUi(self)
27 self.setupUi2()
27 self.setupUi2()
28 sys.stdout = self #redirige salida estandar
28 sys.stdout = self #redirige salida estandar
29
29
30 def setupUi2(self):
30 def setupUi2(self):
31
31
32 self.statusDpath = False
33 self.statusRpath = False
34
35 functions2.set_parameters(self) #Establece ciertos parametros, para pruebas
36
32 self.var_Dpath = self.txtDpath.text()
37 self.var_Dpath = self.txtDpath.text()
33 self.var_Rpath = self.txtRpath.text()
38 self.var_Rpath = self.txtRpath.text()
34 self.statusDpath = False
35 self.statusRpath = False
36
37 self.var_Dtype = self.txtDtype.text()
39 self.var_Dtype = self.txtDtype.text()
38 self.var_Elabel = self.txtElabel.text()
40 self.var_Elabel = self.txtElabel.text()
39 self.var_Copys = self.txtCopys.value()
41 self.var_Copys = self.txtCopys.value()
40 self.var_Dcapacity = self.txtDcapacity.value() * 1024
42 self.var_Dcapacity = self.txtDcapacity.value() * 1024
41
43
42 self.var_n_files=0
44 self.var_n_discs=0
43 self.var_list=[]
45 self.var_list=[]
44 self.var_sublist=[]
46 self.var_sublist=[]
45
47
46 functions2.set_parameters(self) #Establece ciertos parametros, para pruebas
47 functions2.detect_devices(self) #busca los dispositivos de grabacion
48 functions2.detect_devices(self) #busca los dispositivos de grabacion
48
49
49
50
50 def write(self, txt):
51 def write(self, txt):
51 """
52 """
52 Escribe la salida estandar eb txtInfo
53 Escribe la salida estandar eb txtInfo
53 """
54 """
54 self.txtInfo.append(str(txt))
55 self.txtInfo.append(str(txt))
55
56
56
57
57 @pyqtSignature("")
58 @pyqtSignature("")
58 def on_btnDpath_clicked(self):
59 def on_btnDpath_clicked(self):
59 """
60 """
60 Permite seleccionar graficamente el direcorio de los datos a grabar
61 Permite seleccionar graficamente el direcorio de los datos a grabar
61 """
62 """
62 self.var_Dpath= QtGui.QFileDialog.getExistingDirectory(self, 'Open Directory', './', QtGui.QFileDialog.ShowDirsOnly)
63 self.var_Dpath= QtGui.QFileDialog.getExistingDirectory(self, 'Open Directory', './', QtGui.QFileDialog.ShowDirsOnly)
63 self.txtDpath.setText(self.var_Dpath)
64 self.txtDpath.setText(self.var_Dpath)
64 self.on_txtDpath_editingFinished() #llamada a funcion
65 self.on_txtDpath_editingFinished() #llamada a funcion
65
66
66
67
67 @pyqtSignature("")
68 @pyqtSignature("")
68 def on_btnRpath_clicked(self):
69 def on_btnRpath_clicked(self):
69 """
70 """
70 Permite seleccionar graficamente el direcorio del proyecto
71 Permite seleccionar graficamente el direcorio del proyecto
71 """
72 """
72 self.var_Rpath = QtGui.QFileDialog.getExistingDirectory(self, 'Open Directory', './', QtGui.QFileDialog.ShowDirsOnly)
73 self.var_Rpath = QtGui.QFileDialog.getExistingDirectory(self, 'Open Directory', './', QtGui.QFileDialog.ShowDirsOnly)
73 self.txtRpath.setText(self.var_Rpath)
74 self.txtRpath.setText(self.var_Rpath)
74 self.on_txtRpath_editingFinished() #llamada a funcion
75 self.on_txtRpath_editingFinished() #llamada a funcion
75
76
76
77
77 @pyqtSignature("")
78 @pyqtSignature("")
78 def on_txtDpath_editingFinished(self):
79 def on_txtDpath_editingFinished(self):
79 """
80 """
80 Permite buscar los archivos de extension seleccionada en la ruta de de datos
81 Permite buscar los archivos de extension seleccionada en la ruta de de datos
81 y cargar los valores para el rango de tiempo a ser grabado
82 y cargar los valores para el rango de tiempo a ser grabado
82 """
83 """
83 self.var_Dpath=self.txtDpath.text() #Se carga la variable con la ruta recien editada
84 self.var_Dpath=self.txtDpath.text() #Se carga la variable con la ruta recien editada
84 self.statusDpath = functions.dir_exists(self.var_Dpath, self)
85 self.statusDpath = functions.dir_exists(self.var_Dpath, self)
85 functions.load_days(self)
86 functions.load_days(self)
86
87
87
88
88 @pyqtSignature("")
89 @pyqtSignature("")
89 def on_txtRpath_editingFinished(self):
90 def on_txtRpath_editingFinished(self):
90 """
91 """
91 Valida la ruta del proyecto
92 Valida la ruta del proyecto
92 """
93 """
93 self.var_Rpath=self.txtRpath.text() #Se carga la variable con la ruta recien editada
94 self.var_Rpath=self.txtRpath.text() #Se carga la variable con la ruta recien editada
94 self.statusRpath = functions.dir_exists(self.var_Rpath, self)
95 self.statusRpath = functions.dir_exists(self.var_Rpath, self)
95
96
96
97
97 @pyqtSignature("int")
98 @pyqtSignature("int")
98 def on_lstDtype_activated(self, index):
99 def on_lstDtype_activated(self, index):
99 """
100 """
100 Permite elegir entre los tipos de archivos
101 Permite elegir entre los tipos de archivos
101 """
102 """
102 if index == 0:
103 if index == 0:
103 var_type='r'
104 var_type='r'
104 elif index == 1:
105 elif index == 1:
105 var_type='pdata'
106 var_type='pdata'
106 elif index == 2:
107 elif index == 2:
107 var_type='sswma'
108 var_type='sswma'
108
109
109 if index != 3:
110 if index != 3:
110 self.txtDtype.setText(var_type)
111 self.txtDtype.setText(var_type)
111 self.txtDtype.setReadOnly(True)
112 self.txtDtype.setReadOnly(True)
113 self.var_Dtype=self.txtDtype.text()
112 functions.load_days(self)
114 functions.load_days(self)
115
113 else:
116 else:
114 self.txtDtype.setText('')
117 self.txtDtype.setText('')
115 self.txtDtype.setReadOnly(False)
118 self.txtDtype.setReadOnly(False)
116
119
117
120
118 @pyqtSignature("")
121 @pyqtSignature("")
119 def on_txtDtype_editingFinished(self):
122 def on_txtDtype_editingFinished(self):
120 self.var_Dtype=self.txtDtype.text()
123 self.var_Dtype=self.txtDtype.text()
121 functions.load_days(self) #llamada a funcion
124 functions.load_days(self) #llamada a funcion
122
125
123
126
124 @pyqtSignature("")
127 @pyqtSignature("")
125 def on_txtElabel_editingFinished(self):
128 def on_txtElabel_editingFinished(self):
126 self.var_Elabel = self.txtElabel.text()
129 self.var_Elabel = self.txtElabel.text()
127
130
128
131
129 @pyqtSignature("")
132 @pyqtSignature("")
130 def on_txtCopys_editingFinished(self):
133 def on_txtCopys_editingFinished(self):
131 self.var_Copys = self.txtCopys.value()
134 self.var_Copys = self.txtCopys.value()
132
135
133
136
134 @pyqtSignature("")
137 @pyqtSignature("")
135 def on_txtDcapacity_editingFinished(self):
138 def on_txtDcapacity_editingFinished(self):
136 self.var_Dcapacity = self.txtDcapacity.value() * 1024
139 self.var_Dcapacity = self.txtDcapacity.value() * 1024 #tamaΓ±o en KB
137
140
138
141
139 @pyqtSignature("int") #CLOSED
142 @pyqtSignature("int") #CLOSED
140 def on_lstStartDay_activated(self, index):
143 def on_lstStartDay_activated(self, index):
141 """
144 """
142 Cambia la lista de opciones en lstStopDay
145 Cambia la lista de opciones en lstStopDay
143 """
146 """
144 var_StopDay_index=self.lstStopDay.count() - self.lstStopDay.currentIndex()
147 var_StopDay_index=self.lstStopDay.count() - self.lstStopDay.currentIndex()
145 self.lstStopDay.clear()
148 self.lstStopDay.clear()
146
149
147 for i in self.var_list[index:]:
150 for i in self.var_list[index:]:
148 self.lstStopDay.addItem(i)
151 self.lstStopDay.addItem(i)
149
152
150 self.lstStopDay.setCurrentIndex(self.lstStopDay.count() - var_StopDay_index)
153 self.lstStopDay.setCurrentIndex(self.lstStopDay.count() - var_StopDay_index)
151
154
152 functions.get_sub_list(self)
155 functions.get_sub_list(self)
153
156
154
157
155 @pyqtSignature("int") #CLOSED
158 @pyqtSignature("int") #CLOSED
156 def on_lstStopDay_activated(self, index):
159 def on_lstStopDay_activated(self, index):
157 """
160 """
158 Cambia la lista de opciones en lstStartDay
161 Cambia la lista de opciones en lstStartDay
159 """
162 """
160 var_StartDay_index=self.lstStartDay.currentIndex()
163 var_StartDay_index=self.lstStartDay.currentIndex()
161 var_end_index = self.lstStopDay.count() - index
164 var_end_index = self.lstStopDay.count() - index
162 self.lstStartDay.clear()
165 self.lstStartDay.clear()
163
166
164 for i in self.var_list[:len(self.var_list) - var_end_index + 1]:
167 for i in self.var_list[:len(self.var_list) - var_end_index + 1]:
165 self.lstStartDay.addItem(i)
168 self.lstStartDay.addItem(i)
166
169
167 self.lstStartDay.setCurrentIndex(var_StartDay_index)
170 self.lstStartDay.setCurrentIndex(var_StartDay_index)
168
171
169 functions.get_sub_list(self)
172 functions.get_sub_list(self)
170
173
171
174
172 @pyqtSignature("int") #CLOSED
175 @pyqtSignature("int") #CLOSED
173 def on_lstDcapacity_activated(self, index):
176 def on_lstDcapacity_activated(self, index):
174 """
177 """
175 Permite elegir el tamaΓ±o del disco
178 Permite elegir el tamaΓ±o del disco
176 """
179 """
177 if index == 0:
180 if index == 0:
178 var_size=25.0
181 var_size=25.0
179 elif index == 1:
182 elif index == 1:
180 var_size=8.5
183 var_size=8.5
181 elif index == 2:
184 elif index == 2:
182 var_size=4.7
185 var_size=4.7
183 elif index == 3:
186 elif index == 3:
184 var_size=0.7
187 var_size=0.7
185
188
186 if index != 4:
189 if index != 4:
187 self.txtDcapacity.setValue(var_size*10**9/1024**2)
190 self.txtDcapacity.setValue(var_size*10**9/1024**2)
188 self.txtDcapacity.setReadOnly(True)
191 self.txtDcapacity.setReadOnly(True)
189 else:
192 else:
190 self.txtDcapacity.setValue(100.0)
193 self.txtDcapacity.setValue(100.0)
191 self.txtDcapacity.setReadOnly(False)
194 self.txtDcapacity.setReadOnly(False)
192
195
196 self.var_Dcapacity = self.txtDcapacity.value() * 1024 #tamaΓ±o en KB
197
193
198
194 @pyqtSignature("")
199 @pyqtSignature("")
195 def on_btnGbkp_clicked(self):
200 def on_btnGbkp_clicked(self):
196 """
201 """
197 Cuando se presiona el boton btnGbkp
202 Cuando se presiona el boton btnGbkp
198 """
203 """
199
204
200 if functions.validate_parameters(self) == False:
205 if functions.validate_parameters(self) == False:
201 return
206 return
202
207
203 #Crea las carpetas en la ruta del proyecto y verifica que se crearon correctamente
208 #Crea las carpetas en la ruta del proyecto y verifica que se crearon correctamente
204 list_dirs=['gpath', 'iso', 'ppath']
209 list_dirs=['gpath','iso','ppath']
205 functions.make_dirs(self.var_Rpath, list_dirs, self)
210 bool_make_dirs = functions.make_dirs(list_dirs, self)
206
211 if bool_make_dirs == False:
207 #Cargando variables con los parametros
212 return
208 var_Rpath_ppath=self.var_Rpath+"/ppath" #Ruta de los archivos a grabar
213
209
214 var_files_list = functions.list_files(self) #Se obtiene la lista de archivos a grabar
210 #Busca los archivos con los parametros de busqueda
215 self.var_n_discs = functions.make_files_dat(var_files_list, self) #Se crean los archivos .dat
211 var_files_list=[]
216
212 for var_doy in var_sublist:
217 functions.make_files_print(self) # Se crean los archivos .print
213 var_cmd="find " + str(self.var_Dpath) + " -name ?"+var_doy+"???."+ str(self.var_Dtype) + " |sort"
214 var_output=commands.getstatusoutput(var_cmd)[1]
215 for var_file in var_output.split():
216 var_files_list.append(var_file) #Almacena cada archivo en la lista
217
218 #
219 #Genera la lista de archivos .dat que contienen los archivos a grabar en cada DVD
220 #
221 var_n=0 #Numero del DVD actual
222 var_tmp=0 #Se usa para acumulanr el tamaΓ±o de los archivos de la lista
223 var_files_list_2=[] #Se usa para almacenar la lista de archivos agrbar en cada DVD
224
225 for i in var_files_list: #Se asignan en i los archivos de la lista
226 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
227 var_tmp += var_size_i #Se acumulan el tamaΓ±o de los archivos de la lista
228
229 #Si el tamaΓ±o acumulado es mayor que el de el DVD
230 if var_tmp > self.var_Dcapacity:
231 var_tmp -= var_size_i #se quita el tamaΓ±o sumado para mostrar el tamaΓ±o real
232 #se crea un archivo con numeral en el sufijo y extension .dat
233 var_file = open(var_Rpath_ppath+"/"+self.txtElabel.text()+"_"+functions.i2s(var_n)+".dat","w")
234 #Se aΓ±ade la lista de archivos a grabar en el DVD al archivo .dat
235 for line in var_files_list_2:
236 var_tmp_path=(line.split(self.var_Dpath)[1]).split('/')
237 var_tmp_path2="/"
238 for l in range(0, len(var_tmp_path)-1):
239 var_tmp_path2=var_tmp_path2+str(var_tmp_path[l])+"/"
240 var_file.write(var_tmp_path2+'=')
241 var_file.write(line+'\n')
242 var_file.close()
243
244 var_tmp = var_size_i #Se asigna a la variable el tamaΓ±o del archivo actual
245 var_files_list_2=[] #Se reinicia la lista
246 var_n += 1
247 var_files_list_2.append(i)
248
249 #se crea un archivo con numeral en el sufijo y extension .dat
250 var_file = open(var_Rpath_ppath+"/"+self.txtElabel.text()+"_"+functions.i2s(var_n)+".dat","w")
251 #Se aΓ±ade la lista de archivos a grabar en el DVD al archivo .dat
252 for line in var_files_list_2:
253 var_tmp_path=(line.split(self.var_Dpath)[1]).split('/')
254 var_tmp_path2="/"
255 for l in range(0, len(var_tmp_path)-1):
256 var_tmp_path2=var_tmp_path2+str(var_tmp_path[l])+"/"
257 var_file.write(var_tmp_path2+'=')
258 var_file.write(line+'\n')
259 var_file.close()
260
261 #
262 #Genera los archivos .print con los cuales se creara los postscript
263 #
264 self.var_n_files = var_n # Numero del ultimo archivo .dat creado
265 var_n = 0 # Se reinicia a cero y se usa para poder acceder a cada una de los archivos
266
267 # Se leen todos los archivos .dat creados para crear las etiquetas en los archivos .ps
268 for var_n in range(0, self.var_n_files+1):
269 print var_n
270
271 #se abren los archivos .dat en modo lectura
272 var_file = open(var_Rpath_ppath+"/"+self.txtElabel.text()+"_"+functions.i2s(var_n)+".dat","r")
273 lines=var_file.readlines() # Se lee las lineas en el archivo y se almacenan en la lista
274
275 # Se crea el archivo .print
276 var_file_print = open(var_Rpath_ppath+"/"+self.txtElabel.text()+"_"+functions.i2s(var_n)+".print","w")
277 var_file_print.write(self.txtElabel.text()+" "+functions.i2s(var_n)+"/"+str(self.var_n_files)+"\n")
278 var_file_print.write("Year Doy Folder Set Time range\n")
279
280 #Se crean los archivos .print con los cuales se crearan los archivos .ps
281 var_first_folder = lines[0].split('=')[0]
282 var_first_file = (lines[0].split('=')[1])[:-1]
283 var_date_first_file=commands.getstatusoutput("date -r "+var_first_file+" +'%T'")[1]
284
285 for j in range(1, len(lines)-1):
286 var_tmp_folder = lines[j].split('=')[0]
287 var_tmp_file = (lines[j].split('=')[1])[:-1]
288
289 # Si el subfolder superior o la fecha del archivo cambia se genera una nueva linea
290 if (var_tmp_folder != var_first_folder) or (var_tmp_file[0:-5] != var_first_file[0:-5]):
291
292 var_last_file = (lines[j-1].split('=')[1])[:-1]
293 var_date_last_file=commands.getstatusoutput("date -r "+var_last_file+" +'%T'")[1]
294 # Si el archivo se grabara directamente en la / del DVD y no en un /directorio/
295 # se usa la etiqueta para indicar la parte de la etiqueta donde va el subdirectorio
296 if var_first_folder == '/':
297 var_folder = self.txtElabel.text()
298 else:
299 var_folder = var_first_folder.split('/')[1]
300
301 var_file_print.write(var_first_file[-12:-8]+" "+var_first_file[-8:-5]+" "+var_folder +" "+var_first_file[-5:-2]+" "
302 +var_last_file[-5:-2]+" "+var_date_first_file+" "+var_date_last_file+"\n")
303
304 var_first_folder = lines[j].split('=')[0]
305 var_first_file = (lines[j].split('=')[1])[:-1]
306 var_date_first_file=commands.getstatusoutput("date -r "+var_first_file+" +'%T'")[1]
307
308 var_last_file = (lines[-1].split('=')[1])[:-1]
309 var_date_last_file=commands.getstatusoutput("date -r "+var_last_file+" +'%T'")[1]
310
311 if var_first_folder == '/':
312 var_folder = self.txtElabel.text()
313 else:
314 var_folder = var_first_folder.split('/')[1]
315
316 var_file_print.write(var_first_file[-12:-8]+" "+var_first_file[-8:-5]+" "+var_folder +" "+var_first_file[-5:-2]+" "
317 +var_last_file[-5:-2]+" "+var_date_first_file+" "+var_date_last_file+"\n")
318
319 var_file.close()
320 var_file_print.close()
321
322
218
323 #Se deshabilita el Tab Parameters y el boton btnGbkp
219 #Se deshabilita el Tab Parameters y el boton btnGbkp
324 self.tabParameters.setEnabled(False)
220 self.tabParameters.setEnabled(False)
325 self.lstDcapacity.setEnabled(False)
221 self.lstDcapacity.setEnabled(False)
326 self.txtDcapacity.setEnabled(False)
222 self.txtDcapacity.setEnabled(False)
327 self.btnGbkp.setEnabled(False)
223 self.btnGbkp.setEnabled(False)
328 self.btnRestart.setEnabled(True)
224 self.btnRestart.setEnabled(True)
225 self.btnStartburn.setEnabled(True)
329
226
330
227
331 @pyqtSignature("")
228 @pyqtSignature("")
332 def on_btnRestart_clicked(self):
229 def on_btnRestart_clicked(self):
333 """
230 """
334 Slot documentation goes here.
231 Permite que se puedan cambiar los parametros
335 """
232 """
336 self.tabParameters.setEnabled(True)
233 self.tabParameters.setEnabled(True)
337 self.lstDcapacity.setEnabled(True)
234 self.lstDcapacity.setEnabled(True)
338 self.txtDcapacity.setEnabled(True)
235 self.txtDcapacity.setEnabled(True)
339 self.btnGbkp.setEnabled(True)
236 self.btnGbkp.setEnabled(True)
340 self.btnRestart.setEnabled(False)
237 self.btnRestart.setEnabled(False)
238 self.btnStartburn.setEnabled(False)
341
239
342
240
343 @pyqtSignature("")
241 @pyqtSignature("")
344 def on_btnStartburn_clicked(self):
242 def on_btnStartburn_clicked(self):
345 """
243 """
346 Se inicia el proceso de grabacion
244 Se inicia el proceso de grabacion
347 """
245 """
246 self.btnRestart.setEnabled(False)
247 self.btnStartburn.setEnabled(False)
248 self.btnStopburn.setEnabled(True)
249
250 return
251
348 sys.stdout = self
252 sys.stdout = self
349 #sys.stderr = self
253 #sys.stderr = self
350 print "stdout_!!!"
254 print "stdout_!!!"
351
255
352 #Inicializando variables
256 #Inicializando variables
353 var_Rpath=self.txtRpath.text()
257 var_Rpath=self.txtRpath.text()
354 var_Rpath_ppath=var_Rpath+"/ppath"
258 var_Rpath_ppath=var_Rpath+"/ppath"
355 var_Rpath_iso=var_Rpath+"/iso"
259 var_Rpath_iso=var_Rpath+"/iso"
356 var_label=self.txtElabel.text()
260 var_label=self.txtElabel.text()
357
261
358 # Se leen todos los archivos .dat creados para crear las etiquetas en los archivos .ps
262 # Se leen todos los archivos .dat creados para crear las etiquetas en los archivos .ps
359 for var_n in range(0, self.var_n_files+1):
263 for var_n in range(0, self.var_n_discs+1):
360 print var_n
264 print var_n
361
265
362 file_iso=var_Rpath_iso+"/"+functions.i2s(var_n)+".iso"
266 file_iso=var_Rpath_iso+"/"+functions.i2s(var_n)+".iso"
363 file_dat=var_Rpath_ppath+"/"+self.txtElabel.text()+"_"+functions.i2s(var_n)+".dat"
267 file_dat=var_Rpath_ppath+"/"+self.txtElabel.text()+"_"+functions.i2s(var_n)+".dat"
364
268
365 var_cmd = 'genisoimage -hide-joliet-trans-tbl -joliet-long -r '
269 var_cmd = 'genisoimage -hide-joliet-trans-tbl -joliet-long -r '
366 var_cmd += ' -A '+var_label+' -V '+var_label
270 var_cmd += ' -A '+var_label+' -V '+var_label
367 var_cmd += ' -graft-points -path-list '+ file_dat+' -o '+file_iso
271 var_cmd += ' -graft-points -path-list '+ file_dat+' -o '+file_iso
368 self.txtInfo.append(var_cmd)
272 self.txtInfo.append(var_cmd)
369
273
370 var_output=commands.getstatusoutput(str(var_cmd))[0]
274 var_output=commands.getstatusoutput(str(var_cmd))[0]
371 self.txtInfo.append(str(var_output))
275 self.txtInfo.append(str(var_output))
372
276
373 #os.system(str(var_cmd))
277 #os.system(str(var_cmd))
374 #p = subprocess.Popen(str('ls /'), shell=True, stdout=self)
278 #p = subprocess.Popen(str('ls /'), shell=True, stdout=self)
375 #os.waitpid(p.pid, 0)
279 #os.waitpid(p.pid, 0)
376 ####self.txtInfo.append(str(p.pid))
280 ####self.txtInfo.append(str(p.pid))
377
281
378
282
379 @pyqtSignature("")
283 @pyqtSignature("")
380 def on_btnStopburn_clicked(self):
284 def on_btnStopburn_clicked(self):
381 """
285 """
382 Slot documentation goes here.
286 Slot documentation goes here.
383 """
287 """
384 # TODO: not implemented yet
288 self.btnRestart.setEnabled(True)
385 raise NotImplementedError
289 self.btnStartburn.setEnabled(True)
386
290 self.btnStopburn.setEnabled(False)
387
291
388 @pyqtSignature("")
292 @pyqtSignature("")
389 def on_btnTdevA_clicked(self):
293 def on_btnTdevA_clicked(self):
390 var_dev = str(self.txtDeviceA.text())
294 var_dev = str(self.txtDeviceA.text())
391 var_cmd = 'eject ' + var_dev + '; eject -t ' + var_dev
295 var_cmd = 'eject ' + var_dev + '; eject -t ' + var_dev
392 commands.getstatusoutput(var_cmd)
296 commands.getstatusoutput(var_cmd)
393
297
394 @pyqtSignature("")
298 @pyqtSignature("")
395 def on_btnTdevB_clicked(self):
299 def on_btnTdevB_clicked(self):
396 var_dev = str(self.txtDeviceB.text())
300 var_dev = str(self.txtDeviceB.text())
397 var_cmd = 'eject ' + var_dev + '; eject -t ' + var_dev
301 var_cmd = 'eject ' + var_dev + '; eject -t ' + var_dev
398 commands.getstatusoutput(var_cmd)
302 commands.getstatusoutput(var_cmd)
399
303
400 @pyqtSignature("")
304 @pyqtSignature("")
401 def on_btnTdevC_clicked(self):
305 def on_btnTdevC_clicked(self):
402 var_dev = str(self.txtDeviceC.text())
306 var_dev = str(self.txtDeviceC.text())
403 var_cmd = 'eject ' + var_dev + '; eject -t ' + var_dev
307 var_cmd = 'eject ' + var_dev + '; eject -t ' + var_dev
404 commands.getstatusoutput(var_cmd)
308 commands.getstatusoutput(var_cmd)
405
309
406 @pyqtSignature("")
310 @pyqtSignature("")
407 def on_btnTdevD_clicked(self):
311 def on_btnTdevD_clicked(self):
408 var_dev = str(self.txtDeviceD.text())
312 var_dev = str(self.txtDeviceD.text())
409 var_cmd = 'eject ' + var_dev + '; eject -t ' + var_dev
313 var_cmd = 'eject ' + var_dev + '; eject -t ' + var_dev
410 commands.getstatusoutput(var_cmd)
314 commands.getstatusoutput(var_cmd)
411
315
412
316
@@ -1,967 +1,967
1 <?xml version="1.0" encoding="UTF-8"?>
1 <?xml version="1.0" encoding="UTF-8"?>
2 <ui version="4.0">
2 <ui version="4.0">
3 <class>MainWindow</class>
3 <class>MainWindow</class>
4 <widget class="QMainWindow" name="MainWindow">
4 <widget class="QMainWindow" name="MainWindow">
5 <property name="geometry">
5 <property name="geometry">
6 <rect>
6 <rect>
7 <x>0</x>
7 <x>0</x>
8 <y>0</y>
8 <y>0</y>
9 <width>754</width>
9 <width>806</width>
10 <height>737</height>
10 <height>737</height>
11 </rect>
11 </rect>
12 </property>
12 </property>
13 <property name="windowTitle">
13 <property name="windowTitle">
14 <string>JRO BACKUP MANAGER</string>
14 <string>JRO BACKUP MANAGER</string>
15 </property>
15 </property>
16 <widget class="QWidget" name="centralwidget">
16 <widget class="QWidget" name="centralwidget">
17 <layout class="QVBoxLayout" name="verticalLayout">
17 <layout class="QVBoxLayout" name="verticalLayout">
18 <item>
18 <item>
19 <widget class="QTabWidget" name="tabWidget">
19 <widget class="QTabWidget" name="tabWidget">
20 <property name="enabled">
20 <property name="enabled">
21 <bool>true</bool>
21 <bool>true</bool>
22 </property>
22 </property>
23 <property name="sizePolicy">
23 <property name="sizePolicy">
24 <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
24 <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
25 <horstretch>0</horstretch>
25 <horstretch>0</horstretch>
26 <verstretch>0</verstretch>
26 <verstretch>0</verstretch>
27 </sizepolicy>
27 </sizepolicy>
28 </property>
28 </property>
29 <property name="currentIndex">
29 <property name="currentIndex">
30 <number>0</number>
30 <number>0</number>
31 </property>
31 </property>
32 <widget class="QWidget" name="tabParameters">
32 <widget class="QWidget" name="tabParameters">
33 <property name="enabled">
33 <property name="enabled">
34 <bool>true</bool>
34 <bool>true</bool>
35 </property>
35 </property>
36 <attribute name="title">
36 <attribute name="title">
37 <string>Parameters</string>
37 <string>Parameters</string>
38 </attribute>
38 </attribute>
39 <layout class="QVBoxLayout" name="verticalLayout_2">
39 <layout class="QVBoxLayout" name="verticalLayout_2">
40 <item>
40 <item>
41 <layout class="QHBoxLayout" name="horizontalLayout">
41 <layout class="QHBoxLayout" name="horizontalLayout">
42 <property name="sizeConstraint">
42 <property name="sizeConstraint">
43 <enum>QLayout::SetDefaultConstraint</enum>
43 <enum>QLayout::SetDefaultConstraint</enum>
44 </property>
44 </property>
45 <item>
45 <item>
46 <widget class="QLineEdit" name="txtDpath">
46 <widget class="QLineEdit" name="txtDpath">
47 <property name="sizePolicy">
47 <property name="sizePolicy">
48 <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
48 <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
49 <horstretch>0</horstretch>
49 <horstretch>0</horstretch>
50 <verstretch>0</verstretch>
50 <verstretch>0</verstretch>
51 </sizepolicy>
51 </sizepolicy>
52 </property>
52 </property>
53 </widget>
53 </widget>
54 </item>
54 </item>
55 <item>
55 <item>
56 <widget class="QPushButton" name="btnDpath">
56 <widget class="QPushButton" name="btnDpath">
57 <property name="sizePolicy">
57 <property name="sizePolicy">
58 <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
58 <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
59 <horstretch>0</horstretch>
59 <horstretch>0</horstretch>
60 <verstretch>0</verstretch>
60 <verstretch>0</verstretch>
61 </sizepolicy>
61 </sizepolicy>
62 </property>
62 </property>
63 <property name="text">
63 <property name="text">
64 <string>Data Path</string>
64 <string>Data Path</string>
65 </property>
65 </property>
66 <property name="checkable">
66 <property name="checkable">
67 <bool>false</bool>
67 <bool>false</bool>
68 </property>
68 </property>
69 </widget>
69 </widget>
70 </item>
70 </item>
71 </layout>
71 </layout>
72 </item>
72 </item>
73 <item>
73 <item>
74 <layout class="QHBoxLayout" name="horizontalLayout_3">
74 <layout class="QHBoxLayout" name="horizontalLayout_3">
75 <item>
75 <item>
76 <widget class="QLineEdit" name="txtRpath"/>
76 <widget class="QLineEdit" name="txtRpath"/>
77 </item>
77 </item>
78 <item>
78 <item>
79 <widget class="QPushButton" name="btnRpath">
79 <widget class="QPushButton" name="btnRpath">
80 <property name="text">
80 <property name="text">
81 <string>Resource Path</string>
81 <string>Resource Path</string>
82 </property>
82 </property>
83 </widget>
83 </widget>
84 </item>
84 </item>
85 </layout>
85 </layout>
86 </item>
86 </item>
87 <item>
87 <item>
88 <widget class="QLabel" name="lblDtype">
88 <widget class="QLabel" name="lblDtype">
89 <property name="text">
89 <property name="text">
90 <string>Data Type</string>
90 <string>Data Type</string>
91 </property>
91 </property>
92 </widget>
92 </widget>
93 </item>
93 </item>
94 <item>
94 <item>
95 <layout class="QHBoxLayout" name="horizontalLayout_4">
95 <layout class="QHBoxLayout" name="horizontalLayout_4">
96 <item>
96 <item>
97 <widget class="QComboBox" name="lstDtype">
97 <widget class="QComboBox" name="lstDtype">
98 <item>
98 <item>
99 <property name="text">
99 <property name="text">
100 <string>Raw Data</string>
100 <string>Raw Data</string>
101 </property>
101 </property>
102 </item>
102 </item>
103 <item>
103 <item>
104 <property name="text">
104 <property name="text">
105 <string>Process Data</string>
105 <string>Process Data</string>
106 </property>
106 </property>
107 </item>
107 </item>
108 <item>
108 <item>
109 <property name="text">
109 <property name="text">
110 <string>BLTR Data</string>
110 <string>BLTR Data</string>
111 </property>
111 </property>
112 </item>
112 </item>
113 <item>
113 <item>
114 <property name="text">
114 <property name="text">
115 <string>Other</string>
115 <string>Other</string>
116 </property>
116 </property>
117 </item>
117 </item>
118 </widget>
118 </widget>
119 </item>
119 </item>
120 <item>
120 <item>
121 <widget class="QLineEdit" name="txtDtype">
121 <widget class="QLineEdit" name="txtDtype">
122 <property name="text">
122 <property name="text">
123 <string>r</string>
123 <string>r</string>
124 </property>
124 </property>
125 <property name="readOnly">
125 <property name="readOnly">
126 <bool>true</bool>
126 <bool>true</bool>
127 </property>
127 </property>
128 </widget>
128 </widget>
129 </item>
129 </item>
130 <item>
130 <item>
131 <widget class="QCheckBox" name="chkMST">
131 <widget class="QCheckBox" name="chkMST">
132 <property name="text">
132 <property name="text">
133 <string>MST-ISR Data</string>
133 <string>MST-ISR Data</string>
134 </property>
134 </property>
135 </widget>
135 </widget>
136 </item>
136 </item>
137 </layout>
137 </layout>
138 </item>
138 </item>
139 <item>
139 <item>
140 <layout class="QHBoxLayout" name="horizontalLayout_6">
140 <layout class="QHBoxLayout" name="horizontalLayout_6">
141 <item>
141 <item>
142 <widget class="QLabel" name="lblElabel">
142 <widget class="QLabel" name="lblElabel">
143 <property name="text">
143 <property name="text">
144 <string>Exp. Label at device</string>
144 <string>Exp. Label at device</string>
145 </property>
145 </property>
146 </widget>
146 </widget>
147 </item>
147 </item>
148 <item>
148 <item>
149 <widget class="QLabel" name="lblCopys">
149 <widget class="QLabel" name="lblCopys">
150 <property name="text">
150 <property name="text">
151 <string>Copys</string>
151 <string>Copys</string>
152 </property>
152 </property>
153 </widget>
153 </widget>
154 </item>
154 </item>
155 </layout>
155 </layout>
156 </item>
156 </item>
157 <item>
157 <item>
158 <layout class="QHBoxLayout" name="horizontalLayout_5">
158 <layout class="QHBoxLayout" name="horizontalLayout_5">
159 <item>
159 <item>
160 <widget class="QLineEdit" name="txtElabel"/>
160 <widget class="QLineEdit" name="txtElabel"/>
161 </item>
161 </item>
162 <item>
162 <item>
163 <widget class="QSpinBox" name="txtCopys">
163 <widget class="QSpinBox" name="txtCopys">
164 <property name="sizePolicy">
164 <property name="sizePolicy">
165 <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
165 <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
166 <horstretch>0</horstretch>
166 <horstretch>0</horstretch>
167 <verstretch>0</verstretch>
167 <verstretch>0</verstretch>
168 </sizepolicy>
168 </sizepolicy>
169 </property>
169 </property>
170 </widget>
170 </widget>
171 </item>
171 </item>
172 </layout>
172 </layout>
173 </item>
173 </item>
174 <item>
174 <item>
175 <layout class="QHBoxLayout" name="horizontalLayout_7">
175 <layout class="QHBoxLayout" name="horizontalLayout_7">
176 <item>
176 <item>
177 <widget class="QLabel" name="lblStartDay">
177 <widget class="QLabel" name="lblStartDay">
178 <property name="text">
178 <property name="text">
179 <string>Start Day:</string>
179 <string>Start Day:</string>
180 </property>
180 </property>
181 </widget>
181 </widget>
182 </item>
182 </item>
183 <item>
183 <item>
184 <widget class="QLabel" name="lblStopDay">
184 <widget class="QLabel" name="lblStopDay">
185 <property name="text">
185 <property name="text">
186 <string>Stop Day:</string>
186 <string>Stop Day:</string>
187 </property>
187 </property>
188 </widget>
188 </widget>
189 </item>
189 </item>
190 </layout>
190 </layout>
191 </item>
191 </item>
192 <item>
192 <item>
193 <layout class="QHBoxLayout" name="horizontalLayout_8">
193 <layout class="QHBoxLayout" name="horizontalLayout_8">
194 <item>
194 <item>
195 <widget class="QComboBox" name="lstStartDay"/>
195 <widget class="QComboBox" name="lstStartDay"/>
196 </item>
196 </item>
197 <item>
197 <item>
198 <widget class="QComboBox" name="lstStopDay"/>
198 <widget class="QComboBox" name="lstStopDay"/>
199 </item>
199 </item>
200 </layout>
200 </layout>
201 </item>
201 </item>
202 </layout>
202 </layout>
203 </widget>
203 </widget>
204 <widget class="QWidget" name="tabDconfig">
204 <widget class="QWidget" name="tabDconfig">
205 <property name="enabled">
205 <property name="enabled">
206 <bool>true</bool>
206 <bool>true</bool>
207 </property>
207 </property>
208 <property name="sizePolicy">
208 <property name="sizePolicy">
209 <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
209 <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
210 <horstretch>0</horstretch>
210 <horstretch>0</horstretch>
211 <verstretch>0</verstretch>
211 <verstretch>0</verstretch>
212 </sizepolicy>
212 </sizepolicy>
213 </property>
213 </property>
214 <attribute name="title">
214 <attribute name="title">
215 <string>Device Config.</string>
215 <string>Device Config.</string>
216 </attribute>
216 </attribute>
217 <layout class="QVBoxLayout" name="verticalLayout_3">
217 <layout class="QVBoxLayout" name="verticalLayout_3">
218 <item>
218 <item>
219 <layout class="QGridLayout" name="gridLayout">
219 <layout class="QGridLayout" name="gridLayout">
220 <item row="0" column="0">
220 <item row="0" column="0">
221 <layout class="QVBoxLayout" name="verticalLayout_15">
221 <layout class="QVBoxLayout" name="verticalLayout_15">
222 <item>
222 <item>
223 <widget class="QCheckBox" name="chkDevA">
223 <widget class="QCheckBox" name="chkDevA">
224 <property name="text">
224 <property name="text">
225 <string>Dev A</string>
225 <string>Dev A</string>
226 </property>
226 </property>
227 <property name="checked">
227 <property name="checked">
228 <bool>true</bool>
228 <bool>true</bool>
229 </property>
229 </property>
230 </widget>
230 </widget>
231 </item>
231 </item>
232 <item>
232 <item>
233 <widget class="QWidget" name="grpDevA" native="true">
233 <widget class="QWidget" name="grpDevA" native="true">
234 <layout class="QVBoxLayout" name="verticalLayout_11">
234 <layout class="QVBoxLayout" name="verticalLayout_11">
235 <item>
235 <item>
236 <widget class="QLineEdit" name="txtDeviceA"/>
236 <widget class="QLineEdit" name="txtDeviceA"/>
237 </item>
237 </item>
238 <item>
238 <item>
239 <widget class="QLineEdit" name="txtBspeedA">
239 <widget class="QLineEdit" name="txtBspeedA">
240 <property name="text">
240 <property name="text">
241 <string>16</string>
241 <string>16</string>
242 </property>
242 </property>
243 </widget>
243 </widget>
244 </item>
244 </item>
245 <item>
245 <item>
246 <widget class="QLineEdit" name="txtBmodeA">
246 <widget class="QLineEdit" name="txtBmodeA">
247 <property name="text">
247 <property name="text">
248 <string>-sao</string>
248 <string>-sao</string>
249 </property>
249 </property>
250 </widget>
250 </widget>
251 </item>
251 </item>
252 <item>
252 <item>
253 <widget class="QPushButton" name="btnTdevA">
253 <widget class="QPushButton" name="btnTdevA">
254 <property name="text">
254 <property name="text">
255 <string>Test DevA</string>
255 <string>Test DevA</string>
256 </property>
256 </property>
257 </widget>
257 </widget>
258 </item>
258 </item>
259 </layout>
259 </layout>
260 </widget>
260 </widget>
261 </item>
261 </item>
262 </layout>
262 </layout>
263 </item>
263 </item>
264 <item row="0" column="1">
264 <item row="0" column="1">
265 <layout class="QVBoxLayout" name="verticalLayout_16">
265 <layout class="QVBoxLayout" name="verticalLayout_16">
266 <item>
266 <item>
267 <widget class="QCheckBox" name="chkDevB">
267 <widget class="QCheckBox" name="chkDevB">
268 <property name="text">
268 <property name="text">
269 <string>Dev B</string>
269 <string>Dev B</string>
270 </property>
270 </property>
271 <property name="checked">
271 <property name="checked">
272 <bool>true</bool>
272 <bool>true</bool>
273 </property>
273 </property>
274 </widget>
274 </widget>
275 </item>
275 </item>
276 <item>
276 <item>
277 <widget class="QWidget" name="grpDevB" native="true">
277 <widget class="QWidget" name="grpDevB" native="true">
278 <layout class="QVBoxLayout" name="verticalLayout_12">
278 <layout class="QVBoxLayout" name="verticalLayout_12">
279 <item>
279 <item>
280 <widget class="QLineEdit" name="txtDeviceB"/>
280 <widget class="QLineEdit" name="txtDeviceB"/>
281 </item>
281 </item>
282 <item>
282 <item>
283 <widget class="QLineEdit" name="txtBspeedB">
283 <widget class="QLineEdit" name="txtBspeedB">
284 <property name="text">
284 <property name="text">
285 <string>16</string>
285 <string>16</string>
286 </property>
286 </property>
287 </widget>
287 </widget>
288 </item>
288 </item>
289 <item>
289 <item>
290 <widget class="QLineEdit" name="txtBmodeB">
290 <widget class="QLineEdit" name="txtBmodeB">
291 <property name="text">
291 <property name="text">
292 <string>-sao</string>
292 <string>-sao</string>
293 </property>
293 </property>
294 </widget>
294 </widget>
295 </item>
295 </item>
296 <item>
296 <item>
297 <widget class="QPushButton" name="btnTdevB">
297 <widget class="QPushButton" name="btnTdevB">
298 <property name="text">
298 <property name="text">
299 <string>Test DevB</string>
299 <string>Test DevB</string>
300 </property>
300 </property>
301 </widget>
301 </widget>
302 </item>
302 </item>
303 </layout>
303 </layout>
304 </widget>
304 </widget>
305 </item>
305 </item>
306 </layout>
306 </layout>
307 </item>
307 </item>
308 <item row="0" column="2">
308 <item row="0" column="2">
309 <layout class="QVBoxLayout" name="verticalLayout_17">
309 <layout class="QVBoxLayout" name="verticalLayout_17">
310 <item>
310 <item>
311 <widget class="QCheckBox" name="chkDevC">
311 <widget class="QCheckBox" name="chkDevC">
312 <property name="text">
312 <property name="text">
313 <string>Dev C</string>
313 <string>Dev C</string>
314 </property>
314 </property>
315 <property name="checked">
315 <property name="checked">
316 <bool>true</bool>
316 <bool>true</bool>
317 </property>
317 </property>
318 </widget>
318 </widget>
319 </item>
319 </item>
320 <item>
320 <item>
321 <widget class="QWidget" name="grpDevC" native="true">
321 <widget class="QWidget" name="grpDevC" native="true">
322 <layout class="QVBoxLayout" name="verticalLayout_13">
322 <layout class="QVBoxLayout" name="verticalLayout_13">
323 <item>
323 <item>
324 <widget class="QLineEdit" name="txtDeviceC"/>
324 <widget class="QLineEdit" name="txtDeviceC"/>
325 </item>
325 </item>
326 <item>
326 <item>
327 <widget class="QLineEdit" name="txtBspeedC">
327 <widget class="QLineEdit" name="txtBspeedC">
328 <property name="text">
328 <property name="text">
329 <string>16</string>
329 <string>16</string>
330 </property>
330 </property>
331 </widget>
331 </widget>
332 </item>
332 </item>
333 <item>
333 <item>
334 <widget class="QLineEdit" name="txtBmodeC">
334 <widget class="QLineEdit" name="txtBmodeC">
335 <property name="text">
335 <property name="text">
336 <string>-sao</string>
336 <string>-sao</string>
337 </property>
337 </property>
338 </widget>
338 </widget>
339 </item>
339 </item>
340 <item>
340 <item>
341 <widget class="QPushButton" name="btnTdevC">
341 <widget class="QPushButton" name="btnTdevC">
342 <property name="text">
342 <property name="text">
343 <string>Test DevC</string>
343 <string>Test DevC</string>
344 </property>
344 </property>
345 </widget>
345 </widget>
346 </item>
346 </item>
347 </layout>
347 </layout>
348 </widget>
348 </widget>
349 </item>
349 </item>
350 </layout>
350 </layout>
351 </item>
351 </item>
352 <item row="0" column="3">
352 <item row="0" column="3">
353 <layout class="QVBoxLayout" name="verticalLayout_18">
353 <layout class="QVBoxLayout" name="verticalLayout_18">
354 <item>
354 <item>
355 <widget class="QCheckBox" name="chkDevD">
355 <widget class="QCheckBox" name="chkDevD">
356 <property name="text">
356 <property name="text">
357 <string>Dev D</string>
357 <string>Dev D</string>
358 </property>
358 </property>
359 <property name="checked">
359 <property name="checked">
360 <bool>true</bool>
360 <bool>true</bool>
361 </property>
361 </property>
362 </widget>
362 </widget>
363 </item>
363 </item>
364 <item>
364 <item>
365 <widget class="QWidget" name="grpDevD" native="true">
365 <widget class="QWidget" name="grpDevD" native="true">
366 <layout class="QVBoxLayout" name="verticalLayout_14">
366 <layout class="QVBoxLayout" name="verticalLayout_14">
367 <item>
367 <item>
368 <widget class="QLineEdit" name="txtDeviceD"/>
368 <widget class="QLineEdit" name="txtDeviceD"/>
369 </item>
369 </item>
370 <item>
370 <item>
371 <widget class="QLineEdit" name="txtBspeedD">
371 <widget class="QLineEdit" name="txtBspeedD">
372 <property name="text">
372 <property name="text">
373 <string>16</string>
373 <string>16</string>
374 </property>
374 </property>
375 </widget>
375 </widget>
376 </item>
376 </item>
377 <item>
377 <item>
378 <widget class="QLineEdit" name="txtBmodeD">
378 <widget class="QLineEdit" name="txtBmodeD">
379 <property name="text">
379 <property name="text">
380 <string>-sao</string>
380 <string>-sao</string>
381 </property>
381 </property>
382 </widget>
382 </widget>
383 </item>
383 </item>
384 <item>
384 <item>
385 <widget class="QPushButton" name="btnTdevD">
385 <widget class="QPushButton" name="btnTdevD">
386 <property name="text">
386 <property name="text">
387 <string>Test DevD</string>
387 <string>Test DevD</string>
388 </property>
388 </property>
389 </widget>
389 </widget>
390 </item>
390 </item>
391 </layout>
391 </layout>
392 </widget>
392 </widget>
393 </item>
393 </item>
394 </layout>
394 </layout>
395 </item>
395 </item>
396 <item row="0" column="4">
396 <item row="0" column="4">
397 <layout class="QVBoxLayout" name="verticalLayout_19">
397 <layout class="QVBoxLayout" name="verticalLayout_19">
398 <item>
398 <item>
399 <widget class="QLabel" name="label_2">
399 <widget class="QLabel" name="label_2">
400 <property name="text">
400 <property name="text">
401 <string/>
401 <string/>
402 </property>
402 </property>
403 </widget>
403 </widget>
404 </item>
404 </item>
405 <item>
405 <item>
406 <widget class="QLabel" name="lblDevice">
406 <widget class="QLabel" name="lblDevice">
407 <property name="text">
407 <property name="text">
408 <string>Device</string>
408 <string>Device</string>
409 </property>
409 </property>
410 </widget>
410 </widget>
411 </item>
411 </item>
412 <item>
412 <item>
413 <widget class="QLabel" name="lblBspeed">
413 <widget class="QLabel" name="lblBspeed">
414 <property name="text">
414 <property name="text">
415 <string>Burn Speed</string>
415 <string>Burn Speed</string>
416 </property>
416 </property>
417 </widget>
417 </widget>
418 </item>
418 </item>
419 <item>
419 <item>
420 <widget class="QLabel" name="lblBmode">
420 <widget class="QLabel" name="lblBmode">
421 <property name="text">
421 <property name="text">
422 <string>Burn Mode</string>
422 <string>Burn Mode</string>
423 </property>
423 </property>
424 </widget>
424 </widget>
425 </item>
425 </item>
426 <item>
426 <item>
427 <widget class="QLabel" name="label">
427 <widget class="QLabel" name="label">
428 <property name="text">
428 <property name="text">
429 <string/>
429 <string/>
430 </property>
430 </property>
431 </widget>
431 </widget>
432 </item>
432 </item>
433 </layout>
433 </layout>
434 </item>
434 </item>
435 </layout>
435 </layout>
436 </item>
436 </item>
437 <item>
437 <item>
438 <layout class="QHBoxLayout" name="horizontalLayout_9">
438 <layout class="QHBoxLayout" name="horizontalLayout_9">
439 <property name="sizeConstraint">
439 <property name="sizeConstraint">
440 <enum>QLayout::SetFixedSize</enum>
440 <enum>QLayout::SetFixedSize</enum>
441 </property>
441 </property>
442 <item>
442 <item>
443 <widget class="QLabel" name="lblBprocess">
443 <widget class="QLabel" name="lblBprocess">
444 <property name="sizePolicy">
444 <property name="sizePolicy">
445 <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
445 <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
446 <horstretch>0</horstretch>
446 <horstretch>0</horstretch>
447 <verstretch>0</verstretch>
447 <verstretch>0</verstretch>
448 </sizepolicy>
448 </sizepolicy>
449 </property>
449 </property>
450 <property name="text">
450 <property name="text">
451 <string>Burning process</string>
451 <string>Burning process</string>
452 </property>
452 </property>
453 </widget>
453 </widget>
454 </item>
454 </item>
455 <item>
455 <item>
456 <widget class="QCheckBox" name="chkSimultaneously">
456 <widget class="QCheckBox" name="chkSimultaneously">
457 <property name="sizePolicy">
457 <property name="sizePolicy">
458 <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
458 <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
459 <horstretch>0</horstretch>
459 <horstretch>0</horstretch>
460 <verstretch>0</verstretch>
460 <verstretch>0</verstretch>
461 </sizepolicy>
461 </sizepolicy>
462 </property>
462 </property>
463 <property name="text">
463 <property name="text">
464 <string>Simultaneously</string>
464 <string>Simultaneously</string>
465 </property>
465 </property>
466 </widget>
466 </widget>
467 </item>
467 </item>
468 <item>
468 <item>
469 <widget class="QCheckBox" name="chkSequentially">
469 <widget class="QCheckBox" name="chkSequentially">
470 <property name="sizePolicy">
470 <property name="sizePolicy">
471 <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
471 <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
472 <horstretch>0</horstretch>
472 <horstretch>0</horstretch>
473 <verstretch>0</verstretch>
473 <verstretch>0</verstretch>
474 </sizepolicy>
474 </sizepolicy>
475 </property>
475 </property>
476 <property name="text">
476 <property name="text">
477 <string>Sequentially</string>
477 <string>Sequentially</string>
478 </property>
478 </property>
479 <property name="checked">
479 <property name="checked">
480 <bool>true</bool>
480 <bool>true</bool>
481 </property>
481 </property>
482 </widget>
482 </widget>
483 </item>
483 </item>
484 </layout>
484 </layout>
485 </item>
485 </item>
486 <item>
486 <item>
487 <layout class="QHBoxLayout" name="horizontalLayout_11">
487 <layout class="QHBoxLayout" name="horizontalLayout_11">
488 <property name="spacing">
488 <property name="spacing">
489 <number>6</number>
489 <number>6</number>
490 </property>
490 </property>
491 <property name="sizeConstraint">
491 <property name="sizeConstraint">
492 <enum>QLayout::SetDefaultConstraint</enum>
492 <enum>QLayout::SetDefaultConstraint</enum>
493 </property>
493 </property>
494 <item>
494 <item>
495 <widget class="QLabel" name="lblDcapacity">
495 <widget class="QLabel" name="lblDcapacity">
496 <property name="sizePolicy">
496 <property name="sizePolicy">
497 <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
497 <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
498 <horstretch>0</horstretch>
498 <horstretch>0</horstretch>
499 <verstretch>0</verstretch>
499 <verstretch>0</verstretch>
500 </sizepolicy>
500 </sizepolicy>
501 </property>
501 </property>
502 <property name="text">
502 <property name="text">
503 <string>Device Capacity (MB)</string>
503 <string>Device Capacity (MB)</string>
504 </property>
504 </property>
505 </widget>
505 </widget>
506 </item>
506 </item>
507 <item>
507 <item>
508 <widget class="QCheckBox" name="chkSalert">
508 <widget class="QCheckBox" name="chkSalert">
509 <property name="sizePolicy">
509 <property name="sizePolicy">
510 <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
510 <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
511 <horstretch>0</horstretch>
511 <horstretch>0</horstretch>
512 <verstretch>0</verstretch>
512 <verstretch>0</verstretch>
513 </sizepolicy>
513 </sizepolicy>
514 </property>
514 </property>
515 <property name="text">
515 <property name="text">
516 <string>Sound Alert</string>
516 <string>Sound Alert</string>
517 </property>
517 </property>
518 </widget>
518 </widget>
519 </item>
519 </item>
520 </layout>
520 </layout>
521 </item>
521 </item>
522 <item>
522 <item>
523 <layout class="QHBoxLayout" name="horizontalLayout_10">
523 <layout class="QHBoxLayout" name="horizontalLayout_10">
524 <property name="sizeConstraint">
524 <property name="sizeConstraint">
525 <enum>QLayout::SetFixedSize</enum>
525 <enum>QLayout::SetFixedSize</enum>
526 </property>
526 </property>
527 <item>
527 <item>
528 <widget class="QComboBox" name="lstDcapacity">
528 <widget class="QComboBox" name="lstDcapacity">
529 <property name="currentIndex">
529 <property name="currentIndex">
530 <number>2</number>
530 <number>2</number>
531 </property>
531 </property>
532 <item>
532 <item>
533 <property name="text">
533 <property name="text">
534 <string>BluRay [25.0 GB]</string>
534 <string>BluRay [25.0 GB]</string>
535 </property>
535 </property>
536 </item>
536 </item>
537 <item>
537 <item>
538 <property name="text">
538 <property name="text">
539 <string>DVD2 [8.5 GB]</string>
539 <string>DVD2 [8.5 GB]</string>
540 </property>
540 </property>
541 </item>
541 </item>
542 <item>
542 <item>
543 <property name="text">
543 <property name="text">
544 <string>DVD1 [4.7 GB]</string>
544 <string>DVD1 [4.7 GB]</string>
545 </property>
545 </property>
546 </item>
546 </item>
547 <item>
547 <item>
548 <property name="text">
548 <property name="text">
549 <string>CD [0.7 GB]</string>
549 <string>CD [0.7 GB]</string>
550 </property>
550 </property>
551 </item>
551 </item>
552 <item>
552 <item>
553 <property name="text">
553 <property name="text">
554 <string>Other [? GB]</string>
554 <string>Other [? GB]</string>
555 </property>
555 </property>
556 </item>
556 </item>
557 </widget>
557 </widget>
558 </item>
558 </item>
559 <item>
559 <item>
560 <widget class="QDoubleSpinBox" name="txtDcapacity">
560 <widget class="QDoubleSpinBox" name="txtDcapacity">
561 <property name="sizePolicy">
561 <property name="sizePolicy">
562 <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
562 <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
563 <horstretch>0</horstretch>
563 <horstretch>0</horstretch>
564 <verstretch>0</verstretch>
564 <verstretch>0</verstretch>
565 </sizepolicy>
565 </sizepolicy>
566 </property>
566 </property>
567 <property name="readOnly">
567 <property name="readOnly">
568 <bool>true</bool>
568 <bool>true</bool>
569 </property>
569 </property>
570 <property name="minimum">
570 <property name="minimum">
571 <double>100.000000000000000</double>
571 <double>100.000000000000000</double>
572 </property>
572 </property>
573 <property name="maximum">
573 <property name="maximum">
574 <double>99999.990000000005239</double>
574 <double>99999.990000000005239</double>
575 </property>
575 </property>
576 <property name="value">
576 <property name="value">
577 <double>4482.270000000000437</double>
577 <double>4482.270000000000437</double>
578 </property>
578 </property>
579 </widget>
579 </widget>
580 </item>
580 </item>
581 <item>
581 <item>
582 <widget class="QCheckBox" name="chkPSgraphic">
582 <widget class="QCheckBox" name="chkPSgraphic">
583 <property name="text">
583 <property name="text">
584 <string>PS Graphic</string>
584 <string>PS Graphic</string>
585 </property>
585 </property>
586 </widget>
586 </widget>
587 </item>
587 </item>
588 <item>
588 <item>
589 <widget class="QLineEdit" name="lineEdit_17"/>
589 <widget class="QLineEdit" name="lineEdit_17"/>
590 </item>
590 </item>
591 </layout>
591 </layout>
592 </item>
592 </item>
593 </layout>
593 </layout>
594 </widget>
594 </widget>
595 <widget class="QWidget" name="tabSburn">
595 <widget class="QWidget" name="tabSburn">
596 <attribute name="title">
596 <attribute name="title">
597 <string>Status Burn</string>
597 <string>Status Burn</string>
598 </attribute>
598 </attribute>
599 <layout class="QVBoxLayout" name="verticalLayout_4">
599 <layout class="QVBoxLayout" name="verticalLayout_4">
600 <item>
600 <item>
601 <widget class="QWidget" name="widget_2" native="true">
601 <widget class="QWidget" name="widget_2" native="true">
602 <property name="sizePolicy">
602 <property name="sizePolicy">
603 <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
603 <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
604 <horstretch>0</horstretch>
604 <horstretch>0</horstretch>
605 <verstretch>0</verstretch>
605 <verstretch>0</verstretch>
606 </sizepolicy>
606 </sizepolicy>
607 </property>
607 </property>
608 <property name="maximumSize">
608 <property name="maximumSize">
609 <size>
609 <size>
610 <width>500</width>
610 <width>500</width>
611 <height>16777215</height>
611 <height>16777215</height>
612 </size>
612 </size>
613 </property>
613 </property>
614 <layout class="QGridLayout" name="gridLayout_2">
614 <layout class="QGridLayout" name="gridLayout_2">
615 <item row="3" column="2">
615 <item row="3" column="2">
616 <widget class="QLineEdit" name="txtSTATUSb"/>
616 <widget class="QLineEdit" name="txtSTATUSb"/>
617 </item>
617 </item>
618 <item row="5" column="1">
618 <item row="5" column="1">
619 <widget class="QLineEdit" name="txtINFOa"/>
619 <widget class="QLineEdit" name="txtINFOa"/>
620 </item>
620 </item>
621 <item row="3" column="1">
621 <item row="3" column="1">
622 <widget class="QLineEdit" name="txtSTATUSa"/>
622 <widget class="QLineEdit" name="txtSTATUSa"/>
623 </item>
623 </item>
624 <item row="5" column="2">
624 <item row="5" column="2">
625 <widget class="QLineEdit" name="txtINFOb"/>
625 <widget class="QLineEdit" name="txtINFOb"/>
626 </item>
626 </item>
627 <item row="3" column="3">
627 <item row="3" column="3">
628 <widget class="QLineEdit" name="txtSTATUSc"/>
628 <widget class="QLineEdit" name="txtSTATUSc"/>
629 </item>
629 </item>
630 <item row="3" column="4">
630 <item row="3" column="4">
631 <widget class="QLineEdit" name="txtSTATUSd"/>
631 <widget class="QLineEdit" name="txtSTATUSd"/>
632 </item>
632 </item>
633 <item row="5" column="4">
633 <item row="5" column="4">
634 <widget class="QLineEdit" name="txtINFOd"/>
634 <widget class="QLineEdit" name="txtINFOd"/>
635 </item>
635 </item>
636 <item row="6" column="1">
636 <item row="6" column="1">
637 <widget class="QLineEdit" name="txtSETa"/>
637 <widget class="QLineEdit" name="txtSETa"/>
638 </item>
638 </item>
639 <item row="6" column="2">
639 <item row="6" column="2">
640 <widget class="QLineEdit" name="txtSETb"/>
640 <widget class="QLineEdit" name="txtSETb"/>
641 </item>
641 </item>
642 <item row="6" column="3">
642 <item row="6" column="3">
643 <widget class="QLineEdit" name="txtSETc"/>
643 <widget class="QLineEdit" name="txtSETc"/>
644 </item>
644 </item>
645 <item row="6" column="4">
645 <item row="6" column="4">
646 <widget class="QLineEdit" name="txtSETd"/>
646 <widget class="QLineEdit" name="txtSETd"/>
647 </item>
647 </item>
648 <item row="3" column="0">
648 <item row="3" column="0">
649 <widget class="QLabel" name="lblSTATUS">
649 <widget class="QLabel" name="lblSTATUS">
650 <property name="text">
650 <property name="text">
651 <string>STATUS</string>
651 <string>STATUS</string>
652 </property>
652 </property>
653 </widget>
653 </widget>
654 </item>
654 </item>
655 <item row="5" column="0">
655 <item row="5" column="0">
656 <widget class="QLabel" name="lblINFO">
656 <widget class="QLabel" name="lblINFO">
657 <property name="text">
657 <property name="text">
658 <string>INFO</string>
658 <string>INFO</string>
659 </property>
659 </property>
660 </widget>
660 </widget>
661 </item>
661 </item>
662 <item row="6" column="0">
662 <item row="6" column="0">
663 <widget class="QLabel" name="lblSET">
663 <widget class="QLabel" name="lblSET">
664 <property name="text">
664 <property name="text">
665 <string>SET</string>
665 <string>SET</string>
666 </property>
666 </property>
667 </widget>
667 </widget>
668 </item>
668 </item>
669 <item row="0" column="1">
669 <item row="0" column="1">
670 <widget class="QLabel" name="lblDevA">
670 <widget class="QLabel" name="lblDevA">
671 <property name="text">
671 <property name="text">
672 <string>DEV A</string>
672 <string>DEV A</string>
673 </property>
673 </property>
674 <property name="alignment">
674 <property name="alignment">
675 <set>Qt::AlignCenter</set>
675 <set>Qt::AlignCenter</set>
676 </property>
676 </property>
677 </widget>
677 </widget>
678 </item>
678 </item>
679 <item row="0" column="2">
679 <item row="0" column="2">
680 <widget class="QLabel" name="lblDevB">
680 <widget class="QLabel" name="lblDevB">
681 <property name="text">
681 <property name="text">
682 <string>DEV B</string>
682 <string>DEV B</string>
683 </property>
683 </property>
684 <property name="alignment">
684 <property name="alignment">
685 <set>Qt::AlignCenter</set>
685 <set>Qt::AlignCenter</set>
686 </property>
686 </property>
687 </widget>
687 </widget>
688 </item>
688 </item>
689 <item row="0" column="3">
689 <item row="0" column="3">
690 <widget class="QLabel" name="lblDevC">
690 <widget class="QLabel" name="lblDevC">
691 <property name="text">
691 <property name="text">
692 <string>DEV C</string>
692 <string>DEV C</string>
693 </property>
693 </property>
694 <property name="alignment">
694 <property name="alignment">
695 <set>Qt::AlignCenter</set>
695 <set>Qt::AlignCenter</set>
696 </property>
696 </property>
697 </widget>
697 </widget>
698 </item>
698 </item>
699 <item row="0" column="4">
699 <item row="0" column="4">
700 <widget class="QLabel" name="lblDevD">
700 <widget class="QLabel" name="lblDevD">
701 <property name="text">
701 <property name="text">
702 <string>DEV D</string>
702 <string>DEV D</string>
703 </property>
703 </property>
704 <property name="alignment">
704 <property name="alignment">
705 <set>Qt::AlignCenter</set>
705 <set>Qt::AlignCenter</set>
706 </property>
706 </property>
707 </widget>
707 </widget>
708 </item>
708 </item>
709 <item row="5" column="3">
709 <item row="5" column="3">
710 <widget class="QLineEdit" name="txtINFOc"/>
710 <widget class="QLineEdit" name="txtINFOc"/>
711 </item>
711 </item>
712 </layout>
712 </layout>
713 </widget>
713 </widget>
714 </item>
714 </item>
715 <item>
715 <item>
716 <widget class="QTextEdit" name="txtSburn"/>
716 <widget class="QTextEdit" name="txtSburn"/>
717 </item>
717 </item>
718 </layout>
718 </layout>
719 </widget>
719 </widget>
720 </widget>
720 </widget>
721 </item>
721 </item>
722 <item>
722 <item>
723 <widget class="QTextEdit" name="txtInfo">
723 <widget class="QTextEdit" name="txtInfo">
724 <property name="readOnly">
724 <property name="readOnly">
725 <bool>true</bool>
725 <bool>true</bool>
726 </property>
726 </property>
727 </widget>
727 </widget>
728 </item>
728 </item>
729 <item>
729 <item>
730 <layout class="QHBoxLayout" name="horizontalLayout_2">
730 <layout class="QHBoxLayout" name="horizontalLayout_2">
731 <property name="sizeConstraint">
731 <property name="sizeConstraint">
732 <enum>QLayout::SetDefaultConstraint</enum>
732 <enum>QLayout::SetDefaultConstraint</enum>
733 </property>
733 </property>
734 <item>
734 <item>
735 <widget class="QPushButton" name="btnGbkp">
735 <widget class="QPushButton" name="btnGbkp">
736 <property name="enabled">
736 <property name="enabled">
737 <bool>false</bool>
737 <bool>false</bool>
738 </property>
738 </property>
739 <property name="text">
739 <property name="text">
740 <string>Generate Bkp</string>
740 <string>Generate Bkp</string>
741 </property>
741 </property>
742 </widget>
742 </widget>
743 </item>
743 </item>
744 <item>
744 <item>
745 <widget class="QPushButton" name="btnRestart">
745 <widget class="QPushButton" name="btnRestart">
746 <property name="enabled">
746 <property name="enabled">
747 <bool>false</bool>
747 <bool>false</bool>
748 </property>
748 </property>
749 <property name="text">
749 <property name="text">
750 <string>Restart</string>
750 <string>Restart</string>
751 </property>
751 </property>
752 </widget>
752 </widget>
753 </item>
753 </item>
754 <item>
754 <item>
755 <widget class="QPushButton" name="btnStartburn">
755 <widget class="QPushButton" name="btnStartburn">
756 <property name="enabled">
756 <property name="enabled">
757 <bool>false</bool>
757 <bool>false</bool>
758 </property>
758 </property>
759 <property name="text">
759 <property name="text">
760 <string>Start Burn</string>
760 <string>Start Burn</string>
761 </property>
761 </property>
762 </widget>
762 </widget>
763 </item>
763 </item>
764 <item>
764 <item>
765 <widget class="QPushButton" name="btnStopburn">
765 <widget class="QPushButton" name="btnStopburn">
766 <property name="enabled">
766 <property name="enabled">
767 <bool>false</bool>
767 <bool>false</bool>
768 </property>
768 </property>
769 <property name="text">
769 <property name="text">
770 <string>Stop Burn</string>
770 <string>Stop Burn</string>
771 </property>
771 </property>
772 </widget>
772 </widget>
773 </item>
773 </item>
774 </layout>
774 </layout>
775 </item>
775 </item>
776 </layout>
776 </layout>
777 </widget>
777 </widget>
778 <widget class="QMenuBar" name="menubar">
778 <widget class="QMenuBar" name="menubar">
779 <property name="geometry">
779 <property name="geometry">
780 <rect>
780 <rect>
781 <x>0</x>
781 <x>0</x>
782 <y>0</y>
782 <y>0</y>
783 <width>754</width>
783 <width>806</width>
784 <height>21</height>
784 <height>25</height>
785 </rect>
785 </rect>
786 </property>
786 </property>
787 <widget class="QMenu" name="menuFile">
787 <widget class="QMenu" name="menuFile">
788 <property name="title">
788 <property name="title">
789 <string>File</string>
789 <string>File</string>
790 </property>
790 </property>
791 <addaction name="actionSave_Config"/>
791 <addaction name="actionSave_Config"/>
792 <addaction name="actionQuit"/>
792 <addaction name="actionQuit"/>
793 </widget>
793 </widget>
794 <widget class="QMenu" name="menuParameters">
794 <widget class="QMenu" name="menuParameters">
795 <property name="title">
795 <property name="title">
796 <string>Parameters</string>
796 <string>Parameters</string>
797 </property>
797 </property>
798 <addaction name="actionChange_Parameters"/>
798 <addaction name="actionChange_Parameters"/>
799 </widget>
799 </widget>
800 <widget class="QMenu" name="menuHelp">
800 <widget class="QMenu" name="menuHelp">
801 <property name="title">
801 <property name="title">
802 <string>Help</string>
802 <string>Help</string>
803 </property>
803 </property>
804 <addaction name="actionAbout"/>
804 <addaction name="actionAbout"/>
805 </widget>
805 </widget>
806 <addaction name="menuFile"/>
806 <addaction name="menuFile"/>
807 <addaction name="menuParameters"/>
807 <addaction name="menuParameters"/>
808 <addaction name="menuHelp"/>
808 <addaction name="menuHelp"/>
809 </widget>
809 </widget>
810 <widget class="QStatusBar" name="statusbar"/>
810 <widget class="QStatusBar" name="statusbar"/>
811 <action name="actionChange_Parameters">
811 <action name="actionChange_Parameters">
812 <property name="text">
812 <property name="text">
813 <string>Change Parameters</string>
813 <string>Change Parameters</string>
814 </property>
814 </property>
815 </action>
815 </action>
816 <action name="actionSave_Config">
816 <action name="actionSave_Config">
817 <property name="text">
817 <property name="text">
818 <string>Save Config</string>
818 <string>Save Config</string>
819 </property>
819 </property>
820 </action>
820 </action>
821 <action name="actionQuit">
821 <action name="actionQuit">
822 <property name="text">
822 <property name="text">
823 <string>Quit</string>
823 <string>Quit</string>
824 </property>
824 </property>
825 </action>
825 </action>
826 <action name="actionAbout">
826 <action name="actionAbout">
827 <property name="text">
827 <property name="text">
828 <string>About</string>
828 <string>About</string>
829 </property>
829 </property>
830 </action>
830 </action>
831 </widget>
831 </widget>
832 <tabstops>
832 <tabstops>
833 <tabstop>txtDpath</tabstop>
833 <tabstop>txtDpath</tabstop>
834 <tabstop>btnDpath</tabstop>
834 <tabstop>btnDpath</tabstop>
835 <tabstop>txtRpath</tabstop>
835 <tabstop>txtRpath</tabstop>
836 <tabstop>btnRpath</tabstop>
836 <tabstop>btnRpath</tabstop>
837 <tabstop>lstDtype</tabstop>
837 <tabstop>lstDtype</tabstop>
838 <tabstop>txtDtype</tabstop>
838 <tabstop>txtDtype</tabstop>
839 <tabstop>chkMST</tabstop>
839 <tabstop>chkMST</tabstop>
840 <tabstop>txtElabel</tabstop>
840 <tabstop>txtElabel</tabstop>
841 <tabstop>lstStartDay</tabstop>
841 <tabstop>lstStartDay</tabstop>
842 <tabstop>lstStopDay</tabstop>
842 <tabstop>lstStopDay</tabstop>
843 <tabstop>chkSimultaneously</tabstop>
843 <tabstop>chkSimultaneously</tabstop>
844 <tabstop>chkSequentially</tabstop>
844 <tabstop>chkSequentially</tabstop>
845 <tabstop>chkSalert</tabstop>
845 <tabstop>chkSalert</tabstop>
846 <tabstop>lstDcapacity</tabstop>
846 <tabstop>lstDcapacity</tabstop>
847 <tabstop>chkPSgraphic</tabstop>
847 <tabstop>chkPSgraphic</tabstop>
848 <tabstop>lineEdit_17</tabstop>
848 <tabstop>lineEdit_17</tabstop>
849 <tabstop>txtSTATUSa</tabstop>
849 <tabstop>txtSTATUSa</tabstop>
850 <tabstop>txtSTATUSb</tabstop>
850 <tabstop>txtSTATUSb</tabstop>
851 <tabstop>txtSTATUSc</tabstop>
851 <tabstop>txtSTATUSc</tabstop>
852 <tabstop>txtSTATUSd</tabstop>
852 <tabstop>txtSTATUSd</tabstop>
853 <tabstop>txtINFOa</tabstop>
853 <tabstop>txtINFOa</tabstop>
854 <tabstop>txtINFOb</tabstop>
854 <tabstop>txtINFOb</tabstop>
855 <tabstop>txtINFOc</tabstop>
855 <tabstop>txtINFOc</tabstop>
856 <tabstop>txtINFOd</tabstop>
856 <tabstop>txtINFOd</tabstop>
857 <tabstop>txtSETa</tabstop>
857 <tabstop>txtSETa</tabstop>
858 <tabstop>txtSETb</tabstop>
858 <tabstop>txtSETb</tabstop>
859 <tabstop>txtSETc</tabstop>
859 <tabstop>txtSETc</tabstop>
860 <tabstop>txtSETd</tabstop>
860 <tabstop>txtSETd</tabstop>
861 <tabstop>tabWidget</tabstop>
861 <tabstop>tabWidget</tabstop>
862 <tabstop>txtSburn</tabstop>
862 <tabstop>txtSburn</tabstop>
863 <tabstop>btnGbkp</tabstop>
863 <tabstop>btnGbkp</tabstop>
864 <tabstop>btnRestart</tabstop>
864 <tabstop>btnRestart</tabstop>
865 <tabstop>btnStartburn</tabstop>
865 <tabstop>btnStartburn</tabstop>
866 <tabstop>btnStopburn</tabstop>
866 <tabstop>btnStopburn</tabstop>
867 </tabstops>
867 </tabstops>
868 <resources/>
868 <resources/>
869 <connections>
869 <connections>
870 <connection>
870 <connection>
871 <sender>chkSequentially</sender>
871 <sender>chkSequentially</sender>
872 <signal>clicked()</signal>
872 <signal>clicked()</signal>
873 <receiver>chkSimultaneously</receiver>
873 <receiver>chkSimultaneously</receiver>
874 <slot>toggle()</slot>
874 <slot>toggle()</slot>
875 <hints>
875 <hints>
876 <hint type="sourcelabel">
876 <hint type="sourcelabel">
877 <x>635</x>
877 <x>635</x>
878 <y>276</y>
878 <y>276</y>
879 </hint>
879 </hint>
880 <hint type="destinationlabel">
880 <hint type="destinationlabel">
881 <x>350</x>
881 <x>350</x>
882 <y>269</y>
882 <y>269</y>
883 </hint>
883 </hint>
884 </hints>
884 </hints>
885 </connection>
885 </connection>
886 <connection>
886 <connection>
887 <sender>chkSimultaneously</sender>
887 <sender>chkSimultaneously</sender>
888 <signal>clicked()</signal>
888 <signal>clicked()</signal>
889 <receiver>chkSequentially</receiver>
889 <receiver>chkSequentially</receiver>
890 <slot>toggle()</slot>
890 <slot>toggle()</slot>
891 <hints>
891 <hints>
892 <hint type="sourcelabel">
892 <hint type="sourcelabel">
893 <x>433</x>
893 <x>433</x>
894 <y>276</y>
894 <y>276</y>
895 </hint>
895 </hint>
896 <hint type="destinationlabel">
896 <hint type="destinationlabel">
897 <x>635</x>
897 <x>635</x>
898 <y>276</y>
898 <y>276</y>
899 </hint>
899 </hint>
900 </hints>
900 </hints>
901 </connection>
901 </connection>
902 <connection>
902 <connection>
903 <sender>chkDevA</sender>
903 <sender>chkDevA</sender>
904 <signal>toggled(bool)</signal>
904 <signal>toggled(bool)</signal>
905 <receiver>grpDevA</receiver>
905 <receiver>grpDevA</receiver>
906 <slot>setEnabled(bool)</slot>
906 <slot>setEnabled(bool)</slot>
907 <hints>
907 <hints>
908 <hint type="sourcelabel">
908 <hint type="sourcelabel">
909 <x>95</x>
909 <x>95</x>
910 <y>86</y>
910 <y>86</y>
911 </hint>
911 </hint>
912 <hint type="destinationlabel">
912 <hint type="destinationlabel">
913 <x>95</x>
913 <x>95</x>
914 <y>167</y>
914 <y>167</y>
915 </hint>
915 </hint>
916 </hints>
916 </hints>
917 </connection>
917 </connection>
918 <connection>
918 <connection>
919 <sender>chkDevB</sender>
919 <sender>chkDevB</sender>
920 <signal>toggled(bool)</signal>
920 <signal>toggled(bool)</signal>
921 <receiver>grpDevB</receiver>
921 <receiver>grpDevB</receiver>
922 <slot>setEnabled(bool)</slot>
922 <slot>setEnabled(bool)</slot>
923 <hints>
923 <hints>
924 <hint type="sourcelabel">
924 <hint type="sourcelabel">
925 <x>251</x>
925 <x>251</x>
926 <y>86</y>
926 <y>86</y>
927 </hint>
927 </hint>
928 <hint type="destinationlabel">
928 <hint type="destinationlabel">
929 <x>251</x>
929 <x>251</x>
930 <y>167</y>
930 <y>167</y>
931 </hint>
931 </hint>
932 </hints>
932 </hints>
933 </connection>
933 </connection>
934 <connection>
934 <connection>
935 <sender>chkDevC</sender>
935 <sender>chkDevC</sender>
936 <signal>toggled(bool)</signal>
936 <signal>toggled(bool)</signal>
937 <receiver>grpDevC</receiver>
937 <receiver>grpDevC</receiver>
938 <slot>setEnabled(bool)</slot>
938 <slot>setEnabled(bool)</slot>
939 <hints>
939 <hints>
940 <hint type="sourcelabel">
940 <hint type="sourcelabel">
941 <x>407</x>
941 <x>407</x>
942 <y>86</y>
942 <y>86</y>
943 </hint>
943 </hint>
944 <hint type="destinationlabel">
944 <hint type="destinationlabel">
945 <x>407</x>
945 <x>407</x>
946 <y>167</y>
946 <y>167</y>
947 </hint>
947 </hint>
948 </hints>
948 </hints>
949 </connection>
949 </connection>
950 <connection>
950 <connection>
951 <sender>chkDevD</sender>
951 <sender>chkDevD</sender>
952 <signal>toggled(bool)</signal>
952 <signal>toggled(bool)</signal>
953 <receiver>grpDevD</receiver>
953 <receiver>grpDevD</receiver>
954 <slot>setEnabled(bool)</slot>
954 <slot>setEnabled(bool)</slot>
955 <hints>
955 <hints>
956 <hint type="sourcelabel">
956 <hint type="sourcelabel">
957 <x>563</x>
957 <x>563</x>
958 <y>86</y>
958 <y>86</y>
959 </hint>
959 </hint>
960 <hint type="destinationlabel">
960 <hint type="destinationlabel">
961 <x>563</x>
961 <x>563</x>
962 <y>167</y>
962 <y>167</y>
963 </hint>
963 </hint>
964 </hints>
964 </hints>
965 </connection>
965 </connection>
966 </connections>
966 </connections>
967 </ui>
967 </ui>
General Comments 0
You need to be logged in to leave comments. Login now