annotate trunk/src/translator/translator.py @ 479:044b5393f8bc

Translator: added ClosingProjectDialog.
author Aziz K?ksal <aziz.koeksal@gmail.com>
date Mon, 12 Nov 2007 17:18:30 +0100
parents 3b5421d40f9b
children 04adc4e3fdda
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
437
7ac9f94ca7ff Translator: added NewProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 436
diff changeset
1 #! /usr/bin/python
435
156d6301d79e Added PyQt4 application for creating and managing translations.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
2 # -*- coding: utf-8 -*-
156d6301d79e Added PyQt4 application for creating and managing translations.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
3 # Author: Aziz Köksal
156d6301d79e Added PyQt4 application for creating and managing translations.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
4 # License: GPL2
437
7ac9f94ca7ff Translator: added NewProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 436
diff changeset
5 import sys, os
7ac9f94ca7ff Translator: added NewProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 436
diff changeset
6 import yaml
438
2c177053cd15 Translator: added modules langfile and project.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 437
diff changeset
7
435
156d6301d79e Added PyQt4 application for creating and managing translations.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
8 from PyQt4 import QtCore, QtGui
437
7ac9f94ca7ff Translator: added NewProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 436
diff changeset
9 # User interface modules
435
156d6301d79e Added PyQt4 application for creating and managing translations.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
10 from ui_translator import Ui_MainWindow
436
0dba4c0e5234 Added AboutDialog to translator.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 435
diff changeset
11 from ui_about import Ui_AboutDialog
437
7ac9f94ca7ff Translator: added NewProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 436
diff changeset
12 from ui_new_project import Ui_NewProjectDialog
442
5968e273449b Translator: added new modules; made fixes and many additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 439
diff changeset
13 from ui_project_properties import Ui_ProjectProperties
460
77c17bbe9d20 Translator: added new modules; applied fixes.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 442
diff changeset
14 from ui_msg_form import Ui_MsgForm
479
044b5393f8bc Translator: added ClosingProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 477
diff changeset
15 from ui_closing_project import Ui_ClosingProjectDialog
437
7ac9f94ca7ff Translator: added NewProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 436
diff changeset
16
460
77c17bbe9d20 Translator: added new modules; applied fixes.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 442
diff changeset
17 from project import Project, newProjectData
438
2c177053cd15 Translator: added modules langfile and project.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 437
diff changeset
18
437
7ac9f94ca7ff Translator: added NewProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 436
diff changeset
19 g_scriptDir = sys.path[0]
7ac9f94ca7ff Translator: added NewProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 436
diff changeset
20 g_CWD = os.getcwd()
442
5968e273449b Translator: added new modules; made fixes and many additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 439
diff changeset
21 g_projectExt = ".tproj"
460
77c17bbe9d20 Translator: added new modules; applied fixes.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 442
diff changeset
22 g_catExt = ".cat"
437
7ac9f94ca7ff Translator: added NewProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 436
diff changeset
23 g_settingsFile = os.path.join(g_scriptDir, "settings.yaml")
7ac9f94ca7ff Translator: added NewProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 436
diff changeset
24 g_settings = {}
436
0dba4c0e5234 Added AboutDialog to translator.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 435
diff changeset
25
477
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
26 Qt = QtCore.Qt
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
27 Qt.connect = QtCore.QObject.connect
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
28 Qt.disconnect = QtCore.QObject.disconnect
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
29 Qt.SIGNAL = QtCore.SIGNAL
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
30 Qt.SLOT = QtCore.SLOT
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
31
476
773ddddb583d Translator: made central widget a QTabWidget.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 475
diff changeset
32 def QTabWidgetCloseAll(self):
479
044b5393f8bc Translator: added ClosingProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 477
diff changeset
33 for i in range(self.count()-1,-1,-1):
044b5393f8bc Translator: added ClosingProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 477
diff changeset
34 widget = self.widget(i)
044b5393f8bc Translator: added ClosingProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 477
diff changeset
35 self.removeTab(i)
476
773ddddb583d Translator: made central widget a QTabWidget.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 475
diff changeset
36 widget.close()
773ddddb583d Translator: made central widget a QTabWidget.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 475
diff changeset
37 QtGui.QTabWidget.closeAll = QTabWidgetCloseAll
475
70fdd0701a77 Translator: messages can be edited now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 472
diff changeset
38
436
0dba4c0e5234 Added AboutDialog to translator.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 435
diff changeset
39 class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
0dba4c0e5234 Added AboutDialog to translator.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 435
diff changeset
40 def __init__(self):
0dba4c0e5234 Added AboutDialog to translator.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 435
diff changeset
41 QtGui.QMainWindow.__init__(self)
0dba4c0e5234 Added AboutDialog to translator.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 435
diff changeset
42 self.setupUi(self)
0dba4c0e5234 Added AboutDialog to translator.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 435
diff changeset
43
442
5968e273449b Translator: added new modules; made fixes and many additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 439
diff changeset
44 self.project = None
436
0dba4c0e5234 Added AboutDialog to translator.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 435
diff changeset
45 # Modifications
476
773ddddb583d Translator: made central widget a QTabWidget.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 475
diff changeset
46 self.pages = QtGui.QTabWidget()
471
b6fa41e6f0b4 Translator: implemented some functionality of MsgForm.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 460
diff changeset
47 self.setCentralWidget(self.pages)
442
5968e273449b Translator: added new modules; made fixes and many additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 439
diff changeset
48 self.disableMenuItems()
460
77c17bbe9d20 Translator: added new modules; applied fixes.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 442
diff changeset
49 self.projectDock = QtGui.QDockWidget("Project", self)
476
773ddddb583d Translator: made central widget a QTabWidget.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 475
diff changeset
50 self.projectTree = ProjectTree(self.projectDock)
460
77c17bbe9d20 Translator: added new modules; applied fixes.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 442
diff changeset
51 self.projectDock.setWidget(self.projectTree)
77c17bbe9d20 Translator: added new modules; applied fixes.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 442
diff changeset
52 self.addDockWidget(QtCore.Qt.LeftDockWidgetArea, self.projectDock)
436
0dba4c0e5234 Added AboutDialog to translator.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 435
diff changeset
53 # Custom connections
479
044b5393f8bc Translator: added ClosingProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 477
diff changeset
54 triggered = Qt.SIGNAL("triggered()")
044b5393f8bc Translator: added ClosingProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 477
diff changeset
55 Qt.connect(self.action_About, triggered, self.showAboutDialog)
044b5393f8bc Translator: added ClosingProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 477
diff changeset
56 Qt.connect(self.action_New_Project, triggered, self.createNewProject)
044b5393f8bc Translator: added ClosingProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 477
diff changeset
57 Qt.connect(self.action_Open_Project, triggered, self.openProjectAction)
044b5393f8bc Translator: added ClosingProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 477
diff changeset
58 Qt.connect(self.action_Close_Project, triggered, self.closeProjectAction)
044b5393f8bc Translator: added ClosingProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 477
diff changeset
59 Qt.connect(self.action_Save, triggered, self.saveForm)
044b5393f8bc Translator: added ClosingProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 477
diff changeset
60 Qt.connect(self.action_Save_All, triggered, self.saveAllForms)
044b5393f8bc Translator: added ClosingProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 477
diff changeset
61 Qt.connect(self.action_Close, triggered, self.closeForm)
044b5393f8bc Translator: added ClosingProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 477
diff changeset
62 Qt.connect(self.action_Close_All, triggered, self.closeAllForms)
044b5393f8bc Translator: added ClosingProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 477
diff changeset
63 Qt.connect(self.action_Properties, triggered, self.showProjectProperties)
044b5393f8bc Translator: added ClosingProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 477
diff changeset
64 Qt.connect(self.action_Add_Catalogue, triggered, self.addCatalogue)
044b5393f8bc Translator: added ClosingProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 477
diff changeset
65 Qt.connect(self.action_Add_New_Catalogue, triggered, self.addNewCatalogue)
477
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
66 Qt.connect(self.projectTree, Qt.SIGNAL("itemDoubleClicked(QTreeWidgetItem*,int)"), self.projectTreeItemDblClicked)
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
67 Qt.connect(self.projectTree, Qt.SIGNAL("onKeyEnter"), self.projectTreeItemActivated)
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
68 Qt.connect(self.projectTree, Qt.SIGNAL("onKeyDelete"), self.projectTreeItemDeleted)
436
0dba4c0e5234 Added AboutDialog to translator.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 435
diff changeset
69
437
7ac9f94ca7ff Translator: added NewProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 436
diff changeset
70 self.readSettings()
7ac9f94ca7ff Translator: added NewProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 436
diff changeset
71
7ac9f94ca7ff Translator: added NewProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 436
diff changeset
72 def showAboutDialog(self):
436
0dba4c0e5234 Added AboutDialog to translator.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 435
diff changeset
73 about = QtGui.QDialog()
0dba4c0e5234 Added AboutDialog to translator.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 435
diff changeset
74 Ui_AboutDialog().setupUi(about)
0dba4c0e5234 Added AboutDialog to translator.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 435
diff changeset
75 about.exec_()
435
156d6301d79e Added PyQt4 application for creating and managing translations.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
76
442
5968e273449b Translator: added new modules; made fixes and many additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 439
diff changeset
77 def showProjectProperties(self):
5968e273449b Translator: added new modules; made fixes and many additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 439
diff changeset
78 dialog = QtGui.QDialog()
5968e273449b Translator: added new modules; made fixes and many additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 439
diff changeset
79 Ui_ProjectProperties().setupUi(dialog)
5968e273449b Translator: added new modules; made fixes and many additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 439
diff changeset
80 dialog.exec_()
5968e273449b Translator: added new modules; made fixes and many additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 439
diff changeset
81
437
7ac9f94ca7ff Translator: added NewProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 436
diff changeset
82 def createNewProject(self):
479
044b5393f8bc Translator: added ClosingProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 477
diff changeset
83 if self.rejectClosingProject():
460
77c17bbe9d20 Translator: added new modules; applied fixes.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 442
diff changeset
84 return
77c17bbe9d20 Translator: added new modules; applied fixes.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 442
diff changeset
85 dialog = NewProjectDialog()
77c17bbe9d20 Translator: added new modules; applied fixes.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 442
diff changeset
86 code = dialog.exec_()
77c17bbe9d20 Translator: added new modules; applied fixes.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 442
diff changeset
87 if code == QtGui.QDialog.Accepted:
479
044b5393f8bc Translator: added ClosingProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 477
diff changeset
88 self.closeProject()
460
77c17bbe9d20 Translator: added new modules; applied fixes.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 442
diff changeset
89 self.openProject(str(dialog.projectFilePath.text()))
437
7ac9f94ca7ff Translator: added NewProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 436
diff changeset
90
442
5968e273449b Translator: added new modules; made fixes and many additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 439
diff changeset
91 def openProjectAction(self):
479
044b5393f8bc Translator: added ClosingProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 477
diff changeset
92 if self.rejectClosingProject():
442
5968e273449b Translator: added new modules; made fixes and many additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 439
diff changeset
93 return
5968e273449b Translator: added new modules; made fixes and many additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 439
diff changeset
94 filePath = QtGui.QFileDialog.getOpenFileName(self, "Select Project File", g_CWD, "Translator Project (*%s)" % g_projectExt);
460
77c17bbe9d20 Translator: added new modules; applied fixes.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 442
diff changeset
95 filePath = str(filePath)
442
5968e273449b Translator: added new modules; made fixes and many additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 439
diff changeset
96 if filePath:
479
044b5393f8bc Translator: added ClosingProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 477
diff changeset
97 self.closeProject()
460
77c17bbe9d20 Translator: added new modules; applied fixes.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 442
diff changeset
98 self.openProject(filePath)
442
5968e273449b Translator: added new modules; made fixes and many additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 439
diff changeset
99
5968e273449b Translator: added new modules; made fixes and many additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 439
diff changeset
100 def openProject(self, filePath):
5968e273449b Translator: added new modules; made fixes and many additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 439
diff changeset
101 from errors import LoadingError
5968e273449b Translator: added new modules; made fixes and many additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 439
diff changeset
102 try:
5968e273449b Translator: added new modules; made fixes and many additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 439
diff changeset
103 self.project = Project(filePath)
5968e273449b Translator: added new modules; made fixes and many additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 439
diff changeset
104 except LoadingError, e:
5968e273449b Translator: added new modules; made fixes and many additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 439
diff changeset
105 QtGui.QMessageBox.critical(self, "Error", u"Couldn't load project file:\n\n"+str(e))
5968e273449b Translator: added new modules; made fixes and many additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 439
diff changeset
106 return
5968e273449b Translator: added new modules; made fixes and many additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 439
diff changeset
107 self.enableMenuItems()
5968e273449b Translator: added new modules; made fixes and many additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 439
diff changeset
108 self.projectTree.setProject(self.project)
460
77c17bbe9d20 Translator: added new modules; applied fixes.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 442
diff changeset
109
479
044b5393f8bc Translator: added ClosingProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 477
diff changeset
110 def closeProjectAction(self):
044b5393f8bc Translator: added ClosingProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 477
diff changeset
111 if not self.rejectClosingProject():
044b5393f8bc Translator: added ClosingProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 477
diff changeset
112 self.closeProject()
044b5393f8bc Translator: added ClosingProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 477
diff changeset
113
460
77c17bbe9d20 Translator: added new modules; applied fixes.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 442
diff changeset
114 def addCatalogue(self):
77c17bbe9d20 Translator: added new modules; applied fixes.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 442
diff changeset
115 filePath = QtGui.QFileDialog.getOpenFileName(self, "Select Project File", g_CWD, "Catalogue (*%s)" % g_catExt);
77c17bbe9d20 Translator: added new modules; applied fixes.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 442
diff changeset
116 filePath = str(filePath)
439
cdbb2bf6dd07 Translator: applied some fixes and made some additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 438
diff changeset
117
460
77c17bbe9d20 Translator: added new modules; applied fixes.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 442
diff changeset
118 def addNewCatalogue(self):
77c17bbe9d20 Translator: added new modules; applied fixes.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 442
diff changeset
119 pass
77c17bbe9d20 Translator: added new modules; applied fixes.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 442
diff changeset
120
479
044b5393f8bc Translator: added ClosingProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 477
diff changeset
121 def rejectClosingProject(self):
442
5968e273449b Translator: added new modules; made fixes and many additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 439
diff changeset
122 if self.project == None:
5968e273449b Translator: added new modules; made fixes and many additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 439
diff changeset
123 return False
479
044b5393f8bc Translator: added ClosingProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 477
diff changeset
124
044b5393f8bc Translator: added ClosingProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 477
diff changeset
125 modifiedDocs = []
044b5393f8bc Translator: added ClosingProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 477
diff changeset
126 # Check if any open document is modified.
044b5393f8bc Translator: added ClosingProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 477
diff changeset
127 for i in range(0, self.pages.count()):
044b5393f8bc Translator: added ClosingProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 477
diff changeset
128 if self.pages.widget(i).isModified:
044b5393f8bc Translator: added ClosingProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 477
diff changeset
129 modifiedDocs += [self.pages.widget(i)]
044b5393f8bc Translator: added ClosingProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 477
diff changeset
130 # Display dialog if so.
044b5393f8bc Translator: added ClosingProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 477
diff changeset
131 if len(modifiedDocs):
044b5393f8bc Translator: added ClosingProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 477
diff changeset
132 dialog = ClosingProjectDialog(modifiedDocs)
044b5393f8bc Translator: added ClosingProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 477
diff changeset
133 code = dialog.exec_()
044b5393f8bc Translator: added ClosingProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 477
diff changeset
134 if code == dialog.Accepted:
044b5393f8bc Translator: added ClosingProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 477
diff changeset
135 for doc in dialog.getSelectedDocs():
044b5393f8bc Translator: added ClosingProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 477
diff changeset
136 self.saveDocument(doc)
044b5393f8bc Translator: added ClosingProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 477
diff changeset
137 elif code == dialog.Rejected:
044b5393f8bc Translator: added ClosingProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 477
diff changeset
138 return True
044b5393f8bc Translator: added ClosingProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 477
diff changeset
139 elif code == dialog.DiscardAll:
044b5393f8bc Translator: added ClosingProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 477
diff changeset
140 pass
044b5393f8bc Translator: added ClosingProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 477
diff changeset
141
044b5393f8bc Translator: added ClosingProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 477
diff changeset
142 return False
442
5968e273449b Translator: added new modules; made fixes and many additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 439
diff changeset
143
5968e273449b Translator: added new modules; made fixes and many additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 439
diff changeset
144 def closeProject(self):
5968e273449b Translator: added new modules; made fixes and many additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 439
diff changeset
145 if self.project == None:
479
044b5393f8bc Translator: added ClosingProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 477
diff changeset
146 return
442
5968e273449b Translator: added new modules; made fixes and many additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 439
diff changeset
147 del self.project
5968e273449b Translator: added new modules; made fixes and many additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 439
diff changeset
148 self.project = None
5968e273449b Translator: added new modules; made fixes and many additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 439
diff changeset
149 self.disableMenuItems()
460
77c17bbe9d20 Translator: added new modules; applied fixes.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 442
diff changeset
150 self.projectTree.clear()
476
773ddddb583d Translator: made central widget a QTabWidget.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 475
diff changeset
151 self.pages.closeAll()
442
5968e273449b Translator: added new modules; made fixes and many additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 439
diff changeset
152
5968e273449b Translator: added new modules; made fixes and many additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 439
diff changeset
153 def enableMenuItems(self):
477
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
154 #self.action_Close_Project.setEnabled(True)
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
155 for action in [ self.action_Save,
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
156 self.action_Save_All,
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
157 self.action_Close,
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
158 self.action_Close_All ]:
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
159 action.setEnabled(True)
442
5968e273449b Translator: added new modules; made fixes and many additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 439
diff changeset
160 self.menubar.insertMenu(self.menu_Help.menuAction(), self.menu_Project)
5968e273449b Translator: added new modules; made fixes and many additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 439
diff changeset
161
5968e273449b Translator: added new modules; made fixes and many additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 439
diff changeset
162 def disableMenuItems(self):
477
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
163 #self.action_Close_Project.setEnabled(False)
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
164 for action in [ self.action_Save,
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
165 self.action_Save_All,
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
166 self.action_Close,
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
167 self.action_Close_All ]:
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
168 action.setEnabled(False)
442
5968e273449b Translator: added new modules; made fixes and many additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 439
diff changeset
169 self.menubar.removeAction(self.menu_Project.menuAction())
439
cdbb2bf6dd07 Translator: applied some fixes and made some additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 438
diff changeset
170
476
773ddddb583d Translator: made central widget a QTabWidget.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 475
diff changeset
171 def projectTreeItemDblClicked(self, item, int):
773ddddb583d Translator: made central widget a QTabWidget.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 475
diff changeset
172 self.projectTreeItemActivated(item)
773ddddb583d Translator: made central widget a QTabWidget.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 475
diff changeset
173
773ddddb583d Translator: made central widget a QTabWidget.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 475
diff changeset
174 def projectTreeItemActivated(self, item):
773ddddb583d Translator: made central widget a QTabWidget.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 475
diff changeset
175 if item == None:
460
77c17bbe9d20 Translator: added new modules; applied fixes.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 442
diff changeset
176 return
471
b6fa41e6f0b4 Translator: implemented some functionality of MsgForm.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 460
diff changeset
177
476
773ddddb583d Translator: made central widget a QTabWidget.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 475
diff changeset
178 if isinstance(item, LangFileItem):
477
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
179 msgForm = None
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
180 if not item.isDocOpen():
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
181 msgForm = item.openDoc()
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
182 msgForm.setModifiedCallback(self.formModified)
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
183 index = self.pages.indexOf(msgForm)
471
b6fa41e6f0b4 Translator: implemented some functionality of MsgForm.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 460
diff changeset
184 if index == -1:
477
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
185 index = self.pages.addTab(msgForm, msgForm.getDocumentTitle())
471
b6fa41e6f0b4 Translator: implemented some functionality of MsgForm.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 460
diff changeset
186 self.pages.setCurrentIndex(index)
477
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
187 msgForm.updateData()
476
773ddddb583d Translator: made central widget a QTabWidget.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 475
diff changeset
188
773ddddb583d Translator: made central widget a QTabWidget.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 475
diff changeset
189 def projectTreeItemDeleted(self, item):
773ddddb583d Translator: made central widget a QTabWidget.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 475
diff changeset
190 pass
460
77c17bbe9d20 Translator: added new modules; applied fixes.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 442
diff changeset
191
477
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
192 def formModified(self, form):
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
193 # Append an asterisk to the tab label
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
194 index = self.pages.indexOf(form)
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
195 text = form.getDocumentTitle() + "*"
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
196 self.pages.setTabText(index, text)
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
197
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
198 def saveForm(self):
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
199 self.saveDocument(self.pages.currentWidget())
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
200
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
201 def saveAllForms(self):
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
202 for i in range(0, self.pages.count()):
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
203 self.saveDocument(self.pages.widget(i))
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
204
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
205 def saveDocument(self, form):
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
206 if form.isModified:
479
044b5393f8bc Translator: added ClosingProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 477
diff changeset
207 # Reset tab text.
477
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
208 index = self.pages.indexOf(form)
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
209 text = form.getDocumentTitle()
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
210 self.pages.setTabText(index, text)
479
044b5393f8bc Translator: added ClosingProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 477
diff changeset
211
477
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
212 form.save()
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
213
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
214 def closeForm(self):
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
215 if self.pages.currentWidget():
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
216 self.closeDocument(self.pages.currentWidget())
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
217
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
218 def closeAllForms(self):
479
044b5393f8bc Translator: added ClosingProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 477
diff changeset
219 for i in range(self.pages.count()-1, -1, -1):
477
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
220 self.closeDocument(self.pages.widget(i))
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
221
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
222 def closeDocument(self, form):
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
223 if form.isModified:
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
224 MB = QtGui.QMessageBox
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
225 button = MB.question(self, "Closing Document", "The document '%s' has been modified.\nDo you want to save the changes?" % form.getDocumentFullPath(), MB.Save | MB.Discard | MB.Cancel, MB.Cancel)
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
226 if button == MB.Cancel:
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
227 return False
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
228 if button == MB.Save:
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
229 self.saveDocument(form)
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
230 index = self.pages.indexOf(form)
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
231 self.pages.removeTab(index)
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
232 form.close()
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
233 return True
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
234
437
7ac9f94ca7ff Translator: added NewProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 436
diff changeset
235 def closeEvent(self, event):
479
044b5393f8bc Translator: added ClosingProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 477
diff changeset
236 if self.rejectClosingProject():
442
5968e273449b Translator: added new modules; made fixes and many additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 439
diff changeset
237 event.ignore()
5968e273449b Translator: added new modules; made fixes and many additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 439
diff changeset
238 return
437
7ac9f94ca7ff Translator: added NewProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 436
diff changeset
239 self.writeSettings()
477
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
240 # Closing application
437
7ac9f94ca7ff Translator: added NewProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 436
diff changeset
241
7ac9f94ca7ff Translator: added NewProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 436
diff changeset
242 def moveToCenterOfDesktop(self):
7ac9f94ca7ff Translator: added NewProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 436
diff changeset
243 rect = QtGui.QApplication.desktop().geometry()
7ac9f94ca7ff Translator: added NewProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 436
diff changeset
244 self.move(rect.center() - self.rect().center())
7ac9f94ca7ff Translator: added NewProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 436
diff changeset
245
7ac9f94ca7ff Translator: added NewProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 436
diff changeset
246 def readSettings(self):
7ac9f94ca7ff Translator: added NewProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 436
diff changeset
247 # Set default size
7ac9f94ca7ff Translator: added NewProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 436
diff changeset
248 self.resize(QtCore.QSize(500, 400))
438
2c177053cd15 Translator: added modules langfile and project.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 437
diff changeset
249 doc = {}
437
7ac9f94ca7ff Translator: added NewProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 436
diff changeset
250 try:
7ac9f94ca7ff Translator: added NewProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 436
diff changeset
251 doc = yaml.load(open(g_settingsFile, "r"))
7ac9f94ca7ff Translator: added NewProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 436
diff changeset
252 except:
7ac9f94ca7ff Translator: added NewProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 436
diff changeset
253 self.moveToCenterOfDesktop()
7ac9f94ca7ff Translator: added NewProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 436
diff changeset
254 return
7ac9f94ca7ff Translator: added NewProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 436
diff changeset
255
438
2c177053cd15 Translator: added modules langfile and project.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 437
diff changeset
256 g_settings = doc
2c177053cd15 Translator: added modules langfile and project.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 437
diff changeset
257 if not isinstance(doc, dict):
437
7ac9f94ca7ff Translator: added NewProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 436
diff changeset
258 g_settings = {}
7ac9f94ca7ff Translator: added NewProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 436
diff changeset
259
7ac9f94ca7ff Translator: added NewProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 436
diff changeset
260 try:
7ac9f94ca7ff Translator: added NewProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 436
diff changeset
261 coord = doc["Window"]
7ac9f94ca7ff Translator: added NewProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 436
diff changeset
262 size = QtCore.QSize(coord["Size"][0], coord["Size"][1])
7ac9f94ca7ff Translator: added NewProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 436
diff changeset
263 point = QtCore.QPoint(coord["Pos"][0], coord["Pos"][1])
7ac9f94ca7ff Translator: added NewProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 436
diff changeset
264 self.resize(size)
7ac9f94ca7ff Translator: added NewProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 436
diff changeset
265 self.move(point)
7ac9f94ca7ff Translator: added NewProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 436
diff changeset
266 except:
7ac9f94ca7ff Translator: added NewProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 436
diff changeset
267 self.moveToCenterOfDesktop()
7ac9f94ca7ff Translator: added NewProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 436
diff changeset
268
7ac9f94ca7ff Translator: added NewProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 436
diff changeset
269 def writeSettings(self):
7ac9f94ca7ff Translator: added NewProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 436
diff changeset
270 # Save window coordinates
7ac9f94ca7ff Translator: added NewProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 436
diff changeset
271 g_settings["Window"] = {
7ac9f94ca7ff Translator: added NewProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 436
diff changeset
272 "Pos" : [self.pos().x(), self.pos().y()],
7ac9f94ca7ff Translator: added NewProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 436
diff changeset
273 "Size" : [self.size().width(), self.size().height()]
7ac9f94ca7ff Translator: added NewProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 436
diff changeset
274 }
7ac9f94ca7ff Translator: added NewProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 436
diff changeset
275 yaml.dump(g_settings, open(g_settingsFile, "w")) #default_flow_style=False
7ac9f94ca7ff Translator: added NewProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 436
diff changeset
276
477
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
277
475
70fdd0701a77 Translator: messages can be edited now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 472
diff changeset
278 class MessageItem(QtGui.QTreeWidgetItem):
70fdd0701a77 Translator: messages can be edited now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 472
diff changeset
279 def __init__(self, msg):
70fdd0701a77 Translator: messages can be edited now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 472
diff changeset
280 QtGui.QTreeWidgetItem.__init__(self, [str(msg["ID"]), msg["Text"]])
70fdd0701a77 Translator: messages can be edited now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 472
diff changeset
281 self.msg = msg
70fdd0701a77 Translator: messages can be edited now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 472
diff changeset
282
70fdd0701a77 Translator: messages can be edited now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 472
diff changeset
283 def getID(self):
70fdd0701a77 Translator: messages can be edited now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 472
diff changeset
284 return self.msg["ID"]
70fdd0701a77 Translator: messages can be edited now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 472
diff changeset
285
70fdd0701a77 Translator: messages can be edited now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 472
diff changeset
286 def setMsgText(self, text):
70fdd0701a77 Translator: messages can be edited now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 472
diff changeset
287 self.msg["Text"] = text
70fdd0701a77 Translator: messages can be edited now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 472
diff changeset
288
70fdd0701a77 Translator: messages can be edited now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 472
diff changeset
289 def setMsgAnnot(self, text):
70fdd0701a77 Translator: messages can be edited now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 472
diff changeset
290 self.msg["Annot"] = text
70fdd0701a77 Translator: messages can be edited now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 472
diff changeset
291
477
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
292
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
293 class Document(QtGui.QWidget):
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
294 def __init__(self):
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
295 QtGui.QWidget.__init__(self)
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
296 self.isModified = False
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
297 self.modifiedCallback = None
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
298 self.documentTitle = ""
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
299 self.documentFullPath = ""
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
300
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
301 def modified(self):
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
302 if not self.isModified:
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
303 self.isModified = True
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
304 self.modifiedCallback(self)
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
305
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
306 def setModifiedCallback(self, func):
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
307 self.modifiedCallback = func
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
308
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
309 def save(self):
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
310 self.isModified = False
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
311
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
312 def close(self):
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
313 self.emit(Qt.SIGNAL("closed()"))
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
314 QtGui.QWidget.close(self)
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
315
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
316 def getDocumentTitle(self):
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
317 return self.documentTitle
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
318
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
319 def getDocumentFullPath(self):
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
320 return self.documentFullPath
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
321
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
322 class MsgForm(Document, Ui_MsgForm):
471
b6fa41e6f0b4 Translator: implemented some functionality of MsgForm.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 460
diff changeset
323 def __init__(self, langFile):
477
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
324 Document.__init__(self)
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
325 self.documentTitle = langFile.getFileName()
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
326 self.documentFullPath = langFile.getFilePath()
460
77c17bbe9d20 Translator: added new modules; applied fixes.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 442
diff changeset
327 self.setupUi(self)
476
773ddddb583d Translator: made central widget a QTabWidget.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 475
diff changeset
328 self.vboxlayout.setMargin(0)
460
77c17bbe9d20 Translator: added new modules; applied fixes.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 442
diff changeset
329
471
b6fa41e6f0b4 Translator: implemented some functionality of MsgForm.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 460
diff changeset
330 self.langFile = langFile
475
70fdd0701a77 Translator: messages can be edited now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 472
diff changeset
331 self.currentItem = None
70fdd0701a77 Translator: messages can be edited now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 472
diff changeset
332 self.colID = 0
70fdd0701a77 Translator: messages can be edited now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 472
diff changeset
333 self.colText = 1
471
b6fa41e6f0b4 Translator: implemented some functionality of MsgForm.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 460
diff changeset
334 self.treeWidget.setColumnCount(2)
b6fa41e6f0b4 Translator: implemented some functionality of MsgForm.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 460
diff changeset
335 self.treeWidget.setHeaderLabels(["ID", "Text"])
b6fa41e6f0b4 Translator: implemented some functionality of MsgForm.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 460
diff changeset
336 for msg in self.langFile.messages:
475
70fdd0701a77 Translator: messages can be edited now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 472
diff changeset
337 self.treeWidget.addTopLevelItem(MessageItem(msg))
471
b6fa41e6f0b4 Translator: implemented some functionality of MsgForm.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 460
diff changeset
338
477
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
339 Qt.connect(self.treeWidget, Qt.SIGNAL("currentItemChanged (QTreeWidgetItem *,QTreeWidgetItem *)"), self.treeItemChanged)
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
340 Qt.connect(self.translEdit, Qt.SIGNAL("textChanged()"), self.translEditTextChanged)
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
341 Qt.connect(self.translAnnotEdit, Qt.SIGNAL("textChanged()"), self.translAnnotEditTextChanged)
475
70fdd0701a77 Translator: messages can be edited now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 472
diff changeset
342
70fdd0701a77 Translator: messages can be edited now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 472
diff changeset
343 #self.translEdit.focusOutEvent = self.translEditFocusOut
471
b6fa41e6f0b4 Translator: implemented some functionality of MsgForm.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 460
diff changeset
344
b6fa41e6f0b4 Translator: implemented some functionality of MsgForm.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 460
diff changeset
345 def treeItemChanged(self, current, previous):
472
30925590f392 Translator: implemented more functionalities of MsgForm.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 471
diff changeset
346 if current == None:
475
70fdd0701a77 Translator: messages can be edited now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 472
diff changeset
347 self.setTranslMsg("")
70fdd0701a77 Translator: messages can be edited now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 472
diff changeset
348 self.setSourceMsg("")
472
30925590f392 Translator: implemented more functionalities of MsgForm.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 471
diff changeset
349 return
475
70fdd0701a77 Translator: messages can be edited now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 472
diff changeset
350 ID = current.getID()
477
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
351 # Set the text controls.
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
352 # The slots receiving text changed signals do nothing if self.currentItem is None.
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
353 self.currentItem = None
472
30925590f392 Translator: implemented more functionalities of MsgForm.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 471
diff changeset
354 self.setTranslMsg(self.langFile.getMsg(ID))
30925590f392 Translator: implemented more functionalities of MsgForm.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 471
diff changeset
355 self.setSourceMsg(self.langFile.source.getMsg(ID))
477
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
356 self.currentItem = current
472
30925590f392 Translator: implemented more functionalities of MsgForm.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 471
diff changeset
357
30925590f392 Translator: implemented more functionalities of MsgForm.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 471
diff changeset
358 def setTranslMsg(self, msg):
30925590f392 Translator: implemented more functionalities of MsgForm.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 471
diff changeset
359 self.translEdit.setText(msg["Text"])
30925590f392 Translator: implemented more functionalities of MsgForm.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 471
diff changeset
360 self.translAnnotEdit.setText(msg["Annot"])
30925590f392 Translator: implemented more functionalities of MsgForm.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 471
diff changeset
361
30925590f392 Translator: implemented more functionalities of MsgForm.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 471
diff changeset
362 def setSourceMsg(self, msg):
30925590f392 Translator: implemented more functionalities of MsgForm.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 471
diff changeset
363 self.sourceEdit.setText(msg["Text"])
30925590f392 Translator: implemented more functionalities of MsgForm.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 471
diff changeset
364 self.sourceAnnotEdit.setText(msg["Annot"])
30925590f392 Translator: implemented more functionalities of MsgForm.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 471
diff changeset
365
475
70fdd0701a77 Translator: messages can be edited now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 472
diff changeset
366 #def translEditFocusOut(self, event):
70fdd0701a77 Translator: messages can be edited now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 472
diff changeset
367 #if self.currentItem:
70fdd0701a77 Translator: messages can be edited now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 472
diff changeset
368 #print self.currentItem.text(self.colText)
70fdd0701a77 Translator: messages can be edited now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 472
diff changeset
369 #if self.translEdit.document().isModified():
70fdd0701a77 Translator: messages can be edited now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 472
diff changeset
370 #self.translEdit.document().setModified(False)
70fdd0701a77 Translator: messages can be edited now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 472
diff changeset
371 #print "translEdit was modified"
70fdd0701a77 Translator: messages can be edited now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 472
diff changeset
372 #QtGui.QTextEdit.focusOutEvent(self.translEdit, event)
70fdd0701a77 Translator: messages can be edited now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 472
diff changeset
373
70fdd0701a77 Translator: messages can be edited now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 472
diff changeset
374 def translEditTextChanged(self):
70fdd0701a77 Translator: messages can be edited now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 472
diff changeset
375 if self.currentItem:
477
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
376 text = unicode(self.translEdit.toPlainText())
475
70fdd0701a77 Translator: messages can be edited now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 472
diff changeset
377 self.currentItem.setText(self.colText, text)
70fdd0701a77 Translator: messages can be edited now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 472
diff changeset
378 self.currentItem.setMsgText(text)
477
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
379 self.modified()
475
70fdd0701a77 Translator: messages can be edited now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 472
diff changeset
380
70fdd0701a77 Translator: messages can be edited now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 472
diff changeset
381 def translAnnotEditTextChanged(self):
70fdd0701a77 Translator: messages can be edited now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 472
diff changeset
382 if self.currentItem:
477
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
383 text = unicode(self.translAnnotEdit.toPlainText())
475
70fdd0701a77 Translator: messages can be edited now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 472
diff changeset
384 self.currentItem.setMsgAnnot(text)
477
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
385 self.modified()
475
70fdd0701a77 Translator: messages can be edited now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 472
diff changeset
386
70fdd0701a77 Translator: messages can be edited now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 472
diff changeset
387 def updateData(self):
70fdd0701a77 Translator: messages can be edited now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 472
diff changeset
388 if self.currentItem == None:
70fdd0701a77 Translator: messages can be edited now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 472
diff changeset
389 return
70fdd0701a77 Translator: messages can be edited now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 472
diff changeset
390 ID = self.currentItem.getID()
70fdd0701a77 Translator: messages can be edited now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 472
diff changeset
391 msg = self.langFile.source.getMsg(ID)
70fdd0701a77 Translator: messages can be edited now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 472
diff changeset
392 text = self.sourceEdit.toPlainText()
70fdd0701a77 Translator: messages can be edited now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 472
diff changeset
393 if text != msg["Text"]:
70fdd0701a77 Translator: messages can be edited now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 472
diff changeset
394 self.sourceEdit.setText(msg["Text"])
70fdd0701a77 Translator: messages can be edited now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 472
diff changeset
395 text = self.sourceAnnotEdit.toPlainText()
70fdd0701a77 Translator: messages can be edited now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 472
diff changeset
396 if text != msg["Annot"]:
70fdd0701a77 Translator: messages can be edited now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 472
diff changeset
397 self.sourceAnnotEdit.setText(msg["Annot"])
70fdd0701a77 Translator: messages can be edited now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 472
diff changeset
398
477
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
399 def save(self):
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
400 Document.save(self)
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
401 self.langFile.save()
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
402
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
403
472
30925590f392 Translator: implemented more functionalities of MsgForm.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 471
diff changeset
404 class MsgFormSource(MsgForm):
30925590f392 Translator: implemented more functionalities of MsgForm.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 471
diff changeset
405 def __init__(self, langFile):
30925590f392 Translator: implemented more functionalities of MsgForm.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 471
diff changeset
406 MsgForm.__init__(self, langFile)
30925590f392 Translator: implemented more functionalities of MsgForm.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 471
diff changeset
407
30925590f392 Translator: implemented more functionalities of MsgForm.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 471
diff changeset
408 for x in [self.translEdit,
30925590f392 Translator: implemented more functionalities of MsgForm.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 471
diff changeset
409 self.translAnnotEdit,
30925590f392 Translator: implemented more functionalities of MsgForm.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 471
diff changeset
410 self.label_4,
30925590f392 Translator: implemented more functionalities of MsgForm.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 471
diff changeset
411 self.label_5]:
30925590f392 Translator: implemented more functionalities of MsgForm.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 471
diff changeset
412 x.close()
30925590f392 Translator: implemented more functionalities of MsgForm.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 471
diff changeset
413
477
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
414 Qt.connect(self.sourceEdit, Qt.SIGNAL("textChanged()"), self.sourceEditTextChanged)
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
415 Qt.connect(self.sourceAnnotEdit, Qt.SIGNAL("textChanged()"), self.sourceAnnotEditTextChanged)
475
70fdd0701a77 Translator: messages can be edited now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 472
diff changeset
416
472
30925590f392 Translator: implemented more functionalities of MsgForm.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 471
diff changeset
417 def treeItemChanged(self, current, previous):
475
70fdd0701a77 Translator: messages can be edited now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 472
diff changeset
418 if current == None:
70fdd0701a77 Translator: messages can be edited now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 472
diff changeset
419 self.setSourceMsg("")
70fdd0701a77 Translator: messages can be edited now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 472
diff changeset
420 return
70fdd0701a77 Translator: messages can be edited now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 472
diff changeset
421 ID = current.getID()
477
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
422 self.currentItem = None
472
30925590f392 Translator: implemented more functionalities of MsgForm.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 471
diff changeset
423 self.setSourceMsg(self.langFile.getMsg(ID))
477
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
424 self.currentItem = current
471
b6fa41e6f0b4 Translator: implemented some functionality of MsgForm.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 460
diff changeset
425
475
70fdd0701a77 Translator: messages can be edited now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 472
diff changeset
426 def sourceEditTextChanged(self):
70fdd0701a77 Translator: messages can be edited now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 472
diff changeset
427 if self.currentItem:
477
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
428 text = unicode(self.sourceEdit.toPlainText())
475
70fdd0701a77 Translator: messages can be edited now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 472
diff changeset
429 self.currentItem.setText(self.colText, text)
70fdd0701a77 Translator: messages can be edited now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 472
diff changeset
430 self.currentItem.setMsgText(text)
477
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
431 self.modified()
475
70fdd0701a77 Translator: messages can be edited now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 472
diff changeset
432
70fdd0701a77 Translator: messages can be edited now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 472
diff changeset
433 def sourceAnnotEditTextChanged(self):
70fdd0701a77 Translator: messages can be edited now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 472
diff changeset
434 if self.currentItem:
477
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
435 text = unicode(self.sourceAnnotEdit.toPlainText())
475
70fdd0701a77 Translator: messages can be edited now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 472
diff changeset
436 #self.currentItem.setText(self.colAnnot, text)
70fdd0701a77 Translator: messages can be edited now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 472
diff changeset
437 self.currentItem.setMsgAnnot(text)
477
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
438 self.modified()
475
70fdd0701a77 Translator: messages can be edited now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 472
diff changeset
439
70fdd0701a77 Translator: messages can be edited now.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 472
diff changeset
440
442
5968e273449b Translator: added new modules; made fixes and many additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 439
diff changeset
441 class MsgIDItem(QtGui.QTreeWidgetItem):
5968e273449b Translator: added new modules; made fixes and many additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 439
diff changeset
442 def __init__(self, parent, text):
5968e273449b Translator: added new modules; made fixes and many additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 439
diff changeset
443 QtGui.QTreeWidgetItem.__init__(self, parent, [text])
5968e273449b Translator: added new modules; made fixes and many additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 439
diff changeset
444
5968e273449b Translator: added new modules; made fixes and many additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 439
diff changeset
445 class LangFileItem(QtGui.QTreeWidgetItem):
471
b6fa41e6f0b4 Translator: implemented some functionality of MsgForm.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 460
diff changeset
446 def __init__(self, parent, langFile):
b6fa41e6f0b4 Translator: implemented some functionality of MsgForm.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 460
diff changeset
447 QtGui.QTreeWidgetItem.__init__(self, parent, [langFile.langCode])
b6fa41e6f0b4 Translator: implemented some functionality of MsgForm.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 460
diff changeset
448 self.langFile = langFile
477
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
449 self.msgForm = None
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
450
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
451 def isDocOpen(self):
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
452 return self.msgForm != None
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
453
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
454 def openDoc(self):
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
455 if self.msgForm == None:
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
456 if self.langFile.isSource:
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
457 self.msgForm = MsgFormSource(self.langFile)
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
458 else:
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
459 self.msgForm = MsgForm(self.langFile)
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
460 Qt.connect(self.msgForm, Qt.SIGNAL("closed()"), self.docClosed)
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
461 return self.msgForm
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
462
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
463 def docClosed(self):
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
464 self.msgForm = None
471
b6fa41e6f0b4 Translator: implemented some functionality of MsgForm.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 460
diff changeset
465
b6fa41e6f0b4 Translator: implemented some functionality of MsgForm.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 460
diff changeset
466 class ProjectItem(QtGui.QTreeWidgetItem):
b6fa41e6f0b4 Translator: implemented some functionality of MsgForm.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 460
diff changeset
467 def __init__(self, text):
b6fa41e6f0b4 Translator: implemented some functionality of MsgForm.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 460
diff changeset
468 QtGui.QTreeWidgetItem.__init__(self, [text])
437
7ac9f94ca7ff Translator: added NewProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 436
diff changeset
469
439
cdbb2bf6dd07 Translator: applied some fixes and made some additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 438
diff changeset
470 class ProjectTree(QtGui.QTreeWidget):
cdbb2bf6dd07 Translator: applied some fixes and made some additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 438
diff changeset
471 def __init__(self, parent):
cdbb2bf6dd07 Translator: applied some fixes and made some additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 438
diff changeset
472 QtGui.QTreeWidget.__init__(self, parent)
442
5968e273449b Translator: added new modules; made fixes and many additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 439
diff changeset
473 self.topItem = None
5968e273449b Translator: added new modules; made fixes and many additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 439
diff changeset
474 self.msgIDsItem = None
460
77c17bbe9d20 Translator: added new modules; applied fixes.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 442
diff changeset
475 self.headerItem().setHidden(True)
438
2c177053cd15 Translator: added modules langfile and project.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 437
diff changeset
476
476
773ddddb583d Translator: made central widget a QTabWidget.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 475
diff changeset
477 def keyReleaseEvent(self, event):
773ddddb583d Translator: made central widget a QTabWidget.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 475
diff changeset
478 Qt = QtCore.Qt
773ddddb583d Translator: made central widget a QTabWidget.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 475
diff changeset
479 key = event.key()
773ddddb583d Translator: made central widget a QTabWidget.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 475
diff changeset
480 if key in [Qt.Key_Enter, Qt.Key_Return]:
477
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
481 self.emit(Qt.SIGNAL("onKeyEnter"), self.currentItem())
476
773ddddb583d Translator: made central widget a QTabWidget.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 475
diff changeset
482 elif key == Qt.Key_Delete:
477
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
483 self.emit(Qt.SIGNAL("onKeyDelete"), self.currentItem())
476
773ddddb583d Translator: made central widget a QTabWidget.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 475
diff changeset
484
442
5968e273449b Translator: added new modules; made fixes and many additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 439
diff changeset
485 def setProject(self, project):
460
77c17bbe9d20 Translator: added new modules; applied fixes.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 442
diff changeset
486 self.project = project
442
5968e273449b Translator: added new modules; made fixes and many additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 439
diff changeset
487
471
b6fa41e6f0b4 Translator: implemented some functionality of MsgForm.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 460
diff changeset
488 self.topItem = ProjectItem(self.project.name)
460
77c17bbe9d20 Translator: added new modules; applied fixes.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 442
diff changeset
489 self.addTopLevelItem(self.topItem)
77c17bbe9d20 Translator: added new modules; applied fixes.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 442
diff changeset
490
77c17bbe9d20 Translator: added new modules; applied fixes.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 442
diff changeset
491 for langFile in self.project.langFiles:
471
b6fa41e6f0b4 Translator: implemented some functionality of MsgForm.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 460
diff changeset
492 langFileItem = LangFileItem(self.topItem, langFile)
442
5968e273449b Translator: added new modules; made fixes and many additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 439
diff changeset
493
460
77c17bbe9d20 Translator: added new modules; applied fixes.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 442
diff changeset
494 self.msgIDsItem = QtGui.QTreeWidgetItem(self.topItem, ["Message IDs"])
77c17bbe9d20 Translator: added new modules; applied fixes.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 442
diff changeset
495 for msgID in self.project.msgIDs:
77c17bbe9d20 Translator: added new modules; applied fixes.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 442
diff changeset
496 MsgIDItem(self.msgIDsItem, msgID["Name"])
442
5968e273449b Translator: added new modules; made fixes and many additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 439
diff changeset
497
460
77c17bbe9d20 Translator: added new modules; applied fixes.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 442
diff changeset
498 for x in [self.topItem, self.msgIDsItem]:
77c17bbe9d20 Translator: added new modules; applied fixes.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 442
diff changeset
499 x.setExpanded(True)
442
5968e273449b Translator: added new modules; made fixes and many additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 439
diff changeset
500
472
30925590f392 Translator: implemented more functionalities of MsgForm.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 471
diff changeset
501 def contextMenuEvent(self, event):
30925590f392 Translator: implemented more functionalities of MsgForm.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 471
diff changeset
502 item = self.itemAt(event.pos())
30925590f392 Translator: implemented more functionalities of MsgForm.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 471
diff changeset
503 func_map = {
30925590f392 Translator: implemented more functionalities of MsgForm.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 471
diff changeset
504 None : lambda item: None,
30925590f392 Translator: implemented more functionalities of MsgForm.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 471
diff changeset
505 QtGui.QTreeWidgetItem : lambda item: None,
30925590f392 Translator: implemented more functionalities of MsgForm.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 471
diff changeset
506 ProjectItem : self.showMenuProjectItem,
30925590f392 Translator: implemented more functionalities of MsgForm.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 471
diff changeset
507 LangFileItem : self.showMenuLangFileItem,
30925590f392 Translator: implemented more functionalities of MsgForm.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 471
diff changeset
508 MsgIDItem : self.showMenuMsgIDItem
30925590f392 Translator: implemented more functionalities of MsgForm.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 471
diff changeset
509 }
30925590f392 Translator: implemented more functionalities of MsgForm.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 471
diff changeset
510 func_map[type(item)](item)
30925590f392 Translator: implemented more functionalities of MsgForm.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 471
diff changeset
511
30925590f392 Translator: implemented more functionalities of MsgForm.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 471
diff changeset
512 def showMenuProjectItem(self, item):
30925590f392 Translator: implemented more functionalities of MsgForm.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 471
diff changeset
513 print "ProjectItem"
30925590f392 Translator: implemented more functionalities of MsgForm.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 471
diff changeset
514
30925590f392 Translator: implemented more functionalities of MsgForm.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 471
diff changeset
515 def showMenuLangFileItem(self, item):
30925590f392 Translator: implemented more functionalities of MsgForm.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 471
diff changeset
516 print "LangFileItem"
30925590f392 Translator: implemented more functionalities of MsgForm.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 471
diff changeset
517
30925590f392 Translator: implemented more functionalities of MsgForm.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 471
diff changeset
518 def showMenuMsgIDItem(self, item):
30925590f392 Translator: implemented more functionalities of MsgForm.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 471
diff changeset
519 print "MsgIDItem"
30925590f392 Translator: implemented more functionalities of MsgForm.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 471
diff changeset
520
460
77c17bbe9d20 Translator: added new modules; applied fixes.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 442
diff changeset
521 def clear(self):
77c17bbe9d20 Translator: added new modules; applied fixes.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 442
diff changeset
522 self.topItem = None
77c17bbe9d20 Translator: added new modules; applied fixes.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 442
diff changeset
523 self.msgIDsItem = None
77c17bbe9d20 Translator: added new modules; applied fixes.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 442
diff changeset
524 QtGui.QTreeWidget.clear(self)
438
2c177053cd15 Translator: added modules langfile and project.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 437
diff changeset
525
479
044b5393f8bc Translator: added ClosingProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 477
diff changeset
526
044b5393f8bc Translator: added ClosingProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 477
diff changeset
527 class ClosingProjectDialog(QtGui.QDialog, Ui_ClosingProjectDialog):
044b5393f8bc Translator: added ClosingProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 477
diff changeset
528 DiscardAll = 2
044b5393f8bc Translator: added ClosingProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 477
diff changeset
529 def __init__(self, docs):
044b5393f8bc Translator: added ClosingProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 477
diff changeset
530 QtGui.QDialog.__init__(self)
044b5393f8bc Translator: added ClosingProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 477
diff changeset
531 self.setupUi(self)
044b5393f8bc Translator: added ClosingProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 477
diff changeset
532 Qt.connect(self.button_Discard_All, Qt.SIGNAL("clicked()"), self.discardAll)
044b5393f8bc Translator: added ClosingProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 477
diff changeset
533
044b5393f8bc Translator: added ClosingProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 477
diff changeset
534 self.items = []
044b5393f8bc Translator: added ClosingProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 477
diff changeset
535 for doc in docs:
044b5393f8bc Translator: added ClosingProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 477
diff changeset
536 title = doc.getDocumentTitle()
044b5393f8bc Translator: added ClosingProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 477
diff changeset
537 path = doc.getDocumentFullPath()
044b5393f8bc Translator: added ClosingProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 477
diff changeset
538 item = QtGui.QTreeWidgetItem([title, path])
044b5393f8bc Translator: added ClosingProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 477
diff changeset
539 item.doc = doc
044b5393f8bc Translator: added ClosingProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 477
diff changeset
540 item.setFlags(item.flags()|Qt.ItemIsUserCheckable);
044b5393f8bc Translator: added ClosingProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 477
diff changeset
541 item.setCheckState(0, Qt.Checked)
044b5393f8bc Translator: added ClosingProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 477
diff changeset
542 self.items += [item]
044b5393f8bc Translator: added ClosingProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 477
diff changeset
543 self.treeWidget.addTopLevelItems(self.items)
044b5393f8bc Translator: added ClosingProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 477
diff changeset
544
044b5393f8bc Translator: added ClosingProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 477
diff changeset
545 self.button_Cancel.setFocus()
044b5393f8bc Translator: added ClosingProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 477
diff changeset
546
044b5393f8bc Translator: added ClosingProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 477
diff changeset
547 def getSelectedDocs(self):
044b5393f8bc Translator: added ClosingProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 477
diff changeset
548 return [item.doc for item in self.items if item.checkState(0)]
044b5393f8bc Translator: added ClosingProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 477
diff changeset
549
044b5393f8bc Translator: added ClosingProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 477
diff changeset
550 def discardAll(self):
044b5393f8bc Translator: added ClosingProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 477
diff changeset
551 self.done(self.DiscardAll)
044b5393f8bc Translator: added ClosingProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 477
diff changeset
552
044b5393f8bc Translator: added ClosingProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 477
diff changeset
553
437
7ac9f94ca7ff Translator: added NewProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 436
diff changeset
554 class NewProjectDialog(QtGui.QDialog, Ui_NewProjectDialog):
7ac9f94ca7ff Translator: added NewProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 436
diff changeset
555 def __init__(self):
7ac9f94ca7ff Translator: added NewProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 436
diff changeset
556 QtGui.QDialog.__init__(self)
7ac9f94ca7ff Translator: added NewProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 436
diff changeset
557 self.setupUi(self)
7ac9f94ca7ff Translator: added NewProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 436
diff changeset
558
477
3b5421d40f9b Translator: major changes and additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 476
diff changeset
559 Qt.connect(self.pickFileButton, Qt.SIGNAL("clicked()"), self.pickFilePath)
437
7ac9f94ca7ff Translator: added NewProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 436
diff changeset
560
7ac9f94ca7ff Translator: added NewProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 436
diff changeset
561 def pickFilePath(self):
442
5968e273449b Translator: added new modules; made fixes and many additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 439
diff changeset
562 filePath = QtGui.QFileDialog.getSaveFileName(self, "New Project File", g_CWD, "Translator Project (*%s)" % g_projectExt);
5968e273449b Translator: added new modules; made fixes and many additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 439
diff changeset
563 if not filePath:
5968e273449b Translator: added new modules; made fixes and many additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 439
diff changeset
564 return
437
7ac9f94ca7ff Translator: added NewProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 436
diff changeset
565 filePath = str(filePath) # Convert QString
442
5968e273449b Translator: added new modules; made fixes and many additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 439
diff changeset
566 if os.path.splitext(filePath)[1] != g_projectExt:
5968e273449b Translator: added new modules; made fixes and many additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 439
diff changeset
567 filePath += g_projectExt
437
7ac9f94ca7ff Translator: added NewProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 436
diff changeset
568 self.projectFilePath.setText(filePath)
7ac9f94ca7ff Translator: added NewProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 436
diff changeset
569
7ac9f94ca7ff Translator: added NewProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 436
diff changeset
570 def accept(self):
7ac9f94ca7ff Translator: added NewProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 436
diff changeset
571 projectName = str(self.projectName.text())
7ac9f94ca7ff Translator: added NewProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 436
diff changeset
572 filePath = str(self.projectFilePath.text())
7ac9f94ca7ff Translator: added NewProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 436
diff changeset
573
479
044b5393f8bc Translator: added ClosingProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 477
diff changeset
574 MB = QtGui.QMessageBox
437
7ac9f94ca7ff Translator: added NewProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 436
diff changeset
575 if projectName == "":
479
044b5393f8bc Translator: added ClosingProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 477
diff changeset
576 MB.warning(self, "Warning", "Please, enter a name for the project.")
437
7ac9f94ca7ff Translator: added NewProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 436
diff changeset
577 return
7ac9f94ca7ff Translator: added NewProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 436
diff changeset
578 if filePath == "":
479
044b5393f8bc Translator: added ClosingProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 477
diff changeset
579 MB.warning(self, "Warning", "Please, choose or enter a path for the project file.")
437
7ac9f94ca7ff Translator: added NewProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 436
diff changeset
580 return
7ac9f94ca7ff Translator: added NewProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 436
diff changeset
581
460
77c17bbe9d20 Translator: added new modules; applied fixes.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 442
diff changeset
582 projectData = newProjectData(projectName)
437
7ac9f94ca7ff Translator: added NewProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 436
diff changeset
583
442
5968e273449b Translator: added new modules; made fixes and many additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 439
diff changeset
584 if os.path.splitext(filePath)[1] != g_projectExt:
5968e273449b Translator: added new modules; made fixes and many additions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 439
diff changeset
585 filePath += g_projectExt
437
7ac9f94ca7ff Translator: added NewProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 436
diff changeset
586
7ac9f94ca7ff Translator: added NewProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 436
diff changeset
587 try:
7ac9f94ca7ff Translator: added NewProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 436
diff changeset
588 yaml.dump(projectData, open(filePath, "w"), default_flow_style=False)
7ac9f94ca7ff Translator: added NewProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 436
diff changeset
589 except Exception, e:
479
044b5393f8bc Translator: added ClosingProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 477
diff changeset
590 MB.critical(self, "Error", str(e))
437
7ac9f94ca7ff Translator: added NewProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 436
diff changeset
591 return
7ac9f94ca7ff Translator: added NewProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 436
diff changeset
592
7ac9f94ca7ff Translator: added NewProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 436
diff changeset
593 # Accept and close dialog.
7ac9f94ca7ff Translator: added NewProjectDialog.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 436
diff changeset
594 QtGui.QDialog.accept(self)
435
156d6301d79e Added PyQt4 application for creating and managing translations.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
595
156d6301d79e Added PyQt4 application for creating and managing translations.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
596 if __name__ == "__main__":
436
0dba4c0e5234 Added AboutDialog to translator.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 435
diff changeset
597 app = QtGui.QApplication(sys.argv)
0dba4c0e5234 Added AboutDialog to translator.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 435
diff changeset
598 main = MainWindow()
0dba4c0e5234 Added AboutDialog to translator.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 435
diff changeset
599 main.show()
0dba4c0e5234 Added AboutDialog to translator.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 435
diff changeset
600 sys.exit(app.exec_())