Compare commits

..

5 Commits

Author SHA1 Message Date
Dom Rodriguez
ad5ddb04d6 Fix hardcoded Qt5 to Qt6
Signed-off-by: Dom Rodriguez <shymega@shymega.org.uk>
2021-11-04 23:27:02 +00:00
Dom Rodriguez
f7a396f65f Test using Qt 6 for arm64 native
Signed-off-by: Dom Rodriguez <shymega@shymega.org.uk>
2021-11-04 23:22:04 +00:00
Dom Rodriguez
4c23f975d4 Remove CMAKE_OSX_ARCHITECTURES env variable, wrong place
Signed-off-by: Dom Rodriguez <shymega@shymega.org.uk>
2021-11-04 23:06:49 +00:00
Dom Rodriguez
9b48b4867b Adjust CMakeLists to compile for M1 and x86
Signed-off-by: Dom Rodriguez <shymega@shymega.org.uk>
2021-11-04 23:06:13 +00:00
Dom Rodriguez
4b373ba82b Refactoring of CI configurations and build scripts
Now, CI builds for macOS involve three separate builds for a range of macOS versions, and a final Universal macOS Binary made on Big Sur. It should work with the M1 chip and x86_64 Intel Macs.

I have also renamed osx_environment->macOS_environment.sh to reflect the new name change of Apple's desktop OS.

In terms of the clean_builds.sh script, this has also been refactored to be more resilient, and efficient (marginally).

Signed-off-by: Dom Rodriguez <shymega@shymega.org.uk>
2021-11-04 21:56:26 +00:00
27 changed files with 278 additions and 274 deletions

View File

@@ -1,5 +1,6 @@
name: Bug Report
description: File a bug report (for questions, ideas & support, use the Discussions tab, or IRC for quick answers, but make sure to stay on the channel!)
labels: [bug, triage]
body:
- type: markdown
attributes:
@@ -29,8 +30,6 @@ body:
- v2.3.2-alpha
- v2.3.2
- v2.3.3
- v2.3.4
- v2.4.0
- From Git HEAD or commit (specify below)
validations:
required: true

View File

@@ -1,4 +1,3 @@
## Contributor Checklist:
* [ ] I have created a file in the `doc/newsfragments` directory *IF* it is a
user-visible change (and make sure to read the `README.md` in that directory)
* [ ] I have created a file in the `doc/newsfragments` directory (and read the `README.md` in that directory)

View File

