mirror of
https://github.com/cookiengineer/audacity
synced 2025-05-02 00:29:41 +02:00
60 lines
1.2 KiB
C++
60 lines
1.2 KiB
C++
//
|
|
// FileException.cpp
|
|
//
|
|
//
|
|
// Created by Paul Licameli on 11/22/16.
|
|
//
|
|
//
|
|
|
|
#include "Audacity.h"
|
|
#include "FileException.h"
|
|
|
|
#include "Prefs.h"
|
|
|
|
FileException::~FileException()
|
|
{
|
|
}
|
|
|
|
TranslatableString FileException::ErrorMessage() const
|
|
{
|
|
TranslatableString format;
|
|
switch (cause) {
|
|
case Cause::Open:
|
|
format = XO("Audacity failed to open a file in %s.");
|
|
break;
|
|
case Cause::Read:
|
|
format = XO("Audacity failed to read from a file in %s.");
|
|
break;
|
|
case Cause::Write:
|
|
format =
|
|
XO("Audacity failed to write to a file.\n"
|
|
"Perhaps %s is not writable or the disk is full.");
|
|
break;
|
|
case Cause::Rename:
|
|
format =
|
|
XO("Audacity successfully wrote a file in %s but failed to rename it as %s.");
|
|
default:
|
|
break;
|
|
}
|
|
wxString target;
|
|
|
|
#ifdef __WXMSW__
|
|
|
|
// Drive letter plus colon
|
|
target = fileName.GetVolume() + wxT(":");
|
|
|
|
#else
|
|
|
|
// Shorten the path, arbitrarily to 3 components
|
|
auto path = fileName;
|
|
path.SetFullName(wxString{});
|
|
while(path.GetDirCount() > 3)
|
|
path.RemoveLastDir();
|
|
target = path.GetFullPath();
|
|
|
|
#endif
|
|
|
|
return format.Format( target, renameTarget.GetFullName() );
|
|
}
|
|
|