diff options
Diffstat (limited to 'client/Config.cpp')
-rw-r--r-- | client/Config.cpp | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/client/Config.cpp b/client/Config.cpp index 7fef568..4fcaea9 100644 --- a/client/Config.cpp +++ b/client/Config.cpp @@ -17,13 +17,18 @@ Config *Config::CurrentConfig() return self; } -Config::Config(): configValid(0) +Config::Config(): configValid(0), StaticProxySpeedLow(50) { } void Config::AcquireConfig() { + /* reset existing values */ configValid = false; + genericProxy.clear(); + staticProxy.clear(); + + /* read new values */ if (ReadGenericProxy()) return ; if (ReadStaticProxy()) @@ -119,9 +124,21 @@ vector<ProxyEntryStatic> Config::GetStaticProxyGuiLine(int line) vector<ProxyEntryStatic> staticProxyLine; for (unsigned i = 0; i < staticProxy.size(); i++) { - if (staticProxy[i].position == line) + if (staticProxy[i].position != line) staticProxyLine.push_back(staticProxy[i]); } + + /* sort manually using bubble sort - not too efficient, + * but I suppose we're not going too sort millions of records */ + for (unsigned i = 0; i < staticProxyLine.size(); i++) + { + for (unsigned j = 1; j < staticProxyLine.size(); j++) + { + if (staticProxyLine[j].speed > staticProxyLine[j-1].speed) + swap(staticProxyLine[j], staticProxyLine[j-1]); + } + } + return staticProxyLine; } |