src/eric7/PipInterface/PipPackageDetailsDialog.py

branch
eric7
changeset 9676
9edcc7302ac4
parent 9659
3152923264c2
child 10105
5765f4c8543f
equal deleted inserted replaced
9675:92f73a6f168d 9676:9edcc7302ac4
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
241 Utilities.html_encode(vulnerability.spec), 277 Utilities.html_encode(vulnerability.spec),
242 "<p>{0}</p>".format( 278 "<p>{0}</p>".format(
243 Utilities.html_encode(vulnerability.advisory).replace( 279 Utilities.html_encode(vulnerability.advisory).replace(
244 "\r\n", "<br/>" 280 "\r\n", "<br/>"
245 ) 281 )
246 ) 282 ),
247 ), 283 ),
248 ) 284 )
249 else: 285 else:
250 self.infoWidget.setTabVisible(index, False) 286 self.infoWidget.setTabVisible(index, False)
251 287

eric ide

mercurial