changeset 476:773ddddb583d

Translator: made central widget a QTabWidget. ProjectTree emits signals for keys enter and delete.
author Aziz K?ksal <aziz.koeksal@gmail.com>
date Fri, 09 Nov 2007 16:06:06 +0100
parents 70fdd0701a77
children 3b5421d40f9b
files trunk/src/translator/make_ui.sh trunk/src/translator/msg_form.ui trunk/src/translator/translator.py trunk/src/translator/ui_msg_form.py
diffstat 4 files changed, 39 insertions(+), 22 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/trunk/src/translator/make_ui.sh	Fri Nov 09 16:06:06 2007 +0100
@@ -0,0 +1,5 @@
+#!/bin/bash
+
+ui_file=$1
+echo $ui_file \> ui_`basename $ui_file .ui`.py
+pyuic4 $ui_file > ui_`basename $ui_file .ui`.py
--- a/trunk/src/translator/msg_form.ui	Thu Nov 08 21:22:40 2007 +0100
+++ b/trunk/src/translator/msg_form.ui	Fri Nov 09 16:06:06 2007 +0100
@@ -15,9 +15,6 @@
   <layout class="QVBoxLayout" >
    <item>
     <widget class="QSplitter" name="splitter" >
-     <property name="frameShape" >
-      <enum>QFrame::StyledPanel</enum>
-     </property>
      <property name="orientation" >
       <enum>Qt::Vertical</enum>
      </property>
--- a/trunk/src/translator/translator.py	Thu Nov 08 21:22:40 2007 +0100
+++ b/trunk/src/translator/translator.py	Fri Nov 09 16:06:06 2007 +0100
@@ -22,13 +22,12 @@
 g_settingsFile = os.path.join(g_scriptDir, "settings.yaml")
 g_settings = {}
 
-def QStackedWidgetClear(self):
-  widgets = [self.widget(i) for i in range(0, self.count())]
-  while self.currentWidget():
-    self.removeWidget(self.currentWidget())
-  [widget.close() for widget in widgets]
-
-QtGui.QStackedWidget.clear = QStackedWidgetClear
+def QTabWidgetCloseAll(self):
+ for i in range(0, self.count()):
+   widget = self.widget(0)
+   self.removeTab(0)
+   widget.close()
+QtGui.QTabWidget.closeAll = QTabWidgetCloseAll
 
 class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
   def __init__(self):
@@ -37,11 +36,11 @@
 
     self.project = None
     # Modifications
-    self.pages = QtGui.QStackedWidget()
+    self.pages = QtGui.QTabWidget()
     self.setCentralWidget(self.pages)
     self.disableMenuItems()
     self.projectDock = QtGui.QDockWidget("Project", self)
-    self.projectTree = ProjectTree(self)
+    self.projectTree = ProjectTree(self.projectDock)
     self.projectDock.setWidget(self.projectTree)
     self.addDockWidget(QtCore.Qt.LeftDockWidgetArea, self.projectDock)
     # Custom connections
@@ -52,7 +51,9 @@
     QtCore.QObject.connect(self.action_Properties, QtCore.SIGNAL("triggered()"), self.showProjectProperties)
     QtCore.QObject.connect(self.action_Add_Catalogue, QtCore.SIGNAL("triggered()"), self.addCatalogue)
     QtCore.QObject.connect(self.action_Add_New_Catalogue, QtCore.SIGNAL("triggered()"), self.addNewCatalogue)
-    QtCore.QObject.connect(self.projectTree, QtCore.SIGNAL("currentItemChanged (QTreeWidgetItem *,QTreeWidgetItem *)"), self.projectTreeItemChanged)
+    QtCore.QObject.connect(self.projectTree, QtCore.SIGNAL("itemDoubleClicked(QTreeWidgetItem*,int)"), self.projectTreeItemDblClicked)
+    QtCore.QObject.connect(self.projectTree, QtCore.SIGNAL("onKeyEnter"), self.projectTreeItemActivated)
+    QtCore.QObject.connect(self.projectTree, QtCore.SIGNAL("onKeyDelete"), self.projectTreeItemDeleted)
 
     self.readSettings()
 
@@ -116,7 +117,7 @@
     self.project = None
     self.disableMenuItems()
     self.projectTree.clear()
-    self.pages.clear()
+    self.pages.closeAll()
     return True
 
   def enableMenuItems(self):
@@ -127,16 +128,22 @@
     self.action_Close_Project.setEnabled(False)
     self.menubar.removeAction(self.menu_Project.menuAction())
 
-  def projectTreeItemChanged(self, current, previous):
-    if current == None:
+  def projectTreeItemDblClicked(self, item, int):
+    self.projectTreeItemActivated(item)
+
+  def projectTreeItemActivated(self, item):
+    if item == None:
       return
 
-    if isinstance(current, LangFileItem):
-      index = self.pages.indexOf(current.msgForm)
+    if isinstance(item, LangFileItem):
+      index = self.pages.indexOf(item.msgForm)
       if index == -1:
-        index = self.pages.addWidget(current.msgForm)
+        index = self.pages.addTab(item.msgForm, item.text(0))
       self.pages.setCurrentIndex(index)
-      current.msgForm.updateData()
+      item.msgForm.updateData()
+
+  def projectTreeItemDeleted(self, item):
+    pass
 
   def closeEvent(self, event):
     if self.closeProject() == False:
@@ -198,6 +205,7 @@
   def __init__(self, langFile):
     QtGui.QWidget.__init__(self)
     self.setupUi(self)
+    self.vboxlayout.setMargin(0)
 
     self.langFile = langFile
     self.currentItem = None
@@ -321,6 +329,14 @@
     self.msgIDsItem = None
     self.headerItem().setHidden(True)
 
+  def keyReleaseEvent(self, event):
+    Qt = QtCore.Qt
+    key = event.key()
+    if key in [Qt.Key_Enter, Qt.Key_Return]:
+      self.emit(QtCore.SIGNAL("onKeyEnter"), self.currentItem())
+    elif key == Qt.Key_Delete:
+      self.emit(QtCore.SIGNAL("onKeyDelete"), self.currentItem())
+
   def setProject(self, project):
     self.project = project
 
--- a/trunk/src/translator/ui_msg_form.py	Thu Nov 08 21:22:40 2007 +0100
+++ b/trunk/src/translator/ui_msg_form.py	Fri Nov 09 16:06:06 2007 +0100
@@ -2,7 +2,7 @@
 
 # Form implementation generated from reading ui file 'msg_form.ui'
 #
-# Created: Tue Nov  6 12:15:01 2007
+# Created: Fri Nov  9 15:38:32 2007
 #      by: PyQt4 UI code generator 4.1
 #
 # WARNING! All changes made in this file will be lost!
@@ -19,7 +19,6 @@
         self.vboxlayout.setObjectName("vboxlayout")
 
         self.splitter = QtGui.QSplitter(MsgForm)
-        self.splitter.setFrameShape(QtGui.QFrame.StyledPanel)
         self.splitter.setOrientation(QtCore.Qt.Vertical)
         self.splitter.setObjectName("splitter")