# HG changeset patch # User Aziz K?ksal # Date 1195074470 -3600 # Node ID 04adc4e3fddaa064d8cddb28e78207076b25d5f6 # Parent f25985f6b222b7e96e5adc82b313db0a54daec1f Translator: some fixes and additions. Projects can be saved now. Documents can be switched using Ctrl+Tab and Ctrl+Shift+Tab. Some items in ProjectTree can be edited now. Added my last will to the file AUTHORS. diff -r f25985f6b222 -r 04adc4e3fdda trunk/AUTHORS --- a/trunk/AUTHORS Mon Nov 12 20:40:41 2007 +0100 +++ b/trunk/AUTHORS Wed Nov 14 22:07:50 2007 +0100 @@ -1,4 +1,13 @@ Founder: Aziz Köksal + "All rights to the code I've written will pass over to Jari-Matti Mäkelä, + in case I catch the bus or the bus catches me. + My death won't probably be announced anywhere on + the internet, therefore my testament will become effective if I don't + show any signs of life for 6 months on the internet. + Within this time limit I may always revoke or edit this testament, + by committing to the hg repository at http://hg.sharesource.org/dil/ + Only the latest revision of this file is to be considered valid." + - Aziz Köksal Contributors: Jari-Matti Mäkelä diff -r f25985f6b222 -r 04adc4e3fdda trunk/src/translator/project.py --- a/trunk/src/translator/project.py Mon Nov 12 20:40:41 2007 +0100 +++ b/trunk/src/translator/project.py Wed Nov 14 22:07:50 2007 +0100 @@ -38,7 +38,7 @@ doc = self.doc self.checkType(doc, dict) try: - self.name = str(doc["Name"]) + self.name = unicode(doc["Name"]) self.srcLangFilePath = str(doc["SourceLangFile"]) self.langFilePaths = list(doc["LangFiles"]) self.msgIDs = list(doc["MsgIDs"]) @@ -91,5 +91,11 @@ filePath = filePath2 return langfile.LangFile(filePath) + def setName(self, name): + self.name = name + def save(self): - pass + self.doc["Name"] = self.name + file_ = open(self.projectPath, "w") + yaml.dump(self.doc, stream=file_, allow_unicode=True) + file_.close() diff -r f25985f6b222 -r 04adc4e3fdda trunk/src/translator/translator.py --- a/trunk/src/translator/translator.py Mon Nov 12 20:40:41 2007 +0100 +++ b/trunk/src/translator/translator.py Wed Nov 14 22:07:50 2007 +0100 @@ -67,8 +67,27 @@ Qt.connect(self.projectTree, Qt.SIGNAL("onKeyEnter"), self.projectTreeItemActivated) Qt.connect(self.projectTree, Qt.SIGNAL("onKeyDelete"), self.projectTreeItemDeleted) + shortcut = QtGui.QShortcut(QtGui.QKeySequence(Qt.CTRL+Qt.Key_Tab), self) + Qt.connect(shortcut, Qt.SIGNAL("activated()"), self.nextDocument) + shortcut = QtGui.QShortcut(QtGui.QKeySequence(Qt.CTRL+Qt.SHIFT+Qt.Key_Tab), self) + Qt.connect(shortcut, Qt.SIGNAL("activated()"), self.prevDocument) + self.readSettings() + def nextDocument(self): + count = self.pages.count() + if count < 1: return + index = self.pages.currentIndex()+1 + if index == count: index = 0 + self.pages.setCurrentIndex(index) + + def prevDocument(self): + count = self.pages.count() + if count < 1: return + index = self.pages.currentIndex()-1 + if index == -1: index = count-1 + self.pages.setCurrentIndex(index) + def showAboutDialog(self): about = QtGui.QDialog() Ui_AboutDialog().setupUi(about) @@ -144,6 +163,7 @@ def closeProject(self): if self.project == None: return + self.project.save() del self.project self.project = None self.disableMenuItems() @@ -180,6 +200,8 @@ if not item.isDocOpen(): msgForm = item.openDoc() msgForm.setModifiedCallback(self.formModified) + else: + msgForm = item.openDoc() index = self.pages.indexOf(msgForm) if index == -1: index = self.pages.addTab(msgForm, msgForm.getDocumentTitle()) @@ -236,6 +258,7 @@ if self.rejectClosingProject(): event.ignore() return + self.closeProject() self.writeSettings() # Closing application @@ -441,6 +464,7 @@ class MsgIDItem(QtGui.QTreeWidgetItem): def __init__(self, parent, text): QtGui.QTreeWidgetItem.__init__(self, parent, [text]) + self.setFlags(self.flags()|Qt.ItemIsEditable); class LangFileItem(QtGui.QTreeWidgetItem): def __init__(self, parent, langFile): @@ -466,14 +490,24 @@ class ProjectItem(QtGui.QTreeWidgetItem): def __init__(self, text): QtGui.QTreeWidgetItem.__init__(self, [text]) + self.setFlags(self.flags()|Qt.ItemIsEditable); class ProjectTree(QtGui.QTreeWidget): def __init__(self, parent): QtGui.QTreeWidget.__init__(self, parent) + self.project = None self.topItem = None self.msgIDsItem = None self.headerItem().setHidden(True) + def itemChanged(self, item, column): + text = unicode(item.text(0)) + #if hasattr(item, "textChanged"): + #item.textChanged(text) + if isinstance(item, ProjectItem): + self.project.setName(text) + print text + def keyReleaseEvent(self, event): Qt = QtCore.Qt key = event.key() @@ -498,6 +532,8 @@ for x in [self.topItem, self.msgIDsItem]: x.setExpanded(True) + Qt.connect(self, Qt.SIGNAL("itemChanged(QTreeWidgetItem*,int)"), self.itemChanged) + def contextMenuEvent(self, event): item = self.itemAt(event.pos()) func_map = { @@ -519,8 +555,10 @@ print "MsgIDItem" def clear(self): + self.project = None self.topItem = None self.msgIDsItem = None + Qt.disconnect(self, Qt.SIGNAL("itemChanged(QTreeWidgetItem*,int)"), self.itemChanged) QtGui.QTreeWidget.clear(self)