@@ -420,6 +420,8 @@ if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
set (BARRIER_BUNDLE_APP_DIR ${BARRIER_BUNDLE_DIR}/Barrier.app)
set (BARRIER_BUNDLE_BINARY_DIR ${BARRIER_BUNDLE_APP_DIR}/Contents/MacOS)
set (CMAKE_OSX_ARCHITECTURES "arm64;x86_64")
configure_files (${BARRIER_BUNDLE_SOURCE_DIR} ${BARRIER_BUNDLE_DIR})
add_custom_target(Barrier_MacOS ALL

View File

@@ -82,67 +82,33 @@ specific packages.
[![Packaging status](https://repology.org/badge/vertical-allrepos/barrier.svg)](https://repology.org/project/barrier/versions)
## FAQ - Frequently Asked Questions
### FAQ
**Q: Does drag and drop work on linux?**
Q: Does drag and drop work on linux?
> A: No *(see [#855](https://github.com/debauchee/barrier/issues/855) if you'd like to change that)*
A: No
Q: What OSes are supported?
**Q: What OSes are supported?**
A:
- Windows 7, 8, 8.1, and 10
- MacOS/OS X
- Linux
- FreeBSD
- OpenBSD
> A: The [most recent release](https://github.com/debauchee/barrier/releases/latest) of Barrier is known to work on:
> - Windows 7, 8, 8.1, 10, and 11
> - macOS *(previously known as OS X or Mac OS X)*
> - _The current GUI does **not** work on OS versions prior to macOS 10.12 Sierra (but see the related answer below)_
> - Linux
> - FreeBSD
> - OpenBSD
Q: Are 32-bit versions of Windows supported?
A: No
**Q: Are 32-bit versions of Windows supported?**
Q: How do I load my configuration on startup?
> A: No
A: Start the binary with the argument `--config <path_to_saved_configuration>`
Q: After loading my configuration on the client the field 'Server IP' is still empty!
__Q: Is it possible to use Barrier on Mac OS X / OS X versions prior to 10.12?__
A: Edit your configuration to include the server's ip address manually with
> A: Not officially.
> - For OS X 10.10 Yosemite and later:
> - [Barrier v2.1.0](https://github.com/debauchee/barrier/releases/tag/v2.1.0) or earlier _may_ work.
> - For Mac OS X 10.9 Mavericks _(and perhaps earlier)_:
> 1. the command-line portions of the [current release](https://github.com/debauchee/barrier/releases/latest) _should_ run fine.
> 2. The GUI will _not_ run, as that OS version does not include Apple's *Metal* framework.
> - _(For a GUI workaround for Mac OS X 10.9, see the [discussion at issue #544](https://github.com/debauchee/barrier/issues/544))_
> Note: Only versions [v2.3.4](https://github.com/debauchee/barrier/releases/tag/v2.3.4) and [later](https://github.com/debauchee/barrier/releases/latest) of Barrier can be supported by this project.
> - Anyone using an earlier version is advised to upgrade due to recently-addressed security vulnerabilities *(and other bug fixes)*.
> - This is especially important for computers accessible from the public Internet *(or from other shared/untrusted networks, such as when using shared WiFi)*.
**Q: How do I load my configuration on startup?**
> A: Start the binary with the argument `--config <path_to_saved_configuration>`
**Q: After loading my configuration on the client the field 'Server IP' is still empty!**
> A: Edit your configuration to include the server's ip address manually with
>
>```
>(...)
>
>section: options
> serverhostname=<AAA.BBB.CCC.DDD>
>```
**Q: Are there any other significant limitations with the current version of Barrier?**
> A: Currently:
> - Barrier currently has limited UTF-8 support; issues have been reported with processing various languages.
> - *(see [#860](https://github.com/debauchee/barrier/issues/860))*
> - There is interest in future support for the Wayland compositor/display server protocol *([official site](https://wayland.freedesktop.org/) | [Wikipedia article](https://en.wikipedia.org/wiki/Wayland_(display_server_protocol)))* on Linux.
> - As of late 2021, there is no expected completion date for *Wayland* support.
> - *(see [#109](https://github.com/debauchee/barrier/issues/109) and [#1251](https://github.com/debauchee/barrier/issues/1251) for status or to volunteer your talents)*
>
> The complete list of open issues can be found in the ['Issues' tab on GitHub](https://github.com/debauchee/barrier/issues?q=is%3Aissue+is%3Aopen). Help is always appreciated.
(...)
section: options
serverhostname=<AAA.BBB.CCC.DDD>

View File

@@ -27,28 +27,11 @@ Check `newsfragments` directory for any forgotten release notes
Step 3: Merge the release notes PR
----------------------------------
Step 4: Bump the version number
-------------------------------
Step 4: Push git tag
--------------------
Pull the merge commit created on the `master` branch during the step 2.
Edit the following files and update the version numbers:
- `Build.properties`
- `cmake/Version.cmake`
- `doc/barrierc.1`
- `doc/barriers.1`
- `.github/ISSUE_TEMPLATE/bug_report.yml`
Commit to the release branch with the following message `Barrier x.y.z`.
Push the commit:
git push origin master
Step 5: Push git tag
--------------------
Create a tag:
git tag -s v${VERSION} -m v${VERSION}
@@ -58,7 +41,7 @@ Push the tag:
git push origin master --tags
Step 6: Draft a new release on Github
Step 5: Draft a new release on Github
-------------------------------------
Go to https://github.com/buildbot/buildbot/releases and draft a new release.
@@ -70,7 +53,7 @@ Use the release notes generated by the `towncrier` tool as the description of th
Upload the artifacts created by Azure pipelines as the binaries of the release. The following
artifacts should be uploaded to Github:
- the Barrier-X.Y.Z-release.dmg created by the newest Mac OS task (artifact name is
- the Barrier-X.Y.Z-release.dmg created by the oldest Mac OS task (artifact name is
"Mac Release Disk Image and App XYZ").
- the BarrierSetup-X.Y.Z-release.exe (artifact name is Windows Release Installer).

View File

@@ -79,22 +79,22 @@ jobs:
- script: sh -x ./clean_build.sh
displayName: Clean Build
- job: MacBuild
displayName: Mac Build
- job: macOStests
displayName: macOS Tests
strategy:
matrix:
big-sur-Release:
big-sur:
imageName: "macOS-11"
B_BUILD_TYPE: Release
BARRIER_VERSION_STAGE: Release
B_BUILD_TYPE: Debug
BARRIER_VERSION_STAGE: Debug
catalina-Release:
imageName: "macOS-10.15"
B_BUILD_TYPE: Release
BARRIER_VERSION_STAGE: Release
B_BUILD_TYPE: Debug
BARRIER_VERSION_STAGE: Debug
mojave-Release:
imageName: "macOS-10.14"
B_BUILD_TYPE: Release
BARRIER_VERSION_STAGE: Release
B_BUILD_TYPE: Debug
BARRIER_VERSION_STAGE: Debug
pool:
vmImage: $(imageName)
variables:
@@ -109,9 +109,28 @@ jobs:
displayName: Install Qt5 and pkg-config prereqs
- script: sh -x ./clean_build.sh
displayName: Clean Build
- job: macOSRelease
displayName: macOS Universal Binary Release Builds
pool:
vmImage: "macOS-11"
variables:
VERBOSE: 1
TERM: xterm-256color
B_BUILD_TYPE: Release
BARRIER_VERSION_STAGE: Release
steps:
- script: rm -rf /usr/local/opt/openssl
displayName: Remove incompatible OpenSSL 1.0.2t from macOS-10.14 vmImage
- script: brew reinstall openssl
displayName: Installed newer OpenSSL 1.1.x
- script: brew install pkg-config qt
displayName: Install Qt5 and pkg-config prereqs
- script: sh -x ./clean_build.sh
displayName: Clean Build
- task: PublishBuildArtifacts@1
displayName: Publish Release DMG
condition: eq(variables['B_BUILD_TYPE'], 'Release')
inputs:
pathtoPublish: build/bundle
artifactName: Mac Release Disk Image and App $(imageName)
artifactName: Universal Binary for macOS

View File

@@ -1,32 +1,74 @@
#!/bin/sh
cd "$(dirname "$0")" || exit 1
# some environments have cmake v2 as 'cmake' and v3 as 'cmake3'
# check for cmake3 first then fallback to just cmake
B_CMAKE=`type cmake3 2>/dev/null`
if [ $? -eq 0 ]; then
B_CMAKE=`echo "$B_CMAKE" | cut -d' ' -f3`
B_CMAKE=$(command -v cmake3 2>/dev/null)
if [ "$?" -eq 0 ]; then
# Continue, cmake3 exists in $PATH.
continue
else
B_CMAKE=cmake
# OK, so cmake3 isn't in path, so let's test to see if `cmake` itself exists, before proceeding.
if command -v cmake 2>/dev/null; then
B_CMAKE=$(command -v cmake)
# We have a cmake executable available, now let's proceed!
else
# As self-explanatory, the cmake executable isn't available, so we should fail here.
echo "ERROR: CMake not in $PATH, cannot build! Please install CMake, or if this persists, file a bug report."
exit 1
fi
fi
# default build configuration
# Set default build type, but in CI, this is set to Release.
# For downstream distributions, our recommendation is to set this type in your build scripts to Release, and supply Debug build types in your debug packages.
B_BUILD_TYPE=${B_BUILD_TYPE:-Debug}
if [ "$(uname)" = "Darwin" ]; then
# OSX needs a lot of extra help, poor thing
# run the osx_environment.sh script to fix paths
. ./osx_environment.sh
B_CMAKE_FLAGS="-DCMAKE_OSX_SYSROOT=$(xcode-select --print-path)/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 $B_CMAKE_FLAGS"
# macOS needs a little help, so we source this environment script to fix paths.
if [ ! -e "./macOS_environment.sh" ]; then
echo "macOS environment script not found, this isn't meant to happen!"
exit 1
else
. ./macOS_environment.sh
fi
B_CMAKE_FLAGS="-DCMAKE_OSX_SYSROOT=$(xcode-select --print-path)/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 ${B_CMAKE_FLAGS:-}"
fi
# Source local build variables to the environment, if available.
# If not, continue as normal, and silently.
if [ -e "./build_env.sh" ]; then
. "./build_env.sh"
fi
# allow local customizations to build environment
[ -r ./build_env.sh ] && . ./build_env.sh
# Initialise Git submodules
git submodule update --init --recursive
B_CMAKE_FLAGS="-DCMAKE_BUILD_TYPE=$B_BUILD_TYPE $B_CMAKE_FLAGS"
rm -rf build
mkdir build || exit 1
cd build || exit 1
echo "Starting Barrier $B_BUILD_TYPE build..."
$B_CMAKE $B_CMAKE_FLAGS .. || exit 1
make || exit 1
echo "Build completed successfully"
B_CMAKE_FLAGS="-DCMAKE_BUILD_TYPE=${B_BUILD_TYPE} ${B_CMAKE_FLAGS:-}"
# Clear build directory, but do a conditional first!
if [ -d "./build" ]; then
rm -rf ./build
fi
# Previous versions of this script created the build directory, and CD'd into it - CMake allows us to do this another way...
# Note: If you use Ninja (i.e, cmake -GNinja -B build), run Ninja like: "ninja -C build", just like you would with Meson.
$B_CMAKE "$B_CMAKE_FLAGS" -B build || exit 1
echo "INFO: Now commencing Barrier build process..."
echo "INFO: We're building an $B_BUILD_TYPE output type."
$(command -v make) -C build || exit 1
# Implictly, we assume the build was successful due to no exits.
# Later revisions of this script should do conditionals. TODO.
echo "INFO: Success! The build completed successfully!"
exit

View File

@@ -31,6 +31,6 @@
<key>NSHumanReadableCopyright</key>
<string>© 2018 Debauchee Open Source Group</string>
<key>LSMinimumSystemVersion</key>
<string>10.12.0</string>
<string>10.9.0</string>
</dict>
</plist>

View File

@@ -1 +0,0 @@
Corrected macOS packaging to provide a better error message when a user attempts to launch Barrier on an incompatible macOS version. (https://github.com/debauchee/barrier/issues/1260).

View File

@@ -1 +0,0 @@
Updated FAQs in project README.md with more detail on OS support and links to issues for infrequent users. (https://github.com/debauchee/barrier/issues/1260).

View File

@@ -0,0 +1 @@
Refactor CI builds, and build scripts to be more resilient, and effective

View File

@@ -1,2 +0,0 @@
Updated Japanese translation.
Add and translate strings that are not in gui.ts. Minor string adjustment, Fix wrong or duplicate shortcut keys.

View File

@@ -1 +0,0 @@
Fixed FAQ link to Linux drag and drop issue.

View File

@@ -1 +0,0 @@
Fixed a regression in 2.4.0 that caused Barrier to not support scaling other than 100% (https://github.com/debauchee/barrier/issues/1462).

49
macOS_environment.sh Normal file
View File

@@ -0,0 +1,49 @@
#!/bin/bash
# Checks if directory exists, otherwise asks to install package.
check_dir_exists() {
local path=$1
local package=$2
if [ ! -d "$path" ]; then
echo "Please install $package"
exit 1
fi
}
if [ -z "$BARRIER_BUILD_ENV" ]; then
check_dir_exists '/Applications/Xcode.app' 'Xcode'
printf "Modifying environment for Barrier build...\n"
if command -v port; then
printf "Detected Macports\n"
check_dir_exists '/opt/local/lib/cmake/Qt5' 'qt5-qtbase port'
export BARRIER_BUILD_MACPORTS=1
export CMAKE_PREFIX_PATH="/opt/local/lib/cmake/Qt5:$CMAKE_PREFIX_PATH"
export LD_LIBRARY_PATH="/opt/local/lib:$LD_LIBRARY_PATH"
export CPATH="/opt/local/include:$CPATH"
export PKG_CONFIG_PATH="/opt/local/libexec/qt5/lib/pkgconfig:$PKG_CONFIG_PATH"
elif command -v brew; then
printf "Detected Homebrew\n"
QT_PATH=$(brew --prefix qt@5)
check_dir_exists "$QT_PATH" 'qt5'
export BARRIER_BUILD_BREW=1
export CMAKE_PREFIX_PATH="/opt/procursus:$QT_PATH:$CMAKE_PREFIX_PATH"
export LD_LIBRARY_PATH="/opt/procursus/lib:$LD_LIBRARY_PATH"
export CPATH="/opt/procursus/include:$CPATH"
export PKG_CONFIG_PATH="/opt/procursus/lib/pkgconfig:$PKG_CONFIG_PATH"
else
printf "Neither Homebrew nor Macports is installed. Can't get dependency paths\n"
exit 1
fi
export BARRIER_BUILD_ENV=1
printf "done\n"
fi

View File

@@ -19,19 +19,19 @@ if [ -z "$BARRIER_BUILD_ENV" ]; then
if command -v port; then
printf "Detected Macports\n"
check_dir_exists '/opt/local/lib/cmake/Qt5' 'qt5-qtbase port'
check_dir_exists '/opt/local/lib/cmake/Qt6' 'qt6-qtbase port'
export BARRIER_BUILD_MACPORTS=1
export CMAKE_PREFIX_PATH="/opt/local/lib/cmake/Qt5:$CMAKE_PREFIX_PATH"
export CMAKE_PREFIX_PATH="/opt/local/lib/cmake/Qt6:$CMAKE_PREFIX_PATH"
export LD_LIBRARY_PATH="/opt/local/lib:$LD_LIBRARY_PATH"
export CPATH="/opt/local/include:$CPATH"
export PKG_CONFIG_PATH="/opt/local/libexec/qt5/lib/pkgconfig:$PKG_CONFIG_PATH"
export PKG_CONFIG_PATH="/opt/local/libexec/qt6/lib/pkgconfig:$PKG_CONFIG_PATH"
elif command -v brew; then
printf "Detected Homebrew\n"
QT_PATH=$(brew --prefix qt@5)
QT_PATH=$(brew --prefix qt@6)
check_dir_exists "$QT_PATH" 'qt5'
check_dir_exists "$QT_PATH" 'qt6'
export BARRIER_BUILD_BREW=1
export CMAKE_PREFIX_PATH="/opt/procursus:$QT_PATH:$CMAKE_PREFIX_PATH"

View File

@@ -21,9 +21,7 @@ set(sources
if (WIN32)
file(GLOB arch_headers "MSWindows*.h")
file(GLOB arch_sources "MSWindows*.cpp")
list(APPEND sources
barrierc.rc
barrierc.exe.manifest)
list(APPEND sources barrierc.rc)
elseif (APPLE)
file(GLOB arch_headers "OSX*.h")
file(GLOB arch_sources "OSX*.cpp")

View File

@@ -1,16 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="asInvoker" uiAccess="false"></requestedExecutionLevel>
</requestedPrivileges>
</security>
</trustInfo>
<application xmlns="urn:schemas-microsoft-com:asm.v3">
<windowsSettings>
<dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</dpiAware>
<dpiAwareness xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">PerMonitor</dpiAwareness>
</windowsSettings>
</application>
</assembly>

View File

@@ -21,9 +21,7 @@ set(sources
if (WIN32)
file(GLOB arch_headers "MSWindows*.h")
file(GLOB arch_sources "MSWindows*.cpp")
list(APPEND sources
barriers.rc
barriers.exe.manifest)
list(APPEND sources barriers.rc)
elseif (APPLE)
file(GLOB arch_headers "OSX*.h")
file(GLOB arch_sources "OSX*.cpp")

View File

@@ -1,16 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="asInvoker" uiAccess="false"></requestedExecutionLevel>
</requestedPrivileges>
</security>
</trustInfo>
<application xmlns="urn:schemas-microsoft-com:asm.v3">
<windowsSettings>
<dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</dpiAware>
<dpiAwareness xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">PerMonitor</dpiAwareness>
</windowsSettings>
</application>
</assembly>

Binary file not shown.

View File

@@ -8,25 +8,34 @@
<source>About Barrier</source>
<translation>Barrier </translation>
</message>
<message utf8="true">
<message>
<location filename="res/AboutDialogBase.ui" line="53"/>
<source>&lt;p&gt;
Keyboard and mouse sharing application. Cross platform and open source.&lt;br /&gt;&lt;br /&gt;
Copyright © 2018 Debauchee Open Source Group&lt;br /&gt;
Copyright © 2012-2016 Symless Ltd.&lt;br /&gt;
Copyright © 2002-2012 Chris Schoeneman, Nick Bolton, Volker Lanz.&lt;br /&gt;&lt;br /&gt;
Barrier is released under the GNU General Public License (GPLv2).&lt;br /&gt;&lt;br /&gt;
Barrier is based on CosmoSynergy by Richard Lee and Adam Feder.&lt;br /&gt;
The Barrier GUI is based on QSynergy by Volker Lanz.
The Barrier GUI is based on QSynergy by Volker Lanz.&lt;br /&gt;&lt;br /&gt;
Visit our website for help and info (symless.com).
&lt;/p&gt;</source>
<translation>&lt;p&gt;
&lt;br /&gt;&lt;br /&gt;
Copyright © 2018 Debauchee Open Source Group&lt;br /&gt;
<oldsource>&lt;p&gt;
Keyboard and mouse sharing application. Cross platform and open source.&lt;br /&gt;&lt;br /&gt;
Copyright © 2012-2016 Symless Ltd.&lt;br /&gt;
Copyright © 2002-2012 Chris Schoeneman, Nick Bolton, Volker Lanz.&lt;br /&gt;&lt;br /&gt;
Barrier GNU General Public (GPLv2) &lt;br /&gt;&lt;br /&gt;
Barrier CosmoSynergy Richard Lee Adam Feder &lt;br /&gt;
Barrier GUI QSynergy Volker Lanz
Barrier is released under the GNU General Public License (GPLv2).&lt;br /&gt;&lt;br /&gt;
Barrier is based on CosmoSynergy by Richard Lee and Adam Feder.&lt;br /&gt;
The Barrier GUI is based on QSynergy by Volker Lanz.&lt;br /&gt;&lt;br /&gt;
Visit our website for help and info (symless.com).
&lt;/p&gt;</oldsource>
<translation type="unfinished">&lt;p&gt;
&lt;br /&gt;&lt;br /&gt;
Copyright © 2012-2016 Symless Ltd.&lt;br /&gt;
Copyright © 2002-2012 Chris Schoeneman, Nick Bolton, Volker Lanz.&lt;br /&gt;&lt;br /&gt;
Barrier GNU General Public (GPLv2). &lt;br /&gt;&lt;br /&gt;
Barrier CosmoSynergy (Richard Lee, Adam Feder ) &lt;br /&gt;
Barrier GUI QSynergy (Volker Lanz ) &lt;br /&gt;&lt;br /&gt;
Visit our website for help and info (symless.com).
&lt;/p&gt;</translation>
</message>
<message>
@@ -39,11 +48,6 @@ Barrier の GUI のベースは QSynergy で、これは Volker Lanz 開発で
<source>Version:</source>
<translation>:</translation>
</message>
<message>
<location filename="res/AboutDialogBase.ui" line="167"/>
<source>Build Date: </source>
<translation>: </translation>
</message>
<message>
<location filename="res/AboutDialogBase.ui" line="163"/>
<source>&amp;Ok</source>
@@ -85,7 +89,7 @@ Barrier の GUI のベースは QSynergy で、これは Volker Lanz 開発で
<message>
<location filename="res/ActionDialogBase.ui" line="119"/>
<source>Switch to screen</source>
<translation></translation>
<translation></translation>
</message>
<message>
<location filename="res/ActionDialogBase.ui" line="150"/>
@@ -147,23 +151,18 @@ Barrier の GUI のベースは QSynergy で、これは Volker Lanz 開発で
<source>the hotkey is released</source>
<translation></translation>
</message>
<message>
<location filename="res/ActionDialogBase.ui" line="148"/>
<source>Toggle screen</source>
<translation></translation>
</message>
</context>
<context>
<name>AddClientDialog</name>
<message>
<location filename="res/AddClientDialogBase.ui" line="20"/>
<source>Dialog</source>
<translation></translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="res/AddClientDialogBase.ui" line="35"/>
<source>TextLabel</source>
<translation></translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="res/AddClientDialogBase.ui" line="83"/>
@@ -184,12 +183,30 @@ Barrier の GUI のベースは QSynergy で、これは Volker Lanz 開発で
<translation>:</translation>
</message>
</context>
<context>
<name>LogWindowBase</name>
<message>
<location filename="res/LogWindowBase.ui" line="26"/>
<source>Log - Barrier</source>
<translation> - Barrier</translation>
</message>
<message>
<location filename="res/LogWindowBase.ui" line="71"/>
<source>&amp;Clear Log</source>
<translation>(&amp;C)</translation>
</message>
<message>
<location filename="res/LogWindowBase.ui" line="78"/>
<source>&amp;Hide</source>
<translation></translation>
</message>
</context>
<context>
<name>MainWindow</name>
<message>
<location filename="src/MainWindow.cpp" line="790"/>
<source>&amp;Start</source>
<translation>(&amp;S)</translation>
<translation type="unfinished">(&amp;S)</translation>
</message>
<message>
<location filename="src/MainWindow.cpp" line="237"/>
@@ -209,13 +226,13 @@ Barrier の GUI のベースは QSynergy で、これは Volker Lanz 開発で
<message>
<location filename="src/MainWindow.cpp" line="240"/>
<source>&amp;Help</source>
<translation>(&amp;H)</translation>
<translation type="unfinished">(&amp;H)</translation>
</message>
<message>
<location filename="src/MainWindow.cpp" line="364"/>
<source>&lt;p&gt;Your version of Barrier is out of date. Version &lt;b&gt;%1&lt;/b&gt; is now available to &lt;a href=&quot;%2&quot;&gt;download&lt;/a&gt;.&lt;/p&gt;</source>
<oldsource>&lt;p&gt;Version %1 is now available, &lt;a href=&quot;%2&quot;&gt;visit website&lt;/a&gt;.&lt;/p&gt;</oldsource>
<translation type="unfinished">&lt;p&gt;使 Barrier &lt;b&gt;%1&lt;/b&gt; &lt;a href=&quot;%2&quot;&gt;&lt;/a&gt;&lt;/p&gt;</translation>
<translation type="unfinished">&lt;p&gt;使 Barrier &lt;b&gt;%1&lt;/b&gt; &lt;a href=&quot;%2&quot;&gt;&lt;/a&gt;&lt;/p&gt;</translation>
</message>
<message>
<location filename="src/MainWindow.cpp" line="577"/>
@@ -300,7 +317,7 @@ Barrier の GUI のベースは QSynergy で、これは Volker Lanz 開発で
<message>
<location filename="src/MainWindow.cpp" line="1044"/>
<source>Please drag the new client screen (%1) to the desired position on the grid.</source>
<translation type="unfinished"> (%1) </translation>
<translation type="unfinished"> (%1) </translation>
</message>
<message>
<location filename="src/MainWindow.cpp" line="1147"/>
@@ -338,12 +355,12 @@ Bonjour をインストールしますか?</translation>
<message>
<location filename="src/MainWindow.cpp" line="815"/>
<source>Barrier is starting.</source>
<translation>Barrier ...</translation>
<translation>Barrier </translation>
</message>
<message>
<location filename="src/MainWindow.cpp" line="809"/>
<source>Barrier is running.</source>
<translation>Barrier </translation>
<translation>Barrier </translation>
</message>
<message>
<location filename="src/MainWindow.cpp" line="819"/>
@@ -369,7 +386,7 @@ Bonjour をインストールしますか?</translation>
</message>
<message>
<location filename="src/MainWindow.cpp" line="408"/>
<source>Barrier is now connected. You can close the config window and Barrier will remain connected in the background.</source>
<source>Barrier is now connected, You can close the config window. Barrier will remain connected in the background.</source>
<translation> Barrier </translation>
</message>
<message>
@@ -383,14 +400,14 @@ Bonjour をインストールしますか?</translation>
%1
This is a server fingerprint. You should compare this fingerprint to the one on your server's screen. If the two don't match exactly, then it's probably not the server you're expecting (it could be a malicious user).
This is a server fingerprint. You should compare this fingerprint to the one on your server&apos;s screen. If the two don&apos;t match exactly, then it&apos;s probably not the server you&apos;re expecting (it could be a malicious user).
To automatically trust this fingerprint for future connections, click Yes. To reject this fingerprint and disconnect from the server, click No.</source>
<translation type="unfinished">
%1
2 ()
2 ()
</translation>
</message>
@@ -420,7 +437,7 @@ To automatically trust this fingerprint for future connections, click Yes. To re
<message>
<location filename="res/MainWindowBase.ui" line="90"/>
<source>Ser&amp;ver (share this computer&apos;s mouse and keyboard):</source>
<translation> ()(&amp;V):</translation>
<translation> ()(&amp;V):</translation>
</message>
<message>
<location filename="res/MainWindowBase.ui" line="243"/>
@@ -443,11 +460,6 @@ To automatically trust this fingerprint for future connections, click Yes. To re
<source>Use existing configuration:</source>
<translation>使:</translation>
</message>
<message>
<location filename="res/MainWindowBase.ui" line="218"/>
<source>SSL Fingerprint:</source>
<translation>SSLフィンガープリント:</translation>
</message>
<message>
<location filename="res/MainWindowBase.ui" line="190"/>
<source>&amp;Configuration file:</source>
@@ -466,7 +478,7 @@ To automatically trust this fingerprint for future connections, click Yes. To re
<message>
<location filename="res/MainWindowBase.ui" line="159"/>
<source>&amp;Configure Server...</source>
<translation>(&amp;C)...</translation>
<translation>(&amp;S)...</translation>
</message>
<message>
<location filename="res/MainWindowBase.ui" line="350"/>
@@ -481,7 +493,7 @@ To automatically trust this fingerprint for future connections, click Yes. To re
<message>
<location filename="res/MainWindowBase.ui" line="373"/>
<source>&amp;Reload</source>
<translation>(&amp;R)</translation>
<translation type="unfinished">(&amp;R)</translation>
</message>
<message>
<location filename="res/MainWindowBase.ui" line="107"/>
@@ -526,12 +538,12 @@ To automatically trust this fingerprint for future connections, click Yes. To re
<message>
<location filename="res/MainWindowBase.ui" line="423"/>
<source>S&amp;top</source>
<translation>(&amp;T)</translation>
<translation>(&amp;S)</translation>
</message>
<message>
<location filename="res/MainWindowBase.ui" line="426"/>
<source>Stop</source>
<translation>(&amp;T)</translation>
<translation>(&amp;S)</translation>
</message>
<message>
<location filename="res/MainWindowBase.ui" line="434"/>
@@ -541,27 +553,27 @@ To automatically trust this fingerprint for future connections, click Yes. To re
<message>
<location filename="res/MainWindowBase.ui" line="442"/>
<source>&amp;Hide</source>
<translation>(&amp;H)</translation>
<translation>(&amp;H)</translation>
</message>
<message>
<location filename="res/MainWindowBase.ui" line="445"/>
<source>Hide</source>
<translation>(&amp;H)</translation>
<translation>(&amp;H)</translation>
</message>
<message>
<location filename="res/MainWindowBase.ui" line="453"/>
<source>&amp;Show</source>
<translation>(&amp;W)</translation>
<translation>(&amp;S)</translation>
</message>
<message>
<location filename="res/MainWindowBase.ui" line="456"/>
<source>Show</source>
<translation>(&amp;W)</translation>
<translation>(&amp;S)</translation>
</message>
<message>
<location filename="res/MainWindowBase.ui" line="464"/>
<source>Save configuration &amp;as...</source>
<translation>...</translation>
<translation></translation>
</message>
<message>
<location filename="res/MainWindowBase.ui" line="467"/>
@@ -584,25 +596,30 @@ To automatically trust this fingerprint for future connections, click Yes. To re
<translation></translation>
</message>
<message>
<location filename="res/MainWindowBase.ui" line="435"/>
<location filename="res/MainWindowBase.ui" line="367"/>
<source>S&amp;ave configuration</source>
<translation>(&amp;A)</translation>
</message>
<message>
<location filename="res/MainWindowBase.ui" line="446"/>
<location filename="res/MainWindowBase.ui" line="380"/>
<source>Change &amp;Settings</source>
<translation>(&amp;S)</translation>
</message>
<message>
<location filename="res/MainWindowBase.ui" line="457"/>
<location filename="res/MainWindowBase.ui" line="391"/>
<source>Show &amp;Log</source>
<translation>(&amp;L)</translation>
</message>
<message>
<location filename="res/MainWindowBase.ui" line="457"/>
<location filename="res/MainWindowBase.ui" line="394"/>
<source>Show Log</source>
<translation>(&amp;L)</translation>
</message>
<message>
<location filename="res/MainWindowBase.ui" line="132"/>
<source>SSL Fingerprint:</source>
<translation>SSLフィンガープリント:</translation>
</message>
</context>
<context>
<name>NewScreenWidget</name>
@@ -695,13 +712,13 @@ To automatically trust this fingerprint for future connections, click Yes. To re
<name>QObject</name>
<message>
<location filename="src/MainWindow.cpp" line="60"/>
<source>Barrier Configurations (*.sgc);;All files (*.*)</source>
<translation>Barrier (*.sgc);;(*.*)</translation>
<source>Barrier Configurations (*.sgc)</source>
<translation>Barrier (*.sgc)</translation>
</message>
<message>
<location filename="src/MainWindow.cpp" line="67"/>
<source>Barrier Configurations (*.conf);;All files (*.*)</source>
<translation>Barrier (*.conf);;(*.*)</translation>
<source>Barrier Configurations (*.conf)</source>
<translation>Barrier (*.conf)</translation>
</message>
<message>
<location filename="src/main.cpp" line="119"/>
@@ -747,7 +764,7 @@ To automatically trust this fingerprint for future connections, click Yes. To re
<message>
<location filename="res/ScreenSettingsDialogBase.ui" line="42"/>
<source>A&amp;liases</source>
<translation>(&amp;L)</translation>
<translation>(&amp;A)</translation>
</message>
<message>
<location filename="res/ScreenSettingsDialogBase.ui" line="57"/>
@@ -841,7 +858,7 @@ To automatically trust this fingerprint for future connections, click Yes. To re
<message>
<location filename="res/ScreenSettingsDialogBase.ui" line="291"/>
<source>S&amp;uper:</source>
<translation> (&amp;U):</translation>
<translation> (&amp;S):</translation>
</message>
<message>
<location filename="res/ScreenSettingsDialogBase.ui" line="358"/>
@@ -881,17 +898,17 @@ To automatically trust this fingerprint for future connections, click Yes. To re
<message>
<location filename="res/ScreenSettingsDialogBase.ui" line="437"/>
<source>Fix CAPS LOCK key</source>
<translation>CAPS </translation>
<translation>CAPS </translation>
</message>
<message>
<location filename="res/ScreenSettingsDialogBase.ui" line="444"/>
<source>Fix NUM LOCK key</source>
<translation>NUM </translation>
<translation>NUM </translation>
</message>
<message>
<location filename="res/ScreenSettingsDialogBase.ui" line="451"/>
<source>Fix SCROLL LOCK key</source>
<translation>SCROLL </translation>
<translation>SCROLL </translation>
</message>
<message>
<location filename="res/ScreenSettingsDialogBase.ui" line="458"/>
@@ -901,7 +918,7 @@ To automatically trust this fingerprint for future connections, click Yes. To re
<message>
<location filename="res/ScreenSettingsDialogBase.ui" line="468"/>
<source>Fix Preserve Focus</source>
<translation></translation>
<translation></translation>
</message>
</context>
<context>
@@ -930,7 +947,7 @@ To automatically trust this fingerprint for future connections, click Yes. To re
<message>
<location filename="res/ServerConfigDialogBase.ui" line="24"/>
<source>Screens and links</source>
<translation></translation>
<translation></translation>
</message>
<message>
<location filename="res/ServerConfigDialogBase.ui" line="35"/>
@@ -945,7 +962,7 @@ To automatically trust this fingerprint for future connections, click Yes. To re
<message>
<location filename="res/ServerConfigDialogBase.ui" line="73"/>
<source>Drag this button to the grid to add a new screen.</source>
<translation></translation>
<translation></translation>
</message>
<message>
<location filename="res/ServerConfigDialogBase.ui" line="128"/>
@@ -1028,26 +1045,11 @@ Double click on a screen to edit its settings.</source>
<source>Switch on double &amp;tap within</source>
<translation>(&amp;T)</translation>
</message>
<message>
<location filename="res/ServerConfigDialogBase.ui" line="394"/>
<source>Bump against the screen edge with the mouse pointer twice in quick succession.</source>
<translation>2</translation>
</message>
<message>
<location filename="res/ServerConfigDialogBase.ui" line="408"/>
<source>&amp;Options</source>
<translation>(&amp;O)</translation>
</message>
<message>
<location filename="res/ServerConfigDialogBase.ui" line="416"/>
<source>Enable clipboard sharing</source>
<translation></translation>
</message>
<message>
<location filename="res/ServerConfigDialogBase.ui" line="461"/>
<source>Enable drag and drop file transfers</source>
<translation></translation>
</message>
<message>
<location filename="res/ServerConfigDialogBase.ui" line="419"/>
<source>&amp;Check clients every</source>
@@ -1103,13 +1105,23 @@ Double click on a screen to edit its settings.</source>
<source>Cor&amp;ner Size:</source>
<translation>(&amp;N):</translation>
</message>
<message>
<location filename="res/ServerConfigDialogBase.ui" line="510"/>
<source>Enable drag and drop file transfers</source>
<translation></translation>
</message>
<message>
<location filename="res/ServerConfigDialogBase.ui" line="524"/>
<source>Enable clipboard sharing</source>
<translation></translation>
</message>
</context>
<context>
<name>SettingsDialog</name>
<message>
<location filename="src/SettingsDialog.cpp" line="131"/>
<source>Save log file to...</source>
<translation>...</translation>
<translation></translation>
</message>
<message>
<location filename="src/SettingsDialog.cpp" line="151"/>
@@ -1121,8 +1133,8 @@ Double click on a screen to edit its settings.</source>
<source>Are you sure you want to elevate Barrier?
This allows Barrier to interact with elevated processes and the UAC dialog, but can cause problems with non-elevated processes. Elevate Barrier only if you really need to.</source>
<translation type="unfinished">Barrier
Barrier UAC Barrier </translation>
<translation type="unfinished">Barrier
Barrier UAC Barrier </translation>
</message>
</context>
<context>
@@ -1155,7 +1167,7 @@ This allows Barrier to interact with elevated processes and the UAC dialog, but
<message>
<location filename="res/SettingsDialogBase.ui" line="127"/>
<source>&amp;Hide on startup</source>
<translation>(&amp;H)</translation>
<translation>(&amp;H)</translation>
</message>
<message>
<location filename="res/SettingsDialogBase.ui" line="146"/>
@@ -1175,7 +1187,7 @@ This allows Barrier to interact with elevated processes and the UAC dialog, but
<message>
<location filename="res/SettingsDialogBase.ui" line="202"/>
<source>&amp;Logging level:</source>
<translation>(&amp;L):</translation>
<translation type="unfinished">(&amp;L):</translation>
</message>
<message>
<location filename="res/SettingsDialogBase.ui" line="251"/>
@@ -1285,30 +1297,7 @@ This allows Barrier to interact with elevated processes and the UAC dialog, but
<message>
<location filename="res/SettingsDialogBase.ui" line="132"/>
<source>Start &amp;Barrier on startup</source>
<translation> Barrier (&amp;B)</translation>
</message>
<message>
<location filename="res/SettingsDialogBase.ui" line="201"/>
<source>Require client certificate</source>
<translation></translation>
</message>
</context>
<context>
<name>LogWindowBase</name>
<message>
<location filename="res/LogWindowBase.ui" line="26"/>
<source>Log - Barrier</source>
<translation> - Barrier</translation>
</message>
<message>
<location filename="res/LogWindowBase.ui" line="71"/>
<source>&amp;Clear Log</source>
<translation>(&amp;C)</translation>
</message>
<message>
<location filename="res/LogWindowBase.ui" line="78"/>
<source>&amp;Hide</source>
<translation></translation>
<translation type="unfinished"> Barrier (&amp;B)</translation>
</message>
</context>
<context>
@@ -1349,7 +1338,7 @@ This allows Barrier to interact with elevated processes and the UAC dialog, but
<message>
<location filename="res/SetupWizardBase.ui" line="114"/>
<source>Barrier lets you easily share your mouse and keyboard between multiple computers on your desk, and it&apos;s Free and Open Source. Just move your mouse off the edge of one computer&apos;s screen on to another. You can even share all of your clipboards. All you need is a network connection. Barrier is cross-platform (works on Windows, Mac OS X and Linux).</source>
<translation>Barrier Barrier WindowsMac OS XLinux </translation>
<translation>Barrier Barrier Windows, Mac OS X, Linux </translation>
</message>
<message>
<location filename="res/SetupWizardBase.ui" line="125"/>
@@ -1384,7 +1373,7 @@ This allows Barrier to interact with elevated processes and the UAC dialog, but
<message>
<location filename="res/SetupWizardBase.ui" line="277"/>
<source>&amp;Server (share this computer&apos;s mouse and keyboard)</source>
<translation> ()(&amp;V)</translation>
<translation> ()(&amp;V)</translation>
</message>
<message>
<location filename="res/SetupWizardBase.ui" line="290"/>
@@ -1397,7 +1386,7 @@ p, li { white-space: pre-wrap; }
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;使1&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;使1&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<location filename="res/SetupWizardBase.ui" line="326"/>
@@ -1415,7 +1404,7 @@ p, li { white-space: pre-wrap; }
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<location filename="res/SetupWizardBase.ui" line="262"/>

View File

@@ -1,4 +1,3 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>

View File

@@ -98,7 +98,7 @@ FileChunk::assemble(barrier::IStream* stream, String& dataReceived, size_t& expe
case kDataChunk:
dataReceived.append(content);
if (CLOG->getFilter() >= kDEBUG2) {
LOG((CLOG_DEBUG2 "recv file chunk size=%i", content.size()));
LOG((CLOG_DEBUG2 "recv file chunck size=%i", content.size()));
double interval = stopwatch.getTime();
receivedDataSize += content.size();
LOG((CLOG_DEBUG2 "recv file interval=%f s", interval));

View File

@@ -137,9 +137,7 @@ ServerApp::help()
barrier::fs::u8path(SYS_CONFIG_NAME)).u8string();
std::ostringstream buffer;
buffer << "Start the barrier server component. The server shares the keyboard &\n"
<< "mouse of the local machine with the connected clients based on the\n"
<< "configuration file.\n"
buffer << "Start the barrier server component.\n"
<< "\n"
<< "Usage: " << args().m_exename
<< " [--address <address>]"

View File

@@ -190,7 +190,7 @@ void generate_pem_self_signed_cert(const std::string& path)
X509_sign(cert, private_key, EVP_sha256());
auto fp = fopen_utf8_path(path.c_str(), "w");
auto fp = fopen_utf8_path(path.c_str(), "r");
if (!fp) {
throw std::runtime_error("Could not open certificate output path");
}

View File

@@ -324,7 +324,7 @@ XWindowsScreen::leave()
m_impl->XGetInputFocus(m_display, &m_lastFocus, &m_lastFocusRevert);
// take focus
if (!m_preserveFocus) {
if (m_isPrimary || !m_preserveFocus) {
m_impl->XSetInputFocus(m_display, m_window, RevertToPointerRoot, CurrentTime);
}