← Back to team overview

kicad-developers team mailing list archive

Add links to library contributor page(s) on GitHub

 

The attached patch adds links to the library contributor pages, which list
all the contributors to the various library repositories:

Previously the symbols and footprints were attributed to "Leet hacker1" and
her associate "Leet hacker2". While I am sure they have made valuable
contributions, I think their time has come.

[image: Inline image 1]


Wayne: I would like to reiterate that Christophe and Renie have not made
contributions to the _current_ 3D model repository which has been
completely remastered thanks to the great efforts of Maurice et al. It has
_no_ resemblance to the old hodge-podge of model files, it's a real credit
to the work of the modeling team

I think here (unlike the icons credits) it would be sufficient to just link
to the GitHub contributors page - would you agree?

Thanks,
Oliver

PNG image

From f1fc41e7e6810873f6eee00f5895e2269dbcf749 Mon Sep 17 00:00:00 2001
From: Oliver <oliver.henry.walters@xxxxxxxxx>
Date: Tue, 12 Dec 2017 00:56:32 +1100
Subject: [PATCH] Add links to list of library contributors on GitHub

- Apologies to "leet hackers"
- Add URL option to contributor entity
---
 common/dialog_about/AboutDialog_main.cpp | 43 ++++++++++++++++++++++++++++++--
 common/dialog_about/aboutinfo.h          |  4 +++
 common/dialog_about/dialog_about.cpp     | 29 ++++++++++++++++-----
 3 files changed, 68 insertions(+), 8 deletions(-)

diff --git a/common/dialog_about/AboutDialog_main.cpp b/common/dialog_about/AboutDialog_main.cpp
index d259962..2c362f4 100644
--- a/common/dialog_about/AboutDialog_main.cpp
+++ b/common/dialog_about/AboutDialog_main.cpp
@@ -254,94 +254,117 @@ static void buildKicadAboutBanner( EDA_BASE_FRAME* aParent, ABOUT_APP_INFO& aInf
      */
     aInfo.AddTranslator( new CONTRIBUTOR( "Robert Buj",
                                           wxEmptyString,
+                                          wxEmptyString,
                                           "Catalan (CA)",
                                           KiBitmapNew( lang_catalan_xpm ) ) );
     aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Martin Kratoška" ),
                                           wxEmptyString,
+                                          wxEmptyString,
                                           "Czech (CZ)",
                                           KiBitmapNew( lang_cs_xpm ) ) );
     aInfo.AddTranslator( new CONTRIBUTOR( "Jerry Jacobs",
                                           wxEmptyString,
+                                          wxEmptyString,
                                           "Dutch (NL)",
                                           KiBitmapNew( lang_nl_xpm ) ) );
     aInfo.AddTranslator( new CONTRIBUTOR( "Vesa Solonen",
                                           wxEmptyString,
+                                          wxEmptyString,
                                           "Finnish (FI)",
                                           KiBitmapNew( lang_fi_xpm ) ) );
     aInfo.AddTranslator( new CONTRIBUTOR( "Jean-Pierre Charras",
                                           wxEmptyString,
+                                          wxEmptyString,
                                           "French (FR)",
                                           KiBitmapNew( lang_fr_xpm ) ) );
     aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Mateusz Skowroński" ),
                                           wxEmptyString,
