|
|
# -*- coding: utf-8 -*-
|
|
|
|
|
|
"""
|
|
|
Module implementing MainWindow.
|
|
|
"""
|
|
|
|
|
|
from PyQt4.QtGui import QMainWindow
|
|
|
from PyQt4.QtCore import pyqtSignature
|
|
|
from PyQt4 import QtCore
|
|
|
from Ui_MainWindow import Ui_MainWindow
|
|
|
from Ui_Parameters import Ui_Parameters
|
|
|
from Ui_About import Ui_About
|
|
|
from PyQt4 import QtGui
|
|
|
from subprocess import *
|
|
|
import sys
|
|
|
import os
|
|
|
#import subprocess
|
|
|
import commands
|
|
|
from functions import functions
|
|
|
from functions import functions2
|
|
|
|
|
|
class MainWindow(QMainWindow, Ui_MainWindow):
|
|
|
"""
|
|
|
Class documentation goes here.
|
|
|
"""
|
|
|
|
|
|
def __init__(self, parent = None):
|
|
|
QMainWindow.__init__(self, parent)
|
|
|
self.setupUi(self)
|
|
|
|
|
|
self.setupUi2()
|
|
|
#sys.stdout = self #redirige salida estandar
|
|
|
|
|
|
def setupUi2(self):
|
|
|
|
|
|
# functions2.detect_devices(self) #busca los dispositivos de grabacion
|
|
|
|
|
|
self.var_Discs = 0 #Numero de discos del proyecto
|
|
|
self.var_Copys = 0 #Numero de copias
|
|
|
self.var_disc_n = 0
|
|
|
self.var_copy_n = 0
|
|
|
self.var_burned_discs = 0
|
|
|
|
|
|
self.var_list=[]
|
|
|
self.var_sublist=[]
|
|
|
|
|
|
self.var_devices=[]
|
|
|
|
|
|
self.var_step = 0
|
|
|
self.bool_state_burning = False
|
|
|
self.blank_discs = False
|
|
|
|
|
|
|
|
|
#Revisa si existe el archivo de confirguracion
|
|
|
if os.path.isfile("parameters.conf"):
|
|
|
functions2.get_parameters_conf(self)
|
|
|
self.txtInfo.append("Parameters were loaded from configuration file")
|
|
|
self.txtInfo.append("Total number of discs for recording: "+str(self.var_Discs * self.var_Copys))
|
|
|
|
|
|
else:
|
|
|
# self.txtInfo.append("Elija los parametros de configuracion")
|
|
|
functions2.set_parameters_test(self) #Establece ciertos parametros, para pruebas
|
|
|
|
|
|
functions2.set_vars(self) #Carga las variables de la clase con los parametros seleccionados
|
|
|
|
|
|
self.statusDpath = functions.dir_exists(self.var_Dpath, self)
|
|
|
self.statusRpath = functions.dir_exists(self.var_Rpath, self)
|
|
|
functions.load_days(self)
|
|
|
|
|
|
if os.path.isfile("parameters.conf"):
|
|
|
functions2.enabled_items1(True, self) #Se bloquean los parametros de configuracion
|
|
|
|
|
|
if os.path.isfile("burning.conf"):
|
|
|
functions2.get_burning_conf(self)
|
|
|
self.txtInfo.append("Current disc: "+str(self.var_disc_n))
|
|
|
self.txtInfo.append("Current copy: "+str(self.var_copy_n))
|
|
|
self.btnStartburn.setText("Continue")
|
|
|
|
|
|
self.txtDeviceA.setText("/dev/scd0")
|
|
|
self.txtDeviceB.setText("/dev/scd1")
|
|
|
self.txtDeviceC.setText("/dev/scd2")
|
|
|
self.txtDeviceD.setText("/dev/scd3")
|
|
|
|
|
|
self.connect(self.actionChange_Parameters, QtCore.SIGNAL("triggered()"), self.changeParameters)
|
|
|
self.connect(self.actionAbout, QtCore.SIGNAL("triggered()"), self.about)
|
|
|
|
|
|
self.var_process = QtCore.QProcess()
|
|
|
self.connect(self.var_process, QtCore.SIGNAL('readyReadStandardOutput()'), self.readOuput)
|
|
|
self.connect(self.var_process, QtCore.SIGNAL('readyReadStandardError()'), self.readError)
|
|
|
self.connect(self.var_process, QtCore.SIGNAL('finished(int,QProcess::ExitStatus)'), self.finished)
|
|
|
|
|
|
self.var_process_check = QtCore.QProcess()
|
|
|
self.connect(self.var_process_check, QtCore.SIGNAL('readyReadStandardOutput()'), self.readOuput_check)
|
|
|
self.connect(self.var_process_check, QtCore.SIGNAL('readyReadStandardError()'), self.readError_check)
|
|
|
self.connect(self.var_process_check, QtCore.SIGNAL('finished(int,QProcess::ExitStatus)'), self.finished_check)
|
|
|
|
|
|
def write(self, txt):
|
|
|
self.txtInfo.append(str(txt))
|
|
|
|
|
|
def changeParameters(self):
|
|
|
dlg=QtGui.QDialog()
|
|
|
dlgui=Ui_Parameters()
|
|
|
dlgui.setupUi(dlg)
|
|
|
if (dlg.exec_() == QtGui.QDialog.Accepted):
|
|
|
if dlgui.txtDisc.value() > self.var_Discs or dlgui.txtCopy.value() > dlgui.txtNcopys.value():
|
|
|
self.txtInfo.append("Wrong parameters")
|
|
|
else:
|
|
|
self.var_Copys = dlgui.txtNcopys.value()
|
|
|
self.var_disc_n = dlgui.txtDisc.value()
|
|
|
self.var_copy_n = dlgui.txtCopy.value()
|
|
|
self.txtInfo.append("Changed parameters")
|
|
|
self.var_burned_discs = ( ( (self.var_disc_n - 1) * self.var_Copys) + self.var_copy_n -1 )
|
|
|
|
|
|
|
|
|
def about(self):
|
|
|
dlg_about=QtGui.QDialog()
|
|
|
dlgui_about=Ui_About()
|
|
|
dlgui_about.setupUi(dlg_about)
|
|
|
dlg_about.exec_()
|
|
|
|
|
|
#----------------------------------------------------- Funciones del proceso ---------------------------------------------------------------
|
|
|
|
|
|
def readOuput(self):
|
|
|
# self.txtInfo.insertPlainText("stdout: " + QtCore.QString(self.var_process.readAllStandardOutput()))
|
|
|
pass
|
|
|
|
|
|
def readError(self):
|
|
|
self.txtInfo.insertPlainText("stderr: " + QtCore.QString(self.var_process.readAllStandardError()))
|
|
|
|
|
|
def finished(self):
|
|
|
self.txtInfo.insertPlainText("\nprocess completed"+QtCore.QString(self.var_process.exitCode())+"\n")
|
|
|
|
|
|
|
|
|
if self.var_process.exitCode() != 0:
|
|
|
self.txtInfo.append("ERROR")
|
|
|
|
|
|
if self.bool_state_burning:
|
|
|
if self.var_step == 0:
|
|
|
self.var_step = 1 #Se ira al paso de la grabacion en la siguiente llamada
|
|
|
|
|
|
elif self.var_step == 1:
|
|
|
functions2.update_message(2, self)
|
|
|
self.var_copy_n += 1
|
|
|
|
|
|
self.burning()
|
|
|
|
|
|
|
|
|
#----------------------------------------------------- Funciones del proceso de verificacion ---------------------------------------------------------------
|
|
|
|
|
|
def readOuput_check(self):
|
|
|
self.txtInfo.insertPlainText("stdout check: " + QtCore.QString(self.var_process_check.readAllStandardOutput()))
|
|
|
|
|
|
def readError_check(self):
|
|
|
self.txtInfo.setText("stderr check: " + QtCore.QString(self.var_process_check.readAllStandardError()))
|
|
|
|
|
|
def finished_check(self):
|
|
|
self.txtInfo.append("check process completed "+QtCore.QString(self.var_process_check.exitCode())+"\n")
|
|
|
|
|
|
|
|
|
#----------------------------------------------------- Obtencion de la ruta de los datos ---------------------------------------------------------------
|
|
|
|
|
|
@pyqtSignature("")
|
|
|
def on_btnDpath_clicked(self):
|
|
|
"""
|
|
|
Permite seleccionar graficamente el direcorio de los datos a grabar
|
|
|
"""
|
|
|
self.var_Dpath= str(QtGui.QFileDialog.getExistingDirectory(self, 'Open Directory', './', QtGui.QFileDialog.ShowDirsOnly))
|
|
|
self.txtDpath.setText(self.var_Dpath)
|
|
|
self.statusDpath = functions.dir_exists(self.var_Dpath, self)
|
|
|
functions.load_days(self)
|
|
|
|
|
|
|
|
|
@pyqtSignature("")
|
|
|
def on_txtDpath_editingFinished(self):
|
|
|
"""
|
|
|
Carga la ruta editada y verifica que sea correcta y carga la lista de dias
|
|
|
"""
|
|
|
self.var_Dpath=str(self.txtDpath.text()) #Se carga la variable con la ruta recien editada
|
|
|
self.statusDpath = functions.dir_exists(self.var_Dpath, self)
|
|
|
functions.load_days(self)
|
|
|
|
|
|
|
|
|
#----------------------------------------------------- Obtencion de las ruta del proyecto ---------------------------------------------------------------
|
|
|
|
|
|
@pyqtSignature("")
|
|
|
def on_btnRpath_clicked(self):
|
|
|
"""
|
|
|
Permite seleccionar graficamente el direcorio del proyecto
|
|
|
"""
|
|
|
self.var_Rpath = str(QtGui.QFileDialog.getExistingDirectory(self, 'Open Directory', './', QtGui.QFileDialog.ShowDirsOnly))
|
|
|
self.txtRpath.setText(self.var_Rpath)
|
|
|
self.statusRpath = functions.dir_exists(self.var_Rpath, self)
|
|
|
|
|
|
|
|
|
@pyqtSignature("")
|
|
|
def on_txtRpath_editingFinished(self):
|
|
|
"""
|
|
|
Valida la ruta del proyecto
|
|
|
"""
|
|
|
self.var_Rpath = str(self.txtRpath.text()) #Se carga la variable con la ruta recien editada
|
|
|
self.statusRpath = functions.dir_exists(self.var_Rpath, self)
|
|
|
|
|
|
|
|
|
#----------------------------------------------------- Tipo de datos ---------------------------------------------------------------
|
|
|
|
|
|
@pyqtSignature("int")
|
|
|
def on_lstDtype_activated(self, index):
|
|
|
"""
|
|
|
Permite elegir entre los tipos de archivos
|
|
|
"""
|
|
|
self.txtDtype.setReadOnly(True)
|
|
|
if index == 0:
|
|
|
self.var_Dtype ='r'
|
|
|
elif index == 1:
|
|
|
self.var_Dtype ='pdata'
|
|
|
elif index == 2:
|
|
|
self.var_Dtype ='sswma'
|
|
|
else :
|
|
|
self.var_Dtype =''
|
|
|
self.txtDtype.setReadOnly(False)
|
|
|
|
|
|
self.txtDtype.setText(self.var_Dtype)
|
|
|
functions.load_days(self) #llamada a funcion
|
|
|
|
|
|
@pyqtSignature("")
|
|
|
def on_txtDtype_editingFinished(self):
|
|
|
self.var_Dtype=str(self.txtDtype.text())
|
|
|
functions.load_days(self) #llamada a funcion
|
|
|
|
|
|
|
|
|
#----------------------------------------------------- Etiqueta ---------------------------------------------------------------
|
|
|
|
|
|
@pyqtSignature("")
|
|
|
def on_txtElabel_editingFinished(self):
|
|
|
self.var_Elabel = str(self.txtElabel.text())
|
|
|
|
|
|
#----------------------------------------------------- Numero de copias ---------------------------------------------------------------
|
|
|
@pyqtSignature("")
|
|
|
def on_txtCopys_editingFinished(self):
|
|
|
self.var_Copys = self.txtCopys.value()
|
|
|
|
|
|
#----------------------------------------------------- Seleccion del rango de fechas ---------------------------------------------------------------
|
|
|
|
|
|
@pyqtSignature("int") #CLOSED
|
|
|
def on_lstStartDay_activated(self, index):
|
|
|
"""
|
|
|
Cambia la lista de opciones en lstStopDay
|
|
|
"""
|
|
|
var_StopDay_index=self.lstStopDay.count() - self.lstStopDay.currentIndex()
|
|
|
self.lstStopDay.clear()
|
|
|
|
|
|
for i in self.var_list[index:]:
|
|
|
self.lstStopDay.addItem(i)
|
|
|
|
|
|
self.lstStopDay.setCurrentIndex(self.lstStopDay.count() - var_StopDay_index)
|
|
|
|
|
|
functions.get_sub_list(self)
|
|
|
|
|
|
|
|
|
@pyqtSignature("int") #CLOSED
|
|
|
def on_lstStopDay_activated(self, index):
|
|
|
"""
|
|
|
Cambia la lista de opciones en lstStartDay
|
|
|
"""
|
|
|
var_StartDay_index=self.lstStartDay.currentIndex()
|
|
|
var_end_index = self.lstStopDay.count() - index
|
|
|
self.lstStartDay.clear()
|
|
|
|
|
|
for i in self.var_list[:len(self.var_list) - var_end_index + 1]:
|
|
|
self.lstStartDay.addItem(i)
|
|
|
|
|
|
self.lstStartDay.setCurrentIndex(var_StartDay_index)
|
|
|
|
|
|
functions.get_sub_list(self)
|
|
|
|
|
|
|
|
|
#----------------------------------------------------- Capacidad del dispositivo de grabacion ---------------------------------------------------------------
|
|
|
|
|
|
@pyqtSignature("")
|
|
|
def on_txtDcapacity_editingFinished(self):
|
|
|
self.var_Dcapacity = self.txtDcapacity.value()
|
|
|
|
|
|
|
|
|
@pyqtSignature("int") #CLOSED
|
|
|
def on_lstDcapacity_activated(self, index):
|
|
|
"""
|
|
|
Permite elegir el tamaƱo del disco
|
|
|
"""
|
|
|
if index == 0:
|
|
|
var_size=25.0
|
|
|
elif index == 1:
|
|
|
var_size=8.5
|
|
|
elif index == 2:
|
|
|
var_size=4.7
|
|
|
elif index == 3:
|
|
|
var_size=0.7
|
|
|
|
|
|
if index != 4:
|
|
|
self.txtDcapacity.setValue(var_size*10**9/1024**2)
|
|
|
self.txtDcapacity.setReadOnly(True)
|
|
|
else:
|
|
|
self.txtDcapacity.setValue(100.0)
|
|
|
self.txtDcapacity.setReadOnly(False)
|
|
|
|
|
|
self.var_lstDcapacity = self.lstDcapacity.currentIndex()
|
|
|
self.var_Dcapacity = self.txtDcapacity.value()
|
|
|
|
|
|
|
|
|
#==============================================================================
|
|
|
# Botones para la generacion de los archivos de configuracion y el proceso de grabacion
|
|
|
#==============================================================================
|
|
|
|
|
|
#----------------------------------------------------- Generacion de la configuracion usando los parametros ---------------------------------------------------------------
|
|
|
|
|
|
@pyqtSignature("")
|
|
|
def on_btnGbkp_clicked(self):
|
|
|
"""
|
|
|
Generacion de archivos de configuracion usando los parametros
|
|
|
"""
|
|
|
|
|
|
if functions.validate_parameters(self) == False:
|
|
|
return
|
|
|
|
|
|
#Crea las carpetas en la ruta del proyecto y verifica que se crearon correctamente
|
|
|
list_dirs=['gpath','iso','ppath', 'tmpdata']
|
|
|
bool_make_dirs = functions.make_dirs(list_dirs, self)
|
|
|
if bool_make_dirs == False:
|
|
|
return
|
|
|
|
|
|
var_files_list = functions.list_files(self) #Se obtiene la lista de archivos a grabar
|
|
|
|
|
|
self.var_Discs = functions.make_files_dat(var_files_list, self) #Se crean los archivos .dat
|
|
|
|
|
|
functions.make_files_print(self) # Se crean los archivos .print
|
|
|
|
|
|
functions2.make_parameters_conf(self) # se crea el archivo parameters.conf
|
|
|
|
|
|
self.txtInfo.append("Total number of discs for recording: "+str(self.var_Discs * self.var_Copys))
|
|
|
|
|
|
#Se bloquean los parametros de configuracion
|
|
|
functions2.enabled_items1(True, self)
|
|
|
|
|
|
|
|
|
|
|
|
#----------------------------------------------------- Permite reiniciar la configuracion ---------------------------------------------------------------
|
|
|
|
|
|
@pyqtSignature("")
|
|
|
def on_btnRestart_clicked(self):
|
|
|
"""
|
|
|
Permite que se puedan cambiar los parametros
|
|
|
"""
|
|
|
if os.path.isfile("parameters.conf"):
|
|
|
os.remove("parameters.conf")
|
|
|
if os.path.isfile("burning.conf"):
|
|
|
os.remove("burning.conf")
|
|
|
|
|
|
functions2.enabled_items1(False, self)
|
|
|
self.btnStartburn.setText("Start Burn")
|
|
|
|
|
|
|
|
|
|
|
|
#----------------------------------------------------- Iniciar proceso de grabacion ---------------------------------------------------------------
|
|
|
|
|
|
@pyqtSignature("")
|
|
|
def on_btnStartburn_clicked(self):
|
|
|
"""
|
|
|
Se inicia el proceso de grabacion
|
|
|
"""
|
|
|
####### self.txtInfo.append("BUTTON: on_btnStartburn_clicked")
|
|
|
#Verifica que exista algun dispositivo de grabacion seleccionado
|
|
|
if not(functions2.selected_devices(self)):
|
|
|
self.txtInfo.append("There is no recording device selected")
|
|
|
return
|
|
|
|
|
|
# #Lista los dispositivos de grabacion a usar
|
|
|
# for dev in self.var_devices:
|
|
|
# self.txtInfo.append("recording device :"+dev)
|
|
|
|
|
|
#Si se ingresaron los DVDs en blanco
|
|
|
if self.blank_discs == True:
|
|
|
self.btnStartburn.setEnabled(False)
|
|
|
self.burning()
|
|
|
return
|
|
|
|
|
|
#Si se cargo los parametros de burning.conf
|
|
|
if self.var_burned_discs != 0:
|
|
|
self.txtInfo.append("BURNED DISC: "+str(self.var_burned_discs))
|
|
|
self.var_step = 0
|
|
|
self.bool_state_burning = True
|
|
|
self.blank_discs = False
|
|
|
functions2.enabled_items2(True, self)
|
|
|
self.burning()
|
|
|
return
|
|
|
|
|
|
#Asigna las variables con los valores iniciales
|
|
|
self.var_disc_n = 1 # numero de disco actual para grabacion
|
|
|
self.var_copy_n = 1
|
|
|
self.var_burned_discs = 0 #numero de discos grabados
|
|
|
self.var_step = 0
|
|
|
self.bool_state_burning = True
|
|
|
self.blank_discs = False
|
|
|
functions2.enabled_items2(True, self)
|
|
|
self.burning()
|
|
|
|
|
|
|
|
|
def burning(self):
|
|
|
|
|
|
var_Rpath_ppath=self.var_Rpath+"/ppath"
|
|
|
var_Rpath_iso=self.var_Rpath+"/iso"
|
|
|
|
|
|
#Si ya se grabaron todas las copias del disco
|
|
|
if self.var_copy_n > self.var_Copys:
|
|
|
#borra la imagen.iso del numero de disco anterior
|
|
|
file_iso=var_Rpath_iso+"/"+functions.i2s(self.var_disc_n)+".iso"
|
|
|
# self.txtInfo.append("Deleting iso file")
|
|
|
# os.remove(file_iso)
|
|
|
self.var_copy_n = 1
|
|
|
self.var_disc_n += 1 # aumenta numero de disco actual para grabacion
|
|
|
self.var_step = 0
|
|
|
|
|
|
#Si ya se grabaron todos los discos
|
|
|
if self.var_disc_n > self.var_Discs:
|
|
|
self.bool_state_burning = False
|
|
|
self.txtInfo.append("Recording process is complete")
|
|
|
functions2.eject_devices(self) # Expulsa las bandejas de los dispostivos de grabacion
|
|
|
self.on_btnRestart_clicked()
|
|
|
self.btnStopburn.setEnabled(False)
|
|
|
return
|
|
|
|
|
|
# self.txtInfo.append("\n"+str(self.var_disc_n)+" "+str(self.var_copy_n)+" "+str(self.var_step))
|
|
|
|
|
|
#Creacion del archivo.iso para la grabacion
|
|
|
if self.var_step == 0:
|
|
|
self.txtInfo.append("########## Disc number: "+str(self.var_disc_n)+"##########")
|
|
|
self.txtInfo.append("---------Creating iso file number: "+str(self.var_disc_n))
|
|
|
var_cmd = functions.cmd_iso(self)
|
|
|
|
|
|
#Grabacion de los DVDs
|
|
|
elif self.var_step == 1:
|
|
|
|
|
|
functions2.make_burning_conf(self)
|
|
|
|
|
|
var_index = ( ( (self.var_disc_n - 1) * self.var_Copys) + (self.var_copy_n - 1) - self.var_burned_discs ) % len(self.var_devices)
|
|
|
# self.txtInfo.append("INDEX: "+str(var_index))
|
|
|
if var_index == 0 and self.blank_discs == False:
|
|
|
functions2.eject_devices(self) # Expulsa las bandejas de los dispostivos de grabacion
|
|
|
self.blank_discs = True
|
|
|
self.btnStartburn.setText("Continue")
|
|
|
self.btnStartburn.setEnabled(True)
|
|
|
return
|
|
|
|
|
|
self.blank_discs = False
|
|
|
|
|
|
self.txtInfo.append("recording disc:"+str(self.var_copy_n)+", copy:"+str(self.var_copy_n))
|
|
|
functions2.update_message(1, self)
|
|
|
|
|
|
var_dev_tmp = self.var_devices[var_index]
|
|
|
file_iso=var_Rpath_iso+"/"+functions.i2s(self.var_disc_n)+".iso"
|
|
|
var_cmd = "wodim -v dev="+var_dev_tmp+" speed=16 "+ file_iso
|
|
|
|
|
|
self.var_process.start('echo "comando"')
|
|
|
# self.txtInfo.append("CMD: "+var_cmd)
|
|
|
|
|
|
# self.txtInfo.append("creando iso")
|
|
|
# self.var_process.start(var_cmd)
|
|
|
|
|
|
|
|
|
#----------------------------------------------------- Detener proceso de grabacion ---------------------------------------------------------------
|
|
|
|
|
|
@pyqtSignature("")
|
|
|
def on_btnStopburn_clicked(self):
|
|
|
"""
|
|
|
Slot documentation goes here.
|
|
|
"""
|
|
|
self.bool_state_burning = False
|
|
|
self.var_process.terminate() #Termina el proceso, si puede
|
|
|
# self.var_process.kill() #Mata el proceso, no es la forma adecuada, solo usar si terminate() no funciona
|
|
|
self.txtInfo.append("Stopped recording")
|
|
|
functions2.enabled_items2(False, self)
|
|
|
|
|
|
|
|
|
#----------------------------------------------------- Testeo de las unidades de grabacion ---------------------------------------------------------------
|
|
|
|
|
|
@pyqtSignature("")
|
|
|
def on_btnTdevA_clicked(self):
|
|
|
var_dev = str(self.txtDeviceA.text())
|
|
|
var_cmd = 'eject ' + var_dev + '; eject -t ' + var_dev
|
|
|
commands.getstatusoutput(var_cmd)
|
|
|
|
|
|
@pyqtSignature("")
|
|
|
def on_btnTdevB_clicked(self):
|
|
|
var_dev = str(self.txtDeviceB.text())
|
|
|
var_cmd = 'eject ' + var_dev + '; eject -t ' + var_dev
|
|
|
commands.getstatusoutput(var_cmd)
|
|
|
|
|
|
@pyqtSignature("")
|
|
|
def on_btnTdevC_clicked(self):
|
|
|
var_dev = str(self.txtDeviceC.text())
|
|
|
var_cmd = 'eject ' + var_dev + '; eject -t ' + var_dev
|
|
|
commands.getstatusoutput(var_cmd)
|
|
|
|
|
|
@pyqtSignature("")
|
|
|
def on_btnTdevD_clicked(self):
|
|
|
var_dev = str(self.txtDeviceD.text())
|
|
|
var_cmd = 'eject ' + var_dev + '; eject -t ' + var_dev
|
|
|
commands.getstatusoutput(var_cmd)
|
|
|
|
|
|
@pyqtSignature("")
|
|
|
def on_btnTDpath_clicked(self):
|
|
|
"""
|
|
|
Slot documentation goes here.
|
|
|
"""
|
|
|
self.var_TDpath= str(QtGui.QFileDialog.getExistingDirectory(self, 'Open Directory', './', QtGui.QFileDialog.ShowDirsOnly))
|
|
|
self.txtTDpath.setText(self.var_TDpath)
|
|
|
self.statusTDpath = functions.dir_exists(self.var_TDpath, self)
|
|
|
|
|
|
|
|
|
@pyqtSignature("")
|
|
|
def on_btnCHstart_clicked(self):
|
|
|
"""
|
|
|
Slot documentation goes here.
|
|
|
"""
|
|
|
pass
|
|
|
|