File: delete-implicit-conversions.patch

package info (click to toggle)
aegisub 3.2.2%2Bdfsg-7
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 22,904 kB
  • sloc: cpp: 57,067; ansic: 16,457; asm: 3,618; sh: 3,525; makefile: 409; python: 350; perl: 274; cs: 205; xml: 196; objc: 47
file content (316 lines) | stat: -rw-r--r-- 15,452 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
From ef4424f5e23e63bd1e138ba14787cd1b95bd0df5 Mon Sep 17 00:00:00 2001
From: Thomas Goyne <plorkyeran@aegisub.org>
Date: Wed, 31 Dec 2014 19:41:56 -0800
Subject: [PATCH] Eliminate implicit std::string <-> wxString conversions

On Windows these don't use UTF-8 and so are broken.
---
 src/aegisublocale.cpp        | 5 +++--
 src/auto4_lua_dialog.cpp     | 4 ++--
 src/command/app.cpp          | 6 +++---
 src/command/audio.cpp        | 5 +++--
 src/command/keyframe.cpp     | 5 ++++-
 src/command/timecode.cpp     | 4 ++--
 src/command/video.cpp        | 4 ++--
 src/dialog_attachments.cpp   | 2 +-
 src/dialog_automation.cpp    | 2 +-
 src/dialog_export.cpp        | 2 +-
 src/dialog_properties.cpp    | 2 +-
 src/dialog_style_manager.cpp | 2 +-
 src/ffmpegsource_common.cpp  | 2 +-
 src/main.cpp                 | 2 +-
 src/utils.cpp                | 8 ++++----
 src/utils.h                  | 4 ++--
 src/validators.cpp           | 4 ++--
 17 files changed, 34 insertions(+), 29 deletions(-)

diff --git a/src/aegisublocale.cpp b/src/aegisublocale.cpp
index 3717edba2..de8df7296 100644
--- a/src/aegisublocale.cpp
+++ b/src/aegisublocale.cpp
@@ -112,8 +112,9 @@ std::string AegisubLocale::PickLanguage() {
 			style);
 	if (dialog.ShowModal() == wxID_OK) {
 		int picked = dialog.GetSelection();
-		if (langs[picked] != active_language)
-			return from_wx(langs[picked]);
+		auto new_lang = from_wx(langs[picked]);
+		if (new_lang != active_language)
+			return new_lang;
 	}
 
 	return "";
