diff --git a/relational_gui/guihandler.py b/relational_gui/guihandler.py index 77209ff..586e5d5 100644 --- a/relational_gui/guihandler.py +++ b/relational_gui/guihandler.py @@ -35,6 +35,7 @@ class relForm(QtWidgets.QMainWindow): self.About = None self.Survey = None self.undo = None # UndoQueue for queries + self.undo_program = None self.selectedRelation = None self.ui = maingui.Ui_MainWindow() self.user_interface = UserInterface() @@ -149,6 +150,19 @@ class relForm(QtWidgets.QMainWindow): if self.undo != None: self.ui.txtQuery.setText(self.undo) + def undoOptimizeProgram(self): + if self.undo_program: + self.ui.txtMultiQuery.setPlainText(self.undo_program) + + def optimizeProgram(self): + self.undo_program = self.ui.txtMultiQuery.toPlainText() + result = optimizer.optimize_program( + self.ui.txtMultiQuery.toPlainText(), + self.user_interface.relations + ) + self.ui.txtMultiQuery.setPlainText(result) + + def optimize(self): '''Performs all the possible optimizations on the query''' self.undo = self.ui.txtQuery.text() # Storing the query in undo list diff --git a/relational_gui/maingui.ui b/relational_gui/maingui.ui index 4588abc..6a2dcb8 100644 --- a/relational_gui/maingui.ui +++ b/relational_gui/maingui.ui @@ -8,7 +8,7 @@ 0 0 637 - 495 + 496 @@ -172,6 +172,20 @@ + + + + Optimize + + + + + + + Undo optimize + + + @@ -1174,6 +1188,18 @@ cmdEdit cmdUnload cmdNewSession + txtMultiQuery + cmdClearMultilineQuery + cmdExecuteMultiline + cmdOptimizeProgram + cmdUndoOptimizeProgram + cmdUndoOptimize + cmdClearHistory + txtQuery + cmdClearQuery + cmdExecute + lstHistory + cmdOptimize @@ -1189,7 +1215,7 @@ 79 - 597 + 495 @@ -1205,7 +1231,7 @@ 99 - 605 + 495 @@ -1217,11 +1243,11 @@ 516 - 490 + 491 - 773 - 599 + 636 + 495 @@ -1233,11 +1259,11 @@ 631 - 422 + 423 - 760 - 610 + 636 + 495 @@ -1249,11 +1275,11 @@ 516 - 422 + 423 - 753 - 594 + 636 + 495 @@ -1268,8 +1294,8 @@ 328 - 643 - 611 + 636 + 495 @@ -1285,7 +1311,7 @@ 510 - 611 + 495 @@ -1377,7 +1403,7 @@ 631 - 456 + 457 399 @@ -1409,7 +1435,7 @@ 516 - 456 + 457 399 @@ -1472,8 +1498,8 @@ clear() - 251 - 256 + 394 + 262 221 @@ -1488,12 +1514,12 @@ execute() - 251 - 256 + 394 + 296 - 795 - 650 + 636 + 495 @@ -1505,11 +1531,11 @@ 310 - 491 + 494 260 - 490 + 493 @@ -1521,7 +1547,7 @@ 394 - 453 + 459 395 @@ -1537,11 +1563,11 @@ 186 - 453 + 459 130 - 623 + 495 @@ -1553,11 +1579,11 @@ 296 - 453 + 459 544 - 624 + 495 @@ -1569,11 +1595,11 @@ 394 - 491 + 494 - 797 - 627 + 636 + 495 @@ -1585,11 +1611,11 @@ 260 - 490 + 493 - 796 - 514 + 636 + 495 @@ -1605,7 +1631,7 @@ 297 - 620 + 495 @@ -1825,10 +1851,10 @@ 631 - 490 + 491 - 796 + 636 396 @@ -1849,6 +1875,38 @@ + + cmdOptimizeProgram + clicked() + MainWindow + optimizeProgram() + + + 357 + 313 + + + 398 + 360 + + + + + cmdUndoOptimizeProgram + clicked() + MainWindow + undoOptimizeProgram() + + + 371 + 353 + + + 397 + 44 + + + execute() @@ -1886,5 +1944,7 @@ manageSessions() setMultiline(bool) setHistoryShown(bool) + optimizeProgram() + undoOptimizeProgram()