WIZARD_FPLIB_TABLE::WIZARD_FPLIB_TABLE( wxWindow* aParent ) : WIZARD_FPLIB_TABLE_BASE( aParent ), m_welcomeDlg( m_pages[0] ), m_fileSelectDlg( m_pages[1] ), m_githubListDlg( m_pages[2] ), m_reviewDlg( m_pages[3] ), m_targetDlg( m_pages[4] ), m_selectedFilter( 0 ) { m_filePicker->SetFilter( getFilterString() ); // Initialize default download dir wxString default_path; wxGetEnv( FP_LIB_TABLE::GlobalPathEnvVariableName(), &default_path ); setDownloadDir( default_path ); m_filePicker->SetPath( default_path ); // Restore the Github url wxString githubUrl; wxConfigBase* cfg = Pgm().CommonSettings(); cfg->Read( KICAD_FPLIBS_URL_KEY, &githubUrl ); cfg->Read( KICAD_FPLIBS_LAST_DOWNLOAD_DIR, &m_lastGithubDownloadDirectory ); if( !m_lastGithubDownloadDirectory.IsEmpty() ) { setDownloadDir( m_lastGithubDownloadDirectory ); m_filePicker->SetPath( m_lastGithubDownloadDirectory ); } else { m_lastGithubDownloadDirectory = default_path; } if( githubUrl.IsEmpty() ) githubUrl = wxT( "https://github.com/KiCad" ); SetGithubURL( githubUrl ); // Give the minimal size to the dialog, which allows displaying any page wxSize minsize; for( unsigned ii = 0; ii < m_pages.size(); ii++ ) { wxSize size = m_pages[ii]->GetSizer()->CalcMin(); minsize.x = std::max( minsize.x, size.x ); minsize.y = std::max( minsize.y, size.y ); } SetMinSize( minsize ); SetPageSize( minsize ); GetSizer()->SetSizeHints( this ); Center(); if( !m_radioAddGithub->GetValue() && !m_radioAddLocal->GetValue() ) m_radioAddLocal->SetValue( true ); setupDialogOrder(); updateGithubControls(); Connect( wxEVT_RADIOBUTTON, wxCommandEventHandler( WIZARD_FPLIB_TABLE::OnSourceCheck ), NULL, this ); Connect( wxEVT_DIRCTRL_SELECTIONCHANGED, wxCommandEventHandler( WIZARD_FPLIB_TABLE::OnSelectFiles ), NULL, this ); Connect( wxEVT_CHECKLISTBOX, wxCommandEventHandler( WIZARD_FPLIB_TABLE::OnCheckGithubList ), NULL, this ); }
WIZARD_3DSHAPE_LIBS_DOWNLOADER::WIZARD_3DSHAPE_LIBS_DOWNLOADER( wxWindow* aParent ) : WIZARD_3DSHAPE_LIBS_DOWNLOADER_BASE( aParent ) { m_welcomeDlg = m_pages[0]; m_githubListDlg = m_pages[1]; m_reviewDlg = m_pages[2]; // Initialize default download dir (local target folder of 3D shapes libs) wxString default_path; wxGetEnv( KISYS3DMOD, &default_path ); wxConfigBase* cfg = Pgm().CommonSettings(); wxString tmp; cfg->Read( KICAD_3DLIBS_LAST_DOWNLOAD_DIR, &tmp, default_path ); setDownloadDir( tmp ); // Restore the Github 3D shapes libs url wxString githubUrl; cfg->Read( KICAD_3DLIBS_URL_KEY, &githubUrl ); if( githubUrl.IsEmpty() ) githubUrl = DEFAULT_GITHUB_3DSHAPES_LIBS_URL; SetGithubURL( githubUrl ); // Give the minimal size to the dialog, which allows displaying any page wxSize minsize; for( unsigned ii = 0; ii < m_pages.size(); ii++ ) { wxSize size = m_pages[ii]->GetSizer()->CalcMin(); minsize.x = std::max( minsize.x, size.x ); minsize.y = std::max( minsize.y, size.y ); } SetMinSize( minsize ); SetPageSize( minsize ); GetSizer()->SetSizeHints( this ); Center(); setupDialogOrder(); updateGithubControls(); // When starting m_textCtrlGithubURL has the focus, and the text is selected, // and not fully visible. // Forcing deselection does not work, at least on W7 with wxWidgets 3.0.2 // So (and also because m_textCtrlGithubURL and m_downloadDir are rarely modified // the focus is given to an other widget. m_hyperlinkGithubKicad->SetFocus(); Connect( wxEVT_RADIOBUTTON, wxCommandEventHandler( WIZARD_3DSHAPE_LIBS_DOWNLOADER::OnSourceCheck ), NULL, this ); Connect( wxEVT_CHECKLISTBOX, wxCommandEventHandler( WIZARD_3DSHAPE_LIBS_DOWNLOADER::OnCheckGithubList ), NULL, this ); }
void WIZARD_3DSHAPE_LIBS_DOWNLOADER::OnDefault3DPathButtonClick( wxCommandEvent& event ) { wxString default_path; wxGetEnv( KISYS3DMOD, &default_path ); if( !default_path.IsEmpty() && wxDirExists( default_path ) ) { setDownloadDir( default_path ); updateGithubControls(); } else wxMessageBox( _( "KISYS3DMOD path not defined , or not existing" ) ); }
void WIZARD_3DSHAPE_LIBS_DOWNLOADER::OnBrowseButtonClick( wxCommandEvent& aEvent ) { wxString path = getDownloadDir(); path = wxDirSelector( _("Choose a folder to save the downloaded libraries" ), path, 0, wxDefaultPosition, this ); if( !path.IsEmpty() && wxDirExists( path ) ) { setDownloadDir( path ); updateGithubControls(); } }
void WIZARD_FPLIB_TABLE::OnBrowseButtonClick( wxCommandEvent& aEvent ) { wxString path = getDownloadDir(); path = wxDirSelector( _("Choose a folder to save the downloaded libraries" ), path, 0, wxDefaultPosition, this ); if( !path.IsEmpty() && wxDirExists( path ) ) { setDownloadDir( path ); wxConfigBase* cfg = Pgm().CommonSettings(); cfg->Write( KICAD_FPLIBS_LAST_DOWNLOAD_DIR, path ); updateGithubControls(); } }
void WIZARD_FPLIB_TABLE::OnCheckSaveCopy( wxCommandEvent& aEvent ) { updateGithubControls(); }
void WIZARD_FPLIB_TABLE::OnSourceCheck( wxCommandEvent& aEvent ) { updateGithubControls(); setupDialogOrder(); }
// Called when the local folder name is edited. void WIZARD_3DSHAPE_LIBS_DOWNLOADER::OnLocalFolderChange( wxCommandEvent& event ) { updateGithubControls(); }
void WIZARD_3DSHAPE_LIBS_DOWNLOADER::OnCheckSaveCopy( wxCommandEvent& aEvent ) { updateGithubControls(); }
void WIZARD_3DSHAPE_LIBS_DOWNLOADER::OnSourceCheck( wxCommandEvent& aEvent ) { updateGithubControls(); setupDialogOrder(); }