From e6c871b785210644d8238e157db94a6bacf63231 Mon Sep 17 00:00:00 2001 From: LtWorf Date: Thu, 13 Oct 2011 17:06:24 +0000 Subject: [PATCH] - Buttons to edit and create relation - Default example cells when working on a new relation git-svn-id: http://galileo.dmi.unict.it/svn/relational/trunk@323 014f5005-505e-4b48-8d0a-63407b615a7c --- Makefile | 2 + relational_gui/creator.py | 57 +++++++++- relational_gui/guihandler.py | 11 ++ relational_gui/maingui.py | 24 +++- relational_gui/maingui.ui | 154 +++++++++++++++++++++----- relational_gui/rel_edit.ui | 207 +++++++++++++++++++++-------------- relational_gui/survey.py | 2 +- relational_pyside/creator.py | 1 + relational_pyside/maingui.py | 24 +++- relational_pyside/survey.py | 2 +- 10 files changed, 367 insertions(+), 117 deletions(-) create mode 120000 relational_pyside/creator.py diff --git a/Makefile b/Makefile index b3e2527..ff5ca8d 100644 --- a/Makefile +++ b/Makefile @@ -4,8 +4,10 @@ default: gui: pyside-uic relational_pyside/survey.ui > relational_pyside/survey.py pyside-uic relational_pyside/maingui.ui > relational_pyside/maingui.py + pyside-uic relational_pyside/rel_edit.ui > relational_pyside/rel_edit.py pyuic4 relational_gui/survey.ui > relational_gui/survey.py pyuic4 relational_gui/maingui.ui > relational_gui/maingui.py + pyuic4 relational_gui/rel_edit.ui > relational_gui/rel_edit.py uninstall: diff --git a/relational_gui/creator.py b/relational_gui/creator.py index 054974b..8ad8d4c 100644 --- a/relational_gui/creator.py +++ b/relational_gui/creator.py @@ -27,29 +27,76 @@ import rel_edit class creatorForm(QtGui.QDialog): - def __init__(self,ui,rel=None): + def __init__(self,rel=None): QtGui.QDialog.__init__(self) + self.setSizeGripEnabled(True) self.result_relation=None + self.rel=rel + def setUi(self,ui): + self.ui=ui + self.table=self.ui.table + + if self.rel==None: + self.setup_empty() + else: + self.setup_replation(rel) + def setup_relation(rel): + pass + def setup_empty(self): + self.table.insertColumn(0) + self.table.insertColumn(0) + self.table.insertRow(0) + self.table.insertRow(0) + + i00=QtGui.QTableWidgetItem() + i01=QtGui.QTableWidgetItem() + i10=QtGui.QTableWidgetItem() + i11=QtGui.QTableWidgetItem() + i00.setText('Field name 1') + i01.setText('Field name 2') + i10.setText('Value 1') + i11.setText('Value 2') + + self.table.setItem (0,0,i00) + self.table.setItem (0,1,i01) + self.table.setItem (1,0,i10) + self.table.setItem (1,1,i11) + def accept(self): - QtGui.QDialog.accept(self) pass def reject(self): + self.result_relation=None + QtGui.QDialog.reject(self) + pass + def addColumn(self): + self.table.insertColumn(self.table.columnCount()) + pass + def addRow(self): + self.table.insertRow(1) + pass + def deleteColumn(self): + if self.table.columnCount()>1: + self.table.removeColumn(self.table.currentColumn()) + pass + def deleteRow(self): + if self.table.rowCount()>2: + self.table.removeRow(self.table.currentRow()) pass - def editRelation(rel=None): ui = rel_edit.Ui_Dialog() - Form = creatorForm(ui) - + Form = creatorForm(rel) ui.setupUi(Form) + Form.setUi(ui) + Form.exec_() return Form.result_relation diff --git a/relational_gui/guihandler.py b/relational_gui/guihandler.py index 50bbfbd..33e5cc2 100644 --- a/relational_gui/guihandler.py +++ b/relational_gui/guihandler.py @@ -162,6 +162,17 @@ class relForm(QtGui.QMainWindow): for i in self.ui.lstRelations.selectedItems(): del self.relations[compatibility.get_py_str(i.text())] self.updateRelations() + def editRelation(self): + import creator + for i in self.ui.lstRelations.selectedItems(): + self.relations[compatibility.get_py_str(i.text())]=creator.editRelation(self.relations[compatibility.get_py_str(i.text())]) + self.updateRelations() + def newRelation(self): + import creator + creator.editRelation() + self.updateRelations() + #TODO chose name for the relation + def showSurvey(self): if self.Survey==None: self.Survey=surveyForm.surveyForm() diff --git a/relational_gui/maingui.py b/relational_gui/maingui.py index 0bb557f..4bddde4 100644 --- a/relational_gui/maingui.py +++ b/relational_gui/maingui.py @@ -2,7 +2,7 @@ # Form implementation generated from reading ui file 'relational_gui/maingui.ui' # -# Created: Thu Oct 13 17:38:01 2011 +# Created: Thu Oct 13 19:00:44 2011 # by: PyQt4 UI code generator 4.8.3 # # WARNING! All changes made in this file will be lost! @@ -157,6 +157,12 @@ class Ui_MainWindow(object): self.cmdUnload = QtGui.QPushButton(self.groupBox) self.cmdUnload.setObjectName(_fromUtf8("cmdUnload")) self.verticalLayout.addWidget(self.cmdUnload) + self.cmdNew = QtGui.QPushButton(self.groupBox) + self.cmdNew.setObjectName(_fromUtf8("cmdNew")) + self.verticalLayout.addWidget(self.cmdNew) + self.cmdEdit = QtGui.QPushButton(self.groupBox) + self.cmdEdit.setObjectName(_fromUtf8("cmdEdit")) + self.verticalLayout.addWidget(self.cmdEdit) self.groupBox_2 = QtGui.QGroupBox(self.splitter) self.groupBox_2.setMinimumSize(QtCore.QSize(0, 0)) self.groupBox_2.setMaximumSize(QtCore.QSize(300, 16777215)) @@ -219,8 +225,14 @@ class Ui_MainWindow(object): self.action_Quit.setObjectName(_fromUtf8("action_Quit")) self.actionCheck_for_new_versions = QtGui.QAction(MainWindow) self.actionCheck_for_new_versions.setObjectName(_fromUtf8("actionCheck_for_new_versions")) + self.actionNew_relation = QtGui.QAction(MainWindow) + self.actionNew_relation.setObjectName(_fromUtf8("actionNew_relation")) + self.actionEdit_relation = QtGui.QAction(MainWindow) + self.actionEdit_relation.setObjectName(_fromUtf8("actionEdit_relation")) + self.menuFile.addAction(self.actionNew_relation) self.menuFile.addAction(self.action_Load_relation) self.menuFile.addAction(self.action_Save_relation) + self.menuFile.addAction(self.actionEdit_relation) self.menuFile.addSeparator() self.menuFile.addAction(self.action_Quit) self.menuAbout.addAction(self.actionAbout) @@ -264,6 +276,10 @@ class Ui_MainWindow(object): QtCore.QObject.connect(self.action_Save_relation, QtCore.SIGNAL(_fromUtf8("triggered()")), MainWindow.saveRelation) QtCore.QObject.connect(self.action_Quit, QtCore.SIGNAL(_fromUtf8("triggered()")), MainWindow.close) QtCore.QObject.connect(self.actionCheck_for_new_versions, QtCore.SIGNAL(_fromUtf8("triggered()")), MainWindow.checkVersion) + QtCore.QObject.connect(self.cmdEdit, QtCore.SIGNAL(_fromUtf8("clicked()")), MainWindow.editRelation) + QtCore.QObject.connect(self.actionEdit_relation, QtCore.SIGNAL(_fromUtf8("triggered()")), MainWindow.editRelation) + QtCore.QObject.connect(self.cmdNew, QtCore.SIGNAL(_fromUtf8("clicked()")), MainWindow.newRelation) + QtCore.QObject.connect(self.actionNew_relation, QtCore.SIGNAL(_fromUtf8("triggered()")), MainWindow.newRelation) QtCore.QMetaObject.connectSlotsByName(MainWindow) MainWindow.setTabOrder(self.cmdAbout, self.cmdSurvey) MainWindow.setTabOrder(self.cmdSurvey, self.cmdProduct) @@ -321,6 +337,8 @@ class Ui_MainWindow(object): self.cmdLoad.setText(QtGui.QApplication.translate("MainWindow", "Load relation", None, QtGui.QApplication.UnicodeUTF8)) self.cmdSave.setText(QtGui.QApplication.translate("MainWindow", "Save relation", None, QtGui.QApplication.UnicodeUTF8)) self.cmdUnload.setText(QtGui.QApplication.translate("MainWindow", "Unload relation", None, QtGui.QApplication.UnicodeUTF8)) + self.cmdNew.setText(QtGui.QApplication.translate("MainWindow", "New relation", None, QtGui.QApplication.UnicodeUTF8)) + self.cmdEdit.setText(QtGui.QApplication.translate("MainWindow", "Edit relation", None, QtGui.QApplication.UnicodeUTF8)) self.groupBox_2.setTitle(QtGui.QApplication.translate("MainWindow", "Attributes", None, QtGui.QApplication.UnicodeUTF8)) self.txtResult.setText(QtGui.QApplication.translate("MainWindow", "_last1", None, QtGui.QApplication.UnicodeUTF8)) self.label.setText(QtGui.QApplication.translate("MainWindow", "=", None, QtGui.QApplication.UnicodeUTF8)) @@ -336,4 +354,8 @@ class Ui_MainWindow(object): self.action_Quit.setText(QtGui.QApplication.translate("MainWindow", "&Quit", None, QtGui.QApplication.UnicodeUTF8)) self.action_Quit.setShortcut(QtGui.QApplication.translate("MainWindow", "Ctrl+Q", None, QtGui.QApplication.UnicodeUTF8)) self.actionCheck_for_new_versions.setText(QtGui.QApplication.translate("MainWindow", "Check for new versions", None, QtGui.QApplication.UnicodeUTF8)) + self.actionNew_relation.setText(QtGui.QApplication.translate("MainWindow", "New relation", None, QtGui.QApplication.UnicodeUTF8)) + self.actionNew_relation.setShortcut(QtGui.QApplication.translate("MainWindow", "Ctrl+N", None, QtGui.QApplication.UnicodeUTF8)) + self.actionEdit_relation.setText(QtGui.QApplication.translate("MainWindow", "Edit relation", None, QtGui.QApplication.UnicodeUTF8)) + self.actionEdit_relation.setShortcut(QtGui.QApplication.translate("MainWindow", "Ctrl+E", None, QtGui.QApplication.UnicodeUTF8)) diff --git a/relational_gui/maingui.ui b/relational_gui/maingui.ui index e31caf0..757884a 100644 --- a/relational_gui/maingui.ui +++ b/relational_gui/maingui.ui @@ -312,6 +312,20 @@ + + + + New relation + + + + + + + Edit relation + + + @@ -412,8 +426,10 @@ &File + + @@ -468,6 +484,22 @@ Check for new versions + + + New relation + + + Ctrl+N + + + + + Edit relation + + + Ctrl+E + + cmdAbout @@ -605,8 +637,8 @@ addProduct() - 41 - 171 + 53 + 166 180 @@ -621,8 +653,8 @@ addDifference() - 82 - 194 + 94 + 193 46 @@ -637,8 +669,8 @@ addArrow() - 99 - 505 + 107 + 490 58 @@ -653,8 +685,8 @@ addRename() - 42 - 474 + 54 + 463 111 @@ -669,8 +701,8 @@ addSelection() - 72 - 446 + 84 + 436 16 @@ -685,8 +717,8 @@ addProjection() - 99 - 414 + 107 + 409 91 @@ -701,8 +733,8 @@ unloadRelation() - 646 - 312 + 788 + 280 773 @@ -717,8 +749,8 @@ saveRelation() - 717 - 287 + 788 + 253 760 @@ -733,8 +765,8 @@ loadRelation() - 753 - 255 + 788 + 226 753 @@ -797,8 +829,8 @@ addORight() - 90 - 359 + 102 + 355 58 @@ -813,8 +845,8 @@ addOuter() - 34 - 390 + 46 + 382 86 @@ -829,8 +861,8 @@ addOLeft() - 32 - 332 + 44 + 328 66 @@ -845,8 +877,8 @@ addJoin() - 101 - 302 + 107 + 301 147 @@ -893,8 +925,8 @@ addUnion() - 20 - 222 + 32 + 220 279 @@ -1046,6 +1078,70 @@ + + cmdEdit + clicked() + MainWindow + editRelation() + + + 683 + 323 + + + 399 + 305 + + + + + actionEdit_relation + triggered() + MainWindow + editRelation() + + + -1 + -1 + + + 399 + 305 + + + + + cmdNew + clicked() + MainWindow + newRelation() + + + 683 + 296 + + + 399 + 305 + + + + + actionNew_relation + triggered() + MainWindow + newRelation() + + + -1 + -1 + + + 399 + 305 + + + execute() @@ -1076,5 +1172,7 @@ showAttributes(QListWidgetItem*) loadQuery() resumeHistory(QListWidgetItem*) + editRelation() + newRelation() diff --git a/relational_gui/rel_edit.ui b/relational_gui/rel_edit.ui index 69b5eac..234143c 100644 --- a/relational_gui/rel_edit.ui +++ b/relational_gui/rel_edit.ui @@ -11,87 +11,64 @@ - Dialog + Relation editor - - - - 110 - 340 - 341 - 32 - - - - Qt::Horizontal - - - QDialogButtonBox::Cancel|QDialogButtonBox::Ok - - - - - - 230 - 50 - 256 - 192 - - - - - a - - - - - A - - - - - - - 10 - 60 - 137 - 140 - - - - Edit - - - - - - Add column - - - - - - - Remove column - - - - - - - Add tuple - - - - - - - Remove tuple - - - - - + + + + + + + Edit + + + + + + Add tuple + + + + + + + Remove tuple + + + + + + + Add column + + + + + + + Remove column + + + + + + + + + + + + + + + Qt::Horizontal + + + QDialogButtonBox::Cancel|QDialogButtonBox::Ok + + + + @@ -127,5 +104,75 @@ + + cmdAddColumn + clicked() + Dialog + addColumn() + + + 71 + 95 + + + 188 + 100 + + + + + cmdRemoveColumn + clicked() + Dialog + deleteColumn() + + + 126 + 121 + + + 202 + 129 + + + + + cmdAddTuple + clicked() + Dialog + addRow() + + + 124 + 155 + + + 197 + 158 + + + + + cmdRemoveTuple + clicked() + Dialog + deleteRow() + + + 122 + 181 + + + 182 + 193 + + + + + addColumn() + addRow() + deleteColumn() + deleteRow() + diff --git a/relational_gui/survey.py b/relational_gui/survey.py index e75cc1d..bab4efe 100644 --- a/relational_gui/survey.py +++ b/relational_gui/survey.py @@ -2,7 +2,7 @@ # Form implementation generated from reading ui file 'relational_gui/survey.ui' # -# Created: Thu Oct 13 17:38:01 2011 +# Created: Thu Oct 13 19:00:44 2011 # by: PyQt4 UI code generator 4.8.3 # # WARNING! All changes made in this file will be lost! diff --git a/relational_pyside/creator.py b/relational_pyside/creator.py new file mode 120000 index 0000000..6ec91df --- /dev/null +++ b/relational_pyside/creator.py @@ -0,0 +1 @@ +../relational_gui/creator.py \ No newline at end of file diff --git a/relational_pyside/maingui.py b/relational_pyside/maingui.py index c21e6ea..c834693 100644 --- a/relational_pyside/maingui.py +++ b/relational_pyside/maingui.py @@ -2,7 +2,7 @@ # Form implementation generated from reading ui file 'relational_pyside/maingui.ui' # -# Created: Sun Oct 9 00:27:00 2011 +# Created: Thu Oct 13 19:00:44 2011 # by: pyside-uic 0.2.13 running on PySide 1.0.7 # # WARNING! All changes made in this file will be lost! @@ -152,6 +152,12 @@ class Ui_MainWindow(object): self.cmdUnload = QtGui.QPushButton(self.groupBox) self.cmdUnload.setObjectName("cmdUnload") self.verticalLayout.addWidget(self.cmdUnload) + self.cmdNew = QtGui.QPushButton(self.groupBox) + self.cmdNew.setObjectName("cmdNew") + self.verticalLayout.addWidget(self.cmdNew) + self.cmdEdit = QtGui.QPushButton(self.groupBox) + self.cmdEdit.setObjectName("cmdEdit") + self.verticalLayout.addWidget(self.cmdEdit) self.groupBox_2 = QtGui.QGroupBox(self.splitter) self.groupBox_2.setMinimumSize(QtCore.QSize(0, 0)) self.groupBox_2.setMaximumSize(QtCore.QSize(300, 16777215)) @@ -214,8 +220,14 @@ class Ui_MainWindow(object): self.action_Quit.setObjectName("action_Quit") self.actionCheck_for_new_versions = QtGui.QAction(MainWindow) self.actionCheck_for_new_versions.setObjectName("actionCheck_for_new_versions") + self.actionNew_relation = QtGui.QAction(MainWindow) + self.actionNew_relation.setObjectName("actionNew_relation") + self.actionEdit_relation = QtGui.QAction(MainWindow) + self.actionEdit_relation.setObjectName("actionEdit_relation") + self.menuFile.addAction(self.actionNew_relation) self.menuFile.addAction(self.action_Load_relation) self.menuFile.addAction(self.action_Save_relation) + self.menuFile.addAction(self.actionEdit_relation) self.menuFile.addSeparator() self.menuFile.addAction(self.action_Quit) self.menuAbout.addAction(self.actionAbout) @@ -259,6 +271,10 @@ class Ui_MainWindow(object): QtCore.QObject.connect(self.action_Save_relation, QtCore.SIGNAL("triggered()"), MainWindow.saveRelation) QtCore.QObject.connect(self.action_Quit, QtCore.SIGNAL("triggered()"), MainWindow.close) QtCore.QObject.connect(self.actionCheck_for_new_versions, QtCore.SIGNAL("triggered()"), MainWindow.checkVersion) + QtCore.QObject.connect(self.cmdEdit, QtCore.SIGNAL("clicked()"), MainWindow.editRelation) + QtCore.QObject.connect(self.actionEdit_relation, QtCore.SIGNAL("triggered()"), MainWindow.editRelation) + QtCore.QObject.connect(self.cmdNew, QtCore.SIGNAL("clicked()"), MainWindow.newRelation) + QtCore.QObject.connect(self.actionNew_relation, QtCore.SIGNAL("triggered()"), MainWindow.newRelation) QtCore.QMetaObject.connectSlotsByName(MainWindow) MainWindow.setTabOrder(self.cmdAbout, self.cmdSurvey) MainWindow.setTabOrder(self.cmdSurvey, self.cmdProduct) @@ -316,6 +332,8 @@ class Ui_MainWindow(object): self.cmdLoad.setText(QtGui.QApplication.translate("MainWindow", "Load relation", None, QtGui.QApplication.UnicodeUTF8)) self.cmdSave.setText(QtGui.QApplication.translate("MainWindow", "Save relation", None, QtGui.QApplication.UnicodeUTF8)) self.cmdUnload.setText(QtGui.QApplication.translate("MainWindow", "Unload relation", None, QtGui.QApplication.UnicodeUTF8)) + self.cmdNew.setText(QtGui.QApplication.translate("MainWindow", "New relation", None, QtGui.QApplication.UnicodeUTF8)) + self.cmdEdit.setText(QtGui.QApplication.translate("MainWindow", "Edit relation", None, QtGui.QApplication.UnicodeUTF8)) self.groupBox_2.setTitle(QtGui.QApplication.translate("MainWindow", "Attributes", None, QtGui.QApplication.UnicodeUTF8)) self.txtResult.setText(QtGui.QApplication.translate("MainWindow", "_last1", None, QtGui.QApplication.UnicodeUTF8)) self.label.setText(QtGui.QApplication.translate("MainWindow", "=", None, QtGui.QApplication.UnicodeUTF8)) @@ -331,4 +349,8 @@ class Ui_MainWindow(object): self.action_Quit.setText(QtGui.QApplication.translate("MainWindow", "&Quit", None, QtGui.QApplication.UnicodeUTF8)) self.action_Quit.setShortcut(QtGui.QApplication.translate("MainWindow", "Ctrl+Q", None, QtGui.QApplication.UnicodeUTF8)) self.actionCheck_for_new_versions.setText(QtGui.QApplication.translate("MainWindow", "Check for new versions", None, QtGui.QApplication.UnicodeUTF8)) + self.actionNew_relation.setText(QtGui.QApplication.translate("MainWindow", "New relation", None, QtGui.QApplication.UnicodeUTF8)) + self.actionNew_relation.setShortcut(QtGui.QApplication.translate("MainWindow", "Ctrl+N", None, QtGui.QApplication.UnicodeUTF8)) + self.actionEdit_relation.setText(QtGui.QApplication.translate("MainWindow", "Edit relation", None, QtGui.QApplication.UnicodeUTF8)) + self.actionEdit_relation.setShortcut(QtGui.QApplication.translate("MainWindow", "Ctrl+E", None, QtGui.QApplication.UnicodeUTF8)) diff --git a/relational_pyside/survey.py b/relational_pyside/survey.py index de94f6c..2dc2a97 100644 --- a/relational_pyside/survey.py +++ b/relational_pyside/survey.py @@ -2,7 +2,7 @@ # Form implementation generated from reading ui file 'relational_pyside/survey.ui' # -# Created: Sun Oct 9 00:27:00 2011 +# Created: Thu Oct 13 19:00:44 2011 # by: pyside-uic 0.2.13 running on PySide 1.0.7 # # WARNING! All changes made in this file will be lost!