74 } |
74 } |
75 self.__packageName = detailsData["info"]["name"] |
75 self.__packageName = detailsData["info"]["name"] |
76 |
76 |
77 self.__populateDetails(detailsData["info"]) |
77 self.__populateDetails(detailsData["info"]) |
78 self.__populateDownloadUrls(detailsData["urls"]) |
78 self.__populateDownloadUrls(detailsData["urls"]) |
|
79 self.__populateProjectUrls(detailsData["info"]["project_urls"]) |
79 self.__populateRequiresProvides(detailsData["info"]) |
80 self.__populateRequiresProvides(detailsData["info"]) |
80 self.__populateVulnerabilities(vulnerabilities) |
81 self.__populateVulnerabilities(vulnerabilities) |
81 |
82 |
82 self.__installButton.setEnabled(buttonsMode & self.ButtonInstall) |
83 self.__installButton.setEnabled(buttonsMode & self.ButtonInstall) |
83 self.__removeButton.setEnabled(buttonsMode & self.ButtonRemove) |
84 self.__removeButton.setEnabled(buttonsMode & self.ButtonRemove) |
111 ) |
112 ) |
112 self.licenseLabel.setText(self.__sanitize(detailsData["license"])) |
113 self.licenseLabel.setText(self.__sanitize(detailsData["license"])) |
113 self.platformLabel.setText(self.__sanitize(detailsData["platform"])) |
114 self.platformLabel.setText(self.__sanitize(detailsData["platform"])) |
114 self.homePageLabel.setText( |
115 self.homePageLabel.setText( |
115 '<a href="{0}">{0}</a>'.format( |
116 '<a href="{0}">{0}</a>'.format( |
116 self.__sanitize(detailsData["home_page"], forUrl=True) |
117 self.__sanitize( |
|
118 detailsData["project_urls"]["Homepage"] |
|
119 if "Homepage" in detailsData["project_urls"] |
|
120 else detailsData["home_page"], |
|
121 forUrl=True, |
|
122 ) |
117 ) |
123 ) |
118 ) |
124 ) |
119 self.packageUrlLabel.setText( |
125 self.packageUrlLabel.setText( |
120 '<a href="{0}">{0}</a>'.format( |
126 '<a href="{0}">{0}</a>'.format( |
121 self.__sanitize(detailsData["package_url"], forUrl=True) |
127 self.__sanitize(detailsData["package_url"], forUrl=True) |
126 self.__sanitize(detailsData["release_url"], forUrl=True) |
132 self.__sanitize(detailsData["release_url"], forUrl=True) |
127 ) |
133 ) |
128 ) |
134 ) |
129 self.docsUrlLabel.setText( |
135 self.docsUrlLabel.setText( |
130 '<a href="{0}">{0}</a>'.format( |
136 '<a href="{0}">{0}</a>'.format( |
131 self.__sanitize(detailsData["docs_url"], forUrl=True) |
137 self.__sanitize( |
|
138 detailsData["project_urls"]["Documentation"] |
|
139 if "Documentation" in detailsData["project_urls"] |
|
140 else detailsData["docs_url"], |
|
141 forUrl=True, |
|
142 ) |
132 ) |
143 ) |
133 ) |
144 ) |
134 self.classifiersList.addItems(detailsData["classifiers"]) |
145 self.classifiersList.addItems(detailsData["classifiers"]) |
135 |
146 |
136 self.buttonBox.button(QDialogButtonBox.StandardButton.Close).setDefault(True) |
147 self.buttonBox.button(QDialogButtonBox.StandardButton.Close).setDefault(True) |
181 ) |
192 ) |
182 urlLabel.setOpenExternalLinks(True) |
193 urlLabel.setOpenExternalLinks(True) |
183 self.downloadUrlsList.setItemWidget(itm, 0, urlLabel) |
194 self.downloadUrlsList.setItemWidget(itm, 0, urlLabel) |
184 header = self.downloadUrlsList.header() |
195 header = self.downloadUrlsList.header() |
185 header.resizeSections(QHeaderView.ResizeMode.ResizeToContents) |
196 header.resizeSections(QHeaderView.ResizeMode.ResizeToContents) |
|
197 header.setStretchLastSection(True) |
186 else: |
198 else: |
187 self.infoWidget.setTabVisible(index, False) |
199 self.infoWidget.setTabVisible(index, False) |
|
200 |
|
201 def __populateProjectUrls(self, urls): |
|
202 """ |
|
203 Private method to populate the 'Project URLs' tab. |
|
204 |
|
205 @param urls dictionary containing the defined project URLs |
|
206 @type dict |
|
207 """ |
|
208 index = self.infoWidget.indexOf(self.projectUrls) |
|
209 if urls: |
|
210 self.infoWidget.setTabVisible(index, True) |
|
211 for url in urls: |
|
212 itm = QTreeWidgetItem(self.projectUrlsList, [url, ""]) |
|
213 urlLabel = QLabel('<a href="{0}">{0}</a>'.format(urls[url])) |
|
214 urlLabel.setTextInteractionFlags( |
|
215 Qt.TextInteractionFlag.LinksAccessibleByMouse |
|
216 ) |
|
217 urlLabel.setOpenExternalLinks(True) |
|
218 self.projectUrlsList.setItemWidget(itm, 1, urlLabel) |
|
219 header = self.projectUrlsList.header() |
|
220 header.resizeSections(QHeaderView.ResizeMode.ResizeToContents) |
|
221 header.setStretchLastSection(True) |
|
222 else: |
|
223 self.infoWidget.setTabVisible(index, True) |
188 |
224 |
189 def __populateRequiresProvides(self, detailsData): |
225 def __populateRequiresProvides(self, detailsData): |
190 """ |
226 """ |
191 Private method to populate the requires/provides tab. |
227 Private method to populate the requires/provides tab. |
192 |
228 |