id: connect
text: "Connect"
enabled: true
- onClicked: VpnControl.vpnConnect()
+ onClicked: {
+ VpnControl.logAppend('\n')
+ VpnControl.vpnConnect()
+ }
}
Button {
id : disconnect
onClicked: VpnControl.vpnDisconnect();
}
}
+
Label {
id: statusText
text: "No status"
BusyIndicator {
id: busy
running: false
- size: BusyIndicatorSize.Large
+ size: BusyIndicatorSize.Medium
anchors.verticalCenter: parent.verticalCenter
}
}
}
//radius: Theme.paddingSmall
anchors.horizontalCenter: parent.horizontalCenter
- height: (20 * Theme.fontSizeTiny) + (2 * Theme.paddingLarge)
+ height: (24 * Theme.fontSizeTiny) + (2 * Theme.paddingLarge)
width: parent.width - 2 * Theme.paddingLarge
x: Theme.paddingLarge
+ //TextEdit {
Label {
id: logOutput
textFormat: Text.PlainText
width: parent.width - 2 * Theme.paddingSmall
- height: parent.height - 2 * Theme.paddingSmall
+ height: parent.height - 0 * Theme.paddingSmall
wrapMode: Text.WrapAnywhere
font.pixelSize: Theme.fontSizeTiny * 0.6
font.family: "Monospace"
color: Theme.highlightColor
visible: true
text: VpnControl.logText
- maximumLineCount: Math.floor(18 / 0.6)
verticalAlignment: Text.AlignBottom
x: Theme.paddingSmall
y: Theme.paddingSmall
+ //readOnly: true
+ clip: true
}
}
}
arguments.clear();
addArgumentNonempty("config", configFile);
+ addOption("client", true);
+ addOption("persist-key", true);
+ addOption("persist-tun", true);
+ addOption("nobind", true);
+ addArgument("resolv-retry", "infinite");
+ addArgument("dev", "tun");
+ addArgument("verb", "3");
+ addArgument("proto", "udp");
+ addArgument("user", "nemo");
+ addArgument("group", "nemo");
addArgumentNonempty("remote", server);
addArgumentNonempty("port", QString::number(port));
addOption("comp-lzo", compressed);
void VPNControl::logAppend(const QString &text)
{
if (!text.isEmpty()) {
+ QString append = text;
+ // Ensure we end with a newline
+ if (!append.endsWith('\n')) {
+ append += '\n';
+ }
// How many lines to add
- int newLines = text.count('\n');
+ int newLines = append.count('\n');
int currentLines = logText.count('\n');
- int removeLines = currentLines + newLines - 18;
-
- // Remove excess lines
-// while (removeLines > 0) {
-// int nextLine = logText.indexOf('\n');
-// if (nextLine > 0) {
-// logText = logText.right(nextLine);
-// }
-// removeLines--;
-// }
+ int removeLines = currentLines + newLines - 24;
+
+ // Remove excess lines from the top
+ while (removeLines > 0) {
+ int nextLine = logText.indexOf('\n');
+ if (nextLine > 0) {
+ logText = logText.mid(nextLine + 1);
+ }
+ removeLines--;
+ }
// Add new lines
- logText.append(text);
+ logText.append(append);
emit logTextChanged(logText);
}
}