Merge branch 'master' into v1-dev #6564
This commit is contained in:
commit
2810a5b6da
|
@ -2,53 +2,40 @@
|
||||||
name: Bug report
|
name: Bug report
|
||||||
about: Create a report to help us improve
|
about: Create a report to help us improve
|
||||||
title: Client goes crazy when I mash the keyboard
|
title: Client goes crazy when I mash the keyboard
|
||||||
labels: bug
|
labels: bug, triage
|
||||||
assignees: ''
|
assignees: ''
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
### Operating Systems ###
|
### Operating Systems ###
|
||||||
|
|
||||||
# README & DELETE #
|
|
||||||
|
|
||||||
---BEGIN HELP---
|
---BEGIN HELP---
|
||||||
|
|
||||||
|
Remember: Delete the help text (between `---BEGIN HELP---` and `---END HELP---`).
|
||||||
|
Technical support: https://symless.com/contact/customer-support?help-option=GitHub
|
||||||
|
|
||||||
For example:
|
For example:
|
||||||
|
|
||||||
Server: exampleOS 10.13
|
Server: niceOS 10.42
|
||||||
Client: Foobar XP
|
Client: Awesome XP SP13
|
||||||
|
|
||||||
Note: Please use this issue tracker only for raising bugs.
|
Please distinguish which operating system is the client and which is the server. The server is the computer that the mouse and keyboard are shared from.
|
||||||
|
|
||||||
- Feature requests: https://symless.com/forums/forum/18-feature-ideas/
|
|
||||||
- Technical support: https://symless.com/contact/customer-support?help-option=GitHub
|
|
||||||
|
|
||||||
It's very important that you distinguish which operating system is the client and which
|
|
||||||
is the server. The server is the computer that the mouse and keyboard are shared from.
|
|
||||||
|
|
||||||
Remember: Delete the `# README & DELETE #` sections (including `---BEGIN HELP---` and
|
|
||||||
`---END HELP---`).
|
|
||||||
|
|
||||||
---END HELP---
|
---END HELP---
|
||||||
|
|
||||||
### Synergy Version ###
|
### Synergy Version ###
|
||||||
|
|
||||||
# README & DELETE #
|
|
||||||
|
|
||||||
---BEGIN HELP---
|
---BEGIN HELP---
|
||||||
|
|
||||||
If you're not using the latest version of Synergy, please update first:
|
If you're not using the latest version of Synergy, please update first:
|
||||||
https://symless.com/synergy/downloads
|
https://symless.com/synergy/downloads
|
||||||
|
|
||||||
Please don't rely on Linux package manager versioning, they sometimes get it wrong.
|
Please don't rely on Linux package manager versioning, they often get it wrong. If using the command line, you can use the `--version` arg to get your installed Synergy version, like so:
|
||||||
If using the command line, you can use the `--version` arg to get your installed
|
|
||||||
Synergy version, like so:
|
|
||||||
|
|
||||||
Synergy 1: `synergys --version`
|
Synergy 1: `synergys --version`
|
||||||
Synergy 2: `synergy-core --server --version`
|
Synergy 2: `synergy-core --server --version`
|
||||||
|
|
||||||
If you're using the Synergy 1 config app (main Synergy app) then go to the Help
|
If you're using the Synergy 1 config app (main Synergy app) then go to the Help menu, and click About. In Synergy 2 Beta, the version is displayed at all times.
|
||||||
menu, and click About. In Synergy 2 Beta, the version is displayed at all times.
|
|
||||||
|
|
||||||
---END HELP---
|
---END HELP---
|
||||||
|
|
||||||
|
@ -56,8 +43,7 @@ menu, and click About. In Synergy 2 Beta, the version is displayed at all times.
|
||||||
|
|
||||||
---BEGIN HELP---
|
---BEGIN HELP---
|
||||||
|
|
||||||
This is the most important part. Try to remember exactly what exact steps caused
|
This is the most important part. Try to remember exactly what exact steps caused the bug. Please make sure the steps are numbered and concise, like so:
|
||||||
the bug. Please make sure the steps are numbered and concise, like so:
|
|
||||||
|
|
||||||
1. Do a little dance
|
1. Do a little dance
|
||||||
2. Make a little love
|
2. Make a little love
|
||||||
|
@ -76,14 +62,12 @@ Before submitting, try to reproduce the bug based on the steps you provided.
|
||||||
|
|
||||||
---BEGIN HELP---
|
---BEGIN HELP---
|
||||||
|
|
||||||
Please do not paste entire logs here, it looks really silly. Instead, upload your logs,
|
Please do not paste entire logs here, it looks really silly. Instead, upload your logs, and share the URLs to the uploaded logs. Here's how you that:
|
||||||
and share the URLs to the uploaded logs. Here's how you that:
|
|
||||||
|
|
||||||
Synergy 1: https://symless.com/help/s1-troubleshooting/s1-sending-logs
|
Synergy 1: https://symless.com/help/s1-troubleshooting/s1-sending-logs
|
||||||
Synergy 2: https://symless.com/help/s2-troubleshooting/s2-sending-logs
|
Synergy 2: https://symless.com/help/s2-troubleshooting/s2-sending-logs
|
||||||
|
|
||||||
Make sure you say which log is for which computer, and also which computer is the
|
Make sure you say which log is for which computer, and also which computer is the client and which one is the server. This helps to avoid any confusion.
|
||||||
client and which one is the server. This helps to avoid any confusion.
|
|
||||||
|
|
||||||
---END HELP---
|
---END HELP---
|
||||||
|
|
||||||
|
@ -93,7 +77,7 @@ client and which one is the server. This helps to avoid any confusion.
|
||||||
|
|
||||||
---BEGIN HELP---
|
---BEGIN HELP---
|
||||||
|
|
||||||
* Attach screenshots
|
* Attach any screenshots
|
||||||
* What maybe causing it?
|
* What maybe causing it?
|
||||||
* Are there any workarounds?
|
* Are there any workarounds?
|
||||||
* What other apps are you running?
|
* What other apps are you running?
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
name: Feature request
|
name: Feature request
|
||||||
about: Suggest an idea for this project
|
about: Suggest an idea for this project
|
||||||
title: Make beep sound when moving from client to server
|
title: Make beep sound when moving from client to server
|
||||||
labels: enhancement
|
labels: enhancement, triage
|
||||||
assignees: ''
|
assignees: ''
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
25
ChangeLog
25
ChangeLog
|
@ -1,3 +1,28 @@
|
||||||
|
v1.10.3-stable
|
||||||
|
==============
|
||||||
|
|
||||||
|
Bug fixes:
|
||||||
|
- #6546 Filtered out self assigned ip addresses from being displayed
|
||||||
|
- #6541 Fixed connected info text to include without TLS encryption
|
||||||
|
- #6527 Config app renders incorrectly on high DPI screens
|
||||||
|
- #6526 New TLS/SSL socket handled when no socket
|
||||||
|
- #6525 Race condition on disconnecting TLS/SSL socket
|
||||||
|
- #6521 Access violation in TLS/SSL socket close
|
||||||
|
- #6409 Server freezes when clipboard contains an image
|
||||||
|
- #3705 Hotkeys not working on Mac server
|
||||||
|
|
||||||
|
Enhancements:
|
||||||
|
- #6535 Version URL and added stage check to version check
|
||||||
|
- #6529 Cleaner redistributable use in Windows installer
|
||||||
|
- #6528 More verbose message for Linux display errors
|
||||||
|
- #6524 Minimize config app to system tray
|
||||||
|
- #6523 Restore auto hide on startup for config app
|
||||||
|
- #6522 Double click Windows tray icon to show and hide
|
||||||
|
- #6520 Support for 32-bit Linux for legacy users
|
||||||
|
- #6519 Support for Ubuntu 14.04 LTS for legacy users
|
||||||
|
- #6390 Support for OpenSSL 1.1.1 for better security
|
||||||
|
|
||||||
|
|
||||||
v1.10.2-stable
|
v1.10.2-stable
|
||||||
==============
|
==============
|
||||||
|
|
||||||
|
|
|
@ -2,6 +2,10 @@
|
||||||
|
|
||||||
This is the open source core component of Synergy, a keyboard and mouse sharing tool.
|
This is the open source core component of Synergy, a keyboard and mouse sharing tool.
|
||||||
|
|
||||||
|
**[We're hiring!](https://careers.symless.com/)** *Join the Synergy Team (Node.js, React, C++)*
|
||||||
|
|
||||||
|
**News:** [We Are Putting UX First](https://symless.com/blog/putting-ux-first) (Symless Blog)
|
||||||
|
|
||||||
## Recommended
|
## Recommended
|
||||||
|
|
||||||
Things most people will need.
|
Things most people will need.
|
||||||
|
@ -11,6 +15,7 @@ Things most people will need.
|
||||||
* [Help Guides](https://symless.com/synergy-help) - Self-help guides and information for when you don't want to talk to people.
|
* [Help Guides](https://symless.com/synergy-help) - Self-help guides and information for when you don't want to talk to people.
|
||||||
* [Join us on Slack](http://bitly.com/synergy-slack) - Talk to other Synergy users in real time using instant messaging.
|
* [Join us on Slack](http://bitly.com/synergy-slack) - Talk to other Synergy users in real time using instant messaging.
|
||||||
* [Symless Forums](https://symless.com/forums/forum/11-synergy/) - Discuss Synergy issues on the Symless Forums.
|
* [Symless Forums](https://symless.com/forums/forum/11-synergy/) - Discuss Synergy issues on the Symless Forums.
|
||||||
|
* [Symless Blog](https://symless.com/blog/) - Find out what's happening with Synergy development.
|
||||||
|
|
||||||
## Advanced Users
|
## Advanced Users
|
||||||
|
|
||||||
|
|
|
@ -5,8 +5,8 @@ cmake_minimum_required (VERSION 3.4)
|
||||||
#
|
#
|
||||||
|
|
||||||
set (SYNERGY_VERSION_MAJOR 1)
|
set (SYNERGY_VERSION_MAJOR 1)
|
||||||
set (SYNERGY_VERSION_MINOR 10)
|
set (SYNERGY_VERSION_MINOR 11)
|
||||||
set (SYNERGY_VERSION_PATCH 3)
|
set (SYNERGY_VERSION_PATCH 0)
|
||||||
set (SYNERGY_VERSION_STAGE "snapshot")
|
set (SYNERGY_VERSION_STAGE "snapshot")
|
||||||
|
|
||||||
#
|
#
|
||||||
|
|
|
@ -29,7 +29,6 @@ AboutDialog::AboutDialog(QWidget* parent, const QString& synergyApp) :
|
||||||
|
|
||||||
m_versionChecker.setApp(synergyApp);
|
m_versionChecker.setApp(synergyApp);
|
||||||
QString version = m_versionChecker.getVersion();
|
QString version = m_versionChecker.getVersion();
|
||||||
version = version + '-' + SYNERGY_VERSION_STAGE;
|
|
||||||
#ifdef SYNERGY_REVISION
|
#ifdef SYNERGY_REVISION
|
||||||
version += '-';
|
version += '-';
|
||||||
version += SYNERGY_REVISION;
|
version += SYNERGY_REVISION;
|
||||||
|
|
|
@ -975,7 +975,7 @@ void MainWindow::setSynergyState(qSynergyState state)
|
||||||
setStatus(tr("Synergy is connected (with %1)").arg(m_SecureSocketVersion));
|
setStatus(tr("Synergy is connected (with %1)").arg(m_SecureSocketVersion));
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
setStatus(tr("Synergy is running (without %1)").arg(m_SecureSocketVersion));
|
setStatus(tr("Synergy is running (without TLS encryption)").arg(m_SecureSocketVersion));
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -1034,8 +1034,10 @@ QString MainWindow::getIPAddresses()
|
||||||
hinted = true;
|
hinted = true;
|
||||||
format = "<b>%1</b>, ";
|
format = "<b>%1</b>, ";
|
||||||
}
|
}
|
||||||
|
//Prevent self assigned IPs being displayed
|
||||||
result += format.arg(address);
|
if (!address.startsWith("169.254")) {
|
||||||
|
result += format.arg(address);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -24,8 +24,11 @@
|
||||||
#include <QProcess>
|
#include <QProcess>
|
||||||
#include <QLocale>
|
#include <QLocale>
|
||||||
|
|
||||||
#define VERSION_REGEX "(\\d+\\.\\d+\\.\\d+)"
|
#define VERSION_REGEX "(\\d+\\.\\d+\\.\\d+-[a-z1-9]*)"
|
||||||
#define VERSION_URL "http://symless.com/version/"
|
#define VERSION_REGEX_SECTIONED "(\\d+)\\.(\\d+)\\.(\\d+)-([a-z1-9]*)"
|
||||||
|
#define VERSION_SEGMENT_COUNT 4
|
||||||
|
#define VERSION_URL "http://version.symless.com/synergy"
|
||||||
|
|
||||||
|
|
||||||
VersionChecker::VersionChecker()
|
VersionChecker::VersionChecker()
|
||||||
{
|
{
|
||||||
|
@ -58,31 +61,64 @@ void VersionChecker::replyFinished(QNetworkReply* reply)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int VersionChecker::getStageVersion(QString stage)
|
||||||
|
{
|
||||||
|
const int valueStable = INT_MAX; //Stable will always be considered the highest value
|
||||||
|
const int valueRC = 2;
|
||||||
|
const int valueSnapshot = 1;
|
||||||
|
const int valueOther = 0;
|
||||||
|
|
||||||
|
//Stable should always be considered highest, followed by rc[0-9] then snapshots with everything else at the end
|
||||||
|
//HACK There is probably a much better way of doing this
|
||||||
|
if (stage == "stable")
|
||||||
|
{
|
||||||
|
return valueStable;
|
||||||
|
}
|
||||||
|
else if (stage.startsWith("rc") || stage.startsWith("RC"))
|
||||||
|
{
|
||||||
|
QRegExp rx("\\d*", Qt::CaseInsensitive);
|
||||||
|
if (rx.indexIn(stage) != -1)
|
||||||
|
{
|
||||||
|
//Return the RC value plus the RC version as in int
|
||||||
|
return valueRC + rx.cap(1).toInt();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (stage == "snapshot")
|
||||||
|
{
|
||||||
|
return valueSnapshot;
|
||||||
|
}
|
||||||
|
|
||||||
|
return valueOther;
|
||||||
|
}
|
||||||
|
|
||||||
int VersionChecker::compareVersions(const QString& left, const QString& right)
|
int VersionChecker::compareVersions(const QString& left, const QString& right)
|
||||||
{
|
{
|
||||||
if (left.compare(right) == 0)
|
if (left.compare(right) == 0)
|
||||||
return 0; // versions are same.
|
return 0; // versions are same.
|
||||||
|
|
||||||
QStringList leftSplit = left.split(QRegExp("\\."));
|
QStringList leftSplit = left.split(QRegExp("[\\.-]"));
|
||||||
if (leftSplit.size() != 3)
|
if (leftSplit.size() != VERSION_SEGMENT_COUNT)
|
||||||
return 1; // assume right wins.
|
return 1; // assume right wins.
|
||||||
|
|
||||||
QStringList rightSplit = right.split(QRegExp("\\."));
|
QStringList rightSplit = right.split(QRegExp("[\\.-]"));
|
||||||
if (rightSplit.size() != 3)
|
if (rightSplit.size() != VERSION_SEGMENT_COUNT)
|
||||||
return -1; // assume left wins.
|
return -1; // assume left wins.
|
||||||
|
|
||||||
int leftMajor = leftSplit.at(0).toInt();
|
const int leftMajor = leftSplit.at(0).toInt();
|
||||||
int leftMinor = leftSplit.at(1).toInt();
|
const int leftMinor = leftSplit.at(1).toInt();
|
||||||
int leftRev = leftSplit.at(2).toInt();
|
const int leftRev = leftSplit.at(2).toInt();
|
||||||
|
const int leftStage = getStageVersion(leftSplit.at(3));
|
||||||
|
|
||||||
int rightMajor = rightSplit.at(0).toInt();
|
const int rightMajor = rightSplit.at(0).toInt();
|
||||||
int rightMinor = rightSplit.at(1).toInt();
|
const int rightMinor = rightSplit.at(1).toInt();
|
||||||
int rightRev = rightSplit.at(2).toInt();
|
const int rightRev = rightSplit.at(2).toInt();
|
||||||
|
const int rightStage = getStageVersion(rightSplit.at(3));
|
||||||
|
|
||||||
bool rightWins =
|
const bool rightWins =
|
||||||
(rightMajor > leftMajor) ||
|
( rightMajor > leftMajor) ||
|
||||||
((rightMajor >= leftMajor) && (rightMinor > leftMinor)) ||
|
((rightMajor >= leftMajor) && (rightMinor > leftMinor)) ||
|
||||||
((rightMajor >= leftMajor) && (rightMinor >= leftMinor) && (rightRev > leftRev));
|
((rightMajor >= leftMajor) && (rightMinor >= leftMinor) && (rightRev > leftRev)) ||
|
||||||
|
((rightMajor >= leftMajor) && (rightMinor >= leftMinor) && (rightRev >= leftRev) && (rightStage > leftStage));
|
||||||
|
|
||||||
return rightWins ? 1 : -1;
|
return rightWins ? 1 : -1;
|
||||||
}
|
}
|
||||||
|
@ -95,7 +131,7 @@ QString VersionChecker::getVersion()
|
||||||
process.setReadChannel(QProcess::StandardOutput);
|
process.setReadChannel(QProcess::StandardOutput);
|
||||||
if (process.waitForStarted() && process.waitForFinished())
|
if (process.waitForStarted() && process.waitForFinished())
|
||||||
{
|
{
|
||||||
QRegExp rx(VERSION_REGEX);
|
QRegExp rx(VERSION_REGEX,Qt::CaseInsensitive);
|
||||||
QString text = process.readLine();
|
QString text = process.readLine();
|
||||||
if (rx.indexIn(text) != -1)
|
if (rx.indexIn(text) != -1)
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/*
|
/*
|
||||||
* synergy -- mouse and keyboard sharing utility
|
* synergy -- mouse and keyboard sharing utility
|
||||||
* Copyright (C) 2012-2016 Symless Ltd.
|
* Copyright (C) 2012-2019 Symless Ltd.
|
||||||
* Copyright (C) 2012 Nick Bolton
|
* Copyright (C) 2012 Nick Bolton
|
||||||
*
|
*
|
||||||
* This package is free software; you can redistribute it and/or
|
* This package is free software; you can redistribute it and/or
|
||||||
|
@ -41,4 +41,11 @@ signals:
|
||||||
private:
|
private:
|
||||||
QNetworkAccessManager* m_manager;
|
QNetworkAccessManager* m_manager;
|
||||||
QString m_app;
|
QString m_app;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \brief Converts a string stage to a integer value
|
||||||
|
* \param stage The string containing the stage version
|
||||||
|
* \return An integer representation of the stage, the higher the number the more recent the version
|
||||||
|
*/
|
||||||
|
int getStageVersion(QString stage);
|
||||||
};
|
};
|
||||||
|
|
|
@ -19,10 +19,10 @@
|
||||||
#include "common/Version.h"
|
#include "common/Version.h"
|
||||||
|
|
||||||
const char* kApplication = "Synergy";
|
const char* kApplication = "Synergy";
|
||||||
const char* kCopyright = "Copyright (C) 2012-2016 Symless Ltd.\n"
|
const char* kCopyright = "Copyright (C) 2012-2019 Symless Ltd.\n"
|
||||||
"Copyright (C) 2008-2014 Nick Bolton\n"
|
"Copyright (C) 2008-2014 Nick Bolton\n"
|
||||||
"Copyright (C) 2002-2014 Chris Schoeneman";
|
"Copyright (C) 2002-2014 Chris Schoeneman";
|
||||||
const char* kContact = "Email: engineering@symless.com";
|
const char* kContact = "Email: engineering@symless.com";
|
||||||
const char* kWebsite = "https://symless.com/";
|
const char* kWebsite = "https://symless.com/";
|
||||||
const char* kVersion = SYNERGY_VERSION;
|
const char* kVersion = SYNERGY_VERSION_STRING;
|
||||||
const char* kAppVersion = "Synergy " SYNERGY_VERSION;
|
const char* kAppVersion = "Synergy " SYNERGY_VERSION;
|
||||||
|
|
Loading…
Reference in New Issue