mirror of
https://github.com/cookiengineer/audacity
synced 2025-06-15 15:49:36 +02:00
Help button for many warning messages; Restored warning icon.
The error icon was gone because we are now using the ErrorDialog, which didn't have it. So added back explicitly. I decided to go with wxART_WARNING rather than wxART_ERROR because nearly all of these present as warnings.
This commit is contained in:
parent
b9212d8393
commit
caf4eadb97
@ -73,7 +73,7 @@ void MessageBoxException::DelayedHandlerAction()
|
|||||||
// give the user no useful added information.
|
// give the user no useful added information.
|
||||||
|
|
||||||
if ( wxAtomicDec( sOutstandingMessages ) == 0 )
|
if ( wxAtomicDec( sOutstandingMessages ) == 0 )
|
||||||
if (helpUrl.IsEmpty())
|
if (ErrorHelpUrl().IsEmpty())
|
||||||
{
|
{
|
||||||
::AudacityMessageBox(
|
::AudacityMessageBox(
|
||||||
ErrorMessage(),
|
ErrorMessage(),
|
||||||
@ -87,7 +87,7 @@ void MessageBoxException::DelayedHandlerAction()
|
|||||||
nullptr,
|
nullptr,
|
||||||
(caption.empty() ? AudacityMessageBoxCaptionStr() : caption),
|
(caption.empty() ? AudacityMessageBoxCaptionStr() : caption),
|
||||||
ErrorMessage(),
|
ErrorMessage(),
|
||||||
helpUrl);
|
ErrorHelpUrl());
|
||||||
}
|
}
|
||||||
|
|
||||||
moved = true;
|
moved = true;
|
||||||
|
@ -64,6 +64,7 @@ protected:
|
|||||||
|
|
||||||
//! %Format the error message for this exception.
|
//! %Format the error message for this exception.
|
||||||
virtual TranslatableString ErrorMessage() const = 0;
|
virtual TranslatableString ErrorMessage() const = 0;
|
||||||
|
virtual wxString ErrorHelpUrl() const { return helpUrl; };
|
||||||
|
|
||||||
private:
|
private:
|
||||||
TranslatableString caption; //!< Stored caption
|
TranslatableString caption; //!< Stored caption
|
||||||
|
@ -320,7 +320,7 @@ void DBConnection::CheckpointThread()
|
|||||||
// Reset
|
// Reset
|
||||||
mCheckpointActive = false;
|
mCheckpointActive = false;
|
||||||
|
|
||||||
if ( rc != SQLITE_OK ) {
|
if ( rc == SQLITE_OK ) {
|
||||||
// Can't checkpoint -- maybe the device has too little space
|
// Can't checkpoint -- maybe the device has too little space
|
||||||
wxFileNameWrapper fName{ name };
|
wxFileNameWrapper fName{ name };
|
||||||
auto path = FileException::AbbreviatePath( fName );
|
auto path = FileException::AbbreviatePath( fName );
|
||||||
@ -436,7 +436,11 @@ TransactionScope::TransactionScope(
|
|||||||
mInTrans = TransactionStart(mName);
|
mInTrans = TransactionStart(mName);
|
||||||
if ( !mInTrans )
|
if ( !mInTrans )
|
||||||
// To do, improve the message
|
// To do, improve the message
|
||||||
throw SimpleMessageBoxException( XO("Database error") );
|
throw SimpleMessageBoxException(
|
||||||
|
XO("Database error. Sorry, but we don't have more details."),
|
||||||
|
XO("Warning"),
|
||||||
|
"Error:_Disk_full_or_not_writable"
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
TransactionScope::~TransactionScope()
|
TransactionScope::~TransactionScope()
|
||||||
|
@ -42,6 +42,24 @@ XO("Audacity successfully wrote a file in %s but failed to rename it as %s.");
|
|||||||
AbbreviatePath(fileName), renameTarget.GetFullName() );
|
AbbreviatePath(fileName), renameTarget.GetFullName() );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
wxString FileException::ErrorHelpUrl() const
|
||||||
|
{
|
||||||
|
switch (cause) {
|
||||||
|
case Cause::Open:
|
||||||
|
case Cause::Read:
|
||||||
|
return "Error:_Opening_or_reading_file";
|
||||||
|
break;
|
||||||
|
case Cause::Write:
|
||||||
|
case Cause::Rename:
|
||||||
|
return "Error:_Disk_full_or_not_writable";
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
wxString FileException::AbbreviatePath( const wxFileName &fileName )
|
wxString FileException::AbbreviatePath( const wxFileName &fileName )
|
||||||
{
|
{
|
||||||
wxString target;
|
wxString target;
|
||||||
|
@ -51,6 +51,7 @@ public:
|
|||||||
protected:
|
protected:
|
||||||
//! %Format an error message appropriate for the @ref Cause.
|
//! %Format an error message appropriate for the @ref Cause.
|
||||||
TranslatableString ErrorMessage() const override;
|
TranslatableString ErrorMessage() const override;
|
||||||
|
wxString ErrorHelpUrl() const override;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
Cause cause;
|
Cause cause;
|
||||||
|
@ -265,7 +265,9 @@ DBConnection &ProjectFileIO::GetConnection()
|
|||||||
{
|
{
|
||||||
throw SimpleMessageBoxException
|
throw SimpleMessageBoxException
|
||||||
{
|
{
|
||||||
XO("Failed to open the project's database")
|
XO("Failed to open the project's database"),
|
||||||
|
XO("Warning"),
|
||||||
|
"Error:_Disk_full_or_not_writable"
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -80,7 +80,10 @@ namespace {
|
|||||||
{
|
{
|
||||||
if ( !projectFileIO.AutoSave() )
|
if ( !projectFileIO.AutoSave() )
|
||||||
throw SimpleMessageBoxException{
|
throw SimpleMessageBoxException{
|
||||||
XO("Automatic database backup failed.") };
|
XO("Automatic database backup failed."),
|
||||||
|
XO("Warining"),
|
||||||
|
"Error:_Disk_full_or_not_writable"
|
||||||
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -845,7 +845,8 @@ void ShuttleGuiBase::AddIcon(wxBitmap *pBmp)
|
|||||||
wxBitmapButton * pBtn;
|
wxBitmapButton * pBtn;
|
||||||
mpWind = pBtn = safenew wxBitmapButton(GetParent(), miId, *pBmp,
|
mpWind = pBtn = safenew wxBitmapButton(GetParent(), miId, *pBmp,
|
||||||
wxDefaultPosition, wxDefaultSize, GetStyle( wxBU_AUTODRAW ) );
|
wxDefaultPosition, wxDefaultSize, GetStyle( wxBU_AUTODRAW ) );
|
||||||
pBtn->SetWindowStyle( 0 );
|
pBtn->SetWindowStyle( wxBORDER_NONE );
|
||||||
|
pBtn->SetCanFocus(false);
|
||||||
UpdateSizersC();
|
UpdateSizersC();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -332,7 +332,9 @@ DBConnection *SqliteSampleBlock::Conn() const
|
|||||||
if (!pConnection) {
|
if (!pConnection) {
|
||||||
throw SimpleMessageBoxException
|
throw SimpleMessageBoxException
|
||||||
{
|
{
|
||||||
XO("Failed to open the project's database")
|
XO("Failed to open the project's database"),
|
||||||
|
XO("Warning"),
|
||||||
|
"Error:_Disk_full_or_not_writable"
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
return pConnection.get();
|
return pConnection.get();
|
||||||
|
@ -1754,7 +1754,9 @@ void WaveClip::Resample(int rate, ProgressDialog *progress)
|
|||||||
|
|
||||||
if (error)
|
if (error)
|
||||||
throw SimpleMessageBoxException{
|
throw SimpleMessageBoxException{
|
||||||
XO("Resampling failed.")
|
XO("Resampling failed."),
|
||||||
|
XO("Warning"),
|
||||||
|
"Error:_Resampling"
|
||||||
};
|
};
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -1256,7 +1256,9 @@ void WaveTrack::Paste(double t0, const Track *src)
|
|||||||
// Strong-guarantee in case of this path
|
// Strong-guarantee in case of this path
|
||||||
// not that it matters.
|
// not that it matters.
|
||||||
throw SimpleMessageBoxException{
|
throw SimpleMessageBoxException{
|
||||||
XO("There is not enough room available to paste the selection")
|
XO("There is not enough room available to paste the selection"),
|
||||||
|
XO("Warning"),
|
||||||
|
"Error:_Insufficient_space_in_track"
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1276,7 +1278,9 @@ void WaveTrack::Paste(double t0, const Track *src)
|
|||||||
// Strong-guarantee in case of this path
|
// Strong-guarantee in case of this path
|
||||||
// not that it matters.
|
// not that it matters.
|
||||||
throw SimpleMessageBoxException{
|
throw SimpleMessageBoxException{
|
||||||
XO("There is not enough room available to paste the selection")
|
XO("There is not enough room available to paste the selection"),
|
||||||
|
XO("Warning"),
|
||||||
|
"Error:_Insufficient_space_in_track"
|
||||||
};
|
};
|
||||||
|
|
||||||
for (const auto &clip : other->mClips)
|
for (const auto &clip : other->mClips)
|
||||||
@ -2385,7 +2389,9 @@ void WaveTrack::ExpandCutLine(double cutLinePosition, double* cutlineStart,
|
|||||||
clip->GetEndTime() + end - start > clip2->GetStartTime())
|
clip->GetEndTime() + end - start > clip2->GetStartTime())
|
||||||
// Strong-guarantee in case of this path
|
// Strong-guarantee in case of this path
|
||||||
throw SimpleMessageBoxException{
|
throw SimpleMessageBoxException{
|
||||||
XO("There is not enough room available to expand the cut line")
|
XO("There is not enough room available to expand the cut line"),
|
||||||
|
XO("Warning"),
|
||||||
|
"Error:_Insufficient_space_in_track"
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -209,7 +209,11 @@ static void Extract(bool bits16,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if( dataSizeIn < 1 )
|
if( dataSizeIn < 1 )
|
||||||
throw SimpleMessageBoxException{XO("Bad data size")};
|
throw SimpleMessageBoxException{
|
||||||
|
XO("Bad data size. Could not import audio"),
|
||||||
|
XO("Warning"),
|
||||||
|
"Error:_Importing_raw_audio"
|
||||||
|
};
|
||||||
|
|
||||||
size_t dataSize = (size_t)dataSizeIn;
|
size_t dataSize = (size_t)dataSizeIn;
|
||||||
|
|
||||||
|
@ -462,7 +462,10 @@ void OnPaste(const CommandContext &context)
|
|||||||
// Throw, so that any previous changes to the project in this loop
|
// Throw, so that any previous changes to the project in this loop
|
||||||
// are discarded.
|
// are discarded.
|
||||||
throw SimpleMessageBoxException{
|
throw SimpleMessageBoxException{
|
||||||
XO("Pasting one type of track into another is not allowed.")
|
XO("Pasting one type of track into another is not allowed.",
|
||||||
|
XO("Warning"),
|
||||||
|
"Error:_Copying_or_Pasting"
|
||||||
|
)
|
||||||
};
|
};
|
||||||
|
|
||||||
// We should need this check only each time we visit the leading
|
// We should need this check only each time we visit the leading
|
||||||
|
@ -28,6 +28,7 @@
|
|||||||
#include <wx/html/htmlwin.h>
|
#include <wx/html/htmlwin.h>
|
||||||
#include <wx/settings.h>
|
#include <wx/settings.h>
|
||||||
#include <wx/statusbr.h>
|
#include <wx/statusbr.h>
|
||||||
|
#include <wx/artprov.h>
|
||||||
|
|
||||||
#include "../AllThemeResources.h"
|
#include "../AllThemeResources.h"
|
||||||
#include "../ShuttleGui.h"
|
#include "../ShuttleGui.h"
|
||||||
@ -60,14 +61,20 @@ ErrorDialog::ErrorDialog(
|
|||||||
|
|
||||||
ShuttleGui S(this, eIsCreating);
|
ShuttleGui S(this, eIsCreating);
|
||||||
|
|
||||||
S.StartVerticalLay();
|
S.StartHorizontalLay();
|
||||||
{
|
{
|
||||||
S.SetBorder( 20 );
|
// wxART_ERROR and wxART_INFORMATION are other possibilities.
|
||||||
S.AddFixedText( message );
|
S.AddIcon( &wxArtProvider::GetBitmap( wxART_WARNING));
|
||||||
S.SetBorder( 2 );
|
S.StartVerticalLay();
|
||||||
S.AddStandardButtons( buttonMask );
|
{
|
||||||
|
S.SetBorder(20);
|
||||||
|
S.AddFixedText(message);
|
||||||
|
S.SetBorder(2);
|
||||||
|
S.AddStandardButtons(buttonMask);
|
||||||
|
}
|
||||||
|
S.EndVerticalLay();
|
||||||
}
|
}
|
||||||
S.EndVerticalLay();
|
S.EndHorizontalLay();
|
||||||
|
|
||||||
Layout();
|
Layout();
|
||||||
GetSizer()->Fit(this);
|
GetSizer()->Fit(this);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user