This commit adds a signal to ServerResolver and a slot to MainWindow to handle ServerHandler errors, in order to start the reconnection timer after the first connection attempt.
Fixes#3220.
sss123next in mumble-voip/mumble#3294 reports that the current ping
timer logic causes problems with slow TLS handshakes, such as when
connecting to servers with large DH parameters.
This commit ensures pings are not sent before the TLS handshake has
completed.
This was tested against a Grumble instance built against a modified
crypto/tls package that sleeps during the handshake. I verified that
isEncrypted() returns false when the handshake has not finished, and
returns true when the handshake has completed.
Since AsyncNotifyWhenDone has been added to gRPC, IsCancelled is
never safe to call with the async API unless the done tag has arrived.
Now that AsyncNotifyWhenDone is used to clean up cancelled streams,
calling it isn't needed anyway as any cancelled streams are cleaned
up right after they're known to be cancelled.
Now that test.pri adds source files and headers by default, the .pro files
of our tests need to append to SOURCES and HEADERS to ensure everything
test.pri adds to SOURCES and HEADERS are kept around.
This change fixes AudioOutput to use the float overload of std::abs:
float std::abs(float);
instead of a non-existant template version.
Fixesmumble-voip/mumble#3281
Needs-Backport: 1.2.x
Since we now build with a macOS target of 10.8 when
building against Qt 5.10, we get deprecation warnings
when calling gestalt.
The fix, for now, is to ignore deprecation warnings in
OSInfo on macOS.
This should be addressed in a better way in the future.
For that, mumble-voip/mumble#3290 has been filed.
The comment block that justifies the use of Boost in GlobalShortcut_win
accidently stated that MinGW "does not support
boost:future/boost::promise", which is incorrect.
Fix the comment to say what was intended: that MinGW doesn't
support std::future/std::promise.
This change remove support for loading external images.
That is, this change ensures Mumble doesn't load images from tags in text messages,
comments and channel descriptions via HTTP or HTTPS.
With this change in place, Mumble only supports images that are embedded
in the message via data URLs.
GCC is concerned that we'll be writing to the memory of compat_layer_env
after we've assigned a string literal to it.
We won't, but make compat_layer_env const to soothe the compiler.
This means the user can not copy a Mumble URL while the dialog is open
and fill in the data from it. Instead, he will have to close and reopen
the dialog.
This change is to prevent potential confusion in case the user reads the
fill suggestion, (briefly) switches tasks, and then has different data
in their clipboard. This would also change the suggested fill data,
potentially without the user noticing the change, and then confusion
about the filled data.
In a userbase of primarily gamers system instabilities aren't
that uncommon. Without synchronization of the user-db this can
lead to corruption of our client database storing the
user-certificate. We have had various reports of such issues
over time.
The current mode was set in 2010 in commit 9fee66e8 to speed
up the client-db "even more" though it is unclear whether we
actually had performance problems that required this step.
This patch switches the client synchronization mode from OFF
to NORMAL which according to the sqlite documentation will
leave a "very small" chance for database corruption but is
than the default FULL sync mode.
This commit should partially address issue #3254 by making
database corruption much more unlikely but detecting
corruption and/or handling DB backups are further possible
approaches if this change turns out to have unacceptable
performance or we get further reports of durability issues
with the clientside DB.
Our OSX build uses brew to install dependencies, among which is Ice[1].
The brew keg (=package) `ice` was updated from 3.6 to 3.7 (with [2] and [3]).
With the update, the slice file path changed to
`/usr/local/opt/ice/share/ice/slice` (where `/usr/local/opt/<keg-name>`
is the symlinked path to the currently installed keg files.
* Use `share/ice/slice` as a possible subpath for slice file inclusion
when running slice2cpp to compile Ice cpp files.
* Replace method calls that were marked obsolete in Ice 3.7.
[1] http://formulae.brew.sh/formula/ice
[2] 4707f7e525 (diff-217324a0837e089e3f019178b405b2b9)
[3] 9e9babcc47 (diff-217324a0837e089e3f019178b405b2b9)
When a lookup in qhNames fails, it returns a default-constructed (null and
empty) string.
Do not update the name variable if the result of the lookup is empty.
This ensures we fall back to 'Unknown' when we encounter an unknown
button.
For now, this means that "F13-F24" are shown as K:Unknown instead of just
"K:".
Ensure the paste notice label is set to expand vertically, and align
its text at the top.
Promote the qlActions layout to a QWidget, and ensure its margins are
set to 0. Its new name is qwActions.
Apply a horizontal stretch of 4 to the qlPasteNotice label, and a
horizontal stretch of 1 to the qwActions container.
Set the horizontal size policy of both qbDisard and qbFill to be
Expanding, ensuring that the buttons have the same size.
Remove checkmark and cross glyphs from the qbDiscard and qbFill
buttons. They aren't the same size on Windows, which looks odd.
Also, using such glyphs in buttons is not something we usually do,
so I would rather be without it.