# Path: spimagine/gui/floatslider.py
# class FloatSlider(QtWidgets.QSlider):
#     floatValueChanged = QtCore.pyqtSignal(float)
#     def __init__(self,*args):
#         super(FloatSlider,self).__init__(*args)
#         self.setRange(0,1.,100)
#         self.valueChanged.connect(self.onChanged)
# 
#         self.setStyleSheet("QToolTip { color:white;}")
# 
#     def setRange(self,minVal,maxVal,steps=100):
#         assert(minVal <= maxVal)
#         super(FloatSlider,self).setRange(0,steps)
#         self.minVal = minVal
#         self.maxVal = maxVal
#         self.steps = steps
# 
#     def _from_float(self,x):
#         ind = int(self.steps*(x-self.minVal)/(self.maxVal-self.minVal))
#         ind = max(0,min(self.steps,ind))
#         logger.debug("floatslider (id = %s):  index from float %s = %s"%(id(self), x,ind))
#         return ind
# 
#     def _from_int(self,n):
#         return self.minVal+1.*(self.maxVal-self.minVal)*n/self.steps
# 
# 
#     def setValue(self,val):
#         logger.debug("floatslider (id = %s): setValue to : %s"%(id(self),val))
#         self.floatValue = val
# 
#         # this surpressed anoying feedback
#         old = self.blockSignals(True)
#         super(FloatSlider,self).setValue(self._from_float(val))
#         self.blockSignals(old)
# 
#     def value(self):
#         return self.floatValue
#         # return self._from_int(super(FloatSlider,self).value())
# 
#     def onChanged(self,ind):
#         self.floatValue = self._from_int(ind)
#         self.floatValueChanged.emit(self.floatValue)
#         # self.floatValueChanged.emit(self._from_int(ind))
# 
# Path: spimagine/gui/gui_utils.py
# def createImageCheckbox(parent, img1=None, img2 = None, tooltip =""):
#     check = QtWidgets.QCheckBox("",parent)
#     checkStr = checkBoxStyleStr%(absPath(img1),absPath(img2))
#     if os.name =="nt":
#         checkStr = checkStr.replace("\\","/")
# 
#     check.setStyleSheet(checkStr)
#     if tooltip:
#         check.setToolTip(tooltip)
#     return check
# 
# def createStandardButton(parent,fName = None,method = None, width = 24, tooltip = ""):
#     but = QtWidgets.QPushButton("",parent)
#     but.setStyleSheet("background-color: black;color:black;color:lightgrey;")
#     if fName:
#         but.setIcon(QtGui.QIcon(fName))
#     but.setIconSize(QtCore.QSize(width,width))
#     if method:
#         but.clicked.connect(method)
#     but.setMaximumWidth(width)
#     but.setMaximumHeight(width)
#     if tooltip:
#         but.setToolTip(tooltip)
#     return but


