Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mumble-voip/mumble.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavide Beatrici <davidebeatrici@gmail.com>2019-09-12 23:44:16 +0300
committerGitHub <noreply@github.com>2019-09-12 23:44:16 +0300
commita38d19a7595c3e672f5ed549400b36348e01e442 (patch)
tree34bd1c4db9b95748d263aea811e849dec7e5525c
parent713b92c3c233f8f38200c4a458e0196d3d39a3b0 (diff)
parent15831dbca85dd906edbad2bfff2b147527a456e2 (diff)
Merge PR #3644: Don't include PCH headers directly, add missing includes
-rw-r--r--3rdparty/qqbonjour-src/BonjourServiceBrowser.cpp4
-rw-r--r--3rdparty/qqbonjour-src/BonjourServiceRegister.cpp4
-rw-r--r--3rdparty/qqbonjour-src/BonjourServiceResolver.cpp5
-rw-r--r--3rdparty/smallft-src/smallft.cpp6
-rw-r--r--src/ACL.cpp4
-rw-r--r--src/Ban.cpp2
-rw-r--r--src/ByteSwap.h15
-rw-r--r--src/Channel.cpp4
-rw-r--r--src/Connection.cpp20
-rw-r--r--src/Connection.h18
-rw-r--r--src/CryptState.cpp15
-rw-r--r--src/CryptographicHash.cpp6
-rw-r--r--src/CryptographicRandom.cpp6
-rw-r--r--src/FFDHE.cpp4
-rw-r--r--src/FFDHE.h4
-rw-r--r--src/Group.cpp4
-rw-r--r--src/HTMLFilter.cpp4
-rw-r--r--src/HostAddress.cpp15
-rw-r--r--src/License.cpp2
-rw-r--r--src/LogEmitter.cpp2
-rw-r--r--src/Net.cpp2
-rw-r--r--src/OSInfo.cpp31
-rw-r--r--src/OSInfo.h4
-rw-r--r--src/PasswordGenerator.cpp4
-rw-r--r--src/PlatformCheck.cpp2
-rw-r--r--src/SSL.cpp8
-rw-r--r--src/SSLCipherInfo.cpp4
-rw-r--r--src/SSLLocks.cpp7
-rw-r--r--src/SelfSignedCertificate.cpp4
-rw-r--r--src/ServerAddress.cpp2
-rw-r--r--src/ServerResolver_nosrv.cpp2
-rw-r--r--src/ServerResolver_qt5.cpp2
-rw-r--r--src/Timer.cpp4
-rw-r--r--src/UnresolvedServerAddress.cpp4
-rw-r--r--src/User.cpp2
-rw-r--r--src/Utils.h32
-rw-r--r--src/Version.cpp4
-rw-r--r--src/Version.h2
-rw-r--r--src/mumble/ACLEditor.cpp8
-rw-r--r--src/mumble/ALSAAudio.cpp11
-rw-r--r--src/mumble/ASIOInput.cpp9
-rw-r--r--src/mumble/ASIOInput.h13
-rw-r--r--src/mumble/About.cpp6
-rw-r--r--src/mumble/AppNap.mm4
-rw-r--r--src/mumble/Audio.cpp2
-rw-r--r--src/mumble/AudioConfigDialog.cpp3
-rw-r--r--src/mumble/AudioInput.cpp3
-rw-r--r--src/mumble/AudioOutput.cpp9
-rw-r--r--src/mumble/AudioOutputSample.cpp9
-rw-r--r--src/mumble/AudioOutputSpeech.cpp11
-rw-r--r--src/mumble/AudioOutputUser.cpp2
-rw-r--r--src/mumble/AudioStats.cpp7
-rw-r--r--src/mumble/AudioWizard.cpp8
-rw-r--r--src/mumble/BanEditor.cpp2
-rw-r--r--src/mumble/BonjourClient.cpp2
-rw-r--r--src/mumble/CELTCodec.cpp2
-rw-r--r--src/mumble/CELTCodec_sbcelt.cpp4
-rw-r--r--src/mumble/Cert.cpp16
-rw-r--r--src/mumble/ClientUser.cpp2
-rw-r--r--src/mumble/ConfigDialog.cpp7
-rw-r--r--src/mumble/ConfigWidget.cpp10
-rw-r--r--src/mumble/ConnectDialog.cpp23
-rw-r--r--src/mumble/CoreAudio.cpp6
-rw-r--r--src/mumble/CrashReporter.cpp8
-rw-r--r--src/mumble/CustomElements.cpp10
-rw-r--r--src/mumble/DBus.cpp6
-rw-r--r--src/mumble/Database.cpp8
-rw-r--r--src/mumble/DeveloperConsole.cpp6
-rw-r--r--src/mumble/DirectSound.cpp14
-rw-r--r--src/mumble/G15LCDEngine_helper.cpp2
-rw-r--r--src/mumble/G15LCDEngine_helper.h3
-rw-r--r--src/mumble/G15LCDEngine_lglcd.cpp2
-rw-r--r--src/mumble/G15LCDEngine_lglcd.h2
-rw-r--r--src/mumble/G15LCDEngine_unix.cpp2
-rw-r--r--src/mumble/G15LCDEngine_unix.h2
-rw-r--r--src/mumble/GKey.cpp2
-rw-r--r--src/mumble/GKey.h2
-rw-r--r--src/mumble/Global.cpp9
-rw-r--r--src/mumble/GlobalShortcut.cpp11
-rw-r--r--src/mumble/GlobalShortcut_macx.mm2
-rw-r--r--src/mumble/GlobalShortcut_unix.cpp9
-rw-r--r--src/mumble/GlobalShortcut_win.cpp16
-rw-r--r--src/mumble/LCD.cpp5
-rw-r--r--src/mumble/Log.cpp10
-rw-r--r--src/mumble/Log_macx.mm8
-rw-r--r--src/mumble/Log_unix.cpp4
-rw-r--r--src/mumble/Log_win.cpp2
-rw-r--r--src/mumble/LookConfig.cpp6
-rw-r--r--src/mumble/MainWindow.cpp25
-rw-r--r--src/mumble/Messages.cpp3
-rw-r--r--src/mumble/MumbleApplication.cpp8
-rw-r--r--src/mumble/NetworkConfig.cpp6
-rw-r--r--src/mumble/OSS.cpp2
-rw-r--r--src/mumble/OpusCodec.cpp2
-rw-r--r--src/mumble/Overlay.cpp20
-rw-r--r--src/mumble/OverlayClient.cpp14
-rw-r--r--src/mumble/OverlayConfig.cpp15
-rw-r--r--src/mumble/OverlayEditor.cpp5
-rw-r--r--src/mumble/OverlayEditorScene.cpp9
-rw-r--r--src/mumble/OverlayPositionableItem.cpp8
-rw-r--r--src/mumble/OverlayText.cpp10
-rw-r--r--src/mumble/OverlayUser.cpp5
-rw-r--r--src/mumble/OverlayUserGroup.cpp8
-rw-r--r--src/mumble/Overlay_macx.mm11
-rw-r--r--src/mumble/Overlay_unix.cpp2
-rw-r--r--src/mumble/Overlay_win.cpp6
-rw-r--r--src/mumble/Overlay_win.h6
-rw-r--r--src/mumble/PAAudio.cpp2
-rw-r--r--src/mumble/PTTButtonWidget.cpp2
-rw-r--r--src/mumble/PathListWidget.cpp14
-rw-r--r--src/mumble/Plugins.cpp18
-rw-r--r--src/mumble/Plugins.h15
-rw-r--r--src/mumble/PulseAudio.cpp2
-rw-r--r--src/mumble/RichTextEditor.cpp13
-rw-r--r--src/mumble/ServerHandler.cpp33
-rw-r--r--src/mumble/ServerHandler.h10
-rw-r--r--src/mumble/Settings.cpp13
-rw-r--r--src/mumble/SharedMemory.cpp2
-rw-r--r--src/mumble/SharedMemory_unix.cpp2
-rw-r--r--src/mumble/SharedMemory_win.cpp7
-rw-r--r--src/mumble/SocketRPC.cpp7
-rw-r--r--src/mumble/TaskList.cpp11
-rw-r--r--src/mumble/TaskList.h2
-rw-r--r--src/mumble/TextMessage.cpp2
-rw-r--r--src/mumble/TextToSpeech.cpp2
-rw-r--r--src/mumble/TextToSpeech_macx.mm2
-rw-r--r--src/mumble/TextToSpeech_unix.cpp5
-rw-r--r--src/mumble/TextToSpeech_win.cpp2
-rw-r--r--src/mumble/ThemeInfo.cpp6
-rw-r--r--src/mumble/Themes.cpp2
-rw-r--r--src/mumble/Tokens.cpp2
-rw-r--r--src/mumble/Usage.cpp8
-rw-r--r--src/mumble/UserEdit.cpp7
-rw-r--r--src/mumble/UserInformation.cpp4
-rw-r--r--src/mumble/UserListModel.cpp11
-rw-r--r--src/mumble/UserLocalVolumeDialog.cpp11
-rw-r--r--src/mumble/UserLockFile.h8
-rw-r--r--src/mumble/UserLockFile_win.cpp2
-rw-r--r--src/mumble/UserModel.cpp9
-rw-r--r--src/mumble/UserView.cpp7
-rw-r--r--src/mumble/VersionCheck.cpp16
-rw-r--r--src/mumble/ViewCert.cpp10
-rw-r--r--src/mumble/VoiceRecorder.cpp4
-rw-r--r--src/mumble/VoiceRecorder.h13
-rw-r--r--src/mumble/VoiceRecorderDialog.cpp6
-rw-r--r--src/mumble/WASAPI.cpp3
-rw-r--r--src/mumble/WASAPI.h9
-rw-r--r--src/mumble/WASAPINotificationClient.cpp2
-rw-r--r--src/mumble/WebFetch.cpp8
-rw-r--r--src/mumble/XboxInput.cpp4
-rw-r--r--src/mumble/XboxInput.h6
-rw-r--r--src/mumble/main.cpp25
-rw-r--r--src/mumble/mumble_pch.hpp86
-rw-r--r--src/mumble/murmur_pch.h11
-rw-r--r--src/mumble/os_early_win.cpp7
-rw-r--r--src/mumble/os_macx.mm6
-rw-r--r--src/mumble/os_unix.cpp2
-rw-r--r--src/mumble/os_win.cpp25
-rw-r--r--src/mumble/widgets/MUComboBox.cpp4
-rw-r--r--src/mumble_exe/mumble_exe.cpp3
-rw-r--r--src/mumble_exe/mumble_exe.pro2
-rw-r--r--src/murmur/About.cpp17
-rw-r--r--src/murmur/BonjourServer.cpp2
-rw-r--r--src/murmur/Cert.cpp14
-rw-r--r--src/murmur/DBus.cpp20
-rw-r--r--src/murmur/Messages.cpp5
-rw-r--r--src/murmur/Meta.cpp21
-rw-r--r--src/murmur/Meta.h11
-rw-r--r--src/murmur/MurmurGRPCImpl.cpp5
-rw-r--r--src/murmur/MurmurGRPCImpl.h4
-rw-r--r--src/murmur/MurmurIce.cpp23
-rw-r--r--src/murmur/MurmurIce.h7
-rw-r--r--src/murmur/PBKDF2.cpp19
-rw-r--r--src/murmur/RPC.cpp10
-rw-r--r--src/murmur/Register.cpp6
-rw-r--r--src/murmur/Server.cpp26
-rw-r--r--src/murmur/Server.h25
-rw-r--r--src/murmur/ServerDB.cpp16
-rw-r--r--src/murmur/ServerUser.cpp9
-rw-r--r--src/murmur/ServerUser.h18
-rw-r--r--src/murmur/Tray.cpp9
-rw-r--r--src/murmur/UnixMurmur.cpp21
-rw-r--r--src/murmur/main.cpp35
-rw-r--r--src/murmur/murmur_pch.h118
-rw-r--r--src/qos2_mingw.h19
-rw-r--r--src/tests/OverlayTest.cpp16
-rw-r--r--src/tests/Resample.cpp16
-rw-r--r--src/tests/TestCrypt/TestCrypt.cpp4
-rw-r--r--src/tests/TestCrypt/TestCrypt.pro2
-rw-r--r--src/tests/TestLink.cpp8
-rw-r--r--src/tests/TestServerAddress/TestServerAddress.pro2
-rw-r--r--src/tests/TestServerResolver/TestServerResolver.pro2
-rw-r--r--src/tests/test.pri9
-rw-r--r--src/win.h54
194 files changed, 1199 insertions, 628 deletions
diff --git a/3rdparty/qqbonjour-src/BonjourServiceBrowser.cpp b/3rdparty/qqbonjour-src/BonjourServiceBrowser.cpp
index ce30e5f66..329c42c4b 100644
--- a/3rdparty/qqbonjour-src/BonjourServiceBrowser.cpp
+++ b/3rdparty/qqbonjour-src/BonjourServiceBrowser.cpp
@@ -26,10 +26,10 @@ OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-#include "murmur_pch.h"
-
#include "BonjourServiceBrowser.h"
+#include <QtCore/QSocketNotifier>
+
BonjourServiceBrowser::BonjourServiceBrowser(QObject *p)
: QObject(p), dnssref(0), bonjourSocket(0) {
}
diff --git a/3rdparty/qqbonjour-src/BonjourServiceRegister.cpp b/3rdparty/qqbonjour-src/BonjourServiceRegister.cpp
index 110f06aca..b9143e3ed 100644
--- a/3rdparty/qqbonjour-src/BonjourServiceRegister.cpp
+++ b/3rdparty/qqbonjour-src/BonjourServiceRegister.cpp
@@ -27,10 +27,10 @@ OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-#include "murmur_pch.h"
-
#include "BonjourServiceRegister.h"
+#include <QtCore/QSocketNotifier>
+
BonjourServiceRegister::BonjourServiceRegister(QObject *p)
: QObject(p), dnssref(0), bonjourSocket(0) {
}
diff --git a/3rdparty/qqbonjour-src/BonjourServiceResolver.cpp b/3rdparty/qqbonjour-src/BonjourServiceResolver.cpp
index 0cfd7eb08..18b9e571d 100644
--- a/3rdparty/qqbonjour-src/BonjourServiceResolver.cpp
+++ b/3rdparty/qqbonjour-src/BonjourServiceResolver.cpp
@@ -27,10 +27,11 @@ OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-#include "murmur_pch.h"
-
#include "BonjourServiceResolver.h"
+#include <QtCore/QSocketNotifier>
+#include <QtCore/QtEndian>
+
BonjourServiceResolver::ResolveRecord::ResolveRecord(const BonjourRecord &r, BonjourServiceResolver *p) : record(r), bsr(p), dnssref(NULL), bonjourSocket(NULL), bonjourPort(-1) {
}
diff --git a/3rdparty/smallft-src/smallft.cpp b/3rdparty/smallft-src/smallft.cpp
index dc64a191e..210590f90 100644
--- a/3rdparty/smallft-src/smallft.cpp
+++ b/3rdparty/smallft-src/smallft.cpp
@@ -38,10 +38,12 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
********************************************************************/
-#include "mumble_pch.hpp"
-
#include "smallft.h"
+#include <cmath>
+#include <cstdlib>
+#include <cstring>
+
static void drfti1(int n, float *wa, int *ifac) {
static int ntryh[4] = { 4,2,3,5 };
static float tpi = 6.28318530717958648f;
diff --git a/src/ACL.cpp b/src/ACL.cpp
index c9de31cbe..c0f9538e1 100644
--- a/src/ACL.cpp
+++ b/src/ACL.cpp
@@ -3,8 +3,6 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "murmur_pch.h"
-
#include "ACL.h"
#include "Channel.h"
#include "Group.h"
@@ -12,6 +10,8 @@
#ifdef MURMUR
#include "ServerUser.h"
+
+#include <QtCore/QStack>
#endif
ChanACL::ChanACL(Channel *chan) : QObject(chan) {
diff --git a/src/Ban.cpp b/src/Ban.cpp
index 5c14ae086..8413e55a4 100644
--- a/src/Ban.cpp
+++ b/src/Ban.cpp
@@ -3,8 +3,6 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "murmur_pch.h"
-
#include "Ban.h"
bool Ban::isExpired() const {
diff --git a/src/ByteSwap.h b/src/ByteSwap.h
index 54521ef85..d570351cc 100644
--- a/src/ByteSwap.h
+++ b/src/ByteSwap.h
@@ -6,14 +6,17 @@
#ifndef MUMBLE_BYTESWAP_H_
#define MUMBLE_BYTESWAP_H_
+#include <QtCore/QtGlobal>
+
#if Q_BYTE_ORDER == Q_BIG_ENDIAN
-#define SWAP64(x) (x)
-#else
-#if defined(__x86_64__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3))
-#define SWAP64(x) __builtin_bswap64(x)
+# define SWAP64(x) (x)
#else
-#define SWAP64(x) qbswap<quint64>(x)
-#endif
+# if defined(__x86_64__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3))
+# define SWAP64(x) __builtin_bswap64(x)
+# else
+# include <QtCore/QtEndian>
+# define SWAP64(x) qbswap<quint64>(x)
+# endif
#endif
#endif
diff --git a/src/Channel.cpp b/src/Channel.cpp
index 658c4d24e..f6aad6b84 100644
--- a/src/Channel.cpp
+++ b/src/Channel.cpp
@@ -3,13 +3,13 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "murmur_pch.h"
-
#include "Channel.h"
#include "User.h"
#include "Group.h"
#include "ACL.h"
+#include <QtCore/QStack>
+
#ifdef MUMBLE
QHash<int, Channel *> Channel::c_qhChannels;
QReadWriteLock Channel::c_qrwlChannels;
diff --git a/src/Connection.cpp b/src/Connection.cpp
index 4c07c54de..885322e82 100644
--- a/src/Connection.cpp
+++ b/src/Connection.cpp
@@ -3,20 +3,22 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "murmur_pch.h"
-
-#ifdef Q_OS_UNIX
-#include <sys/socket.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <netinet/tcp.h>
-#endif
-
#include "Connection.h"
#include "Message.h"
#include "SSL.h"
#include "Mumble.pb.h"
+#include <QtCore/QtEndian>
+#include <QtNetwork/QHostAddress>
+
+#ifdef Q_OS_WIN
+# include <qos2.h>
+#else
+# include <sys/socket.h>
+# include <sys/types.h>
+# include <netinet/in.h>
+# include <netinet/tcp.h>
+#endif
#ifdef Q_OS_WIN
HANDLE Connection::hQoS = NULL;
diff --git a/src/Connection.h b/src/Connection.h
index 307f98ef9..534d2b8e8 100644
--- a/src/Connection.h
+++ b/src/Connection.h
@@ -7,21 +7,29 @@
#define MUMBLE_CONNECTION_H_
#include <QtCore/QtGlobal>
+
+#ifdef Q_OS_WIN
+# include "win.h"
+#endif
+
+#include "CryptState.h"
+
#include <QtCore/QMutex>
+
#if QT_VERSION >= 0x040700
-#include <QtCore/QElapsedTimer>
+# include <QtCore/QElapsedTimer>
#else
-#include <QtCore/QTime>
+# include <QtCore/QTime>
#endif
+
#include <QtCore/QList>
#include <QtCore/QObject>
#include <QtNetwork/QSslSocket>
+
#ifdef Q_OS_WIN
-#include <windows.h>
+# include <ws2tcpip.h>
#endif
-#include "CryptState.h"
-
namespace google {
namespace protobuf {
class Message;
diff --git a/src/CryptState.cpp b/src/CryptState.cpp
index fbe97c5af..2a1bc90a1 100644
--- a/src/CryptState.cpp
+++ b/src/CryptState.cpp
@@ -12,12 +12,25 @@
* OCB with something else or get yourself a license.
*/
-#include "murmur_pch.h"
+#include <QtCore/QtGlobal>
+
+#ifndef __LP64__
+# ifdef Q_OS_WIN
+# include "win.h"
+# include <winsock2.h>
+# else
+# include <arpa/inet.h>
+# endif
+#endif
#include "CryptState.h"
#include "ByteSwap.h"
+#include <cstring>
+
+#include <openssl/rand.h>
+
CryptState::CryptState() {
for (int i=0;i<0x100;i++)
decrypt_history[i] = 0;
diff --git a/src/CryptographicHash.cpp b/src/CryptographicHash.cpp
index 280979d1c..f84951f2c 100644
--- a/src/CryptographicHash.cpp
+++ b/src/CryptographicHash.cpp
@@ -3,10 +3,12 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "murmur_pch.h"
-
#include "CryptographicHash.h"
+#include <QtCore/QString>
+
+#include <openssl/evp.h>
+
class CryptographicHashPrivate {
public:
CryptographicHashPrivate(const EVP_MD *type);
diff --git a/src/CryptographicRandom.cpp b/src/CryptographicRandom.cpp
index 5dbfa9853..1f5750a77 100644
--- a/src/CryptographicRandom.cpp
+++ b/src/CryptographicRandom.cpp
@@ -3,12 +3,14 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "murmur_pch.h"
-
#include "CryptographicRandom.h"
#include "arc4random_uniform.h"
+#include <QtCore/QDebug>
+
+#include <openssl/rand.h>
+
void CryptographicRandom::fillBuffer(void *buf, int numBytes) {
// We treat negative and zero values of numBytes to be
// fatal errors in the program. Abort the program if such
diff --git a/src/FFDHE.cpp b/src/FFDHE.cpp
index 6d290fd18..15269f316 100644
--- a/src/FFDHE.cpp
+++ b/src/FFDHE.cpp
@@ -3,11 +3,11 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "murmur_pch.h"
-
#include "FFDHE.h"
#include "FFDHETable.h"
+#include <QtCore/QStringList>
+
QStringList FFDHE::NamedGroups() {
QStringList ng;
ng << QLatin1String("ffdhe2048");
diff --git a/src/FFDHE.h b/src/FFDHE.h
index 73461fff3..a0522f6da 100644
--- a/src/FFDHE.h
+++ b/src/FFDHE.h
@@ -6,6 +6,10 @@
#ifndef MUMBLE_FFDHE_H_
#define MUMBLE_FFDHE_H_
+class QByteArray;
+class QString;
+class QStringList;
+
/// FFDHE provides access to the Diffie-Hellman parameters from RFC 7919.
class FFDHE {
public:
diff --git a/src/Group.cpp b/src/Group.cpp
index a9d6ab6b7..2ae8270ba 100644
--- a/src/Group.cpp
+++ b/src/Group.cpp
@@ -3,14 +3,14 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "murmur_pch.h"
-
#include "Group.h"
#include "Channel.h"
#include "User.h"
#ifdef MURMUR
#include "ServerUser.h"
+
+#include <QtCore/QStack>
#endif
Group::Group(Channel *assoc, const QString &name) {
diff --git a/src/HTMLFilter.cpp b/src/HTMLFilter.cpp
index 2c7b982b3..6f1dd0e00 100644
--- a/src/HTMLFilter.cpp
+++ b/src/HTMLFilter.cpp
@@ -3,10 +3,10 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "murmur_pch.h"
-
#include "HTMLFilter.h"
+#include <QtCore/QXmlStreamReader>
+
QString HTMLFilter::escapeTags(const QString &in) {
QString out;
for (int i = 0; i < in.size(); i++) {
diff --git a/src/HostAddress.cpp b/src/HostAddress.cpp
index f0b8ced07..6002cfa50 100644
--- a/src/HostAddress.cpp
+++ b/src/HostAddress.cpp
@@ -3,12 +3,23 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "murmur_pch.h"
-
#include "HostAddress.h"
#include "ByteSwap.h"
+#ifdef Q_OS_WIN
+# include "win.h"
+# include <winsock2.h>
+# include <ws2tcpip.h>
+#else
+# include <arpa/inet.h>
+# if defined(Q_OS_FREEBSD) || defined(Q_OS_OPENBSD)
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/types.h>
+# endif
+#endif
+
HostAddress::HostAddress() {
addr[0] = addr[1] = 0ULL;
}
diff --git a/src/License.cpp b/src/License.cpp
index a27c98988..ecc490535 100644
--- a/src/License.cpp
+++ b/src/License.cpp
@@ -3,8 +3,6 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "murmur_pch.h"
-
#include "License.h"
#include "licenses.h"
diff --git a/src/LogEmitter.cpp b/src/LogEmitter.cpp
index 3791f1b37..3363d3e58 100644
--- a/src/LogEmitter.cpp
+++ b/src/LogEmitter.cpp
@@ -3,8 +3,6 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "murmur_pch.h"
-
#include "LogEmitter.h"
LogEmitter::LogEmitter(QObject *p) : QObject(p) {
diff --git a/src/Net.cpp b/src/Net.cpp
index 53884f6c7..2794e4b0d 100644
--- a/src/Net.cpp
+++ b/src/Net.cpp
@@ -3,8 +3,6 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "murmur_pch.h"
-
#include "Net.h"
#include "HostAddress.h"
diff --git a/src/OSInfo.cpp b/src/OSInfo.cpp
index 79284d1a7..55e6ddb8c 100644
--- a/src/OSInfo.cpp
+++ b/src/OSInfo.cpp
@@ -3,30 +3,41 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "murmur_pch.h"
+#include <QtCore/QtGlobal>
#if defined(Q_OS_WIN)
-#include <intrin.h>
+# include "win.h"
+#endif
+
+#include "OSInfo.h"
+
+#include "Version.h"
+
+#include <QtCore/QCryptographicHash>
+#include <QtCore/QProcess>
+#include <QtNetwork/QNetworkInterface>
+#include <QtXml/QDomDocument>
+
+#if defined(Q_OS_WIN)
+# include <intrin.h>
#endif
#if defined(Q_OS_UNIX) && !defined(Q_OS_MAC)
-#include <sys/utsname.h>
+# include <sys/utsname.h>
#endif
#if defined(Q_OS_MAC)
-#include <sys/types.h>
-#include <sys/sysctl.h>
-#include <mach-o/arch.h>
+# include <Carbon/Carbon.h>
+# include <sys/types.h>
+# include <sys/sysctl.h>
+# include <mach-o/arch.h>
// Ignore deprecation warnings for Gestalt.
// See mumble-voip/mumble#3290 for more information.
-#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+# pragma GCC diagnostic ignored "-Wdeprecated-declarations"
#endif
-#include "OSInfo.h"
-#include "Version.h"
-
#if defined(Q_OS_WIN)
// regString converts a wchar_t string of size to a
// QString. If the string contains a NUL value, that
diff --git a/src/OSInfo.h b/src/OSInfo.h
index 630c6a9d4..6f6e0e26f 100644
--- a/src/OSInfo.h
+++ b/src/OSInfo.h
@@ -6,8 +6,12 @@
#ifndef MUMBLE_OSINFO_H_
#define MUMBLE_OSINFO_H_
+#include <QtCore/QList>
+#include <QtCore/QString>
+
class QDomDocument;
class QDomElement;
+class QHostAddress;
class OSInfo {
public:
diff --git a/src/PasswordGenerator.cpp b/src/PasswordGenerator.cpp
index 0f4c76840..9241121de 100644
--- a/src/PasswordGenerator.cpp
+++ b/src/PasswordGenerator.cpp
@@ -3,11 +3,11 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "murmur_pch.h"
-
#include "CryptographicRandom.h"
#include "PasswordGenerator.h"
+#include <QtCore/QVector>
+
// This is a password alphabet that tries to be human-friendly.
// Most cases of ambiguitiy have been removed.
//
diff --git a/src/PlatformCheck.cpp b/src/PlatformCheck.cpp
index 8ade8aec8..e3669c690 100644
--- a/src/PlatformCheck.cpp
+++ b/src/PlatformCheck.cpp
@@ -3,8 +3,6 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "murmur_pch.h"
-
#include <QtCore/QLibrary>
#include "PlatformCheck.h"
diff --git a/src/SSL.cpp b/src/SSL.cpp
index 9b369f87e..6b803204b 100644
--- a/src/SSL.cpp
+++ b/src/SSL.cpp
@@ -3,13 +3,17 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "murmur_pch.h"
-
#include "SSL.h"
#include "SSLLocks.h"
#include "Version.h"
+
+#include <QtNetwork/QSslConfiguration>
+#include <QtNetwork/QSslSocket>
+
+#include <openssl/ssl.h>
+
void MumbleSSL::initialize() {
// Let Qt initialize its copy of OpenSSL, if it's different than
// Mumble's. (Initialization is a side-effect of calling
diff --git a/src/SSLCipherInfo.cpp b/src/SSLCipherInfo.cpp
index d588d6ebc..bea2ebcfd 100644
--- a/src/SSLCipherInfo.cpp
+++ b/src/SSLCipherInfo.cpp
@@ -3,13 +3,13 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "murmur_pch.h"
-
#include "SSLCipherInfo.h"
// Include SSLCipherInfoTable generated by 'cipherinfo.py'.
#include "SSLCipherInfoTable.h"
+#include <cstring>
+
const SSLCipherInfo *SSLCipherInfoLookupByOpenSSLName(const char *openSslCipherName) {
int len = sizeof(cipher_info_lookup_table) / sizeof(*cipher_info_lookup_table);
for (int i = 0; i < len; i++) {
diff --git a/src/SSLLocks.cpp b/src/SSLLocks.cpp
index 1f15365a4..b98cca04a 100644
--- a/src/SSLLocks.cpp
+++ b/src/SSLLocks.cpp
@@ -3,10 +3,13 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "murmur_pch.h"
-
#include "SSLLocks.h"
+#include <QtCore/QMutex>
+#include <QtCore/QThread>
+
+#include <openssl/crypto.h>
+
static QMutex **locks = NULL;
void locking_callback(int mode, int type, const char *, int) {
diff --git a/src/SelfSignedCertificate.cpp b/src/SelfSignedCertificate.cpp
index a29c7782f..1ea6b3761 100644
--- a/src/SelfSignedCertificate.cpp
+++ b/src/SelfSignedCertificate.cpp
@@ -3,10 +3,10 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "murmur_pch.h"
-
#include "SelfSignedCertificate.h"
+#include <openssl/x509v3.h>
+
#define SSL_STRING(x) QString::fromLatin1(x).toUtf8().data()
static int add_ext(X509 * crt, int nid, char *value) {
diff --git a/src/ServerAddress.cpp b/src/ServerAddress.cpp
index ba1aa5187..cc5f2c909 100644
--- a/src/ServerAddress.cpp
+++ b/src/ServerAddress.cpp
@@ -3,8 +3,6 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "murmur_pch.h"
-
#include "ServerAddress.h"
ServerAddress::ServerAddress()
diff --git a/src/ServerResolver_nosrv.cpp b/src/ServerResolver_nosrv.cpp
index ef2076308..07b62bdfb 100644
--- a/src/ServerResolver_nosrv.cpp
+++ b/src/ServerResolver_nosrv.cpp
@@ -3,8 +3,6 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "murmur_pch.h"
-
#include "ServerResolver.h"
#include <QtNetwork/QHostInfo>
diff --git a/src/ServerResolver_qt5.cpp b/src/ServerResolver_qt5.cpp
index 543c3c8d7..299ba6a07 100644
--- a/src/ServerResolver_qt5.cpp
+++ b/src/ServerResolver_qt5.cpp
@@ -3,8 +3,6 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "murmur_pch.h"
-
#include "ServerResolver.h"
#include <QtNetwork/QDnsLookup>
diff --git a/src/Timer.cpp b/src/Timer.cpp
index 15a04e42f..1ececf43c 100644
--- a/src/Timer.cpp
+++ b/src/Timer.cpp
@@ -3,8 +3,6 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "murmur_pch.h"
-
#include <boost/version.hpp>
// Not all Boost versions can use a header-only
@@ -78,7 +76,7 @@ quint64 Timer::now() {
return static_cast<quint64>(epochDurationUsec.count());
}
#elif defined(Q_OS_WIN)
-#include <windows.h>
+# include "win.h"
quint64 Timer::now() {
static double scale = 0;
diff --git a/src/UnresolvedServerAddress.cpp b/src/UnresolvedServerAddress.cpp
index 3fc89a18a..2308db4aa 100644
--- a/src/UnresolvedServerAddress.cpp
+++ b/src/UnresolvedServerAddress.cpp
@@ -3,10 +3,10 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "murmur_pch.h"
-
#include "UnresolvedServerAddress.h"
+#include <QtCore/QHash>
+
UnresolvedServerAddress::UnresolvedServerAddress()
: port(0) {}
diff --git a/src/User.cpp b/src/User.cpp
index 7af321599..4e127880f 100644
--- a/src/User.cpp
+++ b/src/User.cpp
@@ -3,8 +3,6 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "murmur_pch.h"
-
#include "User.h"
#include "Channel.h"
diff --git a/src/Utils.h b/src/Utils.h
new file mode 100644
index 000000000..a1a66e2f6
--- /dev/null
+++ b/src/Utils.h
@@ -0,0 +1,32 @@
+// Copyright 2005-2019 The Mumble Developers. All rights reserved.
+// Use of this source code is governed by a BSD-style license
+// that can be found in the LICENSE file at the root of the
+// Mumble source tree or at <https://www.mumble.info/LICENSE>.
+
+// This header file defines common utility macros and values that are generally valid or used across multiple areas giving them generic scope (rather than localized or functionality-specific scope).
+
+#ifndef MUMBLE_UTILS_H_
+#define MUMBLE_UTILS_H_
+
+#include "QAtomicIntCompat.h"
+#include "Qt4Compat.h"
+
+#include <QtCore/QtGlobal>
+
+#define iroundf(x) ( static_cast<int>(x) )
+
+#ifdef Q_OS_WIN
+# define STACKVAR(type, varname, count) type *varname=reinterpret_cast<type *>(_alloca(sizeof(type) * (count)))
+#else
+# ifdef WId
+ typedef WId HWND;
+# endif
+# define __cdecl
+# define INVALID_SOCKET -1
+# define SOCKET_ERROR -1
+# define STACKVAR(type, varname, count) type varname[count]
+# define CopyMemory(dst,ptr,len) memcpy(dst,ptr,len)
+# define ZeroMemory(ptr,len) memset(ptr, 0, len)
+#endif
+
+#endif // MUMBLE_UTILS_H_
diff --git a/src/Version.cpp b/src/Version.cpp
index 7d6b546b9..baffbb5bb 100644
--- a/src/Version.cpp
+++ b/src/Version.cpp
@@ -3,10 +3,10 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "murmur_pch.h"
-
#include "Version.h"
+#include <QtCore/QRegExp>
+
unsigned int MumbleVersion::getRaw(const QString &version) {
int major, minor, patch;
diff --git a/src/Version.h b/src/Version.h
index 13d9e5424..c41756ada 100644
--- a/src/Version.h
+++ b/src/Version.h
@@ -6,6 +6,8 @@
#ifndef MUMBLE_VERSION_H_
#define MUMBLE_VERSION_H_
+#include <QtCore/QString>
+
#define MUMXTEXT(X) #X
#define MUMTEXT(X) MUMXTEXT(X)
diff --git a/src/mumble/ACLEditor.cpp b/src/mumble/ACLEditor.cpp
index eac63f3b0..1636129ea 100644
--- a/src/mumble/ACLEditor.cpp
+++ b/src/mumble/ACLEditor.cpp
@@ -3,8 +3,6 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "mumble_pch.hpp"
-
#include "ACLEditor.h"
#include "ACL.h"
@@ -15,6 +13,12 @@
#include "ServerHandler.h"
#include "User.h"
+#if QT_VERSION >= 0x050000
+# include <QtWidgets/QMessageBox>
+#else
+# include <QtGui/QMessageBox>
+#endif
+
// We define a global macro called 'g'. This can lead to issues when included code uses 'g' as a type or parameter name (like protobuf 3.7 does). As such, for now, we have to make this our last include.
#include "Global.h"
diff --git a/src/mumble/ALSAAudio.cpp b/src/mumble/ALSAAudio.cpp
index e468b4240..1808ed55c 100644
--- a/src/mumble/ALSAAudio.cpp
+++ b/src/mumble/ALSAAudio.cpp
@@ -3,16 +3,17 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "mumble_pch.hpp"
+#include "ALSAAudio.h"
+
+#include "MainWindow.h"
+#include "User.h"
+#include "Utils.h"
#include <alsa/asoundlib.h>
#include <sys/poll.h>
-#include "ALSAAudio.h"
-
-#include "MainWindow.h"
+// We define a global macro called 'g'. This can lead to issues when included code uses 'g' as a type or parameter name (like protobuf 3.7 does). As such, for now, we have to make this our last include.
#include "Global.h"
-#include "User.h"
#define NBLOCKS 8
diff --git a/src/mumble/ASIOInput.cpp b/src/mumble/ASIOInput.cpp
index 183e3eb87..9a8f6174d 100644
--- a/src/mumble/ASIOInput.cpp
+++ b/src/mumble/ASIOInput.cpp
@@ -3,11 +3,16 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "mumble_pch.hpp"
-
#include "ASIOInput.h"
#include "MainWindow.h"
+#include "Utils.h"
+
+#include <QtWidgets/QMessageBox>
+
+#include <cmath>
+
+// We define a global macro called 'g'. This can lead to issues when included code uses 'g' as a type or parameter name (like protobuf 3.7 does). As such, for now, we have to make this our last include.
#include "Global.h"
// From os_win.cpp.
diff --git a/src/mumble/ASIOInput.h b/src/mumble/ASIOInput.h
index 80c47d287..6c73774f7 100644
--- a/src/mumble/ASIOInput.h
+++ b/src/mumble/ASIOInput.h
@@ -6,16 +6,21 @@
#ifndef MUMBLE_MUMBLE_ASIOINPUT_H_
#define MUMBLE_MUMBLE_ASIOINPUT_H_
+#include "ui_ASIOInput.h"
+
+#include "AudioInput.h"
+#include "ConfigDialog.h"
+
+#include "win.h"
+
#include <QtCore/QList>
#include <QtCore/QObject>
#include <QtCore/QString>
#include <QtCore/QWaitCondition>
-#include <windows.h>
+#include <combaseapi.h>
+
#include <asiodrvr.h>
-#include "AudioInput.h"
-#include "ConfigDialog.h"
-#include "ui_ASIOInput.h"
typedef QPair<QString, QString> ASIODev;
diff --git a/src/mumble/About.cpp b/src/mumble/About.cpp
index 23de1e028..eef2f44e4 100644
--- a/src/mumble/About.cpp
+++ b/src/mumble/About.cpp
@@ -3,13 +3,15 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "mumble_pch.hpp"
-
#include "About.h"
#include "MainWindow.h"
#include "License.h"
+#include "Utils.h"
+
+#include <QtWidgets/QPushButton>
+
// We define a global macro called 'g'. This can lead to issues when included code uses 'g' as a type or parameter name (like protobuf 3.7 does). As such, for now, we have to make this our last include.
#include "Global.h"
diff --git a/src/mumble/AppNap.mm b/src/mumble/AppNap.mm
index cd47ff509..e6d7114ff 100644
--- a/src/mumble/AppNap.mm
+++ b/src/mumble/AppNap.mm
@@ -3,7 +3,9 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "mumble_pch.hpp"
+#include "MumbleApplication.h"
+
+#include <Foundation/Foundation.h>
#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1070
static bool appNapSuppressed = false;
diff --git a/src/mumble/Audio.cpp b/src/mumble/Audio.cpp
index 7ec9f71d4..8247c26e7 100644
--- a/src/mumble/Audio.cpp
+++ b/src/mumble/Audio.cpp
@@ -3,8 +3,6 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "mumble_pch.hpp"
-
#include "Audio.h"
#include "AudioInput.h"
diff --git a/src/mumble/AudioConfigDialog.cpp b/src/mumble/AudioConfigDialog.cpp
index bb7799eee..139fd44ca 100644
--- a/src/mumble/AudioConfigDialog.cpp
+++ b/src/mumble/AudioConfigDialog.cpp
@@ -34,8 +34,6 @@
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-#include "mumble_pch.hpp"
-
#include "AudioConfigDialog.h"
#include "AudioInput.h"
@@ -43,6 +41,7 @@
#include "AudioOutputSample.h"
#include "Global.h"
#include "NetworkConfig.h"
+#include "Utils.h"
static ConfigWidget *AudioInputDialogNew(Settings &st) {
return new AudioInputDialog(st);
diff --git a/src/mumble/AudioInput.cpp b/src/mumble/AudioInput.cpp
index e4b158d1d..cb34c1644 100644
--- a/src/mumble/AudioInput.cpp
+++ b/src/mumble/AudioInput.cpp
@@ -3,8 +3,6 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "mumble_pch.hpp"
-
#include "AudioInput.h"
#include "AudioOutput.h"
@@ -18,6 +16,7 @@
#include "Message.h"
#include "Global.h"
#include "NetworkConfig.h"
+#include "Utils.h"
#include "VoiceRecorder.h"
#ifdef USE_RNNOISE
diff --git a/src/mumble/AudioOutput.cpp b/src/mumble/AudioOutput.cpp
index 229df2916..ece4a3d85 100644
--- a/src/mumble/AudioOutput.cpp
+++ b/src/mumble/AudioOutput.cpp
@@ -3,7 +3,13 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "mumble_pch.hpp"
+// <cmath> includes <math.h>, but only if it isn't already included.
+// We include <cmath> as first header to make sure that we include <math.h> with _USE_MATH_DEFINES.
+#ifdef _MSC_VER
+# define _USE_MATH_DEFINES
+#endif
+
+#include <cmath>
#include "AudioOutput.h"
@@ -16,6 +22,7 @@
#include "PacketDataStream.h"
#include "ServerHandler.h"
#include "Timer.h"
+#include "Utils.h"
#include "VoiceRecorder.h"
// We define a global macro called 'g'. This can lead to issues when included code uses 'g' as a type or parameter name (like protobuf 3.7 does). As such, for now, we have to make this our last include.
diff --git a/src/mumble/AudioOutputSample.cpp b/src/mumble/AudioOutputSample.cpp
index 459c0b93b..6dce9a66f 100644
--- a/src/mumble/AudioOutputSample.cpp
+++ b/src/mumble/AudioOutputSample.cpp
@@ -3,11 +3,16 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "mumble_pch.hpp"
-
#include "AudioOutputSample.h"
#include "Audio.h"
+#include "Utils.h"
+
+#include <QtCore/QDebug>
+#include <QtWidgets/QFileDialog>
+#include <QtWidgets/QMessageBox>
+
+#include <cmath>
SoundFile::SoundFile(const QString &fname) {
siInfo.frames = 0;
diff --git a/src/mumble/AudioOutputSpeech.cpp b/src/mumble/AudioOutputSpeech.cpp
index fb653a992..91368e4c1 100644
--- a/src/mumble/AudioOutputSpeech.cpp
+++ b/src/mumble/AudioOutputSpeech.cpp
@@ -3,7 +3,15 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "mumble_pch.hpp"
+// We want to include <math.h> with _USE_MATH_DEFINES defined.
+// To make sure we do so before anything else includes the header without it
+// (triggering the guard and effectively preventing a "fix include")
+// we define and include before anything else.
+#ifdef _MSC_VER
+# define _USE_MATH_DEFINES
+#endif
+
+#include <cmath>
#include "AudioOutputSpeech.h"
@@ -13,6 +21,7 @@
#include "ClientUser.h"
#include "Global.h"
#include "PacketDataStream.h"
+#include "Utils.h"
AudioOutputSpeech::AudioOutputSpeech(ClientUser *user, unsigned int freq, MessageHandler::UDPMessageType type) : AudioOutputUser(user->qsName) {
int err;
diff --git a/src/mumble/AudioOutputUser.cpp b/src/mumble/AudioOutputUser.cpp
index fbff4378a..4f7c852ef 100644
--- a/src/mumble/AudioOutputUser.cpp
+++ b/src/mumble/AudioOutputUser.cpp
@@ -3,8 +3,6 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "mumble_pch.hpp"
-
#include "AudioOutputUser.h"
AudioOutputUser::AudioOutputUser(const QString& name) : qsName(name) {
diff --git a/src/mumble/AudioStats.cpp b/src/mumble/AudioStats.cpp
index 6ba0552fd..98d127555 100644
--- a/src/mumble/AudioStats.cpp
+++ b/src/mumble/AudioStats.cpp
@@ -3,14 +3,17 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "mumble_pch.hpp"
-
#include "AudioStats.h"
#include "AudioInput.h"
#include "Global.h"
+#include "Utils.h"
#include "smallft.h"
+#include <QtGui/QPainter>
+
+#include <cmath>
+
AudioBar::AudioBar(QWidget *p) : QWidget(p) {
qcBelow = Qt::yellow;
qcAbove = Qt::red;
diff --git a/src/mumble/AudioWizard.cpp b/src/mumble/AudioWizard.cpp
index 9ed95a095..21affd5b9 100644
--- a/src/mumble/AudioWizard.cpp
+++ b/src/mumble/AudioWizard.cpp
@@ -3,14 +3,18 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "mumble_pch.hpp"
-
#include "AudioWizard.h"
#include "AudioInput.h"
#include "AudioOutputSample.h"
#include "Log.h"
#include "MainWindow.h"
+#include "Utils.h"
+
+#include <QtGui/QMouseEvent>
+#include <QtWidgets/QGraphicsEllipseItem>
+
+#include <cmath>
// We define a global macro called 'g'. This can lead to issues when included code uses 'g' as a type or parameter name (like protobuf 3.7 does). As such, for now, we have to make this our last include.
#include "Global.h"
diff --git a/src/mumble/BanEditor.cpp b/src/mumble/BanEditor.cpp
index 38ba3b518..15127893c 100644
--- a/src/mumble/BanEditor.cpp
+++ b/src/mumble/BanEditor.cpp
@@ -3,8 +3,6 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "mumble_pch.hpp"
-
#include "BanEditor.h"
#include "Channel.h"
diff --git a/src/mumble/BonjourClient.cpp b/src/mumble/BonjourClient.cpp
index 4d826945f..c260a0508 100644
--- a/src/mumble/BonjourClient.cpp
+++ b/src/mumble/BonjourClient.cpp
@@ -3,8 +3,6 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "mumble_pch.hpp"
-
#include "BonjourClient.h"
#include "BonjourServiceBrowser.h"
diff --git a/src/mumble/CELTCodec.cpp b/src/mumble/CELTCodec.cpp
index c95fee580..8935d0af8 100644
--- a/src/mumble/CELTCodec.cpp
+++ b/src/mumble/CELTCodec.cpp
@@ -3,8 +3,6 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "mumble_pch.hpp"
-
#include "CELTCodec.h"
#include "Audio.h"
diff --git a/src/mumble/CELTCodec_sbcelt.cpp b/src/mumble/CELTCodec_sbcelt.cpp
index 2ad62d8ed..963ca3a13 100644
--- a/src/mumble/CELTCodec_sbcelt.cpp
+++ b/src/mumble/CELTCodec_sbcelt.cpp
@@ -3,8 +3,6 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "mumble_pch.hpp"
-
#include "CELTCodec.h"
#include "Audio.h"
@@ -71,4 +69,4 @@ int CELTCodecSBCELT::encode(CELTEncoder *st, const celt_int16 *pcm, unsigned cha
int CELTCodecSBCELT::decode_float(CELTDecoder *st, const unsigned char *data, int len, float *pcm) {
return ::sbcelt_decode_float(st, data, len, pcm);
-} \ No newline at end of file
+}
diff --git a/src/mumble/Cert.cpp b/src/mumble/Cert.cpp
index 43f5b9fc0..fabcfb956 100644
--- a/src/mumble/Cert.cpp
+++ b/src/mumble/Cert.cpp
@@ -11,12 +11,22 @@
# pragma GCC diagnostic ignored "-Wold-style-cast"
#endif
-#include "mumble_pch.hpp"
-
#include "Cert.h"
-#include "Global.h"
#include "SelfSignedCertificate.h"
+#include "Utils.h"
+
+#include <QtCore/QUrl>
+#include <QtGui/QDesktopServices>
+#include <QtWidgets/QFileDialog>
+#include <QtWidgets/QToolTip>
+
+#include <openssl/evp.h>
+#include <openssl/pkcs12.h>
+#include <openssl/x509.h>
+
+// We define a global macro called 'g'. This can lead to issues when included code uses 'g' as a type or parameter name (like protobuf 3.7 does). As such, for now, we have to make this our last include.
+#include "Global.h"
#define SSL_STRING(x) QString::fromLatin1(x).toUtf8().data()
diff --git a/src/mumble/ClientUser.cpp b/src/mumble/ClientUser.cpp
index 50e7ca8df..f908a7d63 100644
--- a/src/mumble/ClientUser.cpp
+++ b/src/mumble/ClientUser.cpp
@@ -3,8 +3,6 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "mumble_pch.hpp"
-
#include "ClientUser.h"
#include "Channel.h"
diff --git a/src/mumble/ConfigDialog.cpp b/src/mumble/ConfigDialog.cpp
index 36530c784..0a9c3a43f 100644
--- a/src/mumble/ConfigDialog.cpp
+++ b/src/mumble/ConfigDialog.cpp
@@ -3,8 +3,6 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "mumble_pch.hpp"
-
#include "ConfigDialog.h"
#include "AudioInput.h"
@@ -12,6 +10,11 @@
#include "Global.h"
#include "Overlay.h"
+#include <QtGui/QScreen>
+#include <QtWidgets/QDesktopWidget>
+#include <QtWidgets/QPushButton>
+
+
ConfigDialog::ConfigDialog(QWidget *p) : QDialog(p) {
setupUi(this);
diff --git a/src/mumble/ConfigWidget.cpp b/src/mumble/ConfigWidget.cpp
index 901e21d98..218cb321e 100644
--- a/src/mumble/ConfigWidget.cpp
+++ b/src/mumble/ConfigWidget.cpp
@@ -3,10 +3,16 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "mumble_pch.hpp"
-
#include "ConfigWidget.h"
+#include "MumbleApplication.h"
+
+#include <QtCore/QMap>
+#include <QtGui/QIcon>
+#include <QtWidgets/QAbstractButton>
+#include <QtWidgets/QComboBox>
+#include <QtWidgets/QSlider>
+
QMap<int, ConfigWidgetNew> *ConfigRegistrar::c_qmNew;
ConfigRegistrar::ConfigRegistrar(int priority, ConfigWidgetNew n) {
diff --git a/src/mumble/ConnectDialog.cpp b/src/mumble/ConnectDialog.cpp
index 428020dfe..bdac96d5e 100644
--- a/src/mumble/ConnectDialog.cpp
+++ b/src/mumble/ConnectDialog.cpp
@@ -3,8 +3,6 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "mumble_pch.hpp"
-
#include "ConnectDialog.h"
#ifdef USE_BONJOUR
@@ -18,6 +16,27 @@
#include "ServerHandler.h"
#include "WebFetch.h"
#include "ServerResolver.h"
+#include "Utils.h"
+
+#include <QtCore/QMimeData>
+#include <QtCore/QUrlQuery>
+#include <QtCore/QtEndian>
+#include <QtGui/QClipboard>
+#include <QtGui/QDesktopServices>
+#include <QtGui/QPainter>
+#include <QtNetwork/QUdpSocket>
+#include <QtWidgets/QInputDialog>
+#include <QtWidgets/QMenu>
+#include <QtWidgets/QMessageBox>
+#include <QtWidgets/QShortcut>
+#include <QtXml/QDomDocument>
+
+#include <boost/accumulators/statistics/extended_p_square.hpp>
+#include <boost/array.hpp>
+
+#ifdef Q_OS_WIN
+# include <shlobj.h>
+#endif
// We define a global macro called 'g'. This can lead to issues when included code uses 'g' as a type or parameter name (like protobuf 3.7 does). As such, for now, we have to make this our last include.
#include "Global.h"
diff --git a/src/mumble/CoreAudio.cpp b/src/mumble/CoreAudio.cpp
index 5c7cfc6d4..c9300a9c9 100644
--- a/src/mumble/CoreAudio.cpp
+++ b/src/mumble/CoreAudio.cpp
@@ -3,11 +3,13 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "mumble_pch.hpp"
-
#include "CoreAudio.h"
#include "User.h"
+
+#include <Carbon/Carbon.h>
+
+// We define a global macro called 'g'. This can lead to issues when included code uses 'g' as a type or parameter name (like protobuf 3.7 does). As such, for now, we have to make this our last include.
#include "Global.h"
// Ignore deprecation warnings for the whole file, for now.
diff --git a/src/mumble/CrashReporter.cpp b/src/mumble/CrashReporter.cpp
index d526a5579..793b549d7 100644
--- a/src/mumble/CrashReporter.cpp
+++ b/src/mumble/CrashReporter.cpp
@@ -3,8 +3,6 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "mumble_pch.hpp"
-
#include "CrashReporter.h"
#include "Global.h"
@@ -12,6 +10,12 @@
#include "OSInfo.h"
#include "EnvUtils.h"
+#include <QtCore/QProcess>
+#include <QtCore/QTemporaryFile>
+#include <QtNetwork/QHostAddress>
+#include <QtWidgets/QMessageBox>
+#include <QtWidgets/QPushButton>
+
CrashReporter::CrashReporter(QWidget *p) : QDialog(p) {
setWindowTitle(tr("Mumble Crash Report"));
diff --git a/src/mumble/CustomElements.cpp b/src/mumble/CustomElements.cpp
index b12d5208b..1ee044cb0 100644
--- a/src/mumble/CustomElements.cpp
+++ b/src/mumble/CustomElements.cpp
@@ -3,13 +3,19 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "mumble_pch.hpp"
-
#include "CustomElements.h"
#include "ClientUser.h"
#include "MainWindow.h"
#include "Log.h"
+#include "Utils.h"
+
+#include <QtCore/QTimer>
+#include <QtGui/QAbstractTextDocumentLayout>
+#include <QtGui/QClipboard>
+#include <QtGui/QContextMenuEvent>
+#include <QtGui/QKeyEvent>
+#include <QtWidgets/QScrollBar>
// We define a global macro called 'g'. This can lead to issues when included code uses 'g' as a type or parameter name (like protobuf 3.7 does). As such, for now, we have to make this our last include.
#include "Global.h"
diff --git a/src/mumble/DBus.cpp b/src/mumble/DBus.cpp
index 6fcde04bc..478ef2238 100644
--- a/src/mumble/DBus.cpp
+++ b/src/mumble/DBus.cpp
@@ -3,8 +3,6 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "mumble_pch.hpp"
-
#include "DBus.h"
#include "Channel.h"
@@ -12,6 +10,10 @@
#include "MainWindow.h"
#include "ServerHandler.h"
+#include <QtCore/QUrlQuery>
+#include <QtDBus/QDBusConnection>
+#include <QtDBus/QDBusMessage>
+
// We define a global macro called 'g'. This can lead to issues when included code uses 'g' as a type or parameter name (like protobuf 3.7 does). As such, for now, we have to make this our last include.
#include "Global.h"
diff --git a/src/mumble/Database.cpp b/src/mumble/Database.cpp
index b59678c4b..941bb8080 100644
--- a/src/mumble/Database.cpp
+++ b/src/mumble/Database.cpp
@@ -3,15 +3,19 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "mumble_pch.hpp"
-
#include "Database.h"
#include "Global.h"
#include "Message.h"
+#include "MumbleApplication.h"
#include "Net.h"
+#include "Utils.h"
#include "Version.h"
+#include <QtCore/QStandardPaths>
+#include <QtSql/QSqlError>
+#include <QtSql/QSqlQuery>
+#include <QtWidgets/QMessageBox>
static void logSQLError(const QSqlQuery &query) {
const QSqlError error(query.lastQuery());
diff --git a/src/mumble/DeveloperConsole.cpp b/src/mumble/DeveloperConsole.cpp
index 1b676440b..cd8a4b443 100644
--- a/src/mumble/DeveloperConsole.cpp
+++ b/src/mumble/DeveloperConsole.cpp
@@ -3,11 +3,13 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "mumble_pch.hpp"
-
#include "DeveloperConsole.h"
#include "LogEmitter.h"
+
+#include <QtWidgets/QTextBrowser>
+
+// We define a global macro called 'g'. This can lead to issues when included code uses 'g' as a type or parameter name (like protobuf 3.7 does). As such, for now, we have to make this our last include.
#include "Global.h"
DeveloperConsole::DeveloperConsole(QObject *parent)
diff --git a/src/mumble/DirectSound.cpp b/src/mumble/DirectSound.cpp
index 2185e2bec..5ced0f04e 100644
--- a/src/mumble/DirectSound.cpp
+++ b/src/mumble/DirectSound.cpp
@@ -3,7 +3,13 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "mumble_pch.hpp"
+#include "DirectSound.h"
+
+#include "MainWindow.h"
+#include "Plugins.h"
+#include "User.h"
+
+#include "win.h"
#define DIRECTSOUND_VERSION 0x1000
@@ -12,11 +18,7 @@
#include <ks.h>
#include <ksmedia.h>
-#include "DirectSound.h"
-
-#include "MainWindow.h"
-#include "Plugins.h"
-#include "User.h"
+// We define a global macro called 'g'. This can lead to issues when included code uses 'g' as a type or parameter name (like protobuf 3.7 does). As such, for now, we have to make this our last include.
#include "Global.h"
// from os_win.cpp
diff --git a/src/mumble/G15LCDEngine_helper.cpp b/src/mumble/G15LCDEngine_helper.cpp
index 19417089e..0b0faceb3 100644
--- a/src/mumble/G15LCDEngine_helper.cpp
+++ b/src/mumble/G15LCDEngine_helper.cpp
@@ -3,8 +3,6 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "mumble_pch.hpp"
-
#include "G15LCDEngine_helper.h"
#include "MumbleApplication.h"
diff --git a/src/mumble/G15LCDEngine_helper.h b/src/mumble/G15LCDEngine_helper.h
index e43f972a1..353232f33 100644
--- a/src/mumble/G15LCDEngine_helper.h
+++ b/src/mumble/G15LCDEngine_helper.h
@@ -6,10 +6,11 @@
#ifndef MUMBLE_MUMBLE_G15LCDENGINE_HELPER_H_
#define MUMBLE_MUMBLE_G15LCDENGINE_HELPER_H_
-#include "mumble_pch.hpp"
#include "LCD.h"
#include "../../g15helper/g15helper.h"
+#include <QtCore/QProcess>
+
class G15LCDDeviceHelper;
class G15LCDEngineHelper : public LCDEngine {
diff --git a/src/mumble/G15LCDEngine_lglcd.cpp b/src/mumble/G15LCDEngine_lglcd.cpp
index 7784d69d1..814738dcd 100644
--- a/src/mumble/G15LCDEngine_lglcd.cpp
+++ b/src/mumble/G15LCDEngine_lglcd.cpp
@@ -3,8 +3,6 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "mumble_pch.hpp"
-
#include "G15LCDEngine_lglcd.h"
#define G15_MAX_DEV 5
diff --git a/src/mumble/G15LCDEngine_lglcd.h b/src/mumble/G15LCDEngine_lglcd.h
index 6855177fe..c3e7cb24d 100644
--- a/src/mumble/G15LCDEngine_lglcd.h
+++ b/src/mumble/G15LCDEngine_lglcd.h
@@ -5,8 +5,6 @@
#ifndef MUMBLE_MUMBLE_G15LCDENGINE_LGLCD_H_
#define MUMBLE_MUMBLE_G15LCDENGINE_LGLCD_H_
-
-#include "mumble_pch.hpp"
#include "LCD.h"
#include "../../g15helper/g15helper.h"
diff --git a/src/mumble/G15LCDEngine_unix.cpp b/src/mumble/G15LCDEngine_unix.cpp
index cd4748bbb..63eebe760 100644
--- a/src/mumble/G15LCDEngine_unix.cpp
+++ b/src/mumble/G15LCDEngine_unix.cpp
@@ -3,8 +3,6 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "mumble_pch.hpp"
-
#include <G15LCDEngine_unix.h>
static LCDEngine *G15LCDEngineNew() {
diff --git a/src/mumble/G15LCDEngine_unix.h b/src/mumble/G15LCDEngine_unix.h
index cba95ee45..f2070ef9b 100644
--- a/src/mumble/G15LCDEngine_unix.h
+++ b/src/mumble/G15LCDEngine_unix.h
@@ -5,8 +5,6 @@
#ifndef MUMBLE_MUMBLE_G15LCDENGINE_UNIX_H_
#define MUMBLE_MUMBLE_G15LCDENGINE_UNIX_H_
-
-#include "mumble_pch.hpp"
#include "LCD.h"
#include <g15daemon_client.h>
diff --git a/src/mumble/GKey.cpp b/src/mumble/GKey.cpp
index ceddb5284..d99a9e109 100644
--- a/src/mumble/GKey.cpp
+++ b/src/mumble/GKey.cpp
@@ -65,8 +65,6 @@
* unless mumble is the active window.
*/
-#include "mumble_pch.hpp"
-
#include "GKey.h"
#ifdef Q_CC_GNU
diff --git a/src/mumble/GKey.h b/src/mumble/GKey.h
index 0532df87c..b7f649379 100644
--- a/src/mumble/GKey.h
+++ b/src/mumble/GKey.h
@@ -6,7 +6,7 @@
#ifndef MUMBLE_MUMBLE_GKEY_H
#define MUMBLE_MUMBLE_GKEY_H
-#include <windows.h>
+#include "win.h"
#include <QtCore/QLibrary>
#include <QtCore/QString>
diff --git a/src/mumble/Global.cpp b/src/mumble/Global.cpp
index f10846b6e..41ec60e17 100644
--- a/src/mumble/Global.cpp
+++ b/src/mumble/Global.cpp
@@ -3,8 +3,15 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "mumble_pch.hpp"
+#include "MumbleApplication.h"
+#include <QtCore/QStandardPaths>
+
+#ifdef Q_OS_WIN
+# include <shlobj.h>
+#endif
+
+// We define a global macro called 'g'. This can lead to issues when included code uses 'g' as a type or parameter name (like protobuf 3.7 does). As such, for now, we have to make this our last include.
#include "Global.h"
Global *Global::g_global_struct;
diff --git a/src/mumble/GlobalShortcut.cpp b/src/mumble/GlobalShortcut.cpp
index 804c3eb1a..833893544 100644
--- a/src/mumble/GlobalShortcut.cpp
+++ b/src/mumble/GlobalShortcut.cpp
@@ -3,8 +3,6 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "mumble_pch.hpp"
-
#include "GlobalShortcut.h"
#include "AudioInput.h"
@@ -13,6 +11,15 @@
#include "Database.h"
#include "MainWindow.h"
+#include <QtCore/QProcess>
+#include <QtGui/QFocusEvent>
+#include <QtWidgets/QItemEditorFactory>
+
+#ifdef Q_OS_MAC
+# include <QtCore/QOperatingSystemVersion>
+# include <ApplicationServices/ApplicationServices.h>
+#endif
+
// We define a global macro called 'g'. This can lead to issues when included code uses 'g' as a type or parameter name (like protobuf 3.7 does). As such, for now, we have to make this our last include.
#include "Global.h"
diff --git a/src/mumble/GlobalShortcut_macx.mm b/src/mumble/GlobalShortcut_macx.mm
index 7a04566df..6d5367dac 100644
--- a/src/mumble/GlobalShortcut_macx.mm
+++ b/src/mumble/GlobalShortcut_macx.mm
@@ -3,8 +3,6 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "mumble_pch.hpp"
-
#import <AppKit/AppKit.h>
#import <Carbon/Carbon.h>
diff --git a/src/mumble/GlobalShortcut_unix.cpp b/src/mumble/GlobalShortcut_unix.cpp
index e7516d4b6..6ef82bf1f 100644
--- a/src/mumble/GlobalShortcut_unix.cpp
+++ b/src/mumble/GlobalShortcut_unix.cpp
@@ -3,13 +3,16 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "mumble_pch.hpp"
-
#include "GlobalShortcut_unix.h"
-#include "Global.h"
#include "Settings.h"
+#include <QtCore/QFileSystemWatcher>
+#include <QtCore/QSocketNotifier>
+
+// We define a global macro called 'g'. This can lead to issues when included code uses 'g' as a type or parameter name (like protobuf 3.7 does). As such, for now, we have to make this our last include.
+#include "Global.h"
+
// We have to use a global 'diagnostic ignored' pragmas because
// we still support old versions of GCC. (FreeBSD 9.3 ships with GCC 4.2)
#if defined (__GNUC__)
diff --git a/src/mumble/GlobalShortcut_win.cpp b/src/mumble/GlobalShortcut_win.cpp
index 784620887..4e5f36447 100644
--- a/src/mumble/GlobalShortcut_win.cpp
+++ b/src/mumble/GlobalShortcut_win.cpp
@@ -3,7 +3,11 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "mumble_pch.hpp"
+#include "GlobalShortcut_win.h"
+
+#include "MainWindow.h"
+#include "OverlayClient.h"
+#include "Utils.h"
// MinGW does not support std::future/std::promise
// at present. Use Boost's implementation for now.
@@ -11,15 +15,15 @@
#include <boost/thread.hpp>
#include <boost/thread/future.hpp>
-#include "GlobalShortcut_win.h"
-
-#include "MainWindow.h"
-#include "OverlayClient.h"
-#include "Global.h"
+#include <QtCore/QElapsedTimer>
+#include <QtCore/QTimer>
// 3rdparty/xinputcheck-src.
#include <xinputcheck.h>
+// We define a global macro called 'g'. This can lead to issues when included code uses 'g' as a type or parameter name (like protobuf 3.7 does). As such, for now, we have to make this our last include.
+#include "Global.h"
+
#undef FAILED
#define FAILED(Status) (static_cast<HRESULT>(Status)<0)
diff --git a/src/mumble/LCD.cpp b/src/mumble/LCD.cpp
index c69c3c3df..62385eaf9 100644
--- a/src/mumble/LCD.cpp
+++ b/src/mumble/LCD.cpp
@@ -3,14 +3,15 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "mumble_pch.hpp"
-
#include "LCD.h"
#include "ClientUser.h"
#include "Channel.h"
#include "Message.h"
#include "ServerHandler.h"
+#include "Utils.h"
+
+#include <QtGui/QPainter>
// We define a global macro called 'g'. This can lead to issues when included code uses 'g' as a type or parameter name (like protobuf 3.7 does). As such, for now, we have to make this our last include.
#include "Global.h"
diff --git a/src/mumble/Log.cpp b/src/mumble/Log.cpp
index c074773d8..274da974d 100644
--- a/src/mumble/Log.cpp
+++ b/src/mumble/Log.cpp
@@ -3,8 +3,6 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "mumble_pch.hpp"
-
#include "Log.h"
#include "AudioOutput.h"
@@ -16,6 +14,14 @@
#include "Screen.h"
#include "ServerHandler.h"
#include "TextToSpeech.h"
+#include "Utils.h"
+
+#include <QtNetwork/QNetworkReply>
+#include <QtGui/QImageWriter>
+#include <QtGui/QScreen>
+#include <QtGui/QTextBlock>
+#include <QtGui/QTextDocumentFragment>
+#include <QtWidgets/QDesktopWidget>
// We define a global macro called 'g'. This can lead to issues when included code uses 'g' as a type or parameter name (like protobuf 3.7 does). As such, for now, we have to make this our last include.
#include "Global.h"
diff --git a/src/mumble/Log_macx.mm b/src/mumble/Log_macx.mm
index b8df8238c..4abc3e39a 100644
--- a/src/mumble/Log_macx.mm
+++ b/src/mumble/Log_macx.mm
@@ -3,9 +3,13 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "mumble_pch.hpp"
-
#include "Log.h"
+
+#include <QtCore/QOperatingSystemVersion>
+
+#include <Foundation/Foundation.h>
+
+// We define a global macro called 'g'. This can lead to issues when included code uses 'g' as a type or parameter name (like protobuf 3.7 does). As such, for now, we have to make this our last include.
#include "Global.h"
#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1080
diff --git a/src/mumble/Log_unix.cpp b/src/mumble/Log_unix.cpp
index ce8fad87a..11953b79e 100644
--- a/src/mumble/Log_unix.cpp
+++ b/src/mumble/Log_unix.cpp
@@ -3,12 +3,12 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "mumble_pch.hpp"
-
#include "Log.h"
#include "MainWindow.h"
#include "Settings.h"
+#include <QtDBus/QDBusInterface>
+
// We define a global macro called 'g'. This can lead to issues when included code uses 'g' as a type or parameter name (like protobuf 3.7 does). As such, for now, we have to make this our last include.
#include "Global.h"
diff --git a/src/mumble/Log_win.cpp b/src/mumble/Log_win.cpp
index afd9c0272..2703d39ad 100644
--- a/src/mumble/Log_win.cpp
+++ b/src/mumble/Log_win.cpp
@@ -3,8 +3,6 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "mumble_pch.hpp"
-
#include "Log.h"
void Log::postNotification(MsgType mt, const QString &plain) {
diff --git a/src/mumble/LookConfig.cpp b/src/mumble/LookConfig.cpp
index ae7554b71..dc9b0c248 100644
--- a/src/mumble/LookConfig.cpp
+++ b/src/mumble/LookConfig.cpp
@@ -3,8 +3,6 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "mumble_pch.hpp"
-
#include "LookConfig.h"
#include "Themes.h"
@@ -12,6 +10,10 @@
#include "AudioOutput.h"
#include "MainWindow.h"
+#include <QtCore/QFileSystemWatcher>
+#include <QtCore/QStack>
+#include <QtCore/QTimer>
+
// We define a global macro called 'g'. This can lead to issues when included code uses 'g' as a type or parameter name (like protobuf 3.7 does). As such, for now, we have to make this our last include.
#include "Global.h"
diff --git a/src/mumble/MainWindow.cpp b/src/mumble/MainWindow.cpp
index eeb62d263..83911c152 100644
--- a/src/mumble/MainWindow.cpp
+++ b/src/mumble/MainWindow.cpp
@@ -3,8 +3,6 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "mumble_pch.hpp"
-
#include "MainWindow.h"
#include "About.h"
@@ -47,13 +45,32 @@
#include "SSLCipherInfo.h"
#include "Screen.h"
#include "SvgIcon.h"
+#include "Utils.h"
#ifdef Q_OS_WIN
-#include "TaskList.h"
+# include "TaskList.h"
#endif
#ifdef Q_OS_MAC
-#include "AppNap.h"
+# include "AppNap.h"
+#endif
+
+#include <QtCore/QStandardPaths>
+#include <QtCore/QUrlQuery>
+#include <QtGui/QClipboard>
+#include <QtGui/QDesktopServices>
+#include <QtGui/QImageReader>
+#include <QtGui/QScreen>
+#include <QtWidgets/QDesktopWidget>
+#include <QtWidgets/QFileDialog>
+#include <QtWidgets/QInputDialog>
+#include <QtWidgets/QMessageBox>
+#include <QtWidgets/QScrollBar>
+#include <QtWidgets/QToolTip>
+#include <QtWidgets/QWhatsThis>
+
+#ifdef Q_OS_WIN
+# include <dbt.h>
#endif
// We define a global macro called 'g'. This can lead to issues when included code uses 'g' as a type or parameter name (like protobuf 3.7 does). As such, for now, we have to make this our last include.
diff --git a/src/mumble/Messages.cpp b/src/mumble/Messages.cpp
index 403dae42d..b6f210e5a 100644
--- a/src/mumble/Messages.cpp
+++ b/src/mumble/Messages.cpp
@@ -3,8 +3,6 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "mumble_pch.hpp"
-
#include "About.h"
#include "ACLEditor.h"
#include "AudioInput.h"
@@ -28,6 +26,7 @@
#include "VersionCheck.h"
#include "ViewCert.h"
#include "CryptState.h"
+#include "Utils.h"
// We define a global macro called 'g'. This can lead to issues when included code uses 'g' as a type or parameter name (like protobuf 3.7 does). As such, for now, we have to make this our last include.
#include "Global.h"
diff --git a/src/mumble/MumbleApplication.cpp b/src/mumble/MumbleApplication.cpp
index 902e0609a..c338fc805 100644
--- a/src/mumble/MumbleApplication.cpp
+++ b/src/mumble/MumbleApplication.cpp
@@ -3,19 +3,21 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "mumble_pch.hpp"
-
#include "MumbleApplication.h"
#include "MainWindow.h"
#include "GlobalShortcut.h"
-#include "Global.h"
#include "EnvUtils.h"
#if defined(Q_OS_WIN)
# include "GlobalShortcut_win.h"
#endif
+#include <QtGui/QFileOpenEvent>
+
+// We define a global macro called 'g'. This can lead to issues when included code uses 'g' as a type or parameter name (like protobuf 3.7 does). As such, for now, we have to make this our last include.
+#include "Global.h"
+
MumbleApplication *MumbleApplication::instance() {
return static_cast<MumbleApplication *>(QCoreApplication::instance());
}
diff --git a/src/mumble/NetworkConfig.cpp b/src/mumble/NetworkConfig.cpp
index 1ea72d6d4..60949e52d 100644
--- a/src/mumble/NetworkConfig.cpp
+++ b/src/mumble/NetworkConfig.cpp
@@ -3,13 +3,15 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "mumble_pch.hpp"
-
#include "NetworkConfig.h"
#include "MainWindow.h"
#include "OSInfo.h"
+#include <QtNetwork/QHostAddress>
+#include <QtNetwork/QNetworkProxy>
+#include <QtNetwork/QNetworkAccessManager>
+
// We define a global macro called 'g'. This can lead to issues when included code uses 'g' as a type or parameter name (like protobuf 3.7 does). As such, for now, we have to make this our last include.
#include "Global.h"
diff --git a/src/mumble/OSS.cpp b/src/mumble/OSS.cpp
index 4edc6caa3..9ceafcb85 100644
--- a/src/mumble/OSS.cpp
+++ b/src/mumble/OSS.cpp
@@ -3,8 +3,6 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "mumble_pch.hpp"
-
#include "OSS.h"
#include <sys/soundcard.h>
diff --git a/src/mumble/OpusCodec.cpp b/src/mumble/OpusCodec.cpp
index 2b57e9c29..fdaf58604 100644
--- a/src/mumble/OpusCodec.cpp
+++ b/src/mumble/OpusCodec.cpp
@@ -3,8 +3,6 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "mumble_pch.hpp"
-
#include "OpusCodec.h"
#include "Audio.h"
diff --git a/src/mumble/Overlay.cpp b/src/mumble/Overlay.cpp
index 38e2bfc43..c6cbcdd70 100644
--- a/src/mumble/Overlay.cpp
+++ b/src/mumble/Overlay.cpp
@@ -3,8 +3,6 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "mumble_pch.hpp"
-
#include "Overlay.h"
#include "OverlayClient.h"
@@ -18,8 +16,26 @@
#include "RichTextEditor.h"
#include "ServerHandler.h"
#include "User.h"
+#include "Utils.h"
#include "WebFetch.h"
+#include <QtCore/QProcessEnvironment>
+#include <QtCore/QtEndian>
+#include <QtGui/QFocusEvent>
+#include <QtGui/QImageReader>
+#include <QtGui/QImageWriter>
+#include <QtNetwork/QLocalServer>
+#include <QtWidgets/QMessageBox>
+
+#ifdef Q_OS_WIN
+# include <shellapi.h>
+#endif
+
+#ifdef Q_OS_MAC
+# include <ApplicationServices/ApplicationServices.h>
+# include <CoreFoundation/CoreFoundation.h>
+#endif
+
// We define a global macro called 'g'. This can lead to issues when included code uses 'g' as a type or parameter name (like protobuf 3.7 does). As such, for now, we have to make this our last include.
#include "Global.h"
diff --git a/src/mumble/OverlayClient.cpp b/src/mumble/OverlayClient.cpp
index c0a755944..ceb3722c1 100644
--- a/src/mumble/OverlayClient.cpp
+++ b/src/mumble/OverlayClient.cpp
@@ -3,8 +3,6 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "mumble_pch.hpp"
-
#include "OverlayClient.h"
#include "OverlayPositionableItem.h"
#include "OverlayEditor.h"
@@ -18,6 +16,18 @@
#include "MainWindow.h"
#include "GlobalShortcut.h"
#include "Themes.h"
+#include "Utils.h"
+
+#ifdef Q_OS_WIN
+# include <QtGui/QBitmap>
+#endif
+
+#include <QtGui/QImageReader>
+#include <QtWidgets/QGraphicsProxyWidget>
+
+#ifdef Q_OS_WIN
+# include <psapi.h>
+#endif
// We define a global macro called 'g'. This can lead to issues when included code uses 'g' as a type or parameter name (like protobuf 3.7 does). As such, for now, we have to make this our last include.
#include "Global.h"
diff --git a/src/mumble/OverlayConfig.cpp b/src/mumble/OverlayConfig.cpp
index c8de04b64..906db86e3 100644
--- a/src/mumble/OverlayConfig.cpp
+++ b/src/mumble/OverlayConfig.cpp
@@ -3,8 +3,6 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "mumble_pch.hpp"
-
#include "OverlayConfig.h"
#include "Overlay.h"
@@ -22,15 +20,22 @@
#include "PathListWidget.h"
#include "Screen.h"
-// We define a global macro called 'g'. This can lead to issues when included code uses 'g' as a type or parameter name (like protobuf 3.7 does). As such, for now, we have to make this our last include.
-#include "Global.h"
-
#ifdef Q_OS_WIN
#include "../../overlay/overlay_launchers.h"
#include "../../overlay/overlay_whitelist.h"
#include "../../overlay/overlay_blacklist.h"
#endif
+#include <QtGui/QScreen>
+#include <QtGui/QWindow>
+#include <QtWidgets/QColorDialog>
+#include <QtWidgets/QDesktopWidget>
+#include <QtWidgets/QFileDialog>
+#include <QtWidgets/QFontDialog>
+
+// We define a global macro called 'g'. This can lead to issues when included code uses 'g' as a type or parameter name (like protobuf 3.7 does). As such, for now, we have to make this our last include.
+#include "Global.h"
+
static const int OVERLAYCONFIG_PATH_ROLE = Qt::UserRole;
static const int OVERLAYCONFIG_BUILTIN_ROLE = Qt::UserRole + 1;
diff --git a/src/mumble/OverlayEditor.cpp b/src/mumble/OverlayEditor.cpp
index 5b3654ea4..afb76726c 100644
--- a/src/mumble/OverlayEditor.cpp
+++ b/src/mumble/OverlayEditor.cpp
@@ -3,8 +3,6 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "mumble_pch.hpp"
-
#include "OverlayEditor.h"
#include "OverlayClient.h"
@@ -17,6 +15,9 @@
#include "ServerHandler.h"
#include "MainWindow.h"
#include "GlobalShortcut.h"
+#include "Utils.h"
+
+#include <QtWidgets/QGraphicsProxyWidget>
// We define a global macro called 'g'. This can lead to issues when included code uses 'g' as a type or parameter name (like protobuf 3.7 does). As such, for now, we have to make this our last include.
#include "Global.h"
diff --git a/src/mumble/OverlayEditorScene.cpp b/src/mumble/OverlayEditorScene.cpp
index be149f4ef..0ec7e929c 100644
--- a/src/mumble/OverlayEditorScene.cpp
+++ b/src/mumble/OverlayEditorScene.cpp
@@ -3,8 +3,6 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "mumble_pch.hpp"
-
#include "OverlayEditorScene.h"
#include "OverlayClient.h"
@@ -18,6 +16,13 @@
#include "ServerHandler.h"
#include "MainWindow.h"
#include "GlobalShortcut.h"
+#include "Utils.h"
+
+#include <QtGui/QImageReader>
+#include <QtWidgets/QColorDialog>
+#include <QtWidgets/QFontDialog>
+#include <QtWidgets/QGraphicsProxyWidget>
+#include <QtWidgets/QGraphicsSceneMouseEvent>
// We define a global macro called 'g'. This can lead to issues when included code uses 'g' as a type or parameter name (like protobuf 3.7 does). As such, for now, we have to make this our last include.
#include "Global.h"
diff --git a/src/mumble/OverlayPositionableItem.cpp b/src/mumble/OverlayPositionableItem.cpp
index db5c0e4a8..04bf243e4 100644
--- a/src/mumble/OverlayPositionableItem.cpp
+++ b/src/mumble/OverlayPositionableItem.cpp
@@ -3,10 +3,14 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "mumble_pch.hpp"
-
#include "OverlayPositionableItem.h"
+#include "Utils.h"
+
+#include <QtCore/QEvent>
+#include <QtGui/QPen>
+#include <QtWidgets/QGraphicsScene>
+
OverlayPositionableItem::OverlayPositionableItem(QRectF *posPtr, const bool isPositionable)
: m_position(posPtr)
, m_isPositionEditable(isPositionable)
diff --git a/src/mumble/OverlayText.cpp b/src/mumble/OverlayText.cpp
index 3ece1713c..437115a34 100644
--- a/src/mumble/OverlayText.cpp
+++ b/src/mumble/OverlayText.cpp
@@ -3,10 +3,16 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "mumble_pch.hpp"
-
#include "OverlayText.h"
+#include "Utils.h"
+
+#include <QtCore/QDebug>
+#include <QtGui/QFontMetrics>
+#include <QtGui/QPainter>
+#include <QtGui/QPen>
+
+// We define a global macro called 'g'. This can lead to issues when included code uses 'g' as a type or parameter name (like protobuf 3.7 does). As such, for now, we have to make this our last include.
#include "Global.h"
BasepointPixmap::BasepointPixmap() :
diff --git a/src/mumble/OverlayUser.cpp b/src/mumble/OverlayUser.cpp
index bb7f464c5..887a43d07 100644
--- a/src/mumble/OverlayUser.cpp
+++ b/src/mumble/OverlayUser.cpp
@@ -3,8 +3,6 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "mumble_pch.hpp"
-
#include "OverlayUser.h"
#include "OverlayText.h"
@@ -17,6 +15,9 @@
#include "ServerHandler.h"
#include "MainWindow.h"
#include "GlobalShortcut.h"
+#include "Utils.h"
+
+#include <QtGui/QImageReader>
// We define a global macro called 'g'. This can lead to issues when included code uses 'g' as a type or parameter name (like protobuf 3.7 does). As such, for now, we have to make this our last include.
#include "Global.h"
diff --git a/src/mumble/OverlayUserGroup.cpp b/src/mumble/OverlayUserGroup.cpp
index 133e930c0..f62f0f33a 100644
--- a/src/mumble/OverlayUserGroup.cpp
+++ b/src/mumble/OverlayUserGroup.cpp
@@ -3,8 +3,6 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "mumble_pch.hpp"
-
#include "OverlayUserGroup.h"
#include "OverlayUser.h"
@@ -20,6 +18,12 @@
#include "ServerHandler.h"
#include "MainWindow.h"
#include "GlobalShortcut.h"
+#include "Utils.h"
+
+#include <QtGui/QImageReader>
+#include <QtWidgets/QGraphicsSceneContextMenuEvent>
+#include <QtWidgets/QGraphicsSceneWheelEvent>
+#include <QtWidgets/QInputDialog>
// We define a global macro called 'g'. This can lead to issues when included code uses 'g' as a type or parameter name (like protobuf 3.7 does). As such, for now, we have to make this our last include.
#include "Global.h"
diff --git a/src/mumble/Overlay_macx.mm b/src/mumble/Overlay_macx.mm
index 0167f0dd4..9704c3301 100644
--- a/src/mumble/Overlay_macx.mm
+++ b/src/mumble/Overlay_macx.mm
@@ -3,14 +3,17 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "mumble_pch.hpp"
-#import <ScriptingBridge/ScriptingBridge.h>
-#import <Cocoa/Cocoa.h>
-#include <Carbon/Carbon.h>
#include "OverlayConfig.h"
#include "OverlayClient.h"
#include "MainWindow.h"
+#include <QtCore/QProcess>
+#include <QtCore/QXmlStreamReader>
+
+#import <ScriptingBridge/ScriptingBridge.h>
+#import <Cocoa/Cocoa.h>
+#include <Carbon/Carbon.h>
+
// We define a global macro called 'g'. This can lead to issues when included code uses 'g' as a type or parameter name (like protobuf 3.7 does). As such, for now, we have to make this our last include.
#include "Global.h"
diff --git a/src/mumble/Overlay_unix.cpp b/src/mumble/Overlay_unix.cpp
index 2fe7a4caa..dc27b3216 100644
--- a/src/mumble/Overlay_unix.cpp
+++ b/src/mumble/Overlay_unix.cpp
@@ -3,8 +3,6 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "mumble_pch.hpp"
-
#include "Overlay.h"
#include "OverlayConfig.h"
diff --git a/src/mumble/Overlay_win.cpp b/src/mumble/Overlay_win.cpp
index 56666f50c..c3f0597ee 100644
--- a/src/mumble/Overlay_win.cpp
+++ b/src/mumble/Overlay_win.cpp
@@ -3,21 +3,21 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "mumble_pch.hpp"
-
#include "Overlay.h"
#include "User.h"
#include "Channel.h"
#include "OverlayConfig.h"
#include "MainWindow.h"
-#include "Global.h"
#include "MumbleApplication.h"
#include "Overlay_win.h"
#include "../../overlay/overlay_exe/overlay_exe.h"
+// We define a global macro called 'g'. This can lead to issues when included code uses 'g' as a type or parameter name (like protobuf 3.7 does). As such, for now, we have to make this our last include.
+#include "Global.h"
+
// Used by the overlay to detect whether we injected into ourselves.
//
// A similar declaration can be found in mumble_exe's Overlay.cpp,
diff --git a/src/mumble/Overlay_win.h b/src/mumble/Overlay_win.h
index 6eaeb29fc..2a19ce118 100644
--- a/src/mumble/Overlay_win.h
+++ b/src/mumble/Overlay_win.h
@@ -6,7 +6,9 @@
#ifndef MUMBLE_MUMBLE_OVERLAY_WIN_H_
#define MUMBLE_MUMBLE_OVERLAY_WIN_H_
-#include <windows.h>
+#include "Overlay.h"
+
+#include "win.h"
#include <QString>
#include <QStringList>
@@ -14,8 +16,6 @@
#include <QTimer>
#include <QElapsedTimer>
-#include "Overlay.h"
-
class OverlayPrivateWin : public OverlayPrivate {
private:
Q_OBJECT
diff --git a/src/mumble/PAAudio.cpp b/src/mumble/PAAudio.cpp
index 873a8667d..988b35f27 100644
--- a/src/mumble/PAAudio.cpp
+++ b/src/mumble/PAAudio.cpp
@@ -34,8 +34,6 @@
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-#include "mumble_pch.hpp"
-
#include "PAAudio.h"
#include "Global.h"
diff --git a/src/mumble/PTTButtonWidget.cpp b/src/mumble/PTTButtonWidget.cpp
index 0957e929d..9595f3cd3 100644
--- a/src/mumble/PTTButtonWidget.cpp
+++ b/src/mumble/PTTButtonWidget.cpp
@@ -3,8 +3,6 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "mumble_pch.hpp"
-
#include "PTTButtonWidget.h"
#include "Global.h"
diff --git a/src/mumble/PathListWidget.cpp b/src/mumble/PathListWidget.cpp
index 8394db76d..4d272dec4 100644
--- a/src/mumble/PathListWidget.cpp
+++ b/src/mumble/PathListWidget.cpp
@@ -3,17 +3,17 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "mumble_pch.hpp"
-
#include "PathListWidget.h"
-#include <QDragEnterEvent>
-#include <QDragMoveEvent>
-#include <QDropEvent>
-#include <QFile>
-#include <QDir>
#include "Overlay.h"
+#include <QtCore/QDir>
+#include <QtCore/QFile>
+#include <QtCore/QMimeData>
+#include <QtGui/QDragEnterEvent>
+#include <QtGui/QDragMoveEvent>
+#include <QtGui/QDropEvent>
+
PathListWidget::PathListWidget(QWidget *parent)
: QListWidget(parent)
, pathType(FILE_EXE) {
diff --git a/src/mumble/Plugins.cpp b/src/mumble/Plugins.cpp
index 040163f1b..fca8876bf 100644
--- a/src/mumble/Plugins.cpp
+++ b/src/mumble/Plugins.cpp
@@ -3,8 +3,6 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "mumble_pch.hpp"
-
#include "Plugins.h"
#include "Log.h"
@@ -15,6 +13,22 @@
#include "WebFetch.h"
#include "MumbleApplication.h"
#include "ManualPlugin.h"
+#include "Utils.h"
+
+#include <QtCore/QLibrary>
+#include <QtCore/QUrlQuery>
+
+#ifdef Q_OS_WIN
+# include <QtCore/QTemporaryFile>
+#endif
+
+#include <QtWidgets/QMessageBox>
+#include <QtXml/QDomDocument>
+
+#ifdef Q_OS_WIN
+# include <softpub.h>
+# include <tlhelp32.h>
+#endif
// We define a global macro called 'g'. This can lead to issues when included code uses 'g' as a type or parameter name (like protobuf 3.7 does). As such, for now, we have to make this our last include.
#include "Global.h"
diff --git a/src/mumble/Plugins.h b/src/mumble/Plugins.h
index 2bf42a871..88b252c2b 100644
--- a/src/mumble/Plugins.h
+++ b/src/mumble/Plugins.h
@@ -6,17 +6,18 @@
#ifndef MUMBLE_MUMBLE_PLUGINS_H_
#define MUMBLE_MUMBLE_PLUGINS_H_
+#include "ConfigDialog.h"
+
+#include "ui_Plugins.h"
+
+#ifdef Q_OS_WIN
+# include "win.h"
+#endif
+
#include <QtCore/QObject>
#include <QtCore/QMutex>
#include <QtCore/QReadWriteLock>
#include <QtCore/QUrl>
-#ifdef Q_OS_WIN
-#include <windows.h>
-#endif
-
-#include "ConfigDialog.h"
-
-#include "ui_Plugins.h"
struct PluginInfo;
diff --git a/src/mumble/PulseAudio.cpp b/src/mumble/PulseAudio.cpp
index 0dd54ac4d..02c53bd66 100644
--- a/src/mumble/PulseAudio.cpp
+++ b/src/mumble/PulseAudio.cpp
@@ -3,8 +3,6 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "mumble_pch.hpp"
-
#include "PulseAudio.h"
#include "MainWindow.h"
diff --git a/src/mumble/RichTextEditor.cpp b/src/mumble/RichTextEditor.cpp
index a2fb1e72a..20c5d5ace 100644
--- a/src/mumble/RichTextEditor.cpp
+++ b/src/mumble/RichTextEditor.cpp
@@ -3,14 +3,23 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "mumble_pch.hpp"
-
#include "RichTextEditor.h"
#include "Log.h"
#include "MainWindow.h"
#include "XMLTools.h"
+#include <QtCore/QMimeData>
+#include <QtGui/QImageReader>
+#include <QtGui/QPainter>
+#include <QtWidgets/QColorDialog>
+#include <QtWidgets/QMessageBox>
+#include <QtWidgets/QToolTip>
+
+#ifdef Q_OS_WIN
+# include <shlobj.h>
+#endif
+
// We define a global macro called 'g'. This can lead to issues when included code uses 'g' as a type or parameter name (like protobuf 3.7 does). As such, for now, we have to make this our last include.
#include "Global.h"
diff --git a/src/mumble/ServerHandler.cpp b/src/mumble/ServerHandler.cpp
index 116b03e13..653f0eb2f 100644
--- a/src/mumble/ServerHandler.cpp
+++ b/src/mumble/ServerHandler.cpp
@@ -3,7 +3,11 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "mumble_pch.hpp"
+#include <QtCore/QtGlobal>
+
+#ifdef Q_OS_WIN
+# include "win.h"
+#endif
#include "ServerHandler.h"
@@ -24,6 +28,33 @@
#include "HostAddress.h"
#include "ServerResolver.h"
#include "ServerResolverRecord.h"
+#include "Utils.h"
+
+#include <QtCore/QtEndian>
+#include <QtGui/QImageReader>
+#include <QtNetwork/QSslConfiguration>
+#include <QtNetwork/QUdpSocket>
+
+#include <openssl/crypto.h>
+
+#ifdef Q_OS_WIN
+// <delayimp.h> is not protected with an include guard on MinGW, resulting in
+// redefinitions if the PCH header is used.
+// The workaround consists in including the header only if _DELAY_IMP_VER
+// (defined in the header) is not defined.
+# ifndef _DELAY_IMP_VER
+# include <delayimp.h>
+# endif
+# include <qos2.h>
+# include <wincrypt.h>
+# include <winsock2.h>
+#else
+# if defined(Q_OS_FREEBSD) || defined(Q_OS_OPENBSD)
+# include <netinet/in.h>
+# endif
+# include <netinet/ip.h>
+# include <sys/socket.h>
+#endif
// We define a global macro called 'g'. This can lead to issues when included code uses 'g' as a type or parameter name (like protobuf 3.7 does). As such, for now, we have to make this our last include.
#include "Global.h"
diff --git a/src/mumble/ServerHandler.h b/src/mumble/ServerHandler.h
index 9723160e8..058fe45a8 100644
--- a/src/mumble/ServerHandler.h
+++ b/src/mumble/ServerHandler.h
@@ -6,6 +6,12 @@
#ifndef MUMBLE_MUMBLE_SERVERHANDLER_H_
#define MUMBLE_MUMBLE_SERVERHANDLER_H_
+#include <QtCore/QtGlobal>
+
+#ifdef Q_OS_WIN
+# include "win.h"
+#endif
+
#ifndef Q_MOC_RUN
# include <boost/accumulators/accumulators.hpp>
# include <boost/accumulators/statistics/stats.hpp>
@@ -23,10 +29,6 @@
#include <QtNetwork/QSslCipher>
#include <QtNetwork/QSslError>
-#ifdef Q_OS_WIN
-#include <windows.h>
-#endif
-
#define SERVERSEND_EVENT 3501
#include "Timer.h"
diff --git a/src/mumble/Settings.cpp b/src/mumble/Settings.cpp
index dbb9ab596..446a529ba 100644
--- a/src/mumble/Settings.cpp
+++ b/src/mumble/Settings.cpp
@@ -3,18 +3,25 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "mumble_pch.hpp"
-
#include "Settings.h"
#include "AudioInput.h"
#include "Cert.h"
#include "Log.h"
-#include "Global.h"
#include "SSL.h"
#include "../../overlay/overlay.h"
+#include <QtCore/QProcessEnvironment>
+#include <QtCore/QStandardPaths>
+#include <QtGui/QImageReader>
+#include <QtWidgets/QSystemTrayIcon>
+
+#include <boost/typeof/typeof.hpp>
+
+// We define a global macro called 'g'. This can lead to issues when included code uses 'g' as a type or parameter name (like protobuf 3.7 does). As such, for now, we have to make this our last include.
+#include "Global.h"
+
bool Shortcut::isServerSpecific() const {
if (qvData.canConvert<ShortcutTarget>()) {
const ShortcutTarget &sc = qvariant_cast<ShortcutTarget> (qvData);
diff --git a/src/mumble/SharedMemory.cpp b/src/mumble/SharedMemory.cpp
index 8ca323f59..b5c5dc5bd 100644
--- a/src/mumble/SharedMemory.cpp
+++ b/src/mumble/SharedMemory.cpp
@@ -3,8 +3,6 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "mumble_pch.hpp"
-
#include "SharedMemory.h"
unsigned int SharedMemory2::uiIndex = 0;
diff --git a/src/mumble/SharedMemory_unix.cpp b/src/mumble/SharedMemory_unix.cpp
index abd5ad08f..73022fe65 100644
--- a/src/mumble/SharedMemory_unix.cpp
+++ b/src/mumble/SharedMemory_unix.cpp
@@ -3,8 +3,6 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "mumble_pch.hpp"
-
#include "SharedMemory.h"
#include <sys/types.h>
diff --git a/src/mumble/SharedMemory_win.cpp b/src/mumble/SharedMemory_win.cpp
index 044932d55..d951ffbea 100644
--- a/src/mumble/SharedMemory_win.cpp
+++ b/src/mumble/SharedMemory_win.cpp
@@ -3,14 +3,9 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "mumble_pch.hpp"
-
#include "SharedMemory.h"
-#ifndef _WIN32_WINNT
-#define _WIN32_WINNT 0x0501
-#include <windows.h>
-#endif
+#include "win.h"
#include <QtCore/QDebug>
diff --git a/src/mumble/SocketRPC.cpp b/src/mumble/SocketRPC.cpp
index 900361c8a..8a220b928 100644
--- a/src/mumble/SocketRPC.cpp
+++ b/src/mumble/SocketRPC.cpp
@@ -3,8 +3,6 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "mumble_pch.hpp"
-
#include "SocketRPC.h"
#include "Channel.h"
@@ -12,6 +10,11 @@
#include "MainWindow.h"
#include "ServerHandler.h"
+#include <QtCore/QProcessEnvironment>
+#include <QtCore/QUrlQuery>
+#include <QtNetwork/QLocalServer>
+#include <QtXml/QDomDocument>
+
// We define a global macro called 'g'. This can lead to issues when included code uses 'g' as a type or parameter name (like protobuf 3.7 does). As such, for now, we have to make this our last include.
#include "Global.h"
diff --git a/src/mumble/TaskList.cpp b/src/mumble/TaskList.cpp
index f619683d4..58e37dedc 100644
--- a/src/mumble/TaskList.cpp
+++ b/src/mumble/TaskList.cpp
@@ -3,10 +3,17 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "mumble_pch.hpp"
-
#include "TaskList.h"
+#include "MumbleApplication.h"
+
+#include <QtCore/QFileInfo>
+#include <QtCore/QSettings>
+#include <QtCore/QString>
+#include <QtCore/QUrl>
+#include <QtCore/QUrlQuery>
+
+#include <shlobj.h>
#include <shobjidl.h>
#include <propkey.h>
#include <propvarutil.h>
diff --git a/src/mumble/TaskList.h b/src/mumble/TaskList.h
index dd965ca88..a5a0ec512 100644
--- a/src/mumble/TaskList.h
+++ b/src/mumble/TaskList.h
@@ -6,6 +6,8 @@
#ifndef MUMBLE_MUMBLE_TASK_LIST_H_
#define MUMBLE_MUMBLE_TASK_LIST_H_
+class QString;
+
class TaskList {
public:
static void addToRecentList(QString name, QString user, QString host, int port);
diff --git a/src/mumble/TextMessage.cpp b/src/mumble/TextMessage.cpp
index 039d10f7b..5614e2814 100644
--- a/src/mumble/TextMessage.cpp
+++ b/src/mumble/TextMessage.cpp
@@ -3,8 +3,6 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "mumble_pch.hpp"
-
#include "TextMessage.h"
TextMessage::TextMessage(QWidget *p, QString title, bool bChannel) : QDialog(p) {
diff --git a/src/mumble/TextToSpeech.cpp b/src/mumble/TextToSpeech.cpp
index f4cea8f31..39d970d8a 100644
--- a/src/mumble/TextToSpeech.cpp
+++ b/src/mumble/TextToSpeech.cpp
@@ -3,8 +3,6 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "mumble_pch.hpp"
-
#include "TextToSpeech.h"
#include <QTextToSpeech>
diff --git a/src/mumble/TextToSpeech_macx.mm b/src/mumble/TextToSpeech_macx.mm
index e68910a21..b7901e2d9 100644
--- a/src/mumble/TextToSpeech_macx.mm
+++ b/src/mumble/TextToSpeech_macx.mm
@@ -38,8 +38,6 @@
#import <AppKit/AppKit.h>
-#include "mumble_pch.hpp"
-
#include "Global.h"
#include "TextToSpeech.h"
diff --git a/src/mumble/TextToSpeech_unix.cpp b/src/mumble/TextToSpeech_unix.cpp
index 5aeedee7d..106808d28 100644
--- a/src/mumble/TextToSpeech_unix.cpp
+++ b/src/mumble/TextToSpeech_unix.cpp
@@ -3,8 +3,6 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "mumble_pch.hpp"
-
#include "TextToSpeech.h"
#ifdef USE_SPEECHD
@@ -15,6 +13,9 @@
# endif
#endif
+#include <QtCore/QLocale>
+
+// We define a global macro called 'g'. This can lead to issues when included code uses 'g' as a type or parameter name (like protobuf 3.7 does). As such, for now, we have to make this our last include.
#include "Global.h"
class TextToSpeechPrivate {
diff --git a/src/mumble/TextToSpeech_win.cpp b/src/mumble/TextToSpeech_win.cpp
index de16e55fb..ae32c9805 100644
--- a/src/mumble/TextToSpeech_win.cpp
+++ b/src/mumble/TextToSpeech_win.cpp
@@ -3,8 +3,6 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "mumble_pch.hpp"
-
#include "TextToSpeech.h"
#include <servprov.h>
diff --git a/src/mumble/ThemeInfo.cpp b/src/mumble/ThemeInfo.cpp
index 58abaf705..f22619b2a 100644
--- a/src/mumble/ThemeInfo.cpp
+++ b/src/mumble/ThemeInfo.cpp
@@ -3,10 +3,12 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "mumble_pch.hpp"
-
#include "ThemeInfo.h"
+#include <QtCore/QDebug>
+#include <QtCore/QDir>
+#include <QtCore/QSettings>
+
QFileInfo ThemeInfo::StyleInfo::getPlatformQss() const {
#if defined(Q_OS_WIN)
return qssFiles.value(QLatin1String("WIN"), defaultQss);
diff --git a/src/mumble/Themes.cpp b/src/mumble/Themes.cpp
index 5fe8e82e2..901ddd0e8 100644
--- a/src/mumble/Themes.cpp
+++ b/src/mumble/Themes.cpp
@@ -3,8 +3,6 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "mumble_pch.hpp"
-
#include "Themes.h"
#include "MainWindow.h"
#include "MumbleApplication.h"
diff --git a/src/mumble/Tokens.cpp b/src/mumble/Tokens.cpp
index 9344e749b..a518234e4 100644
--- a/src/mumble/Tokens.cpp
+++ b/src/mumble/Tokens.cpp
@@ -3,8 +3,6 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "mumble_pch.hpp"
-
#include "Tokens.h"
#include "Database.h"
diff --git a/src/mumble/Usage.cpp b/src/mumble/Usage.cpp
index 10de98edd..0bdbd7b2d 100644
--- a/src/mumble/Usage.cpp
+++ b/src/mumble/Usage.cpp
@@ -3,8 +3,6 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "mumble_pch.hpp"
-
#include "Usage.h"
#include "ClientUser.h"
@@ -14,6 +12,12 @@
#include "OSInfo.h"
#include "Version.h"
+#include <QtCore/QTimer>
+#include <QtNetwork/QHostAddress>
+#include <QtNetwork/QNetworkAccessManager>
+#include <QtNetwork/QNetworkReply>
+#include <QtXml/QDomElement>
+
Usage::Usage(QObject *p) : QObject(p) {
qbReport.open(QBuffer::ReadWrite);
qdsReport.setDevice(&qbReport);
diff --git a/src/mumble/UserEdit.cpp b/src/mumble/UserEdit.cpp
index 2172aa1a5..d1305dcf9 100644
--- a/src/mumble/UserEdit.cpp
+++ b/src/mumble/UserEdit.cpp
@@ -3,17 +3,16 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "mumble_pch.hpp"
-
#include "UserEdit.h"
-#include <QItemSelectionModel>
-
#include "Channel.h"
#include "ServerHandler.h"
#include "User.h"
#include "UserListModel.h"
+#include <QtCore/QItemSelectionModel>
+#include <QtWidgets/QMenu>
+
// We define a global macro called 'g'. This can lead to issues when included code uses 'g' as a type or parameter name (like protobuf 3.7 does). As such, for now, we have to make this our last include.
#include "Global.h"
diff --git a/src/mumble/UserInformation.cpp b/src/mumble/UserInformation.cpp
index f4ec2e5d1..4fb5d2ce9 100644
--- a/src/mumble/UserInformation.cpp
+++ b/src/mumble/UserInformation.cpp
@@ -3,8 +3,6 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "mumble_pch.hpp"
-
#include "UserInformation.h"
#include "Audio.h"
@@ -13,6 +11,8 @@
#include "ServerHandler.h"
#include "ViewCert.h"
+#include <QtCore/QUrl>
+
// We define a global macro called 'g'. This can lead to issues when included code uses 'g' as a type or parameter name (like protobuf 3.7 does). As such, for now, we have to make this our last include.
#include "Global.h"
diff --git a/src/mumble/UserListModel.cpp b/src/mumble/UserListModel.cpp
index e708ea572..2f5d41596 100644
--- a/src/mumble/UserListModel.cpp
+++ b/src/mumble/UserListModel.cpp
@@ -3,15 +3,20 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "mumble_pch.hpp"
-
#include "UserListModel.h"
+
#include "Channel.h"
#include "Message.h"
+#include "Utils.h"
-#include <vector>
#include <algorithm>
+#ifdef _MSC_VER
+# include <functional>
+#endif
+
+#include <vector>
+
UserListModel::UserListModel(const MumbleProto::UserList& userList, QObject *parent_)
: QAbstractTableModel(parent_)
, m_legacyMode(false) {
diff --git a/src/mumble/UserLocalVolumeDialog.cpp b/src/mumble/UserLocalVolumeDialog.cpp
index 10a21336e..b6d20a3b9 100644
--- a/src/mumble/UserLocalVolumeDialog.cpp
+++ b/src/mumble/UserLocalVolumeDialog.cpp
@@ -34,13 +34,18 @@
*/
-#include "mumble_pch.hpp"
-
#include "UserLocalVolumeDialog.h"
-#include "Global.h"
#include "ClientUser.h"
#include "Database.h"
+#include <QtGui/QCloseEvent>
+#include <QtWidgets/QPushButton>
+
+#include <cmath>
+
+// We define a global macro called 'g'. This can lead to issues when included code uses 'g' as a type or parameter name (like protobuf 3.7 does). As such, for now, we have to make this our last include.
+#include "Global.h"
+
UserLocalVolumeDialog::UserLocalVolumeDialog(unsigned int sessionId,
QMap<unsigned int, UserLocalVolumeDialog *> *qmUserVolTracker)
: QDialog(NULL)
diff --git a/src/mumble/UserLockFile.h b/src/mumble/UserLockFile.h
index f3d81a1e2..feb61ba49 100644
--- a/src/mumble/UserLockFile.h
+++ b/src/mumble/UserLockFile.h
@@ -6,10 +6,14 @@
#ifndef MUMBLE_MUMBLE_LOCKFILE_H_
#define MUMBLE_MUMBLE_LOCKFILE_H_
-#if defined(Q_OS_WIN)
-# include <windows.h>
+#include <QtCore/QtGlobal>
+
+#ifdef Q_OS_WIN
+# include "win.h"
#endif
+#include <QtCore/QString>
+
/// UserLockFile implements an atomic lock file
/// that can be used as a mutex between different
/// processes run by the same user.
diff --git a/src/mumble/UserLockFile_win.cpp b/src/mumble/UserLockFile_win.cpp
index 4b9f66b45..c0c9bdd22 100644
--- a/src/mumble/UserLockFile_win.cpp
+++ b/src/mumble/UserLockFile_win.cpp
@@ -3,8 +3,6 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "mumble_pch.hpp"
-
#include "UserLockFile.h"
UserLockFile::UserLockFile(const QString &lockFilePath)
diff --git a/src/mumble/UserModel.cpp b/src/mumble/UserModel.cpp
index 901f97039..4f8c308c7 100644
--- a/src/mumble/UserModel.cpp
+++ b/src/mumble/UserModel.cpp
@@ -3,8 +3,6 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "mumble_pch.hpp"
-
#include "UserModel.h"
#include "ClientUser.h"
@@ -19,6 +17,13 @@
#include "Usage.h"
#include "User.h"
+#include <QtCore/QMimeData>
+#include <QtCore/QStack>
+#include <QtGui/QImageReader>
+#include <QtWidgets/QMessageBox>
+#include <QtWidgets/QToolTip>
+#include <QtWidgets/QWhatsThis>
+
// We define a global macro called 'g'. This can lead to issues when included code uses 'g' as a type or parameter name (like protobuf 3.7 does). As such, for now, we have to make this our last include.
#include "Global.h"
diff --git a/src/mumble/UserView.cpp b/src/mumble/UserView.cpp
index 45548db14..fdcd5afd2 100644
--- a/src/mumble/UserView.cpp
+++ b/src/mumble/UserView.cpp
@@ -3,8 +3,6 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "mumble_pch.hpp"
-
#include "UserView.h"
#include "Channel.h"
@@ -14,6 +12,11 @@
#include "ServerHandler.h"
#include "UserModel.h"
+#include <QtGui/QDesktopServices>
+#include <QtGui/QHelpEvent>
+#include <QtGui/QPainter>
+#include <QtWidgets/QWhatsThis>
+
// We define a global macro called 'g'. This can lead to issues when included code uses 'g' as a type or parameter name (like protobuf 3.7 does). As such, for now, we have to make this our last include.
#include "Global.h"
diff --git a/src/mumble/VersionCheck.cpp b/src/mumble/VersionCheck.cpp
index 0a7a1a526..a14af8ab6 100644
--- a/src/mumble/VersionCheck.cpp
+++ b/src/mumble/VersionCheck.cpp
@@ -3,13 +3,25 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "mumble_pch.hpp"
-
#include "VersionCheck.h"
#include "MainWindow.h"
+#include "Utils.h"
#include "WebFetch.h"
+#ifdef Q_OS_WIN
+# include "win.h"
+#endif
+
+#include <QtCore/QUrlQuery>
+#include <QtXml/QDomDocument>
+#include <QtWidgets/QMessageBox>
+
+#ifdef Q_OS_WIN
+# include <shellapi.h>
+# include <softpub.h>
+#endif
+
// We define a global macro called 'g'. This can lead to issues when included code uses 'g' as a type or parameter name (like protobuf 3.7 does). As such, for now, we have to make this our last include.
#include "Global.h"
diff --git a/src/mumble/ViewCert.cpp b/src/mumble/ViewCert.cpp
index bca5faa43..6aa6d539f 100644
--- a/src/mumble/ViewCert.cpp
+++ b/src/mumble/ViewCert.cpp
@@ -3,10 +3,16 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "mumble_pch.hpp"
-
#include "ViewCert.h"
+#include <QtCore/QUrl>
+#include <QtNetwork/QSslKey>
+#include <QtWidgets/QDialogButtonBox>
+#include <QtWidgets/QGroupBox>
+#include <QtWidgets/QHBoxLayout>
+#include <QtWidgets/QListWidget>
+#include <QtWidgets/QVBoxLayout>
+
static QString decode_utf8_qssl_string(const QString &input) {
QString i = input;
return QUrl::fromPercentEncoding(i.replace(QLatin1String("\\x"), QLatin1String("%")).toLatin1());
diff --git a/src/mumble/VoiceRecorder.cpp b/src/mumble/VoiceRecorder.cpp
index 708b1070c..bf8f74649 100644
--- a/src/mumble/VoiceRecorder.cpp
+++ b/src/mumble/VoiceRecorder.cpp
@@ -3,8 +3,6 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "mumble_pch.hpp"
-
#include "VoiceRecorder.h"
#include "AudioOutput.h"
@@ -13,6 +11,8 @@
#include "../Timer.h"
+#include <boost/make_shared.hpp>
+
// We define a global macro called 'g'. This can lead to issues when included code uses 'g' as a type or parameter name (like protobuf 3.7 does). As such, for now, we have to make this our last include.
#include "Global.h"
diff --git a/src/mumble/VoiceRecorder.h b/src/mumble/VoiceRecorder.h
index f82b8cf88..7eac9712c 100644
--- a/src/mumble/VoiceRecorder.h
+++ b/src/mumble/VoiceRecorder.h
@@ -6,12 +6,17 @@
#ifndef MUMBLE_MUMBLE_VOICERECORDER_H_
#define MUMBLE_MUMBLE_VOICERECORDER_H_
+#include <QtCore/QtGlobal>
+
+#ifdef Q_OS_WIN
+# include "win.h"
+#endif
+
#ifndef Q_MOC_RUN
# include <boost/scoped_ptr.hpp>
# include <boost/shared_array.hpp>
#endif
-#include <sndfile.h>
#include <QtCore/QDateTime>
#include <QtCore/QHash>
#include <QtCore/QMutex>
@@ -19,6 +24,12 @@
#include <QtCore/QThread>
#include <QtCore/QWaitCondition>
+#ifdef Q_OS_WIN
+# define ENABLE_SNDFILE_WINDOWS_PROTOTYPES 1
+#endif
+
+#include <sndfile.h>
+
class ClientUser;
class RecordUser;
class Timer;
diff --git a/src/mumble/VoiceRecorderDialog.cpp b/src/mumble/VoiceRecorderDialog.cpp
index 2ed5c4772..0a65efb42 100644
--- a/src/mumble/VoiceRecorderDialog.cpp
+++ b/src/mumble/VoiceRecorderDialog.cpp
@@ -3,14 +3,16 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "mumble_pch.hpp"
-
#include "VoiceRecorderDialog.h"
#include "AudioOutput.h"
#include "ServerHandler.h"
#include "VoiceRecorder.h"
+#include <QtGui/QCloseEvent>
+#include <QtWidgets/QFileDialog>
+#include <QtWidgets/QMessageBox>
+
// We define a global macro called 'g'. This can lead to issues when included code uses 'g' as a type or parameter name (like protobuf 3.7 does). As such, for now, we have to make this our last include.
#include "Global.h"
diff --git a/src/mumble/WASAPI.cpp b/src/mumble/WASAPI.cpp
index 16d16691a..fcd6b5a3c 100644
--- a/src/mumble/WASAPI.cpp
+++ b/src/mumble/WASAPI.cpp
@@ -3,12 +3,11 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "mumble_pch.hpp"
-
#include "WASAPI.h"
#include "WASAPINotificationClient.h"
#include "MainWindow.h"
+#include "Utils.h"
// We define a global macro called 'g'. This can lead to issues when included code uses 'g' as a type or parameter name (like protobuf 3.7 does). As such, for now, we have to make this our last include.
#include "Global.h"
diff --git a/src/mumble/WASAPI.h b/src/mumble/WASAPI.h
index aa855e439..421574498 100644
--- a/src/mumble/WASAPI.h
+++ b/src/mumble/WASAPI.h
@@ -6,10 +6,14 @@
#ifndef MUMBLE_MUMBLE_WASAPI_H_
#define MUMBLE_MUMBLE_WASAPI_H_
+#include "AudioInput.h"
+#include "AudioOutput.h"
+
+#include "win.h"
+
#include <QtCore/QObject>
#include <QtCore/QUuid>
-#include <windows.h>
#include <mmreg.h>
#include <strsafe.h>
#include <mmdeviceapi.h>
@@ -24,9 +28,6 @@
#include <propidl.h>
#include <audiopolicy.h>
-#include "AudioInput.h"
-#include "AudioOutput.h"
-
class WASAPISystem : public QObject {
private:
Q_OBJECT
diff --git a/src/mumble/WASAPINotificationClient.cpp b/src/mumble/WASAPINotificationClient.cpp
index d07dcda68..9c6f98614 100644
--- a/src/mumble/WASAPINotificationClient.cpp
+++ b/src/mumble/WASAPINotificationClient.cpp
@@ -3,8 +3,6 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "mumble_pch.hpp"
-
#include "MainWindow.h"
#include "WASAPINotificationClient.h"
diff --git a/src/mumble/WebFetch.cpp b/src/mumble/WebFetch.cpp
index b5266a54e..0b40c4261 100644
--- a/src/mumble/WebFetch.cpp
+++ b/src/mumble/WebFetch.cpp
@@ -3,13 +3,15 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "mumble_pch.hpp"
-
#include "WebFetch.h"
-#include "Global.h"
#include "NetworkConfig.h"
+#include <QtNetwork/QNetworkReply>
+
+// We define a global macro called 'g'. This can lead to issues when included code uses 'g' as a type or parameter name (like protobuf 3.7 does). As such, for now, we have to make this our last include.
+#include "Global.h"
+
WebFetch::WebFetch(QString service, QUrl url, QObject *obj, const char *slot)
: QObject()
, qoObject(obj)
diff --git a/src/mumble/XboxInput.cpp b/src/mumble/XboxInput.cpp
index 748194a1c..2abb4f42b 100644
--- a/src/mumble/XboxInput.cpp
+++ b/src/mumble/XboxInput.cpp
@@ -3,10 +3,10 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "mumble_pch.hpp"
-
#include "XboxInput.h"
+#include <QtCore/QStringList>
+
const QUuid XboxInput::s_XboxInputGuid = QUuid(QString::fromLatin1("ca3937e3-640c-4d9e-9ef3-903f8b4fbcab"));
XboxInput::XboxInput()
diff --git a/src/mumble/XboxInput.h b/src/mumble/XboxInput.h
index 64c5535cb..2af568976 100644
--- a/src/mumble/XboxInput.h
+++ b/src/mumble/XboxInput.h
@@ -6,10 +6,12 @@
#ifndef MUMBLE_MUMBLE_XBOXINPUT_H_
#define MUMBLE_MUMBLE_XBOXINPUT_H_
-#include <windows.h>
-#include <stdint.h>
+#include "win.h"
+
#include <QUuid>
+#include <stdint.h>
+
/// XBOXINPUT_MAX_DEVICES defines the maximum
/// number of devices that can be connected
/// to the system at once.
diff --git a/src/mumble/main.cpp b/src/mumble/main.cpp
index a25aef7ef..ecc93d55e 100644
--- a/src/mumble/main.cpp
+++ b/src/mumble/main.cpp
@@ -3,8 +3,6 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "mumble_pch.hpp"
-
#include "Overlay.h"
#include "MainWindow.h"
#include "ServerHandler.h"
@@ -17,16 +15,15 @@
#include "Plugins.h"
#include "LogEmitter.h"
#include "DeveloperConsole.h"
-#include "Global.h"
#include "LCD.h"
#ifdef USE_BONJOUR
-#include "BonjourClient.h"
+# include "BonjourClient.h"
#endif
#ifdef USE_DBUS
-#include "DBus.h"
+# include "DBus.h"
#endif
#ifdef USE_VLD
-#include "vld.h"
+# include "vld.h"
#endif
#include "VersionCheck.h"
#include "NetworkConfig.h"
@@ -40,10 +37,24 @@
#include "License.h"
#include "EnvUtils.h"
+#include <QtCore/QLibraryInfo>
+#include <QtCore/QProcess>
+#include <QtCore/QStandardPaths>
+#include <QtCore/QTranslator>
+#include <QtGui/QDesktopServices>
+#include <QtWidgets/QMessageBox>
+
+#ifdef USE_DBUS
+# include <QtDBus/QDBusInterface>
+#endif
+
#if defined(Q_OS_WIN) && defined(QT_NO_DEBUG)
-#include <shellapi.h> // For CommandLineToArgvW()
+# include <shellapi.h> // For CommandLineToArgvW()
#endif
+// We define a global macro called 'g'. This can lead to issues when included code uses 'g' as a type or parameter name (like protobuf 3.7 does). As such, for now, we have to make this our last include.
+#include "Global.h"
+
#if defined(USE_STATIC_QT_PLUGINS) && QT_VERSION < 0x050000
Q_IMPORT_PLUGIN(qtaccessiblewidgets)
# ifdef Q_OS_WIN
diff --git a/src/mumble/mumble_pch.hpp b/src/mumble/mumble_pch.hpp
index 594350cd3..cabbdc8ac 100644
--- a/src/mumble/mumble_pch.hpp
+++ b/src/mumble/mumble_pch.hpp
@@ -12,28 +12,21 @@
#define QT_USE_FAST_CONCATENATION
#define QT_USE_FAST_OPERATOR_PLUS
-#define NOMINMAX
-#define WIN32_LEAN_AND_MEAN
+#include <QtCore/QtGlobal>
+
+#ifdef Q_OS_WIN
+# include "win.h"
+#endif
#define BOOST_TYPEOF_SUPPRESS_UNNAMED_NAMESPACE
#ifdef __APPLE__
-#include <Carbon/Carbon.h>
-#include <CoreFoundation/CoreFoundation.h>
-#include <ApplicationServices/ApplicationServices.h>
-#undef nil
-#undef check
-#undef TYPE_BOOL
-#endif
-
-#ifdef __MINGW32__
-// Our MinGW build targets Windows 7 for now.
-// Set up the appropriate Windows macros such that
-// MinGW's Windows headers expose all the functionality
-// we need.
-#define _WIN32_WINNT 0x0601
-#define NTDDI_VERSION NTDDI_WIN7
-#include <ws2tcpip.h>
+# include <Carbon/Carbon.h>
+# include <CoreFoundation/CoreFoundation.h>
+# include <ApplicationServices/ApplicationServices.h>
+# undef nil
+# undef check
+# undef TYPE_BOOL
#endif
#include <QtCore/QtCore>
@@ -45,19 +38,19 @@
#include <QtSvg/QtSvg>
#ifdef USE_DBUS
-#include <QtDBus/QtDBus>
+# include <QtDBus/QtDBus>
#endif
#include <QtNetwork/QtNetwork>
#include <QtSql/QtSql>
#include <QtXml/QtXml>
#ifdef Q_OS_WIN
-#define ENABLE_SNDFILE_WINDOWS_PROTOTYPES 1
+# define ENABLE_SNDFILE_WINDOWS_PROTOTYPES 1
#endif
#include <sndfile.h>
#include <celt.h>
#ifdef USE_SBCELT
-#include <sbcelt.h>
+# include <sbcelt.h>
#endif
#include <speex/speex.h>
#include <speex/speex_jitter.h>
@@ -85,46 +78,31 @@
#include <cmath>
#ifdef Q_OS_WIN
-#include "../qos2_mingw.h"
-
-#include <winsock2.h>
-#include <qos2.h>
-#include <windows.h>
-#include <shellapi.h>
-#include <wintrust.h>
-#include <softpub.h>
-#include <dbt.h>
-#include <delayimp.h>
-#include <shlobj.h>
-#include <tlhelp32.h>
-#include <psapi.h>
-#include <math.h>
-#include <mmreg.h>
-
-#define STACKVAR(type, varname, count) type *varname=reinterpret_cast<type *>(_alloca(sizeof(type) * (count)))
-
+# include <ws2tcpip.h>
+# include <qos2.h>
+# include <shellapi.h>
+# include <wintrust.h>
+# include <softpub.h>
+# include <dbt.h>
+# include <delayimp.h>
+# include <shlobj.h>
+# include <tlhelp32.h>
+# include <psapi.h>
+# include <mmreg.h>
#else // ifndef Q_OS_WIN
-#include <math.h>
-#define STACKVAR(type, varname, count) type varname[count]
-#define CopyMemory(dst,ptr,len) memcpy(dst,ptr,len)
-#define ZeroMemory(ptr,len) memset(ptr, 0, len)
-#define __cdecl
-typedef WId HWND;
-#include <sys/socket.h>
-#include <sys/types.h>
-#include <arpa/inet.h>
-#include <netinet/in.h>
-#include <netinet/tcp.h>
+# include <sys/socket.h>
+# include <sys/types.h>
+# include <arpa/inet.h>
+# include <netinet/in.h>
+# include <netinet/tcp.h>
#endif
#if !defined(Q_OS_OPENBSD) && (defined(__MMX__) || defined(Q_OS_WIN))
-#include <mmintrin.h>
+# include <mmintrin.h>
#endif
-#define iroundf(x) ( static_cast<int>(x) )
-
#ifdef USE_BONJOUR
-#include <dns_sd.h>
+# include <dns_sd.h>
#endif
#ifdef __OBJC__
diff --git a/src/mumble/murmur_pch.h b/src/mumble/murmur_pch.h
deleted file mode 100644
index 0ca10b03f..000000000
--- a/src/mumble/murmur_pch.h
+++ /dev/null
@@ -1,11 +0,0 @@
-// Copyright 2005-2019 The Mumble Developers. All rights reserved.
-// Use of this source code is governed by a BSD-style license
-// that can be found in the LICENSE file at the root of the
-// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-
-#ifndef MUMBLE_MUMBLE_MURMUR_PCH_H_
-#define MUMBLE_MUMBLE_MURMUR_PCH_H_
-
-#include "mumble_pch.hpp"
-
-#endif
diff --git a/src/mumble/os_early_win.cpp b/src/mumble/os_early_win.cpp
index 7cf060f73..a896ce441 100644
--- a/src/mumble/os_early_win.cpp
+++ b/src/mumble/os_early_win.cpp
@@ -3,13 +3,14 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include <windows.h>
+#include "win.h"
+
+#include <string>
+
#include <shlwapi.h>
#include <stdio.h>
#include <sddl.h>
-#include <string>
-
// Alert shows a fatal error dialog and waits for the user to click OK.
static void Alert(LPCWSTR title, LPCWSTR msg) {
MessageBox(NULL, msg, title, MB_OK|MB_ICONERROR);
diff --git a/src/mumble/os_macx.mm b/src/mumble/os_macx.mm
index dc8070774..616b5251b 100644
--- a/src/mumble/os_macx.mm
+++ b/src/mumble/os_macx.mm
@@ -3,10 +3,12 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "mumble_pch.hpp"
#include "LogEmitter.h"
-#include "Overlay.h"
#include "MainWindow.h"
+#include "Overlay.h"
+#include "Utils.h"
+
+#include <CoreFoundation/CoreFoundation.h>
// We define a global macro called 'g'. This can lead to issues when included code uses 'g' as a type or parameter name (like protobuf 3.7 does). As such, for now, we have to make this our last include.
#include "Global.h"
diff --git a/src/mumble/os_unix.cpp b/src/mumble/os_unix.cpp
index 3efab3a22..dc14de63d 100644
--- a/src/mumble/os_unix.cpp
+++ b/src/mumble/os_unix.cpp
@@ -2,8 +2,6 @@
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-
-#include "mumble_pch.hpp"
#include "LogEmitter.h"
#include "Global.h"
diff --git a/src/mumble/os_win.cpp b/src/mumble/os_win.cpp
index 480f22ecd..ba107c7ef 100644
--- a/src/mumble/os_win.cpp
+++ b/src/mumble/os_win.cpp
@@ -3,21 +3,34 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "mumble_pch.hpp"
+#include "LogEmitter.h"
+#include "MumbleApplication.h"
+
+#ifdef _MSC_VER
+# include "Utils.h"
+#endif
+
+#include "Version.h"
+#include "win.h"
+
+#include <cmath>
+#include <cfloat>
-#include <windows.h>
+#include <wincrypt.h>
#include <tlhelp32.h>
#include <dbghelp.h>
+
+#ifdef _MSC_VER
+# include <delayimp.h>
+#endif
+
#include <emmintrin.h>
-#include <math.h>
-#include <float.h>
#include <shobjidl.h>
#include <shlobj.h>
#include <share.h> // For share flags for _wfsopen
+// We define a global macro called 'g'. This can lead to issues when included code uses 'g' as a type or parameter name (like protobuf 3.7 does). As such, for now, we have to make this our last include.
#include "Global.h"
-#include "Version.h"
-#include "LogEmitter.h"
extern "C" {
void __cpuid(int a[4], int b);
diff --git a/src/mumble/widgets/MUComboBox.cpp b/src/mumble/widgets/MUComboBox.cpp
index 72ebfcb71..cfe3694de 100644
--- a/src/mumble/widgets/MUComboBox.cpp
+++ b/src/mumble/widgets/MUComboBox.cpp
@@ -3,10 +3,10 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "mumble_pch.hpp"
-
#include "MUComboBox.h"
+#include <QtWidgets/QListView>
+
MUComboBox::MUComboBox(QWidget *parent)
: QComboBox(parent) {
diff --git a/src/mumble_exe/mumble_exe.cpp b/src/mumble_exe/mumble_exe.cpp
index cb8b60079..488e4fcf9 100644
--- a/src/mumble_exe/mumble_exe.cpp
+++ b/src/mumble_exe/mumble_exe.cpp
@@ -3,7 +3,8 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include <windows.h>
+#include "win.h"
+
#include <shlwapi.h>
#include <stdio.h>
diff --git a/src/mumble_exe/mumble_exe.pro b/src/mumble_exe/mumble_exe.pro
index 8d2d19c00..d9628bdd0 100644
--- a/src/mumble_exe/mumble_exe.pro
+++ b/src/mumble_exe/mumble_exe.pro
@@ -10,6 +10,8 @@ CONFIG -= qt
CONFIG += debug_and_release
TARGET = mumble
+INCLUDEPATH *= $$PWD/..
+
win32 {
DEFINES += WIN32 _WIN32
RC_FILE = ../mumble/mumble.rc
diff --git a/src/murmur/About.cpp b/src/murmur/About.cpp
index 8f4aaf12c..1a72af15b 100644
--- a/src/murmur/About.cpp
+++ b/src/murmur/About.cpp
@@ -3,17 +3,18 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "murmur_pch.h"
-
-#if QT_VERSION >= 0x050000
-# include <QtWidgets/QApplication>
-#else
-# include <QtGui/QApplication>
-#endif
-
#include "About.h"
#include "Version.h"
#include "License.h"
+#include "Utils.h"
+
+#include <QtWidgets/QApplication>
+#include <QtWidgets/QLabel>
+#include <QtWidgets/QPushButton>
+#include <QtWidgets/QTabWidget>
+#include <QtWidgets/QTextBrowser>
+#include <QtWidgets/QTextEdit>
+#include <QtWidgets/QVBoxLayout>
AboutDialog::AboutDialog(QWidget *p, AboutDialogOptions options) : QDialog(p) {
setWindowTitle(tr("About Murmur"));
diff --git a/src/murmur/BonjourServer.cpp b/src/murmur/BonjourServer.cpp
index edb2ab89b..b92d882b3 100644
--- a/src/murmur/BonjourServer.cpp
+++ b/src/murmur/BonjourServer.cpp
@@ -3,8 +3,6 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "murmur_pch.h"
-
#include "BonjourServer.h"
#include "BonjourServiceRegister.h"
diff --git a/src/murmur/Cert.cpp b/src/murmur/Cert.cpp
index 1f102bc26..3a1fe10b1 100644
--- a/src/murmur/Cert.cpp
+++ b/src/murmur/Cert.cpp
@@ -3,12 +3,24 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "murmur_pch.h"
+#include <QtCore/QtGlobal>
+
+#ifdef Q_OS_WIN
+# include "win.h"
+#endif
#include "Meta.h"
#include "Server.h"
#include "SelfSignedCertificate.h"
+#include <openssl/err.h>
+#include <openssl/evp.h>
+#include <openssl/x509.h>
+
+#ifdef Q_OS_WIN
+# include <winsock2.h>
+#endif
+
bool Server::isKeyForCert(const QSslKey &key, const QSslCertificate &cert) {
if (key.isNull() || cert.isNull() || (key.type() != QSsl::PrivateKey))
return false;
diff --git a/src/murmur/DBus.cpp b/src/murmur/DBus.cpp
index 9aa2628dc..2de841cce 100644
--- a/src/murmur/DBus.cpp
+++ b/src/murmur/DBus.cpp
@@ -3,7 +3,11 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "murmur_pch.h"
+#include <QtCore/QtGlobal>
+
+#ifdef Q_OS_WIN
+# include "win.h"
+#endif
#include "DBus.h"
@@ -13,6 +17,20 @@
#include "ServerUser.h"
#include "ServerDB.h"
+#include <QtCore/QCoreApplication>
+#include <QtCore/QStack>
+#include <QtDBus/QDBusConnectionInterface>
+#include <QtDBus/QDBusInterface>
+#include <QtDBus/QDBusMessage>
+#include <QtDBus/QDBusMetaType>
+#include <QtDBus/QDBusReply>
+
+#ifdef Q_OS_WIN
+# include <winsock2.h>
+#else
+# include <arpa/inet.h>
+#endif
+
QDBusArgument &operator<<(QDBusArgument &a, const PlayerInfo &s) {
a.beginStructure();
a << s.session << s.mute << s.deaf << s.suppressed << s.selfMute << s.selfDeaf << s.channel;
diff --git a/src/murmur/Messages.cpp b/src/murmur/Messages.cpp
index aa07064cb..11e283553 100644
--- a/src/murmur/Messages.cpp
+++ b/src/murmur/Messages.cpp
@@ -3,8 +3,6 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "murmur_pch.h"
-
#include "User.h"
#include "Channel.h"
#include "ACL.h"
@@ -17,6 +15,9 @@
#include "Version.h"
#include "CryptState.h"
+#include <QtCore/QStack>
+#include <QtCore/QtEndian>
+
#define RATELIMIT(user) \
if (user->leakyBucket.ratelimit(1)) { \
return; \
diff --git a/src/murmur/Meta.cpp b/src/murmur/Meta.cpp
index 2c7ca7672..3baac7a7b 100644
--- a/src/murmur/Meta.cpp
+++ b/src/murmur/Meta.cpp
@@ -3,8 +3,6 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "murmur_pch.h"
-
#include "Meta.h"
#include "Connection.h"
@@ -17,8 +15,25 @@
#include "EnvUtils.h"
#include "FFDHE.h"
+#include <QtCore/QCoreApplication>
+#include <QtCore/QSettings>
+
+#ifdef Q_OS_WIN
+# include <QtCore/QStandardPaths>
+#endif
+
+#include <QtNetwork/QHostInfo>
+#include <QtNetwork/QNetworkInterface>
+
#if defined(USE_QSSLDIFFIEHELLMANPARAMETERS)
-# include <QSslDiffieHellmanParameters>
+# include <QtNetwork/QSslDiffieHellmanParameters>
+#endif
+
+#ifdef Q_OS_WIN
+# include <qos2.h>
+#else
+# include <pwd.h>
+# include <sys/resource.h>
#endif
MetaParams Meta::mp;
diff --git a/src/murmur/Meta.h b/src/murmur/Meta.h
index f2a1fdcd0..f9af242d9 100644
--- a/src/murmur/Meta.h
+++ b/src/murmur/Meta.h
@@ -6,6 +6,12 @@
#ifndef MUMBLE_MURMUR_META_H_
#define MUMBLE_MURMUR_META_H_
+#include "Timer.h"
+
+#ifdef Q_OS_WIN
+# include "win.h"
+#endif
+
#include <QtCore/QDir>
#include <QtCore/QList>
#include <QtCore/QUrl>
@@ -14,11 +20,6 @@
#include <QtNetwork/QSslCertificate>
#include <QtNetwork/QSslKey>
#include <QtNetwork/QSslCipher>
-#ifdef Q_OS_WIN
-#include <windows.h>
-#endif
-
-#include "Timer.h"
class Server;
class QSettings;
diff --git a/src/murmur/MurmurGRPCImpl.cpp b/src/murmur/MurmurGRPCImpl.cpp
index f4a7f6946..f8f204aec 100644
--- a/src/murmur/MurmurGRPCImpl.cpp
+++ b/src/murmur/MurmurGRPCImpl.cpp
@@ -7,8 +7,6 @@
# include <boost/function.hpp>
#endif
-#include "murmur_pch.h"
-
#include "Mumble.pb.h"
#include "../Message.h"
@@ -18,6 +16,9 @@
#include "ServerUser.h"
#include "Server.h"
#include "Channel.h"
+#include "Utils.h"
+
+#include <QtCore/QStack>
#include "MurmurRPC.proto.Wrapper.cpp"
diff --git a/src/murmur/MurmurGRPCImpl.h b/src/murmur/MurmurGRPCImpl.h
index 420e3209b..3592a62f2 100644
--- a/src/murmur/MurmurGRPCImpl.h
+++ b/src/murmur/MurmurGRPCImpl.h
@@ -7,6 +7,10 @@
#ifndef MUMBLE_MURMUR_MURMURRPC_H_
#define MUMBLE_MURMUR_MURMURRPC_H_
+#include <QtCore/QCoreApplication>
+
+#include <boost/bind.hpp>
+
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunused-parameter"
#include "MurmurRPC.grpc.pb.h"
diff --git a/src/murmur/MurmurIce.cpp b/src/murmur/MurmurIce.cpp
index 1160faad5..14d4b336f 100644
--- a/src/murmur/MurmurIce.cpp
+++ b/src/murmur/MurmurIce.cpp
@@ -3,16 +3,8 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "murmur_pch.h"
-
#include "MurmurIce.h"
-#include <limits>
-
-#include <Ice/Ice.h>
-#include <Ice/SliceChecksums.h>
-#include <IceUtil/IceUtil.h>
-
#include "Channel.h"
#include "Group.h"
#include "Meta.h"
@@ -22,6 +14,21 @@
#include "ServerDB.h"
#include "User.h"
#include "Ban.h"
+#include "Utils.h"
+
+#include <QtCore/QCoreApplication>
+#include <QtCore/QSettings>
+#include <QtCore/QStack>
+
+#include <boost/bind.hpp>
+
+#include <openssl/err.h>
+
+#include <Ice/Ice.h>
+#include <Ice/SliceChecksums.h>
+#include <IceUtil/IceUtil.h>
+
+#include <limits>
using namespace std;
using namespace Murmur;
diff --git a/src/murmur/MurmurIce.h b/src/murmur/MurmurIce.h
index f780e5eff..86f1196c7 100644
--- a/src/murmur/MurmurIce.h
+++ b/src/murmur/MurmurIce.h
@@ -7,6 +7,13 @@
#ifndef MUMBLE_MURMUR_MURMURICE_H_
#define MUMBLE_MURMUR_MURMURICE_H_
+#include <QtCore/QtGlobal>
+
+#ifdef Q_OS_WIN
+// To prevent <windows.h> (included by Ice) from including <winsock.h>.
+# define WIN32_LEAN_AND_MEAN
+#endif
+
#include <QtCore/QList>
#include <QtCore/QMap>
#include <QtCore/QMutex>
diff --git a/src/murmur/PBKDF2.cpp b/src/murmur/PBKDF2.cpp
index e521b5112..91857ee39 100644
--- a/src/murmur/PBKDF2.cpp
+++ b/src/murmur/PBKDF2.cpp
@@ -34,10 +34,27 @@
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-#include "murmur_pch.h"
+#include <QtCore/QtGlobal>
+
+#ifdef Q_OS_WIN
+// <openssl/rand.h> includes <windows.h> without defining NOMINMAX,
+// which breaks our compilation because of the "max" macro.
+#ifndef NOMINMAX
+# define NOMINMAX
+#endif
+#endif
#include "PBKDF2.h"
+#include <QtCore/QElapsedTimer>
+#include <QtCore/QLatin1String>
+
+#include <openssl/err.h>
+#include <openssl/evp.h>
+#include <openssl/rand.h>
+
+#include <limits>
+
int PBKDF2::benchmark() {
const QString pseudopass(QLatin1String("aboutAvg"));
const QString hexSalt = getSalt(); // Could tolerate not getting a salt here, will likely only make it harder.
diff --git a/src/murmur/RPC.cpp b/src/murmur/RPC.cpp
index ff62bad9d..f95604d9c 100644
--- a/src/murmur/RPC.cpp
+++ b/src/murmur/RPC.cpp
@@ -3,7 +3,11 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "murmur_pch.h"
+#include <QtCore/QtGlobal>
+
+#ifdef Q_OS_WIN
+# include "win.h"
+#endif
#include "Channel.h"
#include "Group.h"
@@ -13,6 +17,10 @@
#include "ServerUser.h"
#include "Version.h"
+#ifdef Q_OS_WIN
+# include <winsock2.h>
+#endif
+
void Server::setUserState(User *pUser, Channel *cChannel, bool mute, bool deaf, bool suppressed, bool prioritySpeaker, const QString& name, const QString &comment) {
bool changed = false;
diff --git a/src/murmur/Register.cpp b/src/murmur/Register.cpp
index 444030a16..5911dd701 100644
--- a/src/murmur/Register.cpp
+++ b/src/murmur/Register.cpp
@@ -3,13 +3,15 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "murmur_pch.h"
-
#include "Server.h"
#include "Meta.h"
#include "Version.h"
#include "OSInfo.h"
+#include <QtNetwork/QNetworkAccessManager>
+#include <QtNetwork/QNetworkReply>
+#include <QtXml/QDomDocument>
+
void Server::initRegister() {
connect(&qtTick, SIGNAL(timeout()), this, SLOT(update()));
diff --git a/src/murmur/Server.cpp b/src/murmur/Server.cpp
index 9a3872f98..7315aab7f 100644
--- a/src/murmur/Server.cpp
+++ b/src/murmur/Server.cpp
@@ -3,8 +3,6 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "murmur_pch.h"
-
#include "Server.h"
#include "ACL.h"
@@ -22,12 +20,30 @@
#include "HostAddress.h"
#ifdef USE_BONJOUR
-#include "BonjourServer.h"
-#include "BonjourServiceRegister.h"
+# include "BonjourServer.h"
+# include "BonjourServiceRegister.h"
+#endif
+
+#include "Utils.h"
+
+#include <QtCore/QCoreApplication>
+#include <QtCore/QXmlStreamAttributes>
+#include <QtCore/QtEndian>
+#include <QtNetwork/QHostInfo>
+#include <QtNetwork/QSslConfiguration>
+
+#include <boost/bind.hpp>
+
+#ifdef Q_OS_WIN
+# include <qos2.h>
+# include <ws2tcpip.h>
+#else
+# include <netinet/in.h>
+# include <poll.h>
#endif
#ifndef MAX
-#define MAX(a,b) ((a)>(b) ? (a):(b))
+# define MAX(a,b) ((a)>(b) ? (a):(b))
#endif
#define UDP_PACKET_SIZE 1024
diff --git a/src/murmur/Server.h b/src/murmur/Server.h
index 007532b7c..79dd87b07 100644
--- a/src/murmur/Server.h
+++ b/src/murmur/Server.h
@@ -6,6 +6,20 @@
#ifndef MUMBLE_MURMUR_SERVER_H_
#define MUMBLE_MURMUR_SERVER_H_
+#include <QtCore/QtGlobal>
+
+#ifdef Q_OS_WIN
+# include "win.h"
+#endif
+
+#include "ACL.h"
+#include "Message.h"
+#include "Mumble.pb.h"
+#include "User.h"
+#include "Timer.h"
+#include "HostAddress.h"
+#include "Ban.h"
+
#ifndef Q_MOC_RUN
# include <boost/function.hpp>
#endif
@@ -26,18 +40,11 @@
#if defined(USE_QSSLDIFFIEHELLMANPARAMETERS)
# include <QtNetwork/QSslDiffieHellmanParameters>
#endif
+
#ifdef Q_OS_WIN
-#include <windows.h>
+# include <winsock2.h>
#endif
-#include "ACL.h"
-#include "Message.h"
-#include "Mumble.pb.h"
-#include "User.h"
-#include "Timer.h"
-#include "HostAddress.h"
-#include "Ban.h"
-
class BonjourServer;
class Channel;
class PacketDataStream;
diff --git a/src/murmur/ServerDB.cpp b/src/murmur/ServerDB.cpp
index 07b7b3e00..fbfa5a506 100644
--- a/src/murmur/ServerDB.cpp
+++ b/src/murmur/ServerDB.cpp
@@ -3,7 +3,11 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "murmur_pch.h"
+#include <QtCore/QtGlobal>
+
+#ifdef Q_OS_WIN
+# include "win.h"
+#endif
#include "ServerDB.h"
@@ -19,6 +23,16 @@
#include "PBKDF2.h"
#include "PasswordGenerator.h"
+#include <QtCore/QCoreApplication>
+#include <QtSql/QSqlError>
+#include <QtSql/QSqlQuery>
+
+#ifdef Q_OS_WIN
+# include <winsock2.h>
+#else
+# include <arpa/inet.h>
+#endif
+
#define SQLQUERY(x) ServerDB::query(query, QLatin1String(x), true)
#define SQLDO(x) ServerDB::exec(query, QLatin1String(x), true)
#define SQLMAY(x) ServerDB::exec(query, QLatin1String(x), false, false)
diff --git a/src/murmur/ServerUser.cpp b/src/murmur/ServerUser.cpp
index d7f77297f..f74e54d81 100644
--- a/src/murmur/ServerUser.cpp
+++ b/src/murmur/ServerUser.cpp
@@ -3,11 +3,14 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "murmur_pch.h"
-
-#include "Server.h"
#include "ServerUser.h"
+
#include "Meta.h"
+#include "Server.h"
+
+#ifdef Q_OS_UNIX
+# include "Utils.h"
+#endif
ServerUser::ServerUser(Server *p, QSslSocket *socket) : Connection(p, socket), User(), s(NULL), leakyBucket(p->iMessageLimit, p->iMessageBurst) {
sState = ServerUser::Connected;
diff --git a/src/murmur/ServerUser.h b/src/murmur/ServerUser.h
index 09dee4dcb..c0766594c 100644
--- a/src/murmur/ServerUser.h
+++ b/src/murmur/ServerUser.h
@@ -6,13 +6,10 @@
#ifndef MUMBLE_MURMUR_SERVERUSER_H_
#define MUMBLE_MURMUR_SERVERUSER_H_
-#include <QtCore/QStringList>
-#include <QtCore/QTime>
+#include <QtCore/QtGlobal>
-#ifdef Q_OS_UNIX
-#include <sys/socket.h>
-#else
-#include <winsock2.h>
+#ifdef Q_OS_WIN
+# include "win.h"
#endif
#include "Connection.h"
@@ -20,6 +17,15 @@
#include "User.h"
#include "HostAddress.h"
+#include <QtCore/QStringList>
+#include <QtCore/QTime>
+
+#ifdef Q_OS_WIN
+# include <winsock2.h>
+#else
+# include <sys/socket.h>
+#endif
+
// Unfortunately, this needs to be "large enough" to hold
// enough frames to account for both short-term and
// long-term "maladjustments".
diff --git a/src/murmur/Tray.cpp b/src/murmur/Tray.cpp
index cf9a4751c..d4c027163 100644
--- a/src/murmur/Tray.cpp
+++ b/src/murmur/Tray.cpp
@@ -3,8 +3,6 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "murmur_pch.h"
-
#include "Tray.h"
#include "About.h"
@@ -13,6 +11,13 @@
#include "Version.h"
#include "LogEmitter.h"
+#include <QtWidgets/QAction>
+#include <QtWidgets/QApplication>
+#include <QtWidgets/QMainWindow>
+#include <QtWidgets/QMenu>
+#include <QtWidgets/QMessageBox>
+#include <QtWidgets/QTextBrowser>
+
Tray::Tray(QObject *p, LogEmitter *logger) : QObject(p) {
le = logger;
diff --git a/src/murmur/UnixMurmur.cpp b/src/murmur/UnixMurmur.cpp
index 16098fe14..5e0c6cbed 100644
--- a/src/murmur/UnixMurmur.cpp
+++ b/src/murmur/UnixMurmur.cpp
@@ -3,13 +3,30 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "murmur_pch.h"
-
#include "UnixMurmur.h"
#include "Meta.h"
#include "EnvUtils.h"
+#include <QtCore/QAbstractEventDispatcher>
+#include <QtCore/QCoreApplication>
+#include <QtCore/QMutex>
+#include <QtCore/QSocketNotifier>
+#include <QtCore/QWaitCondition>
+
+#include <grp.h>
+#include <signal.h>
+
+#ifdef Q_OS_LINUX
+# include <sys/capability.h>
+# include <sys/prctl.h>
+# include <sys/resource.h>
+#endif
+
+#include <sys/socket.h>
+#include <sys/stat.h>
+#include <unistd.h>
+
QMutex *LimitTest::qm;
QWaitCondition *LimitTest::qw;
QWaitCondition *LimitTest::qstartw;
diff --git a/src/murmur/main.cpp b/src/murmur/main.cpp
index b66dc3668..5572ea67c 100644
--- a/src/murmur/main.cpp
+++ b/src/murmur/main.cpp
@@ -3,16 +3,12 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-#include "murmur_pch.h"
-
-#ifdef Q_OS_WIN
-#include "Tray.h"
-#include "About.h"
+#ifdef USE_DBUS
+# include "DBus.h"
#endif
#include "Server.h"
#include "ServerDB.h"
-#include "DBus.h"
#include "Meta.h"
#include "Version.h"
#include "SSL.h"
@@ -20,8 +16,31 @@
#include "LogEmitter.h"
#include "EnvUtils.h"
-#ifdef Q_OS_UNIX
-#include "UnixMurmur.h"
+#ifdef Q_OS_WIN
+# include "About.h"
+# include "Tray.h"
+
+# include <QtWidgets/QApplication>
+#else
+# include "UnixMurmur.h"
+
+# include <QtCore/QCoreApplication>
+#endif
+
+#include <QtCore/QTextCodec>
+
+#ifdef USE_DBUS
+# include <QtDBus/QDBusError>
+# include <QtDBus/QDBusServer>
+#endif
+
+#include <openssl/crypto.h>
+
+#ifdef Q_OS_WIN
+# include <intrin.h>
+#else
+# include <fcntl.h>
+# include <sys/syslog.h>
#endif
QFile *qfLog = NULL;
diff --git a/src/murmur/murmur_pch.h b/src/murmur/murmur_pch.h
index ce83046cf..eb2405e94 100644
--- a/src/murmur/murmur_pch.h
+++ b/src/murmur/murmur_pch.h
@@ -7,21 +7,21 @@
#ifndef MUMBLE_MURMUR_MURMUR_PCH_H_
#define MUMBLE_MURMUR_MURMUR_PCH_H_
-#define WIN32_LEAN_AND_MEAN
+#ifdef _MSC_VER
+# define _USE_MATH_DEFINES
+#endif
-#define _USE_MATH_DEFINES
+#include <QtCore/QtGlobal>
-#ifdef __APPLE__
-#include <CoreFoundation/CoreFoundation.h>
-#include <CoreServices/CoreServices.h>
-#undef check
-#undef TYPE_BOOL
+#ifdef Q_OS_WIN
+# include "win.h"
#endif
-#ifdef __MINGW32__
-#define _WIN32_WINNT 0x0600
-#include <ws2tcpip.h>
-#include <mswsock.h>
+#ifdef __APPLE__
+# include <CoreFoundation/CoreFoundation.h>
+# include <CoreServices/CoreServices.h>
+# undef check
+# undef TYPE_BOOL
#endif
#include <QtCore/QtCore>
@@ -29,72 +29,60 @@
#include <QtSql/QtSql>
#include <QtXml/QtXml>
#ifdef USE_DBUS
-#include <QtDBus/QtDBus>
+# include <QtDBus/QtDBus>
#endif
#include "QAtomicIntCompat.h"
#ifdef Q_OS_WIN
-#include <QtGui/QtGui>
-#if QT_VERSION >= 0x050000
-# include "Qt4Compat.h"
-# include <QtWidgets/QtWidgets>
-#endif
-
-#include "../qos2_mingw.h"
-
-#include <winsock2.h>
-#include <qos2.h>
-#include <windows.h>
-#include <shellapi.h>
-#include <delayimp.h>
+# include <QtGui/QtGui>
+# if QT_VERSION >= 0x050000
+# include "Qt4Compat.h"
+# include <QtWidgets/QtWidgets>
+# endif
+
+# include <ws2tcpip.h>
+# include <qos2.h>
+# include <shellapi.h>
+# include <delayimp.h>
extern "C" {
void __cpuid(int a[4], int b);
};
#endif
#ifdef Q_OS_UNIX
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <sys/time.h>
-#include <sys/resource.h>
-#include <syslog.h>
-#ifdef Q_OS_LINUX
-#include <linux/types.h> // needed to work around evil magic stuff in capability.h
-#include <sys/capability.h>
-#include <sys/prctl.h>
-#endif
-#include <pwd.h>
-#include <grp.h>
-#if defined __FreeBSD__ || defined __OpenBSD__
-#include <netinet/in_systm.h>
-#endif
-#include <netinet/in.h>
-#include <netinet/ip.h>
-#include <errno.h>
-#include <signal.h>
-#include <poll.h>
-#define INVALID_SOCKET -1
-#define SOCKET_ERROR -1
-#ifdef Q_OS_DARWIN
-#include <poll.h>
+# include <stdio.h>
+# include <stdlib.h>
+# include <unistd.h>
+# include <sys/types.h>
+# include <sys/stat.h>
+# include <fcntl.h>
+# include <sys/types.h>
+# include <sys/socket.h>
+# include <sys/time.h>
+# include <sys/resource.h>
+# include <syslog.h>
+# ifdef Q_OS_LINUX
+# include <linux/types.h> // needed to work around evil magic stuff in capability.h
+# include <sys/capability.h>
+# include <sys/prctl.h>
+# endif
+# include <pwd.h>
+# include <grp.h>
+# if defined __FreeBSD__ || defined __OpenBSD__
+# include <netinet/in_systm.h>
+# endif
+# include <netinet/in.h>
+# include <netinet/ip.h>
+# include <errno.h>
+# include <signal.h>
+# include <poll.h>
+# ifdef Q_OS_DARWIN
+# include <poll.h>
+# endif
#endif
-#endif
-
-#include <math.h>
-#if defined (Q_OS_WIN)
-#define snprintf ::_snprintf
-#define STACKVAR(type, varname, count) type *varname=reinterpret_cast<type *>(_alloca(sizeof(type) * (count)))
-#else
-#define STACKVAR(type, varname, count) type varname[count]
-#endif
+#include <cmath>
#include <boost/function.hpp>
#include <boost/bind.hpp>
@@ -102,7 +90,7 @@ extern "C" {
#include <boost/weak_ptr.hpp>
#ifdef USE_BONJOUR
-#include <dns_sd.h>
+# include <dns_sd.h>
#endif
#include <openssl/opensslv.h>
diff --git a/src/qos2_mingw.h b/src/qos2_mingw.h
deleted file mode 100644
index 95b529758..000000000
--- a/src/qos2_mingw.h
+++ /dev/null
@@ -1,19 +0,0 @@
-// Copyright 2005-2019 The Mumble Developers. All rights reserved.
-// Use of this source code is governed by a BSD-style license
-// that can be found in the LICENSE file at the root of the
-// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-
-// This is a collection of fixes for MinGW's <qos2.h> header.
-// MinGW's <qos2.h> header does not provide everything we need,
-// so define QOS_FLOWID (and PQOS_FLOWID) as well as QOS_NON_ADAPTIVE_FLOW ourselves
-// to allow us to build with QoS support on MinGW.
-
-#ifndef MUMBLE_QOS2_MINGW_H_
-#define MUMBLE_QOS2_MINGW_H_
-
-#ifdef __MINGW32__
- typedef UINT32 QOS_FLOWID, *PQOS_FLOWID;
- #define QOS_NON_ADAPTIVE_FLOW 0x00000002 // MinGW's qos2.h header doesn't define QOS_NON_ADAPTIVE_FLOW, so we define it ourselves for MinGW to use.
-#endif
-
-#endif
diff --git a/src/tests/OverlayTest.cpp b/src/tests/OverlayTest.cpp
index 71dfe6caf..1665da844 100644
--- a/src/tests/OverlayTest.cpp
+++ b/src/tests/OverlayTest.cpp
@@ -2,19 +2,21 @@
* Overlay drawing test application.
*/
-#include <QtCore>
-#include <QtNetwork>
-#include <QtGui>
-#include "SharedMemory.h"
-
#include "../../overlay/overlay.h"
+#include "SharedMemory.h"
#include "Timer.h"
-#include <ctime>
+
#ifdef Q_OS_WIN
-#include <windows.h>
+# include "win.h"
#endif
+#include <QtCore>
+#include <QtNetwork>
+#include <QtGui>
+
+#include <ctime>
+
class OverlayWidget : public QWidget {
Q_OBJECT
diff --git a/src/tests/Resample.cpp b/src/tests/Resample.cpp
index 5447afab6..7cc693ebc 100644
--- a/src/tests/Resample.cpp
+++ b/src/tests/Resample.cpp
@@ -2,17 +2,23 @@
* Speex resampling test / information.
*/
+#ifdef Q_OS_WIN
+# include "win.h"
+#endif
+
+#include "Timer.h"
+
+#include <QtCore>
+
#define _USE_MATH_DEFINES
#include <cmath>
-#include <QtCore>
+
+#include <speex/speex_resampler.h>
+
#include <ipp.h>
-#include <windows.h>
-#include "Timer.h"
#define ITER 1000
-#include <speex/speex_resampler.h>
-
int main(int argc, char **argv) {
ippStaticInit();
ippSetNumThreads(1);
diff --git a/src/tests/TestCrypt/TestCrypt.cpp b/src/tests/TestCrypt/TestCrypt.cpp
index 61179fc9d..1aa0f67a4 100644
--- a/src/tests/TestCrypt/TestCrypt.cpp
+++ b/src/tests/TestCrypt/TestCrypt.cpp
@@ -3,15 +3,13 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-// Include murmur_pch.h for STACKVAR
-#include "murmur_pch.h"
-
#include <QtCore>
#include <QtTest>
#include "SSL.h"
#include "Timer.h"
#include "CryptState.h"
+#include "Utils.h"
class TestCrypt : public QObject {
Q_OBJECT
diff --git a/src/tests/TestCrypt/TestCrypt.pro b/src/tests/TestCrypt/TestCrypt.pro
index 4d8796493..09746edb7 100644
--- a/src/tests/TestCrypt/TestCrypt.pro
+++ b/src/tests/TestCrypt/TestCrypt.pro
@@ -10,3 +10,5 @@ QT *= network
TARGET = TestCrypt
HEADERS *= SSL.h SSLLocks.h Timer.h CryptState.h
SOURCES *= SSL.cpp SSLLocks.cpp TestCrypt.cpp CryptState.cpp Timer.cpp
+
+win32:LIBS *= -lws2_32
diff --git a/src/tests/TestLink.cpp b/src/tests/TestLink.cpp
index 470cbe928..9249f9315 100644
--- a/src/tests/TestLink.cpp
+++ b/src/tests/TestLink.cpp
@@ -8,11 +8,11 @@
#include <QtCore>
-#ifdef WIN32
-#include <windows.h>
+#ifdef Q_OS_WIN
+# include "win.h"
#else
-#include <fcntl.h>
-#include <sys/mman.h>
+# include <fcntl.h>
+# include <sys/mman.h>
#endif
struct LinkedMem {
diff --git a/src/tests/TestServerAddress/TestServerAddress.pro b/src/tests/TestServerAddress/TestServerAddress.pro
index beda32c00..705982351 100644
--- a/src/tests/TestServerAddress/TestServerAddress.pro
+++ b/src/tests/TestServerAddress/TestServerAddress.pro
@@ -10,3 +10,5 @@ QT += network
TARGET = TestServerAddress
SOURCES *= TestServerAddress.cpp ServerAddress.cpp HostAddress.cpp
HEADERS *= ServerAddress.h HostAddress.h
+
+win32:LIBS *= -lws2_32
diff --git a/src/tests/TestServerResolver/TestServerResolver.pro b/src/tests/TestServerResolver/TestServerResolver.pro
index c59100c35..eab330173 100644
--- a/src/tests/TestServerResolver/TestServerResolver.pro
+++ b/src/tests/TestServerResolver/TestServerResolver.pro
@@ -21,3 +21,5 @@ CONFIG(no-srv) {
SOURCES -= ServerResolver_qt5.cpp
SOURCES *= ServerResolver_nosrv.cpp
}
+
+win32:LIBS *= -lws2_32
diff --git a/src/tests/test.pri b/src/tests/test.pri
index 22b2747b6..f3b622e80 100644
--- a/src/tests/test.pri
+++ b/src/tests/test.pri
@@ -13,15 +13,6 @@ CONFIG += testcase
CONFIG += thread warn_on
CONFIG -= app_bundle
-# We build this test without 'gui' in QT,
-# but we include the QtGui headers from
-# murmur_pch.h. This causes an error when Qt
-# tries to find the OpenGL headers to use, since
-# we're missing the include paths from QtGui's
-# .pri files. Define QT_NO_OPENGL to avoid these
-# build errors.
-DEFINES += QT_NO_OPENGL
-
LANGUAGE = C++
VPATH *= ../.. ../../murmur ../../mumble
diff --git a/src/win.h b/src/win.h
new file mode 100644
index 000000000..aaeb1a7db
--- /dev/null
+++ b/src/win.h
@@ -0,0 +1,54 @@
+// Copyright 2005-2019 The Mumble Developers. All rights reserved.
+// Use of this source code is governed by a BSD-style license
+// that can be found in the LICENSE file at the root of the
+// Mumble source tree or at <https://www.mumble.info/LICENSE>.
+
+// This header is meant to be included instead of <windows.h>.
+// It takes care of including <windows.h> with the right settings and
+// for MinGW compilers it defines stuff that is missing in MinGW’s headers.
+
+#ifndef MUMBLE_WIN_H_
+#define MUMBLE_WIN_H_
+
+#ifndef WIN32_LEAN_AND_MEAN
+# define WIN32_LEAN_AND_MEAN
+#endif
+
+#ifndef UNICODE
+# define UNICODE
+#endif
+
+#ifndef NOMINMAX
+# define NOMINMAX
+#endif
+
+#ifdef __MINGW32__
+// Our MinGW build targets Windows 7 for now.
+// Set up the appropriate Windows macros such that
+// MinGW's Windows headers expose all the functionality
+// we need.
+// This seems to be required only with MXE, with MSYS2
+// the target is already Windows 7
+# if (_WIN32_WINNT < 0x0601)
+# undef _WIN32_WINNT
+# define _WIN32_WINNT 0x0601
+# endif
+# if (NTDDI_VERSION < NTDDI_WIN7)
+# undef NTDDI_VERSION
+# define NTDDI_VERSION NTDDI_WIN7
+# endif
+#endif
+
+#include <windows.h>
+
+#ifdef __MINGW32__
+// MinGW's <qos2.h> header does not provide everything we need,
+// so define QOS_FLOWID (and PQOS_FLOWID) as well as QOS_NON_ADAPTIVE_FLOW
+// ourselves to allow us to build with QoS support on MinGW.
+typedef UINT32 QOS_FLOWID, *PQOS_FLOWID;
+# ifndef QOS_NON_ADAPTIVE_FLOW
+# define QOS_NON_ADAPTIVE_FLOW 0x00000002
+# endif
+#endif
+
+#endif // MUMBLE_WIN_H_