summaryrefslogtreecommitdiff
path: root/client/Dialog.cpp
diff options
context:
space:
mode:
authorAlex Borisov <borisov.alexandr@rambler.ru>2011-12-19 04:04:57 +0200
committerAlex Borisov <borisov.alexandr@rambler.ru>2011-12-19 04:04:57 +0200
commit816941559161cbc54d5373713cf07fb3fe40e311 (patch)
treeb0b697f4ed0a3a1b82b4478cbd93e6f3d6da5f02 /client/Dialog.cpp
parent5e33822db1ecbcd49ac85e46a95061dd7522f28c (diff)
XML config public API. read/write static proxies to/from XML. few bug fixes
Diffstat (limited to 'client/Dialog.cpp')
-rw-r--r--client/Dialog.cpp40
1 files changed, 32 insertions, 8 deletions
diff --git a/client/Dialog.cpp b/client/Dialog.cpp
index 4c92a79..279bfc8 100644
--- a/client/Dialog.cpp
+++ b/client/Dialog.cpp
@@ -52,7 +52,7 @@ ProxyDialog::ProxyDialog(QWidget *parent): QDialog(parent)
genericProxyGroup = new QButtonGroup;
staticProxyGroup = new QButtonGroup;
- /* static proxy panel */
+ // static proxy panel
bottomLabel = new QLabel(QString::fromLocal8Bit(cfg->BottomPanelText.c_str()));
bottomLabel->setObjectName("bottomLabel");
bottomLabel->setAlignment(Qt::AlignHCenter);
@@ -91,7 +91,10 @@ ProxyDialog::ProxyDialog(QWidget *parent): QDialog(parent)
QPushButton *btn = new QPushButton();
btn->setObjectName("bottomBtn");
btn->setCheckable(true);
+ btn->setChecked(proxifier->IsOn(staticProxyLine[j].host, staticProxyLine[j].port));
+ btn->setProperty("proxyName", QString::fromLocal8Bit(staticProxyLine[j].name.c_str()));
btn->setLayout(btnLayout);
+ connect(btn, SIGNAL(toggled(bool)), this, SLOT(StaticToggled(bool)));
staticProxyGroup->addButton(btn);
bottomPanelLayout->addWidget(btn, i, j);
}
@@ -106,14 +109,35 @@ ProxyDialog::ProxyDialog(QWidget *parent): QDialog(parent)
setLayout(mainLayout);
}
-void ProxyDialog::StaticToggle(bool val)
+void ProxyDialog::StaticToggled(bool on)
{
- Logger::Debug("toggle: %s\n", val ? "true" : "false");
-}
-
-void ProxyDialog::StaticClick()
-{
- Logger::Debug("click\n");
+ QPushButton* btn = (QPushButton*) sender();
+ QVariant propVal = btn->property("proxyName");
+ QString proxyName = propVal.toString();
+ Logger::Debug("Static Proxy button toggled\n");
+ Logger::Debug("State '%s', associated proxy name: %s\n", on ? "down" : "up", proxyName.toStdString().c_str());
+
+ UpdatedConfig *cfg = UpdatedConfig::CurrentConfig();
+ string name = proxyName.toStdString();
+ ProxyEntryStatic* proxy = cfg->GetStaticProxy(name);
+ if (proxy == NULL)
+ {
+ Logger::Error("Static proxy with name '%s' was not found\n", proxyName.toStdString().c_str());
+ return;
+ }
+ Proxifier *proxifier = Proxifier::GetInstance();
+ if (!proxifier->IsValid())
+ {
+ Logger::Fatal("No valid proxifier configuration file found!\n");
+ }
+ if (on)
+ {
+ proxifier->TurnProxyOn(*proxy);
+ }
+ else
+ {
+ proxifier->TurnProxyOff(*proxy);
+ }
}
void ProxyDialog::CountryActivated(int index)