1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-06-22 07:10:06 +02:00
audacity/src/FileException.cpp

54 lines
1.2 KiB
C++

//
// FileException.cpp
//
//
// Created by Paul Licameli on 11/22/16.
//
//
#include "Audacity.h"
#include "FileException.h"
FileException::~FileException()
{
}
std::unique_ptr< AudacityException > FileException::Move()
{
return std::unique_ptr< AudacityException >
{ safenew FileException{ std::move( *this ) } };
}
wxString FileException::ErrorMessage() const
{
wxString format;
switch (cause) {
case Cause::Open:
format = _("Audacity failed to open a file in %s.");
break;
case Cause::Read:
format = _("Audacity failed to read from a file in %s.");
break;
case Cause::Write:
format = _("Audacity failed to write to a file in %s.");
break;
case Cause::Rename:
format =
_("Audacity successfully wrote a file in %s but failed to rename it as %s.");
default:
break;
}
wxString target = fileName.GetVolume();
if (target.empty()) {
// Shorten the path, arbitrarily to 3 components
auto path = fileName;
path.SetFullName(wxString{});
while(path.GetDirCount() > 3)
path.RemoveLastDir();
target = path.GetFullPath();
}
return wxString::Format(
format, target, renameTarget.GetFullName() );
}