13 import json |
13 import json |
14 |
14 |
15 from PyQt5.QtCore import pyqtSignal, pyqtSlot, QLocale, QUrl, QByteArray, \ |
15 from PyQt5.QtCore import pyqtSignal, pyqtSlot, QLocale, QUrl, QByteArray, \ |
16 QBuffer, QIODevice, QObject, qVersion |
16 QBuffer, QIODevice, QObject, qVersion |
17 from PyQt5.QtGui import QImage |
17 from PyQt5.QtGui import QImage |
18 from PyQt5.QtNetwork import QNetworkRequest, QNetworkAccessManager |
18 from PyQt5.QtNetwork import QNetworkRequest, QNetworkAccessManager, \ |
|
19 QNetworkReply |
19 |
20 |
20 from UI.Info import Program |
21 from UI.Info import Program |
21 |
22 |
22 import Preferences |
23 import Preferences |
23 import Utilities |
24 import Utilities |
466 |
467 |
467 def __suggestionsObtained(self): |
468 def __suggestionsObtained(self): |
468 """ |
469 """ |
469 Private slot to receive the suggestions. |
470 Private slot to receive the suggestions. |
470 """ |
471 """ |
471 buffer = bytes(self.__suggestionsReply.readAll()) |
472 if self.__suggestionsReply.error() == QNetworkReply.NoError: |
472 response = Utilities.decodeBytes(buffer) |
473 buffer = bytes(self.__suggestionsReply.readAll()) |
473 response = response.strip() |
474 response = Utilities.decodeBytes(buffer) |
474 |
475 response = response.strip() |
475 self.__suggestionsReply.close() |
476 |
476 self.__suggestionsReply = None |
477 self.__suggestionsReply.close() |
477 |
478 self.__suggestionsReply.deleteLater() |
478 if len(response) == 0: |
479 self.__suggestionsReply = None |
479 return |
480 |
480 |
481 if len(response) == 0: |
481 try: |
482 return |
482 result = json.loads(response) |
483 |
483 except ValueError: |
484 try: |
484 return |
485 result = json.loads(response) |
485 |
486 except ValueError: |
486 try: |
487 return |
487 suggestions = result[1] |
488 |
488 except IndexError: |
489 try: |
489 return |
490 suggestions = result[1] |
490 |
491 except IndexError: |
491 self.suggestions.emit(suggestions) |
492 return |
|
493 |
|
494 self.suggestions.emit(suggestions) |
492 |
495 |
493 def networkAccessManager(self): |
496 def networkAccessManager(self): |
494 """ |
497 """ |
495 Public method to get a reference to the network access manager object. |
498 Public method to get a reference to the network access manager object. |
496 |
499 |