def __init__(self, parent, afefuc, item=None): #item[1] is a testCase object self.parent = parent self.dialog = QtGui.QDialog() self.form = Ui_TestCaseForm() self.afefuc = afefuc self.item = item[1] self.item_original = item[0]
class TestCaseFormWrapper(): def __init__(self, parent, afefuc, item=None): #item[1] is a testCase object self.parent = parent self.dialog = QtGui.QDialog() self.form = Ui_TestCaseForm() self.afefuc = afefuc self.item = item[1] self.item_original = item[0] def load(self): self.form.titleEdit.setText(self.item.title) self.form.idEdit.setText(self.item.identifier) if self.item.uc_ref is not None: index = self.form.ucChoice.findText(self.item.uc_ref.identifier) if index != -1: self.form.ucChoice.setCurrentIndex(index) def show(self): self.form.setupUi(self.dialog) self.form.ucChoice.addItems(["no use case reference"]) for usecase in self.afefuc['project'].ucspec.usecases: self.form.ucChoice.addItem(usecase.identifier, usecase) if self.item_original is not None: self.load() testIndex = self.form.ucChoice.findText('BC_001') self.scrollLayout = QtGui.QFormLayout() self.scrollWidget = QtGui.QWidget() self.scrollWidget.setLayout(self.scrollLayout) self.scrollArea = QtGui.QScrollArea() self.scrollArea.setWidgetResizable(True) self.scrollArea.setWidget(self.scrollWidget) QtCore.QObject.connect(self.form.boxButton, QtCore.SIGNAL(_fromUtf8("accepted()")), self.clickedOKButton) QtCore.QObject.connect(self.form.boxButton, QtCore.SIGNAL(_fromUtf8("rejected()")), self.clickedCancelButton) QtCore.QObject.connect(self.form.insertStepButton, QtCore.SIGNAL(_fromUtf8("clicked()")), self.clickedInsertStepButton) QtCore.QObject.connect( self.form.ucChoice, QtCore.SIGNAL(_fromUtf8("currentIndexChanged(int)")), self.choseUseCase) QtCore.QObject.connect(self.form.idEdit, QtCore.SIGNAL(_fromUtf8("editingFinished()")), self.editingFinishedIdEdit) QtCore.QObject.connect(self.form.titleEdit, QtCore.SIGNAL(_fromUtf8("editingFinished()")), self.editingFinishedTitleEdit) QtCore.QObject.connect(self.form.deleteButton, QtCore.SIGNAL(_fromUtf8("clicked()")), self.clickedDeleteButton) QtCore.QObject.connect(self.form.moveUpButton, QtCore.SIGNAL(_fromUtf8("clicked()")), self.clickedMoveUpButton) QtCore.QObject.connect(self.form.moveDownButton, QtCore.SIGNAL(_fromUtf8("clicked()")), self.clickedMoveDownButton) self.modelTC = ScenarioTableModel(self.form.stepView, self.afefuc, (self.item_original, self.item)) self.form.stepView.setModel(self.modelTC) self.cted = CompleteTextEditDelegate(self.form.stepView, self.afefuc, self.item) self.cbd = ComboBoxDelegate(self.form.stepView, self.item) self.form.stepView.setItemDelegateForColumn( 1, self.cted) #garbage collector won't cause segfault self.form.stepView.setItemDelegateForColumn(2, self.cbd) self.form.stepView.horizontalHeader().setResizeMode( 0, QtGui.QHeaderView.ResizeToContents) self.form.stepView.horizontalHeader().setResizeMode( 1, QtGui.QHeaderView.Stretch) self.form.stepView.horizontalHeader().setResizeMode( 2, QtGui.QHeaderView.Stretch) self.form.stepView.setColumnWidth(1, 2) self.dialog.exec_() def editingFinishedIdEdit(self): self.item.identifier = unicode(self.form.idEdit.text().toUtf8(), 'utf-8') def editingFinishedTitleEdit(self): self.item.title = unicode(self.form.titleEdit.text().toUtf8(), 'utf-8') def choseUseCase(self, arg): uc = self.form.ucChoice.itemData(arg).toPyObject() self.item.uc_ref = uc # change of related UC => delete all references to steps in previous UC for step in self.item.path: step.ucstep = None def clickedInsertStepButton(self): step = '' if len(self.form.stepView.selectedIndexes()) != 0: position = self.form.stepView.selectedIndexes()[0].row() self.modelTC.insertItem(step, position) else: self.modelTC.insertItem(step) def clickedDeleteButton(self): position = self.form.stepView.selectedIndexes()[0].row() self.modelTC.removeItem(position) def clickedMoveUpButton(self): position = self.form.stepView.selectedIndexes()[0].row() self.modelTC.movePositionUp(position) def clickedMoveDownButton(self): position = self.form.stepView.selectedIndexes()[0].row() self.modelTC.movePositionDown(position) def getTextAttribute(self, node): if node.attributes: for i in range(node.attributes.length): if node.attributes.item(i).name == 'value': return node.attributes.item(i).value def getCurrentOptions(self, myList): toReturn = [] for elem in myList: toReturn.append(elem[0]) return toReturn def get_data(self, model): self.currentOptions = self.getCurrentOptions( self.completionInformation) model.setStringList(self.currentOptions) print self.getCurrentOptions(self.completionInformation) def createMenu(self): exitAction = QtGui.QAction("Exit", self) exitAction.triggered.connect(QtGui.qApp.quit) fileMenu = self.menuBar().addMenu("File") fileMenu.addAction(exitAction) def modelFromFile(self, fileName): f = QtCore.QFile(fileName) if not f.open(QtCore.QFile.ReadOnly): return QtGui.QStringListModel(self.completer) QtGui.QApplication.setOverrideCursor( QtGui.QCursor(QtCore.Qt.WaitCursor)) words = [] while not f.atEnd(): line = f.readLine().trimmed() if line.length() != 0: try: line = str(line, encoding='ascii') except TypeError: line = str(line) words.append(line) QtGui.QApplication.restoreOverrideCursor() return QtGui.QStringListModel(words, self.completer) def clickedCancelButton(self): self.dialog.close() def clickedOKButton(self): if isinstance(self.item_original, model.TestCase): self.parent.model.updateItem((self.item_original, self.item)) else: self.parent.model.insertItem((self.item_original, self.item)) self.dialog.close()
class TestCaseFormWrapper(): def __init__(self, parent, afefuc, item=None): #item[1] is a testCase object self.parent = parent self.dialog = QtGui.QDialog() self.form = Ui_TestCaseForm() self.afefuc = afefuc self.item = item[1] self.item_original = item[0] def load(self): self.form.titleEdit.setText(self.item.title) self.form.idEdit.setText(self.item.identifier) if self.item.uc_ref is not None: index = self.form.ucChoice.findText(self.item.uc_ref.identifier) if index != -1: self.form.ucChoice.setCurrentIndex(index) def show(self): self.form.setupUi(self.dialog) self.form.ucChoice.addItems(["no use case reference"]) for usecase in self.afefuc['project'].ucspec.usecases: self.form.ucChoice.addItem(usecase.identifier, usecase) if self.item_original is not None: self.load() testIndex = self.form.ucChoice.findText('BC_001') self.scrollLayout = QtGui.QFormLayout() self.scrollWidget = QtGui.QWidget() self.scrollWidget.setLayout(self.scrollLayout) self.scrollArea = QtGui.QScrollArea() self.scrollArea.setWidgetResizable(True) self.scrollArea.setWidget(self.scrollWidget) QtCore.QObject.connect(self.form.boxButton, QtCore.SIGNAL(_fromUtf8("accepted()")), self.clickedOKButton) QtCore.QObject.connect(self.form.boxButton, QtCore.SIGNAL(_fromUtf8("rejected()")), self.clickedCancelButton) QtCore.QObject.connect(self.form.insertStepButton, QtCore.SIGNAL(_fromUtf8("clicked()")), self.clickedInsertStepButton) QtCore.QObject.connect(self.form.ucChoice, QtCore.SIGNAL(_fromUtf8("currentIndexChanged(int)")), self.choseUseCase) QtCore.QObject.connect(self.form.idEdit, QtCore.SIGNAL(_fromUtf8("editingFinished()")), self.editingFinishedIdEdit) QtCore.QObject.connect(self.form.titleEdit, QtCore.SIGNAL(_fromUtf8("editingFinished()")), self.editingFinishedTitleEdit) QtCore.QObject.connect(self.form.deleteButton, QtCore.SIGNAL(_fromUtf8("clicked()")), self.clickedDeleteButton) QtCore.QObject.connect(self.form.moveUpButton, QtCore.SIGNAL(_fromUtf8("clicked()")), self.clickedMoveUpButton) QtCore.QObject.connect(self.form.moveDownButton, QtCore.SIGNAL(_fromUtf8("clicked()")), self.clickedMoveDownButton) self.modelTC = ScenarioTableModel(self.form.stepView, self.afefuc, (self.item_original, self.item)) self.form.stepView.setModel(self.modelTC) self.cted = CompleteTextEditDelegate(self.form.stepView, self.afefuc, self.item) self.cbd = ComboBoxDelegate(self.form.stepView, self.item) self.form.stepView.setItemDelegateForColumn(1, self.cted) #garbage collector won't cause segfault self.form.stepView.setItemDelegateForColumn(2, self.cbd) self.form.stepView.horizontalHeader().setResizeMode(0, QtGui.QHeaderView.ResizeToContents) self.form.stepView.horizontalHeader().setResizeMode(1, QtGui.QHeaderView.Stretch) self.form.stepView.horizontalHeader().setResizeMode(2, QtGui.QHeaderView.Stretch) self.form.stepView.setColumnWidth(1, 2) self.dialog.exec_() def editingFinishedIdEdit(self): self.item.identifier = unicode(self.form.idEdit.text().toUtf8(), 'utf-8') def editingFinishedTitleEdit(self): self.item.title = unicode(self.form.titleEdit.text().toUtf8(), 'utf-8') def choseUseCase(self, arg): uc = self.form.ucChoice.itemData(arg).toPyObject() self.item.uc_ref = uc # change of related UC => delete all references to steps in previous UC for step in self.item.path: step.ucstep = None def clickedInsertStepButton(self): step = '' if len(self.form.stepView.selectedIndexes()) != 0: position = self.form.stepView.selectedIndexes()[0].row() self.modelTC.insertItem(step, position) else: self.modelTC.insertItem(step) def clickedDeleteButton(self): position = self.form.stepView.selectedIndexes()[0].row() self.modelTC.removeItem(position) def clickedMoveUpButton(self): position = self.form.stepView.selectedIndexes()[0].row() self.modelTC.movePositionUp(position) def clickedMoveDownButton(self): position = self.form.stepView.selectedIndexes()[0].row() self.modelTC.movePositionDown(position) def getTextAttribute(self, node): if node.attributes: for i in range(node.attributes.length): if node.attributes.item(i).name == 'value': return node.attributes.item(i).value def getCurrentOptions(self, myList): toReturn = [] for elem in myList: toReturn.append(elem[0]) return toReturn def get_data(self, model): self.currentOptions = self.getCurrentOptions(self.completionInformation) model.setStringList(self.currentOptions) print self.getCurrentOptions(self.completionInformation) def createMenu(self): exitAction = QtGui.QAction("Exit", self) exitAction.triggered.connect(QtGui.qApp.quit) fileMenu = self.menuBar().addMenu("File") fileMenu.addAction(exitAction) def modelFromFile(self, fileName): f = QtCore.QFile(fileName) if not f.open(QtCore.QFile.ReadOnly): return QtGui.QStringListModel(self.completer) QtGui.QApplication.setOverrideCursor(QtGui.QCursor(QtCore.Qt.WaitCursor)) words = [] while not f.atEnd(): line = f.readLine().trimmed() if line.length() != 0: try: line = str(line, encoding='ascii') except TypeError: line = str(line) words.append(line) QtGui.QApplication.restoreOverrideCursor() return QtGui.QStringListModel(words, self.completer) def clickedCancelButton(self): self.dialog.close() def clickedOKButton(self): if isinstance(self.item_original, model.TestCase): self.parent.model.updateItem((self.item_original, self.item)) else: self.parent.model.insertItem((self.item_original, self.item)) self.dialog.close()