def setMailData(self, d): ll = d['data'][0] data = d['data'][1] i = 0 for m in self.mails : if m.idx == d['number'] : break else : i += 1 fileName = None if d['type'] == 'html' : _data = changeImagePath(data, d['boundary']) ''' create temporary html-file ''' fileName = os.path.join(self.iconDatabasePath, randomString(24) + '.html') with open(fileName, 'w') as f : f.write(insertMetaData(_data)) wdg = QWebView() wdg.triggerPageAction(QWebPage.Reload, True) wdg.triggerPageAction(QWebPage.Stop, True) wdg.triggerPageAction(QWebPage.Back, True) wdg.triggerPageAction(QWebPage.Forward, True) wdg.settings().setAttribute(QWebSettings.AutoLoadImages, \ self.Parent.autoLoadImage) wdg.settings().setAttribute(QWebSettings.PrivateBrowsingEnabled, \ self.Parent.privateEnable) if wdg.settings().iconDatabasePath().isEmpty() : wdg.settings().setIconDatabasePath(self.iconDatabasePath) wdg.load(QUrl('file://' + fileName)) #print dateStamp(), QUrl('file://' + fileName), ' created' wdg.show() self.webViewWDGs.append(wdg) elif d['type'] in ('plain') : wdg = QTextBrowser() wdg.setAcceptRichText(True) wdg.setOpenExternalLinks(True) wdg.setOpenLinks(True) data = data.replace('<', '< ') data = data.replace('>', ' >') wdg.setHtml(changeLink(data)) elif d['type'] == 'header' : wdg = QLabel() wdg.setText(data) wdg.linkHovered.connect(self.linkDisplay) wdg.setAlignment(Qt.AlignLeft) else : ''' create temporary file ''' fileName = os.path.join(self.iconDatabasePath, d['data'][2]) with open(fileName, 'wb') as f : f.write(data) wdg = QLabel() wdg.setOpenExternalLinks(True) ins = self.tr._translate('Inserted:') wdg.setText(QString('<a href="%1">%2 %3</a>').arg(fileName).arg(ins).arg(d['type'])) wdg.linkHovered.connect(self.linkDisplay) wdg.setAlignment(Qt.AlignLeft) wdg.setToolTip(ll) splt = QSplitter() splt.setOrientation(Qt.Horizontal) splt.setChildrenCollapsible(True) if d['level'] : blank = QLabel() blank.setFixedWidth(d['level']*SIZE) splt.addWidget(blank) splt.addWidget(wdg) self.mails[i].mailField.addWidget(splt) self.mails[i].setLayout(self.mails[i].layout)