Index: bk_manager/trunk/ui/MainWindow.py =================================================================== diff --git a/bk_manager/trunk/ui/MainWindow.py b/bk_manager/trunk/ui/MainWindow.py --- a/bk_manager/trunk/ui/MainWindow.py (revision 29) +++ b/bk_manager/trunk/ui/MainWindow.py (revision 30) @@ -23,41 +23,59 @@ QMainWindow.__init__(self, parent) self.setupUi(self) self.setupUi2() + + #redirige salida estandar sys.stdout = self def setupUi2(self): + """ + Se usa para inicializar ciertos parametros para pruebas + """ self.txtDpath.setText('/home/ricardoar/optional/STORAGE/EW_DRIFTS') self.txtRpath.setText('/home/ricardoar/optional/STORAGE/prueba1_jro_backup_manager') self.txtElabel.setText('EW_DRIFTS') + self.statusDpath = False + self.statusRpath = False def write(self, txt): + """ + Escribe la salida estandar eb txtInfo + """ self.txtInfo.append(str(txt)) @pyqtSignature("") def on_btnDpath_clicked(self): """ - Slot documentation goes here. + Permite seleccionar graficamente el direcorio de los datos a grabar """ var_Dpath= QtGui.QFileDialog.getExistingDirectory(self, 'Open Directory', './', QtGui.QFileDialog.ShowDirsOnly) self.txtDpath.setText(var_Dpath) + + #llamada a funcion self.on_txtDpath_editingFinished() @pyqtSignature("") def on_btnRpath_clicked(self): """ - Slot documentation goes here. + Permite seleccionar graficamente el direcorio del proyecto """ var_Rpath = QtGui.QFileDialog.getExistingDirectory(self, 'Open Directory', './', QtGui.QFileDialog.ShowDirsOnly) self.txtRpath.setText(var_Rpath) + + #llamada a funcion self.on_txtRpath_editingFinished() @pyqtSignature("") def on_txtDpath_editingFinished(self): - + """ + Permite buscar los archivos de extension seleccionada en la ruta de de datos + y cargar los valores para el rango de tiempo a ser grabado + """ + #Usando el modulo "subprocess", eric4 pide seleccion del tipo de subproceso (padre o hijo) #por ello se prefiere usar el modulo "commands" #p1= Popen(['find', var_Dpath, '-name', '*.r'], stdout=PIPE) @@ -65,56 +83,58 @@ #output_p2= p2.communicate()[0] #self.txtInfo.setText(output_p2) + #Se carga la variable con la ruta de datos var_Dpath=self.txtDpath.text() #Se verifica que la ruta exista y sea un directorio var_cmd="test -d "+str(var_Dpath) var_output=commands.getstatusoutput(var_cmd)[0] if var_output != 0: + self.statusDpath = False self.txtInfo.setText("Ruta no valida, output_error:" + str(var_output)) return + else: + self.statusDpath = True + self.txtInfo.append("Ruta valida, sin error:" + str(var_Dpath)) #Se buscan los archivos del tipo especificado var_Dtype=self.txtDtype.text() var_cmd="find " + str(var_Dpath) + " -name *."+ str(var_Dtype) +" | awk -F/ '{print substr($NF,2,7)}' | sort| uniq" output_p2=commands.getstatusoutput(var_cmd)[1] - #INFO: Muestra los dias que se encontraron - #self.txtInfo.append(output_p2) - - #Se cargan las listas para seleccionar StartDay y StopDay + #Se cargan las listas para seleccionar StartDay y StopDay (QComboBox) self.var_list=[] for i in range(0, (len(output_p2)+1)/8): self.var_list.append(output_p2[8*i:8*(i+1)-1]) self.lstStartDay.clear() self.lstStopDay.clear() - + for i in self.var_list: self.lstStartDay.addItem(i) self.lstStopDay.addItem(i) self.lstStopDay.setCurrentIndex(self.lstStartDay.count()-1) - - #INFO: Muestra cuantos dias se encontraron - #self.txtInfo.setText(str(self.lstStartDay.count())) - - + + @pyqtSignature("") def on_txtRpath_editingFinished(self): """ - Slot documentation goes here. - """ + Valida la ruta del proyecto + """ + #Se carga la variable con la ruta del proyecto var_Rpath=self.txtRpath.text() #Se verifica que la ruta exista y sea un directorio var_cmd="test -d "+str(var_Rpath) var_output=commands.getstatusoutput(var_cmd)[0] if var_output != 0: + self.statusRpath = False self.txtInfo.append("Ruta no valida, output_error:" + str(var_output)) return else: - self.txtInfo.append("Ruta valida, sin error") + self.statusRpath = True + self.txtInfo.append("Ruta valida, sin error:" + str(var_Rpath)) @pyqtSignature("int") @@ -143,6 +163,7 @@ """ Se activa cuando el tipo de archivo es ingresado manualmente """ + #llamada a funcion self.on_txtDpath_editingFinished() @@ -203,25 +224,36 @@ Cuando se presiona el boton Generate Bkp """ - #CREA LAS CARPETAS "COMENTADO TEMPORALMENTE" + #Verifica que las rutas sean validas + if self.statusDpath == False or self.statusRpath == False: + if self.statusDpath == False: + self.txtInfo.append("Ruta de datos no valida") + if self.statusRpath == False: + self.txtInfo.append("Ruta de proyecto no valida") + return + + #Crea las carpetas en la ruta del proyecto y verifica que se crearon correctamente + + var_Rpath=self.txtRpath.text() var_dirs='/{gpath,iso,ppath}' - var_Rpath=self.txtRpath.text() - var_cmd="mkdir "+str(var_Rpath)+str(var_dirs) + var_cmd="mkdir -p "+str(var_Rpath)+str(var_dirs) + self.txtInfo.append(var_cmd) - #var_output=commands.getstatusoutput(var_cmd)[0] - #if var_output != 0: - # self.txtInfo.setText("No se pudieron crear los directorios, output_error:" + str(var_output)) - # return - #else: - # self.txtInfo.append('Carpetas creadas correctamente') - + + var_output=commands.getstatusoutput(var_cmd)[0] + if var_output != 0: + self.txtInfo.append("No se pudieron crear los directorios, output_error:" + str(var_output)) + return + else: + self.txtInfo.append('Carpetas creadas correctamente') + var_sublist=[] for i in self.var_list[self.lstStartDay.currentIndex():self.lstStartDay.currentIndex() + self.lstStopDay.currentIndex()+1]: self.txtInfo.append(i) var_sublist.append(i) - #Cargando los parametros de busqueda + #Cargando variables con los parametros de busqueda var_Dpath=self.txtDpath.text() var_Dtype=self.txtDtype.text() @@ -337,3 +369,4 @@ """ self.tabParameters.setEnabled(True) self.btnGbkp.setEnabled(True) + Index: bk_manager/trunk/ui/MainWindow.ui =================================================================== diff --git a/bk_manager/trunk/ui/MainWindow.ui b/bk_manager/trunk/ui/MainWindow.ui --- a/bk_manager/trunk/ui/MainWindow.ui (revision 29) +++ b/bk_manager/trunk/ui/MainWindow.ui (revision 30) @@ -7,7 +7,7 @@ 0 0 745 - 787 + 766 @@ -221,27 +221,32 @@ Dev A - - - - - - - - - - - - - - - - - Test DevA - - - - + + true + + + + + + + + + + + + + + + + + + + Test DevA + + + + + @@ -252,27 +257,32 @@ Dev B - - - - - - - - - - - - - - - - - Test DevB - - - - + + true + + + + + + + + + + + + + + + + + + + Test DevB + + + + + @@ -283,27 +293,32 @@ Dev C - - - - - - - - - - - - - - - - - Test DevC - - - - + + true + + + + + + + + + + + + + + + + + + + Test DevC + + + + + @@ -314,27 +329,32 @@ Dev D - - - - - - - - - - - - - - - - - Test DevD - - - - + + true + + + + + + + + + + + + + + + + + + + Test DevD + + + + + @@ -797,8 +817,8 @@ toggle() - 475 - 273 + 635 + 276 350 @@ -813,12 +833,76 @@ toggle() - 350 - 282 + 433 + 276 - 436 - 278 + 635 + 276 + + + + + chkDevA + toggled(bool) + grpDevA + setEnabled(bool) + + + 95 + 86 + + + 95 + 167 + + + + + chkDevB + toggled(bool) + grpDevB + setEnabled(bool) + + + 251 + 86 + + + 251 + 167 + + + + + chkDevC + toggled(bool) + grpDevC + setEnabled(bool) + + + 407 + 86 + + + 407 + 167 + + + + + chkDevD + toggled(bool) + grpDevD + setEnabled(bool) + + + 563 + 86 + + + 563 + 167 Index: bk_manager/trunk/ui/Ui_MainWindow.py =================================================================== diff --git a/bk_manager/trunk/ui/Ui_MainWindow.py b/bk_manager/trunk/ui/Ui_MainWindow.py --- a/bk_manager/trunk/ui/Ui_MainWindow.py (revision 29) +++ b/bk_manager/trunk/ui/Ui_MainWindow.py (revision 30) @@ -2,7 +2,7 @@ # Form implementation generated from reading ui file '/home/ricardoar/principal/JRO_SVN/eric4/jro_backup_manager/ui/MainWindow.ui' # -# Created: Thu Apr 29 14:19:34 2010 +# Created: Tue May 4 12:02:35 2010 # by: PyQt4 UI code generator 4.7.3 # # WARNING! All changes made in this file will be lost! @@ -12,7 +12,7 @@ class Ui_MainWindow(object): def setupUi(self, MainWindow): MainWindow.setObjectName("MainWindow") - MainWindow.resize(745, 787) + MainWindow.resize(745, 766) self.centralwidget = QtGui.QWidget(MainWindow) self.centralwidget.setObjectName("centralwidget") self.verticalLayout = QtGui.QVBoxLayout(self.centralwidget) @@ -132,86 +132,98 @@ self.verticalLayout_15 = QtGui.QVBoxLayout() self.verticalLayout_15.setObjectName("verticalLayout_15") self.chkDevA = QtGui.QCheckBox(self.tabDconfig) + self.chkDevA.setChecked(True) self.chkDevA.setObjectName("chkDevA") self.verticalLayout_15.addWidget(self.chkDevA) - self.verticalLayout_11 = QtGui.QVBoxLayout() + self.grpDevA = QtGui.QWidget(self.tabDconfig) + self.grpDevA.setObjectName("grpDevA") + self.verticalLayout_11 = QtGui.QVBoxLayout(self.grpDevA) self.verticalLayout_11.setObjectName("verticalLayout_11") - self.txtDeviceA = QtGui.QLineEdit(self.tabDconfig) + self.txtDeviceA = QtGui.QLineEdit(self.grpDevA) self.txtDeviceA.setObjectName("txtDeviceA") self.verticalLayout_11.addWidget(self.txtDeviceA) - self.txtBspeedA = QtGui.QLineEdit(self.tabDconfig) + self.txtBspeedA = QtGui.QLineEdit(self.grpDevA) self.txtBspeedA.setObjectName("txtBspeedA") self.verticalLayout_11.addWidget(self.txtBspeedA) - self.txtBmodeA = QtGui.QLineEdit(self.tabDconfig) + self.txtBmodeA = QtGui.QLineEdit(self.grpDevA) self.txtBmodeA.setObjectName("txtBmodeA") self.verticalLayout_11.addWidget(self.txtBmodeA) - self.btnTdevA = QtGui.QPushButton(self.tabDconfig) + self.btnTdevA = QtGui.QPushButton(self.grpDevA) self.btnTdevA.setObjectName("btnTdevA") self.verticalLayout_11.addWidget(self.btnTdevA) - self.verticalLayout_15.addLayout(self.verticalLayout_11) + self.verticalLayout_15.addWidget(self.grpDevA) self.gridLayout.addLayout(self.verticalLayout_15, 0, 0, 1, 1) self.verticalLayout_16 = QtGui.QVBoxLayout() self.verticalLayout_16.setObjectName("verticalLayout_16") self.chkDevB = QtGui.QCheckBox(self.tabDconfig) + self.chkDevB.setChecked(True) self.chkDevB.setObjectName("chkDevB") self.verticalLayout_16.addWidget(self.chkDevB) - self.verticalLayout_12 = QtGui.QVBoxLayout() + self.grpDevB = QtGui.QWidget(self.tabDconfig) + self.grpDevB.setObjectName("grpDevB") + self.verticalLayout_12 = QtGui.QVBoxLayout(self.grpDevB) self.verticalLayout_12.setObjectName("verticalLayout_12") - self.txtDeviceB = QtGui.QLineEdit(self.tabDconfig) + self.txtDeviceB = QtGui.QLineEdit(self.grpDevB) self.txtDeviceB.setObjectName("txtDeviceB") self.verticalLayout_12.addWidget(self.txtDeviceB) - self.txtBspeedB = QtGui.QLineEdit(self.tabDconfig) + self.txtBspeedB = QtGui.QLineEdit(self.grpDevB) self.txtBspeedB.setObjectName("txtBspeedB") self.verticalLayout_12.addWidget(self.txtBspeedB) - self.txtBmodeB = QtGui.QLineEdit(self.tabDconfig) + self.txtBmodeB = QtGui.QLineEdit(self.grpDevB) self.txtBmodeB.setObjectName("txtBmodeB") self.verticalLayout_12.addWidget(self.txtBmodeB) - self.btnTdevB = QtGui.QPushButton(self.tabDconfig) + self.btnTdevB = QtGui.QPushButton(self.grpDevB) self.btnTdevB.setObjectName("btnTdevB") self.verticalLayout_12.addWidget(self.btnTdevB) - self.verticalLayout_16.addLayout(self.verticalLayout_12) + self.verticalLayout_16.addWidget(self.grpDevB) self.gridLayout.addLayout(self.verticalLayout_16, 0, 1, 1, 1) self.verticalLayout_17 = QtGui.QVBoxLayout() self.verticalLayout_17.setObjectName("verticalLayout_17") self.chkDevC = QtGui.QCheckBox(self.tabDconfig) + self.chkDevC.setChecked(True) self.chkDevC.setObjectName("chkDevC") self.verticalLayout_17.addWidget(self.chkDevC) - self.verticalLayout_13 = QtGui.QVBoxLayout() + self.grpDevC = QtGui.QWidget(self.tabDconfig) + self.grpDevC.setObjectName("grpDevC") + self.verticalLayout_13 = QtGui.QVBoxLayout(self.grpDevC) self.verticalLayout_13.setObjectName("verticalLayout_13") - self.txtDeviceC = QtGui.QLineEdit(self.tabDconfig) + self.txtDeviceC = QtGui.QLineEdit(self.grpDevC) self.txtDeviceC.setObjectName("txtDeviceC") self.verticalLayout_13.addWidget(self.txtDeviceC) - self.txtBspeedC = QtGui.QLineEdit(self.tabDconfig) + self.txtBspeedC = QtGui.QLineEdit(self.grpDevC) self.txtBspeedC.setObjectName("txtBspeedC") self.verticalLayout_13.addWidget(self.txtBspeedC) - self.txtBmodeC = QtGui.QLineEdit(self.tabDconfig) + self.txtBmodeC = QtGui.QLineEdit(self.grpDevC) self.txtBmodeC.setObjectName("txtBmodeC") self.verticalLayout_13.addWidget(self.txtBmodeC) - self.btnTdevC = QtGui.QPushButton(self.tabDconfig) + self.btnTdevC = QtGui.QPushButton(self.grpDevC) self.btnTdevC.setObjectName("btnTdevC") self.verticalLayout_13.addWidget(self.btnTdevC) - self.verticalLayout_17.addLayout(self.verticalLayout_13) + self.verticalLayout_17.addWidget(self.grpDevC) self.gridLayout.addLayout(self.verticalLayout_17, 0, 2, 1, 1) self.verticalLayout_18 = QtGui.QVBoxLayout() self.verticalLayout_18.setObjectName("verticalLayout_18") self.chkDevD = QtGui.QCheckBox(self.tabDconfig) + self.chkDevD.setChecked(True) self.chkDevD.setObjectName("chkDevD") self.verticalLayout_18.addWidget(self.chkDevD) - self.verticalLayout_14 = QtGui.QVBoxLayout() + self.grpDevD = QtGui.QWidget(self.tabDconfig) + self.grpDevD.setObjectName("grpDevD") + self.verticalLayout_14 = QtGui.QVBoxLayout(self.grpDevD) self.verticalLayout_14.setObjectName("verticalLayout_14") - self.txtDeviceD = QtGui.QLineEdit(self.tabDconfig) + self.txtDeviceD = QtGui.QLineEdit(self.grpDevD) self.txtDeviceD.setObjectName("txtDeviceD") self.verticalLayout_14.addWidget(self.txtDeviceD) - self.txtBspeedD = QtGui.QLineEdit(self.tabDconfig) + self.txtBspeedD = QtGui.QLineEdit(self.grpDevD) self.txtBspeedD.setObjectName("txtBspeedD") self.verticalLayout_14.addWidget(self.txtBspeedD) - self.txtBmodeD = QtGui.QLineEdit(self.tabDconfig) + self.txtBmodeD = QtGui.QLineEdit(self.grpDevD) self.txtBmodeD.setObjectName("txtBmodeD") self.verticalLayout_14.addWidget(self.txtBmodeD) - self.btnTdevD = QtGui.QPushButton(self.tabDconfig) + self.btnTdevD = QtGui.QPushButton(self.grpDevD) self.btnTdevD.setObjectName("btnTdevD") self.verticalLayout_14.addWidget(self.btnTdevD) - self.verticalLayout_18.addLayout(self.verticalLayout_14) + self.verticalLayout_18.addWidget(self.grpDevD) self.gridLayout.addLayout(self.verticalLayout_18, 0, 3, 1, 1) self.verticalLayout_19 = QtGui.QVBoxLayout() self.verticalLayout_19.setObjectName("verticalLayout_19") @@ -443,6 +455,10 @@ self.lstDcapacity.setCurrentIndex(2) QtCore.QObject.connect(self.chkSequentially, QtCore.SIGNAL("clicked()"), self.chkSimultaneously.toggle) QtCore.QObject.connect(self.chkSimultaneously, QtCore.SIGNAL("clicked()"), self.chkSequentially.toggle) + QtCore.QObject.connect(self.chkDevA, QtCore.SIGNAL("toggled(bool)"), self.grpDevA.setEnabled) + QtCore.QObject.connect(self.chkDevB, QtCore.SIGNAL("toggled(bool)"), self.grpDevB.setEnabled) + QtCore.QObject.connect(self.chkDevC, QtCore.SIGNAL("toggled(bool)"), self.grpDevC.setEnabled) + QtCore.QObject.connect(self.chkDevD, QtCore.SIGNAL("toggled(bool)"), self.grpDevD.setEnabled) QtCore.QMetaObject.connectSlotsByName(MainWindow) MainWindow.setTabOrder(self.txtDpath, self.btnDpath) MainWindow.setTabOrder(self.btnDpath, self.txtRpath) @@ -550,4 +566,4 @@ ui.setupUi(MainWindow) MainWindow.show() sys.exit(app.exec_()) - +