+                                          wxEmptyString,
                                           "Polish (PL)",
                                           KiBitmapNew( lang_pl_xpm ) ) );
     aInfo.AddTranslator( new CONTRIBUTOR( "Kerusey Karyu",
                                           wxEmptyString,
+                                          wxEmptyString,
                                           "Polish (PL)",
                                           KiBitmapNew( lang_pl_xpm ) ) );
     aInfo.AddTranslator( new CONTRIBUTOR( "Renie Marquet",
                                           wxEmptyString,
+                                          wxEmptyString,
                                           "Portuguese (PT)",
                                           KiBitmapNew( lang_pt_xpm ) ) );
     aInfo.AddTranslator( new CONTRIBUTOR( "Igor Plyatov",
                                           wxEmptyString,
+                                          wxEmptyString,
                                           "Russian (RU)",
                                           KiBitmapNew( lang_ru_xpm ) ) );
     aInfo.AddTranslator( new CONTRIBUTOR( "Andrey Fedorushkov",
                                           wxEmptyString,
+                                          wxEmptyString,
                                           "Russian (RU)",
                                           KiBitmapNew( lang_ru_xpm ) ) );
     aInfo.AddTranslator( new CONTRIBUTOR( "Eldar Khayrullin",
                                           wxEmptyString,
+                                          wxEmptyString,
                                           "Russian (RU)",
                                          KiBitmapNew( lang_ru_xpm ) ) );
     aInfo.AddTranslator( new CONTRIBUTOR( "Pedro Martin del Valle",
                                           wxEmptyString,
+                                          wxEmptyString,
                                           "Spanish (ES)",
                                           KiBitmapNew( lang_es_xpm ) ) );
     aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Iñigo Zuluaga" ),
                                           wxEmptyString,
+                                          wxEmptyString,
                                           "Spanish (ES)",
                                           KiBitmapNew( lang_es_xpm ) ) );
     aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Iñigo Figuero" ),
                                           wxEmptyString,
+                                          wxEmptyString,
                                           "Spanish (ES)",
                                           KiBitmapNew( lang_es_xpm ) ) );
     aInfo.AddTranslator( new CONTRIBUTOR( "Rafael Sokolowski",
                                           wxEmptyString,
+                                          wxEmptyString,
                                           "German (DE)",
                                           KiBitmapNew( lang_de_xpm ) ) );
     aInfo.AddTranslator( new CONTRIBUTOR( "Kenta Yonekura",
                                           wxEmptyString,
+                                          wxEmptyString,
                                           "Japanese (JA)",
                                           KiBitmapNew( lang_jp_xpm ) ) );
     aInfo.AddTranslator( new CONTRIBUTOR( "Manolis Stefanis",
                                           wxEmptyString,
+                                          wxEmptyString,
                                           "Greek (el_GR)",
                                           KiBitmapNew( lang_gr_xpm ) ) );
     aInfo.AddTranslator( new CONTRIBUTOR( "Athanasios Vlastos",
                                           wxEmptyString,
+                                          wxEmptyString,
                                           "Greek (el_GR)",
                                           KiBitmapNew( lang_gr_xpm ) ) );
     aInfo.AddTranslator( new CONTRIBUTOR( "Milonas Kostas",
                                           wxEmptyString,
+                                          wxEmptyString,
                                           "Greek (el_GR)",
                                           KiBitmapNew( lang_gr_xpm ) ) );
     aInfo.AddTranslator( new CONTRIBUTOR( "Michail Misirlis",
                                           wxEmptyString,
+                                          wxEmptyString,
                                           "Greek (el_GR)",
                                           KiBitmapNew( lang_gr_xpm ) ) );
     aInfo.AddTranslator( new CONTRIBUTOR( "Massimo Cioce",
                                           wxEmptyString,
+                                          wxEmptyString,
                                           "Italian (IT)",
                                           KiBitmapNew( lang_it_xpm ) ) );
     aInfo.AddTranslator( new CONTRIBUTOR( "Marco Ciampa",
                                           wxEmptyString,
+                                          wxEmptyString,
                                           "Italian (IT)",
                                           KiBitmapNew( lang_it_xpm ) ) );
     aInfo.AddTranslator( new CONTRIBUTOR( "Evgeniy Ivanov",
                                           wxEmptyString,
+                                          wxEmptyString,
                                           "Bulgarian (BG)",
                                           KiBitmapNew( lang_bg_xpm ) ) );
 