import logging
import sys
import os
import numpy as np
import spimagine
from six.moves import zip
from PyQt5 import QtCore
from PyQt5 import QtGui, QtWidgets
from PyQt5 import QtOpenGL
from spimagine.gui.floatslider import FloatSlider
from spimagine.gui.gui_utils import createImageCheckbox,createStandardButton
        renderFolder.returnPressed.connect(lambda: self.setDirName(renderFolder.text()))
        self._dirNameChanged.connect(renderFolder.setText)

        self.setDirName("./")

        vbox.addLayout(hbox)

        
        hbox = QtWidgets.QHBoxLayout()
        hbox.addWidget(QtWidgets.QLabel("number frames:\t"))
        frameEdit = QtWidgets.QLineEdit("100")
        frameEdit.setValidator(QtGui.QIntValidator(bottom=1))
        frameEdit.returnPressed.connect(lambda: self._frameNumberChanged.emit(int(frameEdit.text())))
        hbox.addWidget(frameEdit)

        vbox.addLayout(hbox)

        hbox = QtWidgets.QHBoxLayout()
        hbox.addWidget(QtWidgets.QLabel("record delay (ms):\t"))
        delayEdit = QtWidgets.QLineEdit("50")
        delayEdit.setValidator(QtGui.QIntValidator(bottom=50))
        delayEdit.returnPressed.connect(lambda: self._recordDelayChanged.emit(int(delayEdit.text())))
        hbox.addWidget(delayEdit)

        vbox.addLayout(hbox)

        self.setStyleSheet("""
        QFrame,QLabel,QPushButton,QComboBox, QListView{
        color: white;
        background: black;

# Path: spimagine/gui/floatslider.py
# class FloatSlider(QtWidgets.QSlider):
#     floatValueChanged = QtCore.pyqtSignal(float)
#     def __init__(self,*args):
#         super(FloatSlider,self).__init__(*args)
#         self.setRange(0,1.,100)
#         self.valueChanged.connect(self.onChanged)
# 
#         self.setStyleSheet("QToolTip { color:white;}")
# 
#     def setRange(self,minVal,maxVal,steps=100):
#         assert(minVal <= maxVal)
#         super(FloatSlider,self).setRange(0,steps)
#         self.minVal = minVal
#         self.maxVal = maxVal
#         self.steps = steps
# 
#     def _from_float(self,x):
#         ind = int(self.steps*(x-self.minVal)/(self.maxVal-self.minVal))
#         ind = max(0,min(self.steps,ind))
#         logger.debug("floatslider (id = %s):  index from float %s = %s"%(id(self), x,ind))
#         return ind
# 
#     def _from_int(self,n):
#         return self.minVal+1.*(self.maxVal-self.minVal)*n/self.steps
# 
# 
#     def setValue(self,val):
#         logger.debug("floatslider (id = %s): setValue to : %s"%(id(self),val))
#         self.floatValue = val
# 
#         # this surpressed anoying feedback
#         old = self.blockSignals(True)
#         super(FloatSlider,self).setValue(self._from_float(val))
#         self.blockSignals(old)
# 
#     def value(self):
#         return self.floatValue
#         # return self._from_int(super(FloatSlider,self).value())
# 
#     def onChanged(self,ind):
#         self.floatValue = self._from_int(ind)
#         self.floatValueChanged.emit(self.floatValue)
#         # self.floatValueChanged.emit(self._from_int(ind))
# 
# Path: spimagine/gui/gui_utils.py
# def createImageCheckbox(parent, img1=None, img2 = None, tooltip =""):
#     check = QtWidgets.QCheckBox("",parent)
#     checkStr = checkBoxStyleStr%(absPath(img1),absPath(img2))
#     if os.name =="nt":
#         checkStr = checkStr.replace("\\","/")
# 
#     check.setStyleSheet(checkStr)
#     if tooltip:
#         check.setToolTip(tooltip)
#     return check
# 
# def createStandardButton(parent,fName = None,method = None, width = 24, tooltip = ""):
#     but = QtWidgets.QPushButton("",parent)
#     but.setStyleSheet("background-color: black;color:black;color:lightgrey;")
#     if fName:
#         but.setIcon(QtGui.QIcon(fName))
#     but.setIconSize(QtCore.QSize(width,width))
#     if method:
#         but.clicked.connect(method)
#     but.setMaximumWidth(width)
#     but.setMaximumHeight(width)
#     if tooltip:
#         but.setToolTip(tooltip)
#     return but


# Path: spimagine/gui/mainsettings.py
import logging
import sys
import os
import numpy as np
import spimagine
from six.moves import zip
from PyQt5 import QtCore
from PyQt5 import QtGui, QtWidgets
from PyQt5 import QtOpenGL
from spimagine.gui.floatslider import FloatSlider
from spimagine.gui.gui_utils import createImageCheckbox,createStandardButton

        renderFolder.returnPressed.connect(lambda: self.setDirName(renderFolder.text()))
        self._dirNameChanged.connect(renderFolder.setText)

        self.setDirName("./")

        vbox.addLayout(hbox)

        
        hbox = QtWidgets.QHBoxLayout()
        hbox.addWidget(QtWidgets.QLabel("number frames:\t"))
        frameEdit = QtWidgets.QLineEdit("100")
        frameEdit.setValidator(QtGui.QIntValidator(bottom=1))
        frameEdit.returnPressed.connect(lambda: self._frameNumberChanged.emit(int(frameEdit.text())))
        hbox.addWidget(frameEdit)

        vbox.addLayout(hbox)

        hbox = QtWidgets.QHBoxLayout()
        hbox.addWidget(QtWidgets.QLabel("record delay (ms):\t"))
        delayEdit = QtWidgets.QLineEdit("50")
        delayEdit.setValidator(QtGui.QIntValidator(bottom=50))
        delayEdit.returnPressed.connect(lambda: self._recordDelayChanged.emit(int(delayEdit.text())))
        hbox.addWidget(delayEdit)

        vbox.addLayout(hbox)

        self.setStyleSheet("""
        QFrame,QLabel,QPushButton,QComboBox, QListView{
        color: white;
        background: black;

        }