comparison trunk/src/translator/translator.py @ 481:04adc4e3fdda

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.
author Aziz K?ksal <aziz.koeksal@gmail.com>
date Wed, 14 Nov 2007 22:07:50 +0100
parents 044b5393f8bc
children 1401e38d1e2e
comparison
equal deleted inserted replaced
480:f25985f6b222 481:04adc4e3fdda
65 Qt.connect(self.action_Add_New_Catalogue, triggered, self.addNewCatalogue) 65 Qt.connect(self.action_Add_New_Catalogue, triggered, self.addNewCatalogue)
66 Qt.connect(self.projectTree, Qt.SIGNAL("itemDoubleClicked(QTreeWidgetItem*,int)"), self.projectTreeItemDblClicked) 66 Qt.connect(self.projectTree, Qt.SIGNAL("itemDoubleClicked(QTreeWidgetItem*,int)"), self.projectTreeItemDblClicked)
67 Qt.connect(self.projectTree, Qt.SIGNAL("onKeyEnter"), self.projectTreeItemActivated) 67 Qt.connect(self.projectTree, Qt.SIGNAL("onKeyEnter"), self.projectTreeItemActivated)
68 Qt.connect(self.projectTree, Qt.SIGNAL("onKeyDelete"), self.projectTreeItemDeleted) 68 Qt.connect(self.projectTree, Qt.SIGNAL("onKeyDelete"), self.projectTreeItemDeleted)
69 69
70 shortcut = QtGui.QShortcut(QtGui.QKeySequence(Qt.CTRL+Qt.Key_Tab), self)
71 Qt.connect(shortcut, Qt.SIGNAL("activated()"), self.nextDocument)
72 shortcut = QtGui.QShortcut(QtGui.QKeySequence(Qt.CTRL+Qt.SHIFT+Qt.Key_Tab), self)
73 Qt.connect(shortcut, Qt.SIGNAL("activated()"), self.prevDocument)
74
70 self.readSettings() 75 self.readSettings()
76
77 def nextDocument(self):
78 count = self.pages.count()
79 if count < 1: return
80 index = self.pages.currentIndex()+1
81 if index == count: index = 0
82 self.pages.setCurrentIndex(index)
83
84 def prevDocument(self):
85 count = self.pages.count()
86 if count < 1: return
87 index = self.pages.currentIndex()-1
88 if index == -1: index = count-1
89 self.pages.setCurrentIndex(index)
71 90
72 def showAboutDialog(self): 91 def showAboutDialog(self):
73 about = QtGui.QDialog() 92 about = QtGui.QDialog()
74 Ui_AboutDialog().setupUi(about) 93 Ui_AboutDialog().setupUi(about)
75 about.exec_() 94 about.exec_()
142 return False 161 return False
143 162
144 def closeProject(self): 163 def closeProject(self):
145 if self.project == None: 164 if self.project == None:
146 return 165 return
166 self.project.save()
147 del self.project 167 del self.project
148 self.project = None 168 self.project = None
149 self.disableMenuItems() 169 self.disableMenuItems()
150 self.projectTree.clear() 170 self.projectTree.clear()
151 self.pages.closeAll() 171 self.pages.closeAll()
178 if isinstance(item, LangFileItem): 198 if isinstance(item, LangFileItem):
179 msgForm = None 199 msgForm = None
180 if not item.isDocOpen(): 200 if not item.isDocOpen():
181 msgForm = item.openDoc() 201 msgForm = item.openDoc()
182 msgForm.setModifiedCallback(self.formModified) 202 msgForm.setModifiedCallback(self.formModified)
203 else:
204 msgForm = item.openDoc()
183 index = self.pages.indexOf(msgForm) 205 index = self.pages.indexOf(msgForm)
184 if index == -1: 206 if index == -1:
185 index = self.pages.addTab(msgForm, msgForm.getDocumentTitle()) 207 index = self.pages.addTab(msgForm, msgForm.getDocumentTitle())
186 self.pages.setCurrentIndex(index) 208 self.pages.setCurrentIndex(index)
187 msgForm.updateData() 209 msgForm.updateData()
234 256
235 def closeEvent(self, event): 257 def closeEvent(self, event):
236 if self.rejectClosingProject(): 258 if self.rejectClosingProject():
237 event.ignore() 259 event.ignore()
238 return 260 return
261 self.closeProject()
239 self.writeSettings() 262 self.writeSettings()
240 # Closing application 263 # Closing application
241 264
242 def moveToCenterOfDesktop(self): 265 def moveToCenterOfDesktop(self):
243 rect = QtGui.QApplication.desktop().geometry() 266 rect = QtGui.QApplication.desktop().geometry()
439 462
440 463
441 class MsgIDItem(QtGui.QTreeWidgetItem): 464 class MsgIDItem(QtGui.QTreeWidgetItem):
442 def __init__(self, parent, text): 465 def __init__(self, parent, text):
443 QtGui.QTreeWidgetItem.__init__(self, parent, [text]) 466 QtGui.QTreeWidgetItem.__init__(self, parent, [text])
467 self.setFlags(self.flags()|Qt.ItemIsEditable);
444 468
445 class LangFileItem(QtGui.QTreeWidgetItem): 469 class LangFileItem(QtGui.QTreeWidgetItem):
446 def __init__(self, parent, langFile): 470 def __init__(self, parent, langFile):
447 QtGui.QTreeWidgetItem.__init__(self, parent, [langFile.langCode]) 471 QtGui.QTreeWidgetItem.__init__(self, parent, [langFile.langCode])
448 self.langFile = langFile 472 self.langFile = langFile
464 self.msgForm = None 488 self.msgForm = None
465 489
466 class ProjectItem(QtGui.QTreeWidgetItem): 490 class ProjectItem(QtGui.QTreeWidgetItem):
467 def __init__(self, text): 491 def __init__(self, text):
468 QtGui.QTreeWidgetItem.__init__(self, [text]) 492 QtGui.QTreeWidgetItem.__init__(self, [text])
493 self.setFlags(self.flags()|Qt.ItemIsEditable);
469 494
470 class ProjectTree(QtGui.QTreeWidget): 495 class ProjectTree(QtGui.QTreeWidget):
471 def __init__(self, parent): 496 def __init__(self, parent):
472 QtGui.QTreeWidget.__init__(self, parent) 497 QtGui.QTreeWidget.__init__(self, parent)
498 self.project = None
473 self.topItem = None 499 self.topItem = None
474 self.msgIDsItem = None 500 self.msgIDsItem = None
475 self.headerItem().setHidden(True) 501 self.headerItem().setHidden(True)
502
503 def itemChanged(self, item, column):
504 text = unicode(item.text(0))
505 #if hasattr(item, "textChanged"):
506 #item.textChanged(text)
507 if isinstance(item, ProjectItem):
508 self.project.setName(text)
509 print text
476 510
477 def keyReleaseEvent(self, event): 511 def keyReleaseEvent(self, event):
478 Qt = QtCore.Qt 512 Qt = QtCore.Qt
479 key = event.key() 513 key = event.key()
480 if key in [Qt.Key_Enter, Qt.Key_Return]: 514 if key in [Qt.Key_Enter, Qt.Key_Return]:
495 for msgID in self.project.msgIDs: 529 for msgID in self.project.msgIDs:
496 MsgIDItem(self.msgIDsItem, msgID["Name"]) 530 MsgIDItem(self.msgIDsItem, msgID["Name"])
497 531
498 for x in [self.topItem, self.msgIDsItem]: 532 for x in [self.topItem, self.msgIDsItem]:
499 x.setExpanded(True) 533 x.setExpanded(True)
534
535 Qt.connect(self, Qt.SIGNAL("itemChanged(QTreeWidgetItem*,int)"), self.itemChanged)
500 536
501 def contextMenuEvent(self, event): 537 def contextMenuEvent(self, event):
502 item = self.itemAt(event.pos()) 538 item = self.itemAt(event.pos())
503 func_map = { 539 func_map = {
504 None : lambda item: None, 540 None : lambda item: None,
517 553
518 def showMenuMsgIDItem(self, item): 554 def showMenuMsgIDItem(self, item):
519 print "MsgIDItem" 555 print "MsgIDItem"
520 556
521 def clear(self): 557 def clear(self):
558 self.project = None
522 self.topItem = None 559 self.topItem = None
523 self.msgIDsItem = None 560 self.msgIDsItem = None
561 Qt.disconnect(self, Qt.SIGNAL("itemChanged(QTreeWidgetItem*,int)"), self.itemChanged)
524 QtGui.QTreeWidget.clear(self) 562 QtGui.QTreeWidget.clear(self)
525 563
526 564
527 class ClosingProjectDialog(QtGui.QDialog, Ui_ClosingProjectDialog): 565 class ClosingProjectDialog(QtGui.QDialog, Ui_ClosingProjectDialog):
528 DiscardAll = 2 566 DiscardAll = 2