コード例 #1
0
ファイル: passworddialog.cpp プロジェクト: KDE/plasma-nm
void PasswordDialog::setupGenericUi(const ConnectionSettings &connectionSettings)
{
    Setting::Ptr setting = connectionSettings.setting(m_settingName);

    ui = new Ui::PasswordDialog;
    ui->setupUi(this);
    // TODO fix this for high DPI
    ui->labelIcon->setPixmap(QIcon::fromTheme(QStringLiteral("dialog-password")).pixmap(KIconLoader::SizeMedium));

    m_neededSecrets = setting->needSecrets(m_flags & SecretAgent::RequestNew);
    if (m_neededSecrets.isEmpty()) {
        qCWarning(PLASMA_NM) << "list of secrets is empty!!!";
        m_hasError = true;
        m_error = SecretAgent::InternalError;
        m_errorMessage = QLatin1String("No secrets were requested");
        return;
    }

    WirelessSetting::Ptr wifi = connectionSettings.setting(Setting::Wireless).dynamicCast<WirelessSetting>();

    Setting::SettingType connectionType = setting->type();
    if (wifi && (connectionType == Setting::WirelessSecurity || connectionType == Setting::Security8021x)) {
        const QString ssid = QString::fromUtf8(wifi->ssid());
        ui->labelText->setText(i18n("For accessing the wireless network '%1' you need to provide a password below", ssid));
    } else {
        ui->labelText->setText(i18n("Please provide the password for activating connection '%1'", connectionSettings.id()));
    }

    ui->password->setFocus();
    connect(ui->showPassword, &QCheckBox::toggled, this, &PasswordDialog::showPassword);
    connect(ui->buttonBox, &QDialogButtonBox::accepted, this, &PasswordDialog::accept);
    connect(ui->buttonBox, &QDialogButtonBox::rejected, this, &PasswordDialog::reject);
}
コード例 #2
0
ファイル: passworddialog.cpp プロジェクト: KDE/plasma-nm
void PasswordDialog::setupVpnUi(const ConnectionSettings &connectionSettings)
{
    NetworkManager::VpnSetting::Ptr vpnSetting = connectionSettings.setting(Setting::Vpn).dynamicCast<VpnSetting>();
    if (!vpnSetting) {
        qCWarning(PLASMA_NM) << "Missing VPN setting!";
        m_hasError = true;
        m_error = SecretAgent::InternalError;
        m_errorMessage = QLatin1String("VPN settings are missing");
    } else {
        VpnUiPlugin *vpnUiPlugin;
        QString error;
        const QString serviceType = vpnSetting->serviceType();
        // qCDebug(PLASMA_NM) << "Agent loading VPN plugin" << serviceType << "from DBUS" << calledFromDBus();
        // vpnSetting->printSetting();
        vpnUiPlugin = KServiceTypeTrader::createInstanceFromQuery<VpnUiPlugin>(QLatin1String("PlasmaNetworkManagement/VpnUiPlugin"),
                                                                               QString::fromLatin1("[X-NetworkManager-Services]=='%1'").arg(serviceType),
                                                                               this, QVariantList(), &error);
        if (vpnUiPlugin && error.isEmpty()) {
            const QString shortName = serviceType.section('.', -1);
            setWindowTitle(i18n("VPN secrets (%1)", shortName));
            vpnWidget = vpnUiPlugin->askUser(vpnSetting, this);
            QDialogButtonBox * box;
            if (shortName != QLatin1String("openconnect")) {
                box = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel, Qt::Horizontal, this);
                connect(box, &QDialogButtonBox::accepted, this, &PasswordDialog::accept);
            } else {
                box = new QDialogButtonBox(QDialogButtonBox::Cancel, Qt::Horizontal, this);
            }
            connect(box, &QDialogButtonBox::rejected, this, &PasswordDialog::reject);
            QVBoxLayout * layout = new QVBoxLayout(this);
            layout->addWidget(vpnWidget);
            layout->addWidget(box);
            setLayout(layout);
        } else {
            qCWarning(PLASMA_NM) << error << ", serviceType == " << serviceType;
            m_hasError = true;
            m_error = SecretAgent::InternalError;
            m_errorMessage = error;
        }
    }
}