21 #include <QMessageBox>
27 bool firstFormatted =
false;
29 for (
int i = 0;
i < text.length(); ++
i) {
30 if(text.mid(
i, 1) ==
" " and !firstFormatted) {
31 setFormat(0,
i, QColor(2,71,105));
32 setFormat(
i, text.length() - 1, Qt::gray);
33 firstFormatted =
true;
34 }
else if (text.mid(
i, 1) ==
"#") {
35 setFormat(
i, text.length() -
i, QColor(112,144,128));
70 QToolBar *tb =
new QToolBar(
this);
71 tb->addAction(
ui.actionCut);
72 tb->addAction(
ui.actionCopy);
73 tb->addAction(
ui.actionPaste);
74 tb->addAction(
ui.actionUndo);
75 tb->addAction(
ui.actionRedo);
76 tb->addAction(
ui.actionSelect_All);
78 tb->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
79 ui.verticalLayout->insertWidget(0, tb);
90 if(!errmsg) errmsg =
new QString(
"");
91 if(!
tc || !
tc->isConnected()) {
92 *errmsg = tr(
"Error connecting to Tor");
97 QStringList parts, lines;
99 if(
ui.rdoAll->isChecked())
100 lines =
ui.teditTorrc->toPlainText().split(
'\n', QString::SkipEmptyParts);
102 QString tmp =
ui.teditTorrc->toPlainText();
103 QTextCursor tcursor =
ui.teditTorrc->textCursor();
104 int start = tcursor.selectionStart();
105 int end = tcursor.selectionEnd();
106 tmp = tmp.mid(start, end - start).trimmed();
108 *errmsg = tr(
"Selection is empty. Please select some text, or check \"Apply all\"");
112 lines = tmp.split(
'\n', QString::SkipEmptyParts);
116 foreach(QString line, lines) {
118 line = line.trimmed();
119 if(line.startsWith(
"#"))
continue;
120 parts = line.split(
" ", QString::SkipEmptyParts);
121 if(parts.count() < 2) {
122 *errmsg = tr(
"Error at line %1: \"%2\"").arg(
i).arg(line);
127 QHash<QString,QString> settings;
128 foreach(QString line, lines) {
129 line = line.trimmed();
130 parts = line.split(
" ", QString::SkipEmptyParts);
133 val = parts.join(
" ");
134 settings.insert(key, val);
137 if(!
tc->setConf(settings, errmsg))
return false;
147 if(
tc &&
tc->isConnected()) {
149 QFile file(
tc->getInfo(
"config-file").toString());
150 if(file.open(QFile::ReadOnly)) {
151 QTextStream in(&file);
154 line = in.readLine();
156 }
while(!line.isNull());
157 ui.teditTorrc->setText(text);
159 QMessageBox::critical(
this, tr(
"Error"), tr(
"An error ocurred while opening torrc file"));
170 if(
tc &&
tc->isConnected()) {
172 QMessageBox::critical(
this, tr(
"Error"), errmsg);
175 if(
ui.chkSave->isChecked()) {
176 if(!
tc->saveConf(&errmsg)) {
177 QMessageBox::critical(
this, tr(
"Error"), errmsg);