@@ -349,52 +372,68 @@ static void buildKicadAboutBanner( EDA_BASE_FRAME* aParent, ABOUT_APP_INFO& aInf
     #define OTHERS_IN_TRANSLATION _( "Others" )
     aInfo.AddTranslator( new CONTRIBUTOR( "Remy Halvick",
                                           wxEmptyString,
+                                          wxEmptyString,
                                           OTHERS_IN_TRANSLATION ) );
     aInfo.AddTranslator( new CONTRIBUTOR( "David Briscoe",
                                           wxEmptyString,
+                                          wxEmptyString,
                                           OTHERS_IN_TRANSLATION ) );
     aInfo.AddTranslator( new CONTRIBUTOR( "Dominique Laigle",
                                           wxEmptyString,
+                                          wxEmptyString,
                                           OTHERS_IN_TRANSLATION ) );
     aInfo.AddTranslator( new CONTRIBUTOR( "Paul Burke",
                                           wxEmptyString,
+                                          wxEmptyString,
                                           OTHERS_IN_TRANSLATION ) );
 
     // Programm credits for icons
     #define ICON_CONTRIBUTION _( "Icons by" )
     aInfo.AddArtist( new CONTRIBUTOR( wxT( "Iñigo Zuluaga" ),
                                       wxEmptyString,
+                                      wxEmptyString,
                                       ICON_CONTRIBUTION,
                                       KiBitmapNew( svg_file_xpm ) ) );
     aInfo.AddArtist( new CONTRIBUTOR( "Konstantin Baranovskiy",
                                       wxEmptyString,
+                                      wxEmptyString,
                                       ICON_CONTRIBUTION,
                                       KiBitmapNew( svg_file_xpm ) ) );
     aInfo.AddArtist( new CONTRIBUTOR( "Fabrizio Tappero",
                                       wxEmptyString,
+                                      wxEmptyString,
                                       ICON_CONTRIBUTION,
                                       KiBitmapNew( svg_file_xpm ) ) );
 
     // Program credits for 3d models
     #define MODELS_3D_CONTRIBUTION _( "3D models by" )
+    aInfo.AddArtist( new CONTRIBUTOR( "GitHub contributors",
+                                      wxEmptyString,
+                                      "https://github.com/KiCad/kicad-packages3D/graphs/contributors";,
+                                      MODELS_3D_CONTRIBUTION,
+                                      KiBitmapNew( three_d_xpm ) ) );
     aInfo.AddArtist( new CONTRIBUTOR( "Christophe Boschat",
                                       wxEmptyString,
+                                      wxEmptyString,
                                       MODELS_3D_CONTRIBUTION,
                                       KiBitmapNew( three_d_xpm ) ) );
     aInfo.AddArtist( new CONTRIBUTOR( "Renie Marquet",
                                       wxEmptyString,
+                                      wxEmptyString,
                                       MODELS_3D_CONTRIBUTION,
                                       KiBitmapNew( three_d_xpm ) ) );
 
     #define SYMBOL_LIB_CONTRIBUTION _( "Symbols by" )
-    aInfo.AddArtist( new CONTRIBUTOR( "Leet Hacker1",
+    aInfo.AddArtist( new CONTRIBUTOR( "GitHub contributors",
                                       wxEmptyString,
+                                      "https://github.com/KiCad/kicad-symbols/graphs/contributors";,
                                       SYMBOL_LIB_CONTRIBUTION,
                                       KiBitmapNew( edit_component_xpm ) ) );
 
     #define FOOTPRINT_LIB_CONTRIBUTION _( "Footprints by" )
-    aInfo.AddArtist( new CONTRIBUTOR( "Leet Hacker2",
+    aInfo.AddArtist( new CONTRIBUTOR( "GitHub contributors",
                                       wxEmptyString,
+                                      "https://github.com/KiCad/kicad-footprints/graphs/contributors";,
                                       FOOTPRINT_LIB_CONTRIBUTION,
                                       KiBitmapNew( edit_module_xpm ) ) );
 
diff --git a/common/dialog_about/aboutinfo.h b/common/dialog_about/aboutinfo.h
index 0d51c89..cb66215 100644
--- a/common/dialog_about/aboutinfo.h
+++ b/common/dialog_about/aboutinfo.h
@@ -138,11 +138,13 @@ class CONTRIBUTOR
 public:
     CONTRIBUTOR( const wxString& aName,
                  const wxString& aEmail = wxEmptyString,
+                 const wxString& aUrl = wxEmptyString,
                  const wxString& aCategory = wxEmptyString,
                  wxBitmap*       aIcon = NULL )
     {
         m_checked = false;
         m_name = aName;
+        m_url = aUrl,
         m_email = aEmail;
         m_category = aCategory;
         m_icon = aIcon;
@@ -152,6 +154,7 @@ public:
 
     wxString& GetName()     { return m_name; }
     wxString& GetEMail()    { return m_email; }
+    wxString& GetUrl()      { return m_url; }
     wxString& GetCategory() { return m_category; }
     wxBitmap* GetIcon()     { return m_icon; }
     void SetChecked( bool status ) { m_checked = status; }
@@ -160,6 +163,7 @@ public:
 private:
     wxString  m_name;
     wxString  m_email;
+    wxString  m_url;
     wxString  m_category;
     wxBitmap* m_icon;
     bool      m_checked;
diff --git a/common/dialog_about/dialog_about.cpp b/common/dialog_about/dialog_about.cpp
index 0e4d881..cb3ae91 100644
--- a/common/dialog_about/dialog_about.cpp
+++ b/common/dialog_about/dialog_about.cpp
@@ -39,6 +39,7 @@ extern std::string GetCurlLibVersion();
 #include <boost/version.hpp>
 #include <wx/clipbrd.h>
 #include <wx/msgdlg.h>
+#include <wx/hyperlink.h>
 
 /* All KiCad icons are linked into shared library 'libbitmaps.a'.
  *  Icons:
@@ -251,13 +252,29 @@ void DIALOG_ABOUT::createNotebookPageByCategory(wxAuiNotebook* aParent, const wx
                     // First column is empty
                     fgSizer1->AddSpacer(5);
 
-                    // Name of contributor at second column
-                    wxStaticText* m_staticText2 = new wxStaticText( m_scrolledWindow1, wxID_ANY,
-                                                                    wxT(" • ") + sub_contributor->GetName(),
-                                                                    wxDefaultPosition,
-                                                                    wxDefaultSize, 0 );
+                    wxControl* ctrl;
+
+                    // No URL supplied, display normal text control
+                    if( sub_contributor->GetUrl().IsEmpty() )
+                    {
+                        ctrl = new wxStaticText( m_scrolledWindow1, wxID_ANY,
+                                                 "  • " + sub_contributor->GetName(),
+                                                 wxDefaultPosition,
+                                                 wxDefaultSize, 0 );
+                    }
+                    else
+                    {
+                        // Display a hyperlink control instead
+                        ctrl = new wxHyperlinkCtrl( m_scrolledWindow1, wxID_ANY,
+                                                    "• " + sub_contributor->GetName(),
+                                                    sub_contributor->GetUrl(),
+                                                    wxDefaultPosition,
+                                                    wxDefaultSize, wxHL_ALIGN_LEFT );
+                    }
+
                     m_staticText1->Wrap( -1 );
-                    fgSizer1->Add( m_staticText2, 0, wxALIGN_LEFT|wxBOTTOM, 2 );
+
+                    fgSizer1->Add( ctrl, 0, wxALIGN_LEFT|wxBOTTOM, 2 );
 
                     // Email address of contributor at third column
                     if( sub_contributor->GetEMail() != wxEmptyString )
-- 
2.7.4


Follow ups