From b186ddae39e13a7ccd847dd4a3ad1884f6ca8fb7 Mon Sep 17 00:00:00 2001 From: LtWorf Date: Sat, 8 Oct 2011 18:32:31 +0000 Subject: [PATCH] - Unified main GUI too, but work is still in progress... git-svn-id: http://galileo.dmi.unict.it/svn/relational/trunk@317 014f5005-505e-4b48-8d0a-63407b615a7c --- CHANGELOG | 1 + relational_gui/compatibility.py | 12 +- relational_gui/guihandler.py | 59 +- relational_gui/maingui.py | 4 +- relational_gui/survey.py | 4 +- relational_pyside/guihandler.py | 265 +------- relational_pyside/maingui.py | 7 +- relational_pyside/maingui.ui | 1113 +------------------------------ relational_pyside/survey.py | 2 +- 9 files changed, 59 insertions(+), 1408 deletions(-) mode change 100644 => 120000 relational_pyside/guihandler.py mode change 100644 => 120000 relational_pyside/maingui.ui diff --git a/CHANGELOG b/CHANGELOG index 1146294..c0ce8ca 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -4,6 +4,7 @@ - Colored output in readline mode - Can send email in survey - Can check for new version online +- Can use both PySide and PyQt 1.0 - Adds history in the GUI diff --git a/relational_gui/compatibility.py b/relational_gui/compatibility.py index e28ddcc..be432a9 100644 --- a/relational_gui/compatibility.py +++ b/relational_gui/compatibility.py @@ -32,4 +32,14 @@ def get_py_str(a): '''Returns a python string out of a QString''' if pyqt: return str(a.toUtf8()) - return a #Already a python string in PySide \ No newline at end of file + return a #Already a python string in PySide + +def set_utf8_text(component,text): + if pyqt: + component.setText(text.decode("utf-8")) + else: + component.setText(QtCore.QString.fromUtf8(text)) +def get_filename(filename): + if pyqt: + return str(filename.toUtf8()) + return filename[0] \ No newline at end of file diff --git a/relational_gui/guihandler.py b/relational_gui/guihandler.py index ffa0b78..1922754 100644 --- a/relational_gui/guihandler.py +++ b/relational_gui/guihandler.py @@ -16,7 +16,11 @@ # along with this program. If not, see . # # author Salvo "LtWorf" Tomaselli -from PyQt4 import QtCore, QtGui +try: + from PyQt4 import QtCore, QtGui +except: + from PySide import QtCore, QtGui + from relational import relation, parser, optimizer,rtypes import sys @@ -25,6 +29,7 @@ import survey import os import surveyForm import maingui +import compatibility class relForm(QtGui.QMainWindow): @@ -63,20 +68,22 @@ class relForm(QtGui.QMainWindow): '''Performs all the possible optimizations on the query''' self.undo=self.ui.txtQuery.text() #Storing the query in undo list - result=optimizer.optimize_all(str(self.ui.txtQuery.text().toUtf8()),self.relations) - self.ui.txtQuery.setText(QtCore.QString.fromUtf8(result)) + + query=compatibility.get_py_str(self.ui.txtQuery.text()).encode("utf-8") + result=optimizer.optimize_all(query,self.relations) + compatibility.set_utf8_text(self.ui.TxtQuery,result) def resumeHistory(self,item): - itm=str(item.text().toUtf8()).split(' = ',1) - self.ui.txtResult.setText(QtCore.QString.fromUtf8(itm[0])) - self.ui.txtQuery.setText(QtCore.QString.fromUtf8(itm[1])) + itm=compatibility.get_py_str(item.text()).split(' = ',1) + compatibility.set_utf8_text(self.ui.txtResult,itm[0]) + compatibility.set_utf8_text(self.ui.txtQuery,itm[1]) def execute(self): '''Executes the query''' - query=str(self.ui.txtQuery.text().toUtf8()) - res_rel=str(self.ui.txtResult.text().toUtf8())#result relation's name + query=compatibility.get_py_str(self.ui.txtQuery.text()) + res_rel=compatibility.get_py_str(self.ui.txtResult.text())#result relation's name if not rtypes.is_valid_relation_name(res_rel): QtGui.QMessageBox.information(self,QtGui.QApplication.translate("Form", "Error"),QtGui.QApplication.translate("Form", "Wrong name for destination relation.")) @@ -97,17 +104,18 @@ class relForm(QtGui.QMainWindow): QtGui.QMessageBox.information(None,QtGui.QApplication.translate("Form", "Error"),"%s\n%s" % (QtGui.QApplication.translate("Form", "Check your query!"),e.__str__()) ) return #Query was executed normally - history_item=QtCore.QString() - history_item.append(self.ui.txtResult.text()) - history_item.append(u' = ') - history_item.append(self.ui.txtQuery.text()) - hitem=QtGui.QListWidgetItem(None,0) - hitem.setText(history_item) - self.ui.lstHistory.addItem (hitem) - self.ui.lstHistory.setCurrentItem(hitem) + #TODO fix THAT + #history_item=QtCore.QString() + #history_item.append(self.ui.txtResult.text()) + #history_item.append(u' = ') + #history_item.append(self.ui.txtQuery.text()) + #hitem=QtGui.QListWidgetItem(None,0) + #hitem.setText(history_item) + #self.ui.lstHistory.addItem (hitem) + #self.ui.lstHistory.setCurrentItem(hitem) self.qcounter+=1 - self.ui.txtResult.setText(QtCore.QString(u"_last%d"% self.qcounter)) #Sets the result relation name to none + compatibility.set_utf8_text(self.ui.txtResult,u"_last%d"% self.qcounter) #Sets the result relation name to none def showRelation(self,rel): '''Shows the selected relation into the table''' @@ -133,12 +141,12 @@ class relForm(QtGui.QMainWindow): def printRelation(self,item): - self.selectedRelation=self.relations[str(item.text().toUtf8())] + self.selectedRelation=self.relations[compatibility.get_py_str(item.text())] self.showRelation(self.selectedRelation) def showAttributes(self,item): '''Shows the attributes of the selected relation''' - rel=str(item.text().toUtf8()) + rel=compatibility.get_py_str(item.text()) self.ui.lstAttributes.clear() for j in self.relations[rel].header.attributes: self.ui.lstAttributes.addItem (j) @@ -150,15 +158,15 @@ class relForm(QtGui.QMainWindow): self.ui.lstRelations.addItem(i) def saveRelation(self): filename = QtGui.QFileDialog.getSaveFileName(self,QtGui.QApplication.translate("Form", "Save Relation"),"",QtGui.QApplication.translate("Form", "Relations (*.csv)")) - - filename=str(filename.toUtf8()) #Converts QString to string + + filename=compatibility.get_filename(filename) if (len(filename)==0):#Returns if no file was selected return self.selectedRelation.save(filename) return def unloadRelation(self): for i in self.ui.lstRelations.selectedItems(): - del self.relations[str(i.text().toUtf8())] + del self.relations[compatibility.get_py_str(i.text())] self.updateRelations() def showSurvey(self): if self.Survey==None: @@ -182,7 +190,7 @@ class relForm(QtGui.QMainWindow): #Asking for file to load if filename==None: filename = QtGui.QFileDialog.getOpenFileName(self,QtGui.QApplication.translate("Form", "Load Relation"),"",QtGui.QApplication.translate("Form", "Relations (*.csv);;Text Files (*.txt);;All Files (*)")) - filename=str(filename.toUtf8()) + filename=compatibility.get_filename(filename) #Default relation's name f=filename.split('/') #Split the full path @@ -201,10 +209,11 @@ class relForm(QtGui.QMainWindow): return #Patch provided by Angelo 'Havoc' Puglisi - name=str(res[0].toUtf8()) + name=compatibility.get_py_str(res[0]) if not rtypes.is_valid_relation_name(name): - QtGui.QMessageBox.information(self,QtGui.QApplication.translate("Form", "Error"),QtGui.QApplication.translate("Form", "Wrong name for destination relation: %s." % name)) + r=QtGui.QApplication.translate("Form", str("Wrong name for destination relation: %s." % name)) + QtGui.QMessageBox.information(self,QtGui.QApplication.translate("Form", "Error"),r) return try: diff --git a/relational_gui/maingui.py b/relational_gui/maingui.py index 7b3a537..4382477 100644 --- a/relational_gui/maingui.py +++ b/relational_gui/maingui.py @@ -1,8 +1,8 @@ # -*- coding: utf-8 -*- -# Form implementation generated from reading ui file 'maingui.ui' +# Form implementation generated from reading ui file 'relational_gui/maingui.ui' # -# Created: Tue Jun 14 18:13:03 2011 +# Created: Sat Oct 8 20:14:44 2011 # by: PyQt4 UI code generator 4.8.3 # # WARNING! All changes made in this file will be lost! diff --git a/relational_gui/survey.py b/relational_gui/survey.py index 85a779c..5050ec3 100644 --- a/relational_gui/survey.py +++ b/relational_gui/survey.py @@ -1,8 +1,8 @@ # -*- coding: utf-8 -*- -# Form implementation generated from reading ui file 'survey.ui' +# Form implementation generated from reading ui file 'relational_gui/survey.ui' # -# Created: Tue Jun 14 17:21:38 2011 +# Created: Sat Oct 8 20:14: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/guihandler.py b/relational_pyside/guihandler.py deleted file mode 100644 index 2246240..0000000 --- a/relational_pyside/guihandler.py +++ /dev/null @@ -1,264 +0,0 @@ -# -*- coding: utf-8 -*- -# Relational -# Copyright (C) 2008 Salvo "LtWorf" Tomaselli -# -# Relational is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . -# -# author Salvo "LtWorf" Tomaselli -from PySide import QtCore, QtGui -from relational import relation, parser, optimizer,rtypes - -import sys -import about -import survey -import os -import surveyForm -import maingui - -class relForm(QtGui.QMainWindow): - - def __init__(self,ui): - QtGui.QMainWindow.__init__(self) - self.About=None - self.Survey=None - self.relations={} #Dictionary for relations - self.undo=None #UndoQueue for queries - self.selectedRelation=None - self.ui=ui - self.qcounter=1 #Query counter - - def load_query(self,*index): - self.ui.txtQuery.setText(self.savedQ.itemData(index[0]).toString()) - - def undoOptimize(self): - '''Undoes the optimization on the query, popping one item from the undo list''' - if self.undo!=None: - self.ui.txtQuery.setText(self.undo) - - def optimize(self): - '''Performs all the possible optimizations on the query''' - self.undo=self.ui.txtQuery.text() #Storing the query in undo list - - query=self.ui.txtQuery.text().encode("utf-8") - result=optimizer.optimize_all(query,self.relations) - self.ui.txtQuery.setText(result.decode("utf-8")) - - def resumeHistory(self,item): - itm=item.text().split(' = ',1) - self.ui.txtResult.setText(itm[0]) - self.ui.txtQuery.setText(itm[1]) - - - def execute(self): - '''Executes the query''' - - query=self.ui.txtQuery.text().encode("utf-8") - res_rel=self.ui.txtResult.text().encode("utf-8") #result relation's name - - if not rtypes.is_valid_relation_name(res_rel): - QtGui.QMessageBox.information(self,QtGui.QApplication.translate("Form", "Error"),QtGui.QApplication.translate("Form", "Wrong name for destination relation.")) - return - - try: - #Converting string to utf8 and then from qstring to normal string - expr=parser.parse(query)#Converting expression to python code - print query,"-->" , expr #Printing debug - result=eval(expr,self.relations) #Evaluating the expression - - self.relations[res_rel]=result #Add the relation to the dictionary - self.updateRelations() #update the list - self.selectedRelation=result - self.showRelation(self.selectedRelation) #Show the result in the table - except Exception, e: - print e - QtGui.QMessageBox.information(None,QtGui.QApplication.translate("Form", "Error"),"%s\n%s" % (QtGui.QApplication.translate("Form", "Check your query!"),e.__str__()) ) - return - #Query was executed normally - history_item=self.ui.txtResult.text() + u' = ' + self.ui.txtQuery.text() - - hitem=QtGui.QListWidgetItem(None,0) - hitem.setText(history_item) - self.ui.lstHistory.addItem (hitem) - self.ui.lstHistory.setCurrentItem(hitem) - - self.qcounter+=1 - self.ui.txtResult.setText(u"_last%d"% self.qcounter) #Sets the result relation name to none - - def showRelation(self,rel): - '''Shows the selected relation into the table''' - self.ui.table.clear() - - if rel==None: #No relation to show - self.ui.table.setColumnCount(1) - self.ui.table.headerItem().setText(0,"Empty relation") - return - self.ui.table.setColumnCount(len(rel.header.attributes)) - - #Set content - for i in rel.content: - item = QtGui.QTreeWidgetItem() - for j in range(len(i)): - item.setText(j, i[j]) - self.ui.table.addTopLevelItem(item) - - #Sets columns - for i in range(len(rel.header.attributes)): - self.ui.table.headerItem().setText(i,rel.header.attributes[i]) - self.ui.table.resizeColumnToContents(i) #Must be done in order to avoid too small columns - - - def printRelation(self,item): - self.selectedRelation=self.relations[item.text()] - self.showRelation(self.selectedRelation) - - def showAttributes(self,item): - '''Shows the attributes of the selected relation''' - rel=item.text() - self.ui.lstAttributes.clear() - for j in self.relations[rel].header.attributes: - self.ui.lstAttributes.addItem (j) - - def updateRelations(self): - self.ui.lstRelations.clear() - for i in self.relations: - if i != "__builtins__": - self.ui.lstRelations.addItem(i) - def saveRelation(self): - filename = QtGui.QFileDialog.getSaveFileName(self,QtGui.QApplication.translate("Form", "Save Relation"),"",QtGui.QApplication.translate("Form", "Relations (*.csv)")) - - filename=filename[0] - if (len(filename)==0):#Returns if no file was selected - return - self.selectedRelation.save(filename) - return - def unloadRelation(self): - for i in self.ui.lstRelations.selectedItems(): - del self.relations[i.text()] - self.updateRelations() - def showSurvey(self): - if self.Survey==None: - self.Survey=surveyForm.surveyForm() - ui = survey.Ui_Form() - self.Survey.setUi(ui) - ui.setupUi(self.Survey) - self.Survey.setDefaultValues() - self.Survey.show() - def showAbout(self): - if self.About==None: - self.About = QtGui.QDialog() - ui = about.Ui_Dialog() - ui.setupUi(self.About) - self.About.show() - - def loadRelation(self,filename=None,name=None): - '''Loads a relation. Without parameters it will ask the user which relation to load, - otherwise it will load filename, giving it name. - It shouldn't be called giving filename but not giving name.''' - #Asking for file to load - if filename==None: - filename = QtGui.QFileDialog.getOpenFileName(self,QtGui.QApplication.translate("Form", "Load Relation"),"",QtGui.QApplication.translate("Form", "Relations (*.csv);;Text Files (*.txt);;All Files (*)")) - filename=filename[0] #New API returns a tuple - - #Default relation's name - print filename - f=filename.split('/') #Split the full path - defname=f[len(f)-1].lower() #Takes only the lowercase filename - - if len(defname)==0: - return - - if (defname.endswith(".csv")): #removes the extension - defname=defname[:-4] - - if name==None: #Prompt dialog to insert name for the relation - res=QtGui.QInputDialog.getText(self, QtGui.QApplication.translate("Form", "New relation"),QtGui.QApplication.translate("Form", "Insert the name for the new relation"), - QtGui.QLineEdit.Normal,defname) - if res[1]==False or len(res[0])==0: - return - - #Patch provided by Angelo 'Havoc' Puglisi - name=res[0] - - if not rtypes.is_valid_relation_name(name): - QtGui.QMessageBox.information(self,QtGui.QApplication.translate("Form", "Error"),QtGui.QApplication.translate("Form", "Wrong name for destination relation: %s." % name)) - return - - try: - self.relations[name]=relation.relation(filename) - except Exception, e: - print e - QtGui.QMessageBox.information(None,QtGui.QApplication.translate("Form", "Error"),"%s\n%s" % (QtGui.QApplication.translate("Form", "Check your query!"),e.__str__()) ) - return - - - self.updateRelations() - - def insertTuple(self): - '''Shows an input dialog and inserts the inserted tuple into the selected relation''' - res=QtGui.QInputDialog.getText(self, QtGui.QApplication.translate("Form", "New relation"),QtGui.QApplication.translate("Form", "Insert the values, comma separated"), - QtGui.QLineEdit.Normal,"") - if res[1]==False: - return - - t=[] - for i in str(res[0].toUtf8()).split(","): - t.append(i.strip()) - - if self.selectedRelation!=None and self.selectedRelation.insert(t) > 0: - self.showRelation(self.selectedRelation) - - return - def deleteTuple(self): - '''Shows an input dialog and removes the tuples corresponding to the condition.''' - res=QtGui.QInputDialog.getText(self, QtGui.QApplication.translate("Form", "New relation"),QtGui.QApplication.translate("Form", "Remove tuples: insert where condition"), - QtGui.QLineEdit.Normal,"") - if res[1]==False: - return - - if self.selectedRelation!=None and self.selectedRelation.delete(str(res[0].toUtf8())) > 0: - self.showRelation(self.selectedRelation) - - return - - def addProduct(self): - self.addSymbolInQuery(u"*") - def addDifference(self): - self.addSymbolInQuery(u"-") - def addUnion(self): - self.addSymbolInQuery(u"ᑌ") - def addIntersection(self): - self.addSymbolInQuery(u"ᑎ") - def addDivision(self): - self.addSymbolInQuery(u"÷") - def addOLeft(self): - self.addSymbolInQuery(u"ᐅLEFTᐊ") - def addJoin(self): - self.addSymbolInQuery(u"ᐅᐊ") - def addORight(self): - self.addSymbolInQuery(u"ᐅRIGHTᐊ") - def addOuter(self): - self.addSymbolInQuery(u"ᐅFULLᐊ") - def addProjection(self): - self.addSymbolInQuery(u"π") - def addSelection(self): - self.addSymbolInQuery(u"σ") - def addRename(self): - self.addSymbolInQuery(u"ρ") - def addArrow(self): - self.addSymbolInQuery(u"➡") - - def addSymbolInQuery(self,symbol): - self.ui.txtQuery.insert(symbol) - self.ui.txtQuery.setFocus() - diff --git a/relational_pyside/guihandler.py b/relational_pyside/guihandler.py new file mode 120000 index 0000000..791ef62 --- /dev/null +++ b/relational_pyside/guihandler.py @@ -0,0 +1 @@ +../relational_gui/guihandler.py \ No newline at end of file diff --git a/relational_pyside/maingui.py b/relational_pyside/maingui.py index b1560a7..45429d7 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: Sat Oct 8 19:27:40 2011 +# Created: Sat Oct 8 20:14:44 2011 # by: pyside-uic 0.2.13 running on PySide 1.0.7 # # WARNING! All changes made in this file will be lost! @@ -222,11 +222,14 @@ class Ui_MainWindow(object): self.action_Quit = QtGui.QAction(MainWindow) self.action_Quit.setMenuRole(QtGui.QAction.QuitRole) 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.menuFile.addAction(self.action_Load_relation) self.menuFile.addAction(self.action_Save_relation) self.menuFile.addSeparator() self.menuFile.addAction(self.action_Quit) self.menuAbout.addAction(self.actionAbout) + self.menuAbout.addAction(self.actionCheck_for_new_versions) self.menubar.addAction(self.menuFile.menuAction()) self.menubar.addAction(self.menuAbout.menuAction()) self.label.setBuddy(self.txtQuery) @@ -267,6 +270,7 @@ class Ui_MainWindow(object): QtCore.QObject.connect(self.action_Load_relation, QtCore.SIGNAL("triggered()"), MainWindow.loadRelation) 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.QMetaObject.connectSlotsByName(MainWindow) MainWindow.setTabOrder(self.cmdAbout, self.cmdSurvey) MainWindow.setTabOrder(self.cmdSurvey, self.cmdProduct) @@ -342,4 +346,5 @@ class Ui_MainWindow(object): self.action_Save_relation.setShortcut(QtGui.QApplication.translate("MainWindow", "Ctrl+S", None, QtGui.QApplication.UnicodeUTF8)) 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)) diff --git a/relational_pyside/maingui.ui b/relational_pyside/maingui.ui deleted file mode 100644 index 2f27fe6..0000000 --- a/relational_pyside/maingui.ui +++ /dev/null @@ -1,1112 +0,0 @@ - - - Salvo 'LtWorf' Tomaselli - MainWindow - - - - 0 - 0 - 800 - 612 - - - - Relational - - - - - - - Qt::Horizontal - - - - - - - Menu - - - - - - About - - - - - - - Survey - - - - - - - - - - Operators - - - - - - * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ÷ - - - - - - - ᐅᐊ - - - - - - - ᐅLEFTᐊ - - - - - - - ᐅRIGHTᐊ - - - - - - - ᐅFULLᐊ - - - - - - - π - - - - - - - σ - - - - - - - ρ - - - - - - - - - - - - - - Qt::Vertical - - - - 20 - 25 - - - - - - - - - - - - Qt::Horizontal - - - - Qt::Vertical - - - - - 450 - 400 - - - - - 0 - 0 - - - - false - - - - Empty relation - - - - - - - QLayout::SetMinimumSize - - - - - QLayout::SetFixedSize - - - - - Insert - - - - - - - Delete - - - - - - - - - - 0 - 0 - - - - - 16777215 - 16777215 - - - - - 0 - 0 - - - - - false - - - - - - - - - - Optimize - - - - - - - Undo optimize - - - - - - - Clear history - - - - - - - - - - - Qt::Vertical - - - - - 0 - 0 - - - - - 300 - 16777215 - - - - Relations - - - - - - - 0 - 0 - - - - - 16777215 - 16777215 - - - - true - - - - - - - Load relation - - - - - - - Save relation - - - - - - - Unload relation - - - - - - - - - 0 - 0 - - - - - 300 - 16777215 - - - - Attributes - - - - - - - 0 - 0 - - - - - 16777215 - 16777215 - - - - - - - - - - - - - - - - - 0 - 0 - - - - _last1 - - - - - - - = - - - txtQuery - - - - - - - - - - - - - - - - - Execute - - - - - - - - - - - 0 - 0 - 800 - 21 - - - - - &File - - - - - - - - - &Help - - - - - - - - - - &About - - - QAction::AboutRole - - - - - &Load relation - - - Ctrl+O - - - - - &Save relation - - - Ctrl+S - - - - - &Quit - - - Ctrl+Q - - - QAction::QuitRole - - - - - cmdAbout - cmdSurvey - cmdProduct - cmdDifference - cmdUnion - cmdIntersection - cmdDivision - cmdJoin - cmdOuterLeft - cmdOuterRight - cmdOuter - cmdProjection - cmdSelection - cmdRename - cmdArrow - table - cmdInsert - cmdDelete - lstHistory - cmdOptimize - cmdUndoOptimize - cmdClearHistory - lstRelations - cmdLoad - cmdSave - cmdUnload - lstAttributes - txtResult - txtQuery - cmdClearQuery - cmdExecute - - - - - cmdClearQuery - clicked() - txtQuery - clear() - - - 686 - 591 - - - 206 - 591 - - - - - cmdClearHistory - clicked() - lstHistory - clear() - - - 490 - 563 - - - 397 - 525 - - - - - txtQuery - returnPressed() - MainWindow - execute() - - - 450 - 599 - - - 438 - 611 - - - - - cmdExecute - clicked() - MainWindow - execute() - - - 732 - 592 - - - 592 - 611 - - - - - cmdAbout - clicked() - MainWindow - showAbout() - - - 82 - 75 - - - 79 - 597 - - - - - cmdSurvey - clicked() - MainWindow - showSurvey() - - - 63 - 96 - - - 99 - 605 - - - - - cmdProduct - clicked() - MainWindow - addProduct() - - - 41 - 171 - - - 180 - 611 - - - - - cmdDifference - clicked() - MainWindow - addDifference() - - - 82 - 194 - - - 46 - 611 - - - - - cmdArrow - clicked() - MainWindow - addArrow() - - - 99 - 505 - - - 58 - 608 - - - - - cmdRename - clicked() - MainWindow - addRename() - - - 42 - 474 - - - 111 - 611 - - - - - cmdSelection - clicked() - MainWindow - addSelection() - - - 72 - 446 - - - 16 - 611 - - - - - cmdProjection - clicked() - MainWindow - addProjection() - - - 99 - 414 - - - 91 - 597 - - - - - cmdUnload - clicked() - MainWindow - unloadRelation() - - - 646 - 312 - - - 773 - 599 - - - - - cmdSave - clicked() - MainWindow - saveRelation() - - - 717 - 287 - - - 760 - 610 - - - - - cmdLoad - clicked() - MainWindow - loadRelation() - - - 753 - 255 - - - 753 - 594 - - - - - cmdOptimize - clicked() - MainWindow - optimize() - - - 245 - 554 - - - 684 - 611 - - - - - cmdUndoOptimize - clicked() - MainWindow - undoOptimize() - - - 336 - 560 - - - 652 - 604 - - - - - txtResult - returnPressed() - txtQuery - setFocus() - - - 87 - 590 - - - 182 - 590 - - - - - cmdDelete - clicked() - MainWindow - deleteTuple() - - - 549 - 442 - - - 563 - 594 - - - - - cmdInsert - clicked() - MainWindow - insertTuple() - - - 326 - 435 - - - 533 - 586 - - - - - cmdOuterRight - clicked() - MainWindow - addORight() - - - 90 - 359 - - - 58 - 611 - - - - - cmdOuter - clicked() - MainWindow - addOuter() - - - 34 - 390 - - - 86 - 611 - - - - - cmdOuterLeft - clicked() - MainWindow - addOLeft() - - - 32 - 332 - - - 66 - 611 - - - - - cmdJoin - clicked() - MainWindow - addJoin() - - - 101 - 302 - - - 147 - 611 - - - - - cmdDivision - clicked() - MainWindow - addDivision() - - - 71 - 272 - - - 185 - 611 - - - - - cmdIntersection - clicked() - MainWindow - addIntersection() - - - 99 - 244 - - - 228 - 611 - - - - - cmdUnion - clicked() - MainWindow - addUnion() - - - 20 - 222 - - - 279 - 611 - - - - - lstRelations - itemDoubleClicked(QListWidgetItem*) - MainWindow - printRelation(QListWidgetItem*) - - - 708 - 110 - - - 643 - 611 - - - - - lstRelations - itemClicked(QListWidgetItem*) - MainWindow - showAttributes(QListWidgetItem*) - - - 615 - 182 - - - 510 - 611 - - - - - cmdClearQuery - clicked() - txtQuery - setFocus() - - - 693 - 599 - - - 588 - 597 - - - - - lstHistory - itemDoubleClicked(QListWidgetItem*) - MainWindow - resumeHistory(QListWidgetItem*) - - - 349 - 492 - - - 399 - 305 - - - - - actionAbout - triggered() - MainWindow - showAbout() - - - -1 - -1 - - - 399 - 305 - - - - - action_Load_relation - triggered() - MainWindow - loadRelation() - - - -1 - -1 - - - 399 - 305 - - - - - action_Save_relation - triggered() - MainWindow - saveRelation() - - - -1 - -1 - - - 399 - 305 - - - - - action_Quit - triggered() - MainWindow - close() - - - -1 - -1 - - - 399 - 305 - - - - - - execute() - showAbout() - showSurvey() - addProduct() - addDifference() - addUnion() - addIntersection() - addDivision() - addOLeft() - addORight() - addOuter() - addJoin() - addProjection() - addSelection() - addRename() - addArrow() - optimize() - undoOptimize() - loadRelation() - unloadRelation() - saveRelation() - insertTuple() - deleteTuple() - printRelation(QListWidgetItem*) - showAttributes(QListWidgetItem*) - loadQuery() - resumeHistory(QListWidgetItem*) - - diff --git a/relational_pyside/maingui.ui b/relational_pyside/maingui.ui new file mode 120000 index 0000000..d67ceb0 --- /dev/null +++ b/relational_pyside/maingui.ui @@ -0,0 +1 @@ +../relational_gui/maingui.ui \ No newline at end of file diff --git a/relational_pyside/survey.py b/relational_pyside/survey.py index fa3b5c4..316c9cc 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: Sat Oct 8 19:27:40 2011 +# Created: Sat Oct 8 20:14:44 2011 # by: pyside-uic 0.2.13 running on PySide 1.0.7 # # WARNING! All changes made in this file will be lost!