def get_http_auth_credentials(qurl, authenticator, parent=None): qurl = QUrl(qurl) qurl.setFragment(None) realm = authenticator.realm() trealm = (' (%s)' % realm) if realm else '' ac = parent and parent.get_login_credentials(qurl.toString()) d = Credentials( _('Please specify a password for {0}{1}').format( qurl.toString(), trealm), parent) if ac is not None: if ac['autologin']: authenticator.setUser(ac['username']) authenticator.setPassword(ac['password']) return d.credentials = ac['username'], ac['password'] if d.exec_() == d.Accepted: username, password = d.credentials authenticator.setUser(username) authenticator.setPassword(password) if parent is not None: parent.on_login_form_submit(qurl.toString(), username, password) else: if parent is not None: parent.setHtml( '<p style="font-family:sans-serif">{} {}</p>'.format( _('Authentication required to access: '), '<a href="{0}">{0}</a>'.format(qurl.toDisplayString())))
class HistoryEntry: def __init__(self): self.id = 0 self.count = 0 self.date = QDateTime() self.url = QUrl() self.urlString = '' self.title = '' def fillDbobj(self, dbobj): for field in ('id', 'count', 'urlString', 'title'): setattr(dbobj, field, getattr(self, field)) dbobj.date = self.date.toMSecsSinceEpoch() dbobj.url = self.url.toString() @classmethod def CreateFromDbobj(cls, dbobj): entry = cls() entry.id = dbobj.id entry.count = dbobj.id entry.date = QDateTime.fromMSecsSinceEpoch(dbobj.date) entry.url = QUrl(dbobj.url) entry.urlString = entry.url.toEncoded().data().decode() entry.title = dbobj.title return entry
def dropEvent(self, event): ''' @param: event QDropEvent ''' if event.mimeData().hasUrls(): dropUrl = event.mimeData().urls()[0] if WebView.isUrlValid(dropUrl): self.setText(dropUrl.toString()) self.loadRequest(LoadRequest(dropUrl)) event = QFocusEvent(QFocusEvent.FocusOut) super().focusOutEvent(event) return elif event.mimeData().hasText(): dropText = event.mimeData().text().strip() dropUrl = QUrl(dropText) if WebView.isUrlValid(dropUrl): self.setText(dropUrl.toString()) self.loadRequest(LoadRequest(dropUrl)) event = QFocusEvent(QFocusEvent.FocusOut) super().focusOutEvent(event) return else: self.setText(dropText) self.setFocus() return super().dropEvent(event)
def get_proxy_auth_credentials(qurl, authenticator, proxy_host, parent=None): qurl = QUrl(qurl) qurl.setFragment(None) d = Credentials(_('Please specify a password for {0} at the proxy: {1}').format(qurl.toString(), proxy_host), parent) if d.exec_() == d.Accepted: username, password = d.credentials authenticator.setUser(username) authenticator.setPassword(password)
def get_proxy_auth_credentials(qurl, authenticator, proxy_host, parent=None): qurl = QUrl(qurl) qurl.setFragment(None) d = Credentials( _('Please specify a password for {0} at the proxy: {1}').format( qurl.toString(), proxy_host), parent) if d.exec_() == d.Accepted: username, password = d.credentials authenticator.setUser(username) authenticator.setPassword(password)
def get_http_auth_credentials(qurl, authenticator, parent=None): qurl = QUrl(qurl) qurl.setFragment(None) realm = authenticator.realm() trealm = (' (%s)' % realm) if realm else '' ac = parent and parent.get_login_credentials(qurl.toString()) d = Credentials(_('Please specify a password for {0}{1}').format(qurl.toString(), trealm), parent) if ac is not None: if ac['autologin']: authenticator.setUser(ac['username']) authenticator.setPassword(ac['password']) return d.credentials = ac['username'], ac['password'] if d.exec_() == d.Accepted: username, password = d.credentials authenticator.setUser(username) authenticator.setPassword(password) if parent is not None: parent.on_login_form_submit(qurl.toString(), username, password) else: if parent is not None: parent.setHtml('<p style="font-family:sans-serif">{} {}</p>'.format( _('Authentication required to access: '), '<a href="{0}">{0}</a>'.format(qurl.toDisplayString())))
def load_footnote_data(self, current_url): fd = self.footnote_data_cache[current_url] = {} try: raw = self.view.document.javascript('window.calibre_extract.get_footnote_data()', typ='string') for x in json.loads(raw or '{}'): if x not in fd: qu = QUrl(x) path = qu.toLocalFile() spath = self.spine_path(path) if spath is not None: target = qu.fragment(QUrl.FullyDecoded) fd[qu.toString()] = (spath, target, qu) self.known_footnote_targets[spath].add(target) except Exception: prints('Failed to get footnote data, with error:') import traceback traceback.print_exc() return fd
def _on_url_changed(self, url: QUrl): self.url_le.setText(url.toString())
class PageThumbnailer(QObject): def __init__(self, parent=None): super().__init__(parent) self._view = QQuickWidget() # QQuickWidget self._size = QSize(450, 253) * gVar.app.devicePixelRatio() self._url = QUrl() self._title = '' self._loadTitle = False self._view.setAttribute(Qt.WA_DontShowOnScreen) self._view.setSource(QUrl('qrc:data/thumbnailer.qml')) self._view.rootContext().setContextProperty('thumbnailer', self) self._view.show() def setSize(self, size): if size.isValid(): self._size = size def setUrl(self, url): if url.isValid(): self._url = url def url(self): return self._url def loadTitle(self): ''' @return: bool ''' return self._loadTitle def setLoadTitle(self, load): ''' @param: load bool ''' self._loadTitle = load def title(self): title = self._title if not title: title = self._url.host() if not title: title = self._url.toString() return title def start(self): if self._view.rootObject() and WebView.isUrlValid(self._url): self._view.rootObject().setProperty('url', self._url) else: def func(): self.thumbnailCreated.emit(QPixmap()) QTimer.singleShot(500, func) # Q_SIGNALS: thumbnailCreated = pyqtSignal(QPixmap) # public Q_SLOTS: @pyqtSlot(result=str) def afterLoadScript(self): ''' @return: QString ''' return Scripts.setCss('::~webkit-scrollbar{display:none;}') @pyqtSlot(bool) def createThumbnail(self, status): ''' @param: status bool ''' if not status: self.thumbnailCreated.emit(QPixmap()) return def func(): self._title = self._view.rootObject().property('title').strip() img = self._view.grabFramebuffer().scaled(self._size, Qt.IgnoreAspectRatio, Qt.SmoothTransformation) pixmap = QPixmap.fromImage(img) self.thumbnailCreated.emit(pixmap) QTimer.singleShot(1000, func)