Ejemplo n.º 1
0
NetworkProxyDialog::NetworkProxyDialog(QWidget *parent) :
    Dialog(parent),
    m_proxyTypeSelector(new ValueSelector(tr("Proxy type"), this)),
    m_hostEdit(new QLineEdit(this)),
    m_portEdit(new QLineEdit(this)),
    m_userEdit(new QLineEdit(this)),
    m_passEdit(new QLineEdit(this))
{
    setWindowTitle(tr("Network proxy"));
    
    m_proxyTypeSelector->setModel(new NetworkProxyTypeModel(this));
    m_proxyTypeSelector->setValue(Settings::instance()->networkProxyType());

    m_hostEdit->setMinimumWidth(380);
    m_hostEdit->setText(Settings::instance()->networkProxyHost());
    m_portEdit->setValidator(new QIntValidator(0, 100000, this));
    m_portEdit->setText(QString::number(Settings::instance()->networkProxyPort()));
    m_passEdit->setEchoMode(QLineEdit::Password);
    m_passEdit->setText(Settings::instance()->networkProxyPassword());
    m_userEdit->setText(Settings::instance()->networkProxyUsername());

    QGroupBox *proxyGroup = new QGroupBox(tr("Use network proxy"), this);
    proxyGroup->setCheckable(true);
    proxyGroup->setChecked(Settings::instance()->networkProxyEnabled());
    
    QGridLayout *proxyGrid = new QGridLayout(proxyGroup);
    proxyGrid->setContentsMargins(0, 0, 0, 0);
    proxyGrid->addWidget(m_proxyTypeSelector, 0, 0, 1, 2);
    proxyGrid->addWidget(new QLabel(tr("Host"), this), 1, 0, 1, 1);
    proxyGrid->addWidget(new QLabel(tr("Port"), this), 1, 1, 1, 1);
    proxyGrid->addWidget(m_hostEdit, 2, 0, 1, 1);
    proxyGrid->addWidget(m_portEdit, 2, 1, 1, 1);
    proxyGrid->addWidget(new QLabel(tr("Username"), this), 3, 0, 1, 2);
    proxyGrid->addWidget(m_userEdit, 4, 0, 1, 2);
    proxyGrid->addWidget(new QLabel(tr("Password"), this), 5, 0, 1, 2);
    proxyGrid->addWidget(m_passEdit, 6, 0, 1, 2);

    QWidget *scrollWidget = new QWidget(this);
    QVBoxLayout *vbox = new QVBoxLayout(scrollWidget);
    vbox->setContentsMargins(0, 0, 0, 0);
    vbox->addWidget(proxyGroup);
    QScrollArea *scrollArea = new QScrollArea(this);
    scrollArea->setWidgetResizable(true);
    scrollArea->setWidget(scrollWidget);

    QDialogButtonBox *buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel, Qt::Vertical, this);
    QHBoxLayout *hbox = new QHBoxLayout(this);
    hbox->addWidget(scrollArea);
    hbox->addWidget(buttonBox);

    connect(buttonBox, SIGNAL(accepted()), this, SLOT(accept()));
    connect(buttonBox, SIGNAL(rejected()), this, SLOT(reject()));
    connect(proxyGroup, SIGNAL(toggled(bool)), Settings::instance(), SLOT(setNetworkProxyEnabled(bool)));
    connect(m_proxyTypeSelector, SIGNAL(valueChanged(QVariant)), this, SLOT(setNetworkProxyType(QVariant)));
    connect(m_hostEdit, SIGNAL(textEdited(QString)), Settings::instance(), SLOT(setNetworkProxyHost(QString)));
    connect(m_portEdit, SIGNAL(textEdited(QString)), this, SLOT(setNetworkProxyPort(QString)));
    connect(m_userEdit, SIGNAL(textEdited(QString)), Settings::instance(), SLOT(setNetworkProxyUsername(QString)));
    connect(m_passEdit, SIGNAL(textEdited(QString)), Settings::instance(), SLOT(setNetworkProxyPassword(QString)));
}
Ejemplo n.º 2
0
void SettingsDialog::showNetworkTab() {
    if (!m_networkTab) {
        m_networkTab = new QWidget(m_stack);
        m_proxyGroupBox = new QGroupBox(tr("Use network proxy"), m_networkTab);
        m_proxyGroupBox->setCheckable(true);
        m_proxyGroupBox->setChecked(Settings::networkProxyEnabled());
        m_proxyTypeModel = new NetworkProxyTypeModel(m_proxyGroupBox);
        m_proxyTypeSelector = new QComboBox(m_proxyGroupBox);
        m_proxyTypeSelector->setModel(m_proxyTypeModel);
        m_proxyTypeSelector->setCurrentIndex(m_proxyTypeModel->match(0, "value", Settings::networkProxyType()));
        m_proxyHostEdit = new QLineEdit(Settings::networkProxyHost(), m_proxyGroupBox);
        m_proxyPortSpinBox = new QSpinBox(m_proxyGroupBox);
        m_proxyPortSpinBox->setRange(1, 9999);
        m_proxyPortSpinBox->setValue(Settings::networkProxyPort());
        m_proxyUsernameEdit = new QLineEdit(Settings::networkProxyUsername(), m_proxyGroupBox);
        m_proxyPasswordEdit = new QLineEdit(Settings::networkProxyPassword(), m_proxyGroupBox);
        m_proxyPasswordEdit->setEchoMode(QLineEdit::Password);
        
        QFormLayout *form = new QFormLayout(m_proxyGroupBox);
        form->addRow(tr("&Type:"), m_proxyTypeSelector);
        form->addRow(tr("&Host:"), m_proxyHostEdit);
        form->addRow(tr("&Port:"), m_proxyPortSpinBox);
        form->addRow(tr("&Username:"******"&Password:"), m_proxyPasswordEdit);
        
        QVBoxLayout *vbox = new QVBoxLayout(m_networkTab);
        vbox->addWidget(m_proxyGroupBox);
        
        connect(m_proxyGroupBox, SIGNAL(toggled(bool)), Settings::instance(), SLOT(setNetworkProxyEnabled(bool)));
        connect(m_proxyTypeSelector, SIGNAL(activated(int)), this, SLOT(setNetworkProxyType(int)));
        connect(m_proxyHostEdit, SIGNAL(textChanged(QString)),
                Settings::instance(), SLOT(setNetworkProxyHost(QString)));
        connect(m_proxyPortSpinBox, SIGNAL(valueChanged(int)), Settings::instance(), SLOT(setNetworkProxyPort(int)));
        connect(m_proxyUsernameEdit, SIGNAL(textChanged(QString)),
                Settings::instance(), SLOT(setNetworkProxyUsername(QString)));
        connect(m_proxyPasswordEdit, SIGNAL(textChanged(QString)),
                Settings::instance(), SLOT(setNetworkProxyPassword(QString)));
        
        m_stack->addWidget(m_networkTab);
    }