From 195ef42596788fb66840f8230b8e301f8d8770f9 Mon Sep 17 00:00:00 2001 From: LtWorf Date: Wed, 6 May 2009 14:10:42 +0000 Subject: [PATCH] added button to undo optimization git-svn-id: http://galileo.dmi.unict.it/svn/relational/trunk@149 014f5005-505e-4b48-8d0a-63407b615a7c --- relational_gui/maingui.py | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/relational_gui/maingui.py b/relational_gui/maingui.py index 8f7369e..7b417df 100644 --- a/relational_gui/maingui.py +++ b/relational_gui/maingui.py @@ -30,10 +30,18 @@ class Ui_Form(object): self.About=None self.Survey=None self.relations={} #Dictionary for relations + self.undo=[] #UndoQueue for relations self.selectedRelation=None + def undo_optimize(self): + try: + self.txtQuery.setText(self.undo.pop()) + except:#Nothing to restore + pass def optimize(self): + self.undo.insert(len(self.undo),self.txtQuery.text()) #Storing the query in undo list result=optimizer.general_optimize(str(self.txtQuery.text().toUtf8())) self.txtQuery.setText(QtCore.QString.fromUtf8(result)) + #self.txtQuery.setText(result) def execute(self): try: @@ -43,6 +51,8 @@ class Ui_Form(object): print query,"-->" , expr #Printing debug result=eval(expr,self.relations) #Evaluating the expression + #self.undo.insert(len(self.undo),self.txtQuery.text()) #Storing the query in undo list + res_rel=str(self.txtResult.text())#result relation's name self.txtResult.setText("") #Sets the result relation name to none if len(res_rel)==0: #If no name is set use the default last_ @@ -385,6 +395,13 @@ class Ui_Form(object): self.cmdOptimize.setObjectName("cmdOptimize") self.horizontalLayout.addWidget(self.cmdOptimize) + self.cmdUndoOptimize = QtGui.QPushButton(Form) + self.cmdUndoOptimize.setAutoDefault(False) + self.cmdUndoOptimize.setDefault(True) + self.cmdUndoOptimize.setFlat(False) + self.cmdUndoOptimize.setObjectName("cmdUndoOptimize") + self.horizontalLayout.addWidget(self.cmdUndoOptimize) + self.verticalLayout_7.addLayout(self.horizontalLayout) self.label.setBuddy(self.txtResult) @@ -408,6 +425,7 @@ class Ui_Form(object): QtCore.QObject.connect(self.cmdArrow,QtCore.SIGNAL("clicked()"),self.addArrow) QtCore.QObject.connect(self.cmdExecute,QtCore.SIGNAL("clicked()"),self.execute) QtCore.QObject.connect(self.cmdOptimize,QtCore.SIGNAL("clicked()"),self.optimize) + QtCore.QObject.connect(self.cmdUndoOptimize,QtCore.SIGNAL("clicked()"),self.undo_optimize) QtCore.QObject.connect(self.cmdLoad,QtCore.SIGNAL("clicked()"),self.loadRelation) QtCore.QObject.connect(self.cmdSave,QtCore.SIGNAL("clicked()"),self.saveRelation) QtCore.QObject.connect(self.cmdUnload,QtCore.SIGNAL("clicked()"),self.unloadRelation) @@ -419,8 +437,7 @@ class Ui_Form(object): Form.setTabOrder(self.txtResult,self.txtQuery) Form.setTabOrder(self.txtQuery,self.cmdExecute) Form.setTabOrder(self.txtQuery,self.cmdOptimize) - Form.setTabOrder(self.cmdExecute,self.lstRelations) - Form.setTabOrder(self.cmdOptimize,self.lstRelations) + Form.setTabOrder(self.txtQuery,self.cmdUndoOptimize) Form.setTabOrder(self.lstRelations,self.cmdLoad) Form.setTabOrder(self.cmdLoad,self.cmdUnload) Form.setTabOrder(self.cmdLoad,self.cmdSave) @@ -480,8 +497,9 @@ class Ui_Form(object): self.lstAttributes.setToolTip(QtGui.QApplication.translate("Form", "Shows the attributes of the current relation", None, QtGui.QApplication.UnicodeUTF8)) self.label.setText(QtGui.QApplication.translate("Form", "Query", None, QtGui.QApplication.UnicodeUTF8)) self.label_2.setText(QtGui.QApplication.translate("Form", "=", None, QtGui.QApplication.UnicodeUTF8)) - self.cmdExecute.setText(QtGui.QApplication.translate("Form", "Execute", None, QtGui.QApplication.UnicodeUTF8)) - self.cmdOptimize.setText(QtGui.QApplication.translate("Form", "Optimize", None, QtGui.QApplication.UnicodeUTF8)) + self.cmdExecute.setText(QtGui.QApplication.translate("Form", "Execute", None, QtGui.QApplication.UnicodeUTF8)) + self.cmdOptimize.setText(QtGui.QApplication.translate("Form", "Optimize", None, QtGui.QApplication.UnicodeUTF8)) + self.cmdUndoOptimize.setText(QtGui.QApplication.translate("Form", "Undo optimize", None, QtGui.QApplication.UnicodeUTF8)) if __name__ == "__main__": import sys