diff --git a/aegisub/build/Aegisub/Aegisub.vcxproj b/aegisub/build/Aegisub/Aegisub.vcxproj
index 8113f4602..524ef41e6 100644
--- a/aegisub/build/Aegisub/Aegisub.vcxproj
+++ b/aegisub/build/Aegisub/Aegisub.vcxproj
@@ -255,6 +255,7 @@
+
diff --git a/aegisub/build/Aegisub/Aegisub.vcxproj.filters b/aegisub/build/Aegisub/Aegisub.vcxproj.filters
index b475780c3..9dc72df3f 100644
--- a/aegisub/build/Aegisub/Aegisub.vcxproj.filters
+++ b/aegisub/build/Aegisub/Aegisub.vcxproj.filters
@@ -682,6 +682,10 @@
ASS
+
+
+ Preferences
+
diff --git a/aegisub/src/ass_file.cpp b/aegisub/src/ass_file.cpp
index eba59cc7e..4bdc90ffe 100644
--- a/aegisub/src/ass_file.cpp
+++ b/aegisub/src/ass_file.cpp
@@ -50,7 +50,7 @@
#include "ass_info.h"
#include "ass_style.h"
#include "compat.h"
-#include "main.h"
+#include "options.h"
#include "standard_paths.h"
#include "subtitle_format.h"
#include "text_file_reader.h"
diff --git a/aegisub/src/audio_box.cpp b/aegisub/src/audio_box.cpp
index 9a9a2860c..56a94402d 100644
--- a/aegisub/src/audio_box.cpp
+++ b/aegisub/src/audio_box.cpp
@@ -62,7 +62,7 @@
#include "audio_timing.h"
#include "command/command.h"
#include "libresrc/libresrc.h"
-#include "main.h"
+#include "options.h"
#include "toggle_bitmap.h"
#include "selection_controller.h"
#include "utils.h"
diff --git a/aegisub/src/audio_colorscheme.cpp b/aegisub/src/audio_colorscheme.cpp
index d849c68d9..c0666793d 100644
--- a/aegisub/src/audio_colorscheme.cpp
+++ b/aegisub/src/audio_colorscheme.cpp
@@ -40,7 +40,7 @@
#include "audio_rendering_style.h"
#include "colorspace.h"
-#include "main.h"
+#include "options.h"
#include
diff --git a/aegisub/src/audio_controller.cpp b/aegisub/src/audio_controller.cpp
index b3fa9c03f..446fc626b 100644
--- a/aegisub/src/audio_controller.cpp
+++ b/aegisub/src/audio_controller.cpp
@@ -49,7 +49,7 @@
#include "include/aegisub/audio_provider.h"
#include "include/aegisub/context.h"
#include "pen.h"
-#include "main.h"
+#include "options.h"
#include "selection_controller.h"
#include "standard_paths.h"
#include "utils.h"
diff --git a/aegisub/src/audio_display.cpp b/aegisub/src/audio_display.cpp
index be3361856..5de97051b 100644
--- a/aegisub/src/audio_display.cpp
+++ b/aegisub/src/audio_display.cpp
@@ -54,7 +54,7 @@
#include "compat.h"
#include "include/aegisub/context.h"
#include "include/aegisub/hotkey.h"
-#include "main.h"
+#include "options.h"
#include "selection_controller.h"
#include "utils.h"
#include "video_context.h"
diff --git a/aegisub/src/audio_karaoke.cpp b/aegisub/src/audio_karaoke.cpp
index 546fbd2de..4fd1720c9 100644
--- a/aegisub/src/audio_karaoke.cpp
+++ b/aegisub/src/audio_karaoke.cpp
@@ -36,7 +36,7 @@
#include "audio_timing.h"
#include "compat.h"
#include "libresrc/libresrc.h"
-#include "main.h"
+#include "options.h"
#include "selection_controller.h"
#include "utils.h"
diff --git a/aegisub/src/audio_marker.cpp b/aegisub/src/audio_marker.cpp
index 58d9e05e7..4e0caebc5 100644
--- a/aegisub/src/audio_marker.cpp
+++ b/aegisub/src/audio_marker.cpp
@@ -24,7 +24,7 @@
#include "audio_marker.h"
#include "include/aegisub/context.h"
-#include "main.h"
+#include "options.h"
#include "pen.h"
#include "video_context.h"
diff --git a/aegisub/src/audio_player.cpp b/aegisub/src/audio_player.cpp
index 8e2b90eaa..3d27ff9c7 100644
--- a/aegisub/src/audio_player.cpp
+++ b/aegisub/src/audio_player.cpp
@@ -45,7 +45,7 @@
#include "audio_controller.h"
#include "compat.h"
-#include "main.h"
+#include "options.h"
AudioPlayer::AudioPlayer(AudioProvider *provider)
: provider(provider)
diff --git a/aegisub/src/audio_player_alsa.cpp b/aegisub/src/audio_player_alsa.cpp
index b142cbdaf..c8f0ed5fd 100644
--- a/aegisub/src/audio_player_alsa.cpp
+++ b/aegisub/src/audio_player_alsa.cpp
@@ -44,7 +44,7 @@
#include "include/aegisub/audio_provider.h"
#include "compat.h"
#include "frame_main.h"
-#include "main.h"
+#include "options.h"
#include
diff --git a/aegisub/src/audio_player_dsound2.cpp b/aegisub/src/audio_player_dsound2.cpp
index 51a086ef7..379c03a44 100644
--- a/aegisub/src/audio_player_dsound2.cpp
+++ b/aegisub/src/audio_player_dsound2.cpp
@@ -35,7 +35,6 @@
#include "config.h"
#ifdef WITH_DIRECTSOUND
-
#include
#include
#include
@@ -48,6 +47,7 @@
#include "include/aegisub/audio_provider.h"
#include "frame_main.h"
#include "main.h"
+#include "options.h"
#include "utils.h"
/// @brief RAII support class to init and de-init the COM library
diff --git a/aegisub/src/audio_player_oss.cpp b/aegisub/src/audio_player_oss.cpp
index 165d4d7b6..1c2d89ca4 100644
--- a/aegisub/src/audio_player_oss.cpp
+++ b/aegisub/src/audio_player_oss.cpp
@@ -43,7 +43,7 @@
#include "audio_controller.h"
#include "compat.h"
#include "include/aegisub/audio_provider.h"
-#include "main.h"
+#include "options.h"
#include "utils.h"
DEFINE_SIMPLE_EXCEPTION(OSSError, agi::AudioPlayerOpenError, "audio/player/open/oss")
diff --git a/aegisub/src/audio_player_portaudio.cpp b/aegisub/src/audio_player_portaudio.cpp
index 63a40fb7e..27dbb5c21 100644
--- a/aegisub/src/audio_player_portaudio.cpp
+++ b/aegisub/src/audio_player_portaudio.cpp
@@ -44,7 +44,7 @@
#include "audio_controller.h"
#include "compat.h"
#include "include/aegisub/audio_provider.h"
-#include "main.h"
+#include "options.h"
#include "utils.h"
DEFINE_SIMPLE_EXCEPTION(PortAudioError, agi::AudioPlayerOpenError, "audio/player/open/portaudio")
diff --git a/aegisub/src/audio_provider.cpp b/aegisub/src/audio_provider.cpp
index ae2c7c5fe..d9e7d2b5e 100644
--- a/aegisub/src/audio_provider.cpp
+++ b/aegisub/src/audio_provider.cpp
@@ -51,6 +51,7 @@
#include "dialog_progress.h"
#include "frame_main.h"
#include "main.h"
+#include "options.h"
#include "utils.h"
#include
diff --git a/aegisub/src/audio_provider_avs.cpp b/aegisub/src/audio_provider_avs.cpp
index 11354127e..dd3178f65 100644
--- a/aegisub/src/audio_provider_avs.cpp
+++ b/aegisub/src/audio_provider_avs.cpp
@@ -40,7 +40,7 @@
#include "audio_controller.h"
#include "charset_conv.h"
#include "compat.h"
-#include "main.h"
+#include "options.h"
#include "standard_paths.h"
#include "utils.h"
diff --git a/aegisub/src/audio_provider_ffmpegsource.cpp b/aegisub/src/audio_provider_ffmpegsource.cpp
index b843e16af..79e07c072 100644
--- a/aegisub/src/audio_provider_ffmpegsource.cpp
+++ b/aegisub/src/audio_provider_ffmpegsource.cpp
@@ -46,7 +46,7 @@
#include "audio_controller.h"
#include "compat.h"
-#include "main.h"
+#include "options.h"
/// @brief Constructor
/// @param filename The filename to open
diff --git a/aegisub/src/audio_provider_hd.cpp b/aegisub/src/audio_provider_hd.cpp
index 72fce2df6..82553d6b9 100644
--- a/aegisub/src/audio_provider_hd.cpp
+++ b/aegisub/src/audio_provider_hd.cpp
@@ -45,7 +45,7 @@
#include "audio_controller.h"
#include "audio_provider_pcm.h"
#include "compat.h"
-#include "main.h"
+#include "options.h"
#include "standard_paths.h"
#include "utils.h"
diff --git a/aegisub/src/audio_provider_ram.cpp b/aegisub/src/audio_provider_ram.cpp
index d36667a38..2e4cb79d8 100644
--- a/aegisub/src/audio_provider_ram.cpp
+++ b/aegisub/src/audio_provider_ram.cpp
@@ -38,7 +38,7 @@
#include "audio_controller.h"
#include "compat.h"
-#include "main.h"
+#include "options.h"
#include "utils.h"
#include
diff --git a/aegisub/src/audio_renderer_waveform.cpp b/aegisub/src/audio_renderer_waveform.cpp
index 736049bd4..103970d97 100644
--- a/aegisub/src/audio_renderer_waveform.cpp
+++ b/aegisub/src/audio_renderer_waveform.cpp
@@ -44,7 +44,7 @@
#include "block_cache.h"
#include "colorspace.h"
#include "include/aegisub/audio_provider.h"
-#include "main.h"
+#include "options.h"
enum {
/// Only render the peaks
diff --git a/aegisub/src/audio_timing_dialogue.cpp b/aegisub/src/audio_timing_dialogue.cpp
index 22bd500c3..e68ac2bff 100644
--- a/aegisub/src/audio_timing_dialogue.cpp
+++ b/aegisub/src/audio_timing_dialogue.cpp
@@ -42,7 +42,7 @@
#include "audio_timing.h"
#include "command/command.h"
#include "include/aegisub/context.h"
-#include "main.h"
+#include "options.h"
#include "pen.h"
#include "selection_controller.h"
#include "utils.h"
diff --git a/aegisub/src/audio_timing_karaoke.cpp b/aegisub/src/audio_timing_karaoke.cpp
index 5b3b725ea..8df22b3fb 100644
--- a/aegisub/src/audio_timing_karaoke.cpp
+++ b/aegisub/src/audio_timing_karaoke.cpp
@@ -31,7 +31,7 @@
#include "audio_timing.h"
#include "compat.h"
#include "include/aegisub/context.h"
-#include "main.h"
+#include "options.h"
#include "pen.h"
#include "utils.h"
diff --git a/aegisub/src/auto4_base.cpp b/aegisub/src/auto4_base.cpp
index 01d5fa341..9345fb1e4 100644
--- a/aegisub/src/auto4_base.cpp
+++ b/aegisub/src/auto4_base.cpp
@@ -67,7 +67,7 @@
#include "compat.h"
#include "dialog_progress.h"
#include "include/aegisub/context.h"
-#include "main.h"
+#include "options.h"
#include "standard_paths.h"
#include "string_codec.h"
#include "subtitle_format.h"
diff --git a/aegisub/src/avisynth_wrap.cpp b/aegisub/src/avisynth_wrap.cpp
index 7472b43eb..bd8331db2 100644
--- a/aegisub/src/avisynth_wrap.cpp
+++ b/aegisub/src/avisynth_wrap.cpp
@@ -38,7 +38,7 @@
#include "avisynth_wrap.h"
#include "avisynth.h"
-#include "main.h"
+#include "options.h"
// Allocate storage for and initialise static members
namespace {
diff --git a/aegisub/src/base_grid.cpp b/aegisub/src/base_grid.cpp
index 6270aefc8..d60d827e5 100644
--- a/aegisub/src/base_grid.cpp
+++ b/aegisub/src/base_grid.cpp
@@ -56,7 +56,7 @@
#include "audio_box.h"
#include "compat.h"
#include "frame_main.h"
-#include "main.h"
+#include "options.h"
#include "utils.h"
#include "video_context.h"
#include "video_slider.h"
diff --git a/aegisub/src/command/app.cpp b/aegisub/src/command/app.cpp
index dc5227179..1af80f473 100644
--- a/aegisub/src/command/app.cpp
+++ b/aegisub/src/command/app.cpp
@@ -42,17 +42,17 @@
#include
-#include "../include/aegisub/context.h"
-#include "../main.h"
-
#include "../audio_controller.h"
#include "../compat.h"
#include "../dialog_about.h"
#include "../dialog_detached_video.h"
-#include "../dialog_manager.h"
#include "../dialog_log.h"
+#include "../dialog_manager.h"
#include "../dialog_version_check.h"
#include "../frame_main.h"
+#include "../include/aegisub/context.h"
+#include "../main.h"
+#include "../options.h"
#include "../preferences.h"
#include "../utils.h"
#include "../video_context.h"
diff --git a/aegisub/src/command/audio.cpp b/aegisub/src/command/audio.cpp
index 107514cd9..00c9402f3 100644
--- a/aegisub/src/command/audio.cpp
+++ b/aegisub/src/command/audio.cpp
@@ -49,7 +49,7 @@
#include "../audio_timing.h"
#include "../compat.h"
#include "../include/aegisub/context.h"
-#include "../main.h"
+#include "../options.h"
#include "../selection_controller.h"
#include "../video_context.h"
diff --git a/aegisub/src/command/automation.cpp b/aegisub/src/command/automation.cpp
index 2e4b5a840..6d7e17148 100644
--- a/aegisub/src/command/automation.cpp
+++ b/aegisub/src/command/automation.cpp
@@ -39,13 +39,14 @@
#include "command.h"
-#include "../main.h"
-#include "../include/aegisub/context.h"
+#include "../auto4_base.h"
#include "../dialog_automation.h"
#include "../dialog_manager.h"
-#include "../auto4_base.h"
-#include "../video_context.h"
#include "../frame_main.h"
+#include "../include/aegisub/context.h"
+#include "../main.h"
+#include "../options.h"
+#include "../video_context.h"
namespace {
using cmd::Command;
diff --git a/aegisub/src/command/edit.cpp b/aegisub/src/command/edit.cpp
index 9b5a5979c..8268b20b7 100644
--- a/aegisub/src/command/edit.cpp
+++ b/aegisub/src/command/edit.cpp
@@ -52,8 +52,8 @@
#include "../dialog_colorpicker.h"
#include "../dialog_paste_over.h"
#include "../dialog_search_replace.h"
-#include "../main.h"
#include "../include/aegisub/context.h"
+#include "../options.h"
#include "../subs_edit_ctrl.h"
#include "../subs_grid.h"
#include "../text_selection_controller.h"
diff --git a/aegisub/src/command/grid.cpp b/aegisub/src/command/grid.cpp
index d0600e8d8..dffb8bb9d 100644
--- a/aegisub/src/command/grid.cpp
+++ b/aegisub/src/command/grid.cpp
@@ -42,9 +42,10 @@
#include "../ass_file.h"
#include "../audio_controller.h"
#include "../audio_timing.h"
+#include "../frame_main.h"
#include "../include/aegisub/context.h"
#include "../main.h"
-#include "../frame_main.h"
+#include "../options.h"
#include "../selection_controller.h"
#include "../utils.h"
diff --git a/aegisub/src/command/help.cpp b/aegisub/src/command/help.cpp
index 1ba03e11f..c54c386c1 100644
--- a/aegisub/src/command/help.cpp
+++ b/aegisub/src/command/help.cpp
@@ -41,10 +41,10 @@
#include
#include "command.h"
-#include "../include/aegisub/context.h"
-#include "../help_button.h" // help_contents
-#include "../main.h"
+#include "../help_button.h"
+#include "../include/aegisub/context.h"
+#include "../options.h"
namespace {
using cmd::Command;
diff --git a/aegisub/src/command/keyframe.cpp b/aegisub/src/command/keyframe.cpp
index 9245ae6fc..43f700ec3 100644
--- a/aegisub/src/command/keyframe.cpp
+++ b/aegisub/src/command/keyframe.cpp
@@ -41,9 +41,9 @@
#include "command.h"
-#include "../include/aegisub/context.h"
-#include "../main.h"
#include "../compat.h"
+#include "../include/aegisub/context.h"
+#include "../options.h"
#include "../video_context.h"
namespace {
diff --git a/aegisub/src/command/recent.cpp b/aegisub/src/command/recent.cpp
index 1cf54983b..6c6d4b33e 100644
--- a/aegisub/src/command/recent.cpp
+++ b/aegisub/src/command/recent.cpp
@@ -41,11 +41,12 @@
#include "command.h"
-#include "../include/aegisub/context.h"
#include "../audio_controller.h"
-#include "../main.h"
-#include "../frame_main.h"
#include "../compat.h"
+#include "../frame_main.h"
+#include "../include/aegisub/context.h"
+#include "../main.h"
+#include "../options.h"
#include "../video_context.h"
namespace {
diff --git a/aegisub/src/command/subtitle.cpp b/aegisub/src/command/subtitle.cpp
index a802e1036..78a3482c6 100644
--- a/aegisub/src/command/subtitle.cpp
+++ b/aegisub/src/command/subtitle.cpp
@@ -57,10 +57,11 @@
#include "../frame_main.h"
#include "../include/aegisub/context.h"
#include "../main.h"
+#include "../options.h"
#include "../subs_grid.h"
#include "../subtitle_format.h"
-#include "../video_context.h"
#include "../utils.h"
+#include "../video_context.h"
namespace {
using cmd::Command;
diff --git a/aegisub/src/command/time.cpp b/aegisub/src/command/time.cpp
index 534505213..2b3fc8c59 100644
--- a/aegisub/src/command/time.cpp
+++ b/aegisub/src/command/time.cpp
@@ -47,7 +47,7 @@
#include "../dialog_manager.h"
#include "../dialog_shift_times.h"
#include "../include/aegisub/context.h"
-#include "../main.h"
+#include "../options.h"
#include "../selection_controller.h"
#include "../subs_grid.h"
#include "../video_context.h"
diff --git a/aegisub/src/command/timecode.cpp b/aegisub/src/command/timecode.cpp
index bf937278d..60f728755 100644
--- a/aegisub/src/command/timecode.cpp
+++ b/aegisub/src/command/timecode.cpp
@@ -41,9 +41,9 @@
#include "command.h"
-#include "../include/aegisub/context.h"
#include "../compat.h"
-#include "../main.h"
+#include "../include/aegisub/context.h"
+#include "../options.h"
#include "../video_context.h"
namespace {
diff --git a/aegisub/src/command/tool.cpp b/aegisub/src/command/tool.cpp
index a72d97e35..8b215388b 100644
--- a/aegisub/src/command/tool.cpp
+++ b/aegisub/src/command/tool.cpp
@@ -41,22 +41,21 @@
#include "command.h"
-#include "../include/aegisub/context.h"
-
-#include "../dialog_fonts_collector.h"
-#include "../standard_paths.h" // tool_assdraw
-#include "../video_context.h" // tool_font_collector
#include "../compat.h"
#include "../dialog_export.h"
+#include "../dialog_fonts_collector.h"
+#include "../dialog_kara_timing_copy.h"
#include "../dialog_manager.h"
#include "../dialog_resample.h"
#include "../dialog_selection.h"
-#include "../dialog_styling_assistant.h"
#include "../dialog_style_manager.h"
+#include "../dialog_styling_assistant.h"
#include "../dialog_timing_processor.h"
#include "../dialog_translation.h"
-#include "../dialog_kara_timing_copy.h"
+#include "../include/aegisub/context.h"
+#include "../standard_paths.h"
#include "../subs_grid.h"
+#include "../video_context.h"
namespace {
using cmd::Command;
diff --git a/aegisub/src/command/video.cpp b/aegisub/src/command/video.cpp
index 21f232e56..7a9bac113 100644
--- a/aegisub/src/command/video.cpp
+++ b/aegisub/src/command/video.cpp
@@ -47,14 +47,15 @@
#include "../ass_dialogue.h"
#include "../ass_time.h"
#include "../compat.h"
-#include "../frame_main.h"
-#include "../main.h"
-#include "../include/aegisub/context.h"
#include "../dialog_detached_video.h"
#include "../dialog_dummy_video.h"
-#include "../dialog_manager.h"
#include "../dialog_jumpto.h"
+#include "../dialog_manager.h"
#include "../dialog_video_details.h"
+#include "../frame_main.h"
+#include "../include/aegisub/context.h"
+#include "../main.h"
+#include "../options.h"
#include "../selection_controller.h"
#include "../standard_paths.h"
#include "../subs_grid.h"
diff --git a/aegisub/src/compat.cpp b/aegisub/src/compat.cpp
index b9ddd1e3c..c6b0bf96d 100644
--- a/aegisub/src/compat.cpp
+++ b/aegisub/src/compat.cpp
@@ -1,5 +1,5 @@
#include "compat.h"
-#include "main.h"
+#include "options.h"
#include
diff --git a/aegisub/src/dialog_attachments.cpp b/aegisub/src/dialog_attachments.cpp
index 9c5b1358c..920078f40 100644
--- a/aegisub/src/dialog_attachments.cpp
+++ b/aegisub/src/dialog_attachments.cpp
@@ -48,7 +48,7 @@
#include "compat.h"
#include "help_button.h"
#include "libresrc/libresrc.h"
-#include "main.h"
+#include "options.h"
#include "utils.h"
#include
diff --git a/aegisub/src/dialog_automation.cpp b/aegisub/src/dialog_automation.cpp
index 164b1b8f8..33b379823 100644
--- a/aegisub/src/dialog_automation.cpp
+++ b/aegisub/src/dialog_automation.cpp
@@ -35,15 +35,6 @@
#include "config.h"
-#include
-
-#include
-#include
-#include
-#include
-#include
-#include
-
#include "dialog_automation.h"
#include "auto4_base.h"
@@ -52,9 +43,19 @@
#include "help_button.h"
#include "include/aegisub/context.h"
#include "libresrc/libresrc.h"
+#include "options.h"
#include "main.h"
#include "subtitle_format.h"
+#include
+
+#include
+#include
+#include
+#include
+#include
+#include
+
using std::placeholders::_1;
DialogAutomation::DialogAutomation(agi::Context *c)
diff --git a/aegisub/src/dialog_autosave.cpp b/aegisub/src/dialog_autosave.cpp
index b7b73b819..75beee9b1 100644
--- a/aegisub/src/dialog_autosave.cpp
+++ b/aegisub/src/dialog_autosave.cpp
@@ -20,7 +20,7 @@
#include "compat.h"
#include "libresrc/libresrc.h"
-#include "main.h"
+#include "options.h"
#include "standard_paths.h"
#include
diff --git a/aegisub/src/dialog_colorpicker.cpp b/aegisub/src/dialog_colorpicker.cpp
index c6fa212ef..2d67787c9 100644
--- a/aegisub/src/dialog_colorpicker.cpp
+++ b/aegisub/src/dialog_colorpicker.cpp
@@ -67,7 +67,7 @@
#include "dialog_colorpicker.h"
#include "help_button.h"
#include "libresrc/libresrc.h"
-#include "main.h"
+#include "options.h"
#include "persist_location.h"
#include "utils.h"
diff --git a/aegisub/src/dialog_detached_video.cpp b/aegisub/src/dialog_detached_video.cpp
index 555ebe83e..96249d53c 100644
--- a/aegisub/src/dialog_detached_video.cpp
+++ b/aegisub/src/dialog_detached_video.cpp
@@ -34,22 +34,22 @@
#include "config.h"
-#include
-#include
-#include /// Must be included last.
-
#include "dialog_detached_video.h"
#include "include/aegisub/context.h"
#include "include/aegisub/hotkey.h"
-#include "main.h"
+#include "options.h"
#include "persist_location.h"
#include "utils.h"
#include "video_box.h"
#include "video_context.h"
#include "video_display.h"
+#include
+#include
+#include /// Must be included last.
+
DialogDetachedVideo::DialogDetachedVideo(agi::Context *context)
: wxDialog(context->parent, -1, "Detached Video", wxDefaultPosition, wxSize(400,300), wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER | wxMAXIMIZE_BOX | wxMINIMIZE_BOX | wxWANTS_CHARS)
, context(context)
diff --git a/aegisub/src/dialog_dummy_video.cpp b/aegisub/src/dialog_dummy_video.cpp
index a1fe8dfcb..1ecabd7ea 100644
--- a/aegisub/src/dialog_dummy_video.cpp
+++ b/aegisub/src/dialog_dummy_video.cpp
@@ -38,7 +38,7 @@
#include "colour_button.h"
#include "help_button.h"
#include "libresrc/libresrc.h"
-#include "main.h"
+#include "options.h"
#include "video_provider_dummy.h"
namespace {
diff --git a/aegisub/src/dialog_export_ebu3264.cpp b/aegisub/src/dialog_export_ebu3264.cpp
index c85393a7c..cfb8b9652 100644
--- a/aegisub/src/dialog_export_ebu3264.cpp
+++ b/aegisub/src/dialog_export_ebu3264.cpp
@@ -25,7 +25,7 @@
#include
-#include "main.h"
+#include "options.h"
#include "text_file_writer.h"
#include
diff --git a/aegisub/src/dialog_fonts_collector.cpp b/aegisub/src/dialog_fonts_collector.cpp
index 6fd88e0c6..3a39b5199 100644
--- a/aegisub/src/dialog_fonts_collector.cpp
+++ b/aegisub/src/dialog_fonts_collector.cpp
@@ -31,7 +31,7 @@
#include "help_button.h"
#include "include/aegisub/context.h"
#include "libresrc/libresrc.h"
-#include "main.h"
+#include "options.h"
#include "scintilla_text_ctrl.h"
#include "selection_controller.h"
#include "standard_paths.h"
diff --git a/aegisub/src/dialog_kara_timing_copy.cpp b/aegisub/src/dialog_kara_timing_copy.cpp
index 5a8d24583..f9d26abb3 100644
--- a/aegisub/src/dialog_kara_timing_copy.cpp
+++ b/aegisub/src/dialog_kara_timing_copy.cpp
@@ -58,7 +58,7 @@
#include "include/aegisub/context.h"
#include "kana_table.h"
#include "libresrc/libresrc.h"
-#include "main.h"
+#include "options.h"
#include "selection_controller.h"
#include "utils.h"
diff --git a/aegisub/src/dialog_paste_over.cpp b/aegisub/src/dialog_paste_over.cpp
index d8c998032..680fc1d65 100644
--- a/aegisub/src/dialog_paste_over.cpp
+++ b/aegisub/src/dialog_paste_over.cpp
@@ -44,7 +44,7 @@
#include
#include "help_button.h"
-#include "main.h"
+#include "options.h"
DialogPasteOver::DialogPasteOver(wxWindow *parent)
: wxDialog (parent, -1, _("Select Fields to Paste Over"))
diff --git a/aegisub/src/dialog_search_replace.cpp b/aegisub/src/dialog_search_replace.cpp
index d14606245..348c261f6 100644
--- a/aegisub/src/dialog_search_replace.cpp
+++ b/aegisub/src/dialog_search_replace.cpp
@@ -49,7 +49,7 @@
#include "compat.h"
#include "dialog_search_replace.h"
#include "include/aegisub/context.h"
-#include "main.h"
+#include "options.h"
#include "selection_controller.h"
#include "text_selection_controller.h"
#include "subs_edit_ctrl.h"
diff --git a/aegisub/src/dialog_selection.cpp b/aegisub/src/dialog_selection.cpp
index 6562295be..6b1eb7b9c 100644
--- a/aegisub/src/dialog_selection.cpp
+++ b/aegisub/src/dialog_selection.cpp
@@ -23,6 +23,19 @@
#include "dialog_selection.h"
+#include "ass_dialogue.h"
+#include "ass_file.h"
+#include "compat.h"
+#include "frame_main.h"
+#include "help_button.h"
+#include "include/aegisub/context.h"
+#include "libresrc/libresrc.h"
+#include "main.h"
+#include "options.h"
+#include "selection_controller.h"
+
+#include
+
#include
#include
@@ -33,18 +46,6 @@
#include
#include
-#include "ass_dialogue.h"
-#include "ass_file.h"
-#include "compat.h"
-#include "frame_main.h"
-#include "help_button.h"
-#include "include/aegisub/context.h"
-#include "libresrc/libresrc.h"
-#include "main.h"
-#include "selection_controller.h"
-
-#include
-
enum {
ACTION_SET = 0,
ACTION_ADD,
diff --git a/aegisub/src/dialog_shift_times.cpp b/aegisub/src/dialog_shift_times.cpp
index 5da7a7250..da1f62b8e 100644
--- a/aegisub/src/dialog_shift_times.cpp
+++ b/aegisub/src/dialog_shift_times.cpp
@@ -49,7 +49,7 @@
#include "include/aegisub/context.h"
#include "help_button.h"
#include "libresrc/libresrc.h"
-#include "main.h"
+#include "options.h"
#include "standard_paths.h"
#include "timeedit_ctrl.h"
#include "video_context.h"
diff --git a/aegisub/src/dialog_spellchecker.cpp b/aegisub/src/dialog_spellchecker.cpp
index 2f79aacf7..f7489d9b0 100644
--- a/aegisub/src/dialog_spellchecker.cpp
+++ b/aegisub/src/dialog_spellchecker.cpp
@@ -30,7 +30,7 @@
#include "include/aegisub/context.h"
#include "include/aegisub/spellchecker.h"
#include "libresrc/libresrc.h"
-#include "main.h"
+#include "options.h"
#include "selection_controller.h"
#include "text_selection_controller.h"
#include "subs_edit_ctrl.h"
diff --git a/aegisub/src/dialog_style_editor.cpp b/aegisub/src/dialog_style_editor.cpp
index 71f50036e..6ed551a16 100644
--- a/aegisub/src/dialog_style_editor.cpp
+++ b/aegisub/src/dialog_style_editor.cpp
@@ -53,7 +53,7 @@
#include "include/aegisub/context.h"
#include "include/aegisub/subtitles_provider.h"
#include "libresrc/libresrc.h"
-#include "main.h"
+#include "options.h"
#include "persist_location.h"
#include "selection_controller.h"
#include "subs_grid.h"
diff --git a/aegisub/src/dialog_style_manager.cpp b/aegisub/src/dialog_style_manager.cpp
index 84bc3e64f..bce13eed0 100644
--- a/aegisub/src/dialog_style_manager.cpp
+++ b/aegisub/src/dialog_style_manager.cpp
@@ -58,7 +58,7 @@
#include "include/aegisub/context.h"
#include "help_button.h"
#include "libresrc/libresrc.h"
-#include "main.h"
+#include "options.h"
#include "persist_location.h"
#include "selection_controller.h"
#include "standard_paths.h"
diff --git a/aegisub/src/dialog_text_import.cpp b/aegisub/src/dialog_text_import.cpp
index a6d4dfc53..cd864fb75 100644
--- a/aegisub/src/dialog_text_import.cpp
+++ b/aegisub/src/dialog_text_import.cpp
@@ -41,7 +41,7 @@
#include
#include "compat.h"
-#include "main.h"
+#include "options.h"
DialogTextImport::DialogTextImport()
: wxDialog(nullptr , -1, _("Text import options"))
diff --git a/aegisub/src/dialog_timing_processor.cpp b/aegisub/src/dialog_timing_processor.cpp
index 4f0fbcef0..991354066 100644
--- a/aegisub/src/dialog_timing_processor.cpp
+++ b/aegisub/src/dialog_timing_processor.cpp
@@ -57,7 +57,7 @@
#include "help_button.h"
#include "include/aegisub/context.h"
#include "libresrc/libresrc.h"
-#include "main.h"
+#include "options.h"
#include "selection_controller.h"
#include "utils.h"
#include "video_context.h"
diff --git a/aegisub/src/dialog_version_check.cpp b/aegisub/src/dialog_version_check.cpp
index 867711818..f35f61571 100644
--- a/aegisub/src/dialog_version_check.cpp
+++ b/aegisub/src/dialog_version_check.cpp
@@ -66,7 +66,7 @@
#include
#include "compat.h"
-#include "main.h"
+#include "options.h"
#include "string_codec.h"
#include "version.h"
diff --git a/aegisub/src/ffmpegsource_common.cpp b/aegisub/src/ffmpegsource_common.cpp
index 7618c9e2e..106bb157a 100644
--- a/aegisub/src/ffmpegsource_common.cpp
+++ b/aegisub/src/ffmpegsource_common.cpp
@@ -41,6 +41,7 @@
#include "dialog_progress.h"
#include "frame_main.h"
#include "main.h"
+#include "options.h"
#include "standard_paths.h"
#include "utils.h"
diff --git a/aegisub/src/frame_main.cpp b/aegisub/src/frame_main.cpp
index a1b33c669..a5bcf8680 100644
--- a/aegisub/src/frame_main.cpp
+++ b/aegisub/src/frame_main.cpp
@@ -64,6 +64,7 @@
#include "help_button.h"
#include "libresrc/libresrc.h"
#include "main.h"
+#include "options.h"
#include "standard_paths.h"
#include "subs_edit_box.h"
#include "subs_edit_ctrl.h"
@@ -231,7 +232,6 @@ FrameMain::FrameMain (wxArrayString args)
StartupLog("Initializing context frames");
context->parent = this;
context->previousFocus = 0;
- wxGetApp().frame = this;
StartupLog("Install PNG handler");
wxImage::AddHandler(new wxPNGHandler);
diff --git a/aegisub/src/hotkey.cpp b/aegisub/src/hotkey.cpp
index 50fec7a1c..6431985cc 100644
--- a/aegisub/src/hotkey.cpp
+++ b/aegisub/src/hotkey.cpp
@@ -25,7 +25,7 @@
#include "libresrc/libresrc.h"
#include "command/command.h"
#include "compat.h"
-#include "main.h"
+#include "options.h"
#include "standard_paths.h"
namespace {
diff --git a/aegisub/src/main.cpp b/aegisub/src/main.cpp
index 249aeaba2..e45983b83 100644
--- a/aegisub/src/main.cpp
+++ b/aegisub/src/main.cpp
@@ -34,16 +34,7 @@
#include "config.h"
-#include
-
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
+#include "main.h"
#include "include/aegisub/menu.h"
#include "command/command.h"
@@ -61,8 +52,8 @@
#include "export_fixstyle.h"
#include "export_framerate.h"
#include "frame_main.h"
-#include "main.h"
#include "libresrc/libresrc.h"
+#include "options.h"
#include "plugin_manager.h"
#include "standard_paths.h"
#include "subtitle_format.h"
@@ -75,6 +66,17 @@
#include
#include
+#include
+
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+
namespace config {
agi::Options *opt = 0;
agi::MRUManager *mru = 0;
diff --git a/aegisub/src/main.h b/aegisub/src/main.h
index 49d84ccc7..20c137804 100644
--- a/aegisub/src/main.h
+++ b/aegisub/src/main.h
@@ -37,9 +37,6 @@
#include
#include "aegisublocale.h"
-#include
-#include
-#include
#ifndef wxUSE_EXCEPTIONS
#error wxWidgets is compiled without exceptions support. Aegisub requires exceptions support in wxWidgets to run safely.
@@ -48,23 +45,8 @@
class FrameMain;
class PluginManager;
-/// For holding all configuration-related objects and values.
-namespace config {
- extern agi::Options *opt; ///< Options
- extern agi::MRUManager *mru; ///< Most Recently Used
-}
-
namespace Automation4 { class AutoloadScriptManager; }
-/// Macro to get OptionValue object.
-#define OPT_GET(x) const_cast(config::opt->Get(x))
-
-/// Macro to set OptionValue object.
-#define OPT_SET(x) config::opt->Get(x)
-
-/// Macro to subscribe to OptionValue changes
-#define OPT_SUB(x, ...) config::opt->Get(x)->Subscribe(__VA_ARGS__)
-
class AegisubApp: public wxApp {
PluginManager *plugins;
diff --git a/aegisub/src/menu.cpp b/aegisub/src/menu.cpp
index 4c743dd96..f968b13b9 100644
--- a/aegisub/src/menu.cpp
+++ b/aegisub/src/menu.cpp
@@ -28,6 +28,7 @@
#include "compat.h"
#include "libresrc/libresrc.h"
#include "main.h"
+#include "options.h"
#include "standard_paths.h"
#include
diff --git a/aegisub/src/options.h b/aegisub/src/options.h
new file mode 100644
index 000000000..6c3261fc5
--- /dev/null
+++ b/aegisub/src/options.h
@@ -0,0 +1,34 @@
+// Copyright (c) 2011, Thomas Goyne
+//
+// Permission to use, copy, modify, and distribute this software for any
+// purpose with or without fee is hereby granted, provided that the above
+// copyright notice and this permission notice appear in all copies.
+//
+// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+//
+// Aegisub Project http://www.aegisub.org/
+
+#include
+#include
+#include
+
+/// For holding all configuration-related objects and values.
+namespace config {
+ extern agi::Options *opt; ///< Options
+ extern agi::MRUManager *mru; ///< Most Recently Used
+}
+
+/// Macro to get OptionValue object
+#define OPT_GET(x) const_cast(config::opt->Get(x))
+
+/// Macro to set OptionValue object
+#define OPT_SET(x) config::opt->Get(x)
+
+/// Macro to subscribe to OptionValue changes
+#define OPT_SUB(x, ...) config::opt->Get(x)->Subscribe(__VA_ARGS__)
diff --git a/aegisub/src/pen.cpp b/aegisub/src/pen.cpp
index fed982b30..f51fdedc3 100644
--- a/aegisub/src/pen.cpp
+++ b/aegisub/src/pen.cpp
@@ -19,7 +19,7 @@
#include "pen.h"
#include "compat.h"
-#include "main.h"
+#include "options.h"
void Pen::OnColourChanged(agi::OptionValue const& opt) {
impl.SetColour(to_wx(opt.GetColor()));
diff --git a/aegisub/src/persist_location.cpp b/aegisub/src/persist_location.cpp
index 901bf63df..4db24aac8 100644
--- a/aegisub/src/persist_location.cpp
+++ b/aegisub/src/persist_location.cpp
@@ -22,7 +22,7 @@
#include "persist_location.h"
-#include "main.h"
+#include "options.h"
#include
#include
diff --git a/aegisub/src/preferences.cpp b/aegisub/src/preferences.cpp
index e067feca2..c6c3eed93 100644
--- a/aegisub/src/preferences.cpp
+++ b/aegisub/src/preferences.cpp
@@ -50,7 +50,7 @@
#include "include/aegisub/hotkey.h"
#include "include/aegisub/subtitles_provider.h"
#include "libresrc/libresrc.h"
-#include "main.h"
+#include "options.h"
#include "preferences_base.h"
#include "video_provider_manager.h"
diff --git a/aegisub/src/preferences_base.cpp b/aegisub/src/preferences_base.cpp
index ec77942ee..bdc4f24ea 100644
--- a/aegisub/src/preferences_base.cpp
+++ b/aegisub/src/preferences_base.cpp
@@ -39,7 +39,7 @@
#include "include/aegisub/audio_player.h"
#include "include/aegisub/audio_provider.h"
#include "libresrc/libresrc.h"
-#include "main.h"
+#include "options.h"
#include "preferences.h"
#include "standard_paths.h"
#include "video_provider_manager.h"
diff --git a/aegisub/src/spellchecker.cpp b/aegisub/src/spellchecker.cpp
index 28e4ffbc3..01073f730 100644
--- a/aegisub/src/spellchecker.cpp
+++ b/aegisub/src/spellchecker.cpp
@@ -40,7 +40,7 @@
#include "compat.h"
#include "include/aegisub/spellchecker.h"
-#include "main.h"
+#include "options.h"
agi::SpellChecker *SpellCheckerFactory::GetSpellChecker() {
std::vector list = GetClasses(OPT_GET("Tool/Spell Checker/Backend")->GetString());
diff --git a/aegisub/src/spellchecker_hunspell.cpp b/aegisub/src/spellchecker_hunspell.cpp
index 468f54a80..fd71c0359 100644
--- a/aegisub/src/spellchecker_hunspell.cpp
+++ b/aegisub/src/spellchecker_hunspell.cpp
@@ -39,7 +39,7 @@
#include "charset_conv.h"
#include "compat.h"
-#include "main.h"
+#include "options.h"
#include "standard_paths.h"
HunspellSpellChecker::HunspellSpellChecker()
diff --git a/aegisub/src/subs_edit_box.cpp b/aegisub/src/subs_edit_box.cpp
index fd156ffb2..e992cbd0c 100644
--- a/aegisub/src/subs_edit_box.cpp
+++ b/aegisub/src/subs_edit_box.cpp
@@ -57,7 +57,7 @@
#include "include/aegisub/context.h"
#include "include/aegisub/hotkey.h"
#include "libresrc/libresrc.h"
-#include "main.h"
+#include "options.h"
#include "placeholder_ctrl.h"
#include "scintilla_text_selection_controller.h"
#include "subs_edit_ctrl.h"
diff --git a/aegisub/src/subs_edit_ctrl.cpp b/aegisub/src/subs_edit_ctrl.cpp
index af64ad997..3ec4c5544 100644
--- a/aegisub/src/subs_edit_ctrl.cpp
+++ b/aegisub/src/subs_edit_ctrl.cpp
@@ -47,7 +47,7 @@
#include "ass_file.h"
#include "command/command.h"
#include "compat.h"
-#include "main.h"
+#include "options.h"
#include "include/aegisub/context.h"
#include "include/aegisub/spellchecker.h"
#include "selection_controller.h"
diff --git a/aegisub/src/subs_grid.cpp b/aegisub/src/subs_grid.cpp
index c68f4bedc..f5b872543 100644
--- a/aegisub/src/subs_grid.cpp
+++ b/aegisub/src/subs_grid.cpp
@@ -48,7 +48,7 @@
#include "ass_dialogue.h"
#include "ass_file.h"
-#include "main.h"
+#include "options.h"
#include "utils.h"
#include "video_context.h"
diff --git a/aegisub/src/subtitle_format_ebu3264.cpp b/aegisub/src/subtitle_format_ebu3264.cpp
index 183343083..babac3f5d 100644
--- a/aegisub/src/subtitle_format_ebu3264.cpp
+++ b/aegisub/src/subtitle_format_ebu3264.cpp
@@ -40,7 +40,7 @@
#include "ass_style.h"
#include "compat.h"
#include "dialog_export_ebu3264.h"
-#include "main.h"
+#include "options.h"
#include "text_file_writer.h"
namespace
diff --git a/aegisub/src/subtitle_format_ttxt.cpp b/aegisub/src/subtitle_format_ttxt.cpp
index 464927217..ea5d41998 100644
--- a/aegisub/src/subtitle_format_ttxt.cpp
+++ b/aegisub/src/subtitle_format_ttxt.cpp
@@ -42,7 +42,7 @@
#include "ass_file.h"
#include "ass_time.h"
#include "compat.h"
-#include "main.h"
+#include "options.h"
#include
#include
diff --git a/aegisub/src/subtitle_format_txt.cpp b/aegisub/src/subtitle_format_txt.cpp
index 99449811b..8d0cce74a 100644
--- a/aegisub/src/subtitle_format_txt.cpp
+++ b/aegisub/src/subtitle_format_txt.cpp
@@ -40,7 +40,7 @@
#include "ass_file.h"
#include "compat.h"
#include "dialog_text_import.h"
-#include "main.h"
+#include "options.h"
#include "text_file_reader.h"
#include "text_file_writer.h"
#include "utils.h"
diff --git a/aegisub/src/subtitles_provider.cpp b/aegisub/src/subtitles_provider.cpp
index 426209adf..163451433 100644
--- a/aegisub/src/subtitles_provider.cpp
+++ b/aegisub/src/subtitles_provider.cpp
@@ -35,7 +35,7 @@
#include "config.h"
#include "compat.h"
-#include "main.h"
+#include "options.h"
#ifdef WITH_CSRI
#include "subtitles_provider_csri.h"
#endif
diff --git a/aegisub/src/text_file_writer.cpp b/aegisub/src/text_file_writer.cpp
index 815c52fde..98a95b04d 100644
--- a/aegisub/src/text_file_writer.cpp
+++ b/aegisub/src/text_file_writer.cpp
@@ -40,7 +40,7 @@
#include "charset_conv.h"
#include "compat.h"
-#include "main.h"
+#include "options.h"
#include "text_file_writer.h"
TextFileWriter::TextFileWriter(wxString const& filename, wxString encoding)
diff --git a/aegisub/src/thesaurus.cpp b/aegisub/src/thesaurus.cpp
index 53708b160..4607d71f0 100644
--- a/aegisub/src/thesaurus.cpp
+++ b/aegisub/src/thesaurus.cpp
@@ -31,7 +31,7 @@
#include
#include "compat.h"
-#include "main.h"
+#include "options.h"
#include "standard_paths.h"
Thesaurus::Thesaurus()
diff --git a/aegisub/src/timeedit_ctrl.cpp b/aegisub/src/timeedit_ctrl.cpp
index ef4366a84..67c53e016 100644
--- a/aegisub/src/timeedit_ctrl.cpp
+++ b/aegisub/src/timeedit_ctrl.cpp
@@ -46,7 +46,7 @@
#include "ass_time.h"
#include "compat.h"
#include "include/aegisub/context.h"
-#include "main.h"
+#include "options.h"
#include "utils.h"
#include "video_context.h"
diff --git a/aegisub/src/toolbar.cpp b/aegisub/src/toolbar.cpp
index 5cd6e1eed..40b772888 100644
--- a/aegisub/src/toolbar.cpp
+++ b/aegisub/src/toolbar.cpp
@@ -25,7 +25,7 @@
#include "include/aegisub/context.h"
#include "include/aegisub/hotkey.h"
#include "libresrc/libresrc.h"
-#include "main.h"
+#include "options.h"
#include
#include
diff --git a/aegisub/src/utils.cpp b/aegisub/src/utils.cpp
index f8351f197..e0a18df10 100644
--- a/aegisub/src/utils.cpp
+++ b/aegisub/src/utils.cpp
@@ -54,7 +54,7 @@
#endif
#include "compat.h"
-#include "main.h"
+#include "options.h"
wxDEFINE_EVENT(EVT_CALL_THUNK, wxThreadEvent);
diff --git a/aegisub/src/utils.h b/aegisub/src/utils.h
index 4330b845c..1ed48b3b3 100644
--- a/aegisub/src/utils.h
+++ b/aegisub/src/utils.h
@@ -44,6 +44,7 @@
#include
#include
+#include
#include
class wxMouseEvent;
diff --git a/aegisub/src/video_box.cpp b/aegisub/src/video_box.cpp
index 7835805e1..035b085e2 100644
--- a/aegisub/src/video_box.cpp
+++ b/aegisub/src/video_box.cpp
@@ -54,7 +54,7 @@
#include "command/command.h"
#include "compat.h"
#include "libresrc/libresrc.h"
-#include "main.h"
+#include "options.h"
#include "selection_controller.h"
#include "toggle_bitmap.h"
#include "tooltip_manager.h"
diff --git a/aegisub/src/video_context.cpp b/aegisub/src/video_context.cpp
index a79490690..5970e68de 100644
--- a/aegisub/src/video_context.cpp
+++ b/aegisub/src/video_context.cpp
@@ -53,8 +53,8 @@
#include "compat.h"
#include "include/aegisub/context.h"
#include "include/aegisub/video_provider.h"
-#include "main.h"
#include "mkv_wrap.h"
+#include "options.h"
#include "selection_controller.h"
#include "standard_paths.h"
#include "time_range.h"
diff --git a/aegisub/src/video_display.cpp b/aegisub/src/video_display.cpp
index 6f937b3ea..ce1963b89 100644
--- a/aegisub/src/video_display.cpp
+++ b/aegisub/src/video_display.cpp
@@ -57,7 +57,7 @@
#include "include/aegisub/context.h"
#include "include/aegisub/hotkey.h"
#include "include/aegisub/menu.h"
-#include "main.h"
+#include "options.h"
#include "spline_curve.h"
#include "threaded_frame_source.h"
#include "utils.h"
diff --git a/aegisub/src/video_provider_avs.cpp b/aegisub/src/video_provider_avs.cpp
index 670d8b238..3fd4a0df1 100644
--- a/aegisub/src/video_provider_avs.cpp
+++ b/aegisub/src/video_provider_avs.cpp
@@ -49,7 +49,7 @@
#include "charset_conv.h"
#include "compat.h"
-#include "main.h"
+#include "options.h"
#include "standard_paths.h"
AvisynthVideoProvider::AvisynthVideoProvider(wxString filename)
diff --git a/aegisub/src/video_provider_cache.cpp b/aegisub/src/video_provider_cache.cpp
index 9c929a27b..9891210d8 100644
--- a/aegisub/src/video_provider_cache.cpp
+++ b/aegisub/src/video_provider_cache.cpp
@@ -36,7 +36,7 @@
#include "video_provider_cache.h"
-#include "main.h"
+#include "options.h"
#include "video_frame.h"
#include
diff --git a/aegisub/src/video_provider_ffmpegsource.cpp b/aegisub/src/video_provider_ffmpegsource.cpp
index 3d2cb9418..cd9f810c4 100644
--- a/aegisub/src/video_provider_ffmpegsource.cpp
+++ b/aegisub/src/video_provider_ffmpegsource.cpp
@@ -35,10 +35,7 @@
#include "config.h"
#ifdef WITH_FFMS2
-
-#ifdef __WINDOWS__
-#include
-#endif
+#include "video_provider_ffmpegsource.h"
#include