187 @param filename name of a file containing the engine definition |
187 @param filename name of a file containing the engine definition |
188 (string) |
188 (string) |
189 @return flag indicating success (boolean) |
189 @return flag indicating success (boolean) |
190 """ |
190 """ |
191 file_ = QFile(filename) |
191 file_ = QFile(filename) |
192 if not file_.open(QIODevice.ReadOnly): |
192 if not file_.open(QIODevice.OpenModeFlag.ReadOnly): |
193 return False |
193 return False |
194 |
194 |
195 from .OpenSearchReader import OpenSearchReader |
195 from .OpenSearchReader import OpenSearchReader |
196 reader = OpenSearchReader() |
196 reader = OpenSearchReader() |
197 engine = reader.read(file_) |
197 engine = reader.read(file_) |
268 |
268 |
269 engineName, ok = QInputDialog.getText( |
269 engineName, ok = QInputDialog.getText( |
270 view, |
270 view, |
271 self.tr("Engine name"), |
271 self.tr("Engine name"), |
272 self.tr("Enter a name for the engine"), |
272 self.tr("Enter a name for the engine"), |
273 QLineEdit.Normal) |
273 QLineEdit.EchoMode.Normal) |
274 if not ok: |
274 if not ok: |
275 return |
275 return |
276 |
276 |
277 actionUrl.setQuery(searchUrlQuery) |
277 actionUrl.setQuery(searchUrlQuery) |
278 |
278 |
279 from .OpenSearchEngine import OpenSearchEngine |
279 from .OpenSearchEngine import OpenSearchEngine |
280 engine = OpenSearchEngine() |
280 engine = OpenSearchEngine() |
281 engine.setName(engineName) |
281 engine.setName(engineName) |
282 engine.setDescription(engineName) |
282 engine.setDescription(engineName) |
283 engine.setSearchUrlTemplate( |
283 engine.setSearchUrlTemplate( |
284 actionUrl.toDisplayString(QUrl.FullyDecoded)) |
284 actionUrl.toDisplayString( |
|
285 QUrl.ComponentFormattingOption.FullyDecoded)) |
285 engine.setImage(view.icon().pixmap(16, 16).toImage()) |
286 engine.setImage(view.icon().pixmap(16, 16).toImage()) |
286 |
287 |
287 self.__addEngineByEngine(engine) |
288 self.__addEngineByEngine(engine) |
288 |
289 |
289 def removeEngine(self, name): |
290 def removeEngine(self, name): |
352 for engine in list(self.__engines.values()): |
353 for engine in list(self.__engines.values()): |
353 name = self.generateEngineFileName(engine.name()) |
354 name = self.generateEngineFileName(engine.name()) |
354 fileName = qdir.filePath(name) |
355 fileName = qdir.filePath(name) |
355 |
356 |
356 file = QFile(fileName) |
357 file = QFile(fileName) |
357 if not file.open(QIODevice.WriteOnly): |
358 if not file.open(QIODevice.OpenModeFlag.WriteOnly): |
358 continue |
359 continue |
359 |
360 |
360 writer.write(file, engine) |
361 writer.write(file, engine) |
361 |
362 |
362 def save(self): |
363 def save(self): |
430 for engineFileName in ( |
431 for engineFileName in ( |
431 QDir(defaultEnginesDirectory, "*.xml").entryList() |
432 QDir(defaultEnginesDirectory, "*.xml").entryList() |
432 ): |
433 ): |
433 engineFile = QFile(os.path.join(defaultEnginesDirectory, |
434 engineFile = QFile(os.path.join(defaultEnginesDirectory, |
434 engineFileName)) |
435 engineFileName)) |
435 if not engineFile.open(QIODevice.ReadOnly): |
436 if not engineFile.open(QIODevice.OpenModeFlag.ReadOnly): |
436 continue |
437 continue |
437 engine = reader.read(engineFile) |
438 engine = reader.read(engineFile) |
438 self.__addEngineByEngine(engine) |
439 self.__addEngineByEngine(engine) |
439 |
440 |
440 def enginesDirectory(self): |
441 def enginesDirectory(self): |
477 """ |
478 """ |
478 reply.close() |
479 reply.close() |
479 if reply in self.__replies: |
480 if reply in self.__replies: |
480 self.__replies.remove(reply) |
481 self.__replies.remove(reply) |
481 |
482 |
482 if reply.error() == QNetworkReply.NoError: |
483 if reply.error() == QNetworkReply.NetworkError.NoError: |
483 from .OpenSearchReader import OpenSearchReader |
484 from .OpenSearchReader import OpenSearchReader |
484 reader = OpenSearchReader() |
485 reader = OpenSearchReader() |
485 engine = reader.read(reply) |
486 engine = reader.read(reply) |
486 |
487 |
487 if not engine.isValid(): |
488 if not engine.isValid(): |