Merge branch 'qmake-to-cmake-migration' of https://github.com/amnezia-vpn/desktop-client into qmake-to-cmake-migration
This commit is contained in:
commit
e65d312503
13 changed files with 299 additions and 5 deletions
255
.github/workflows/deploy.yml
vendored
Normal file
255
.github/workflows/deploy.yml
vendored
Normal file
|
@ -0,0 +1,255 @@
|
||||||
|
name: 'Deploy workflow'
|
||||||
|
|
||||||
|
on: [push]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
Build-Linux-Ubuntu:
|
||||||
|
name: 'Build-Linux-Ubuntu'
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
env:
|
||||||
|
QT_VERSION: 5.15.2
|
||||||
|
QIF_VERSION: 4.5
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: 'Install Qt'
|
||||||
|
uses: jurplel/install-qt-action@v3
|
||||||
|
with:
|
||||||
|
version: ${{ env.QT_VERSION }}
|
||||||
|
host: 'linux'
|
||||||
|
target: 'desktop'
|
||||||
|
arch: 'gcc_64'
|
||||||
|
dir: ${{ runner.temp }}
|
||||||
|
setup-python: 'true'
|
||||||
|
tools: 'tools_ifw'
|
||||||
|
set-env: 'true'
|
||||||
|
extra: '--external 7z'
|
||||||
|
|
||||||
|
- name: 'Get sources'
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
with:
|
||||||
|
submodules: 'true'
|
||||||
|
fetch-depth: 10
|
||||||
|
|
||||||
|
- name: 'Setup ccache'
|
||||||
|
uses: hendrikmuhs/ccache-action@v1.2
|
||||||
|
|
||||||
|
- name: 'Build project'
|
||||||
|
run: |
|
||||||
|
export QT_BIN_DIR=${{ runner.temp }}/Qt/${{ env.QT_VERSION }}/gcc_64/bin
|
||||||
|
export QIF_BIN_DIR=${{ runner.temp }}/Qt/Tools/QtInstallerFramework/${{ env.QIF_VERSION }}/bin
|
||||||
|
bash deploy/build_linux.sh
|
||||||
|
|
||||||
|
# ------------------------------------------------------
|
||||||
|
|
||||||
|
Build-Windows:
|
||||||
|
name: Build-Windows
|
||||||
|
runs-on: windows-latest
|
||||||
|
continue-on-error: true
|
||||||
|
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
arch: [32, 64]
|
||||||
|
include:
|
||||||
|
- qt-arch: 'win32_msvc2019'
|
||||||
|
arch: 32
|
||||||
|
- qt-msvc-path: 'msvc2019'
|
||||||
|
arch: 32
|
||||||
|
- msvc-arch: 'x86'
|
||||||
|
arch: 32
|
||||||
|
- qt-arch: 'win64_msvc2019_64'
|
||||||
|
arch: 64
|
||||||
|
- qt-msvc-path: 'msvc2019_64'
|
||||||
|
arch: 64
|
||||||
|
- msvc-arch: 'x64'
|
||||||
|
arch: 64
|
||||||
|
|
||||||
|
env:
|
||||||
|
QT_VERSION: 5.15.2
|
||||||
|
QIF_VERSION: 4.5
|
||||||
|
BUILD_ARCH: ${{ matrix.arch }}
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: 'Get sources'
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
with:
|
||||||
|
submodules: 'true'
|
||||||
|
fetch-depth: 10
|
||||||
|
|
||||||
|
- name: 'Setup ccache'
|
||||||
|
uses: hendrikmuhs/ccache-action@v1.2
|
||||||
|
|
||||||
|
- name: 'Install Qt'
|
||||||
|
uses: jurplel/install-qt-action@v3
|
||||||
|
with:
|
||||||
|
version: ${{ env.QT_VERSION }}
|
||||||
|
host: 'windows'
|
||||||
|
target: 'desktop'
|
||||||
|
arch: '${{ matrix.qt-arch }}'
|
||||||
|
dir: ${{ runner.temp }}
|
||||||
|
setup-python: 'true'
|
||||||
|
tools: 'tools_ifw'
|
||||||
|
set-env: 'true'
|
||||||
|
extra: '--external 7z'
|
||||||
|
|
||||||
|
- name: 'Setup mvsc'
|
||||||
|
uses: ilammy/msvc-dev-cmd@v1
|
||||||
|
with:
|
||||||
|
arch: ${{ matrix.msvc-arch }}
|
||||||
|
|
||||||
|
- name: 'Build project'
|
||||||
|
shell: cmd
|
||||||
|
run: |
|
||||||
|
set BUILD_ARCH=${{ env.BUILD_ARCH }}
|
||||||
|
set QT_BIN_DIR="${{ runner.temp }}\\Qt\\${{ env.QT_VERSION }}\\${{ matrix.qt-msvc-path }}\\bin"
|
||||||
|
set QIF_BIN_DIR="${{ runner.temp }}\\Qt\\Tools\\QtInstallerFramework\\${{ env.QIF_VERSION }}\\bin"
|
||||||
|
call deploy\\build_windows.bat
|
||||||
|
|
||||||
|
# ------------------------------------------------------
|
||||||
|
|
||||||
|
Build-IOS:
|
||||||
|
name: 'Build-IOS'
|
||||||
|
runs-on: macos-latest
|
||||||
|
|
||||||
|
env:
|
||||||
|
QT_VERSION: 5.15.2
|
||||||
|
QIF_VERSION: 4.4
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: 'Setup xcode'
|
||||||
|
uses: maxim-lobanov/setup-xcode@v1
|
||||||
|
with:
|
||||||
|
xcode-version: '13.4'
|
||||||
|
|
||||||
|
- name: 'Install Qt'
|
||||||
|
uses: jurplel/install-qt-action@v3
|
||||||
|
with:
|
||||||
|
version: ${{ env.QT_VERSION }}
|
||||||
|
host: 'mac'
|
||||||
|
target: 'ios'
|
||||||
|
dir: ${{ runner.temp }}
|
||||||
|
setup-python: 'true'
|
||||||
|
set-env: 'true'
|
||||||
|
extra: '--external 7z'
|
||||||
|
|
||||||
|
- name: 'Install go'
|
||||||
|
uses: actions/setup-go@v3
|
||||||
|
|
||||||
|
- name: 'Setup gomobile'
|
||||||
|
run: |
|
||||||
|
export PATH=$PATH:~/go/bin
|
||||||
|
go install golang.org/x/mobile/cmd/gomobile@latest
|
||||||
|
gomobile init
|
||||||
|
|
||||||
|
- name: 'Get sources'
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
with:
|
||||||
|
submodules: 'true'
|
||||||
|
fetch-depth: 10
|
||||||
|
|
||||||
|
- name: 'Setup ccache'
|
||||||
|
uses: hendrikmuhs/ccache-action@v1.2
|
||||||
|
|
||||||
|
- name: 'Build project'
|
||||||
|
run: |
|
||||||
|
export QT_BIN_DIR="${{ runner.temp }}/Qt/${{ env.QT_VERSION }}/ios/bin"
|
||||||
|
export QT_IOS_BIN=$QT_BIN_DIR
|
||||||
|
export PATH=$PATH:~/go/bin
|
||||||
|
bash deploy/build_ios.sh
|
||||||
|
|
||||||
|
# ------------------------------------------------------
|
||||||
|
|
||||||
|
Build-MacOS:
|
||||||
|
name: 'Build-MacOS'
|
||||||
|
runs-on: macos-latest
|
||||||
|
|
||||||
|
env:
|
||||||
|
QT_VERSION: 5.15.2
|
||||||
|
QIF_VERSION: 4.5
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: 'Setup xcode'
|
||||||
|
uses: maxim-lobanov/setup-xcode@v1
|
||||||
|
with:
|
||||||
|
xcode-version: '13.4'
|
||||||
|
|
||||||
|
- name: 'Install Qt'
|
||||||
|
uses: jurplel/install-qt-action@v3
|
||||||
|
with:
|
||||||
|
version: ${{ env.QT_VERSION }}
|
||||||
|
host: 'mac'
|
||||||
|
target: 'desktop'
|
||||||
|
arch: 'clang_64'
|
||||||
|
dir: ${{ runner.temp }}
|
||||||
|
setup-python: 'true'
|
||||||
|
tools: 'tools_ifw'
|
||||||
|
set-env: 'true'
|
||||||
|
extra: '--external 7z'
|
||||||
|
|
||||||
|
- name: 'Get sources'
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
with:
|
||||||
|
submodules: 'true'
|
||||||
|
fetch-depth: 10
|
||||||
|
|
||||||
|
- name: 'Setup ccache'
|
||||||
|
uses: hendrikmuhs/ccache-action@v1.2
|
||||||
|
|
||||||
|
- name: 'Build project'
|
||||||
|
run: |
|
||||||
|
export QT_BIN_DIR="${{ runner.temp }}/Qt/${{ env.QT_VERSION }}/clang_64/bin"
|
||||||
|
export QIF_BIN_DIR="${{ runner.temp }}/Qt/Tools/QtInstallerFramework/${{ env.QIF_VERSION }}/bin"
|
||||||
|
bash deploy/build_macos.sh
|
||||||
|
|
||||||
|
# ------------------------------------------------------
|
||||||
|
|
||||||
|
Build-Android:
|
||||||
|
name: 'Build-Android'
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
env:
|
||||||
|
QT_VERSION: 5.15.2
|
||||||
|
QIF_VERSION: 4.5
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: 'Install Qt'
|
||||||
|
uses: jurplel/install-qt-action@v3
|
||||||
|
with:
|
||||||
|
version: ${{ env.QT_VERSION }}
|
||||||
|
host: 'linux'
|
||||||
|
target: 'android'
|
||||||
|
arch: 'android'
|
||||||
|
dir: ${{ runner.temp }}
|
||||||
|
setup-python: 'true'
|
||||||
|
set-env: 'true'
|
||||||
|
extra: '--external 7z'
|
||||||
|
|
||||||
|
- name: 'Get sources'
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
with:
|
||||||
|
submodules: 'true'
|
||||||
|
fetch-depth: 10
|
||||||
|
|
||||||
|
- name: 'Setup ccache'
|
||||||
|
uses: hendrikmuhs/ccache-action@v1.2
|
||||||
|
|
||||||
|
- name: 'Setup Java'
|
||||||
|
uses: actions/setup-java@v3
|
||||||
|
with:
|
||||||
|
distribution: 'temurin'
|
||||||
|
java-version: '8'
|
||||||
|
|
||||||
|
- name: 'Build project'
|
||||||
|
run: |
|
||||||
|
export NDK_VERSION=21d
|
||||||
|
export ANDROID_NDK_PLATFORM=android-21
|
||||||
|
export ANDROID_NDK_HOME=${{ runner.temp }}/android-ndk-r${NDK_VERSION}
|
||||||
|
export ANDROID_NDK_ROOT=$ANDROID_NDK_HOME
|
||||||
|
|
||||||
|
if [ ! -f $ANDROID_NDK_ROOT/ndk-build ]; then
|
||||||
|
wget https://dl.google.com/android/repository/android-ndk-r${NDK_VERSION}-linux-x86_64.zip -qO ${{ runner.temp }}/ndk.zip &&
|
||||||
|
unzip -q -d ${{ runner.temp }} ${{ runner.temp }}/ndk.zip ;
|
||||||
|
fi
|
||||||
|
|
||||||
|
export QT_BIN_DIR=${{ runner.temp }}/Qt/${{ env.QT_VERSION }}/android/bin
|
||||||
|
bash deploy/build_android.sh
|
|
@ -662,6 +662,11 @@ ServerController::Vars ServerController::genVarsForScript(const ServerCredential
|
||||||
vars.append({{"$OPENVPN_TA_KEY", "" }});
|
vars.append({{"$OPENVPN_TA_KEY", "" }});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
vars.append({{"$OPENVPN_ADDITIONAL_CLIENT_CONFIG", openvpnConfig.value(config_key::additional_client_config).
|
||||||
|
toString(protocols::openvpn::defaultAdditionalClientConfig) }});
|
||||||
|
vars.append({{"$OPENVPN_ADDITIONAL_SERVER_CONFIG", openvpnConfig.value(config_key::additional_server_config).
|
||||||
|
toString(protocols::openvpn::defaultAdditionalServerConfig) }});
|
||||||
|
|
||||||
// ShadowSocks vars
|
// ShadowSocks vars
|
||||||
vars.append({{"$SHADOWSOCKS_SERVER_PORT", ssConfig.value(config_key::port).toString(protocols::shadowsocks::defaultPort) }});
|
vars.append({{"$SHADOWSOCKS_SERVER_PORT", ssConfig.value(config_key::port).toString(protocols::shadowsocks::defaultPort) }});
|
||||||
vars.append({{"$SHADOWSOCKS_LOCAL_PORT", ssConfig.value(config_key::local_port).toString(protocols::shadowsocks::defaultLocalProxyPort) }});
|
vars.append({{"$SHADOWSOCKS_LOCAL_PORT", ssConfig.value(config_key::local_port).toString(protocols::shadowsocks::defaultLocalProxyPort) }});
|
||||||
|
|
|
@ -53,6 +53,9 @@ constexpr char subnet_address[] = "subnet_address";
|
||||||
constexpr char subnet_mask[] = "subnet_mask";
|
constexpr char subnet_mask[] = "subnet_mask";
|
||||||
constexpr char subnet_cidr[] = "subnet_cidr";
|
constexpr char subnet_cidr[] = "subnet_cidr";
|
||||||
|
|
||||||
|
constexpr char additional_client_config[] = "additional_client_config";
|
||||||
|
constexpr char additional_server_config[] = "additional_server_config";
|
||||||
|
|
||||||
// proto config keys
|
// proto config keys
|
||||||
constexpr char last_config[] = "last_config";
|
constexpr char last_config[] = "last_config";
|
||||||
}
|
}
|
||||||
|
@ -82,6 +85,8 @@ constexpr bool defaultTlsAuth = true;
|
||||||
constexpr char ncpDisableString[] = "ncp-disable";
|
constexpr char ncpDisableString[] = "ncp-disable";
|
||||||
constexpr char tlsAuthString[] = "tls-auth /opt/amnezia/openvpn/ta.key 0";
|
constexpr char tlsAuthString[] = "tls-auth /opt/amnezia/openvpn/ta.key 0";
|
||||||
|
|
||||||
|
constexpr char defaultAdditionalClientConfig[] = "";
|
||||||
|
constexpr char defaultAdditionalServerConfig[] = "";
|
||||||
}
|
}
|
||||||
|
|
||||||
namespace shadowsocks {
|
namespace shadowsocks {
|
||||||
|
|
|
@ -23,4 +23,5 @@ verb 1
|
||||||
tls-server
|
tls-server
|
||||||
tls-version-min 1.2
|
tls-version-min 1.2
|
||||||
$OPENVPN_TLS_AUTH
|
$OPENVPN_TLS_AUTH
|
||||||
|
$OPENVPN_ADDITIONAL_SERVER_CONFIG
|
||||||
EOF
|
EOF
|
||||||
|
|
|
@ -21,6 +21,8 @@ block-outside-dns
|
||||||
|
|
||||||
remote $REMOTE_HOST $OPENVPN_PORT
|
remote $REMOTE_HOST $OPENVPN_PORT
|
||||||
|
|
||||||
|
$OPENVPN_ADDITIONAL_CLIENT_CONFIG
|
||||||
|
|
||||||
<ca>
|
<ca>
|
||||||
$OPENVPN_CA_CERT
|
$OPENVPN_CA_CERT
|
||||||
</ca>
|
</ca>
|
||||||
|
|
|
@ -23,6 +23,7 @@ verb 1
|
||||||
tls-server
|
tls-server
|
||||||
tls-version-min 1.2
|
tls-version-min 1.2
|
||||||
$OPENVPN_TLS_AUTH
|
$OPENVPN_TLS_AUTH
|
||||||
|
$OPENVPN_ADDITIONAL_SERVER_CONFIG
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
# Cloak config
|
# Cloak config
|
||||||
|
|
|
@ -22,6 +22,8 @@ block-outside-dns
|
||||||
route $REMOTE_HOST 255.255.255.255 net_gateway
|
route $REMOTE_HOST 255.255.255.255 net_gateway
|
||||||
remote 127.0.0.1 1194
|
remote 127.0.0.1 1194
|
||||||
|
|
||||||
|
$OPENVPN_ADDITIONAL_CLIENT_CONFIG
|
||||||
|
|
||||||
<ca>
|
<ca>
|
||||||
$OPENVPN_CA_CERT
|
$OPENVPN_CA_CERT
|
||||||
</ca>
|
</ca>
|
||||||
|
|
|
@ -23,6 +23,7 @@ verb 1
|
||||||
tls-server
|
tls-server
|
||||||
tls-version-min 1.2
|
tls-version-min 1.2
|
||||||
$OPENVPN_TLS_AUTH
|
$OPENVPN_TLS_AUTH
|
||||||
|
$OPENVPN_ADDITIONAL_SERVER_CONFIG
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
# ShadowSocks config
|
# ShadowSocks config
|
||||||
|
|
|
@ -23,6 +23,8 @@ socks-proxy 127.0.0.1 $SHADOWSOCKS_LOCAL_PORT
|
||||||
route $REMOTE_HOST 255.255.255.255 net_gateway
|
route $REMOTE_HOST 255.255.255.255 net_gateway
|
||||||
remote $REMOTE_HOST $OPENVPN_PORT
|
remote $REMOTE_HOST $OPENVPN_PORT
|
||||||
|
|
||||||
|
$OPENVPN_ADDITIONAL_CLIENT_CONFIG
|
||||||
|
|
||||||
<ca>
|
<ca>
|
||||||
$OPENVPN_CA_CERT
|
$OPENVPN_CA_CERT
|
||||||
</ca>
|
</ca>
|
||||||
|
|
|
@ -21,6 +21,8 @@ OpenVpnLogic::OpenVpnLogic(UiLogic *logic, QObject *parent):
|
||||||
m_checkBoxBlockDnsChecked{false},
|
m_checkBoxBlockDnsChecked{false},
|
||||||
m_lineEditPortText{},
|
m_lineEditPortText{},
|
||||||
m_checkBoxTlsAuthChecked{false},
|
m_checkBoxTlsAuthChecked{false},
|
||||||
|
m_textAreaAdditionalClientConfig{""},
|
||||||
|
m_textAreaAdditionalServerConfig{""},
|
||||||
m_pushButtonSaveVisible{false},
|
m_pushButtonSaveVisible{false},
|
||||||
m_progressBarResetVisible{false},
|
m_progressBarResetVisible{false},
|
||||||
|
|
||||||
|
@ -67,6 +69,14 @@ void OpenVpnLogic::updateProtocolPage(const QJsonObject &openvpnConfig, DockerCo
|
||||||
bool isTlsAuth = openvpnConfig.value(config_key::tls_auth).toBool(protocols::openvpn::defaultTlsAuth);
|
bool isTlsAuth = openvpnConfig.value(config_key::tls_auth).toBool(protocols::openvpn::defaultTlsAuth);
|
||||||
set_checkBoxTlsAuthChecked(isTlsAuth);
|
set_checkBoxTlsAuthChecked(isTlsAuth);
|
||||||
|
|
||||||
|
QString additionalClientConfig = openvpnConfig.value(config_key::additional_client_config).
|
||||||
|
toString(protocols::openvpn::defaultAdditionalClientConfig);
|
||||||
|
set_textAreaAdditionalClientConfig(additionalClientConfig);
|
||||||
|
|
||||||
|
QString additionalServerConfig = openvpnConfig.value(config_key::additional_server_config).
|
||||||
|
toString(protocols::openvpn::defaultAdditionalServerConfig);
|
||||||
|
set_textAreaAdditionalServerConfig(additionalServerConfig);
|
||||||
|
|
||||||
if (container == DockerContainer::ShadowSocks) {
|
if (container == DockerContainer::ShadowSocks) {
|
||||||
set_radioButtonUdpEnabled(false);
|
set_radioButtonUdpEnabled(false);
|
||||||
set_radioButtonTcpEnabled(false);
|
set_radioButtonTcpEnabled(false);
|
||||||
|
@ -142,5 +152,7 @@ QJsonObject OpenVpnLogic::getProtocolConfigFromPage(QJsonObject oldConfig)
|
||||||
oldConfig.insert(config_key::block_outside_dns, checkBoxBlockDnsChecked());
|
oldConfig.insert(config_key::block_outside_dns, checkBoxBlockDnsChecked());
|
||||||
oldConfig.insert(config_key::port, lineEditPortText());
|
oldConfig.insert(config_key::port, lineEditPortText());
|
||||||
oldConfig.insert(config_key::tls_auth, checkBoxTlsAuthChecked());
|
oldConfig.insert(config_key::tls_auth, checkBoxTlsAuthChecked());
|
||||||
|
oldConfig.insert(config_key::additional_client_config, textAreaAdditionalClientConfig());
|
||||||
|
oldConfig.insert(config_key::additional_server_config, textAreaAdditionalServerConfig());
|
||||||
return oldConfig;
|
return oldConfig;
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,6 +22,8 @@ class OpenVpnLogic : public PageProtocolLogicBase
|
||||||
AUTO_PROPERTY(bool, checkBoxBlockDnsChecked)
|
AUTO_PROPERTY(bool, checkBoxBlockDnsChecked)
|
||||||
AUTO_PROPERTY(QString, lineEditPortText)
|
AUTO_PROPERTY(QString, lineEditPortText)
|
||||||
AUTO_PROPERTY(bool, checkBoxTlsAuthChecked)
|
AUTO_PROPERTY(bool, checkBoxTlsAuthChecked)
|
||||||
|
AUTO_PROPERTY(QString, textAreaAdditionalClientConfig)
|
||||||
|
AUTO_PROPERTY(QString, textAreaAdditionalServerConfig)
|
||||||
|
|
||||||
AUTO_PROPERTY(bool, pushButtonSaveVisible)
|
AUTO_PROPERTY(bool, pushButtonSaveVisible)
|
||||||
AUTO_PROPERTY(bool, progressBarResetVisible)
|
AUTO_PROPERTY(bool, progressBarResetVisible)
|
||||||
|
|
|
@ -281,7 +281,10 @@ PageProtocolBase {
|
||||||
font.styleName: "normal"
|
font.styleName: "normal"
|
||||||
font.pixelSize: 16
|
font.pixelSize: 16
|
||||||
color: "#181922"
|
color: "#181922"
|
||||||
|
text: logic.textAreaAdditionalClientConfig
|
||||||
|
onEditingFinished: {
|
||||||
|
logic.textAreaAdditionalClientConfig = text
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -294,7 +297,7 @@ PageProtocolBase {
|
||||||
|
|
||||||
implicitWidth: parent.width
|
implicitWidth: parent.width
|
||||||
height: 21
|
height: 21
|
||||||
text: qsTr("Additional client config commands →")
|
text: qsTr("Additional server config commands →")
|
||||||
background: Item {
|
background: Item {
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
}
|
}
|
||||||
|
@ -305,7 +308,7 @@ PageProtocolBase {
|
||||||
font.styleName: "normal"
|
font.styleName: "normal"
|
||||||
font.pixelSize: 16
|
font.pixelSize: 16
|
||||||
color: "#15CDCB";
|
color: "#15CDCB";
|
||||||
text: pb_client_config.text
|
text: pb_server_config.text
|
||||||
horizontalAlignment: Text.AlignLeft
|
horizontalAlignment: Text.AlignLeft
|
||||||
verticalAlignment: Text.AlignVCenter
|
verticalAlignment: Text.AlignVCenter
|
||||||
}
|
}
|
||||||
|
@ -331,7 +334,10 @@ PageProtocolBase {
|
||||||
font.styleName: "normal"
|
font.styleName: "normal"
|
||||||
font.pixelSize: 16
|
font.pixelSize: 16
|
||||||
color: "#181922"
|
color: "#181922"
|
||||||
|
text: logic.textAreaAdditionalServerConfig
|
||||||
|
onEditingFinished: {
|
||||||
|
logic.textAreaAdditionalServerConfig = text
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,7 @@ echo "Build script started ..."
|
||||||
|
|
||||||
set -o errexit -o nounset
|
set -o errexit -o nounset
|
||||||
|
|
||||||
while getopts n: flag
|
while getopts n flag
|
||||||
do
|
do
|
||||||
case "${flag}" in
|
case "${flag}" in
|
||||||
n) NOTARIZE_APP=1;;
|
n) NOTARIZE_APP=1;;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue