E5XML/TasksWriter.py

Mon, 26 Dec 2011 19:32:02 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Mon, 26 Dec 2011 19:32:02 +0100
branch
5_1_x
changeset 1510
e75ecf2bd9dd
parent 962
88b386d26b74
permissions
-rw-r--r--

Updated copyright for 2012.

0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
1510
e75ecf2bd9dd Updated copyright for 2012.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 962
diff changeset
3 # Copyright (c) 2005 - 2012 Detlev Offenbach <detlev@die-offenbachs.de>
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7 Module implementing the writer class for writing an XML tasks file.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
10 import time
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
11
55
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 53
diff changeset
12 from E5Gui.E5Application import e5App
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
13
583
08bc660d6a15 Migrated the tasks writer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 412
diff changeset
14 from .XMLStreamWriterBase import XMLStreamWriterBase
962
88b386d26b74 Added capability to read/write tasks file of eric 5.2 line of development.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
15 from .Config import tasksFileFormatVersion, tasksFileFormatVersionAlternative
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
16
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
17 import Preferences
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
18 import Utilities
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
19
583
08bc660d6a15 Migrated the tasks writer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 412
diff changeset
20 class TasksWriter(XMLStreamWriterBase):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
21 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
22 Class implementing the writer class for writing an XML tasks file.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
23 """
583
08bc660d6a15 Migrated the tasks writer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 412
diff changeset
24 def __init__(self, device, forProject = False, projectName = ""):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
25 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
26 Constructor
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
27
583
08bc660d6a15 Migrated the tasks writer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 412
diff changeset
28 @param device reference to the I/O device to write to (QIODevice)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
29 @param forProject flag indicating project related mode (boolean)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
30 @param projectName name of the project (string)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
31 """
583
08bc660d6a15 Migrated the tasks writer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 412
diff changeset
32 XMLStreamWriterBase.__init__(self, device)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
33
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
34 self.name = projectName
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
35 self.forProject = forProject
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
36
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
37 def writeXML(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
38 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
39 Public method to write the XML to the file.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
40 """
962
88b386d26b74 Added capability to read/write tasks file of eric 5.2 line of development.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
41 viewer = e5App().getObject("TaskViewer")
88b386d26b74 Added capability to read/write tasks file of eric 5.2 line of development.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
42
583
08bc660d6a15 Migrated the tasks writer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 412
diff changeset
43 XMLStreamWriterBase.writeXML(self)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
44
962
88b386d26b74 Added capability to read/write tasks file of eric 5.2 line of development.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
45 formatVersion = tasksFileFormatVersion
88b386d26b74 Added capability to read/write tasks file of eric 5.2 line of development.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
46 if self.forProject and viewer.projectTasksScanFilter is not None:
88b386d26b74 Added capability to read/write tasks file of eric 5.2 line of development.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
47 formatVersion = tasksFileFormatVersionAlternative
583
08bc660d6a15 Migrated the tasks writer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 412
diff changeset
48 self.writeDTD('<!DOCTYPE Tasks SYSTEM "Tasks-{0}.dtd">'.format(
962
88b386d26b74 Added capability to read/write tasks file of eric 5.2 line of development.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
49 formatVersion))
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
50
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
51 # add some generation comments
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
52 if self.forProject:
583
08bc660d6a15 Migrated the tasks writer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 412
diff changeset
53 self.writeComment(" eric5 tasks file for project {0} ".format(self.name))
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
54 if Preferences.getProject("XMLTimestamp"):
583
08bc660d6a15 Migrated the tasks writer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 412
diff changeset
55 self.writeComment(" Saved: {0} ".format(
412
569efd7f2716 Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 96
diff changeset
56 time.strftime('%Y-%m-%d, %H:%M:%S')))
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
57 else:
583
08bc660d6a15 Migrated the tasks writer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 412
diff changeset
58 self.writeComment(" eric5 tasks file ")
08bc660d6a15 Migrated the tasks writer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 412
diff changeset
59 self.writeComment(" Saved: {0} ".format(time.strftime('%Y-%m-%d, %H:%M:%S')))
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
60
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
61 # add the main tag
583
08bc660d6a15 Migrated the tasks writer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 412
diff changeset
62 self.writeStartElement("Tasks")
08bc660d6a15 Migrated the tasks writer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 412
diff changeset
63 self.writeAttribute("version", tasksFileFormatVersion)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
64
962
88b386d26b74 Added capability to read/write tasks file of eric 5.2 line of development.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
65 # write the project scan filter
88b386d26b74 Added capability to read/write tasks file of eric 5.2 line of development.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
66 if self.forProject and viewer.projectTasksScanFilter is not None:
88b386d26b74 Added capability to read/write tasks file of eric 5.2 line of development.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
67 self.writeTextElement("ProjectScanFilter",
88b386d26b74 Added capability to read/write tasks file of eric 5.2 line of development.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
68 e5App().getObject("TaskViewer").projectTasksScanFilter.strip())
88b386d26b74 Added capability to read/write tasks file of eric 5.2 line of development.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
69
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
70 # do the tasks
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
71 if self.forProject:
962
88b386d26b74 Added capability to read/write tasks file of eric 5.2 line of development.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
72 tasks = viewer.getProjectTasks()
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
73 else:
962
88b386d26b74 Added capability to read/write tasks file of eric 5.2 line of development.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
74 tasks = viewer.getGlobalTasks()
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
75 for task in tasks:
583
08bc660d6a15 Migrated the tasks writer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 412
diff changeset
76 self.writeStartElement("Task")
08bc660d6a15 Migrated the tasks writer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 412
diff changeset
77 self.writeAttribute("priority", str(task.priority))
08bc660d6a15 Migrated the tasks writer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 412
diff changeset
78 self.writeAttribute("completed", str(task.completed))
08bc660d6a15 Migrated the tasks writer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 412
diff changeset
79 self.writeAttribute("bugfix", str(task.isBugfixTask))
08bc660d6a15 Migrated the tasks writer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 412
diff changeset
80 self.writeTextElement("Summary", task.description.strip())
08bc660d6a15 Migrated the tasks writer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 412
diff changeset
81 self.writeTextElement("Description", task.longtext.strip())
08bc660d6a15 Migrated the tasks writer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 412
diff changeset
82 self.writeTextElement("Created",
08bc660d6a15 Migrated the tasks writer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 412
diff changeset
83 time.strftime("%Y-%m-%d, %H:%M:%S", time.localtime(task.created)))
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
84 if task.filename:
583
08bc660d6a15 Migrated the tasks writer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 412
diff changeset
85 self.writeStartElement("Resource")
08bc660d6a15 Migrated the tasks writer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 412
diff changeset
86 self.writeTextElement("Filename",
08bc660d6a15 Migrated the tasks writer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 412
diff changeset
87 Utilities.fromNativeSeparators(task.filename))
08bc660d6a15 Migrated the tasks writer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 412
diff changeset
88 self.writeTextElement("Linenumber", str(task.lineno))
08bc660d6a15 Migrated the tasks writer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 412
diff changeset
89 self.writeEndElement()
08bc660d6a15 Migrated the tasks writer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 412
diff changeset
90 self.writeEndElement()
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
91
583
08bc660d6a15 Migrated the tasks writer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 412
diff changeset
92 self.writeEndElement()
08bc660d6a15 Migrated the tasks writer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 412
diff changeset
93 self.writeEndDocument()

eric ide

mercurial