[Tutor] playing around with function
kakada
hokkakada at khmeros.info
Fri Jul 28 10:57:51 CEST 2006
Thank Alan and Luke,
My coding is divided up into many modules and import from one to another.
Here is my editor.py interface.
#!/usr/bin/python
# -*- coding: utf8 -*-
import sys
import application_rc
from PyQt4 import QtCore, QtGui
from ui_editor import Ui_MainWindow
from translate.storage import factory
import Display
class MainWindow(QtGui.QMainWindow):
def __init__(self):
QtGui.QMainWindow.__init__(self)
self.ui = Ui_MainWindow()
self.ui.setupUi(self)
self.numApproved = 0
self.numFuzzy = 0
self.numTranslated = 0
#events go here
QtCore.QObject.connect(self.ui.treeWidget,
QtCore.SIGNAL("itemSelectionChanged()"), self.updateField)
QtCore.QObject.connect(self.ui.cmbMsgFilter,
QtCore.SIGNAL("activated(int)"), self.setFilter)
QtCore.QObject.connect(self.ui.chkfuzzy,QtCore.SIGNAL("stateChanged(int)"),self.toggleFuzzy)
QtCore.QObject.connect(self.ui.chkapproved,QtCore.SIGNAL("toggled(bool)"),self.toggleApproved)
QtCore.QObject.connect(self.ui.btnsource2target,QtCore.SIGNAL("pressed()"),self.source2target)
QtCore.QObject.connect(self.ui.btnRemoveAllTU,QtCore.SIGNAL("pressed()"),self.removeAllTrans)
QtCore.QObject.connect(self.ui.btnNA,QtCore.SIGNAL("pressed()"),self.gotoNA)
QtCore.QObject.connect(self.ui.btnPA,QtCore.SIGNAL("pressed()"),self.gotoPA)
QtCore.QObject.connect(self.ui.btnNF,QtCore.SIGNAL("pressed()"),self.gotoNF)
QtCore.QObject.connect(self.ui.btnNT,QtCore.SIGNAL("pressed()"),self.gotoNT)
QtCore.QObject.connect(self.ui.btnNU,QtCore.SIGNAL("pressed()"),self.gotoNU)
QtCore.QObject.connect(self.ui.btnPF,QtCore.SIGNAL("pressed()"),self.gotoPF)
QtCore.QObject.connect(self.ui.btnPU,QtCore.SIGNAL("pressed()"),self.gotoPU)
QtCore.QObject.connect(self.ui.btnPT,QtCore.SIGNAL("pressed()"),self.gotoPT)
QtCore.QMetaObject.connectSlotsByName(self)
def newWindows(self):
print "new windows"
self.other = Ui_MainWindow()
self.other.windowList.append(other)
self.other.show()
def openFile(self):
fileName = QtGui.QFileDialog.getOpenFileName(self, self.tr("Open
Xliff File"),
QtCore.QDir.currentPath(),
self.tr("XLIFF
Files (*.xliff *.xml *.xlf);;All File(*.*)"))
if fileName.isEmpty():
self.setWindowTitle( self.tr("WordForge Translation Editor
v.05 - ") + "untitle")
else:
self.setWindowTitle( self.tr("WordForge Translation Editor
v.05 - ") + str(fileName))
self.title = fileName
self.store = factory.getobject(str(fileName))
self.uf = Display.Display(self.ui, self.store)
import FirstShow
fs = FirstShow.FirstShow(self.ui, self.store)
fs.firstShow()
def save(self):
if self.title.isEmpty():
return self.saveAs()
else:
return self.store.savefile(str(self.title))
def saveAs(self):
fileName = QtGui.QFileDialog.getSaveFileName(self, self.tr("Save
Xliff File"),
QtCore.QDir.currentPath(),
self.tr("XLIFF
Files (*.xliff *.xml *.xlf)"))
if fileName.isEmpty():
return
self.store.savefile(str(fileName))
self.ui.cmbMsgFilter.addItem ('Not filtered')
self.ui.cmbMsgFilter.addItem ('fuzzy')
self.ui.cmbMsgFilter.addItem ('translated')
self.ui.cmbMsgFilter.addItem ('untranslated')
def getCurrentItem(self):
try:
self.item = self.ui.treeWidget.selectedItems()[0]
except IndexError:
return False
# I have change my code style like this:
def gotoNF(self):
self.state = "NF"
self.navigationNext(self.state)
def gotoNT(self):
self.state = "NT"
self.navigationNext(self.state)
def gotoNU(self):
self.state = "NU"
self.navigationNext(self.state)
def gotoNA(self):
self.state = "NA"
self.navigationNext(self.state)
def gotoPA(self):
self.state = "PA"
self.navigationPrevious(self.state)
def gotoPT(self):
self.state = "PT"
self.navigationPrevious(self.state)
def gotoPU(self):
self.state = "PU"
self.navigationPrevious(self.state)
def gotoPF(self):
self.state = "PF"
self.navigationPrevious(self.state)
def navigated(self):
if (self.state == 'NF') and
(self.store.units[int(self.id)].isfuzzy()):
return True
if (self.state == 'PF') and
(self.store.units[int(self.id)].isfuzzy()):
return True
if (self.state == 'NT') and
(self.store.units[int(self.id)].istranslated()):
return True
if (self.state == 'PT') and
(self.store.units[int(self.id)].istranslated()):
return True
if (self.state == 'NU') and
(self.store.units[int(self.id)].isuntranslated()):
return True
if (self.state == 'PU') and
(self.store.units[int(self.id)].isuntranslated()):
return True
if (self.state == 'NA') and
(self.store.units[int(self.id)].isapproved()):
return True
if (self.state == 'PA') and
(self.store.units[int(self.id)].isapproved()):
return True
def navigationNext(self,state):
if (self.getCurrentItem() == 0):
return 0
self.id = int(self.item.text(0))
self.id += 1
for i in range(self.id,775):
self.id = i
if (i == 775):
pass
#self.warningMessage()
else:
if self.navigated():
curItem = self.ui.treeWidget.topLevelItem(self.id)
self.ui.treeWidget.setCurrentItem(curItem)
self.ui.txtSource.setHtml(self.store.units[self.id].source)
self.ui.txtTarget.setHtml(self.store.units[self.id].target)
break
else: continue
def navigationPrevious(self,state):
if (self.getCurrentItem() == 0):
return 0
self.id = int(self.item.text(0))
self.id -= 1
for i in range(self.id,0,-1):
self.id = i
if (self.id == 0):
pass
#self.warningMessage()
else:
if self.navigated():
curItem = self.ui.treeWidget.topLevelItem(self.id)
self.ui.treeWidget.setCurrentItem(curItem)
self.ui.txtSource.setHtml(self.store.units[self.id].source)
self.ui.txtTarget.setHtml(self.store.units[self.id].target)
break
else: continue
#class MessageDialog(QtGui.QDialog):
#def warningMessage(self):
#reply = QtGui.QMessageBox.warning(self,
self.tr("QMessageBox.showWarning()"),
#Dialong.MESSAGE,
self.tr("Continue to the begining"),
#self.tr("&Yes"))
#if reply == 0:
#self.warningLabel.setText(self.tr("Yes"))
#else:
#self.warningLabel.setText(self.tr("Cancel"))
if __name__ == "__main__":
app = QtGui.QApplication(sys.argv)
editor = MainWindow()
editor.show()
sys.exit(app.exec_())
More information about the Tutor
mailing list