GeneralPage.cpp
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #include "config.h"
00018 #include "GeneralPage.h"
00019
00020 #include "stringutil.h"
00021
00022 #include <QDateTime>
00023
00024
00025
00026 GeneralPage::GeneralPage(QWidget *parent)
00027 : ConfigPage(parent, "General")
00028 {
00029
00030 ui.setupUi(this);
00031
00032
00033 _vidaliaSettings = new VidaliaSettings;
00034 _torSettings = new TorSettings;
00035
00036
00037 connect(ui.btnBrowseTorExecutable, SIGNAL(clicked()),
00038 this, SLOT(browseTorExecutable()));
00039 connect(ui.btnBrowseProxyExecutable, SIGNAL(clicked()),
00040 this, SLOT(browseProxyExecutable()));
00041 connect(ui.btnUpdateNow, SIGNAL(clicked()), this, SLOT(updateNow()));
00042
00043 #if !defined(Q_OS_WIN32)
00044
00045 ui.chkRunVidaliaAtSystemStartup->setVisible(false);
00046 ui.lineHorizontalSeparator->setVisible(false);
00047 #endif
00048 #if !defined(USE_AUTOUPDATE)
00049 ui.grpSoftwareUpdates->setVisible(false);
00050 #endif
00051 }
00052
00053
00054 GeneralPage::~GeneralPage()
00055 {
00056 delete _vidaliaSettings;
00057 delete _torSettings;
00058 }
00059
00060
00061 void
00062 GeneralPage::retranslateUi()
00063 {
00064 ui.retranslateUi(this);
00065 }
00066
00067
00068
00069
00070
00071 QString
00072 GeneralPage::browseExecutable(const QString &caption, const QString &file)
00073 {
00074 #if defined(Q_OS_WIN32)
00075 QString filter = tr("Executables (*.exe)");
00076 #else
00077 QString filter = "";
00078 #endif
00079
00080 QString filePath = QFileDialog::getOpenFileName(this, caption, file, filter);
00081 return QDir::convertSeparators(filePath);
00082 }
00083
00084
00085 void
00086 GeneralPage::browseTorExecutable()
00087 {
00088 QString filePath = browseExecutable(tr("Select Path to Tor"),
00089 ui.lineTorExecutable->text());
00090 if (! filePath.isEmpty())
00091 ui.lineTorExecutable->setText(filePath);
00092 }
00093
00094
00095 void
00096 GeneralPage::browseProxyExecutable()
00097 {
00098 QString filePath = browseExecutable(tr("Select Proxy Executable"),
00099 ui.lineProxyExecutable->text());
00100
00101 if (! filePath.isEmpty())
00102 ui.lineProxyExecutable->setText(filePath);
00103 }
00104
00105
00106 bool
00107 GeneralPage::save(QString &errmsg)
00108 {
00109 QString torExecutable = ui.lineTorExecutable->text();
00110 if (torExecutable.isEmpty()) {
00111 errmsg = tr("You must specify the name of your Tor executable.");
00112 return false;
00113 }
00114 if (ui.chkRunProxyAtTorStartup->isChecked()) {
00115 _vidaliaSettings->setProxyExecutable(ui.lineProxyExecutable->text());
00116 _vidaliaSettings->setProxyExecutableArguments(
00117 ui.lineProxyExecutableArguments->text());
00118 }
00119
00120 _torSettings->setExecutable(torExecutable);
00121 _vidaliaSettings->setRunTorAtStart(ui.chkRunTorAtVidaliaStartup->isChecked());
00122 _vidaliaSettings->setRunVidaliaOnBoot(
00123 ui.chkRunVidaliaAtSystemStartup->isChecked());
00124 _vidaliaSettings->setRunProxyAtStart(
00125 ui.chkRunProxyAtTorStartup->isChecked());
00126 return true;
00127 }
00128
00129
00130 void
00131 GeneralPage::load()
00132 {
00133 ui.chkRunVidaliaAtSystemStartup->setChecked(
00134 _vidaliaSettings->runVidaliaOnBoot());
00135
00136 ui.lineTorExecutable->setText(_torSettings->getExecutable());
00137 ui.chkRunTorAtVidaliaStartup->setChecked(_vidaliaSettings->runTorAtStart());
00138
00139 ui.lineProxyExecutable->setText(_vidaliaSettings->getProxyExecutable());
00140 ui.lineProxyExecutableArguments->setText(
00141 _vidaliaSettings->getProxyExecutableArguments());
00142 ui.chkRunProxyAtTorStartup->setChecked(_vidaliaSettings->runProxyAtStart());
00143 }
00144
00145 void
00146 GeneralPage::updateNow()
00147 {
00148 emit checkForUpdates();
00149 }
00150