Changeset 354


Ignore:
Timestamp:
08/25/10 19:19:17 (18 months ago)
Author:
antonbatenev.ya.ru
Message:

fix #93 - полноценная поддержка прокси (HTTP, SOCKS5, CONNECT)

Location:
trunk
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • trunk/form_request.cpp

    r343 r354  
    2424 
    2525        m_http.setHost(host, port); 
     26        m_http.setProxy(QNetworkProxy::applicationProxy()); 
    2627 
    2728        QHttpRequestHeader request_header(header); 
     
    210211                else 
    211212                { 
    212                         if (m_http.lastResponse().statusCode() == 200) 
     213                        int status_code = m_http.lastResponse().statusCode(); 
     214 
     215                        if (status_code == 200) 
    213216                        { 
    214217                                new QListWidgetItem(QString::fromUtf8("Запрос завершен"), m_list_progress); 
     
    216219                                accept(); 
    217220                        } 
    218                         else 
     221                        else if (status_code < 511 /* при соединении с SOCKS прокси могу появляться артефакты с кодом состояния якобоы более 5xx */) 
    219222                                new QListWidgetItem(QString::fromUtf8("Ошибка запроса - ") + QString::number(m_http.lastResponse().statusCode()) + " - " + m_http.lastResponse().reasonPhrase(), m_list_progress); 
    220223                } 
  • trunk/form_settings.cpp

    r331 r354  
    1212FormSettings::FormSettings (QWidget* parent) : FormSettingsUI (parent) 
    1313{ 
    14         connect(m_button_cancel_base, SIGNAL(clicked()), this, SLOT(reject())); 
    15         connect(m_button_ok_base,     SIGNAL(clicked()), this, SLOT(button_ok_clicked())); 
     14        connect(m_button_cancel_network, SIGNAL(clicked()), this, SLOT(reject())); 
     15        connect(m_button_ok_network,     SIGNAL(clicked()), this, SLOT(button_ok_clicked())); 
     16 
     17        connect(m_button_cancel_storage, SIGNAL(clicked()), this, SLOT(reject())); 
     18        connect(m_button_ok_storage,     SIGNAL(clicked()), this, SLOT(button_ok_clicked())); 
    1619 
    1720        connect(m_button_cancel_ui, SIGNAL(clicked()), this, SLOT(reject())); 
    1821        connect(m_button_ok_ui,     SIGNAL(clicked()), this, SLOT(button_ok_clicked())); 
    1922 
     23        connect(m_check_use_proxy, SIGNAL(stateChanged(int)), this, SLOT(check_use_proxy_state_changed(int))); 
     24 
    2025        connect(m_combo_database_type, SIGNAL(currentIndexChanged(const QString&)), this, SLOT(combo_database_type_current_index_changed(const QString&))); 
    2126 
     
    4550        if (dialog.exec() == QDialog::Accepted) 
    4651                m_text_database_file->setText(dialog.selectedFiles()[0]); 
     52} 
     53//---------------------------------------------------------------------------------------------- 
     54 
     55void FormSettings::check_use_proxy_state_changed (int state) 
     56{ 
     57        bool e = false; 
     58 
     59        if (state == Qt::Checked) 
     60                e = true; 
     61 
     62        m_combo_proxy_type->setEnabled(e); 
     63        m_text_proxy_host->setEnabled(e); 
     64        m_text_proxy_port->setEnabled(e); 
     65        m_text_proxy_login->setEnabled(e); 
     66        m_text_proxy_password->setEnabled(e); 
    4767} 
    4868//---------------------------------------------------------------------------------------------- 
     
    85105 
    86106        // 
    87         // основные 
     107        // сеть 
    88108        // 
    89109 
     
    92112        settings.setValue("rsdn/login",    m_text_rsdn_login->text()); 
    93113        settings.setValue("rsdn/password", m_text_rsdn_password->text()); 
     114 
     115        settings.setValue("proxy/enabled",  (m_check_use_proxy->checkState() == Qt::Checked ? 1 : 0)); 
     116        settings.setValue("proxy/type",     m_combo_proxy_type->currentText()); 
     117        settings.setValue("proxy/host",     m_text_proxy_host->text()); 
     118        settings.setValue("proxy/port",     m_text_proxy_port->text()); 
     119        settings.setValue("proxy/login",    m_text_proxy_login->text()); 
     120        settings.setValue("proxy/password", m_text_proxy_password->text()); 
     121 
     122        // 
     123        // хранилище 
     124        // 
    94125 
    95126        QString database_type = m_combo_database_type->currentText(); 
     
    134165 
    135166        // 
    136         // основные 
     167        // сеть 
    137168        // 
    138169 
     
    142173        m_text_rsdn_password->setText (settings.value("rsdn/password", ""           ).toString()); 
    143174 
     175        bool use_proxy = settings.value("proxy/enabled", false).toInt(); 
     176 
     177        if (use_proxy == true) 
     178                m_check_use_proxy->setCheckState(Qt::Checked); 
     179        else 
     180                m_check_use_proxy->setCheckState(Qt::Unchecked); 
     181 
     182        QString proxy_type = settings.value("proxy/type", "HTTP").toString(); 
     183 
     184        int idx = m_combo_proxy_type->findText(proxy_type); 
     185 
     186        if (idx != -1) 
     187                m_combo_proxy_type->setCurrentIndex(idx); 
     188        else 
     189                m_combo_proxy_type->setCurrentIndex(0); 
     190 
     191        check_use_proxy_state_changed(m_check_use_proxy->checkState()); 
     192 
     193        m_text_proxy_host->setText     (settings.value("proxy/host",     "").toString()); 
     194        m_text_proxy_port->setText     (settings.value("proxy/port",     "").toString()); 
     195        m_text_proxy_login->setText    (settings.value("proxy/login",    "").toString()); 
     196        m_text_proxy_password->setText (settings.value("proxy/password", "").toString()); 
     197 
     198        // 
     199        // хранилище 
     200        // 
     201 
    144202        QString database_type = settings.value("storage/type", "SQLite").toString(); 
    145203 
    146         int idx = m_combo_database_type->findText(database_type); 
     204        idx = m_combo_database_type->findText(database_type); 
    147205 
    148206        if (idx != -1) 
  • trunk/form_settings.h

    r208 r354  
    4646 
    4747                /*! 
     48                 * \brief Включение / отключение прокси-сервера 
     49                 */ 
     50                void check_use_proxy_state_changed (int state); 
     51 
     52                /*! 
    4853                 * \brief Выбор файла для файловых хранилищ 
    4954                 */ 
  • trunk/form_settings_ui.cpp

    r340 r354  
    4040        m_layout->addWidget(m_tab); 
    4141 
    42         m_base_settings = new QWidget(); 
    43         m_tab->addTab(m_base_settings, QString::fromUtf8("основные")); 
     42        m_network_settings = new QWidget(); 
     43        m_tab->addTab(m_network_settings, QString::fromUtf8("сеть")); 
     44 
     45        m_storage_settings = new QWidget(); 
     46        m_tab->addTab(m_storage_settings, QString::fromUtf8("хранилище")); 
    4447 
    4548        m_ui_settings = new QWidget(); 
     
    4750 
    4851        // 
    49         // таб базовых настроек 
    50         // 
    51  
    52         m_layout_base_spacer = new QVBoxLayout(m_base_settings); 
    53  
    54         m_layout_base = new QHBoxLayout(); 
    55         m_layout_base_spacer->addLayout(m_layout_base); 
    56  
    57         m_base_spacer = new QSpacerItem(1, height(), QSizePolicy::Maximum, QSizePolicy::Expanding); 
    58         m_layout_base_spacer->addItem(m_base_spacer); 
    59  
    60         // 
    61         // подписи к полям 
    62         // 
    63  
    64         m_layout_label_base  = new QVBoxLayout(); 
    65         m_layout_base->addLayout(m_layout_label_base); 
     52        // таб настроек сети 
     53        // 
     54 
     55        m_layout_network_spacer = new QVBoxLayout(m_network_settings); 
     56 
     57        m_layout_network = new QHBoxLayout(); 
     58        m_layout_network_spacer->addLayout(m_layout_network); 
     59 
     60        m_network_spacer = new QSpacerItem(1, height(), QSizePolicy::Maximum, QSizePolicy::Expanding); 
     61        m_layout_network_spacer->addItem(m_network_spacer); 
     62 
     63        // 
     64        // подписи к полям (сеть) 
     65        // 
     66 
     67        m_layout_label_network  = new QVBoxLayout(); 
     68        m_layout_network->addLayout(m_layout_label_network); 
    6669 
    6770        m_label_rsdn_host = new QLabel(this); 
    6871        m_label_rsdn_host->setText(QString::fromUtf8("RSDN хост")); 
    69         m_layout_label_base->addWidget(m_label_rsdn_host); 
     72        m_layout_label_network->addWidget(m_label_rsdn_host); 
    7073 
    7174        m_label_rsdn_port = new QLabel(this); 
    7275        m_label_rsdn_port->setText(QString::fromUtf8("RSDN порт")); 
    73         m_layout_label_base->addWidget(m_label_rsdn_port); 
     76        m_layout_label_network->addWidget(m_label_rsdn_port); 
    7477 
    7578        m_label_rsdn_login = new QLabel(this); 
    7679        m_label_rsdn_login->setText(QString::fromUtf8("RSDN логин")); 
    77         m_layout_label_base->addWidget(m_label_rsdn_login); 
     80        m_layout_label_network->addWidget(m_label_rsdn_login); 
    7881 
    7982        m_label_rsdn_password = new QLabel(this); 
    8083        m_label_rsdn_password->setText(QString::fromUtf8("RSDN пароль")); 
    81         m_layout_label_base->addWidget(m_label_rsdn_password); 
     84        m_layout_label_network->addWidget(m_label_rsdn_password); 
     85 
     86        m_label_use_proxy = new QLabel(this); 
     87        m_label_use_proxy->setText(QString::fromUtf8("")); 
     88        m_layout_label_network->addWidget(m_label_use_proxy); 
     89 
     90        m_label_proxy_type = new QLabel(this); 
     91        m_label_proxy_type->setText(QString::fromUtf8("тип")); 
     92        m_layout_label_network->addWidget(m_label_proxy_type); 
     93 
     94        m_label_proxy_host = new QLabel(this); 
     95        m_label_proxy_host->setText(QString::fromUtf8("хост")); 
     96        m_layout_label_network->addWidget(m_label_proxy_host); 
     97 
     98        m_label_proxy_port = new QLabel(this); 
     99        m_label_proxy_port->setText(QString::fromUtf8("порт")); 
     100        m_layout_label_network->addWidget(m_label_proxy_port); 
     101 
     102        m_label_proxy_login = new QLabel(this); 
     103        m_label_proxy_login->setText(QString::fromUtf8("логин")); 
     104        m_layout_label_network->addWidget(m_label_proxy_login); 
     105 
     106        m_label_proxy_password = new QLabel(this); 
     107        m_label_proxy_password->setText(QString::fromUtf8("пароль")); 
     108        m_layout_label_network->addWidget(m_label_proxy_password); 
     109 
     110        // 
     111        // поля (сеть) 
     112        // 
     113 
     114        m_layout_text_network = new QVBoxLayout(); 
     115        m_layout_network->addLayout(m_layout_text_network); 
     116 
     117        m_text_rsdn_host = new QLineEdit(this); 
     118        m_layout_text_network->addWidget(m_text_rsdn_host); 
     119 
     120        m_text_rsdn_port = new QLineEdit(this); 
     121        m_layout_text_network->addWidget(m_text_rsdn_port); 
     122 
     123        m_text_rsdn_login = new QLineEdit(this); 
     124        m_layout_text_network->addWidget(m_text_rsdn_login); 
     125 
     126        m_text_rsdn_password = new QLineEdit(this); 
     127        m_text_rsdn_password->setEchoMode(QLineEdit::Password); 
     128        m_layout_text_network->addWidget(m_text_rsdn_password); 
     129 
     130        m_check_use_proxy = new QCheckBox(this); 
     131        m_check_use_proxy->setText(QString::fromUtf8("использовать прокси сервер")); 
     132        m_layout_text_network->addWidget(m_check_use_proxy); 
     133 
     134        m_combo_proxy_type = new QComboBox(this); 
     135        m_combo_proxy_type->insertItem(0, "CONNECT"); 
     136        m_combo_proxy_type->insertItem(0, "SOCKS 5"); 
     137        m_combo_proxy_type->insertItem(0, "HTTP"); 
     138        m_layout_text_network->addWidget(m_combo_proxy_type); 
     139 
     140        m_text_proxy_host = new QLineEdit(this); 
     141        m_layout_text_network->addWidget(m_text_proxy_host); 
     142 
     143        m_text_proxy_port = new QLineEdit(this); 
     144        m_layout_text_network->addWidget(m_text_proxy_port); 
     145 
     146        m_text_proxy_login = new QLineEdit(this); 
     147        m_layout_text_network->addWidget(m_text_proxy_login); 
     148 
     149        m_text_proxy_password = new QLineEdit(this); 
     150        m_text_proxy_password->setEchoMode(QLineEdit::Password); 
     151        m_layout_text_network->addWidget(m_text_proxy_password); 
     152 
     153        // 
     154        // кнопки (сеть) 
     155        // 
     156 
     157        m_layout_button_network = new QVBoxLayout(); 
     158        m_layout_network->addLayout(m_layout_button_network); 
     159 
     160        m_button_ok_network = new QPushButton(this); 
     161        m_button_ok_network->setText(QString::fromUtf8("OK")); 
     162        m_button_ok_network->setShortcut(QKeySequence("Return")); 
     163        m_button_ok_network->setDefault(true); 
     164        m_layout_button_network->addWidget(m_button_ok_network); 
     165 
     166        m_button_cancel_network = new QPushButton(this); 
     167        m_button_cancel_network->setText(QString::fromUtf8("Отмена")); 
     168        m_button_cancel_network->setShortcut(QKeySequence("Esc")); 
     169        m_layout_button_network->addWidget(m_button_cancel_network); 
     170 
     171        m_spacer_button_network = new QSpacerItem(1, 1, QSizePolicy::Maximum, QSizePolicy::Expanding); 
     172        m_layout_button_network->addItem(m_spacer_button_network); 
     173 
     174        // 
     175        // таб настроек хранилища 
     176        // 
     177 
     178        m_layout_storage_spacer = new QVBoxLayout(m_storage_settings); 
     179 
     180        m_layout_storage = new QHBoxLayout(); 
     181        m_layout_storage_spacer->addLayout(m_layout_storage); 
     182 
     183        m_storage_spacer = new QSpacerItem(1, height(), QSizePolicy::Maximum, QSizePolicy::Expanding); 
     184        m_layout_storage_spacer->addItem(m_storage_spacer); 
     185 
     186        // 
     187        // подписи к полям (хранилище) 
     188        // 
     189 
     190        m_layout_label_storage  = new QVBoxLayout(); 
     191        m_layout_storage->addLayout(m_layout_label_storage); 
    82192 
    83193        m_label_database_type = new QLabel(this); 
    84194        m_label_database_type->setText(QString::fromUtf8("тип хранилища")); 
    85         m_layout_label_base->addWidget(m_label_database_type); 
     195        m_layout_label_storage->addWidget(m_label_database_type); 
    86196 
    87197        m_label_database_host = new QLabel(this); 
    88198        m_label_database_host->setText(QString::fromUtf8("хост")); 
    89         m_layout_label_base->addWidget(m_label_database_host); 
     199        m_layout_label_storage->addWidget(m_label_database_host); 
    90200 
    91201        m_label_database_name = new QLabel(this); 
    92202        m_label_database_name->setText(QString::fromUtf8("схема")); 
    93         m_layout_label_base->addWidget(m_label_database_name); 
     203        m_layout_label_storage->addWidget(m_label_database_name); 
    94204 
    95205        m_label_database_login = new QLabel(this); 
    96206        m_label_database_login->setText(QString::fromUtf8("логин")); 
    97         m_layout_label_base->addWidget(m_label_database_login); 
     207        m_layout_label_storage->addWidget(m_label_database_login); 
    98208 
    99209        m_label_database_password = new QLabel(this); 
    100210        m_label_database_password->setText(QString::fromUtf8("пароль")); 
    101         m_layout_label_base->addWidget(m_label_database_password); 
     211        m_layout_label_storage->addWidget(m_label_database_password); 
    102212 
    103213        m_label_database_file = new QLabel(this); 
    104214        m_label_database_file->setText(QString::fromUtf8("файл")); 
    105         m_layout_label_base->addWidget(m_label_database_file); 
    106  
    107         // 
    108         // поля 
    109         // 
    110  
    111         m_layout_text_base = new QVBoxLayout(); 
    112         m_layout_base->addLayout(m_layout_text_base); 
    113  
    114         m_text_rsdn_host = new QLineEdit(this); 
    115         m_layout_text_base->addWidget(m_text_rsdn_host); 
    116  
    117         m_text_rsdn_port = new QLineEdit(this); 
    118         m_layout_text_base->addWidget(m_text_rsdn_port); 
    119  
    120         m_text_rsdn_login = new QLineEdit(this); 
    121         m_layout_text_base->addWidget(m_text_rsdn_login); 
    122  
    123         m_text_rsdn_password = new QLineEdit(this); 
    124         m_text_rsdn_password->setEchoMode(QLineEdit::Password); 
    125         m_layout_text_base->addWidget(m_text_rsdn_password); 
     215        m_layout_label_storage->addWidget(m_label_database_file); 
     216 
     217        // 
     218        // поля (хранилище) 
     219        // 
     220 
     221        m_layout_text_storage = new QVBoxLayout(); 
     222        m_layout_storage->addLayout(m_layout_text_storage); 
    126223 
    127224        m_combo_database_type = new QComboBox(this); 
    128225        m_combo_database_type->insertItem(0, "MySQL"); 
    129226        m_combo_database_type->insertItem(0, "SQLite"); 
    130         m_layout_text_base->addWidget(m_combo_database_type); 
     227        m_layout_text_storage->addWidget(m_combo_database_type); 
    131228 
    132229        m_text_database_host = new QLineEdit(this); 
    133         m_layout_text_base->addWidget(m_text_database_host); 
     230        m_layout_text_storage->addWidget(m_text_database_host); 
    134231 
    135232        m_text_database_name = new QLineEdit(this); 
    136         m_layout_text_base->addWidget(m_text_database_name); 
     233        m_layout_text_storage->addWidget(m_text_database_name); 
    137234 
    138235        m_text_database_login = new QLineEdit(this); 
    139         m_layout_text_base->addWidget(m_text_database_login); 
     236        m_layout_text_storage->addWidget(m_text_database_login); 
    140237 
    141238        m_text_database_password = new QLineEdit(this); 
    142239        m_text_database_password->setEchoMode(QLineEdit::Password); 
    143         m_layout_text_base->addWidget(m_text_database_password); 
     240        m_layout_text_storage->addWidget(m_text_database_password); 
    144241 
    145242        m_layout_database_file = new QHBoxLayout(); 
     
    154251        m_layout_database_file->addWidget(m_button_database_file); 
    155252 
    156         m_layout_text_base->addLayout(m_layout_database_file); 
    157  
    158         // 
    159         // кнопки 
    160         // 
    161  
    162         m_layout_button_base = new QVBoxLayout(); 
    163         m_layout_base->addLayout(m_layout_button_base); 
    164  
    165         m_button_ok_base = new QPushButton(this); 
    166         m_button_ok_base->setText(QString::fromUtf8("OK")); 
    167         m_button_ok_base->setShortcut(QKeySequence("Return")); 
    168         m_button_ok_base->setDefault(true); 
    169         m_layout_button_base->addWidget(m_button_ok_base); 
    170  
    171         m_button_cancel_base = new QPushButton(this); 
    172         m_button_cancel_base->setText(QString::fromUtf8("Отмена")); 
    173         m_button_cancel_base->setShortcut(QKeySequence("Esc")); 
    174         m_layout_button_base->addWidget(m_button_cancel_base); 
    175  
    176         m_spacer_button_base = new QSpacerItem(1, 1, QSizePolicy::Maximum, QSizePolicy::Expanding); 
    177         m_layout_button_base->addItem(m_spacer_button_base); 
     253        m_layout_text_storage->addLayout(m_layout_database_file); 
     254 
     255        // 
     256        // кнопки (хранилище) 
     257        // 
     258 
     259        m_layout_button_storage = new QVBoxLayout(); 
     260        m_layout_storage->addLayout(m_layout_button_storage); 
     261 
     262        m_button_ok_storage = new QPushButton(this); 
     263        m_button_ok_storage->setText(QString::fromUtf8("OK")); 
     264        m_button_ok_storage->setShortcut(QKeySequence("Return")); 
     265        m_button_ok_storage->setDefault(true); 
     266        m_layout_button_storage->addWidget(m_button_ok_storage); 
     267 
     268        m_button_cancel_storage = new QPushButton(this); 
     269        m_button_cancel_storage->setText(QString::fromUtf8("Отмена")); 
     270        m_button_cancel_storage->setShortcut(QKeySequence("Esc")); 
     271        m_layout_button_storage->addWidget(m_button_cancel_storage); 
     272 
     273        m_spacer_button_storage = new QSpacerItem(1, 1, QSizePolicy::Maximum, QSizePolicy::Expanding); 
     274        m_layout_button_storage->addItem(m_spacer_button_storage); 
    178275 
    179276        // 
     
    191288 
    192289        // 
    193         // подписи к полям 
     290        // подписи к полям (интерфейс) 
    194291        // 
    195292 
     
    230327 
    231328        // 
    232         // поля 
     329        // поля (интерфейс) 
    233330        // 
    234331 
     
    281378 
    282379        // 
    283         // кнопки 
     380        // кнопки (интерфейс) 
    284381        // 
    285382 
  • trunk/form_settings_ui.h

    r265 r354  
    3030                QHBoxLayout* m_layout;                                    /*!< \brief Layout для таба                      */ 
    3131                   QTabWidget* m_tab;                                     /*!< \brief Таб                                  */ 
    32                       QWidget* m_base_settings;                           /*!< \brief Виджет таба для основных настроек    */ 
    33                          QVBoxLayout* m_layout_base_spacer;               /*!< \brief Layout для выравнивания по вертикали */ 
    34                             QHBoxLayout* m_layout_base;                   /*!< \brief Общий layout для основных настроек   */ 
    35                                QVBoxLayout* m_layout_label_base;          /*!< \brief Layout для надписей                  */ 
     32                      QWidget* m_network_settings;                        /*!< \brief Виджет таба для настроек сети        */ 
     33                         QVBoxLayout* m_layout_network_spacer;            /*!< \brief Layout для выравнивания по вертикали */ 
     34                            QHBoxLayout* m_layout_network;                /*!< \brief Общий layout для настроек сети       */ 
     35                               QVBoxLayout* m_layout_label_network;       /*!< \brief Layout для надписей                  */ 
    3636                                  QLabel* m_label_rsdn_host;              /*!< \brief Хост RSDN                            */ 
    3737                                  QLabel* m_label_rsdn_port;              /*!< \brief Порт RSDN                            */ 
    3838                                  QLabel* m_label_rsdn_login;             /*!< \brief Логин на RSDN                        */ 
    3939                                  QLabel* m_label_rsdn_password;          /*!< \brief Пароль на RSDN                       */ 
     40                                  QLabel* m_label_use_proxy;              /*!< \brief Флаг использования прокси            */ 
     41                                  QLabel* m_label_proxy_type;             /*!< \brief Тип прокси-сервера                   */ 
     42                                  QLabel* m_label_proxy_host;             /*!< \brief Хост прокси-сервеа                   */ 
     43                                  QLabel* m_label_proxy_port;             /*!< \brief Порт прокси-сервера                  */ 
     44                                  QLabel* m_label_proxy_login;            /*!< \brief Пользователь прокси-сервера          */ 
     45                                  QLabel* m_label_proxy_password;         /*!< \brief Пароль прокси-сервера                */ 
     46                               QVBoxLayout* m_layout_text_network;        /*!< \brief Layout для текстовых полей           */ 
     47                                  QLineEdit* m_text_rsdn_host;            /*!< \brief Хост RSDN                            */ 
     48                                  QLineEdit* m_text_rsdn_port;            /*!< \brief Порт RSDN                            */ 
     49                                  QLineEdit* m_text_rsdn_login;           /*!< \brief Логин на RSDN                        */ 
     50                                  QLineEdit* m_text_rsdn_password;        /*!< \brief Пароль на RSDN                       */ 
     51                                  QCheckBox* m_check_use_proxy;           /*!< \brief Флаг использования прокси            */ 
     52                                  QComboBox* m_combo_proxy_type;          /*!< \brief Тип прокси-сервера                   */ 
     53                                  QLineEdit* m_text_proxy_host;           /*!< \brief Хост прокси-сервера                  */ 
     54                                  QLineEdit* m_text_proxy_port;           /*!< \brief Порт прокси-сервера                  */ 
     55                                  QLineEdit* m_text_proxy_login;          /*!< \brief Пользователь прокси-сервера          */ 
     56                                  QLineEdit* m_text_proxy_password;       /*!< \brief Пароль прокси-сервера                */ 
     57                               QVBoxLayout* m_layout_button_network;      /*!< \brief Layout для кнопок                    */ 
     58                                  QPushButton* m_button_ok_network;       /*!< \brief OK                                   */ 
     59                                  QPushButton* m_button_cancel_network;   /*!< \brief Отмена                               */ 
     60                                  QSpacerItem* m_spacer_button_network;   /*!< \brief Выравнивание кнопок вверх            */ 
     61                            QSpacerItem* m_network_spacer;                /*!< \brief Выравнивание всего вверх             */ 
     62                      QWidget* m_storage_settings;                        /*!< \brief Виджет таба для настроек хранилища   */ 
     63                         QVBoxLayout* m_layout_storage_spacer;            /*!< \brief Layout для выравнивания по вертикали */ 
     64                            QHBoxLayout* m_layout_storage;                /*!< \brief Общий layout для настроек хранилища  */ 
     65                               QVBoxLayout* m_layout_label_storage;       /*!< \brief Layout для надписей                  */ 
    4066                                  QLabel* m_label_database_type;          /*!< \brief Тип хранилища                        */ 
    4167                                  QLabel* m_label_database_host;          /*!< \brief Хост БД                              */ 
     
    4470                                  QLabel* m_label_database_password;      /*!< \brief Пароль БД                            */ 
    4571                                  QLabel* m_label_database_file;          /*!< \brief Файл базы (для файловых БД)          */ 
    46                                QVBoxLayout* m_layout_text_base;           /*!< \brief Layout для текстовых полей           */ 
    47                                   QLineEdit* m_text_rsdn_host;            /*!< \brief Хост RSDN                            */ 
    48                                   QLineEdit* m_text_rsdn_port;            /*!< \brief Порт RSDN                            */ 
    49                                   QLineEdit* m_text_rsdn_login;           /*!< \brief Логин на RSDN                        */ 
    50                                   QLineEdit* m_text_rsdn_password;        /*!< \brief Пароль на RSDN                       */ 
     72                               QVBoxLayout* m_layout_text_storage;        /*!< \brief Layout для текстовых полей           */ 
    5173                                  QComboBox* m_combo_database_type;       /*!< \brief Тип базы хранилища                   */ 
    5274                                  QLineEdit* m_text_database_host;        /*!< \brief Хост БД                              */ 
     
    5779                                     QLineEdit*   m_text_database_file;   /*!< \brief Файл базы (для файловых БД)          */ 
    5880                                     QPushButton* m_button_database_file; /*!< \brief Кнопка выбора файла базы             */ 
    59                                QVBoxLayout* m_layout_button_base;         /*!< \brief Layout для кнопок                    */ 
    60                                   QPushButton* m_button_ok_base;          /*!< \brief OK                                   */ 
    61                                   QPushButton* m_button_cancel_base;      /*!< \brief Отмена                               */ 
    62                                   QSpacerItem* m_spacer_button_base;      /*!< \brief Выравнивание кнопок вверх            */ 
    63                             QSpacerItem* m_base_spacer;                   /*!< \brief Выравнивание всего вверх             */ 
     81                               QVBoxLayout* m_layout_button_storage;      /*!< \brief Layout для кнопок                    */ 
     82                                  QPushButton* m_button_ok_storage;       /*!< \brief OK                                   */ 
     83                                  QPushButton* m_button_cancel_storage;   /*!< \brief Отмена                               */ 
     84                                  QSpacerItem* m_spacer_button_storage;   /*!< \brief Выравнивание кнопок вверх            */ 
     85                            QSpacerItem* m_storage_spacer;                /*!< \brief Выравнивание всего вверх             */ 
    6486                      QWidget* m_ui_settings;                             /*!< \brief Виджет таба для настроек интерфейса  */ 
    6587                         QVBoxLayout* m_layout_ui_spacer;                 /*!< \brief Layout для выравнивания по вертикали */ 
  • trunk/global.cpp

    r304 r354  
    4545{ 
    4646        QSettings settings; 
     47 
     48        // настройки прокси 
     49        bool use_proxy = settings.value("proxy/enabled", false).toInt(); 
     50 
     51        QNetworkProxy proxy; 
     52 
     53        if (use_proxy == false) 
     54                proxy.setType(QNetworkProxy::NoProxy); 
     55        else 
     56        { 
     57                QString proxy_type = settings.value("proxy/type", "HTTP").toString(); 
     58 
     59                if (proxy_type == "HTTP") 
     60                        proxy.setType(QNetworkProxy::HttpCachingProxy); 
     61                else if (proxy_type == "SOCKS 5") 
     62                        proxy.setType(QNetworkProxy::Socks5Proxy); 
     63                else if (proxy_type == "CONNECT") 
     64                        proxy.setType(QNetworkProxy::HttpProxy); 
     65                else 
     66                        proxy.setType(QNetworkProxy::DefaultProxy); 
     67 
     68                proxy.setHostName (settings.value("proxy/host",     "").toString()); 
     69                proxy.setPort     (settings.value("proxy/port",     0 ).toInt()); 
     70                proxy.setUser     (settings.value("proxy/login",    "").toString()); 
     71                proxy.setPassword (settings.value("proxy/password", "").toString()); 
     72        } 
     73 
     74        QNetworkProxy::setApplicationProxy(proxy); 
    4775 
    4876        // простые настройки 
  • trunk/sysheaders.h

    r329 r354  
    6464#include <QLibraryInfo> 
    6565#include <QIntValidator> 
     66#include <QNetworkProxy> 
    6667#include <QDesktopWidget> 
    6768#include <QTemporaryFile> 
  • trunk/version.h

    r353 r354  
    2020 * \brief Дата билда (заменяется автоматически при каждом билде в version.h, что и приводит к смене номера ревизии) 
    2121 */ 
    22 #define AVALON_DATE "Сбт Авг 21 19:05:58 MSD 2010" 
     22#define AVALON_DATE "Срд Авг 25 19:07:04 MSD 2010" 
    2323 
    2424#endif 
  • trunk/webservice.cpp

    r353 r354  
    111111 
    112112        header = ""; 
    113         header += "POST http://rsdn.ru/ws/janusAT.asmx HTTP/1.1\r\n"; 
     113        header += "POST /ws/janusAT.asmx HTTP/1.1\r\n"; 
    114114        header += "Host: rsdn.ru\r\n"; 
    115115        header += "Connection: close\r\n"; 
     
    254254 
    255255        header = ""; 
    256         header += "POST http://rsdn.ru/ws/janusAT.asmx HTTP/1.1\r\n"; 
     256        header += "POST /ws/janusAT.asmx HTTP/1.1\r\n"; 
    257257        header += "Host: rsdn.ru\r\n"; 
    258258        header += "Connection: close\r\n"; 
     
    390390 
    391391        header = ""; 
    392         header += "POST http://rsdn.ru/ws/janusAT.asmx HTTP/1.1\r\n"; 
     392        header += "POST /ws/janusAT.asmx HTTP/1.1\r\n"; 
    393393        header += "Host: rsdn.ru\r\n"; 
    394394        header += "Connection: close\r\n"; 
     
    559559 
    560560        header = ""; 
    561         header += "POST http://rsdn.ru/ws/janusAT.asmx HTTP/1.1\r\n"; 
     561        header += "POST /ws/janusAT.asmx HTTP/1.1\r\n"; 
    562562        header += "Host: rsdn.ru\r\n"; 
    563563        header += "Connection: close\r\n"; 
     
    771771 
    772772        header = ""; 
    773         header += "POST http://rsdn.ru/ws/janusAT.asmx HTTP/1.1\r\n"; 
     773        header += "POST /ws/janusAT.asmx HTTP/1.1\r\n"; 
    774774        header += "Host: rsdn.ru\r\n"; 
    775775        header += "Connection: close\r\n"; 
     
    843843 
    844844        header = ""; 
    845         header += "POST http://rsdn.ru/ws/janusAT.asmx HTTP/1.1\r\n"; 
     845        header += "POST /ws/janusAT.asmx HTTP/1.1\r\n"; 
    846846        header += "Host: rsdn.ru\r\n"; 
    847847        header += "Connection: close\r\n"; 
Note: See TracChangeset for help on using the changeset viewer.