WebBrowser/SpeedDial/SpeedDialWriter.py

branch
QtWebEngine
changeset 4865
4adc526bc4b3
child 5389
9b1c800daff3
equal deleted inserted replaced
4864:00a215a67f25 4865:4adc526bc4b3
1 # -*- coding: utf-8 -*-
2
3 # Copyright (c) 2012 - 2016 Detlev Offenbach <detlev@die-offenbachs.de>
4 #
5
6 """
7 Module implementing a class to write speed dial data files.
8 """
9
10 from __future__ import unicode_literals
11
12 from PyQt5.QtCore import QXmlStreamWriter, QIODevice, QFile
13
14
15 class SpeedDialWriter(QXmlStreamWriter):
16 """
17 Class implementing a writer object to generate speed dial data files.
18 """
19 def __init__(self):
20 """
21 Constructor
22 """
23 super(SpeedDialWriter, self).__init__()
24
25 self.setAutoFormatting(True)
26
27 def write(self, fileNameOrDevice, pages, pagesPerRow, speedDialSize):
28 """
29 Public method to write a speed dial data file.
30
31 @param fileNameOrDevice name of the file to write (string)
32 or device to write to (QIODevice)
33 @param pages list of speed dial pages (list of Page)
34 @param pagesPerRow number of pages per row (integer)
35 @param speedDialSize size of the speed dial pages (integer)
36 @return flag indicating success (boolean)
37 """
38 if isinstance(fileNameOrDevice, QIODevice):
39 f = fileNameOrDevice
40 else:
41 f = QFile(fileNameOrDevice)
42 if not f.open(QFile.WriteOnly):
43 return False
44
45 self.setDevice(f)
46 return self.__write(pages, pagesPerRow, speedDialSize)
47
48 def __write(self, pages, pagesPerRow, speedDialSize):
49 """
50 Private method to write a speed dial file.
51
52 @param pages list of speed dial pages (list of Page)
53 @param pagesPerRow number of pages per row (integer)
54 @param speedDialSize size of the speed dial pages (integer)
55 @return flag indicating success (boolean)
56 """
57 self.writeStartDocument()
58 self.writeDTD("<!DOCTYPE speeddial>")
59 self.writeStartElement("SpeedDial")
60 self.writeAttribute("version", "1.0")
61
62 self.writeStartElement("Pages")
63 self.writeAttribute("row", str(pagesPerRow))
64 self.writeAttribute("size", str(speedDialSize))
65
66 for page in pages:
67 self.writeEmptyElement("Page")
68 self.writeAttribute("url", page.url)
69 self.writeAttribute("title", page.title)
70
71 self.writeEndDocument()
72 return True

eric ide

mercurial