Thu, 09 Sep 2021 19:04:53 +0200
Reworked the signal change to work with per-6.2.0 PyQt releases.
5868
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1 | # -*- coding: utf-8 -*- |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
2 | |
7923
91e843545d9a
Updated copyright for 2021.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7781
diff
changeset
|
3 | # Copyright (c) 2017 - 2021 Detlev Offenbach <detlev@die-offenbachs.de> |
5868
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
4 | # |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
5 | |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
6 | """ |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
7 | Module implementing a dialog to install spell checking dictionaries. |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
8 | """ |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
9 | |
5870
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
10 | import os |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
11 | import io |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
12 | import zipfile |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
13 | import glob |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
14 | import shutil |
8240
93b8a353c4bf
Applied some more code simplifications suggested by the new Simplify checker (Y105: use contextlib.suppress) (batch 1).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8218
diff
changeset
|
15 | import contextlib |
5870
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
16 | |
8318
962bce857696
Replaced all imports of PyQt5 to PyQt6 and started to replace code using obsoleted methods and adapt to the PyQt6 enum usage.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8312
diff
changeset
|
17 | from PyQt6.QtCore import pyqtSlot, Qt, QUrl |
962bce857696
Replaced all imports of PyQt5 to PyQt6 and started to replace code using obsoleted methods and adapt to the PyQt6 enum usage.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8312
diff
changeset
|
18 | from PyQt6.QtWidgets import ( |
7269
0c63ea7f94bd
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
19 | QDialog, QDialogButtonBox, QAbstractButton, QListWidgetItem |
0c63ea7f94bd
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
20 | ) |
8580
e91b276e0771
Re-introduced the Internet reachability checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8358
diff
changeset
|
21 | from PyQt6.QtNetwork import QNetworkRequest, QNetworkReply, QNetworkInformation |
5868
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
22 | |
8358
144a6b854f70
Sorted the eric specific extensions into packages named like the corresponding PyQt packages (i.e. EricCore,EricGui and EricWidgets).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8356
diff
changeset
|
23 | from EricWidgets import EricMessageBox |
5868
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
24 | |
5870
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
25 | from .Ui_ManageDictionariesDialog import Ui_ManageDictionariesDialog |
5868
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
26 | |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
27 | from WebBrowser.WebBrowserWindow import WebBrowserWindow |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
28 | |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
29 | import Preferences |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
30 | |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
31 | |
5870
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
32 | class ManageDictionariesDialog(QDialog, Ui_ManageDictionariesDialog): |
5868
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
33 | """ |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
34 | Class implementing a dialog to install spell checking dictionaries. |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
35 | """ |
8143
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7946
diff
changeset
|
36 | FilenameRole = Qt.ItemDataRole.UserRole |
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7946
diff
changeset
|
37 | UrlRole = Qt.ItemDataRole.UserRole + 1 |
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7946
diff
changeset
|
38 | DocumentationDirRole = Qt.ItemDataRole.UserRole + 2 |
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7946
diff
changeset
|
39 | LocalesRole = Qt.ItemDataRole.UserRole + 3 |
5868
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
40 | |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
41 | def __init__(self, writeableDirectories, parent=None): |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
42 | """ |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
43 | Constructor |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
44 | |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
45 | @param writeableDirectories list of writable directories |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
46 | @type list of str |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
47 | @param parent reference to the parent widget |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
48 | @type QWidget |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
49 | """ |
8218
7c09585bd960
Applied some more code simplifications suggested by the new Simplify checker (super(Foo, self) => super()).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8143
diff
changeset
|
50 | super().__init__(parent) |
5868
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
51 | self.setupUi(self) |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
52 | |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
53 | self.__refreshButton = self.buttonBox.addButton( |
8143
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7946
diff
changeset
|
54 | self.tr("Refresh"), QDialogButtonBox.ButtonRole.ActionRole) |
5868
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
55 | self.__installButton = self.buttonBox.addButton( |
8143
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7946
diff
changeset
|
56 | self.tr("Install Selected"), |
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7946
diff
changeset
|
57 | QDialogButtonBox.ButtonRole.ActionRole) |
5868
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
58 | self.__installButton.setEnabled(False) |
5870
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
59 | self.__uninstallButton = self.buttonBox.addButton( |
8143
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7946
diff
changeset
|
60 | self.tr("Uninstall Selected"), |
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7946
diff
changeset
|
61 | QDialogButtonBox.ButtonRole.ActionRole) |
5870
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
62 | self.__uninstallButton.setEnabled(False) |
5868
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
63 | self.__cancelButton = self.buttonBox.addButton( |
8143
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7946
diff
changeset
|
64 | self.tr("Cancel"), QDialogButtonBox.ButtonRole.ActionRole) |
5868
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
65 | self.__cancelButton.setEnabled(False) |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
66 | |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
67 | self.locationComboBox.addItems(writeableDirectories) |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
68 | |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
69 | self.dictionariesUrlEdit.setText( |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
70 | Preferences.getWebBrowser("SpellCheckDictionariesUrl")) |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
71 | |
8580
e91b276e0771
Re-introduced the Internet reachability checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8358
diff
changeset
|
72 | if ( |
e91b276e0771
Re-introduced the Internet reachability checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8358
diff
changeset
|
73 | Preferences.getUI("DynamicOnlineCheck") and |
e91b276e0771
Re-introduced the Internet reachability checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8358
diff
changeset
|
74 | QNetworkInformation.load(QNetworkInformation.Feature.Reachability) |
e91b276e0771
Re-introduced the Internet reachability checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8358
diff
changeset
|
75 | ): |
e91b276e0771
Re-introduced the Internet reachability checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8358
diff
changeset
|
76 | self.__reachabilityChanged( |
e91b276e0771
Re-introduced the Internet reachability checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8358
diff
changeset
|
77 | QNetworkInformation.instance().reachability()) |
8586
6a315398a554
Reworked the signal change to work with per-6.2.0 PyQt releases.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8585
diff
changeset
|
78 | # TODO: remove this 'contextlib' with official relelase |
6a315398a554
Reworked the signal change to work with per-6.2.0 PyQt releases.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8585
diff
changeset
|
79 | import contextlib |
6a315398a554
Reworked the signal change to work with per-6.2.0 PyQt releases.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8585
diff
changeset
|
80 | with contextlib.suppress(Exception): |
6a315398a554
Reworked the signal change to work with per-6.2.0 PyQt releases.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8585
diff
changeset
|
81 | QNetworkInformation.instance().reachabilityChanged.connect( |
6a315398a554
Reworked the signal change to work with per-6.2.0 PyQt releases.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8585
diff
changeset
|
82 | self.__reachabilityChanged) |
8580
e91b276e0771
Re-introduced the Internet reachability checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8358
diff
changeset
|
83 | else: |
e91b276e0771
Re-introduced the Internet reachability checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8358
diff
changeset
|
84 | # assume to be 'always online' if no backend could be loaded or |
e91b276e0771
Re-introduced the Internet reachability checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8358
diff
changeset
|
85 | # dynamic online check is switched of |
e91b276e0771
Re-introduced the Internet reachability checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8358
diff
changeset
|
86 | self.__reachabilityChanged(QNetworkInformation.Reachability.Online) |
5868
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
87 | self.__replies = [] |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
88 | |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
89 | self.__downloadCancelled = False |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
90 | self.__dictionariesToDownload = [] |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
91 | |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
92 | self.__populateList() |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
93 | |
8580
e91b276e0771
Re-introduced the Internet reachability checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8358
diff
changeset
|
94 | def __reachabilityChanged(self, reachability): |
e91b276e0771
Re-introduced the Internet reachability checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8358
diff
changeset
|
95 | """ |
e91b276e0771
Re-introduced the Internet reachability checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8358
diff
changeset
|
96 | Private slot handling reachability state changes. |
e91b276e0771
Re-introduced the Internet reachability checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8358
diff
changeset
|
97 | |
e91b276e0771
Re-introduced the Internet reachability checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8358
diff
changeset
|
98 | @param reachability new reachability state |
e91b276e0771
Re-introduced the Internet reachability checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8358
diff
changeset
|
99 | @type QNetworkInformation.Reachability |
e91b276e0771
Re-introduced the Internet reachability checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8358
diff
changeset
|
100 | """ |
e91b276e0771
Re-introduced the Internet reachability checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8358
diff
changeset
|
101 | online = reachability == QNetworkInformation.Reachability.Online |
e91b276e0771
Re-introduced the Internet reachability checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8358
diff
changeset
|
102 | self.__online = online |
e91b276e0771
Re-introduced the Internet reachability checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8358
diff
changeset
|
103 | |
e91b276e0771
Re-introduced the Internet reachability checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8358
diff
changeset
|
104 | self.__refreshButton.setEnabled(online) |
e91b276e0771
Re-introduced the Internet reachability checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8358
diff
changeset
|
105 | |
e91b276e0771
Re-introduced the Internet reachability checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8358
diff
changeset
|
106 | msg = ( |
e91b276e0771
Re-introduced the Internet reachability checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8358
diff
changeset
|
107 | self.tr("Internet Reachability Status: Reachable") |
e91b276e0771
Re-introduced the Internet reachability checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8358
diff
changeset
|
108 | if online else |
e91b276e0771
Re-introduced the Internet reachability checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8358
diff
changeset
|
109 | self.tr("Internet Reachability Status: Not Reachable") |
e91b276e0771
Re-introduced the Internet reachability checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8358
diff
changeset
|
110 | ) |
e91b276e0771
Re-introduced the Internet reachability checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8358
diff
changeset
|
111 | self.statusLabel.setText(msg) |
e91b276e0771
Re-introduced the Internet reachability checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8358
diff
changeset
|
112 | |
e91b276e0771
Re-introduced the Internet reachability checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8358
diff
changeset
|
113 | self.on_dictionariesList_itemSelectionChanged() |
e91b276e0771
Re-introduced the Internet reachability checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8358
diff
changeset
|
114 | |
5868
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
115 | @pyqtSlot(QAbstractButton) |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
116 | def on_buttonBox_clicked(self, button): |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
117 | """ |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
118 | Private slot to handle the click of a button of the button box. |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
119 | |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
120 | @param button reference to the button pressed |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
121 | @type QAbstractButton |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
122 | """ |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
123 | if button == self.__refreshButton: |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
124 | self.__populateList() |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
125 | elif button == self.__cancelButton: |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
126 | self.__downloadCancel() |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
127 | elif button == self.__installButton: |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
128 | self.__installSelected() |
5870
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
129 | elif button == self.__uninstallButton: |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
130 | self.__uninstallSelected() |
5868
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
131 | |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
132 | @pyqtSlot() |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
133 | def on_dictionariesList_itemSelectionChanged(self): |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
134 | """ |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
135 | Private slot to handle a change of the selection. |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
136 | """ |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
137 | self.__installButton.setEnabled( |
5870
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
138 | self.locationComboBox.count() > 0 and |
8580
e91b276e0771
Re-introduced the Internet reachability checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8358
diff
changeset
|
139 | len(self.dictionariesList.selectedItems()) > 0 and |
e91b276e0771
Re-introduced the Internet reachability checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8358
diff
changeset
|
140 | self.__online |
5870
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
141 | ) |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
142 | |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
143 | self.__uninstallButton.setEnabled( |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
144 | self.locationComboBox.count() > 0 and |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
145 | len([itm |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
146 | for itm in self.dictionariesList.selectedItems() |
8143
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7946
diff
changeset
|
147 | if itm.checkState() == Qt.CheckState.Checked |
5873
331a5ece2c32
Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5872
diff
changeset
|
148 | ]) |
5870
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
149 | ) |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
150 | |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
151 | @pyqtSlot(bool) |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
152 | def on_dictionariesUrlEditButton_toggled(self, checked): |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
153 | """ |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
154 | Private slot to set the read only status of the dictionaries URL line |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
155 | edit. |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
156 | |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
157 | @param checked state of the push button (boolean) |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
158 | """ |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
159 | self.dictionariesUrlEdit.setReadOnly(not checked) |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
160 | |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
161 | @pyqtSlot(str) |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
162 | def on_locationComboBox_currentTextChanged(self, txt): |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
163 | """ |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
164 | Private slot to handle a change of the installation location. |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
165 | |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
166 | @param txt installation location |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
167 | @type str |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
168 | """ |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
169 | self.__checkInstalledDictionaries() |
5868
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
170 | |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
171 | def __populateList(self): |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
172 | """ |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
173 | Private method to populate the list of available plugins. |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
174 | """ |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
175 | self.dictionariesList.clear() |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
176 | self.downloadProgress.setValue(0) |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
177 | |
5870
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
178 | url = self.dictionariesUrlEdit.text() |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
179 | |
8580
e91b276e0771
Re-introduced the Internet reachability checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8358
diff
changeset
|
180 | if self.__online: |
e91b276e0771
Re-introduced the Internet reachability checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8358
diff
changeset
|
181 | self.__refreshButton.setEnabled(False) |
e91b276e0771
Re-introduced the Internet reachability checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8358
diff
changeset
|
182 | self.__installButton.setEnabled(False) |
e91b276e0771
Re-introduced the Internet reachability checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8358
diff
changeset
|
183 | self.__uninstallButton.setEnabled(False) |
e91b276e0771
Re-introduced the Internet reachability checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8358
diff
changeset
|
184 | self.__cancelButton.setEnabled(True) |
e91b276e0771
Re-introduced the Internet reachability checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8358
diff
changeset
|
185 | |
e91b276e0771
Re-introduced the Internet reachability checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8358
diff
changeset
|
186 | self.statusLabel.setText(url) |
e91b276e0771
Re-introduced the Internet reachability checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8358
diff
changeset
|
187 | |
e91b276e0771
Re-introduced the Internet reachability checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8358
diff
changeset
|
188 | self.__downloadCancelled = False |
e91b276e0771
Re-introduced the Internet reachability checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8358
diff
changeset
|
189 | |
e91b276e0771
Re-introduced the Internet reachability checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8358
diff
changeset
|
190 | request = QNetworkRequest(QUrl(url)) |
e91b276e0771
Re-introduced the Internet reachability checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8358
diff
changeset
|
191 | request.setAttribute( |
e91b276e0771
Re-introduced the Internet reachability checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8358
diff
changeset
|
192 | QNetworkRequest.Attribute.CacheLoadControlAttribute, |
e91b276e0771
Re-introduced the Internet reachability checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8358
diff
changeset
|
193 | QNetworkRequest.CacheLoadControl.AlwaysNetwork) |
e91b276e0771
Re-introduced the Internet reachability checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8358
diff
changeset
|
194 | reply = WebBrowserWindow.networkManager().get(request) |
e91b276e0771
Re-introduced the Internet reachability checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8358
diff
changeset
|
195 | reply.finished.connect( |
e91b276e0771
Re-introduced the Internet reachability checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8358
diff
changeset
|
196 | lambda: self.__listFileDownloaded(reply)) |
e91b276e0771
Re-introduced the Internet reachability checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8358
diff
changeset
|
197 | reply.downloadProgress.connect(self.__downloadProgress) |
e91b276e0771
Re-introduced the Internet reachability checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8358
diff
changeset
|
198 | self.__replies.append(reply) |
e91b276e0771
Re-introduced the Internet reachability checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8358
diff
changeset
|
199 | else: |
e91b276e0771
Re-introduced the Internet reachability checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8358
diff
changeset
|
200 | EricMessageBox.warning( |
e91b276e0771
Re-introduced the Internet reachability checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8358
diff
changeset
|
201 | self, |
e91b276e0771
Re-introduced the Internet reachability checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8358
diff
changeset
|
202 | self.tr("Error populating list of dictionaries"), |
e91b276e0771
Re-introduced the Internet reachability checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8358
diff
changeset
|
203 | self.tr( |
e91b276e0771
Re-introduced the Internet reachability checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8358
diff
changeset
|
204 | """<p>Could not download the dictionaries list""" |
e91b276e0771
Re-introduced the Internet reachability checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8358
diff
changeset
|
205 | """ from {0}.</p><p>Error: {1}</p>""" |
e91b276e0771
Re-introduced the Internet reachability checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8358
diff
changeset
|
206 | ).format(url, self.tr("No connection to Internet."))) |
5868
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
207 | |
6121
d3d64f3128b3
Continued removing the use of QObject.sender().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
208 | def __listFileDownloaded(self, reply): |
5868
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
209 | """ |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
210 | Private method called, after the dictionaries list file has been |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
211 | downloaded from the Internet. |
6121
d3d64f3128b3
Continued removing the use of QObject.sender().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
212 | |
d3d64f3128b3
Continued removing the use of QObject.sender().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
213 | @param reply reference to the network reply |
d3d64f3128b3
Continued removing the use of QObject.sender().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
214 | @type QNetworkReply |
5868
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
215 | """ |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
216 | self.__refreshButton.setEnabled(True) |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
217 | self.__cancelButton.setEnabled(False) |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
218 | |
5870
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
219 | self.downloadProgress.setValue(0) |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
220 | |
5868
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
221 | if reply in self.__replies: |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
222 | self.__replies.remove(reply) |
5870
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
223 | reply.deleteLater() |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
224 | |
8143
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7946
diff
changeset
|
225 | if reply.error() != QNetworkReply.NetworkError.NoError: |
5868
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
226 | if not self.__downloadCancelled: |
8356
68ec9c3d4de5
Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8351
diff
changeset
|
227 | EricMessageBox.warning( |
5868
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
228 | self, |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
229 | self.tr("Error downloading dictionaries list"), |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
230 | self.tr( |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
231 | """<p>Could not download the dictionaries list""" |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
232 | """ from {0}.</p><p>Error: {1}</p>""" |
6469
70855c97dd09
ManageDictionariesDialog: fixed an issue referencing a non existing widget (silly copy&paste error).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6121
diff
changeset
|
233 | ).format(self.dictionariesUrlEdit.text(), |
5868
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
234 | reply.errorString()) |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
235 | ) |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
236 | self.downloadProgress.setValue(0) |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
237 | return |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
238 | |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
239 | listFileData = reply.readAll() |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
240 | |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
241 | # extract the dictionaries |
8351
7d13e08ddb3f
Removed for writing old style XML files and renamed E5XML to EricXML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8318
diff
changeset
|
242 | from EricXML.SpellCheckDictionariesReader import ( |
5868
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
243 | SpellCheckDictionariesReader |
7269
0c63ea7f94bd
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
244 | ) |
5868
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
245 | reader = SpellCheckDictionariesReader(listFileData, self.addEntry) |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
246 | reader.readXML() |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
247 | url = Preferences.getWebBrowser("SpellCheckDictionariesUrl") |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
248 | if url != self.dictionariesUrlEdit.text(): |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
249 | self.dictionariesUrlEdit.setText(url) |
8356
68ec9c3d4de5
Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8351
diff
changeset
|
250 | EricMessageBox.warning( |
5868
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
251 | self, |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
252 | self.tr("Dictionaries URL Changed"), |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
253 | self.tr( |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
254 | """The URL of the spell check dictionaries has""" |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
255 | """ changed. Select the "Refresh" button to get""" |
5870
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
256 | """ the new dictionaries list.""" |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
257 | ) |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
258 | ) |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
259 | |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
260 | if self.locationComboBox.count() == 0: |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
261 | # no writable locations available |
8356
68ec9c3d4de5
Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8351
diff
changeset
|
262 | EricMessageBox.warning( |
5870
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
263 | self, |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
264 | self.tr("Error installing dictionaries"), |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
265 | self.tr( |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
266 | """<p>None of the dictionary locations is writable by""" |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
267 | """ you. Please download required dictionaries manually""" |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
268 | """ and install them as administrator.</p>""" |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
269 | ) |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
270 | ) |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
271 | |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
272 | self.__checkInstalledDictionaries() |
5868
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
273 | |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
274 | def __downloadCancel(self): |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
275 | """ |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
276 | Private slot to cancel the current download. |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
277 | """ |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
278 | if self.__replies: |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
279 | reply = self.__replies[0] |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
280 | self.__downloadCancelled = True |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
281 | self.__dictionariesToDownload = [] |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
282 | reply.abort() |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
283 | |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
284 | def __downloadProgress(self, done, total): |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
285 | """ |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
286 | Private slot to show the download progress. |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
287 | |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
288 | @param done number of bytes downloaded so far |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
289 | @type int |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
290 | @param total total bytes to be downloaded |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
291 | @type int |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
292 | """ |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
293 | if total: |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
294 | self.downloadProgress.setMaximum(total) |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
295 | self.downloadProgress.setValue(done) |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
296 | |
5870
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
297 | def addEntry(self, short, filename, url, documentationDir, locales): |
5868
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
298 | """ |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
299 | Public method to add an entry to the list. |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
300 | |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
301 | @param short data for the description field |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
302 | @type str |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
303 | @param filename data for the filename field |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
304 | @type str |
5870
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
305 | @param url download URL for the dictionary entry |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
306 | @type str |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
307 | @param documentationDir name of the directory containing the |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
308 | dictionary documentation |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
309 | @type str |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
310 | @param locales list of locales |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
311 | @type list of str |
5868
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
312 | """ |
5870
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
313 | itm = QListWidgetItem( |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
314 | self.tr("{0} ({1})").format(short, " ".join(locales)), |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
315 | self.dictionariesList) |
8143
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7946
diff
changeset
|
316 | itm.setCheckState(Qt.CheckState.Unchecked) |
5870
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
317 | |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
318 | itm.setData(ManageDictionariesDialog.FilenameRole, filename) |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
319 | itm.setData(ManageDictionariesDialog.UrlRole, url) |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
320 | itm.setData(ManageDictionariesDialog.DocumentationDirRole, |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
321 | documentationDir) |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
322 | itm.setData(ManageDictionariesDialog.LocalesRole, locales) |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
323 | |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
324 | def __checkInstalledDictionaries(self): |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
325 | """ |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
326 | Private method to check all installed dictionaries. |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
327 | |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
328 | Note: A dictionary is assumed to be installed, if at least one of its |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
329 | binary dictionaries (*.bdic) is found in the selected dictionaries |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
330 | location. |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
331 | """ |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
332 | if self.locationComboBox.currentText(): |
5873
331a5ece2c32
Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5872
diff
changeset
|
333 | installedLocales = { |
5870
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
334 | os.path.splitext(os.path.basename(dic))[0] |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
335 | for dic in glob.glob( |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
336 | os.path.join(self.locationComboBox.currentText(), "*.bdic") |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
337 | ) |
5873
331a5ece2c32
Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5872
diff
changeset
|
338 | } |
5870
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
339 | |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
340 | for row in range(self.dictionariesList.count()): |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
341 | itm = self.dictionariesList.item(row) |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
342 | locales = set(itm.data(ManageDictionariesDialog.LocalesRole)) |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
343 | if locales.intersection(installedLocales): |
8143
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7946
diff
changeset
|
344 | itm.setCheckState(Qt.CheckState.Checked) |
5870
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
345 | else: |
8143
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7946
diff
changeset
|
346 | itm.setCheckState(Qt.CheckState.Unchecked) |
5870
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
347 | else: |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
348 | for row in range(self.dictionariesList.count()): |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
349 | itm = self.dictionariesList.item(row) |
8143
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7946
diff
changeset
|
350 | itm.setCheckState(Qt.CheckState.Unchecked) |
5868
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
351 | |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
352 | def __installSelected(self): |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
353 | """ |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
354 | Private method to install the selected dictionaries. |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
355 | """ |
8580
e91b276e0771
Re-introduced the Internet reachability checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8358
diff
changeset
|
356 | if self.__online and bool(self.locationComboBox.currentText()): |
5870
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
357 | self.__dictionariesToDownload = [ |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
358 | itm.data(ManageDictionariesDialog.UrlRole) |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
359 | for itm in self.dictionariesList.selectedItems() |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
360 | ] |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
361 | |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
362 | self.__refreshButton.setEnabled(False) |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
363 | self.__installButton.setEnabled(False) |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
364 | self.__uninstallButton.setEnabled(False) |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
365 | self.__cancelButton.setEnabled(True) |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
366 | |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
367 | self.__downloadCancelled = False |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
368 | |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
369 | self.__downloadDictionary() |
5868
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
370 | |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
371 | def __downloadDictionary(self): |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
372 | """ |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
373 | Private slot to download a dictionary. |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
374 | """ |
8580
e91b276e0771
Re-introduced the Internet reachability checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8358
diff
changeset
|
375 | if self.__online: |
e91b276e0771
Re-introduced the Internet reachability checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8358
diff
changeset
|
376 | if self.__dictionariesToDownload: |
e91b276e0771
Re-introduced the Internet reachability checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8358
diff
changeset
|
377 | url = self.__dictionariesToDownload.pop(0) |
e91b276e0771
Re-introduced the Internet reachability checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8358
diff
changeset
|
378 | self.statusLabel.setText(url) |
e91b276e0771
Re-introduced the Internet reachability checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8358
diff
changeset
|
379 | |
e91b276e0771
Re-introduced the Internet reachability checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8358
diff
changeset
|
380 | self.__downloadCancelled = False |
e91b276e0771
Re-introduced the Internet reachability checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8358
diff
changeset
|
381 | |
e91b276e0771
Re-introduced the Internet reachability checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8358
diff
changeset
|
382 | request = QNetworkRequest(QUrl(url)) |
e91b276e0771
Re-introduced the Internet reachability checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8358
diff
changeset
|
383 | request.setAttribute( |
e91b276e0771
Re-introduced the Internet reachability checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8358
diff
changeset
|
384 | QNetworkRequest.Attribute.CacheLoadControlAttribute, |
e91b276e0771
Re-introduced the Internet reachability checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8358
diff
changeset
|
385 | QNetworkRequest.CacheLoadControl.AlwaysNetwork) |
e91b276e0771
Re-introduced the Internet reachability checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8358
diff
changeset
|
386 | reply = WebBrowserWindow.networkManager().get(request) |
e91b276e0771
Re-introduced the Internet reachability checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8358
diff
changeset
|
387 | reply.finished.connect( |
e91b276e0771
Re-introduced the Internet reachability checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8358
diff
changeset
|
388 | lambda: self.__installDictionary(reply)) |
e91b276e0771
Re-introduced the Internet reachability checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8358
diff
changeset
|
389 | reply.downloadProgress.connect(self.__downloadProgress) |
e91b276e0771
Re-introduced the Internet reachability checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8358
diff
changeset
|
390 | self.__replies.append(reply) |
e91b276e0771
Re-introduced the Internet reachability checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8358
diff
changeset
|
391 | else: |
e91b276e0771
Re-introduced the Internet reachability checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8358
diff
changeset
|
392 | self.__installationFinished() |
5870
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
393 | else: |
8580
e91b276e0771
Re-introduced the Internet reachability checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8358
diff
changeset
|
394 | EricMessageBox.warning( |
e91b276e0771
Re-introduced the Internet reachability checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8358
diff
changeset
|
395 | self, |
e91b276e0771
Re-introduced the Internet reachability checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8358
diff
changeset
|
396 | self.tr("Error downloading dictionary file"), |
e91b276e0771
Re-introduced the Internet reachability checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8358
diff
changeset
|
397 | self.tr( |
e91b276e0771
Re-introduced the Internet reachability checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8358
diff
changeset
|
398 | """<p>Could not download the requested dictionary file""" |
e91b276e0771
Re-introduced the Internet reachability checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8358
diff
changeset
|
399 | """ from {0}.</p><p>Error: {1}</p>""" |
e91b276e0771
Re-introduced the Internet reachability checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8358
diff
changeset
|
400 | ).format(url, self.tr("No connection to Internet."))) |
5870
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
401 | |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
402 | self.__installationFinished() |
5868
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
403 | |
6121
d3d64f3128b3
Continued removing the use of QObject.sender().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
404 | def __installDictionary(self, reply): |
5868
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
405 | """ |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
406 | Private slot to install the downloaded dictionary. |
6121
d3d64f3128b3
Continued removing the use of QObject.sender().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
407 | |
d3d64f3128b3
Continued removing the use of QObject.sender().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
408 | @param reply reference to the network reply |
d3d64f3128b3
Continued removing the use of QObject.sender().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
409 | @type QNetworkReply |
5868
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
410 | """ |
5870
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
411 | if reply in self.__replies: |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
412 | self.__replies.remove(reply) |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
413 | reply.deleteLater() |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
414 | |
8143
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7946
diff
changeset
|
415 | if reply.error() != QNetworkReply.NetworkError.NoError: |
5870
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
416 | if not self.__downloadCancelled: |
8356
68ec9c3d4de5
Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8351
diff
changeset
|
417 | EricMessageBox.warning( |
5870
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
418 | self, |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
419 | self.tr("Error downloading dictionary file"), |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
420 | self.tr( |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
421 | """<p>Could not download the requested dictionary""" |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
422 | """ file from {0}.</p><p>Error: {1}</p>""" |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
423 | ).format(reply.url(), reply.errorString()) |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
424 | ) |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
425 | self.downloadProgress.setValue(0) |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
426 | return |
5868
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
427 | |
5870
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
428 | archiveData = reply.readAll() |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
429 | archiveFile = io.BytesIO(bytes(archiveData)) |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
430 | archive = zipfile.ZipFile(archiveFile, "r") |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
431 | if archive.testzip() is not None: |
8356
68ec9c3d4de5
Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8351
diff
changeset
|
432 | EricMessageBox.critical( |
5870
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
433 | self, |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
434 | self.tr("Error downloading dictionary"), |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
435 | self.tr( |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
436 | """<p>The downloaded dictionary archive is invalid.""" |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
437 | """ Skipping it.</p>""") |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
438 | ) |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
439 | else: |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
440 | installDir = self.locationComboBox.currentText() |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
441 | archive.extractall(installDir) |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
442 | |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
443 | if self.__dictionariesToDownload: |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
444 | self.__downloadDictionary() |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
445 | else: |
5868
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
446 | self.__installationFinished() |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
447 | |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
448 | def __installationFinished(self): |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
449 | """ |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
450 | Private method called after all selected dictionaries have been |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
451 | installed. |
c1a98c164cd3
Started implementing a downloader and installer for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
452 | """ |
5870
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
453 | self.__refreshButton.setEnabled(True) |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
454 | self.__cancelButton.setEnabled(False) |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
455 | |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
456 | self.dictionariesList.clearSelection() |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
457 | self.downloadProgress.setValue(0) |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
458 | |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
459 | self.__checkInstalledDictionaries() |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
460 | |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
461 | def __uninstallSelected(self): |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
462 | """ |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
463 | Private method to uninstall the selected dictionaries. |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
464 | """ |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
465 | installLocation = self.locationComboBox.currentText() |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
466 | if not installLocation: |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
467 | return |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
468 | |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
469 | itemsToDelete = [ |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
470 | itm |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
471 | for itm in self.dictionariesList.selectedItems() |
8143
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7946
diff
changeset
|
472 | if itm.checkState() == Qt.CheckState.Checked |
5870
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
473 | ] |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
474 | for itm in itemsToDelete: |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
475 | documentationDir = itm.data( |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
476 | ManageDictionariesDialog.DocumentationDirRole) |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
477 | shutil.rmtree(os.path.join(installLocation, documentationDir), |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
478 | True) |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
479 | |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
480 | locales = itm.data(ManageDictionariesDialog.LocalesRole) |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
481 | for locale in locales: |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
482 | bdic = os.path.join(installLocation, locale + ".bdic") |
8240
93b8a353c4bf
Applied some more code simplifications suggested by the new Simplify checker (Y105: use contextlib.suppress) (batch 1).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8218
diff
changeset
|
483 | with contextlib.suppress(OSError): |
5870
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
484 | os.remove(bdic) |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
485 | |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
486 | self.dictionariesList.clearSelection() |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
487 | |
82e04c70f969
Finished implementing a downloader and installer/uninstaller for web browser spell check dictionaries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5868
diff
changeset
|
488 | self.__checkInstalledDictionaries() |