class MainSettingsWidget(QtGui.QWidget):
	def __init__(self):
		super(MainSettingsWidget,self).__init__(None,
		# QtCore.Qt.WindowStaysOnTopHint)
			)
		self.setupGUI()
	def setupGUI(self):
		# self.setWindowTitle("Igor")
		self.setGeometry(500, 300, 350, 200)
		self.layout = QtGui.QVBoxLayout()
		self.setLayout(self.layout)
		self.sliderLine = LineWidget(type='text',label='Slider parameter')
		self.timeLine = LineWidget(type='text',label='Time parameter (Do not touch)')
		self.fileHeaderLine = LineWidget(type='text',label='File header parameters')
		self.sampleLengthLine = LineWidget(type='text',label='Sample length parameter')
		self.layout.addWidget(self.sliderLine)
		self.layout.addWidget(self.timeLine)
		self.layout.addWidget(self.fileHeaderLine)
		self.layout.addWidget(self.sampleLengthLine)
		self.buttonsWidget = QtGui.QWidget()
		self.layout.addWidget(self.buttonsWidget)
		self.buttonsLayout = QtGui.QHBoxLayout()
		self.buttonsWidget.setLayout(self.buttonsLayout)

		# self.okButton = QtGui.QPushButton('OK')
		# self.cancelButton = QtGui.QPushButton('Cancel')
		# self.buttonsLayout.addWidget(self.okButton)
		# self.buttonsLayout.addWidget(self.cancelButton)
	def setConfig(self,config):
		self.sliderLine.setValue(config['slider'])
		self.timeLine.setValue(config['time'])
		self.fileHeaderLine.setValue(config['fileheader'])
		self.sampleLengthLine.setValue(config['SampleLengthParameter'])
		self.conf = config
	def config(self):
		time = self.timeLine.value()
		slider = self.sliderLine.value()
		fileHeaderText = self.fileHeaderLine.value()
		slengthpar = self.sampleLengthLine.value()
		self.conf['slider'] = slider
		self.conf['time'] = time
		self.conf['fileheader'] = fileHeaderText
		self.conf['SampleLengthParameter'] = slengthpar
		return self.conf
	def getHeaderExpr(self,text=None):
		'''
		get regex string to find header in clf file
		'''
		if text == None: text = self.fileHeaderLine.value()
		hlist = text.split(',')
		N = len(hlist)
		for i in xrange(N):
			hlist[i] = hlist[i].strip()
		expr = ''
		for i in xrange(N):
			expr += hlist[i]
			if i!=N-1:
				expr +='.*'
			else:
				expr += '[^\n]+'
		return expr
	def getSampleLengthExpr(self):
		text = self.sampleLengthLine.value()
		return self.getHeaderExpr(text=text)
class MainSettingsWidget(QtGui.QWidget):
    def __init__(self):
        super(MainSettingsWidget,
              self).__init__(None,
                             # QtCore.Qt.WindowStaysOnTopHint)
                             )
        self.setupGUI()

    def setupGUI(self):
        # self.setWindowTitle("Igor")
        self.setGeometry(500, 300, 350, 200)
        self.layout = QtGui.QVBoxLayout()
        self.setLayout(self.layout)
        self.sliderLine = LineWidget(type='text', label='Slider parameter')
        self.timeLine = LineWidget(type='text',
                                   label='Time parameter (Do not touch)')
        self.fileHeaderLine = LineWidget(type='text',
                                         label='File header parameters')
        self.sampleLengthLine = LineWidget(type='text',
                                           label='Sample length parameter')
        self.layout.addWidget(self.sliderLine)
        self.layout.addWidget(self.timeLine)
        self.layout.addWidget(self.fileHeaderLine)
        self.layout.addWidget(self.sampleLengthLine)
        self.buttonsWidget = QtGui.QWidget()
        self.layout.addWidget(self.buttonsWidget)
        self.buttonsLayout = QtGui.QHBoxLayout()
        self.buttonsWidget.setLayout(self.buttonsLayout)

        # self.okButton = QtGui.QPushButton('OK')
        # self.cancelButton = QtGui.QPushButton('Cancel')
        # self.buttonsLayout.addWidget(self.okButton)
        # self.buttonsLayout.addWidget(self.cancelButton)
    def setConfig(self, config):
        self.sliderLine.setValue(config['slider'])
        self.timeLine.setValue(config['time'])
        self.fileHeaderLine.setValue(config['fileheader'])
        self.sampleLengthLine.setValue(config['SampleLengthParameter'])
        self.conf = config

    def config(self):
        time = self.timeLine.value()
        slider = self.sliderLine.value()
        fileHeaderText = self.fileHeaderLine.value()
        slengthpar = self.sampleLengthLine.value()
        self.conf['slider'] = slider
        self.conf['time'] = time
        self.conf['fileheader'] = fileHeaderText
        self.conf['SampleLengthParameter'] = slengthpar
        return self.conf

    def getHeaderExpr(self, text=None):
        '''
		get regex string to find header in clf file
		'''
        if text == None: text = self.fileHeaderLine.value()
        hlist = text.split(',')
        N = len(hlist)
        for i in xrange(N):
            hlist[i] = hlist[i].strip()
        expr = ''
        for i in xrange(N):
            expr += hlist[i]
            if i != N - 1:
                expr += '.*'
            else:
                expr += '[^\n]+'
        return expr

    def getSampleLengthExpr(self):
        text = self.sampleLengthLine.value()
        return self.getHeaderExpr(text=text)