From 8777135d9f4c04b26720560ff2bace9cc0332053 Mon Sep 17 00:00:00 2001 From: Jeff Young Date: Thu, 11 Nov 2021 13:56:53 +0000 Subject: [PATCH] Try to make window backgrounds the same on Windows. Also reduces the use of auto. --- .../dialogs/dialog_manage_repositories.cpp | 10 ++--- .../pcm/dialogs/dialog_manage_repositories.h | 7 ++- kicad/pcm/dialogs/dialog_pcm.cpp | 44 +++++++++---------- kicad/pcm/dialogs/panel_package.cpp | 2 + kicad/pcm/dialogs/panel_packages_view.cpp | 38 +++++++++------- .../pcm/dialogs/panel_packages_view_base.cpp | 26 +++++------ .../pcm/dialogs/panel_packages_view_base.fbp | 2 +- kicad/pcm/dialogs/panel_packages_view_base.h | 2 +- 8 files changed, 70 insertions(+), 61 deletions(-) diff --git a/kicad/pcm/dialogs/dialog_manage_repositories.cpp b/kicad/pcm/dialogs/dialog_manage_repositories.cpp index ee81162afe..f1213807a5 100644 --- a/kicad/pcm/dialogs/dialog_manage_repositories.cpp +++ b/kicad/pcm/dialogs/dialog_manage_repositories.cpp @@ -221,7 +221,7 @@ void DIALOG_MANAGE_REPOSITORIES::selectRow( int aRow ) } -void DIALOG_MANAGE_REPOSITORIES::SetData( const STRING_PAIR_LIST& aData ) +void DIALOG_MANAGE_REPOSITORIES::SetData( const std::vector>& aData ) { m_grid->Freeze(); @@ -240,14 +240,14 @@ void DIALOG_MANAGE_REPOSITORIES::SetData( const STRING_PAIR_LIST& aData ) } -STRING_PAIR_LIST DIALOG_MANAGE_REPOSITORIES::GetData() +std::vector> DIALOG_MANAGE_REPOSITORIES::GetData() { - STRING_PAIR_LIST result; + std::vector> result; for( int i = 0; i < m_grid->GetNumberRows(); i++ ) { - result.push_back( - std::make_pair( m_grid->GetCellValue( i, 0 ), m_grid->GetCellValue( i, 1 ) ) ); + result.push_back( std::make_pair( m_grid->GetCellValue( i, 0 ), + m_grid->GetCellValue( i, 1 ) ) ); } return result; diff --git a/kicad/pcm/dialogs/dialog_manage_repositories.h b/kicad/pcm/dialogs/dialog_manage_repositories.h index efb8983f83..252d5e6467 100644 --- a/kicad/pcm/dialogs/dialog_manage_repositories.h +++ b/kicad/pcm/dialogs/dialog_manage_repositories.h @@ -42,9 +42,12 @@ protected: public: /** Constructor */ DIALOG_MANAGE_REPOSITORIES( wxWindow* parent, std::shared_ptr aPcm ); + ~DIALOG_MANAGE_REPOSITORIES(); - void SetData( const STRING_PAIR_LIST& aData ); - STRING_PAIR_LIST GetData(); + + void SetData( const std::vector>& aData ); + + std::vector> GetData(); private: void swapRows( int aRowA, int aRowB ); diff --git a/kicad/pcm/dialogs/dialog_pcm.cpp b/kicad/pcm/dialogs/dialog_pcm.cpp index aaa701072f..fb211d722f 100644 --- a/kicad/pcm/dialogs/dialog_pcm.cpp +++ b/kicad/pcm/dialogs/dialog_pcm.cpp @@ -67,12 +67,12 @@ DIALOG_PCM::DIALOG_PCM( wxWindow* parent ) : DIALOG_PCM_BASE( parent ) m_panelInstalledHolder->GetSizer()->Add( m_installedPanel, 1, wxEXPAND ); m_panelInstalledHolder->Layout(); - for( const auto& entry : PACKAGE_TYPE_LIST ) + for( const std::pair& entry : PACKAGE_TYPE_LIST ) { PANEL_PACKAGES_VIEW* panel = new PANEL_PACKAGES_VIEW( m_contentNotebook, m_pcm ); - wxString msg = wxGetTranslation( std::get<1>( entry ) ); - m_contentNotebook->AddPage( panel, wxString::Format( msg, 0 ) ); - m_repositoryContentPanels.insert( { std::get<0>( entry ), panel } ); + wxString label = wxGetTranslation( entry.second ); + m_contentNotebook->AddPage( panel, wxString::Format( label, 0 ) ); + m_repositoryContentPanels.insert( { entry.first, panel } ); } m_dialogNotebook->SetPageText( 0, wxString::Format( _( "Repository (%d)" ), 0 ) ); @@ -187,13 +187,11 @@ void DIALOG_PCM::OnManageRepositoriesClicked( wxCommandEvent& event ) { DIALOG_MANAGE_REPOSITORIES* dialog = new DIALOG_MANAGE_REPOSITORIES( this, m_pcm ); - STRING_PAIR_LIST dialog_data; - STRING_TUPLE_LIST repo_list = m_pcm->GetRepositoryList(); + std::vector> dialog_data; + std::vector> repo_list = m_pcm->GetRepositoryList(); - for( const auto& repo : repo_list ) - { + for( const std::tuple& repo : repo_list ) dialog_data.push_back( std::make_pair( std::get<1>( repo ), std::get<2>( repo ) ) ); - } dialog->SetData( dialog_data ); @@ -216,11 +214,11 @@ void DIALOG_PCM::OnManageRepositoriesClicked( wxCommandEvent& event ) void DIALOG_PCM::setRepositoryListFromPcm() { - STRING_TUPLE_LIST repositories = m_pcm->GetRepositoryList(); + std::vector> repositories = m_pcm->GetRepositoryList(); m_choiceRepository->Clear(); - for( const auto& entry : repositories ) + for( const std::tuple& entry : repositories ) { m_choiceRepository->Append( std::get<1>( entry ), new wxStringClientData( std::get<0>( entry ) ) ); @@ -299,7 +297,7 @@ void DIALOG_PCM::setRepositoryData( const wxString& aRepositoryId ) package_data.state = m_pcm->GetPackageState( aRepositoryId, pkg.identifier ); - for( const auto& action : m_pendingActions ) + for( const PENDING_ACTION& action : m_pendingActions ) { if( action.package.identifier != pkg.identifier ) continue; @@ -321,14 +319,14 @@ void DIALOG_PCM::setRepositoryData( const wxString& aRepositoryId ) for( size_t i = 0; i < PACKAGE_TYPE_LIST.size(); i++ ) { PCM_PACKAGE_TYPE type = PACKAGE_TYPE_LIST[i].first; + const wxString& label = PACKAGE_TYPE_LIST[i].second; m_repositoryContentPanels[type]->SetData( data[type], m_callback ); - m_contentNotebook->SetPageText( - i, wxString::Format( wxGetTranslation( PACKAGE_TYPE_LIST[i].second ), - (int) data[type].size() ) ); + m_contentNotebook->SetPageText( i, wxString::Format( wxGetTranslation( label ), + (int) data[type].size() ) ); } - m_dialogNotebook->SetPageText( - 0, wxString::Format( _( "Repository (%d)" ), (int) packages.size() ) ); + m_dialogNotebook->SetPageText( 0, wxString::Format( _( "Repository (%d)" ), + (int) packages.size() ) ); } } @@ -363,7 +361,7 @@ void DIALOG_PCM::setInstalledPackages() m_installedBitmaps = m_pcm->GetInstalledPackageBitmaps(); - for( const auto& entry : installed ) + for( const PCM_INSTALLATION_ENTRY& entry : installed ) { PACKAGE_VIEW_DATA package_data( entry ); @@ -377,8 +375,8 @@ void DIALOG_PCM::setInstalledPackages() m_installedPanel->SetData( package_list, m_callback ); - m_dialogNotebook->SetPageText( - 1, wxString::Format( _( "Installed (%d)" ), (int) package_list.size() ) ); + m_dialogNotebook->SetPageText( 1, wxString::Format( _( "Installed (%d)" ), + (int) package_list.size() ) ); } @@ -389,7 +387,7 @@ void DIALOG_PCM::OnApplyChangesClicked( wxCommandEvent& event ) PCM_TASK_MANAGER task_manager( m_pcm ); - for( const auto& action : m_pendingActions ) + for( const PENDING_ACTION& action : m_pendingActions ) { if( action.action == PPA_UNINSTALL ) task_manager.Uninstall( action.package ); @@ -446,8 +444,8 @@ void DIALOG_PCM::discardAction( int aIndex ) PENDING_ACTION action = m_pendingActions[aIndex]; - PCM_PACKAGE_STATE state = - m_pcm->GetPackageState( action.repository_id, action.package.identifier ); + PCM_PACKAGE_STATE state = m_pcm->GetPackageState( action.repository_id, + action.package.identifier ); m_installedPanel->SetPackageState( action.package.identifier, state ); diff --git a/kicad/pcm/dialogs/panel_package.cpp b/kicad/pcm/dialogs/panel_package.cpp index 42474d1531..7265b79dcb 100644 --- a/kicad/pcm/dialogs/panel_package.cpp +++ b/kicad/pcm/dialogs/panel_package.cpp @@ -110,11 +110,13 @@ void PANEL_PACKAGE::OnButtonClicked( wxCommandEvent& event ) // If not found then find any compatible version if( ver_it == m_data.package.versions.end() ) + { ver_it = std::find_if( m_data.package.versions.begin(), m_data.package.versions.end(), []( const PACKAGE_VERSION& ver ) { return ver.compatible; } ); + } if( ver_it == m_data.package.versions.end() ) return; // Shouldn't happen diff --git a/kicad/pcm/dialogs/panel_packages_view.cpp b/kicad/pcm/dialogs/panel_packages_view.cpp index 36586353cf..7974d98ea1 100644 --- a/kicad/pcm/dialogs/panel_packages_view.cpp +++ b/kicad/pcm/dialogs/panel_packages_view.cpp @@ -19,7 +19,6 @@ */ #include "panel_packages_view.h" -#include "bitmaps.h" #include "grid_tricks.h" #include "kicad_settings.h" #include "pgm_base.h" @@ -72,6 +71,8 @@ PANEL_PACKAGES_VIEW::PANEL_PACKAGES_VIEW( wxWindow* false ) ); } + m_packageListWindow->SetBackgroundColour( wxStaticText::GetClassDefaultAttributes().colBg ); + m_infoScrollWindow->SetBackgroundColour( wxStaticText::GetClassDefaultAttributes().colBg ); m_infoText->SetBackgroundColour( wxStaticText::GetClassDefaultAttributes().colBg ); m_infoText->EnableVerticalScrollbar( false ); @@ -184,17 +185,22 @@ void PANEL_PACKAGES_VIEW::setPackageDetails( const PACKAGE_VIEW_DATA& aPackageDa m_infoText->WriteText( wxString::Format( _( "Tags: %s\n" ), tags_str ) ); } - const auto write_contact = [&]( const wxString& type, const PCM_CONTACT& contact ) - { - m_infoText->WriteText( wxString::Format( "%s: %s\n", type, contact.name ) ); + const auto write_contact = + [&]( const wxString& type, const PCM_CONTACT& contact ) + { + m_infoText->WriteText( wxString::Format( "%s: %s\n", type, contact.name ) ); - m_infoText->BeginLeftIndent( 60, 40 ); + m_infoText->BeginLeftIndent( 60, 40 ); - for( const auto& entry : contact.contact ) - m_infoText->WriteText( wxString::Format( "%s: %s\n", entry.first, entry.second ) ); + for( const std::pair& entry : contact.contact ) + { + m_infoText->WriteText( wxString::Format( "%s: %s\n", + entry.first, + entry.second ) ); + } - m_infoText->EndLeftIndent(); - }; + m_infoText->EndLeftIndent(); + }; write_contact( _( "Author" ), package.author ); @@ -278,8 +284,8 @@ void PANEL_PACKAGES_VIEW::setPackageDetails( const PACKAGE_VIEW_DATA& aPackageDa m_sizerVersions->Show( true ); m_sizerVersions->Layout(); - wxSize size = m_scrolledWindow5->GetTargetWindow()->GetBestVirtualSize(); - m_scrolledWindow5->SetVirtualSize( size ); + wxSize size = m_infoScrollWindow->GetTargetWindow()->GetBestVirtualSize(); + m_infoScrollWindow->SetVirtualSize( size ); } @@ -288,8 +294,8 @@ void PANEL_PACKAGES_VIEW::unsetPackageDetails() m_infoText->ChangeValue( wxEmptyString ); m_sizerVersions->Show( false ); - wxSize size = m_scrolledWindow5->GetTargetWindow()->GetBestVirtualSize(); - m_scrolledWindow5->SetVirtualSize( size ); + wxSize size = m_infoScrollWindow->GetTargetWindow()->GetBestVirtualSize(); + m_infoScrollWindow->SetVirtualSize( size ); // Clean up grid just so we don't keep stale info around (it's already been hidden). m_gridVersions->Freeze(); @@ -345,7 +351,7 @@ void PANEL_PACKAGES_VIEW::OnVersionsCellClicked( wxGridEvent& event ) void PANEL_PACKAGES_VIEW::OnDownloadVersionClicked( wxCommandEvent& event ) { - const auto rows = m_gridVersions->GetSelectedRows(); + const wxArrayInt rows = m_gridVersions->GetSelectedRows(); if( !m_currentSelected || rows.size() != 1 ) { @@ -423,7 +429,7 @@ void PANEL_PACKAGES_VIEW::OnDownloadVersionClicked( wxCommandEvent& event ) void PANEL_PACKAGES_VIEW::OnInstallVersionClicked( wxCommandEvent& event ) { - const auto rows = m_gridVersions->GetSelectedRows(); + const wxArrayInt rows = m_gridVersions->GetSelectedRows(); if( !m_currentSelected || rows.size() != 1 ) { @@ -511,7 +517,7 @@ void PANEL_PACKAGES_VIEW::updatePackageList() wxSizer* sizer = m_packageListWindow->GetSizer(); sizer->Clear( false ); // Don't delete panels - for( const auto& pair : package_ranks ) + for( const std::pair& pair : package_ranks ) { PANEL_PACKAGE* panel = m_packagePanels[m_packageInitialOrder[pair.second]]; diff --git a/kicad/pcm/dialogs/panel_packages_view_base.cpp b/kicad/pcm/dialogs/panel_packages_view_base.cpp index 4031c0de08..ca849e358e 100644 --- a/kicad/pcm/dialogs/panel_packages_view_base.cpp +++ b/kicad/pcm/dialogs/panel_packages_view_base.cpp @@ -49,12 +49,12 @@ PANEL_PACKAGES_VIEW_BASE::PANEL_PACKAGES_VIEW_BASE( wxWindow* parent, wxWindowID wxBoxSizer* bPanelDetailsSizer; bPanelDetailsSizer = new wxBoxSizer( wxVERTICAL ); - m_scrolledWindow5 = new wxScrolledWindow( m_panelDetails, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxVSCROLL ); - m_scrolledWindow5->SetScrollRate( 5, 5 ); + m_infoScrollWindow = new wxScrolledWindow( m_panelDetails, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxVSCROLL ); + m_infoScrollWindow->SetScrollRate( 5, 5 ); wxBoxSizer* bSizerScrolledWindow; bSizerScrolledWindow = new wxBoxSizer( wxVERTICAL ); - m_infoText = new wxRichTextCtrl( m_scrolledWindow5, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_AUTO_URL ); + m_infoText = new wxRichTextCtrl( m_infoScrollWindow, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_AUTO_URL ); m_infoText->Enable( false ); m_infoText->SetMinSize( wxSize( -1,300 ) ); @@ -62,7 +62,7 @@ PANEL_PACKAGES_VIEW_BASE::PANEL_PACKAGES_VIEW_BASE( wxWindow* parent, wxWindowID m_sizerVersions = new wxBoxSizer( wxVERTICAL ); - m_gridVersions = new WX_GRID( m_scrolledWindow5, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 ); + m_gridVersions = new WX_GRID( m_infoScrollWindow, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 ); // Grid m_gridVersions->CreateGrid( 0, 5 ); @@ -97,16 +97,16 @@ PANEL_PACKAGES_VIEW_BASE::PANEL_PACKAGES_VIEW_BASE( wxWindow* parent, wxWindowID wxBoxSizer* bSizerVersionButtons; bSizerVersionButtons = new wxBoxSizer( wxHORIZONTAL ); - m_showAllVersions = new wxCheckBox( m_scrolledWindow5, wxID_ANY, _("Show all versions"), wxDefaultPosition, wxDefaultSize, 0 ); + m_showAllVersions = new wxCheckBox( m_infoScrollWindow, wxID_ANY, _("Show all versions"), wxDefaultPosition, wxDefaultSize, 0 ); bSizerVersionButtons->Add( m_showAllVersions, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM, 5 ); bSizerVersionButtons->Add( 0, 0, 1, wxEXPAND, 5 ); - m_buttonDownload = new wxButton( m_scrolledWindow5, wxID_ANY, _("Download"), wxDefaultPosition, wxDefaultSize, 0 ); + m_buttonDownload = new wxButton( m_infoScrollWindow, wxID_ANY, _("Download"), wxDefaultPosition, wxDefaultSize, 0 ); bSizerVersionButtons->Add( m_buttonDownload, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 ); - m_buttonInstall = new wxButton( m_scrolledWindow5, wxID_ANY, _("Install"), wxDefaultPosition, wxDefaultSize, 0 ); + m_buttonInstall = new wxButton( m_infoScrollWindow, wxID_ANY, _("Install"), wxDefaultPosition, wxDefaultSize, 0 ); bSizerVersionButtons->Add( m_buttonInstall, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 5 ); @@ -116,10 +116,10 @@ PANEL_PACKAGES_VIEW_BASE::PANEL_PACKAGES_VIEW_BASE( wxWindow* parent, wxWindowID bSizerScrolledWindow->Add( m_sizerVersions, 0, wxEXPAND|wxRIGHT|wxLEFT, 3 ); - m_scrolledWindow5->SetSizer( bSizerScrolledWindow ); - m_scrolledWindow5->Layout(); - bSizerScrolledWindow->Fit( m_scrolledWindow5 ); - bPanelDetailsSizer->Add( m_scrolledWindow5, 1, wxEXPAND, 5 ); + m_infoScrollWindow->SetSizer( bSizerScrolledWindow ); + m_infoScrollWindow->Layout(); + bSizerScrolledWindow->Fit( m_infoScrollWindow ); + bPanelDetailsSizer->Add( m_infoScrollWindow, 1, wxEXPAND, 5 ); m_panelDetails->SetSizer( bPanelDetailsSizer ); @@ -134,7 +134,7 @@ PANEL_PACKAGES_VIEW_BASE::PANEL_PACKAGES_VIEW_BASE( wxWindow* parent, wxWindowID bSizer1->Fit( this ); // Connect Events - m_scrolledWindow5->Connect( wxEVT_SIZE, wxSizeEventHandler( PANEL_PACKAGES_VIEW_BASE::OnSizeInfoBox ), NULL, this ); + m_infoScrollWindow->Connect( wxEVT_SIZE, wxSizeEventHandler( PANEL_PACKAGES_VIEW_BASE::OnSizeInfoBox ), NULL, this ); m_gridVersions->Connect( wxEVT_GRID_CELL_LEFT_CLICK, wxGridEventHandler( PANEL_PACKAGES_VIEW_BASE::OnVersionsCellClicked ), NULL, this ); m_showAllVersions->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( PANEL_PACKAGES_VIEW_BASE::OnShowAllVersionsClicked ), NULL, this ); m_buttonDownload->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PANEL_PACKAGES_VIEW_BASE::OnDownloadVersionClicked ), NULL, this ); @@ -144,7 +144,7 @@ PANEL_PACKAGES_VIEW_BASE::PANEL_PACKAGES_VIEW_BASE( wxWindow* parent, wxWindowID PANEL_PACKAGES_VIEW_BASE::~PANEL_PACKAGES_VIEW_BASE() { // Disconnect Events - m_scrolledWindow5->Disconnect( wxEVT_SIZE, wxSizeEventHandler( PANEL_PACKAGES_VIEW_BASE::OnSizeInfoBox ), NULL, this ); + m_infoScrollWindow->Disconnect( wxEVT_SIZE, wxSizeEventHandler( PANEL_PACKAGES_VIEW_BASE::OnSizeInfoBox ), NULL, this ); m_gridVersions->Disconnect( wxEVT_GRID_CELL_LEFT_CLICK, wxGridEventHandler( PANEL_PACKAGES_VIEW_BASE::OnVersionsCellClicked ), NULL, this ); m_showAllVersions->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( PANEL_PACKAGES_VIEW_BASE::OnShowAllVersionsClicked ), NULL, this ); m_buttonDownload->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PANEL_PACKAGES_VIEW_BASE::OnDownloadVersionClicked ), NULL, this ); diff --git a/kicad/pcm/dialogs/panel_packages_view_base.fbp b/kicad/pcm/dialogs/panel_packages_view_base.fbp index b340b46b8a..97551aaf72 100644 --- a/kicad/pcm/dialogs/panel_packages_view_base.fbp +++ b/kicad/pcm/dialogs/panel_packages_view_base.fbp @@ -401,7 +401,7 @@ 0 -1,-1 1 - m_scrolledWindow5 + m_infoScrollWindow 1 diff --git a/kicad/pcm/dialogs/panel_packages_view_base.h b/kicad/pcm/dialogs/panel_packages_view_base.h index 1025f9481d..8f9896a07f 100644 --- a/kicad/pcm/dialogs/panel_packages_view_base.h +++ b/kicad/pcm/dialogs/panel_packages_view_base.h @@ -45,7 +45,7 @@ class PANEL_PACKAGES_VIEW_BASE : public wxPanel wxSearchCtrl* m_searchCtrl; wxScrolledWindow* m_packageListWindow; wxPanel* m_panelDetails; - wxScrolledWindow* m_scrolledWindow5; + wxScrolledWindow* m_infoScrollWindow; wxRichTextCtrl* m_infoText; wxBoxSizer* m_sizerVersions; WX_GRID* m_gridVersions;