##// END OF EJS Templates
***
ralonso -
r15:16
parent child
Show More
@@ -1,197 +1,215
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 subprocess
13 #import subprocess
14 import commands
14 import commands
15
15
16 class MainWindow(QMainWindow, Ui_MainWindow):
16 class MainWindow(QMainWindow, Ui_MainWindow):
17 """
17 """
18 Class documentation goes here.
18 Class documentation goes here.
19 """
19 """
20 def __init__(self, parent = None):
20 def __init__(self, parent = None):
21 QMainWindow.__init__(self, parent)
21 QMainWindow.__init__(self, parent)
22 self.setupUi(self)
22 self.setupUi(self)
23 self.setupUi2()
23 self.setupUi2()
24
24
25 def setupUi2(self):
25 def setupUi2(self):
26 print 'hi'
26 print 'hi'
27 self.txtDpath.setText('/home/ricardoar/')
28 self.txtRpath.setText('/home/ricardoar/optional/STORAGE/prueba1_jro_backup_manager/')
27
29
28 @pyqtSignature("")
30 @pyqtSignature("")
29 def on_btnDpath_clicked(self):
31 def on_btnDpath_clicked(self):
30 """
32 """
31 Slot documentation goes here.
33 Slot documentation goes here.
32 """
34 """
33 var_Dpath= QtGui.QFileDialog.getExistingDirectory(self, 'Open Directory', './', QtGui.QFileDialog.ShowDirsOnly)
35 var_Dpath= QtGui.QFileDialog.getExistingDirectory(self, 'Open Directory', './', QtGui.QFileDialog.ShowDirsOnly)
34 self.txtDpath.setText(var_Dpath)
36 self.txtDpath.setText(var_Dpath)
35 self.on_txtDpath_editingFinished()
37 self.on_txtDpath_editingFinished()
36
38
37 @pyqtSignature("")
39 @pyqtSignature("")
38 def on_btnRpath_clicked(self):
40 def on_btnRpath_clicked(self):
39 """
41 """
40 Slot documentation goes here.
42 Slot documentation goes here.
41 """
43 """
42 var_Rpath = QtGui.QFileDialog.getExistingDirectory(self, 'Open Directory', './', QtGui.QFileDialog.ShowDirsOnly)
44 var_Rpath = QtGui.QFileDialog.getExistingDirectory(self, 'Open Directory', './', QtGui.QFileDialog.ShowDirsOnly)
43 self.txtRpath.setText(var_Rpath)
45 self.txtRpath.setText(var_Rpath)
44 self.on_txtRpath_editingFinished()
46 self.on_txtRpath_editingFinished()
45
47
46
48
47 @pyqtSignature("")
49 @pyqtSignature("")
48 def on_txtDpath_editingFinished(self):
50 def on_txtDpath_editingFinished(self):
49
51
50 #Usando el modulo "subprocess" eric4 pide seleccion del tipo de subproceso (padre o hijo)
52 #Usando el modulo "subprocess" eric4 pide seleccion del tipo de subproceso (padre o hijo)
51 #por ello se prefiere usar el modulo "commands"
53 #por ello se prefiere usar el modulo "commands"
52 #p1= Popen(['find', var_Dpath, '-name', '*.r'], stdout=PIPE)
54 #p1= Popen(['find', var_Dpath, '-name', '*.r'], stdout=PIPE)
53 #p2= Popen(['awk', '-F/', '{print substr($NF,2,7)}'], stdin=p1.stdout, stdout=PIPE)
55 #p2= Popen(['awk', '-F/', '{print substr($NF,2,7)}'], stdin=p1.stdout, stdout=PIPE)
54 #output_p2= p2.communicate()[0]
56 #output_p2= p2.communicate()[0]
55 #self.txtInfo.setText(output_p2)
57 #self.txtInfo.setText(output_p2)
56
58
57 var_Dpath=self.txtDpath.text()
59 var_Dpath=self.txtDpath.text()
58
60
59 #Se verifica que la ruta exista y sea un directorio
61 #Se verifica que la ruta exista y sea un directorio
60 var_cmd="test -d "+str(var_Dpath)
62 var_cmd="test -d "+str(var_Dpath)
61 var_output=commands.getstatusoutput(var_cmd)[0]
63 var_output=commands.getstatusoutput(var_cmd)[0]
62 if var_output != 0:
64 if var_output != 0:
63 self.txtInfo.setText("Ruta no valida, output_error:" + str(var_output))
65 self.txtInfo.setText("Ruta no valida, output_error:" + str(var_output))
64 return
66 return
65
67
66 #Se buscan los archivos del tipo especificado
68 #Se buscan los archivos del tipo especificado
67 var_Dtype=self.txtDtype.text()
69 var_Dtype=self.txtDtype.text()
68 var_cmd="find " + str(var_Dpath) + " -name *."+ str(var_Dtype) +" | awk -F/ '{print substr($NF,2,7)}' | sort| uniq"
70 var_cmd="find " + str(var_Dpath) + " -name *."+ str(var_Dtype) +" | awk -F/ '{print substr($NF,2,7)}' | sort| uniq"
69 output_p2=commands.getstatusoutput(var_cmd)[1]
71 output_p2=commands.getstatusoutput(var_cmd)[1]
70
72
71 #INFO: Muestra los dias que se encontraron
73 #INFO: Muestra los dias que se encontraron
72 self.txtInfo.setText(output_p2)
74 self.txtInfo.setText(output_p2)
73
75
74 #Se cargan las listas para seleccionar StartDay y StopDay
76 #Se cargan las listas para seleccionar StartDay y StopDay
75 self.var_list=[]
77 self.var_list=[]
76 for i in range(0, (len(output_p2)+1)/8):
78 for i in range(0, (len(output_p2)+1)/8):
77 self.var_list.append(output_p2[8*i:8*(i+1)-1])
79 self.var_list.append(output_p2[8*i:8*(i+1)-1])
78
80
79 self.lstStartDay.clear()
81 self.lstStartDay.clear()
80 self.lstStopDay.clear()
82 self.lstStopDay.clear()
81
83
82 for i in self.var_list:
84 for i in self.var_list:
83 self.lstStartDay.addItem(i)
85 self.lstStartDay.addItem(i)
84 self.lstStopDay.addItem(i)
86 self.lstStopDay.addItem(i)
85
87
86 self.lstStopDay.setCurrentIndex(self.lstStartDay.count()-1)
88 self.lstStopDay.setCurrentIndex(self.lstStartDay.count()-1)
87
89
88 #INFO: Muestra cuantos dias se encontraron
90 #INFO: Muestra cuantos dias se encontraron
89 # self.txtInfo.setText(str(self.lstStartDay.count()))
91 # self.txtInfo.setText(str(self.lstStartDay.count()))
90
92
91
93
92 @pyqtSignature("")
94 @pyqtSignature("")
93 def on_txtRpath_editingFinished(self):
95 def on_txtRpath_editingFinished(self):
94 """
96 """
95 Slot documentation goes here.
97 Slot documentation goes here.
96 """
98 """
97 var_Rpath=self.txtRpath.text()
99 var_Rpath=self.txtRpath.text()
98 #Se verifica que la ruta exista y sea un directorio
100 #Se verifica que la ruta exista y sea un directorio
99 var_cmd="test -d "+str(var_Rpath)
101 var_cmd="test -d "+str(var_Rpath)
100 var_output=commands.getstatusoutput(var_cmd)[0]
102 var_output=commands.getstatusoutput(var_cmd)[0]
101 if var_output != 0:
103 if var_output != 0:
102 self.txtInfo.setText("Ruta no valida, output_error:" + str(var_output))
104 self.txtInfo.setText("Ruta no valida, output_error:" + str(var_output))
103 return
105 return
104 else:
106 else:
105 self.txtInfo.setText("Ruta valida, sin error")
107 self.txtInfo.setText("Ruta valida, sin error")
106
108
107
109
108 @pyqtSignature("int")
110 @pyqtSignature("int")
109 def on_lstDtype_activated(self, index):
111 def on_lstDtype_activated(self, index):
110 """
112 """
111 Permite elegir entre los tipos de archivos
113 Permite elegir entre los tipos de archivos
112 """
114 """
113 if index == 0:
115 if index == 0:
114 var_type='r'
116 var_type='r'
115 elif index == 1:
117 elif index == 1:
116 var_type='pdata'
118 var_type='pdata'
117 elif index == 2:
119 elif index == 2:
118 var_type='sswma'
120 var_type='sswma'
119
121
120 if index != 3:
122 if index != 3:
121 self.txtDtype.setText(var_type)
123 self.txtDtype.setText(var_type)
122 self.txtDtype.setReadOnly(True)
124 self.txtDtype.setReadOnly(True)
123 self.on_txtDpath_editingFinished()
125 self.on_txtDpath_editingFinished()
124 else:
126 else:
125 self.txtDtype.setText('')
127 self.txtDtype.setText('')
126 self.txtDtype.setReadOnly(False)
128 self.txtDtype.setReadOnly(False)
127
129
128 @pyqtSignature("")
130 @pyqtSignature("")
129 def on_txtDtype_editingFinished(self):
131 def on_txtDtype_editingFinished(self):
130 """
132 """
131 Se activa cuando el tipo de archivo es ingresado manualmente
133 Se activa cuando el tipo de archivo es ingresado manualmente
132 """
134 """
133 self.on_txtDpath_editingFinished()
135 self.on_txtDpath_editingFinished()
134
136
135 @pyqtSignature("int")
137 @pyqtSignature("int")
136 def on_lstStartDay_activated(self, index):
138 def on_lstStartDay_activated(self, index):
137 """
139 """
138 Slot documentation goes here.
140 Slot documentation goes here.
139 """
141 """
140 #self.txtInfo.setText(str(index))
142 #self.txtInfo.setText(str(index))
141 var_StopDay_index=self.lstStopDay.count() - self.lstStopDay.currentIndex()
143 var_StopDay_index=self.lstStopDay.count() - self.lstStopDay.currentIndex()
142
144
143 self.lstStopDay.clear()
145 self.lstStopDay.clear()
144
146
145 for i in self.var_list[index:]:
147 for i in self.var_list[index:]:
146 self.lstStopDay.addItem(i)
148 self.lstStopDay.addItem(i)
147
149
148 self.lstStopDay.setCurrentIndex(self.lstStopDay.count() - var_StopDay_index)
150 self.lstStopDay.setCurrentIndex(self.lstStopDay.count() - var_StopDay_index)
149 #self.txtInfo.append(str(var_StopDay_index))
151 #self.txtInfo.append(str(var_StopDay_index))
150 #self.txtInfo.append(str(self.lstStopDay.count()))
152 #self.txtInfo.append(str(self.lstStopDay.count()))
151
153
152
154
153 @pyqtSignature("int")
155 @pyqtSignature("int")
154 def on_lstStopDay_activated(self, index):
156 def on_lstStopDay_activated(self, index):
155 """
157 """
156 Slot documentation goes here.
158 Slot documentation goes here.
157 """
159 """
158 #self.txtInfo.setText(str(index))
160 #self.txtInfo.setText(str(index))
159 var_StartDay_index=self.lstStartDay.currentIndex()
161 var_StartDay_index=self.lstStartDay.currentIndex()
160
162
161 var_end_index = self.lstStopDay.count() - index
163 var_end_index = self.lstStopDay.count() - index
162
164
163 self.lstStartDay.clear()
165 self.lstStartDay.clear()
164
166
165 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]:
166 self.lstStartDay.addItem(i)
168 self.lstStartDay.addItem(i)
167
169
168 self.lstStartDay.setCurrentIndex(var_StartDay_index)
170 self.lstStartDay.setCurrentIndex(var_StartDay_index)
169 #self.txtInfo.append(str(var_StartDay_index))
171 #self.txtInfo.append(str(var_StartDay_index))
170 #self.txtInfo.append(str(self.lstStartDay.count()))
172 #self.txtInfo.append(str(self.lstStartDay.count()))
171
173
172 @pyqtSignature("int")
174 @pyqtSignature("int")
173 def on_lstDcapacity_activated(self, index):
175 def on_lstDcapacity_activated(self, index):
174 """
176 """
175 Permite elegir el tamaΓ±o del disco
177 Permite elegir el tamaΓ±o del disco
176 """
178 """
177 if index == 0:
179 if index == 0:
178 var_size=25.0
180 var_size=25.0
179 elif index == 1:
181 elif index == 1:
180 var_size=8.5
182 var_size=8.5
181 elif index == 2:
183 elif index == 2:
182 var_size=4.7
184 var_size=4.7
183 elif index == 3:
185 elif index == 3:
184 var_size=0.7
186 var_size=0.7
185
187
186 if index != 4:
188 if index != 4:
187 self.txtDcapacity.setText(str(var_size*10**9/1024**2))
189 self.txtDcapacity.setText(str(var_size*10**9/1024**2))
188 self.txtDcapacity.setReadOnly(True)
190 self.txtDcapacity.setReadOnly(True)
189 else:
191 else:
190 self.txtDcapacity.setText('')
192 self.txtDcapacity.setText('')
191 self.txtDcapacity.setReadOnly(False)
193 self.txtDcapacity.setReadOnly(False)
192
194
193 @pyqtSignature("")
195 @pyqtSignature("")
194 def on_btnGbkp_clicked(self):
196 def on_btnGbkp_clicked(self):
195 """
197 """
196 Slot documentation goes here.
198 Slot documentation goes here.
197 """
199 """
200 var_dirs='/{gpath,iso,ppath}'
201 var_Rpath=self.txtRpath.text()
202 var_cmd="mkdir "+str(var_Rpath)+str(var_dirs)
203 self.txtInfo.append(var_cmd)
204
205 #CREA LAS CARPETAS "COMENTADO TEMPORALMENTE"
206 #var_output=commands.getstatusoutput(var_cmd)[0]
207 #if var_output != 0:
208 # self.txtInfo.setText("No se pudieron crear los directorios, output_error:" + str(var_output))
209 # return
210 #else:
211 # self.txtInfo.append('Carpetas creadas correctamente')
212
213 for i in self.var_list[self.lstStartDay.currentIndex():self.lstStartDay.currentIndex() + self.lstStopDay.currentIndex()+1]:
214 self.txtInfo.append(i)
215
General Comments 0
You need to be logged in to leave comments. Login now