diff --git a/UI/window-namedialog.cpp b/frontend/dialogs/NameDialog.cpp
similarity index 95%
rename from UI/window-namedialog.cpp
rename to frontend/dialogs/NameDialog.cpp
index 561bd15b9..5458fafb6 100644
--- a/UI/window-namedialog.cpp
+++ b/frontend/dialogs/NameDialog.cpp
@@ -15,12 +15,18 @@
along with this program. If not, see .
******************************************************************************/
-#include "moc_window-namedialog.cpp"
-#include "obs-app.hpp"
+#include "NameDialog.hpp"
-#include
+#include
+
+#include
+#include
+#include
+#include
#include
+#include "moc_NameDialog.cpp"
+
NameDialog::NameDialog(QWidget *parent) : QDialog(parent)
{
installEventFilter(CreateShortcutFilter());
diff --git a/UI/window-namedialog.hpp b/frontend/dialogs/NameDialog.hpp
similarity index 93%
rename from UI/window-namedialog.hpp
rename to frontend/dialogs/NameDialog.hpp
index e0f7006ba..a61f3dfd3 100644
--- a/UI/window-namedialog.hpp
+++ b/frontend/dialogs/NameDialog.hpp
@@ -18,12 +18,11 @@
#pragma once
#include
-#include
-#include
-#include
-#include
-#include
-#include
+
+class QCheckBox;
+class QLabel;
+class QLineEdit;
+class QString;
class NameDialog : public QDialog {
Q_OBJECT
diff --git a/UI/window-basic-about.cpp b/frontend/dialogs/OBSAbout.cpp
similarity index 96%
rename from UI/window-basic-about.cpp
rename to frontend/dialogs/OBSAbout.cpp
index 3509e279b..e9103dbab 100644
--- a/UI/window-basic-about.cpp
+++ b/frontend/dialogs/OBSAbout.cpp
@@ -1,14 +1,18 @@
-#include "moc_window-basic-about.cpp"
-#include "window-basic-main.hpp"
-#include "remote-text.hpp"
+#include "OBSAbout.hpp"
+
+#include
+#include
+
#include
-#include
-#include
-#include
+
#include
+#include "moc_OBSAbout.cpp"
+
using namespace json11;
+extern bool steam;
+
OBSAbout::OBSAbout(QWidget *parent) : QDialog(parent), ui(new Ui::OBSAbout)
{
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
diff --git a/UI/window-basic-about.hpp b/frontend/dialogs/OBSAbout.hpp
similarity index 93%
rename from UI/window-basic-about.hpp
rename to frontend/dialogs/OBSAbout.hpp
index bb507fe2c..e3ec87c36 100644
--- a/UI/window-basic-about.hpp
+++ b/frontend/dialogs/OBSAbout.hpp
@@ -1,10 +1,9 @@
#pragma once
-#include
-#include
-
#include "ui_OBSAbout.h"
+#include
+
class OBSAbout : public QDialog {
Q_OBJECT
diff --git a/UI/window-basic-adv-audio.cpp b/frontend/dialogs/OBSBasicAdvAudio.cpp
similarity index 95%
rename from UI/window-basic-adv-audio.cpp
rename to frontend/dialogs/OBSBasicAdvAudio.cpp
index 001b804d7..8992e9822 100644
--- a/UI/window-basic-adv-audio.cpp
+++ b/frontend/dialogs/OBSBasicAdvAudio.cpp
@@ -1,13 +1,11 @@
-#include "window-basic-adv-audio.hpp"
-#include "window-basic-main.hpp"
-#include "item-widget-helpers.hpp"
-#include "adv-audio-control.hpp"
-#include "obs-app.hpp"
-#include
-
+#include "OBSBasicAdvAudio.hpp"
#include "ui_OBSAdvAudio.h"
-Q_DECLARE_METATYPE(OBSSource);
+#include
+#include
+#include
+
+#include "moc_OBSBasicAdvAudio.cpp"
OBSBasicAdvAudio::OBSBasicAdvAudio(QWidget *parent) : QDialog(parent), ui(new Ui::OBSAdvAudio), showInactive(false)
{
diff --git a/UI/window-basic-adv-audio.hpp b/frontend/dialogs/OBSBasicAdvAudio.hpp
similarity index 96%
rename from UI/window-basic-adv-audio.hpp
rename to frontend/dialogs/OBSBasicAdvAudio.hpp
index 28b6fa05b..98cb61b0a 100644
--- a/UI/window-basic-adv-audio.hpp
+++ b/frontend/dialogs/OBSBasicAdvAudio.hpp
@@ -1,9 +1,8 @@
#pragma once
#include
+
#include
-#include
-#include
class OBSAdvAudioCtrl;
class Ui_OBSAdvAudio;
diff --git a/UI/window-basic-filters.cpp b/frontend/dialogs/OBSBasicFilters.cpp
similarity index 98%
rename from UI/window-basic-filters.cpp
rename to frontend/dialogs/OBSBasicFilters.cpp
index c92036c89..7567757ee 100644
--- a/UI/window-basic-filters.cpp
+++ b/frontend/dialogs/OBSBasicFilters.cpp
@@ -15,35 +15,28 @@
along with this program. If not, see .
******************************************************************************/
-#include "properties-view.hpp"
-#include "window-namedialog.hpp"
-#include "window-basic-main.hpp"
-#include "window-basic-filters.hpp"
-#include "display-helpers.hpp"
-#include "visibility-item-widget.hpp"
-#include "item-widget-helpers.hpp"
-#include "obs-app.hpp"
-#include "undo-stack-obs.hpp"
+#include "OBSBasicFilters.hpp"
+#include
+#include
+#include
+#include
+#include
+#include
+
+#include
#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
+
+#include
#ifdef _WIN32
#define WIN32_LEAN_AND_MEAN 1
#include
#endif
-using namespace std;
+#include "moc_OBSBasicFilters.cpp"
-Q_DECLARE_METATYPE(OBSSource);
+using namespace std;
OBSBasicFilters::OBSBasicFilters(QWidget *parent, OBSSource source_)
: QDialog(parent),
diff --git a/UI/window-basic-filters.hpp b/frontend/dialogs/OBSBasicFilters.hpp
similarity index 97%
rename from UI/window-basic-filters.hpp
rename to frontend/dialogs/OBSBasicFilters.hpp
index c1e2e6c98..a02d51914 100644
--- a/UI/window-basic-filters.hpp
+++ b/frontend/dialogs/OBSBasicFilters.hpp
@@ -17,16 +17,12 @@
#pragma once
+#include "ui_OBSBasicFilters.h"
+
#include
-#include
-#include
-#include
-#include
class OBSBasic;
-class QMenu;
-
-#include "ui_OBSBasicFilters.h"
+class OBSPropertiesView;
class OBSBasicFilters : public QDialog {
Q_OBJECT
diff --git a/UI/window-basic-properties.cpp b/frontend/dialogs/OBSBasicProperties.cpp
similarity index 97%
rename from UI/window-basic-properties.cpp
rename to frontend/dialogs/OBSBasicProperties.cpp
index 342b02dd4..ee656f595 100644
--- a/UI/window-basic-properties.cpp
+++ b/frontend/dialogs/OBSBasicProperties.cpp
@@ -15,27 +15,24 @@
along with this program. If not, see .
******************************************************************************/
-#include "obs-app.hpp"
-#include "moc_window-basic-properties.cpp"
-#include "window-basic-main.hpp"
-#include "display-helpers.hpp"
+#include "OBSBasicProperties.hpp"
+
+#include
+#include
-#include
#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
+#include
+#include
+
+#include
#ifdef _WIN32
#define WIN32_LEAN_AND_MEAN 1
#include
#endif
+#include "moc_OBSBasicProperties.cpp"
+
using namespace std;
static void CreateTransitionScene(OBSSource scene, const char *text, uint32_t color);
diff --git a/UI/window-basic-properties.hpp b/frontend/dialogs/OBSBasicProperties.hpp
similarity index 95%
rename from UI/window-basic-properties.hpp
rename to frontend/dialogs/OBSBasicProperties.hpp
index 3f9557c2c..91738115c 100644
--- a/UI/window-basic-properties.hpp
+++ b/frontend/dialogs/OBSBasicProperties.hpp
@@ -17,18 +17,13 @@
#pragma once
-#include
-#include
-#include
-#include
-#include "qt-display.hpp"
-#include
-
-class OBSPropertiesView;
-class OBSBasic;
-
#include "ui_OBSBasicProperties.h"
+#include
+
+class OBSBasic;
+class OBSPropertiesView;
+
class OBSBasicProperties : public QDialog {
Q_OBJECT
diff --git a/UI/window-basic-source-select.cpp b/frontend/dialogs/OBSBasicSourceSelect.cpp
similarity index 99%
rename from UI/window-basic-source-select.cpp
rename to frontend/dialogs/OBSBasicSourceSelect.cpp
index 430a3f140..84e9ad44e 100644
--- a/UI/window-basic-source-select.cpp
+++ b/frontend/dialogs/OBSBasicSourceSelect.cpp
@@ -15,11 +15,11 @@
along with this program. If not, see .
******************************************************************************/
-#include
+#include "OBSBasicSourceSelect.hpp"
+
#include
-#include "window-basic-main.hpp"
-#include "moc_window-basic-source-select.cpp"
-#include "obs-app.hpp"
+
+#include "moc_OBSBasicSourceSelect.cpp"
struct AddSourceData {
/* Input data */
diff --git a/UI/window-basic-source-select.hpp b/frontend/dialogs/OBSBasicSourceSelect.hpp
similarity index 94%
rename from UI/window-basic-source-select.hpp
rename to frontend/dialogs/OBSBasicSourceSelect.hpp
index 3baadf7b3..077d8d298 100644
--- a/UI/window-basic-source-select.hpp
+++ b/frontend/dialogs/OBSBasicSourceSelect.hpp
@@ -17,14 +17,14 @@
#pragma once
-#include
-#include
-
#include "ui_OBSBasicSourceSelect.h"
-#include "undo-stack-obs.hpp"
-#include "window-basic-main.hpp"
-class OBSBasic;
+#include
+#include
+
+#include
+
+#include
class OBSBasicSourceSelect : public QDialog {
Q_OBJECT
diff --git a/UI/window-basic-transform.cpp b/frontend/dialogs/OBSBasicTransform.cpp
similarity index 98%
rename from UI/window-basic-transform.cpp
rename to frontend/dialogs/OBSBasicTransform.cpp
index 2e84f3519..173a68dc6 100644
--- a/UI/window-basic-transform.cpp
+++ b/frontend/dialogs/OBSBasicTransform.cpp
@@ -1,9 +1,8 @@
-#include
-#include "window-basic-transform.hpp"
-#include "window-basic-main.hpp"
+#include "OBSBasicTransform.hpp"
-Q_DECLARE_METATYPE(OBSScene);
-Q_DECLARE_METATYPE(OBSSceneItem);
+#include
+
+#include "moc_OBSBasicTransform.cpp"
static bool find_sel(obs_scene_t *, obs_sceneitem_t *item, void *param)
{
diff --git a/UI/window-basic-transform.hpp b/frontend/dialogs/OBSBasicTransform.hpp
similarity index 98%
rename from UI/window-basic-transform.hpp
rename to frontend/dialogs/OBSBasicTransform.hpp
index 46905724f..d1559e18b 100644
--- a/UI/window-basic-transform.hpp
+++ b/frontend/dialogs/OBSBasicTransform.hpp
@@ -1,10 +1,11 @@
#pragma once
-#include
-#include
-
#include "ui_OBSBasicTransform.h"
+#include
+
+#include
+
class OBSBasic;
class QListWidgetItem;
diff --git a/UI/window-basic-vcam-config.cpp b/frontend/dialogs/OBSBasicVCamConfig.cpp
similarity index 95%
rename from UI/window-basic-vcam-config.cpp
rename to frontend/dialogs/OBSBasicVCamConfig.cpp
index 7db63513f..3f7107499 100644
--- a/UI/window-basic-vcam-config.cpp
+++ b/frontend/dialogs/OBSBasicVCamConfig.cpp
@@ -1,11 +1,8 @@
-#include "moc_window-basic-vcam-config.cpp"
-#include "window-basic-main.hpp"
+#include "OBSBasicVCamConfig.hpp"
-#include
-#include
-#include
+#include
-#include
+#include "moc_OBSBasicVCamConfig.cpp"
OBSBasicVCamConfig::OBSBasicVCamConfig(const VCamConfig &_config, bool _vcamActive, QWidget *parent)
: config(_config),
diff --git a/UI/window-basic-vcam-config.hpp b/frontend/dialogs/OBSBasicVCamConfig.hpp
similarity index 85%
rename from UI/window-basic-vcam-config.hpp
rename to frontend/dialogs/OBSBasicVCamConfig.hpp
index 7ca154c15..bd07700e7 100644
--- a/UI/window-basic-vcam-config.hpp
+++ b/frontend/dialogs/OBSBasicVCamConfig.hpp
@@ -1,14 +1,10 @@
#pragma once
-#include
-#include
-#include
-
-#include "window-basic-vcam.hpp"
-
#include "ui_OBSBasicVCamConfig.h"
-struct VCamConfig;
+#include
+
+#include
class OBSBasicVCamConfig : public QDialog {
Q_OBJECT
diff --git a/UI/window-log-reply.cpp b/frontend/dialogs/OBSLogReply.cpp
similarity index 95%
rename from UI/window-log-reply.cpp
rename to frontend/dialogs/OBSLogReply.cpp
index 71c379dfe..1000372a5 100644
--- a/UI/window-log-reply.cpp
+++ b/frontend/dialogs/OBSLogReply.cpp
@@ -15,12 +15,15 @@
along with this program. If not, see .
******************************************************************************/
+#include "OBSLogReply.hpp"
+
+#include
+
#include
-#include
-#include
#include
-#include "moc_window-log-reply.cpp"
-#include "obs-app.hpp"
+#include
+
+#include "moc_OBSLogReply.cpp"
OBSLogReply::OBSLogReply(QWidget *parent, const QString &url, const bool crash)
: QDialog(parent),
diff --git a/UI/window-log-reply.hpp b/frontend/dialogs/OBSLogReply.hpp
similarity index 98%
rename from UI/window-log-reply.hpp
rename to frontend/dialogs/OBSLogReply.hpp
index 598a7f172..260b827f7 100644
--- a/UI/window-log-reply.hpp
+++ b/frontend/dialogs/OBSLogReply.hpp
@@ -17,9 +17,10 @@
#pragma once
-#include
#include "ui_OBSLogReply.h"
+#include
+
class OBSLogReply : public QDialog {
Q_OBJECT
diff --git a/UI/log-viewer.cpp b/frontend/dialogs/OBSLogViewer.cpp
similarity index 94%
rename from UI/log-viewer.cpp
rename to frontend/dialogs/OBSLogViewer.cpp
index 9ef67a69c..592111c59 100644
--- a/UI/log-viewer.cpp
+++ b/frontend/dialogs/OBSLogViewer.cpp
@@ -1,16 +1,14 @@
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
+#include "OBSLogViewer.hpp"
+
+#include
+
#include
-#include "moc_log-viewer.cpp"
+#include
+#include
+#include
+
+#include "moc_OBSLogViewer.cpp"
OBSLogViewer::OBSLogViewer(QWidget *parent) : QDialog(parent), ui(new Ui::OBSLogViewer)
{
diff --git a/UI/log-viewer.hpp b/frontend/dialogs/OBSLogViewer.hpp
similarity index 88%
rename from UI/log-viewer.hpp
rename to frontend/dialogs/OBSLogViewer.hpp
index d9e329bba..96a817100 100644
--- a/UI/log-viewer.hpp
+++ b/frontend/dialogs/OBSLogViewer.hpp
@@ -1,11 +1,9 @@
#pragma once
-#include
-#include
-#include "obs-app.hpp"
-
#include "ui_OBSLogViewer.h"
+#include
+
class OBSLogViewer : public QDialog {
Q_OBJECT
diff --git a/UI/window-permissions.cpp b/frontend/dialogs/OBSPermissions.cpp
similarity index 97%
rename from UI/window-permissions.cpp
rename to frontend/dialogs/OBSPermissions.cpp
index 046a011f9..9c62970d7 100644
--- a/UI/window-permissions.cpp
+++ b/frontend/dialogs/OBSPermissions.cpp
@@ -15,9 +15,11 @@
along with this program. If not, see .
******************************************************************************/
-#include
-#include "moc_window-permissions.cpp"
-#include "obs-app.hpp"
+#include "OBSPermissions.hpp"
+
+#include
+
+#include "moc_OBSPermissions.cpp"
OBSPermissions::OBSPermissions(QWidget *parent, MacPermissionStatus capture, MacPermissionStatus video,
MacPermissionStatus audio, MacPermissionStatus accessibility)
diff --git a/UI/window-permissions.hpp b/frontend/dialogs/OBSPermissions.hpp
similarity index 96%
rename from UI/window-permissions.hpp
rename to frontend/dialogs/OBSPermissions.hpp
index 67a74cbb1..5fab46b55 100644
--- a/UI/window-permissions.hpp
+++ b/frontend/dialogs/OBSPermissions.hpp
@@ -18,7 +18,10 @@
#pragma once
#include "ui_OBSPermissions.h"
-#include "platform.hpp"
+
+#include
+
+#include
#define MACOS_PERMISSIONS_DIALOG_VERSION 1
diff --git a/UI/update/update-window.cpp b/frontend/dialogs/OBSUpdate.cpp
similarity index 89%
rename from UI/update/update-window.cpp
rename to frontend/dialogs/OBSUpdate.cpp
index 777eb7878..e25c425b6 100644
--- a/UI/update/update-window.cpp
+++ b/frontend/dialogs/OBSUpdate.cpp
@@ -1,5 +1,8 @@
-#include "update-window.hpp"
-#include "obs-app.hpp"
+#include "OBSUpdate.hpp"
+
+#include
+
+#include "ui_OBSUpdate.h"
OBSUpdate::OBSUpdate(QWidget *parent, bool manualUpdate, const QString &text)
: QDialog(parent, Qt::WindowSystemMenuHint | Qt::WindowTitleHint | Qt::WindowCloseButtonHint),
diff --git a/UI/update/update-window.hpp b/frontend/dialogs/OBSUpdate.hpp
similarity index 89%
rename from UI/update/update-window.hpp
rename to frontend/dialogs/OBSUpdate.hpp
index 8c269762b..5f45674fd 100644
--- a/UI/update/update-window.hpp
+++ b/frontend/dialogs/OBSUpdate.hpp
@@ -1,9 +1,8 @@
#pragma once
#include
-#include
-#include "ui_OBSUpdate.h"
+class Ui_OBSUpdate;
class OBSUpdate : public QDialog {
Q_OBJECT
diff --git a/UI/window-whats-new.cpp b/frontend/dialogs/OBSWhatsNew.cpp
similarity index 90%
rename from UI/window-whats-new.cpp
rename to frontend/dialogs/OBSWhatsNew.cpp
index a39fc0b51..22ba4e29b 100644
--- a/UI/window-whats-new.cpp
+++ b/frontend/dialogs/OBSWhatsNew.cpp
@@ -1,17 +1,17 @@
-#include "moc_window-whats-new.cpp"
+#include "OBSWhatsNew.hpp"
-#include
-#include
-#include
-
-#include "window-basic-main.hpp"
+#include
#ifdef BROWSER_AVAILABLE
#include
extern QCef *cef;
#endif
-/* ------------------------------------------------------------------------- */
+#include
+#include
+#include
+
+#include "moc_OBSWhatsNew.cpp"
OBSWhatsNew::OBSWhatsNew(QWidget *parent, const std::string &url) : QDialog(parent)
{
diff --git a/UI/window-whats-new.hpp b/frontend/dialogs/OBSWhatsNew.hpp
similarity index 99%
rename from UI/window-whats-new.hpp
rename to frontend/dialogs/OBSWhatsNew.hpp
index 1c39a850c..6ff1081aa 100644
--- a/UI/window-whats-new.hpp
+++ b/frontend/dialogs/OBSWhatsNew.hpp
@@ -2,6 +2,7 @@
#include
#include
+
#include
class QCefWidget;
diff --git a/UI/window-youtube-actions.cpp b/frontend/dialogs/OBSYoutubeActions.cpp
similarity index 99%
rename from UI/window-youtube-actions.cpp
rename to frontend/dialogs/OBSYoutubeActions.cpp
index 9c8533fd0..27ceef450 100644
--- a/UI/window-youtube-actions.cpp
+++ b/frontend/dialogs/OBSYoutubeActions.cpp
@@ -1,16 +1,17 @@
-#include "window-basic-main.hpp"
-#include "moc_window-youtube-actions.cpp"
+#include "OBSYoutubeActions.hpp"
-#include "obs-app.hpp"
-#include "youtube-api-wrappers.hpp"
+#include
+#include
#include
-#include
-#include
+
#include
#include
-#include
#include
+#include
+#include
+
+#include "moc_OBSYoutubeActions.cpp"
const QString SchedulDateAndTimeFormat = "yyyy-MM-dd'T'hh:mm:ss'Z'";
const QString RepresentSchedulDateAndTimeFormat = "dddd, MMMM d, yyyy h:m";
diff --git a/UI/window-youtube-actions.hpp b/frontend/dialogs/OBSYoutubeActions.hpp
similarity index 96%
rename from UI/window-youtube-actions.hpp
rename to frontend/dialogs/OBSYoutubeActions.hpp
index 7543792a8..323c25d52 100644
--- a/UI/window-youtube-actions.hpp
+++ b/frontend/dialogs/OBSYoutubeActions.hpp
@@ -1,11 +1,10 @@
#pragma once
-#include
-#include
-#include
-
#include "ui_OBSYoutubeActions.h"
-#include "youtube-api-wrappers.hpp"
+
+#include
+
+#include
class WorkerThread : public QThread {
Q_OBJECT