audacia/src/prefs
Paul Licameli 3bb04245c5 Strong exception safety in all uses of XMLFileWriter...
... Strong, meaning that the file at the specified path is created or modified
only if all write operations complete without exceptions, barring one very
unlikely possibility that a final file rename fails, but even in that case the
output is successfully written to some path.

This commit does not add throws, but changes the type thrown to a subclass of
AudacityException, so that GuardedCall will cause the user to see an error
dialog in all cases.

Duplicated logic for making temporary files and backups is now all in one
place, the class XMLWriter.

There may be more new GuardedCalls than necessary -- the catch-all for the
event loop, AudacityApp::OnExceptionInMainLoop, might be trusted instead in
some cases --  but they are sufficient.
2017-03-18 11:45:33 -04:00
..
BatchPrefs.cpp Compensate for wxW 3 tab navigation deficiencies on Mac... 2016-06-25 19:14:05 -04:00
BatchPrefs.h Remove unnecessary semicolons 2016-09-18 10:36:53 -04:00
DevicePrefs.cpp Flag PortAudio and PortMixer unhandled error returns. 2016-07-10 21:40:49 +01:00
DevicePrefs.h Remove unnecessary semicolons 2016-09-18 10:36:53 -04:00
DirectoriesPrefs.cpp Bug 1220: Residuals. 2016-07-06 16:01:23 +01:00
DirectoriesPrefs.h Remove unnecessary semicolons 2016-09-18 10:36:53 -04:00
EffectsPrefs.cpp Fewer inclusions of AudacityApp.h 2017-03-17 17:52:24 -04:00
EffectsPrefs.h Replace virtual with override wherever possible; eliminate needless virtual... 2016-02-26 12:35:38 -05:00
ExtImportPrefs.cpp Fewer inclusions of AudacityApp.h 2017-03-17 17:52:24 -04:00
ExtImportPrefs.h Use const 2016-08-11 11:51:33 -04:00
GUIPrefs.cpp More uses of safenew for classes we derive from wxWindow classes... 2016-02-14 20:39:28 -05:00
GUIPrefs.h Replace virtual with override wherever possible; eliminate needless virtual... 2016-02-26 12:35:38 -05:00
GUISettings.h Move ENV_DB_RANGE out of Envelope.h; that file can be included in fewer places. 2015-07-28 11:55:52 -04:00
ImportExportPrefs.cpp More uses of safenew for classes we derive from wxWindow classes... 2016-02-14 20:39:28 -05:00
ImportExportPrefs.h Replace virtual with override wherever possible; eliminate needless virtual... 2016-02-26 12:35:38 -05:00
KeyConfigPrefs.cpp Strong exception safety in all uses of XMLFileWriter... 2017-03-18 11:45:33 -04:00
KeyConfigPrefs.h Remove unnecessary semicolons 2016-09-18 10:36:53 -04:00
LibraryPrefs.cpp Remove some naked new amd delete in: FFmpeg 2016-08-08 07:51:24 -04:00
LibraryPrefs.h Remove unnecessary semicolons 2016-09-18 10:36:53 -04:00
MidiIOPrefs.cpp Make EXPERIMENTAL_MIDI_OUT compilable, but it doesn't link 2016-04-09 15:10:05 -04:00
MidiIOPrefs.h Remove unnecessary semicolons 2016-09-18 10:36:53 -04:00
ModulePrefs.cpp Sweep unnecessary wxString copies: prefs 2016-02-22 21:30:42 -05:00
ModulePrefs.h Replace virtual with override wherever possible; eliminate needless virtual... 2016-02-26 12:35:38 -05:00
MousePrefs.cpp Shorter Time Shift wording, clarify (dB) range 2016-10-22 20:09:46 +01:00
MousePrefs.h Replace virtual with override wherever possible; eliminate needless virtual... 2016-02-26 12:35:38 -05:00
PlaybackPrefs.cpp Bug 1467 - New pref for pinned head should move to the Prefs>Tracks 2016-08-10 18:38:37 +01:00
PlaybackPrefs.h Bug 1467 - New pref for pinned head should move to the Prefs>Tracks 2016-08-10 18:38:37 +01:00
PrefsDialog.cpp Remove the naked new in allocation of AudacityProject 2016-08-14 15:24:59 -04:00
PrefsDialog.h Fix TAB key navigation on Mac for all dialogs (not only for panels) 2016-07-10 17:12:27 -04:00
PrefsPanel.h Compensate for wxW 3 tab navigation deficiencies on Mac... 2016-06-25 19:14:05 -04:00
ProjectsPrefs.cpp More uses of safenew for classes we derive from wxWindow classes... 2016-02-14 20:39:28 -05:00
ProjectsPrefs.h Replace virtual with override wherever possible; eliminate needless virtual... 2016-02-26 12:35:38 -05:00
QualityPrefs.cpp More uses of safenew for classes we derive from wxWindow classes... 2016-02-14 20:39:28 -05:00
QualityPrefs.h Remove unnecessary semicolons 2016-09-18 10:36:53 -04:00
RecordingPrefs.cpp Fix issues reported on Wording page 2016-10-14 16:36:41 +01:00
RecordingPrefs.h Remove unnecessary semicolons 2016-09-18 10:36:53 -04:00
SpectrogramSettings.cpp Redo type HFFT as a smart pointer, remove malloc and free 2017-03-17 17:52:51 -04:00
SpectrogramSettings.h Redo type HFFT as a smart pointer, remove malloc and free 2017-03-17 17:52:51 -04:00
SpectrumPrefs.cpp Make EXPERIMENTAL_FIND_NOTES work again 2017-03-17 17:52:16 -04:00
SpectrumPrefs.h pixel column counts and sample window sizes use unsigned types 2016-09-11 20:28:13 -04:00
ThemePrefs.cpp More uses of safenew for classes we derive from wxWindow classes... 2016-02-14 20:39:28 -05:00
ThemePrefs.h Remove unnecessary semicolons 2016-09-18 10:36:53 -04:00
TracksPrefs.cpp region > audio 2016-11-18 22:58:37 +00:00
TracksPrefs.h Add code from merging. 2016-09-10 21:34:14 +01:00
WarningsPrefs.cpp Add access key for new warning 2016-04-16 02:15:57 +01:00
WarningsPrefs.h Replace virtual with override wherever possible; eliminate needless virtual... 2016-02-26 12:35:38 -05:00
WaveformPrefs.cpp Make EXPERIMENTAL_FIND_NOTES work again 2017-03-17 17:52:16 -04:00
WaveformPrefs.h Replace virtual with override wherever possible; eliminate needless virtual... 2016-02-26 12:35:38 -05:00
WaveformSettings.cpp Regularize casts as (int), so they are easier to find and review 2016-09-20 08:42:11 -04:00
WaveformSettings.h Define and use TranslatableStringArray. This lets you define "listeners"... 2015-08-17 12:04:21 -04:00