Changeset 90:1a34fcf3b348 in SMSSender


Ignore:
Timestamp:
Jun 10, 2010 4:53:25 PM (10 years ago)
Author:
Sämy Zehnder <saemy.zehnder@…>
Branch:
3.0
Convert:
svn:3639001d-8e34-449c-bb86-3782b86c4877/branches/3.0@93
Message:
  • Implemented proxy handling. SOCKS5- and HTTP-Proxies should be working now.
  • Started with creating os specific deploy settings/scripts (macos and ubuntu so far). The first alpha version of the application is now on launchpad for ubuntu.
Files:
21 added
14 edited

Legend:

Unmodified
Added
Removed
  • gateways/SwisscomXtraZone/swisscomxtrazone.pro

    r89 r90  
    1515QMAKE_LFLAGS += -fvisibility=hidden
    1616LIBS += -L../../lib/
    17 
    18 # Attend the order!
    1917LIBS += -ldatatypes \
    2018    -lutils
     
    4543RESOURCES += lib/SwisscomXtraZone.qrc
    4644TRANSLATIONS += locale/de.ts
     45unix {
     46    target.path = /usr/lib/smssender/gateways
     47    INSTALLS += target
     48}
  • lib/libdatatypes/src/interfaces/persistence/isettings.h

    r87 r90  
    99#define ISETTINGS_H_
    1010
     11#include <QKeySequence>
     12#include <QLocale>
     13#include <QMap>
    1114#include <QObject>
    12 #include <QLocale>
    13 #include <QKeySequence>
    14 #include <QMap>
    1515#include <QString>
     16#include <QNetworkProxy>
    1617
    1718#include "iinterface.h"
     
    3031
    3132        virtual bool    isProxyEnabled()=0;
    32         virtual QString getProxyHost()=0;
     33    virtual QNetworkProxy::ProxyType getProxyType()=0;
     34    virtual QString getProxyHost()=0;
    3335        virtual int     getProxyPort()=0;
    3436    virtual bool    isProxyAuthEnabled()=0;
     
    5355
    5456        virtual void setProxyEnabled(bool enabled)=0;
     57    virtual void setProxyType(QNetworkProxy::ProxyType type)=0;
    5558        virtual void setProxyHost(const QString& host)=0;
    5659        virtual void setProxyPort(int port)=0;
  • smssender.pro

    r89 r90  
    1 VERSION = 3.0.0
     1VERSION = 3.0.0.0
    22DEFINES += APP_VERSION=\\\"$$VERSION\\\"
    33CONFIG += qt \
     
    112112}
    113113win32:RC_FILE = lib/smssender.rc
     114unix {
     115    target.path = /usr/bin/
     116    INSTALLS += target
     117}
  • src/bootstrap.cpp

    r87 r90  
    55#include <QLibraryInfo>
    66#include <QLocale>
     7#include <QNetworkProxy>
    78
    89#include <ilibrary.h>
     
    1112#include "business/BCAccountManager.h"
    1213#include "business/BCLibraryLoader.h"
     14#include "business/bcsuffixmanager.h"
    1315
    1416Bootstrap::Bootstrap() {
     
    2123
    2224    installTranslators();
     25    setNetworkProxy();
     26
     27    BCSuffixManager::instance()->suffix(); // Start loading web suffix
    2328
    2429    initAccounts();
     
    3843
    3944    BCGatewayManager::instance()->loadGatewaysFromLibraryPath(gatewayPath);
     45
     46    #if defined(Q_OS_UNIX)
     47        gatewayPath = QDir("/usr/lib/smssender/gateways");
     48        if (gatewayPath.exists()) {
     49            BCGatewayManager::instance()->loadGatewaysFromLibraryPath(gatewayPath);
     50        }
     51    #endif
    4052    emit gatewaysLoaded();
    4153}
     
    4658
    4759    BCAccountManager::instance()->accountInitManager()->initAccounts(BCAccountManager::instance()->getAccountList());
     60}
     61
     62
     63void Bootstrap::setNetworkProxy() {
     64    QNetworkProxy proxy;
     65    if (BCSettings::instance()->isProxyEnabled()) {
     66        proxy.setType(BCSettings::instance()->getProxyType());
     67        proxy.setHostName(BCSettings::instance()->getProxyHost());
     68        proxy.setPort(BCSettings::instance()->getProxyPort());
     69
     70        if (BCSettings::instance()->isProxyAuthEnabled()) {
     71            proxy.setUser(BCSettings::instance()->getProxyUsername());
     72            proxy.setPassword(BCSettings::instance()->getProxyPassword());
     73        }
     74    } else {
     75        proxy.setType(QNetworkProxy::NoProxy);
     76    }
     77    QNetworkProxy::setApplicationProxy(proxy);
    4878}
    4979
     
    84114void Bootstrap::on_settingChanged(BCSettings::Setting setting) {
    85115    switch (setting) {
     116        case BCSettings::ProxyEnabled:
     117        case BCSettings::ProxyType:
     118        case BCSettings::ProxyHost:
     119        case BCSettings::ProxyPort:
     120        case BCSettings::ProxyAuthEnabled:
     121        case BCSettings::ProxyUsername:
     122        case BCSettings::ProxyPassword:
     123            setNetworkProxy();
     124            break;
     125
    86126        case BCSettings::Locale:
    87127            installTranslators();
  • src/bootstrap.h

    r87 r90  
    3232    void initAccounts();
    3333
     34    void setNetworkProxy();
    3435    void installTranslators();
    3536
  • src/business/BCSettings.cpp

    r87 r90  
    88#include "BCSettings.h"
    99
     10#include <QCoreApplication>
     11#include <QDesktopServices>
    1012#include <QDir>
    1113#include <QDirIterator>
    1214#include <QFileInfo>
    13 #include <QCoreApplication>
    14 #include <QDesktopServices>
    15 #include <QDebug>
     15#include <QNetworkProxy>
    1616
    1717#include "persistence/PersistenceFactory.h"
     
    102102}
    103103
     104QNetworkProxy::ProxyType BCSettings::getProxyType() {
     105    return getSettings()->getProxyType();
     106}
     107
    104108QString BCSettings::getProxyHost(){
    105109    return getSettings()->getProxyHost();
     
    198202}
    199203
     204void BCSettings::setProxyType(QNetworkProxy::ProxyType type) {
     205    if (getSettings()->getProxyType() == type) return;
     206
     207    getSettings()->setProxyType(type);
     208    if (type == QNetworkProxy::NoProxy) {
     209        setProxyEnabled(false);
     210    }
     211    emit settingChanged(BCSettings::ProxyType);
     212}
     213
    200214void BCSettings::setProxyHost(const QString& host){
    201215    if (getSettings()->getProxyHost() == host) return;
  • src/business/BCSettings.h

    r87 r90  
    3535
    3636        ProxyEnabled,
     37        ProxyType,
    3738        ProxyHost,
    3839        ProxyPort,
     
    4849
    4950public:
    50     static BCSettings * instance();
     51    static BCSettings* instance();
    5152
    5253    const QDir     getLocalePath() const;
     
    6061
    6162    bool    isProxyEnabled();
     63    QNetworkProxy::ProxyType getProxyType();
    6264    QString getProxyHost();
    6365    int     getProxyPort();
     
    8486
    8587    void setProxyEnabled(bool enabled);
     88    void setProxyType(QNetworkProxy::ProxyType type);
    8689    void setProxyHost(const QString& host);
    8790    void setProxyPort(int port);
  • src/persistence/DASettings.cpp

    r87 r90  
    77
    88#include "DASettings.h"
     9
     10#include <QNetworkProxy>
    911
    1012#include "PersistenceFactory.h"
     
    4446bool DASettings::isProxyEnabled(){
    4547    return getStorage()->readBool("proxy", "enabled", false);
     48}
     49
     50QNetworkProxy::ProxyType DASettings::getProxyType() {
     51    return static_cast<QNetworkProxy::ProxyType>(getStorage()->readInt("proxy", "type", QNetworkProxy::Socks5Proxy));
    4652}
    4753
     
    117123}
    118124
     125void DASettings::setProxyType(QNetworkProxy::ProxyType type) {
     126    getStorage()->writeInt("proxy", "type", type);
     127}
     128
    119129void DASettings::setProxyHost(const QString& host){
    120130    getStorage()->writeString("proxy", "host", host);
  • src/persistence/DASettings.h

    r87 r90  
    3232
    3333        bool    isProxyEnabled();
     34        QNetworkProxy::ProxyType getProxyType();
    3435        QString getProxyHost();
    3536        int     getProxyPort();
     
    5556
    5657        void setProxyEnabled(bool enabled);
     58    void setProxyType(QNetworkProxy::ProxyType type);
    5759        void setProxyHost(const QString& host);
    5860        void setProxyPort(int port);
  • src/persistence/storage/DAStorage.cpp

    r87 r90  
    416416    QString contactIdsStr = "";
    417417    foreach (SContact* contact, group->contacts()) {
    418         contactIdsStr += to_string(contact->id()) + "\t";
     418        contactIdsStr += QString::number(contact->id()) + "\t";
    419419    }
    420420    contactIdsStr.resize(contactIdsStr.size() - 1); // Remove last "\t"
    421     writeString("group_" + to_string(group->id()), "contacts", contactIdsStr);
     421    writeString("group_" + QString::number(group->id()), "contacts", contactIdsStr);
    422422}
    423423
     
    445445}
    446446
    447 void DAStorage::removeValues(const QString& _namespace) {
     447void DAStorage::removeValues(const QString& _namespace_) {
    448448    QSqlQuery query = createQuery();
    449449    query.prepare("DELETE FROM t_settings "
    450                     "WHERE (namespace = '" + _namespace + "'); ");
     450                    "WHERE (namespace = '" + _namespace_ + "'); ");
    451451    if (!query.exec()) {
    452452        Storage::EWriteException(tr("Could not remove the settings from the database."))
    453                         .addDebugInfo("namespace", _namespace)
     453                        .addDebugInfo("namespace", _namespace_)
    454454                        .addDebugInfo("sql-error", query.lastError().text())
    455455                        .raise();
     
    461461    try {
    462462        // Remove the settings of the contact
    463         removeValues("contact_" + contactId);
     463        removeValues("contact_" + QString::number(contactId));
    464464
    465465        // Remove the contact itself
     
    481481    try {
    482482        // Remove the settings of the group
    483         removeValues("group_" + groupId);
     483        removeValues("group_" + QString::number(groupId));
    484484
    485485        // Remove the group itself
  • src/ui/models/contactgroupmodel.cpp

    r87 r90  
    171171    }
    172172
    173 /*    if (role == Qt::TextAlignmentRole) {
    174         switch (index.column()) {
    175             case COL_NAME:
    176             case COL_GATEWAY_NAME:
    177                 return Qt::AlignLeft + Qt::AlignVCenter;
    178             case COL_ENABLED:
    179                 return Qt::AlignCenter + Qt::AlignVCenter;
    180         }
    181     }*/
    182 
    183173    return QVariant();
    184174}
  • src/ui/vcsettings/vcsettings.cpp

    r87 r90  
    2121#include <QDebug>
    2222#include <QMessageBox>
     23#include <QNetworkProxy>
    2324
    2425#include "business/BCSettings.h"
     
    9596
    9697void VCSettings::initProxyPage(){
     98    proxyTypes_.insert(QNetworkProxy::Socks5Proxy, tr("SOCKS5"));
     99    proxyTypes_.insert(QNetworkProxy::HttpProxy, tr("HTTP"));
     100
     101    ui.lstProxyType->clear();
     102    foreach (QString type, proxyTypes_) {
     103        ui.lstProxyType->addItem(type);
     104    }
     105    ui.lstProxyType->setCurrentIndex(ui.lstProxyType->findText(proxyTypes_[BCSettings::instance()->getProxyType()]));
     106
    97107    ui.ckbUseProxy->setChecked(BCSettings::instance()->isProxyEnabled());
    98108    ui.edtProxyHost->setText(BCSettings::instance()->getProxyHost());
     
    229239void VCSettings::saveProxyPage(){
    230240    BCSettings::instance()->setProxyEnabled(ui.ckbUseProxy->isChecked());
     241    BCSettings::instance()->setProxyType(proxyTypes_.key(ui.lstProxyType->currentText()));
    231242    BCSettings::instance()->setProxyHost(ui.edtProxyHost->text());
    232243    BCSettings::instance()->setProxyPort(from_string<int>(ui.edtProxyPort->text()));
  • src/ui/vcsettings/vcsettings.h

    r87 r90  
    1919#define VCSETTINGS_H
    2020
    21 #include <QLocale>
    22 #include <QKeySequence>
    2321#include <QtGui/QDialog>
    2422#include <QtGui/QListWidgetItem>
    2523#include <QtGui/QComboBox>
     24#include <QKeySequence>
     25#include <QLocale>
     26#include <QNetworkProxy>
    2627
    2728#include "ui_vcsettings.h"
     
    6162    void saveShortcutsPage();
    6263
     64private:
     65    QMap<QNetworkProxy::ProxyType, QString> proxyTypes_;
     66
    6367private slots:
    6468        void on_lstSettingGroups_currentItemChanged(QListWidgetItem* newGroup, QListWidgetItem*);
  • src/ui/vcsettings/vcsettings.ui

    r87 r90  
    117117    <widget class="QStackedWidget" name="stackedWidget">
    118118     <property name="currentIndex">
    119       <number>0</number>
     119      <number>1</number>
    120120     </property>
    121121     <widget class="QWidget" name="pageGeneral">
     
    320320              <enum>QFormLayout::AllNonFixedFieldsGrow</enum>
    321321             </property>
    322              <item row="0" column="0">
     322             <item row="2" column="0">
    323323              <widget class="QLabel" name="label">
    324324               <property name="text">
     
    330330              </widget>
    331331             </item>
    332              <item row="0" column="1">
     332             <item row="2" column="1">
    333333              <widget class="QLineEdit" name="edtProxyHost">
    334334               <property name="toolTip">
     
    338338              </widget>
    339339             </item>
    340              <item row="1" column="0">
     340             <item row="3" column="0">
    341341              <widget class="QLabel" name="label_2">
    342342               <property name="text">
     
    348348              </widget>
    349349             </item>
    350              <item row="1" column="1">
     350             <item row="3" column="1">
    351351              <widget class="QLineEdit" name="edtProxyPort">
    352352               <property name="toolTip">
     
    361361              </widget>
    362362             </item>
    363              <item row="2" column="0" colspan="2">
     363             <item row="4" column="0" colspan="2">
    364364              <spacer name="verticalSpacer_3">
    365365               <property name="orientation">
     
    374374              </spacer>
    375375             </item>
    376              <item row="3" column="0" colspan="2">
     376             <item row="5" column="0" colspan="2">
    377377              <widget class="QCheckBox" name="ckbUseProxyAuth">
    378378               <property name="toolTip">
     
    384384              </widget>
    385385             </item>
    386              <item row="4" column="0" colspan="2">
     386             <item row="6" column="0" colspan="2">
    387387              <widget class="QWidget" name="wdtProxyAuth" native="true">
    388388               <property name="enabled">
     
    443443                </item>
    444444               </layout>
     445              </widget>
     446             </item>
     447             <item row="0" column="0">
     448              <widget class="QLabel" name="lblProxyType">
     449               <property name="text">
     450                <string>Type:</string>
     451               </property>
     452              </widget>
     453             </item>
     454             <item row="1" column="0" colspan="2">
     455              <spacer name="verticalSpacer_5">
     456               <property name="orientation">
     457                <enum>Qt::Vertical</enum>
     458               </property>
     459               <property name="sizeHint" stdset="0">
     460                <size>
     461                 <width>20</width>
     462                 <height>3</height>
     463                </size>
     464               </property>
     465              </spacer>
     466             </item>
     467             <item row="0" column="1">
     468              <widget class="QComboBox" name="lstProxyType">
     469               <property name="insertPolicy">
     470                <enum>QComboBox::InsertAlphabetically</enum>
     471               </property>
    445472              </widget>
    446473             </item>
     
    468495            <x>0</x>
    469496            <y>0</y>
    470             <width>333</width>
    471             <height>313</height>
     497            <width>278</width>
     498            <height>304</height>
    472499           </rect>
    473500          </property>
Note: See TracChangeset for help on using the changeset viewer.