10 import os |
10 import os |
11 |
11 |
12 from PyQt4.QtCore import pyqtSignal, QObject, QUrl, QFile, QDir, QIODevice, QByteArray, \ |
12 from PyQt4.QtCore import pyqtSignal, QObject, QUrl, QFile, QDir, QIODevice, QByteArray, \ |
13 QBuffer |
13 QBuffer |
14 from PyQt4.QtNetwork import QNetworkRequest, QNetworkReply |
14 from PyQt4.QtNetwork import QNetworkRequest, QNetworkReply |
15 |
|
16 from .OpenSearchDefaultEngines import OpenSearchDefaultEngines |
|
17 from .OpenSearchEngine import OpenSearchEngine |
|
18 from .OpenSearchReader import OpenSearchReader |
|
19 from .OpenSearchWriter import OpenSearchWriter |
|
20 |
15 |
21 from E5Gui.E5Application import e5App |
16 from E5Gui.E5Application import e5App |
22 from E5Gui import E5MessageBox |
17 from E5Gui import E5MessageBox |
23 |
18 |
24 from Utilities.AutoSaver import AutoSaver |
19 from Utilities.AutoSaver import AutoSaver |
153 @param engine URL of the engine definition file (QUrl) or |
148 @param engine URL of the engine definition file (QUrl) or |
154 name of a file containing the engine definition (string) |
149 name of a file containing the engine definition (string) |
155 or reference to an engine object (OpenSearchEngine) |
150 or reference to an engine object (OpenSearchEngine) |
156 @return flag indicating success (boolean) |
151 @return flag indicating success (boolean) |
157 """ |
152 """ |
|
153 from .OpenSearchEngine import OpenSearchEngine |
158 if isinstance(engine, QUrl): |
154 if isinstance(engine, QUrl): |
159 return self.__addEngineByUrl(engine) |
155 return self.__addEngineByUrl(engine) |
160 elif isinstance(engine, OpenSearchEngine): |
156 elif isinstance(engine, OpenSearchEngine): |
161 return self.__addEngineByEngine(engine) |
157 return self.__addEngineByEngine(engine) |
162 else: |
158 else: |
190 """ |
186 """ |
191 file_ = QFile(filename) |
187 file_ = QFile(filename) |
192 if not file_.open(QIODevice.ReadOnly): |
188 if not file_.open(QIODevice.ReadOnly): |
193 return False |
189 return False |
194 |
190 |
|
191 from .OpenSearchReader import OpenSearchReader |
195 reader = OpenSearchReader() |
192 reader = OpenSearchReader() |
196 engine = reader.read(file_) |
193 engine = reader.read(file_) |
197 |
194 |
198 if not self.__addEngineByEngine(engine): |
195 if not self.__addEngineByEngine(engine): |
199 return False |
196 return False |
279 dir = QDir() |
276 dir = QDir() |
280 if not dir.mkpath(dirName): |
277 if not dir.mkpath(dirName): |
281 return |
278 return |
282 dir.setPath(dirName) |
279 dir.setPath(dirName) |
283 |
280 |
|
281 from .OpenSearchWriter import OpenSearchWriter |
284 writer = OpenSearchWriter() |
282 writer = OpenSearchWriter() |
285 |
283 |
286 for engine in list(self.__engines.values()): |
284 for engine in list(self.__engines.values()): |
287 name = self.generateEngineFileName(engine.name()) |
285 name = self.generateEngineFileName(engine.name()) |
288 fileName = dir.filePath(name) |
286 fileName = dir.filePath(name) |
352 |
350 |
353 def restoreDefaults(self): |
351 def restoreDefaults(self): |
354 """ |
352 """ |
355 Public method to restore the default search engines. |
353 Public method to restore the default search engines. |
356 """ |
354 """ |
|
355 from .OpenSearchDefaultEngines import OpenSearchDefaultEngines |
|
356 from .OpenSearchReader import OpenSearchReader |
|
357 |
357 reader = OpenSearchReader() |
358 reader = OpenSearchReader() |
358 for engine in OpenSearchDefaultEngines: |
359 for engine in OpenSearchDefaultEngines: |
359 engineDescription = QByteArray(OpenSearchDefaultEngines[engine]) |
360 engineDescription = QByteArray(OpenSearchDefaultEngines[engine]) |
360 buffer_ = QBuffer(engineDescription) |
361 buffer_ = QBuffer(engineDescription) |
361 if not buffer_.open(QIODevice.ReadOnly): |
362 if not buffer_.open(QIODevice.ReadOnly): |
406 reply.close() |
407 reply.close() |
407 if reply in self.__replies: |
408 if reply in self.__replies: |
408 self.__replies.remove(reply) |
409 self.__replies.remove(reply) |
409 return |
410 return |
410 |
411 |
|
412 from .OpenSearchReader import OpenSearchReader |
411 reader = OpenSearchReader() |
413 reader = OpenSearchReader() |
412 engine = reader.read(reply) |
414 engine = reader.read(reply) |
413 |
415 |
414 reply.close() |
416 reply.close() |
415 if reply in self.__replies: |
417 if reply in self.__replies: |