void VncView::requestPassword() { kDebug(5011) << "request password"; if (m_authenticaionCanceled) { startQuitting(); return; } setStatus(Authenticating); #ifndef QTONLY if (m_hostPreferences->walletSupport()) { QString walletPassword = readWalletPassword(); if (!walletPassword.isNull()) { vncThread.setPassword(walletPassword); return; } } #endif if (!m_url.password().isNull()) { vncThread.setPassword(m_url.password()); return; } #ifdef QTONLY bool ok; QString password = QInputDialog::getText( this, //krazy:exclude=qclasses tr("Password required"), tr("Please enter the password for the remote desktop:"), QLineEdit::Password, QString(), &ok); m_firstPasswordTry = false; if (ok) vncThread.setPassword(password); else m_authenticaionCanceled = true; #else KPasswordDialog dialog(this); dialog.setPrompt(m_firstPasswordTry ? i18n("Access to the system requires a password.") : i18n("Authentication failed. Please try again.")); if (dialog.exec() == KPasswordDialog::Accepted) { m_firstPasswordTry = false; vncThread.setPassword(dialog.password()); } else { kDebug(5011) << "password dialog not accepted"; m_authenticaionCanceled = true; } #endif }
VncView::~VncView() { unpressModifiers(); // Disconnect all signals so that we don't get any more callbacks from the client thread disconnect(&vncThread, SIGNAL(imageUpdated(int, int, int, int)), this, SLOT(updateImage(int, int, int, int))); disconnect(&vncThread, SIGNAL(gotCut(const QString&)), this, SLOT(setCut(const QString&))); disconnect(&vncThread, SIGNAL(passwordRequest()), this, SLOT(requestPassword())); disconnect(&vncThread, SIGNAL(outputErrorMessage(QString)), this, SLOT(outputErrorMessage(QString))); startQuitting(); }
void VncView::outputErrorMessage(const QString &message) { kDebug(5011) << message; if (message == "INTERNAL:APPLE_VNC_COMPATIBILTY") { setCursor(localDotCursor()); m_forceLocalCursor = true; return; } startQuitting(); KMessageBox::error(this, message, i18n("VNC failure")); emit errorMessage(i18n("VNC failure"), message); }
VncView::~VncView() { if (!m_quitFlag) startQuitting(); }
void VncView::requestPassword(bool includingUsername) { kDebug(5011) << "request password"; setStatus(Authenticating); if (m_firstPasswordTry && !m_url.userName().isNull()) { vncThread.setUsername(m_url.userName()); } #ifndef QTONLY // just try to get the passwort from the wallet the first time, otherwise it will loop (see issue #226283) if (m_firstPasswordTry && m_hostPreferences->walletSupport()) { QString walletPassword = readWalletPassword(); if (!walletPassword.isNull()) { vncThread.setPassword(walletPassword); m_firstPasswordTry = false; return; } } #endif if (m_firstPasswordTry && !m_url.password().isNull()) { vncThread.setPassword(m_url.password()); m_firstPasswordTry = false; return; } #ifdef QTONLY bool ok; if (includingUsername) { QString username = QInputDialog::getText(this, //krazy:exclude=qclasses (code not used in kde build) tr("Username required"), tr("Please enter the username for the remote desktop:"), QLineEdit::Normal, m_url.userName(), &ok); //krazy:exclude=qclasses if (ok) vncThread.setUsername(username); else startQuitting(); } QString password = QInputDialog::getText(this, //krazy:exclude=qclasses tr("Password required"), tr("Please enter the password for the remote desktop:"), QLineEdit::Password, QString(), &ok); //krazy:exclude=qclasses m_firstPasswordTry = false; if (ok) vncThread.setPassword(password); else startQuitting(); #else KPasswordDialog dialog(this, includingUsername ? KPasswordDialog::ShowUsernameLine : KPasswordDialog::NoFlags); dialog.setPrompt(m_firstPasswordTry ? i18n("Access to the system requires a password.") : i18n("Authentication failed. Please try again.")); if (includingUsername) dialog.setUsername(m_url.userName()); if (dialog.exec() == KPasswordDialog::Accepted) { m_firstPasswordTry = false; vncThread.setPassword(dialog.password()); if (includingUsername) vncThread.setUsername(dialog.username()); } else { kDebug(5011) << "password dialog not accepted"; startQuitting(); } #endif }
RdpView::~RdpView() { startQuitting(); }