diff trunk/src/translator/translator.py @ 471:b6fa41e6f0b4

Translator: implemented some functionality of MsgForm.
author Aziz K?ksal <aziz.koeksal@gmail.com>
date Sun, 04 Nov 2007 14:06:04 +0100
parents 77c17bbe9d20
children 30925590f392
line wrap: on
line diff
--- a/trunk/src/translator/translator.py	Wed Oct 31 23:03:56 2007 +0200
+++ b/trunk/src/translator/translator.py	Sun Nov 04 14:06:04 2007 +0100
@@ -29,6 +29,8 @@
 
     self.project = None
     # Modifications
+    self.pages = QtGui.QStackedWidget()
+    self.setCentralWidget(self.pages)
     self.disableMenuItems()
     self.projectDock = QtGui.QDockWidget("Project", self)
     self.projectTree = ProjectTree(self)
@@ -116,12 +118,15 @@
     self.action_Close_Project.setEnabled(False)
     self.menubar.removeAction(self.menu_Project.menuAction())
 
-  def projectTreeItemChanged(self, item, column):
-    if item == None:
+  def projectTreeItemChanged(self, current, previous):
+    if current == None:
       return
-    # TODO: set centralwidget to the form corresponding to the item.
-    if isinstance(item, LangFileItem):
-      print "LangFileItem"
+
+    if isinstance(current, LangFileItem):
+      index = self.pages.indexOf(current.msgForm)
+      if index == -1:
+        index = self.pages.addWidget(current.msgForm)
+      self.pages.setCurrentIndex(index)
 
   def closeEvent(self, event):
     if self.closeProject() == False:
@@ -166,17 +171,37 @@
     yaml.dump(g_settings, open(g_settingsFile, "w")) #default_flow_style=False
 
 class MsgForm(QtGui.QWidget, Ui_MsgForm):
-  def __init__(self):
+  def __init__(self, langFile):
     QtGui.QWidget.__init__(self)
     self.setupUi(self)
 
+    self.langFile = langFile
+    self.treeWidget.setColumnCount(2)
+    self.treeWidget.setHeaderLabels(["ID", "Text"])
+    for msg in self.langFile.messages:
+      item = QtGui.QTreeWidgetItem([str(msg["ID"]), msg["Text"]])
+      self.treeWidget.addTopLevelItem(item)
+
+    QtCore.QObject.connect(self.treeWidget, QtCore.SIGNAL("currentItemChanged (QTreeWidgetItem *,QTreeWidgetItem *)"), self.treeItemChanged)
+
+  def treeItemChanged(self, current, previous):
+    msg = self.langFile.getMsg(int(current.text(0)))
+    self.destEdit.setText(msg["Text"])
+    self.destAnnotEdit.setText(msg["Annot"])
+
 class MsgIDItem(QtGui.QTreeWidgetItem):
   def __init__(self, parent, text):
     QtGui.QTreeWidgetItem.__init__(self, parent, [text])
 
 class LangFileItem(QtGui.QTreeWidgetItem):
-  def __init__(self, parent, text):
-    QtGui.QTreeWidgetItem.__init__(self, parent, [text])
+  def __init__(self, parent, langFile):
+    QtGui.QTreeWidgetItem.__init__(self, parent, [langFile.langCode])
+    self.langFile = langFile
+    self.msgForm = MsgForm(langFile)
+
+class ProjectItem(QtGui.QTreeWidgetItem):
+  def __init__(self, text):
+    QtGui.QTreeWidgetItem.__init__(self, [text])
 
 class ProjectTree(QtGui.QTreeWidget):
   def __init__(self, parent):
@@ -188,11 +213,11 @@
   def setProject(self, project):
     self.project = project
 
-    self.topItem = QtGui.QTreeWidgetItem([self.project.name])
+    self.topItem = ProjectItem(self.project.name)
     self.addTopLevelItem(self.topItem)
 
     for langFile in self.project.langFiles:
-      langFileItem = LangFileItem(self.topItem, langFile.langCode)
+      langFileItem = LangFileItem(self.topItem, langFile)
 
     self.msgIDsItem = QtGui.QTreeWidgetItem(self.topItem, ["Message IDs"])
     for msgID in self.project.msgIDs: