Skip to content
Snippets Groups Projects
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
load_view.py 2.32 KiB
from __future__ import absolute_import

from PyQt4 import QtGui, QtCore

from mantidqtpython import MantidQt


class LoadView(QtGui.QWidget):
    sig_loading_finished = QtCore.pyqtSignal()

    def __init__(self, parent=None):
        super(LoadView, self).__init__(parent)

        self.browse_button = QtGui.QPushButton("User Dirs", self)
        self.browse_button.clicked.connect(self.show_directory_manager)

        self.co_button = QtGui.QPushButton("Co-Add", self)
        self.load_button = QtGui.QPushButton("Load", self)

        self.spinbox = QtGui.QSpinBox(self)
        self.spinbox.setRange(0, 99999)
        self.spinbox.setValue(0)
        self.last_spinbox_val = 0

        self.grid = QtGui.QVBoxLayout()
        self.grid.addWidget(self.spinbox)
        self.grid.addWidget(self.load_button)
        self.grid.addWidget(self.co_button)
        self.grid.addWidget(self.browse_button)
        self.setLayout(self.grid)

    def show_directory_manager(self):
        MantidQt.API.ManageUserDirectories.openUserDirsDialog(self)

    def disable_buttons(self):
        self.spinbox.setEnabled(False)
        self.load_button.setEnabled(False)
        self.co_button.setEnabled(False)

    def enable_buttons(self):
        self.spinbox.setEnabled(True)
        self.load_button.setEnabled(True)
        self.co_button.setEnabled(True)
        self.sig_loading_finished.emit()

    def on_load_clicked(self, slot):
        self.load_button.clicked.connect(slot)

    def unreg_on_load_clicked(self, slot):
        try:
            self.load_button.clicked.disconnect(slot)
        except TypeError:
            return

    def on_co_add_clicked(self, slot):
        self.co_button.clicked.connect(slot)

    def unreg_on_co_add_clicked(self, slot):
        try:
            self.co_button.clicked.disconnect(slot)
        except TypeError:
            return

    def on_spinbox_changed(self, slot):
        self.spinbox.valueChanged.connect(slot)

    def unreg_on_spinbox_changed(self, slot):
        try:
            self.spinbox.valueChanged.disconnect(slot)
        except TypeError:
            return

    def on_loading_finished(self, slot):
        self.sig_loading_finished.connect(slot)

    def unreg_on_loading_finished(self, slot):
        try:
            self.sig_loading_finished.disconnect(slot)
        except TypeError:
            return