# HG changeset patch # User Aziz K?ksal # Date 1194620766 -3600 # Node ID 773ddddb583d6b807e0e116bd95b0c600c184c6a # Parent 70fdd0701a77360a26a5b8c6de6505b90cda48b1 Translator: made central widget a QTabWidget. ProjectTree emits signals for keys enter and delete. diff -r 70fdd0701a77 -r 773ddddb583d trunk/src/translator/make_ui.sh --- /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 diff -r 70fdd0701a77 -r 773ddddb583d trunk/src/translator/msg_form.ui --- 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 @@ - - QFrame::StyledPanel - Qt::Vertical diff -r 70fdd0701a77 -r 773ddddb583d trunk/src/translator/translator.py --- 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 diff -r 70fdd0701a77 -r 773ddddb583d trunk/src/translator/ui_msg_form.py --- 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")