diff --git a/src/auto4_lua_dialog.cpp b/src/auto4_lua_dialog.cpp
index 5dc5cfb76..a8c7fe418 100644
--- a/src/auto4_lua_dialog.cpp
+++ b/src/auto4_lua_dialog.cpp
@@ -461,8 +461,8 @@ namespace Automation4 {
 		auto dialog = static_cast<wxDialog *>(parent);
 		auto bs = new wxStdDialogButtonSizer;
 
-		auto make_button = [&](wxWindowID id, int button_pushed, wxString const& text) -> wxButton *{
-			auto button = new wxButton(window, id, text);
+		auto make_button = [&](wxWindowID id, int button_pushed, std::string const& text) -> wxButton *{
+			auto button = new wxButton(window, id, to_wx(text));
 			button->Bind(wxEVT_BUTTON, [=](wxCommandEvent &evt) {
 				this->button_pushed = button_pushed;
 				dialog->TransferDataFromWindow();
diff --git a/src/command/app.cpp b/src/command/app.cpp
index 61467f610..cdd797495 100644
--- a/src/command/app.cpp
+++ b/src/command/app.cpp
@@ -159,10 +159,10 @@ struct app_language final : public Command {
 
 	void operator()(agi::Context *c) override {
 		// Get language
-		wxString new_language = wxGetApp().locale.PickLanguage();
-		if (!new_language) return;
+		auto new_language = wxGetApp().locale.PickLanguage();
+		if (new_language.empty()) return;
 
-		OPT_SET("App/Language")->SetString(from_wx(new_language));
+		OPT_SET("App/Language")->SetString(new_language);
 
 		// Ask to restart program
 		int result = wxMessageBox("Aegisub needs to be restarted so that the new language can be applied. Restart now?", "Restart Aegisub?", wxYES_NO | wxICON_QUESTION |  wxCENTER);
diff --git a/src/command/audio.cpp b/src/command/audio.cpp
index b03a24599..a6f700bac 100644
--- a/src/command/audio.cpp
+++ b/src/command/audio.cpp
@@ -37,6 +37,7 @@
 #include "../audio_controller.h"
 #include "../audio_karaoke.h"
 #include "../audio_timing.h"
+#include "../compat.h"
 #include "../include/aegisub/context.h"
 #include "../libresrc/libresrc.h"
 #include "../options.h"
@@ -79,9 +80,9 @@ struct audio_open final : public Command {
 	STR_HELP("Open an audio file")
 
 	void operator()(agi::Context *c) override {
-		wxString str = _("Audio Formats") + " (*.aac,*.ac3,*.ape,*.dts,*.flac,*.m4a,*.mka,*.mp3,*.mp4,*.ogg,*.w64,*.wav,*.wma)|*.aac;*.ac3;*.ape;*.dts;*.flac;*.m4a;*.mka;*.mp3;*.mp4;*.ogg;*.w64;*.wav;*.wma|"
+		auto str = from_wx(_("Audio Formats") + " (*.aac,*.ac3,*.ape,*.dts,*.flac,*.m4a,*.mka,*.mp3,*.mp4,*.ogg,*.w64,*.wav,*.wma)|*.aac;*.ac3;*.ape;*.dts;*.flac;*.m4a;*.mka;*.mp3;*.mp4;*.ogg;*.w64;*.wav;*.wma|"
 					+ _("Video Formats") + " (*.asf,*.avi,*.avs,*.d2v,*.m2ts,*.m4v,*.mkv,*.mov,*.mp4,*.mpeg,*.mpg,*.ogm,*.webm,*.wmv,*.ts)|*.asf;*.avi;*.avs;*.d2v;*.m2ts;*.m4v;*.mkv;*.mov;*.mp4;*.mpeg;*.mpg;*.ogm;*.webm;*.wmv;*.ts|"
-					+ _("All Files") + " (*.*)|*.*";
+					+ _("All Files") + " (*.*)|*.*");
 		auto filename = OpenFileSelector(_("Open Audio File"), "Path/Last/Audio", "", "", str, c->parent);
 		if (!filename.empty())
 			c->project->LoadAudio(filename);
diff --git a/src/command/keyframe.cpp b/src/command/keyframe.cpp
index c1c16f6a1..29e173970 100644
--- a/src/command/keyframe.cpp
+++ b/src/command/keyframe.cpp
@@ -31,6 +31,7 @@
 
 #include "command.h"
 
+#include "../compat.h"
 #include "../include/aegisub/context.h"
 #include "../libresrc/libresrc.h"
 #include "../options.h"
@@ -71,7 +72,9 @@ struct keyframe_open final : public Command {
 		auto filename = OpenFileSelector(
 			_("Open keyframes file"),
 			"Path/Last/Keyframes", "" ,".txt",
-			_("All Supported Formats") + " (*.txt, *.pass, *.stats, *.log)|*.txt;*.pass;*.stats;*.log|" + _("All Files") + " (*.*)|*.*",
+			from_wx(_("All Supported Formats") +
+				" (*.txt, *.pass, *.stats, *.log)|*.txt;*.pass;*.stats;*.log|" +
+				_("All Files") + " (*.*)|*.*"),
 			c->parent);
 
 		if (!filename.empty())
diff --git a/src/command/timecode.cpp b/src/command/timecode.cpp
index 1a8bcfef1..6f7fb5faa 100644
--- a/src/command/timecode.cpp
+++ b/src/command/timecode.cpp
@@ -71,7 +71,7 @@ struct timecode_open final : public Command {
 	STR_HELP("Open a VFR timecodes v1 or v2 file")
 
 	void operator()(agi::Context *c) override {
-		auto str = _("All Supported Formats") + " (*.txt)|*.txt|" + _("All Files") + " (*.*)|*.*";
+		auto str = from_wx(_("All Supported Formats") + " (*.txt)|*.txt|" + _("All Files") + " (*.*)|*.*");
 		auto filename = OpenFileSelector(_("Open Timecodes File"), "Path/Last/Timecodes", "", "", str, c->parent);
 		if (!filename.empty())
 			c->project->LoadTimecodes(filename);
@@ -91,7 +91,7 @@ struct timecode_save final : public Command {
 	}
 
 	void operator()(agi::Context *c) override {
-		auto str = _("All Supported Formats") + " (*.txt)|*.txt|" + _("All Files") + " (*.*)|*.*";
+		auto str = from_wx(_("All Supported Formats") + " (*.txt)|*.txt|" + _("All Files") + " (*.*)|*.*");
 		auto filename = SaveFileSelector(_("Save Timecodes File"), "Path/Last/Timecodes", "", "", str, c->parent);
 		if (filename.empty()) return;
 
diff --git a/src/command/video.cpp b/src/command/video.cpp
index a7600176d..ea1a8a026 100644
--- a/src/command/video.cpp
+++ b/src/command/video.cpp
@@ -564,8 +564,8 @@ struct video_open final : public Command {
 	STR_HELP("Open a video file")
 
 	void operator()(agi::Context *c) override {
-		auto str = _("Video Formats") + " (*.asf,*.avi,*.avs,*.d2v,*.m2ts,*.m4v,*.mkv,*.mov,*.mp4,*.mpeg,*.mpg,*.ogm,*.webm,*.wmv,*.ts,*.y4m,*.yuv)|*.asf;*.avi;*.avs;*.d2v;*.m2ts;*.m4v;*.mkv;*.mov;*.mp4;*.mpeg;*.mpg;*.ogm;*.webm;*.wmv;*.ts;*.y4m;*.yuv|"
-		         + _("All Files") + " (*.*)|*.*";
+		auto str = from_wx(_("Video Formats") + " (*.asf,*.avi,*.avs,*.d2v,*.m2ts,*.m4v,*.mkv,*.mov,*.mp4,*.mpeg,*.mpg,*.ogm,*.webm,*.wmv,*.ts,*.y4m,*.yuv)|*.asf;*.avi;*.avs;*.d2v;*.m2ts;*.m4v;*.mkv;*.mov;*.mp4;*.mpeg;*.mpg;*.ogm;*.webm;*.wmv;*.ts;*.y4m;*.yuv|"
+		         + _("All Files") + " (*.*)|*.*");
 		auto filename = OpenFileSelector(_("Open video file"), "Path/Last/Video", "", "", str, c->parent);
 		if (!filename.empty())
 			c->project->LoadVideo(filename);
diff --git a/src/dialog_attachments.cpp b/src/dialog_attachments.cpp
index 706b202d2..38ff53027 100644
--- a/src/dialog_attachments.cpp
+++ b/src/dialog_attachments.cpp
@@ -126,7 +126,7 @@ void DialogAttachments::AttachFile(wxFileDialog &diag, wxString const& commit_ms
 	diag.GetPaths(paths);
 
 	for (auto const& fn : paths)
-		ass->InsertAttachment(agi::fs::path(fn));
+		ass->InsertAttachment(agi::fs::path(fn.wx_str()));
 
 	ass->Commit(commit_msg, AssFile::COMMIT_ATTACHMENT);
 
diff --git a/src/dialog_automation.cpp b/src/dialog_automation.cpp
index 840a6868c..dd6b35259 100644
--- a/src/dialog_automation.cpp
+++ b/src/dialog_automation.cpp
@@ -231,7 +231,7 @@ void DialogAutomation::OnAdd(wxCommandEvent &)
 	diag.GetPaths(fnames);
 
 	for (auto const& fname : fnames) {
-		agi::fs::path fnpath(fname);
+		agi::fs::path fnpath(fname.wx_str());
 		OPT_SET("Path/Last/Automation")->SetString(fnpath.parent_path().string());
 
 		if (has_file(local_manager->GetScripts(), fnpath) || has_file(global_manager->GetScripts(), fnpath)) {
diff --git a/src/dialog_export.cpp b/src/dialog_export.cpp
index 79f649170..b0d543b10 100644
--- a/src/dialog_export.cpp
+++ b/src/dialog_export.cpp
@@ -186,7 +186,7 @@ DialogExport::~DialogExport() {
 void DialogExport::OnProcess(wxCommandEvent &) {
 	if (!d.TransferDataFromWindow()) return;
 
-	auto filename = SaveFileSelector(_("Export subtitles file"), "", "", "", to_wx(SubtitleFormat::GetWildcards(1)), &d);
+	auto filename = SaveFileSelector(_("Export subtitles file"), "", "", "", SubtitleFormat::GetWildcards(1), &d);
 	if (filename.empty()) return;
 
 	for (size_t i = 0; i < filter_list->GetCount(); ++i) {
diff --git a/src/dialog_properties.cpp b/src/dialog_properties.cpp
index 7c0399402..501a96f19 100644
--- a/src/dialog_properties.cpp
+++ b/src/dialog_properties.cpp
@@ -123,7 +123,7 @@ DialogProperties::DialogProperties(agi::Context *c)
 	res_sizer->Add(ResY, 1, wxRIGHT | wxALIGN_CENTER_VERTICAL, 5);
 	res_sizer->Add(FromVideo, 1, 0, 0);
 
-	YCbCrMatrix = new wxComboBox(&d, -1, c->ass->GetScriptInfo("YCbCr Matrix"),
+	YCbCrMatrix = new wxComboBox(&d, -1, to_wx(c->ass->GetScriptInfo("YCbCr Matrix")),
 		 wxDefaultPosition, wxDefaultSize, to_wx(MatrixNames()), wxCB_READONLY);
 
 	auto matrix_sizer = new wxBoxSizer(wxHORIZONTAL);
diff --git a/src/dialog_style_manager.cpp b/src/dialog_style_manager.cpp
index 4a60ac086..5e63537a8 100644
--- a/src/dialog_style_manager.cpp
+++ b/src/dialog_style_manager.cpp
@@ -430,7 +430,7 @@ void DialogStyleManager::LoadCatalog() {
 	// Get saved style catalogs
 	auto catalogs = AssStyleStorage::GetCatalogs();
 	for (auto const& c : catalogs)
-		CatalogList->Append(c);
+		CatalogList->Append(to_wx(c));
 
 	// Create a default storage if there are none
 	if (CatalogList->IsListEmpty()) {
diff --git a/src/ffmpegsource_common.cpp b/src/ffmpegsource_common.cpp
index 3549a8df4..5ebb073a2 100644
--- a/src/ffmpegsource_common.cpp
+++ b/src/ffmpegsource_common.cpp
@@ -138,7 +138,7 @@ int FFmpegSourceProvider::AskForTrackSelection(const std::map<int, std::string>
 	wxArrayString Choices;
 
 	for (auto const& track : TrackList) {
-		Choices.Add(agi::format(_("Track %02d: %s"), track.first, to_wx(track.second)));
+		Choices.Add(agi::wxformat(_("Track %02d: %s"), track.first, track.second));
 		TrackNumbers.push_back(track.first);
 	}
 
diff --git a/src/main.cpp b/src/main.cpp
index 327b13021..ae17e5711 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -446,5 +446,5 @@ int AegisubApp::OnRun() {
 
 void AegisubApp::MacOpenFile(const wxString &filename) {
 	if (frame && !filename.empty())
-		frame->context->project->LoadSubtitles(agi::fs::path(filename));
+		frame->context->project->LoadSubtitles(agi::fs::path(filename.wx_str()));
 }
diff --git a/src/utils.cpp b/src/utils.cpp
index 3e90caa5b..e5ffe9e75 100644
--- a/src/utils.cpp
+++ b/src/utils.cpp
@@ -250,21 +250,21 @@ wxString FontFace(std::string opt_prefix) {
 	return to_wx(value);
 }
 
-static agi::fs::path FileSelector(wxString const& message, std::string const& option_name, std::string const& default_filename, std::string const& default_extension, wxString const& wildcard, int flags, wxWindow *parent) {
+static agi::fs::path FileSelector(wxString const& message, std::string const& option_name, std::string const& default_filename, std::string const& default_extension, std::string const& wildcard, int flags, wxWindow *parent) {
 	wxString path;
 	if (!option_name.empty())
 		path = to_wx(OPT_GET(option_name)->GetString());
-	agi::fs::path filename = wxFileSelector(message, path, to_wx(default_filename), to_wx(default_extension), wildcard, flags, parent).wx_str();
+	agi::fs::path filename = wxFileSelector(message, path, to_wx(default_filename), to_wx(default_extension), to_wx(wildcard), flags, parent).wx_str();
 	if (!filename.empty() && !option_name.empty())
 		OPT_SET(option_name)->SetString(filename.parent_path().string());
 	return filename;
 }
 
-agi::fs::path OpenFileSelector(wxString const& message, std::string const& option_name, std::string const& default_filename, std::string const& default_extension, wxString const& wildcard, wxWindow *parent) {
+agi::fs::path OpenFileSelector(wxString const& message, std::string const& option_name, std::string const& default_filename, std::string const& default_extension, std::string const& wildcard, wxWindow *parent) {
 	return FileSelector(message, option_name, default_filename, default_extension, wildcard, wxFD_OPEN | wxFD_FILE_MUST_EXIST, parent);
 }
 
-agi::fs::path SaveFileSelector(wxString const& message, std::string const& option_name, std::string const& default_filename, std::string const& default_extension, wxString const& wildcard, wxWindow *parent) {
+agi::fs::path SaveFileSelector(wxString const& message, std::string const& option_name, std::string const& default_filename, std::string const& default_extension, std::string const& wildcard, wxWindow *parent) {
 	return FileSelector(message, option_name, default_filename, default_extension, wildcard, wxFD_SAVE | wxFD_OVERWRITE_PROMPT, parent);
 }
 
diff --git a/src/utils.h b/src/utils.h
index f09687ae9..5d9ebe0e2 100644
--- a/src/utils.h
+++ b/src/utils.h
@@ -94,8 +94,8 @@ void SetClipboard(wxBitmap const& new_value);
 
 wxString FontFace(std::string opt_prefix);
 
-agi::fs::path OpenFileSelector(wxString const& message, std::string const& option_name, std::string const& default_filename, std::string const& default_extension, wxString const& wildcard, wxWindow *parent);
-agi::fs::path SaveFileSelector(wxString const& message, std::string const& option_name, std::string const& default_filename, std::string const& default_extension, wxString const& wildcard, wxWindow *parent);
+agi::fs::path OpenFileSelector(wxString const& message, std::string const& option_name, std::string const& default_filename, std::string const& default_extension, std::string const& wildcard, wxWindow *parent);
+agi::fs::path SaveFileSelector(wxString const& message, std::string const& option_name, std::string const& default_filename, std::string const& default_extension, std::string const& wildcard, wxWindow *parent);
 
 wxString LocalizedLanguageName(wxString const& lang);
 
diff --git a/src/validators.cpp b/src/validators.cpp
index 20b4c596b..163edaa1f 100644
--- a/src/validators.cpp
+++ b/src/validators.cpp
@@ -69,7 +69,7 @@ void IntValidator::OnChar(wxKeyEvent& event) {
 	auto ctrl = static_cast<wxTextCtrl *>(GetWindow());
 	auto str = new_value(ctrl, chr);
 	int parsed;
-	if (allow_negative && str == '-')
+	if (allow_negative && str == "-")
 		event.Skip();
 	else if (agi::util::try_parse(str, &parsed) && (allow_negative || parsed >= 0))
 		event.Skip();
@@ -121,7 +121,7 @@ void DoubleValidator::OnChar(wxKeyEvent& event) {
 
 	double parsed;
 	bool can_parse = agi::util::try_parse(str, &parsed);
-	if ((min < 0 && str == '-') || str == '.')
+	if ((min < 0 && str == "-") || str == ".")
 		event.Skip();
 	else if (can_parse && parsed >= min && parsed <= max)
 		event.Skip();