| |
|
|
| """ |
| Module implementing Dialog. |
| """ |
|
|
| from PyQt4.QtGui import ( |
| QDialog, |
| QFileDialog, |
| ) |
| from PyQt4.QtCore import pyqtSignature |
|
|
| import datetime |
| import os |
|
|
| from Ui_addMTModel import Ui_Dialog |
| from util import doAlert |
|
|
|
|
| class AddMTModelDialog(QDialog, Ui_Dialog): |
| """ |
| Class documentation goes here. |
| """ |
| def __init__(self, parent=None, workdir=None): |
| """ |
| Constructor |
| """ |
| QDialog.__init__(self, parent) |
| self.setupUi(self) |
| self.timestr = None |
| self.workdir = workdir |
| todir, timestr = self.findEmptyDirWithTime(self.workdir) |
| self.editPath.setText(todir) |
| self.editName.setText("SampleModel_" + timestr) |
|
|
| def findEmptyDirWithTime(self, workdir): |
| if not self.timestr: |
| self.timestr = datetime.datetime.now().strftime('%Y-%m-%d_%H%M%S') |
| while True: |
| todir = os.path.join(workdir, "Model_%s" % self.timestr) |
| if not os.path.exists(todir): |
| break |
| self.timestr = datetime.datetime.now().strftime('%Y-%m-%d_%H%M%S') |
| return todir, self.timestr |
|
|
| @pyqtSignature("") |
| def on_btnLocal_clicked(self): |
| """ |
| Slot documentation goes here. |
| """ |
| dialog = QFileDialog(self) |
| dialog.setFileMode(QFileDialog.ExistingFile) |
| dialog.setNameFilter("Zipped model files (*.zip)") |
| dialog.setViewMode(QFileDialog.Detail) |
| if dialog.exec_(): |
| self.editLocal.setText(dialog.selectedFiles()[0]) |
|
|
| @pyqtSignature("") |
| def on_btnPath_clicked(self): |
| """ |
| Slot documentation goes here. |
| """ |
| dialog = QFileDialog(self, directory=self.workdir) |
| dialog.setFileMode(QFileDialog.Directory) |
| dialog.setViewMode(QFileDialog.Detail) |
| dialog.setOptions(QFileDialog.ShowDirsOnly) |
| if dialog.exec_(): |
| root = str(dialog.selectedFiles()[0]) |
| todir, _ = self.findEmptyDirWithTime(root) |
| self.editPath.setText(todir) |
|
|
| @pyqtSignature("bool") |
| def on_grpBoxInternet_toggled(self, p0): |
| """ |
| Slot documentation goes here. |
| """ |
| self.grpBoxLocal.setChecked(not p0) |
|
|
| @pyqtSignature("bool") |
| def on_grpBoxLocal_toggled(self, p0): |
| """ |
| Slot documentation goes here. |
| """ |
| self.grpBoxInternet.setChecked(not p0) |
|
|
| @pyqtSignature("") |
| def on_buttonBox_accepted(self): |
| """ |
| Slot documentation goes here. |
| """ |
| def checkEmpty(mystr): |
| return len(str(mystr).strip()) <= 0 |
|
|
| |
| self.modelName = self.editName.text() |
| if checkEmpty(self.modelName): |
| doAlert("Please provide non-empty Model Name") |
| return |
| if self.grpBoxInternet.isChecked(): |
| self.source = self.editInternet.text() |
| self.sourceMode = "Internet" |
| elif self.grpBoxLocal.isChecked(): |
| self.source = self.editLocal.text() |
| self.sourceMode = "Local" |
| if not os.path.exists(str(self.source)): |
| doAlert("Please provide valid local file as source") |
| return |
| else: |
| doAlert("Please provide Install Source") |
| return |
| if checkEmpty(self.source): |
| doAlert("Please provide non-empty Install Source") |
| return |
| self.dest = self.editPath.text() |
| if checkEmpty(self.dest): |
| doAlert("Please provide non-empty Install Destination Folder") |
| return |
| self.accept() |
|
|