summaryrefslogtreecommitdiff
authorandyq <andyq>2002-12-12 00:18:40 (UTC)
committer andyq <andyq>2002-12-12 00:18:40 (UTC)
commit1d044ba4d276240b60bc98d18365a80183960751 (patch) (side-by-side diff)
tree98f69f03bb7ff4a904c02322be6480c54b6a7e08
parentfe063bdf069cd33def6347777624798e4f3a7059 (diff)
downloadopie-1d044ba4d276240b60bc98d18365a80183960751.zip
opie-1d044ba4d276240b60bc98d18365a80183960751.tar.gz
opie-1d044ba4d276240b60bc98d18365a80183960751.tar.bz2
Added proxy support
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--noncore/settings/aqpkg/datamgr.cpp28
-rw-r--r--noncore/settings/aqpkg/datamgr.h18
-rw-r--r--noncore/settings/aqpkg/settings.ui245
-rw-r--r--noncore/settings/aqpkg/settingsimpl.cpp21
-rw-r--r--noncore/settings/aqpkg/settingsimpl.h2
5 files changed, 298 insertions, 16 deletions
diff --git a/noncore/settings/aqpkg/datamgr.cpp b/noncore/settings/aqpkg/datamgr.cpp
index 96c28c0..3933a22 100644
--- a/noncore/settings/aqpkg/datamgr.cpp
+++ b/noncore/settings/aqpkg/datamgr.cpp
@@ -109,57 +109,69 @@ void DataManager :: loadServers()
if ( lineStr.startsWith( "src" ) )
s.setActive( true );
else
s.setActive( false );
serverList.push_back( s );
}
else if ( lineStr.startsWith( "dest" ) )
{
char alias[20];
char path[50];
sscanf( lineStr, "%*[^ ] %s %s", alias, path );
Destination d( alias, path );
bool linkToRoot = true;
#ifdef QWS
QString key = alias;
key += "_linkToRoot";
linkToRoot = cfg.readBoolEntry( key, true );
#endif
d.linkToRoot( linkToRoot );
destList.push_back( d );
}
- else if ( lineStr.startsWith( "option" ) )
+ else if ( lineStr.startsWith( "option" ) || lineStr.startsWith( "#option" ) )
{
char type[20];
char val[100];
sscanf( lineStr, "%*[^ ] %s %s", type, val );
if ( stricmp( type, "http_proxy" ) == 0 )
+ {
httpProxy = val;
+ if ( lineStr.startsWith( "#" ) )
+ httpProxyEnabled = false;
+ else
+ httpProxyEnabled = true;
+ }
if ( stricmp( type, "ftp_proxy" ) == 0 )
+ {
ftpProxy = val;
+ if ( lineStr.startsWith( "#" ) )
+ ftpProxyEnabled = false;
+ else
+ ftpProxyEnabled = true;
+ }
if ( stricmp( type, "proxy_username" ) == 0 )
proxyUsername = val;
if ( stricmp( type, "proxy_password" ) == 0 )
proxyPassword = val;
}
}
}
fclose( fp );
reloadServerData( );
}
void DataManager :: reloadServerData( )
{
vector<Server>::iterator it = serverList.begin();
for ( it = serverList.begin() ; it != serverList.end() ; ++it )
{
// Now we've read the config file in we need to read the servers
// The local server is a special case. This holds the contents of the
// status files the number of which depends on how many destinations
// we've set up
// The other servers files hold the contents of the server package list
if ( it->getServerName() == LOCAL_SERVER )
it->readStatusFile( destList );
@@ -197,59 +209,67 @@ void DataManager :: writeOutIpkgConf()
QString alias = it->getServerName();
// Don't write out local as its a dummy
if ( alias != LOCAL_SERVER && alias != LOCAL_IPKGS )
{
QString url = it->getServerUrl();;
if ( !it->isServerActive() )
out << "#";
out << "src " << alias << " " << url << endl;
}
it++;
}
out << endl;
// Write out destinations
vector<Destination>::iterator it2 = destList.begin();
while ( it2 != destList.end() )
{
out << "dest " << it2->getDestinationName() << " " << it2->getDestinationPath() << endl;
it2++;
}
+ out << endl;
out << "# Proxy Support" << endl;
- out << "#" << endl;
- if ( httpProxy == "" )
+ if ( !httpProxyEnabled && httpProxy == "" )
out << "#option http_proxy http://proxy.tld:3128" << endl;
else
+ {
+ if ( !httpProxyEnabled )
+ out << "#";
out << "option http_proxy " << httpProxy << endl;
+ }
- if ( ftpProxy == "" )
+ if ( !ftpProxyEnabled && ftpProxy == "" )
out << "#option ftp_proxy http://proxy.tld:3128" << endl;
else
+ {
+ if ( !ftpProxyEnabled )
+ out << "#";
out << "option ftp_proxy " << ftpProxy << endl;
+ }
if ( proxyUsername == "" )
out << "#option proxy_username <username>" << endl;
else
out << "option proxy_username " << proxyUsername << endl;
if ( proxyPassword == "" )
out << "#option proxy_password <password>" << endl << endl;
else
out << "option proxy_password " << proxyPassword << endl<< endl;
out << "# Offline mode (for use in constructing flash images offline)" << endl;
out << "#option offline_root target" << endl;
out.close();
}
void DataManager :: setAvailableCategories( QString section )
{
section = section.lower();
if ( availableCategories.find( "#" + section + "#" ) == -1 )
availableCategories += section + "#";
}
diff --git a/noncore/settings/aqpkg/datamgr.h b/noncore/settings/aqpkg/datamgr.h
index 41833df..0a7467f 100644
--- a/noncore/settings/aqpkg/datamgr.h
+++ b/noncore/settings/aqpkg/datamgr.h
@@ -37,37 +37,55 @@ using namespace std;
class DataManager
{
public:
DataManager();
~DataManager();
void setActiveServer( const QString &act ) { activeServer = act; }
QString &getActiveServer( ) { return activeServer; }
Server *getLocalServer() { return &( *getServer( LOCAL_SERVER ) ); }
vector<Server> &getServerList() { return serverList; }
vector<Server>::iterator getServer( const char *name );
vector<Destination> &getDestinationList() { return destList; }
vector<Destination>::iterator getDestination( const char *name );
void loadServers();
void reloadServerData( );
void writeOutIpkgConf();
static QString getAvailableCategories() { return availableCategories; }
static void setAvailableCategories( QString section );
+ QString getHttpProxy() { return httpProxy; }
+ QString getFtpProxy() { return ftpProxy; }
+ QString getProxyUsername() { return proxyUsername; }
+ QString getProxyPassword() { return proxyPassword; }
+
+ bool getHttpProxyEnabled() { return httpProxyEnabled; }
+ bool getFtpProxyEnabled() { return ftpProxyEnabled; }
+
+ void setHttpProxy( QString proxy ) { httpProxy = proxy; }
+ void setFtpProxy( QString proxy ) { ftpProxy = proxy; }
+ void setProxyUsername( QString name ) { proxyUsername = name; }
+ void setProxyPassword( QString pword ) { proxyPassword = pword; }
+
+ void setHttpProxyEnabled( bool val ) { httpProxyEnabled = val; }
+ void setFtpProxyEnabled( bool val ) { ftpProxyEnabled = val; }
private:
static QString availableCategories;
QString activeServer;
QString httpProxy;
QString ftpProxy;
QString proxyUsername;
QString proxyPassword;
+ bool httpProxyEnabled;
+ bool ftpProxyEnabled;
+
vector<Server> serverList;
vector<Destination> destList;
};
#endif
diff --git a/noncore/settings/aqpkg/settings.ui b/noncore/settings/aqpkg/settings.ui
index 44e8fd9..b39d358 100644
--- a/noncore/settings/aqpkg/settings.ui
+++ b/noncore/settings/aqpkg/settings.ui
@@ -1,70 +1,70 @@
<!DOCTYPE UI><UI>
<class>SettingsBase</class>
<widget>
<class>QDialog</class>
<property stdset="1">
<name>name</name>
<cstring>Settings</cstring>
</property>
<property stdset="1">
<name>geometry</name>
<rect>
<x>0</x>
<y>0</y>
- <width>235</width>
+ <width>211</width>
<height>390</height>
</rect>
</property>
<property stdset="1">
<name>caption</name>
<string>Package Servers</string>
</property>
<property>
<name>layoutMargin</name>
</property>
<property>
<name>layoutSpacing</name>
</property>
- <grid>
- <property stdset="1">
- <name>margin</name>
- <number>11</number>
- </property>
- <property stdset="1">
- <name>spacing</name>
- <number>6</number>
- </property>
- <widget row="0" column="0" >
+ <widget>
<class>QTabWidget</class>
<property stdset="1">
<name>name</name>
<cstring>TabWidget</cstring>
</property>
<property stdset="1">
<name>enabled</name>
<bool>true</bool>
</property>
+ <property stdset="1">
+ <name>geometry</name>
+ <rect>
+ <x>11</x>
+ <y>11</y>
+ <width>209</width>
+ <height>368</height>
+ </rect>
+ </property>
<property>
<name>layoutMargin</name>
</property>
<property>
<name>layoutSpacing</name>
</property>
<widget>
<class>QWidget</class>
<property stdset="1">
<name>name</name>
<cstring>tab</cstring>
</property>
<attribute>
<name>title</name>
<string>Servers</string>
</attribute>
<grid>
<property stdset="1">
<name>margin</name>
<number>11</number>
</property>
<property stdset="1">
<name>spacing</name>
<number>6</number>
@@ -484,93 +484,307 @@
<property stdset="1">
<name>checked</name>
<bool>true</bool>
</property>
</widget>
<widget row="1" column="1" >
<class>QLineEdit</class>
<property stdset="1">
<name>name</name>
<cstring>destinationurl</cstring>
</property>
</widget>
</grid>
</widget>
</grid>
</widget>
<widget>
<class>QWidget</class>
<property stdset="1">
<name>name</name>
<cstring>tab</cstring>
</property>
<attribute>
<name>title</name>
+ <string>Proxys</string>
+ </attribute>
+ <widget>
+ <class>QLabel</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>TextLabel1_2</cstring>
+ </property>
+ <property stdset="1">
+ <name>geometry</name>
+ <rect>
+ <x>1</x>
+ <y>19</y>
+ <width>67</width>
+ <height>22</height>
+ </rect>
+ </property>
+ <property stdset="1">
+ <name>text</name>
+ <string>HTTP Proxy</string>
+ </property>
+ </widget>
+ <widget>
+ <class>QLineEdit</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>txtFtpProxy</cstring>
+ </property>
+ <property stdset="1">
+ <name>geometry</name>
+ <rect>
+ <x>74</x>
+ <y>72</y>
+ <width>110</width>
+ <height>22</height>
+ </rect>
+ </property>
+ </widget>
+ <widget>
+ <class>QLineEdit</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>txtHttpProxy</cstring>
+ </property>
+ <property stdset="1">
+ <name>geometry</name>
+ <rect>
+ <x>74</x>
+ <y>19</y>
+ <width>110</width>
+ <height>22</height>
+ </rect>
+ </property>
+ </widget>
+ <widget>
+ <class>QLabel</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>TextLabel4</cstring>
+ </property>
+ <property stdset="1">
+ <name>geometry</name>
+ <rect>
+ <x>1</x>
+ <y>153</y>
+ <width>67</width>
+ <height>22</height>
+ </rect>
+ </property>
+ <property stdset="1">
+ <name>text</name>
+ <string>Password</string>
+ </property>
+ </widget>
+ <widget>
+ <class>QLineEdit</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>txtUsername</cstring>
+ </property>
+ <property stdset="1">
+ <name>geometry</name>
+ <rect>
+ <x>74</x>
+ <y>125</y>
+ <width>110</width>
+ <height>22</height>
+ </rect>
+ </property>
+ </widget>
+ <widget>
+ <class>QLineEdit</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>txtPassword</cstring>
+ </property>
+ <property stdset="1">
+ <name>geometry</name>
+ <rect>
+ <x>74</x>
+ <y>153</y>
+ <width>110</width>
+ <height>22</height>
+ </rect>
+ </property>
+ </widget>
+ <widget>
+ <class>QCheckBox</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>chkFtpProxyEnabled</cstring>
+ </property>
+ <property stdset="1">
+ <name>geometry</name>
+ <rect>
+ <x>74</x>
+ <y>100</y>
+ <width>110</width>
+ <height>19</height>
+ </rect>
+ </property>
+ <property stdset="1">
+ <name>text</name>
+ <string>Enabled</string>
+ </property>
+ </widget>
+ <widget>
+ <class>QLabel</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>TextLabel2</cstring>
+ </property>
+ <property stdset="1">
+ <name>geometry</name>
+ <rect>
+ <x>1</x>
+ <y>72</y>
+ <width>67</width>
+ <height>22</height>
+ </rect>
+ </property>
+ <property stdset="1">
+ <name>text</name>
+ <string>FTP Proxy</string>
+ </property>
+ </widget>
+ <widget>
+ <class>QLabel</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>TextLabel3</cstring>
+ </property>
+ <property stdset="1">
+ <name>geometry</name>
+ <rect>
+ <x>1</x>
+ <y>125</y>
+ <width>67</width>
+ <height>22</height>
+ </rect>
+ </property>
+ <property stdset="1">
+ <name>text</name>
+ <string>Username</string>
+ </property>
+ </widget>
+ <widget>
+ <class>QCheckBox</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>chkHttpProxyEnabled</cstring>
+ </property>
+ <property stdset="1">
+ <name>geometry</name>
+ <rect>
+ <x>74</x>
+ <y>47</y>
+ <width>110</width>
+ <height>19</height>
+ </rect>
+ </property>
+ <property stdset="1">
+ <name>text</name>
+ <string>Enabled</string>
+ </property>
+ </widget>
+ <widget>
+ <class>QPushButton</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>btnProxyApply</cstring>
+ </property>
+ <property stdset="1">
+ <name>geometry</name>
+ <rect>
+ <x>74</x>
+ <y>181</y>
+ <width>110</width>
+ <height>28</height>
+ </rect>
+ </property>
+ <property stdset="1">
+ <name>text</name>
+ <string>&amp;Apply</string>
+ </property>
+ </widget>
+ </widget>
+ <widget>
+ <class>QWidget</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>tab</cstring>
+ </property>
+ <attribute>
+ <name>title</name>
<string>General</string>
</attribute>
<widget>
<class>QLabel</class>
<property stdset="1">
<name>name</name>
<cstring>TextLabel1</cstring>
</property>
<property stdset="1">
<name>geometry</name>
<rect>
<x>20</x>
<y>30</y>
<width>150</width>
<height>20</height>
</rect>
</property>
<property stdset="1">
<name>text</name>
<string>(Will take effect on restart)</string>
</property>
</widget>
<widget>
<class>QCheckBox</class>
<property stdset="1">
<name>name</name>
<cstring>jumpTo</cstring>
</property>
<property stdset="1">
<name>geometry</name>
<rect>
<x>17</x>
<y>14</y>
<width>150</width>
<height>20</height>
</rect>
</property>
<property stdset="1">
<name>text</name>
<string>Show Jump To Letters</string>
</property>
</widget>
</widget>
</widget>
- </grid>
</widget>
<connections>
<connection>
<sender>newserver</sender>
<signal>clicked()</signal>
<receiver>Settings</receiver>
<slot>newServer()</slot>
</connection>
<connection>
<sender>removeserver</sender>
<signal>clicked()</signal>
<receiver>Settings</receiver>
<slot>removeServer()</slot>
</connection>
<connection>
<sender>newdestination</sender>
<signal>clicked()</signal>
<receiver>Settings</receiver>
<slot>newDestination()</slot>
</connection>
<connection>
<sender>removedestination</sender>
<signal>clicked()</signal>
<receiver>Settings</receiver>
@@ -585,62 +799,69 @@
<connection>
<sender>destinations</sender>
<signal>highlighted(int)</signal>
<receiver>Settings</receiver>
<slot>editDestination(int)</slot>
</connection>
<connection>
<sender>btnChangeServer</sender>
<signal>clicked()</signal>
<receiver>Settings</receiver>
<slot>changeServerDetails()</slot>
</connection>
<connection>
<sender>btnChangeDest</sender>
<signal>clicked()</signal>
<receiver>Settings</receiver>
<slot>changeDestinationDetails()</slot>
</connection>
<connection>
<sender>jumpTo</sender>
<signal>toggled(bool)</signal>
<receiver>Settings</receiver>
<slot>toggleJumpTo(bool)</slot>
</connection>
+ <connection>
+ <sender>btnProxyApply</sender>
+ <signal>clicked()</signal>
+ <receiver>Settings</receiver>
+ <slot>proxyApplyChanges()</slot>
+ </connection>
<slot access="public">activeServerChanged()</slot>
<slot access="public">changeDestinationDetails()</slot>
<slot access="public">changeServerDetails()</slot>
<slot access="public">createLinksToDest()</slot>
<slot access="public">destNameChanged(const QString&amp;)</slot>
<slot access="public">destUrlChanged(const QString&amp;)</slot>
<slot access="public">editDestination(int)</slot>
<slot access="public">editServer(int)</slot>
<slot access="public">installationSettingChange(int)</slot>
<slot access="public">installationSettingSetName(const QString &amp;)</slot>
<slot access="public">linkEnabled(bool)</slot>
<slot access="public">newDestination()</slot>
<slot access="public">newInstallationSetting()</slot>
<slot access="public">newServer()</slot>
+ <slot access="public">proxyApplyChanges()</slot>
<slot access="public">removeDestination()</slot>
<slot access="public">removeInstallationSetting()</slot>
<slot access="public">removeLinksToDest()</slot>
<slot access="public">removeServer()</slot>
<slot access="public">renameInstallationSetting()</slot>
<slot access="public">serverNameChanged(const QString&amp;)</slot>
<slot access="public">serverUrlChanged(const QString&amp;)</slot>
<slot access="public">toggleJumpTo(bool)</slot>
</connections>
<tabstops>
<tabstop>servers</tabstop>
<tabstop>newserver</tabstop>
<tabstop>removeserver</tabstop>
<tabstop>servername</tabstop>
<tabstop>serverurl</tabstop>
<tabstop>active</tabstop>
<tabstop>btnChangeServer</tabstop>
<tabstop>TabWidget</tabstop>
<tabstop>destinations</tabstop>
<tabstop>newdestination</tabstop>
<tabstop>removedestination</tabstop>
<tabstop>destinationname</tabstop>
<tabstop>destinationurl</tabstop>
<tabstop>linkToRoot</tabstop>
diff --git a/noncore/settings/aqpkg/settingsimpl.cpp b/noncore/settings/aqpkg/settingsimpl.cpp
index 9dd2206..4bb928a 100644
--- a/noncore/settings/aqpkg/settingsimpl.cpp
+++ b/noncore/settings/aqpkg/settingsimpl.cpp
@@ -57,55 +57,64 @@ bool SettingsImpl :: showDlg( int i )
if ( changed )
dataMgr->writeOutIpkgConf();
return changed;
}
void SettingsImpl :: setupData()
{
// add servers
vector<Server>::iterator it;
for ( it = dataMgr->getServerList().begin() ; it != dataMgr->getServerList().end() ; ++it )
{
if ( it->getServerName() == LOCAL_SERVER || it->getServerName() == LOCAL_IPKGS )
continue;
servers->insertItem( it->getServerName() );
}
// add destinations
vector<Destination>::iterator it2;
for ( it2 = dataMgr->getDestinationList().begin() ; it2 != dataMgr->getDestinationList().end() ; ++it2 )
destinations->insertItem( it2->getDestinationName() );
+ // setup general tab
#ifdef QWS
Config cfg( "aqpkg" );
cfg.setGroup( "settings" );
jumpTo->setChecked( cfg.readBoolEntry( "showJumpTo", "true" ) );
#else
jumpTo->setChecked( true );
#endif
+
+ // setup proxy tab
+ txtHttpProxy->setText( dataMgr->getHttpProxy() );
+ txtFtpProxy->setText( dataMgr->getFtpProxy() );
+ txtUsername->setText( dataMgr->getProxyUsername() );
+ txtPassword->setText( dataMgr->getProxyPassword() );
+ chkHttpProxyEnabled->setChecked( dataMgr->getHttpProxyEnabled() );
+ chkFtpProxyEnabled->setChecked( dataMgr->getFtpProxyEnabled() );
}
//------------------ Servers tab ----------------------
void SettingsImpl :: editServer( int sel )
{
currentSelectedServer = sel;
vector<Server>::iterator s = dataMgr->getServer( servers->currentText() );
serverName = s->getServerName();
servername->setText( s->getServerName() );
serverurl->setText( s->getServerUrl() );
active->setChecked( s->isServerActive() );
}
void SettingsImpl :: newServer()
{
newserver = true;
servername->setText( "" );
serverurl->setText( "" );
servername->setFocus();
active->setChecked( true );
}
void SettingsImpl :: removeServer()
@@ -223,24 +232,36 @@ void SettingsImpl :: changeDestinationDetails()
dataMgr->getDestinationList().push_back( Destination( newName, destinationurl->text() ) );
destinations->insertItem( newName );
destinations->setCurrentItem( destinations->count() );
newdestination = false;
#ifdef QWS
QString key = newName;
key += "_linkToRoot";
cfg.writeEntry( key, true );
#endif
}
}
//------------------ General tab ----------------------
void SettingsImpl :: toggleJumpTo( bool val )
{
#ifdef QWS
Config cfg( "aqpkg" );
cfg.setGroup( "settings" );
cfg.writeEntry( "showJumpTo", val );
#endif
}
+//------------------ Proxy tab ----------------------
+void SettingsImpl :: proxyApplyChanges()
+{
+ changed = true;
+ dataMgr->setHttpProxy( txtHttpProxy->text() );
+ dataMgr->setFtpProxy( txtFtpProxy->text() );
+ dataMgr->setProxyUsername( txtUsername->text() );
+ dataMgr->setProxyPassword( txtPassword->text() );
+
+ dataMgr->setHttpProxyEnabled( chkHttpProxyEnabled->isChecked() );
+ dataMgr->setFtpProxyEnabled( chkFtpProxyEnabled->isChecked() );
+}
diff --git a/noncore/settings/aqpkg/settingsimpl.h b/noncore/settings/aqpkg/settingsimpl.h
index 971516b..bb027dc 100644
--- a/noncore/settings/aqpkg/settingsimpl.h
+++ b/noncore/settings/aqpkg/settingsimpl.h
@@ -30,25 +30,27 @@ public:
private:
DataManager *dataMgr;
QString serverName;
QString destinationName;
int currentSelectedServer;
int currentSelectedDestination;
bool changed;
bool newserver;
bool newdestination;
void setupConnections();
void setupData();
void editServer( int s );
void changeServerDetails();
void newServer();
void removeServer();
void editDestination( int s );
void changeDestinationDetails();
void newDestination();
void removeDestination();
void toggleJumpTo( bool val );
+
+ void proxyApplyChanges();
};