Store the current filename in the history on close
This commit is contained in:
parent
0e54128146
commit
e662e33104
|
@ -531,8 +531,16 @@ void EDA_BASE_FRAME::SaveSettings( APP_SETTINGS_BASE* aCfg )
|
||||||
|
|
||||||
// Save the recently used files list
|
// Save the recently used files list
|
||||||
if( m_fileHistory )
|
if( m_fileHistory )
|
||||||
|
{
|
||||||
|
// Save the currently opened file in the file history
|
||||||
|
wxString currentlyOpenedFile = GetCurrentFileName();
|
||||||
|
|
||||||
|
if( !currentlyOpenedFile.IsEmpty() )
|
||||||
|
UpdateFileHistory( currentlyOpenedFile );
|
||||||
|
|
||||||
m_fileHistory->Save( *aCfg );
|
m_fileHistory->Save( *aCfg );
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
WINDOW_SETTINGS* EDA_BASE_FRAME::GetWindowSettings( APP_SETTINGS_BASE* aCfg )
|
WINDOW_SETTINGS* EDA_BASE_FRAME::GetWindowSettings( APP_SETTINGS_BASE* aCfg )
|
||||||
|
|
|
@ -1224,3 +1224,14 @@ void SCH_EDIT_FRAME::ConvertTimeStampUuids()
|
||||||
|
|
||||||
timeStampSheetPaths.ReplaceLegacySheetPaths( oldSheetPaths );
|
timeStampSheetPaths.ReplaceLegacySheetPaths( oldSheetPaths );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
wxString SCH_EDIT_FRAME::GetCurrentFileName() const
|
||||||
|
{
|
||||||
|
SCH_SCREEN* screen = g_RootSheet->GetScreen();
|
||||||
|
|
||||||
|
if( screen )
|
||||||
|
return screen->GetFileName();
|
||||||
|
|
||||||
|
return wxEmptyString;
|
||||||
|
}
|
||||||
|
|
|
@ -567,6 +567,8 @@ public:
|
||||||
|
|
||||||
bool OpenProjectFiles( const std::vector<wxString>& aFileSet, int aCtl = 0 ) override;
|
bool OpenProjectFiles( const std::vector<wxString>& aFileSet, int aCtl = 0 ) override;
|
||||||
|
|
||||||
|
wxString GetCurrentFileName() const override;
|
||||||
|
|
||||||
void ParseArgs( wxCmdLineParser& aParser ) override;
|
void ParseArgs( wxCmdLineParser& aParser ) override;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -408,6 +408,14 @@ public:
|
||||||
|
|
||||||
wxString GetMruPath() const { return m_mruPath; }
|
wxString GetMruPath() const { return m_mruPath; }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the full filename + path of the currently opened file in the frame.
|
||||||
|
* If no file is open, an empty string is returned.
|
||||||
|
*
|
||||||
|
* @return the filename and full path to the open file
|
||||||
|
*/
|
||||||
|
virtual wxString GetCurrentFileName() const { return wxEmptyString; }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Recreates the menu bar.
|
* Recreates the menu bar.
|
||||||
*
|
*
|
||||||
|
|
|
@ -215,7 +215,7 @@ void KICAD_MANAGER_FRAME::SetProjectFileName( const wxString& aFullProjectProFil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
const wxString KICAD_MANAGER_FRAME::GetProjectFileName()
|
const wxString KICAD_MANAGER_FRAME::GetProjectFileName() const
|
||||||
{
|
{
|
||||||
return Prj().GetProjectFullName();
|
return Prj().GetProjectFullName();
|
||||||
}
|
}
|
||||||
|
@ -310,10 +310,6 @@ void KICAD_MANAGER_FRAME::OnCloseWindow( wxCloseEvent& Event )
|
||||||
|
|
||||||
if( Kiway().PlayersClose( false ) )
|
if( Kiway().PlayersClose( false ) )
|
||||||
{
|
{
|
||||||
// Save the currently opened file in the file history
|
|
||||||
if( !GetProjectFileName().empty() )
|
|
||||||
UpdateFileHistory( GetProjectFileName() );
|
|
||||||
|
|
||||||
Event.SetCanVeto( true );
|
Event.SetCanVeto( true );
|
||||||
|
|
||||||
m_leftWin->Show( false );
|
m_leftWin->Show( false );
|
||||||
|
|
|
@ -97,6 +97,11 @@ public:
|
||||||
void RecreateBaseHToolbar();
|
void RecreateBaseHToolbar();
|
||||||
void RecreateLauncher();
|
void RecreateLauncher();
|
||||||
|
|
||||||
|
wxString GetCurrentFileName() const override
|
||||||
|
{
|
||||||
|
return GetProjectFileName();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Open dialog to import Eagle schematic and board files.
|
* Open dialog to import Eagle schematic and board files.
|
||||||
*/
|
*/
|
||||||
|
@ -153,7 +158,7 @@ public:
|
||||||
void InstallPreferences( PAGED_DIALOG* aParent, PANEL_HOTKEYS_EDITOR* aHotkeysPanel ) override;
|
void InstallPreferences( PAGED_DIALOG* aParent, PANEL_HOTKEYS_EDITOR* aHotkeysPanel ) override;
|
||||||
|
|
||||||
void SetProjectFileName( const wxString& aFullProjectProFileName );
|
void SetProjectFileName( const wxString& aFullProjectProFileName );
|
||||||
const wxString GetProjectFileName();
|
const wxString GetProjectFileName() const;
|
||||||
|
|
||||||
// read only accessors
|
// read only accessors
|
||||||
const wxString SchFileName();
|
const wxString SchFileName();
|
||||||
|
|
|
@ -207,7 +207,7 @@ void DIALOG_INSPECTOR::ReCreateDesignList()
|
||||||
|
|
||||||
WS_DATA_MODEL& pglayout = WS_DATA_MODEL::GetTheInstance();
|
WS_DATA_MODEL& pglayout = WS_DATA_MODEL::GetTheInstance();
|
||||||
|
|
||||||
wxFileName fn( ((PL_EDITOR_FRAME*) GetParent())->GetCurrFileName() );
|
wxFileName fn( ((PL_EDITOR_FRAME*) GetParent())->GetCurrentFileName() );
|
||||||
|
|
||||||
if( fn.GetName().IsEmpty() )
|
if( fn.GetName().IsEmpty() )
|
||||||
SetTitle( "<default page layout>" );
|
SetTitle( "<default page layout>" );
|
||||||
|
|
|
@ -90,7 +90,7 @@ void PL_EDITOR_FRAME::Files_io( wxCommandEvent& event )
|
||||||
{
|
{
|
||||||
wxString msg;
|
wxString msg;
|
||||||
int id = event.GetId();
|
int id = event.GetId();
|
||||||
wxString filename = GetCurrFileName();
|
wxString filename = GetCurrentFileName();
|
||||||
WS_DATA_MODEL& pglayout = WS_DATA_MODEL::GetTheInstance();
|
WS_DATA_MODEL& pglayout = WS_DATA_MODEL::GetTheInstance();
|
||||||
|
|
||||||
if( filename.IsEmpty() && id == wxID_SAVE )
|
if( filename.IsEmpty() && id == wxID_SAVE )
|
||||||
|
@ -110,7 +110,7 @@ void PL_EDITOR_FRAME::Files_io( wxCommandEvent& event )
|
||||||
{
|
{
|
||||||
case wxID_NEW:
|
case wxID_NEW:
|
||||||
pglayout.AllowVoidList( true );
|
pglayout.AllowVoidList( true );
|
||||||
SetCurrFileName( wxEmptyString );
|
SetCurrentFileName( wxEmptyString );
|
||||||
pglayout.ClearList();
|
pglayout.ClearList();
|
||||||
OnNewPageLayout();
|
OnNewPageLayout();
|
||||||
break;
|
break;
|
||||||
|
@ -207,8 +207,8 @@ void PL_EDITOR_FRAME::Files_io( wxCommandEvent& event )
|
||||||
msg.Printf( _("File \"%s\" written"), GetChars( filename ) );
|
msg.Printf( _("File \"%s\" written"), GetChars( filename ) );
|
||||||
SetStatusText( msg );
|
SetStatusText( msg );
|
||||||
|
|
||||||
if( GetCurrFileName().IsEmpty() )
|
if( GetCurrentFileName().IsEmpty() )
|
||||||
SetCurrFileName( filename );
|
SetCurrentFileName( filename );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -225,7 +225,7 @@ bool PL_EDITOR_FRAME::LoadPageLayoutDescrFile( const wxString& aFullFileName )
|
||||||
if( wxFileExists( aFullFileName ) )
|
if( wxFileExists( aFullFileName ) )
|
||||||
{
|
{
|
||||||
WS_DATA_MODEL::GetTheInstance().SetPageLayout( aFullFileName );
|
WS_DATA_MODEL::GetTheInstance().SetPageLayout( aFullFileName );
|
||||||
SetCurrFileName( aFullFileName );
|
SetCurrentFileName( aFullFileName );
|
||||||
UpdateFileHistory( aFullFileName );
|
UpdateFileHistory( aFullFileName );
|
||||||
GetScreen()->ClrModify();
|
GetScreen()->ClrModify();
|
||||||
return true;
|
return true;
|
||||||
|
|
|
@ -282,7 +282,7 @@ void PL_EDITOR_FRAME::OnCloseWindow( wxCloseEvent& aEvent )
|
||||||
|
|
||||||
if( IsContentModified() )
|
if( IsContentModified() )
|
||||||
{
|
{
|
||||||
wxFileName filename = GetCurrFileName();
|
wxFileName filename = GetCurrentFileName();
|
||||||
wxString msg = _( "Save changes to \"%s\" before closing?" );
|
wxString msg = _( "Save changes to \"%s\" before closing?" );
|
||||||
|
|
||||||
if( !HandleUnsavedChanges( this, wxString::Format( msg, filename.GetFullName() ),
|
if( !HandleUnsavedChanges( this, wxString::Format( msg, filename.GetFullName() ),
|
||||||
|
@ -449,7 +449,7 @@ void PL_EDITOR_FRAME::SaveSettings( APP_SETTINGS_BASE* aCfg )
|
||||||
void PL_EDITOR_FRAME::UpdateTitleAndInfo()
|
void PL_EDITOR_FRAME::UpdateTitleAndInfo()
|
||||||
{
|
{
|
||||||
wxString title;
|
wxString title;
|
||||||
wxString file = GetCurrFileName();
|
wxString file = GetCurrentFileName();
|
||||||
|
|
||||||
title.Printf( _( "Page Layout Editor" ) + wxT( " \u2014 %s" ),
|
title.Printf( _( "Page Layout Editor" ) + wxT( " \u2014 %s" ),
|
||||||
file.Length() ? file : _( "no file selected" ) );
|
file.Length() ? file : _( "no file selected" ) );
|
||||||
|
@ -457,13 +457,13 @@ void PL_EDITOR_FRAME::UpdateTitleAndInfo()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
const wxString& PL_EDITOR_FRAME::GetCurrFileName() const
|
wxString PL_EDITOR_FRAME::GetCurrentFileName() const
|
||||||
{
|
{
|
||||||
return BASE_SCREEN::m_PageLayoutDescrFileName;
|
return BASE_SCREEN::m_PageLayoutDescrFileName;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void PL_EDITOR_FRAME::SetCurrFileName( const wxString& aName )
|
void PL_EDITOR_FRAME::SetCurrentFileName( const wxString& aName )
|
||||||
{
|
{
|
||||||
BASE_SCREEN::m_PageLayoutDescrFileName = aName;
|
BASE_SCREEN::m_PageLayoutDescrFileName = aName;
|
||||||
}
|
}
|
||||||
|
@ -774,7 +774,7 @@ void PL_EDITOR_FRAME::OnNewPageLayout()
|
||||||
|
|
||||||
m_toolManager->RunAction( ACTIONS::zoomFitScreen, true );
|
m_toolManager->RunAction( ACTIONS::zoomFitScreen, true );
|
||||||
|
|
||||||
if( GetCurrFileName().IsEmpty() )
|
if( GetCurrentFileName().IsEmpty() )
|
||||||
{
|
{
|
||||||
// Default shutdown reason until a file is loaded
|
// Default shutdown reason until a file is loaded
|
||||||
SetShutdownBlockReason( _( "New page layout file is unsaved" ) );
|
SetShutdownBlockReason( _( "New page layout file is unsaved" ) );
|
||||||
|
|
|
@ -259,12 +259,12 @@ public:
|
||||||
* If this is the default (no loaded file) returns a emtpy name
|
* If this is the default (no loaded file) returns a emtpy name
|
||||||
* or a new design.
|
* or a new design.
|
||||||
*/
|
*/
|
||||||
const wxString& GetCurrFileName() const;
|
wxString GetCurrentFileName() const override;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Stores the current layout descr file filename
|
* Stores the current layout descr file filename
|
||||||
*/
|
*/
|
||||||
void SetCurrFileName( const wxString& aName );
|
void SetCurrentFileName( const wxString& aName );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Refresh the library tree and redraw the window
|
* Refresh the library tree and redraw the window
|
||||||
|
|
|
@ -88,7 +88,7 @@ int PL_EDITOR_CONTROL::PageSetup( const TOOL_EVENT& aEvent )
|
||||||
m_frame->SaveCopyInUndoList( true );
|
m_frame->SaveCopyInUndoList( true );
|
||||||
|
|
||||||
DIALOG_PAGES_SETTINGS dlg( m_frame, wxSize( MAX_PAGE_SIZE_MILS, MAX_PAGE_SIZE_MILS ) );
|
DIALOG_PAGES_SETTINGS dlg( m_frame, wxSize( MAX_PAGE_SIZE_MILS, MAX_PAGE_SIZE_MILS ) );
|
||||||
dlg.SetWksFileName( m_frame->GetCurrFileName() );
|
dlg.SetWksFileName( m_frame->GetCurrentFileName() );
|
||||||
dlg.EnableWksFileNamePicker( false );
|
dlg.EnableWksFileNamePicker( false );
|
||||||
|
|
||||||
if( dlg.ShowModal() != wxID_OK )
|
if( dlg.ShowModal() != wxID_OK )
|
||||||
|
|
|
@ -1257,3 +1257,9 @@ void PCB_EDIT_FRAME::OnExportHyperlynx( wxCommandEvent& event )
|
||||||
|
|
||||||
ExportBoardToHyperlynx( GetBoard(), fn );
|
ExportBoardToHyperlynx( GetBoard(), fn );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
wxString PCB_EDIT_FRAME::GetCurrentFileName() const
|
||||||
|
{
|
||||||
|
return GetBoard()->GetFileName();
|
||||||
|
}
|
||||||
|
|
|
@ -952,6 +952,8 @@ public:
|
||||||
|
|
||||||
void SyncToolbars() override;
|
void SyncToolbars() override;
|
||||||
|
|
||||||
|
wxString GetCurrentFileName() const override;
|
||||||
|
|
||||||
DECLARE_EVENT_TABLE()
|
DECLARE_EVENT_TABLE()
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue