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:08:39 +0300
committerDavide Beatrici <davidebeatrici@gmail.com>2019-09-12 23:08:39 +0300
commit15831dbca85dd906edbad2bfff2b147527a456e2 (patch)
tree34bd1c4db9b95748d263aea811e849dec7e5525c /src/mumble
parente29897c784f546dc8c7150811994663818911608 (diff)
Add missing includes for "no-pch" build
This commit adds all the missing includes when the PCH header is not used. Also, some includes are reordered and/or made consistent (e.g. "#include <QtEndian>" -> "#include <QtCore/QtEndian>").
Diffstat (limited to 'src/mumble')
-rw-r--r--src/mumble/ACLEditor.cpp6
-rw-r--r--src/mumble/ALSAAudio.cpp11
-rw-r--r--src/mumble/ASIOInput.cpp7
-rw-r--r--src/mumble/ASIOInput.h13
-rw-r--r--src/mumble/About.cpp4
-rw-r--r--src/mumble/AppNap.mm4
-rw-r--r--src/mumble/AudioConfigDialog.cpp1
-rw-r--r--src/mumble/AudioInput.cpp1
-rw-r--r--src/mumble/AudioOutput.cpp9
-rw-r--r--src/mumble/AudioOutputSample.cpp7
-rw-r--r--src/mumble/AudioOutputSpeech.cpp11
-rw-r--r--src/mumble/AudioStats.cpp5
-rw-r--r--src/mumble/AudioWizard.cpp6
-rw-r--r--src/mumble/Cert.cpp14
-rw-r--r--src/mumble/ConfigDialog.cpp5
-rw-r--r--src/mumble/ConfigWidget.cpp8
-rw-r--r--src/mumble/ConnectDialog.cpp21
-rw-r--r--src/mumble/CoreAudio.cpp4
-rw-r--r--src/mumble/CrashReporter.cpp6
-rw-r--r--src/mumble/CustomElements.cpp8
-rw-r--r--src/mumble/DBus.cpp4
-rw-r--r--src/mumble/Database.cpp6
-rw-r--r--src/mumble/DeveloperConsole.cpp4
-rw-r--r--src/mumble/DirectSound.cpp14
-rw-r--r--src/mumble/G15LCDEngine_helper.h3
-rw-r--r--src/mumble/GKey.h2
-rw-r--r--src/mumble/Global.cpp9
-rw-r--r--src/mumble/GlobalShortcut.cpp9
-rw-r--r--src/mumble/GlobalShortcut_unix.cpp7
-rw-r--r--src/mumble/GlobalShortcut_win.cpp16
-rw-r--r--src/mumble/LCD.cpp3
-rw-r--r--src/mumble/Log.cpp8
-rw-r--r--src/mumble/Log_macx.mm6
-rw-r--r--src/mumble/Log_unix.cpp2
-rw-r--r--src/mumble/LookConfig.cpp4
-rw-r--r--src/mumble/MainWindow.cpp23
-rw-r--r--src/mumble/Messages.cpp1
-rw-r--r--src/mumble/MumbleApplication.cpp6
-rw-r--r--src/mumble/NetworkConfig.cpp4
-rw-r--r--src/mumble/Overlay.cpp18
-rw-r--r--src/mumble/OverlayClient.cpp12
-rw-r--r--src/mumble/OverlayConfig.cpp13
-rw-r--r--src/mumble/OverlayEditor.cpp3
-rw-r--r--src/mumble/OverlayEditorScene.cpp7
-rw-r--r--src/mumble/OverlayPositionableItem.cpp6
-rw-r--r--src/mumble/OverlayText.cpp8
-rw-r--r--src/mumble/OverlayUser.cpp3
-rw-r--r--src/mumble/OverlayUserGroup.cpp6
-rw-r--r--src/mumble/Overlay_macx.mm11
-rw-r--r--src/mumble/Overlay_win.cpp4
-rw-r--r--src/mumble/Overlay_win.h6
-rw-r--r--src/mumble/PathListWidget.cpp12
-rw-r--r--src/mumble/Plugins.cpp16
-rw-r--r--src/mumble/Plugins.h15
-rw-r--r--src/mumble/RichTextEditor.cpp11
-rw-r--r--src/mumble/ServerHandler.cpp33
-rw-r--r--src/mumble/ServerHandler.h10
-rw-r--r--src/mumble/Settings.cpp11
-rw-r--r--src/mumble/SharedMemory_win.cpp5
-rw-r--r--src/mumble/SocketRPC.cpp5
-rw-r--r--src/mumble/TaskList.cpp9
-rw-r--r--src/mumble/TaskList.h2
-rw-r--r--src/mumble/TextToSpeech_unix.cpp3
-rw-r--r--src/mumble/ThemeInfo.cpp4
-rw-r--r--src/mumble/Usage.cpp6
-rw-r--r--src/mumble/UserEdit.cpp5
-rw-r--r--src/mumble/UserInformation.cpp2
-rw-r--r--src/mumble/UserListModel.cpp9
-rw-r--r--src/mumble/UserLocalVolumeDialog.cpp9
-rw-r--r--src/mumble/UserLockFile.h8
-rw-r--r--src/mumble/UserModel.cpp7
-rw-r--r--src/mumble/UserView.cpp5
-rw-r--r--src/mumble/VersionCheck.cpp14
-rw-r--r--src/mumble/ViewCert.cpp8
-rw-r--r--src/mumble/VoiceRecorder.cpp2
-rw-r--r--src/mumble/VoiceRecorder.h13
-rw-r--r--src/mumble/VoiceRecorderDialog.cpp4
-rw-r--r--src/mumble/WASAPI.cpp1
-rw-r--r--src/mumble/WASAPI.h9
-rw-r--r--src/mumble/WebFetch.cpp6
-rw-r--r--src/mumble/XboxInput.cpp2
-rw-r--r--src/mumble/XboxInput.h6
-rw-r--r--src/mumble/main.cpp23
-rw-r--r--src/mumble/mumble_pch.hpp76
-rw-r--r--src/mumble/os_early_win.cpp7
-rw-r--r--src/mumble/os_macx.mm6
-rw-r--r--src/mumble/os_win.cpp25
-rw-r--r--src/mumble/widgets/MUComboBox.cpp2
88 files changed, 643 insertions, 127 deletions
diff --git a/src/mumble/ACLEditor.cpp b/src/mumble/ACLEditor.cpp
index a21281f5c..1636129ea 100644
--- a/src/mumble/ACLEditor.cpp
+++ b/src/mumble/ACLEditor.cpp
@@ -13,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 67420b42a..1808ed55c 100644
--- a/src/mumble/ALSAAudio.cpp
+++ b/src/mumble/ALSAAudio.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 <alsa/asoundlib.h>
-#include <sys/poll.h>
-
#include "ALSAAudio.h"
#include "MainWindow.h"
-#include "Global.h"
#include "User.h"
+#include "Utils.h"
+
+#include <alsa/asoundlib.h>
+#include <sys/poll.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 NBLOCKS 8
diff --git a/src/mumble/ASIOInput.cpp b/src/mumble/ASIOInput.cpp
index 385c18da1..9a8f6174d 100644
--- a/src/mumble/ASIOInput.cpp
+++ b/src/mumble/ASIOInput.cpp
@@ -6,6 +6,13 @@
#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 42304f8a4..eef2f44e4 100644
--- a/src/mumble/About.cpp
+++ b/src/mumble/About.cpp
@@ -8,6 +8,10 @@
#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 bf42306cd..e6d7114ff 100644
--- a/src/mumble/AppNap.mm
+++ b/src/mumble/AppNap.mm
@@ -3,6 +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 "MumbleApplication.h"
+
+#include <Foundation/Foundation.h>
+
#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1070
static bool appNapSuppressed = false;
#endif
diff --git a/src/mumble/AudioConfigDialog.cpp b/src/mumble/AudioConfigDialog.cpp
index f4fc526cd..139fd44ca 100644
--- a/src/mumble/AudioConfigDialog.cpp
+++ b/src/mumble/AudioConfigDialog.cpp
@@ -41,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 034187759..cb34c1644 100644
--- a/src/mumble/AudioInput.cpp
+++ b/src/mumble/AudioInput.cpp
@@ -16,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 f95a9c571..ece4a3d85 100644
--- a/src/mumble/AudioOutput.cpp
+++ b/src/mumble/AudioOutput.cpp
@@ -3,6 +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>.
+// <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"
#include "AudioInput.h"
@@ -14,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 5a85425a4..6dce9a66f 100644
--- a/src/mumble/AudioOutputSample.cpp
+++ b/src/mumble/AudioOutputSample.cpp
@@ -6,6 +6,13 @@
#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 5b7c741f3..91368e4c1 100644
--- a/src/mumble/AudioOutputSpeech.cpp
+++ b/src/mumble/AudioOutputSpeech.cpp
@@ -3,6 +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>.
+// 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"
#include "Audio.h"
@@ -11,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/AudioStats.cpp b/src/mumble/AudioStats.cpp
index 497ebac1e..98d127555 100644
--- a/src/mumble/AudioStats.cpp
+++ b/src/mumble/AudioStats.cpp
@@ -7,8 +7,13 @@
#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 e804c7ac3..21affd5b9 100644
--- a/src/mumble/AudioWizard.cpp
+++ b/src/mumble/AudioWizard.cpp
@@ -9,6 +9,12 @@
#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/Cert.cpp b/src/mumble/Cert.cpp
index f417ad6db..fabcfb956 100644
--- a/src/mumble/Cert.cpp
+++ b/src/mumble/Cert.cpp
@@ -13,8 +13,20 @@
#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/ConfigDialog.cpp b/src/mumble/ConfigDialog.cpp
index 95d2a71a8..0a9c3a43f 100644
--- a/src/mumble/ConfigDialog.cpp
+++ b/src/mumble/ConfigDialog.cpp
@@ -10,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 e567a2438..218cb321e 100644
--- a/src/mumble/ConfigWidget.cpp
+++ b/src/mumble/ConfigWidget.cpp
@@ -5,6 +5,14 @@
#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 f65ad1065..bdac96d5e 100644
--- a/src/mumble/ConnectDialog.cpp
+++ b/src/mumble/ConnectDialog.cpp
@@ -16,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 b1bc92238..c9300a9c9 100644
--- a/src/mumble/CoreAudio.cpp
+++ b/src/mumble/CoreAudio.cpp
@@ -6,6 +6,10 @@
#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 26ce3c454..793b549d7 100644
--- a/src/mumble/CrashReporter.cpp
+++ b/src/mumble/CrashReporter.cpp
@@ -10,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 c9478f24f..1ee044cb0 100644
--- a/src/mumble/CustomElements.cpp
+++ b/src/mumble/CustomElements.cpp
@@ -8,6 +8,14 @@
#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 414b2563b..478ef2238 100644
--- a/src/mumble/DBus.cpp
+++ b/src/mumble/DBus.cpp
@@ -10,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 8cee30dae..941bb8080 100644
--- a/src/mumble/Database.cpp
+++ b/src/mumble/Database.cpp
@@ -7,9 +7,15 @@
#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 2c65a01e7..cd8a4b443 100644
--- a/src/mumble/DeveloperConsole.cpp
+++ b/src/mumble/DeveloperConsole.cpp
@@ -6,6 +6,10 @@
#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 fce35247d..5ced0f04e 100644
--- a/src/mumble/DirectSound.cpp
+++ b/src/mumble/DirectSound.cpp
@@ -3,6 +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 "DirectSound.h"
+
+#include "MainWindow.h"
+#include "Plugins.h"
+#include "User.h"
+
+#include "win.h"
+
#define DIRECTSOUND_VERSION 0x1000
#include <mmsystem.h>
@@ -10,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.h b/src/mumble/G15LCDEngine_helper.h
index 843e99e41..353232f33 100644
--- a/src/mumble/G15LCDEngine_helper.h
+++ b/src/mumble/G15LCDEngine_helper.h
@@ -5,9 +5,12 @@
#ifndef MUMBLE_MUMBLE_G15LCDENGINE_HELPER_H_
#define MUMBLE_MUMBLE_G15LCDENGINE_HELPER_H_
+
#include "LCD.h"
#include "../../g15helper/g15helper.h"
+#include <QtCore/QProcess>
+
class G15LCDDeviceHelper;
class G15LCDEngineHelper : public LCDEngine {
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 1c4039d7d..41ec60e17 100644
--- a/src/mumble/Global.cpp
+++ b/src/mumble/Global.cpp
@@ -3,6 +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 "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 20be5d329..833893544 100644
--- a/src/mumble/GlobalShortcut.cpp
+++ b/src/mumble/GlobalShortcut.cpp
@@ -11,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_unix.cpp b/src/mumble/GlobalShortcut_unix.cpp
index e900f34f8..6ef82bf1f 100644
--- a/src/mumble/GlobalShortcut_unix.cpp
+++ b/src/mumble/GlobalShortcut_unix.cpp
@@ -5,9 +5,14 @@
#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 f6b82cd34..4e5f36447 100644
--- a/src/mumble/GlobalShortcut_win.cpp
+++ b/src/mumble/GlobalShortcut_win.cpp
@@ -3,21 +3,27 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
+#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.
#define BOOST_THREAD_VERSION 4
#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 d564c2568..62385eaf9 100644
--- a/src/mumble/LCD.cpp
+++ b/src/mumble/LCD.cpp
@@ -9,6 +9,9 @@
#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 8ffb3e777..274da974d 100644
--- a/src/mumble/Log.cpp
+++ b/src/mumble/Log.cpp
@@ -14,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 9bdcfc33b..4abc3e39a 100644
--- a/src/mumble/Log_macx.mm
+++ b/src/mumble/Log_macx.mm
@@ -4,6 +4,12 @@
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
#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 cf48e8d86..11953b79e 100644
--- a/src/mumble/Log_unix.cpp
+++ b/src/mumble/Log_unix.cpp
@@ -7,6 +7,8 @@
#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/LookConfig.cpp b/src/mumble/LookConfig.cpp
index 7ca771f39..dc9b0c248 100644
--- a/src/mumble/LookConfig.cpp
+++ b/src/mumble/LookConfig.cpp
@@ -10,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 79a728f09..83911c152 100644
--- a/src/mumble/MainWindow.cpp
+++ b/src/mumble/MainWindow.cpp
@@ -45,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 6ef55e701..b6f210e5a 100644
--- a/src/mumble/Messages.cpp
+++ b/src/mumble/Messages.cpp
@@ -26,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 6482a13c6..c338fc805 100644
--- a/src/mumble/MumbleApplication.cpp
+++ b/src/mumble/MumbleApplication.cpp
@@ -7,13 +7,17 @@
#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 119d672f6..60949e52d 100644
--- a/src/mumble/NetworkConfig.cpp
+++ b/src/mumble/NetworkConfig.cpp
@@ -8,6 +8,10 @@
#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/Overlay.cpp b/src/mumble/Overlay.cpp
index 51093fd2e..c6cbcdd70 100644
--- a/src/mumble/Overlay.cpp
+++ b/src/mumble/Overlay.cpp
@@ -16,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 ba69582c0..ceb3722c1 100644
--- a/src/mumble/OverlayClient.cpp
+++ b/src/mumble/OverlayClient.cpp
@@ -16,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 0426fcb3d..906db86e3 100644
--- a/src/mumble/OverlayConfig.cpp
+++ b/src/mumble/OverlayConfig.cpp
@@ -20,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 e853f3bde..afb76726c 100644
--- a/src/mumble/OverlayEditor.cpp
+++ b/src/mumble/OverlayEditor.cpp
@@ -15,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 0c940f2d9..0ec7e929c 100644
--- a/src/mumble/OverlayEditorScene.cpp
+++ b/src/mumble/OverlayEditorScene.cpp
@@ -16,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 0de215122..04bf243e4 100644
--- a/src/mumble/OverlayPositionableItem.cpp
+++ b/src/mumble/OverlayPositionableItem.cpp
@@ -5,6 +5,12 @@
#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 4d9258963..437115a34 100644
--- a/src/mumble/OverlayText.cpp
+++ b/src/mumble/OverlayText.cpp
@@ -5,6 +5,14 @@
#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 43a0f0db3..887a43d07 100644
--- a/src/mumble/OverlayUser.cpp
+++ b/src/mumble/OverlayUser.cpp
@@ -15,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 b4e64873a..f62f0f33a 100644
--- a/src/mumble/OverlayUserGroup.cpp
+++ b/src/mumble/OverlayUserGroup.cpp
@@ -18,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 9313ce8e9..9704c3301 100644
--- a/src/mumble/Overlay_macx.mm
+++ b/src/mumble/Overlay_macx.mm
@@ -2,13 +2,18 @@
// 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>.
-#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_win.cpp b/src/mumble/Overlay_win.cpp
index 3bf86d14a..c3f0597ee 100644
--- a/src/mumble/Overlay_win.cpp
+++ b/src/mumble/Overlay_win.cpp
@@ -9,13 +9,15 @@
#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/PathListWidget.cpp b/src/mumble/PathListWidget.cpp
index d5a1af5a5..4d272dec4 100644
--- a/src/mumble/PathListWidget.cpp
+++ b/src/mumble/PathListWidget.cpp
@@ -5,13 +5,15 @@
#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 cd6b34a17..fca8876bf 100644
--- a/src/mumble/Plugins.cpp
+++ b/src/mumble/Plugins.cpp
@@ -13,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/RichTextEditor.cpp b/src/mumble/RichTextEditor.cpp
index dca12a181..20c5d5ace 100644
--- a/src/mumble/RichTextEditor.cpp
+++ b/src/mumble/RichTextEditor.cpp
@@ -9,6 +9,17 @@
#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 261f6d1d8..653f0eb2f 100644
--- a/src/mumble/ServerHandler.cpp
+++ b/src/mumble/ServerHandler.cpp
@@ -3,6 +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 <QtCore/QtGlobal>
+
+#ifdef Q_OS_WIN
+# include "win.h"
+#endif
+
#include "ServerHandler.h"
#include "AudioInput.h"
@@ -22,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 46813f995..446a529ba 100644
--- a/src/mumble/Settings.cpp
+++ b/src/mumble/Settings.cpp
@@ -8,11 +8,20 @@
#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_win.cpp b/src/mumble/SharedMemory_win.cpp
index 70698cb1a..d951ffbea 100644
--- a/src/mumble/SharedMemory_win.cpp
+++ b/src/mumble/SharedMemory_win.cpp
@@ -5,10 +5,7 @@
#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 e8d46172b..8a220b928 100644
--- a/src/mumble/SocketRPC.cpp
+++ b/src/mumble/SocketRPC.cpp
@@ -10,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 c48f80921..58e37dedc 100644
--- a/src/mumble/TaskList.cpp
+++ b/src/mumble/TaskList.cpp
@@ -5,6 +5,15 @@
#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/TextToSpeech_unix.cpp b/src/mumble/TextToSpeech_unix.cpp
index b8a49e786..106808d28 100644
--- a/src/mumble/TextToSpeech_unix.cpp
+++ b/src/mumble/TextToSpeech_unix.cpp
@@ -13,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/ThemeInfo.cpp b/src/mumble/ThemeInfo.cpp
index e27b5541c..f22619b2a 100644
--- a/src/mumble/ThemeInfo.cpp
+++ b/src/mumble/ThemeInfo.cpp
@@ -5,6 +5,10 @@
#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/Usage.cpp b/src/mumble/Usage.cpp
index dc397100a..0bdbd7b2d 100644
--- a/src/mumble/Usage.cpp
+++ b/src/mumble/Usage.cpp
@@ -12,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 6ba72d2b5..d1305dcf9 100644
--- a/src/mumble/UserEdit.cpp
+++ b/src/mumble/UserEdit.cpp
@@ -5,13 +5,14 @@
#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 799350604..4fb5d2ce9 100644
--- a/src/mumble/UserInformation.cpp
+++ b/src/mumble/UserInformation.cpp
@@ -11,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 9b652d4a0..2f5d41596 100644
--- a/src/mumble/UserListModel.cpp
+++ b/src/mumble/UserListModel.cpp
@@ -4,12 +4,19 @@
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
#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 5e177d2e1..b6d20a3b9 100644
--- a/src/mumble/UserLocalVolumeDialog.cpp
+++ b/src/mumble/UserLocalVolumeDialog.cpp
@@ -35,10 +35,17 @@
#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/UserModel.cpp b/src/mumble/UserModel.cpp
index 0432318f7..4f8c308c7 100644
--- a/src/mumble/UserModel.cpp
+++ b/src/mumble/UserModel.cpp
@@ -17,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 47930bbe2..fdcd5afd2 100644
--- a/src/mumble/UserView.cpp
+++ b/src/mumble/UserView.cpp
@@ -12,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 7c940db92..a14af8ab6 100644
--- a/src/mumble/VersionCheck.cpp
+++ b/src/mumble/VersionCheck.cpp
@@ -6,8 +6,22 @@
#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 3090619b0..6aa6d539f 100644
--- a/src/mumble/ViewCert.cpp
+++ b/src/mumble/ViewCert.cpp
@@ -5,6 +5,14 @@
#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 4533d2546..bf8f74649 100644
--- a/src/mumble/VoiceRecorder.cpp
+++ b/src/mumble/VoiceRecorder.cpp
@@ -11,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 ea4836ba2..0a65efb42 100644
--- a/src/mumble/VoiceRecorderDialog.cpp
+++ b/src/mumble/VoiceRecorderDialog.cpp
@@ -9,6 +9,10 @@
#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 4ba824946..fcd6b5a3c 100644
--- a/src/mumble/WASAPI.cpp
+++ b/src/mumble/WASAPI.cpp
@@ -7,6 +7,7 @@
#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/WebFetch.cpp b/src/mumble/WebFetch.cpp
index dc4b74e41..0b40c4261 100644
--- a/src/mumble/WebFetch.cpp
+++ b/src/mumble/WebFetch.cpp
@@ -5,9 +5,13 @@
#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 07e11aca0..2abb4f42b 100644
--- a/src/mumble/XboxInput.cpp
+++ b/src/mumble/XboxInput.cpp
@@ -5,6 +5,8 @@
#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 00ed08d22..ecc93d55e 100644
--- a/src/mumble/main.cpp
+++ b/src/mumble/main.cpp
@@ -15,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"
@@ -38,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 e41c539be..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,36 +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>
+# 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>
-#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
#ifdef USE_BONJOUR
-#include <dns_sd.h>
+# include <dns_sd.h>
#endif
#ifdef __OBJC__
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 1b030fc9a..616b5251b 100644
--- a/src/mumble/os_macx.mm
+++ b/src/mumble/os_macx.mm
@@ -2,9 +2,13 @@
// 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 "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_win.cpp b/src/mumble/os_win.cpp
index 106e96984..ba107c7ef 100644
--- a/src/mumble/os_win.cpp
+++ b/src/mumble/os_win.cpp
@@ -3,19 +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 <windows.h>
+#include "LogEmitter.h"
+#include "MumbleApplication.h"
+
+#ifdef _MSC_VER
+# include "Utils.h"
+#endif
+
+#include "Version.h"
+#include "win.h"
+
+#include <cmath>
+#include <cfloat>
+
+#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 8c47438e6..cfe3694de 100644
--- a/src/mumble/widgets/MUComboBox.cpp
+++ b/src/mumble/widgets/MUComboBox.cpp
@@ -5,6 +5,8 @@
#include "MUComboBox.h"
+#include <QtWidgets/QListView>
+
MUComboBox::MUComboBox(QWidget *parent)
: QComboBox(parent) {