diff --git a/common/plotters/PDF_plotter.cpp b/common/plotters/PDF_plotter.cpp index 46bab51963..c9dc194b3f 100644 --- a/common/plotters/PDF_plotter.cpp +++ b/common/plotters/PDF_plotter.cpp @@ -978,7 +978,7 @@ bool PDF_PLOTTER::EndPlot() for( const std::pair& page : pages ) { js += wxString::Format( wxT( "{ cName: '%s', cReturn: '%d' }, " ), - page.first, + wxString::Format( _( "Show Page %s" ), page.first ), page.second ); } diff --git a/eeschema/dialogs/dialog_text_properties.cpp b/eeschema/dialogs/dialog_text_properties.cpp index be4aa90369..2297fb1380 100644 --- a/eeschema/dialogs/dialog_text_properties.cpp +++ b/eeschema/dialogs/dialog_text_properties.cpp @@ -134,14 +134,14 @@ DIALOG_TEXT_PROPERTIES::DIALOG_TEXT_PROPERTIES( SCH_EDIT_FRAME* aParent, SCH_ITE wxString sheetPageNum = sheet.GetPageNumber(); wxString sheetName = sheet.size() == 1 ? _( "" ) : sheet.Last()->GetName(); - m_hyperlinkCtrl->Append( wxString::Format( _( "Page %s (%s)" ), sheetPageNum, sheetName ) ); + m_hyperlinkCombo->Append( wxString::Format( _( "Page %s (%s)" ), sheetPageNum, sheetName ) ); m_pageNumbers.push_back( sheetPageNum ); } - m_hyperlinkCtrl->Append( wxT( "---------------------" ) ); - m_hyperlinkCtrl->Append( wxT( "file://..." ) ); - m_hyperlinkCtrl->Append( wxT( "http://..." ) ); - m_hyperlinkCtrl->Append( wxT( "https://..." ) ); + m_hyperlinkCombo->Append( wxT( "---" ) ); + m_hyperlinkCombo->Append( wxT( "file://..." ), KiBitmap( BITMAPS::small_folder ) ); + m_hyperlinkCombo->Append( wxT( "http://..." ), KiBitmap( BITMAPS::www ) ); + m_hyperlinkCombo->Append( wxT( "https://..." ), KiBitmap( BITMAPS::www ) ); SetupStandardButtons(); Layout(); @@ -176,8 +176,7 @@ bool DIALOG_TEXT_PROPERTIES::TransferDataToWindow() SCHEMATIC& schematic = m_frame->Schematic(); m_hyperlinkCb->SetValue( m_currentText->HasHyperlink() ); - m_hyperlinkCtrl->Enable( m_currentText->HasHyperlink() ); - m_hyperlinkCtrl->SetValue( m_currentText->GetHyperlink() ); + m_hyperlinkCombo->SetValue( m_currentText->GetHyperlink() ); // show text variable cross-references in a human-readable format m_textCtrl->SetValue( schematic.ConvertKIIDsToRefs( m_currentText->GetText() ) ); @@ -283,26 +282,24 @@ void DIALOG_TEXT_PROPERTIES::onFillChecked( wxCommandEvent& aEvent ) void DIALOG_TEXT_PROPERTIES::onHyperlinkChecked( wxCommandEvent& aEvent ) { - if( aEvent.IsChecked() && !m_hyperlinkCtrl->IsEnabled() ) + if( aEvent.IsChecked() && m_hyperlinkCombo->GetValue().IsEmpty() ) { - m_hyperlinkCtrl->Enable( true ); - m_hyperlinkCtrl->ChangeValue( m_lastLink ); - m_hyperlinkCtrl->SetFocus(); + m_hyperlinkCombo->ChangeValue( m_lastLink ); } - else if( !aEvent.IsChecked() && m_hyperlinkCtrl->IsEnabled() ) + else if( !aEvent.IsChecked() && !m_hyperlinkCombo->GetValue().IsEmpty() ) { - m_hyperlinkCtrl->Enable( false ); - m_lastLink = m_hyperlinkCtrl->GetValue(); - m_hyperlinkCtrl->SetValue( wxEmptyString ); + m_lastLink = m_hyperlinkCombo->GetValue(); + m_hyperlinkCombo->SetValue( wxEmptyString ); } aEvent.Skip(); } -void DIALOG_TEXT_PROPERTIES::onHyperlinkDropdown( wxCommandEvent& aEvent ) +void DIALOG_TEXT_PROPERTIES::onHyperlinkText( wxCommandEvent& event ) { - m_lastLink = m_hyperlinkCtrl->GetValue(); + if( !m_hyperlinkCombo->GetValue().IsEmpty() ) + m_hyperlinkCb->SetValue( true ); } @@ -314,38 +311,35 @@ void DIALOG_TEXT_PROPERTIES::onHyperlinkCombo( wxCommandEvent& aEvent ) { // user clicked outside dropdown; leave current value } - else if( sel == m_hyperlinkCtrl->GetCount() - 4 ) + else if( sel == m_hyperlinkCombo->GetCount() - 4 ) { - // separator (and wxWidgets already updated our value to it); - // replace value with that saved in the dropdown event - m_hyperlinkCtrl->ChangeValue( m_lastLink ); - m_hyperlinkCtrl->SetSelection( 0, m_hyperlinkCtrl->GetValue().Length() ); + // separator } - else if( sel == m_hyperlinkCtrl->GetCount() - 3 ) + else if( sel == m_hyperlinkCombo->GetCount() - 3 ) { static wxString helper = wxT( "file://" ); - m_hyperlinkCtrl->ChangeValue( helper ); - m_hyperlinkCtrl->SetInsertionPointEnd(); + m_hyperlinkCombo->ChangeValue( helper ); + m_hyperlinkCombo->SetInsertionPointEnd(); } - else if( sel == m_hyperlinkCtrl->GetCount() - 2 ) + else if( sel == m_hyperlinkCombo->GetCount() - 2 ) { static wxString helper = wxT( "http://" ); - m_hyperlinkCtrl->ChangeValue( helper ); - m_hyperlinkCtrl->SetInsertionPointEnd(); + m_hyperlinkCombo->ChangeValue( helper ); + m_hyperlinkCombo->SetInsertionPointEnd(); } - else if( sel == m_hyperlinkCtrl->GetCount() - 1 ) + else if( sel == m_hyperlinkCombo->GetCount() - 1 ) { static wxString helper = wxT( "https://" ); - m_hyperlinkCtrl->ChangeValue( helper ); - m_hyperlinkCtrl->SetInsertionPointEnd(); + m_hyperlinkCombo->ChangeValue( helper ); + m_hyperlinkCombo->SetInsertionPointEnd(); } else { - m_hyperlinkCtrl->ChangeValue( wxT( "#" ) + m_pageNumbers[ sel ] ); - m_hyperlinkCtrl->SetSelection( 0, m_hyperlinkCtrl->GetValue().Length() ); + m_hyperlinkCombo->ChangeValue( wxT( "#" ) + m_pageNumbers[ sel ] ); + m_hyperlinkCombo->SelectAll(); } } @@ -469,7 +463,7 @@ bool DIALOG_TEXT_PROPERTIES::TransferDataFromWindow() return false; } - if( !m_currentText->ValidateHyperlink( m_hyperlinkCtrl->GetValue() ) ) + if( !m_currentText->ValidateHyperlink( m_hyperlinkCombo->GetValue() ) ) { DisplayError( this, _( "Invalid hyperlink destination. Please enter either a valid URL " "(e.g. file:// or http(s)://) or \"#\" to create " @@ -478,7 +472,7 @@ bool DIALOG_TEXT_PROPERTIES::TransferDataFromWindow() } else { - m_currentText->SetHyperlink( m_hyperlinkCtrl->GetValue() ); + m_currentText->SetHyperlink( m_hyperlinkCombo->GetValue() ); } if( m_currentText->GetTextWidth() != m_textSize.GetValue() ) diff --git a/eeschema/dialogs/dialog_text_properties.h b/eeschema/dialogs/dialog_text_properties.h index 2c71054c8d..66f8481bdd 100644 --- a/eeschema/dialogs/dialog_text_properties.h +++ b/eeschema/dialogs/dialog_text_properties.h @@ -47,7 +47,7 @@ private: void onBorderChecked( wxCommandEvent& aEvent ) override; void onFillChecked( wxCommandEvent& aEvent ) override; void onHyperlinkChecked( wxCommandEvent& aEvent ) override; - void onHyperlinkDropdown( wxCommandEvent& aEvent ) override; + void onHyperlinkText( wxCommandEvent& aEvent ) override; void onHyperlinkCombo( wxCommandEvent& aEvent ) override; void OnFormattingHelp( wxHyperlinkEvent& aEvent ) override; diff --git a/eeschema/dialogs/dialog_text_properties_base.cpp b/eeschema/dialogs/dialog_text_properties_base.cpp index 3c7ed7aa55..c2cb5d8187 100644 --- a/eeschema/dialogs/dialog_text_properties_base.cpp +++ b/eeschema/dialogs/dialog_text_properties_base.cpp @@ -233,7 +233,7 @@ DIALOG_TEXT_PROPERTIES_BASE::DIALOG_TEXT_PROPERTIES_BASE( wxWindow* parent, wxWi m_borderStyleLabel->Wrap( -1 ); m_textEntrySizer->Add( m_borderStyleLabel, wxGBPosition( 7, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 ); - m_borderStyleCombo = new wxBitmapComboBox( this, wxID_ANY, _("Combo!"), wxDefaultPosition, wxDefaultSize, 0, NULL, wxCB_READONLY ); + m_borderStyleCombo = new wxBitmapComboBox( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, wxCB_READONLY ); m_borderStyleCombo->SetMinSize( wxSize( 240,-1 ) ); m_textEntrySizer->Add( m_borderStyleCombo, wxGBPosition( 7, 1 ), wxGBSpan( 1, 2 ), wxEXPAND, 5 ); @@ -270,8 +270,14 @@ DIALOG_TEXT_PROPERTIES_BASE::DIALOG_TEXT_PROPERTIES_BASE( wxWindow* parent, wxWi m_textEntrySizer->Add( m_hyperlinkCb, wxGBPosition( 9, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxBOTTOM, 5 ); - m_hyperlinkCtrl = new wxComboBox( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 ); - m_textEntrySizer->Add( m_hyperlinkCtrl, wxGBPosition( 9, 1 ), wxGBSpan( 1, 6 ), wxEXPAND|wxBOTTOM, 5 ); + wxBoxSizer* bSizer11; + bSizer11 = new wxBoxSizer( wxHORIZONTAL ); + + m_hyperlinkCombo = new wxBitmapComboBox( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 ); + bSizer11->Add( m_hyperlinkCombo, 1, wxALIGN_CENTER_VERTICAL, 5 ); + + + m_textEntrySizer->Add( bSizer11, wxGBPosition( 9, 1 ), wxGBSpan( 1, 6 ), wxEXPAND|wxBOTTOM|wxALIGN_CENTER_VERTICAL, 5 ); m_textEntrySizer->AddGrowableCol( 3 ); @@ -307,8 +313,8 @@ DIALOG_TEXT_PROPERTIES_BASE::DIALOG_TEXT_PROPERTIES_BASE( wxWindow* parent, wxWi m_borderCheckbox->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_TEXT_PROPERTIES_BASE::onBorderChecked ), NULL, this ); m_filledCtrl->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_TEXT_PROPERTIES_BASE::onFillChecked ), NULL, this ); m_hyperlinkCb->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_TEXT_PROPERTIES_BASE::onHyperlinkChecked ), NULL, this ); - m_hyperlinkCtrl->Connect( wxEVT_COMMAND_COMBOBOX_SELECTED, wxCommandEventHandler( DIALOG_TEXT_PROPERTIES_BASE::onHyperlinkCombo ), NULL, this ); - m_hyperlinkCtrl->Connect( wxEVT_COMBOBOX_DROPDOWN, wxCommandEventHandler( DIALOG_TEXT_PROPERTIES_BASE::onHyperlinkDropdown ), NULL, this ); + m_hyperlinkCombo->Connect( wxEVT_COMMAND_COMBOBOX_SELECTED, wxCommandEventHandler( DIALOG_TEXT_PROPERTIES_BASE::onHyperlinkCombo ), NULL, this ); + m_hyperlinkCombo->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_TEXT_PROPERTIES_BASE::onHyperlinkText ), NULL, this ); } DIALOG_TEXT_PROPERTIES_BASE::~DIALOG_TEXT_PROPERTIES_BASE() @@ -319,7 +325,7 @@ DIALOG_TEXT_PROPERTIES_BASE::~DIALOG_TEXT_PROPERTIES_BASE() m_borderCheckbox->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_TEXT_PROPERTIES_BASE::onBorderChecked ), NULL, this ); m_filledCtrl->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_TEXT_PROPERTIES_BASE::onFillChecked ), NULL, this ); m_hyperlinkCb->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_TEXT_PROPERTIES_BASE::onHyperlinkChecked ), NULL, this ); - m_hyperlinkCtrl->Disconnect( wxEVT_COMMAND_COMBOBOX_SELECTED, wxCommandEventHandler( DIALOG_TEXT_PROPERTIES_BASE::onHyperlinkCombo ), NULL, this ); - m_hyperlinkCtrl->Disconnect( wxEVT_COMBOBOX_DROPDOWN, wxCommandEventHandler( DIALOG_TEXT_PROPERTIES_BASE::onHyperlinkDropdown ), NULL, this ); + m_hyperlinkCombo->Disconnect( wxEVT_COMMAND_COMBOBOX_SELECTED, wxCommandEventHandler( DIALOG_TEXT_PROPERTIES_BASE::onHyperlinkCombo ), NULL, this ); + m_hyperlinkCombo->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_TEXT_PROPERTIES_BASE::onHyperlinkText ), NULL, this ); } diff --git a/eeschema/dialogs/dialog_text_properties_base.fbp b/eeschema/dialogs/dialog_text_properties_base.fbp index 3b8229709e..df9c8e9cd6 100644 --- a/eeschema/dialogs/dialog_text_properties_base.fbp +++ b/eeschema/dialogs/dialog_text_properties_base.fbp @@ -2289,7 +2289,7 @@ wxFILTER_NONE wxDefaultValidator - Combo! + @@ -2635,70 +2635,81 @@ 5 6 1 - wxEXPAND|wxBOTTOM + wxEXPAND|wxBOTTOM|wxALIGN_CENTER_VERTICAL 9 1 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - - 0 + - 1 - m_hyperlinkCtrl - 1 - - - protected - 1 - - Resizable - -1 - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - onHyperlinkCombo - onHyperlinkDropdown + bSizer11 + wxHORIZONTAL + none + + 5 + wxALIGN_CENTER_VERTICAL + 1 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + + 0 + + 1 + m_hyperlinkCombo + 1 + + + protected + 1 + + Resizable + -1 + 1 + + + ; ; forward_declare + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + onHyperlinkCombo + onHyperlinkText + + diff --git a/eeschema/dialogs/dialog_text_properties_base.h b/eeschema/dialogs/dialog_text_properties_base.h index 3aa4e4fb2e..8fe1869bed 100644 --- a/eeschema/dialogs/dialog_text_properties_base.h +++ b/eeschema/dialogs/dialog_text_properties_base.h @@ -36,7 +36,6 @@ class WX_INFOBAR; #include #include #include -#include #include #include #include @@ -89,7 +88,7 @@ class DIALOG_TEXT_PROPERTIES_BASE : public DIALOG_SHIM wxPanel* m_panelFillColor; COLOR_SWATCH* m_fillColorSwatch; wxCheckBox* m_hyperlinkCb; - wxComboBox* m_hyperlinkCtrl; + wxBitmapComboBox* m_hyperlinkCombo; wxStaticLine* m_staticline; wxStdDialogButtonSizer* m_sdbSizer1; wxButton* m_sdbSizer1OK; @@ -102,7 +101,7 @@ class DIALOG_TEXT_PROPERTIES_BASE : public DIALOG_SHIM virtual void onFillChecked( wxCommandEvent& event ) { event.Skip(); } virtual void onHyperlinkChecked( wxCommandEvent& event ) { event.Skip(); } virtual void onHyperlinkCombo( wxCommandEvent& event ) { event.Skip(); } - virtual void onHyperlinkDropdown( wxCommandEvent& event ) { event.Skip(); } + virtual void onHyperlinkText( wxCommandEvent& event ) { event.Skip(); } public: