def actionImport(self):
        if not self._checkHasOpenFile():
            return
        fileDialog = QtGui.QFileDialog(self.mainWindow)
        dialogReturn = fileDialog.getOpenFileNameAndFilter(parent=self.mainWindow, caption='Import from HDF5 file',
                                                           directory=str(os.getcwd()), filter='*.h5')
        fileName = str(dialogReturn[0])
        if not fileName:
            return
        h5file = h5py.File(fileName)
        devices = ShotPrepToolModel.getListOfDevices(h5file)
        dialog = ListSelectionDialog(self.mainWindow)
        dialog.addItems(devices)
        response = dialog.exec_()
        if response == QtGui.QDialog.Accepted:
            checkedItems = dialog.getCheckedItems()
            if set(checkedItems).intersection(self.model.returnModelsInFile().keys()):
                if (self._verifyOverwriteExistingDevices(checkedItems)):
                    self.model.importDevices(dialog.getCheckedItems(), h5file)
                    self._clearTabs()
                    self._initTabs(self.model.returnModelsInFile())
                    self._modelChanged()
            else:
                self.model.importDevices(dialog.getCheckedItems(), h5file)
                self._clearTabs()
                self._initTabs(self.model.returnModelsInFile())
                self._modelChanged()

        h5file.close()