From 5861a43dd490b5b331bf11508e2464f82fe2ab60 Mon Sep 17 00:00:00 2001 From: charras Date: Wed, 20 Jan 2010 12:43:05 +0000 Subject: [PATCH] Cosmetic enhancements. patch for relative paths. --- bitmaps/CMakeLists.txt | 2 + bitmaps/fabrication.xpm | 38 ++ bitmaps/pads_mask_layers.xpm | 38 ++ bitmaps/sources/fabrication.svg | 371 ++++++++++++++++++ bitmaps/sources/pads_mask_layers.svg | 124 ++++++ eeschema/dialog_eeschema_config.cpp | 14 + eeschema/menubar.cpp | 4 +- include/bitmaps.h | 2 + internat/fr/kicad.mo | Bin 221538 -> 221787 bytes internat/fr/kicad.po | 253 ++++++------ pcbnew/dialog_copper_zones.cpp | 11 +- pcbnew/dialog_edit_module_for_BoardEditor.cpp | 16 + pcbnew/dialog_edit_module_for_Modedit.cpp | 16 + pcbnew/dialog_general_options.cpp | 8 +- pcbnew/dialog_mask_clearance.cpp | 1 + pcbnew/dialog_pad_properties.cpp | 2 + .../dialog_pcbnew_config_libs_and_paths.cpp | 14 + pcbnew/dialog_print_for_modedit.cpp | 7 +- pcbnew/menubar_pcbframe.cpp | 9 +- 19 files changed, 784 insertions(+), 146 deletions(-) create mode 100644 bitmaps/fabrication.xpm create mode 100644 bitmaps/pads_mask_layers.xpm create mode 100644 bitmaps/sources/fabrication.svg create mode 100644 bitmaps/sources/pads_mask_layers.svg diff --git a/bitmaps/CMakeLists.txt b/bitmaps/CMakeLists.txt index 8698ea7473..27ef4b3185 100644 --- a/bitmaps/CMakeLists.txt +++ b/bitmaps/CMakeLists.txt @@ -126,6 +126,7 @@ set(BITMAP_SRCS Export_Module.xpm Export_Options_Pad.xpm export.xpm + fabrication.xpm File_FootPrint.xpm fill_zone.xpm find_xpm.xpm @@ -285,6 +286,7 @@ set(BITMAP_SRCS Orient.xpm Pad_Sketch.xpm pad.xpm + pads_mask_layers.xpm palette.xpm part_properties.xpm paste.xpm diff --git a/bitmaps/fabrication.xpm b/bitmaps/fabrication.xpm new file mode 100644 index 0000000000..71c268ccbd --- /dev/null +++ b/bitmaps/fabrication.xpm @@ -0,0 +1,38 @@ +/* XPM */ +const char *fabrication_xpm[] = { +/* columns rows colors chars-per-pixel */ +"16 16 16 1", +"- c #5D7FB0", +"O c #7493A6", +"& c #AFB6BF", +"X c #C2AA9C", +"# c #8B6C60", +"o c #8DA4BD", +"= c #94817F", +"$ c #69839C", +"% c #6C493D", +" c None", +"+ c #A78372", +"; c #4973A9", +"@ c #755A52", +". c #B6917F", +"* c #708EB8", +": c #3C6397", +/* pixels */ +" ...X oO ", +" +@#X o$$$", +" +%. OOOO$", +"X.& &+%. $OO$ ", +".#+.+%%+ ooO*& ", +" +%%%%%%.ooO& ", +" &.=.=%%@oO ", +" &.@o$. ", +" &**$$%@. ", +" &**-;=@%@. ", +" o***;-&+@%#. ", +" **o*:;o +@%#. ", +"*o *:-o +@#+X", +"*o-:;* .==.", +"*-:;- .. ", +" *-- " +}; diff --git a/bitmaps/pads_mask_layers.xpm b/bitmaps/pads_mask_layers.xpm new file mode 100644 index 0000000000..5fb5782473 --- /dev/null +++ b/bitmaps/pads_mask_layers.xpm @@ -0,0 +1,38 @@ +/* XPM */ +const char *pads_mask_layers_xpm[] = { +/* columns rows colors chars-per-pixel */ +"16 16 16 1", +"= c #9E0808", +"- c #AC2A2C", +"X c #5E9A86", +"* c #782222", +"% c #54392C", +"$ c #B19D9F", +" c None", +"@ c #376836", +"o c #629B65", +": c #B48684", +"+ c #347E47", +"O c #3C8C57", +"# c #2E551D", +"; c #B46E6E", +". c #8FAD90", +"& c #4C5E44", +/* pixels */ +" ", +" ", +" ....X ", +".XoXoooooooOo ", +".OoOOOOOOOOOo. ", +" O+++@@@@##@Oo ", +" X@#########+o. ", +" $O#########@Oo ", +" X@#########+o.", +" O######%#%&X ", +" X&%%%*****=$ ", +" $========-; ", +" ;;;:$ ", +" ", +" ", +" " +}; diff --git a/bitmaps/sources/fabrication.svg b/bitmaps/sources/fabrication.svg new file mode 100644 index 0000000000..8fabcdd9c6 --- /dev/null +++ b/bitmaps/sources/fabrication.svg @@ -0,0 +1,371 @@ + + + + + fabrication.svg + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + Jakub Steiner + + + + + fabrication.svg + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bitmaps/sources/pads_mask_layers.svg b/bitmaps/sources/pads_mask_layers.svg new file mode 100644 index 0000000000..17da6ab905 --- /dev/null +++ b/bitmaps/sources/pads_mask_layers.svg @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + diff --git a/eeschema/dialog_eeschema_config.cpp b/eeschema/dialog_eeschema_config.cpp index 3c90607f7d..edcd973e67 100644 --- a/eeschema/dialog_eeschema_config.cpp +++ b/eeschema/dialog_eeschema_config.cpp @@ -297,6 +297,20 @@ void DIALOG_EESCHEMA_CONFIG::OnAddOrInsertPath( wxCommandEvent& event ) if ( jj >= 0 ) ipos = jj; } + + // Ask the user if this is a relative path + int diag = wxMessageBox( + _( "Use a relative path?" ), + _( "Path type" ), + wxYES_NO | wxICON_QUESTION, this ); + + if( diag == wxYES ) + { // Make it relative + wxFileName fn = path; + fn.MakeRelativeTo( wxT(".") ); + path = fn.GetPathWithSep() + fn.GetFullName(); + } + m_listUserPaths->Insert(path, ipos); m_LibPathChanged = true; wxGetApp().InsertLibraryPath( path, ipos+1 ); diff --git a/eeschema/menubar.cpp b/eeschema/menubar.cpp index 340d7fa11b..1105eea9b3 100644 --- a/eeschema/menubar.cpp +++ b/eeschema/menubar.cpp @@ -223,10 +223,10 @@ void WinEDA_SchematicFrame::ReCreateMenuBar() /* Zoom out */ #if !defined( __WXMAC__) - text = AddHotkeyName( _( "Zoom Out\t" ), s_Schematic_Hokeys_Descr, + text = AddHotkeyName( _( "Zoom Out" ), s_Schematic_Hokeys_Descr, HK_ZOOM_OUT ); #else - text = _( "Zoom out\tCtrl+-" ); + text = _( "Zoom Out\tCtrl+-" ); #endif /* !defined( __WXMAC__) */ item = new wxMenuItem( viewMenu, ID_ZOOM_OUT, text, _( "Zoom Out" ), diff --git a/include/bitmaps.h b/include/bitmaps.h index 7ba4d08411..8b3a65295e 100644 --- a/include/bitmaps.h +++ b/include/bitmaps.h @@ -119,6 +119,7 @@ extern const char* exit_xpm[]; extern const char* export_module_xpm[]; extern const char* export_options_pad_xpm[]; extern const char* export_xpm[]; +extern const char* fabrication_xpm[]; extern const char* file_footprint_xpm[]; extern const char* fill_zone_xpm[]; extern const char* find_xpm[]; @@ -277,6 +278,7 @@ extern const char* opt_show_polygon_xpm[]; extern const char* orient_xpm[]; extern const char* pad_sketch_xpm[]; extern const char* pad_xpm[]; +extern const char* pads_mask_layers_xpm[]; extern const char* palette_xpm[]; extern const char* part_properties_xpm[]; extern const char* paste_xpm[]; diff --git a/internat/fr/kicad.mo b/internat/fr/kicad.mo index b3f6d1bb63613c901c33e5e623ad796b603c88e1..12c2aa7e9f24ee3c2c9ff7903fae17ae4f52d0e6 100644 GIT binary patch delta 64517 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 HL&N?*L3_z8 delta 64259 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\n" "MIME-Version: 1.0\n" @@ -1088,12 +1088,12 @@ msgstr "X Pos" msgid "Y pos" msgstr "Y pos" -#: pcbnew/hotkeys.cpp:601 +#: pcbnew/hotkeys.cpp:599 #, c-format msgid "Footprint %s found, but locked" msgstr "Module %s trouvé, mais verrouillé" -#: pcbnew/hotkeys.cpp:794 +#: pcbnew/hotkeys.cpp:797 msgid "Delete module?" msgstr "Effacer Module?" @@ -1487,6 +1487,14 @@ msgstr "Rot de la forme" msgid "3D Shape:" msgstr "Forme 3D:" +#: pcbnew/dialog_edit_module_for_BoardEditor.cpp:412 +msgid "Use a relative path?" +msgstr "Utiliser un chemin relatif?" + +#: pcbnew/dialog_edit_module_for_BoardEditor.cpp:413 +msgid "Path type" +msgstr "Type de chemin" + #: pcbnew/set_color.cpp:278 #: pcbnew/set_color.cpp:304 msgid "Show None" @@ -2726,11 +2734,11 @@ msgstr "Fichiers PCB GenCAD 1.4 (.cad)|*.cad" msgid "Save GenCAD Board File" msgstr "Sauver Fichier PCB format GenCAD" -#: pcbnew/dialog_copper_zones.cpp:280 +#: pcbnew/dialog_copper_zones.cpp:281 msgid "Error : Zone clearance is set to an unreasonnable value" msgstr "Erreur: l'isolation de zone est réglée à une valeur déraisonnable." -#: pcbnew/dialog_copper_zones.cpp:291 +#: pcbnew/dialog_copper_zones.cpp:292 #: pcbnew/zones_non_copper_type_functions.cpp:142 msgid "" "Error :\n" @@ -2739,7 +2747,7 @@ msgstr "" "Erreur :\n" "vous devez choisir une valeur pour l'épaisseur de cuivre dans les freins thermiques plus grande que 0,001 pouce (ou 0,0254 mm)" -#: pcbnew/dialog_copper_zones.cpp:316 +#: pcbnew/dialog_copper_zones.cpp:317 msgid "" "Error :\n" "you must choose a copper bridge value for thermal reliefs bigger than the min zone thickness" @@ -2747,16 +2755,16 @@ msgstr "" "Erreur :\n" "vous devez choisir une valeur pour l'épaisseur de cuivre dans les freins thermiques plus grande que l'épaisseur de cuivre minimum des zones" -#: pcbnew/dialog_copper_zones.cpp:328 +#: pcbnew/dialog_copper_zones.cpp:329 #: pcbnew/zones_non_copper_type_functions.cpp:178 msgid "Error : you must choose a layer" msgstr "Erreur: Vous devez choisir une couche" -#: pcbnew/dialog_copper_zones.cpp:340 +#: pcbnew/dialog_copper_zones.cpp:341 msgid "Error : you must choose a net name" msgstr "Erreur: Vous devez choisir une équipotentielle" -#: pcbnew/dialog_copper_zones.cpp:347 +#: pcbnew/dialog_copper_zones.cpp:348 msgid "You have chosen the \"not connected\" option. This will create insulated copper islands. Are you sure ?" msgstr "Vous avez choisi l'option \"non connecté\". Cela créera des ilots de cuivre non connectés. Etes vous sûr ?" @@ -4170,11 +4178,11 @@ msgstr "Librairie déjà en usage" msgid "Default Path for Libraries" msgstr "Chemin par Défaut des Librairies" -#: pcbnew/dialog_pcbnew_config_libs_and_paths.cpp:275 +#: pcbnew/dialog_pcbnew_config_libs_and_paths.cpp:289 msgid "Path already in use" msgstr "Chemin déjà en usage" -#: pcbnew/dialog_pcbnew_config_libs_and_paths.cpp:314 +#: pcbnew/dialog_pcbnew_config_libs_and_paths.cpp:328 msgid "Footprint document file:" msgstr "Documentation des Modules:" @@ -5705,7 +5713,7 @@ msgstr "Vias" msgid "Net Length" msgstr "Long. Net" -#: pcbnew/dialog_print_for_modedit.cpp:242 +#: pcbnew/dialog_print_for_modedit.cpp:239 msgid "Print Footprint" msgstr "Imprimer Module" @@ -6358,15 +6366,15 @@ msgstr "Change Pads du Module" msgid "Change Pads on Same Modules" msgstr "Change Pads des Modules id." -#: pcbnew/dialog_pad_properties.cpp:477 +#: pcbnew/dialog_pad_properties.cpp:479 msgid "Incorrect value for pad drill: pad drill bigger than pad size" msgstr "Valeur incorrecte pour diamètre de perçage: perçage plus grand que la taille du pad" -#: pcbnew/dialog_pad_properties.cpp:483 +#: pcbnew/dialog_pad_properties.cpp:485 msgid "Incorrect value for pad offset" msgstr "Valeur incorrecte pour offset du pad" -#: pcbnew/dialog_pad_properties.cpp:577 +#: pcbnew/dialog_pad_properties.cpp:579 msgid "Unknown netname, no change" msgstr "Net inconnu, pas de changement" @@ -6487,353 +6495,351 @@ msgstr "Fichiers de Fabrication" msgid "Generate files for fabrication" msgstr "Générer des fichiers utiles pour la fabrication du circuit" -#: pcbnew/menubar_pcbframe.cpp:139 +#: pcbnew/menubar_pcbframe.cpp:140 msgid "&Specctra Session" msgstr "&Specctra Session" -#: pcbnew/menubar_pcbframe.cpp:140 +#: pcbnew/menubar_pcbframe.cpp:141 msgid "Import a routed \"Specctra Session\" (*.ses) file" msgstr "Importer un fichier de routage \"Specctra Session\" (*.ses) " -#: pcbnew/menubar_pcbframe.cpp:154 +#: pcbnew/menubar_pcbframe.cpp:155 #: eeschema/libframe.cpp:718 msgid "Import" msgstr "Importer" -#: pcbnew/menubar_pcbframe.cpp:155 +#: pcbnew/menubar_pcbframe.cpp:156 msgid "Import files" msgstr "Importer fichiers" -#: pcbnew/menubar_pcbframe.cpp:163 +#: pcbnew/menubar_pcbframe.cpp:164 msgid "&Specctra DSN" msgstr "&Specctra DSN" -#: pcbnew/menubar_pcbframe.cpp:164 +#: pcbnew/menubar_pcbframe.cpp:165 msgid "Export the current board to a \"Specctra DSN\" file" msgstr "Exporte le CI courant dans un fichier au format \"Specctra DSN\"" -#: pcbnew/menubar_pcbframe.cpp:170 +#: pcbnew/menubar_pcbframe.cpp:171 msgid "&GenCAD" msgstr "&GenCAD" -#: pcbnew/menubar_pcbframe.cpp:170 +#: pcbnew/menubar_pcbframe.cpp:171 msgid "Export GenCAD Format" msgstr "Exporter en Format GenCAD" -#: pcbnew/menubar_pcbframe.cpp:176 +#: pcbnew/menubar_pcbframe.cpp:177 msgid "&Module Report" msgstr "Rapport &Modules" -#: pcbnew/menubar_pcbframe.cpp:177 +#: pcbnew/menubar_pcbframe.cpp:178 msgid "Create a report of all modules on the current board" msgstr "Créer un fichier rapport de tous les modules du C.I." -#: pcbnew/menubar_pcbframe.cpp:181 +#: pcbnew/menubar_pcbframe.cpp:182 msgid "&Export" msgstr "&Exporter" -#: pcbnew/menubar_pcbframe.cpp:182 +#: pcbnew/menubar_pcbframe.cpp:183 msgid "Export board" msgstr "Exporter le C.I." -#: pcbnew/menubar_pcbframe.cpp:188 +#: pcbnew/menubar_pcbframe.cpp:189 #, fuzzy msgid "&Print\tCtrl+P" msgstr "&Ouvrir\tCtrl+O" -#: pcbnew/menubar_pcbframe.cpp:189 +#: pcbnew/menubar_pcbframe.cpp:190 msgid "Print pcb board" msgstr "Imprimer C.I." -#: pcbnew/menubar_pcbframe.cpp:194 +#: pcbnew/menubar_pcbframe.cpp:195 msgid "Print S&VG" msgstr "Impression S&VG" -#: pcbnew/menubar_pcbframe.cpp:195 +#: pcbnew/menubar_pcbframe.cpp:196 msgid "Plot board in Scalable Vector Graphics format" msgstr "Tracer le circuit imprimé en format SVG (Scalable Vector Graphics)" -#: pcbnew/menubar_pcbframe.cpp:200 +#: pcbnew/menubar_pcbframe.cpp:201 msgid "&Plot" msgstr "&Tracer" -#: pcbnew/menubar_pcbframe.cpp:201 +#: pcbnew/menubar_pcbframe.cpp:202 msgid "Plot board in HPGL, PostScript or Gerber RS-274X format)" msgstr "Tracer le circuit en format HPGL, POSTSCRIPT ou GERBER RS-274X" -#: pcbnew/menubar_pcbframe.cpp:209 +#: pcbnew/menubar_pcbframe.cpp:210 msgid "Add New Footprints" msgstr "Ajouter Nouveaux Modules" -#: pcbnew/menubar_pcbframe.cpp:211 +#: pcbnew/menubar_pcbframe.cpp:212 msgid "Archive new footprints only in a library (keep other footprints in this lib)" msgstr "Archiver nouveaux modules seuls dans une librairie (garder les autres modules de cette librairie)" -#: pcbnew/menubar_pcbframe.cpp:215 +#: pcbnew/menubar_pcbframe.cpp:216 msgid "Create Footprint Archive" msgstr "Créer Archive des Modules" -#: pcbnew/menubar_pcbframe.cpp:216 +#: pcbnew/menubar_pcbframe.cpp:217 msgid "Archive all footprints in a library(old lib will be deleted)" msgstr "Archiver tous les modules dans une librairie (ancienne librairie supprimée)" -#: pcbnew/menubar_pcbframe.cpp:221 +#: pcbnew/menubar_pcbframe.cpp:222 msgid "Archive Footprints" msgstr "Archiver Modules" -#: pcbnew/menubar_pcbframe.cpp:222 +#: pcbnew/menubar_pcbframe.cpp:223 msgid "Archive or add footprints in a library file" msgstr "Archiver ou ajouter les modules dans un fichier librairie" -#: pcbnew/menubar_pcbframe.cpp:229 +#: pcbnew/menubar_pcbframe.cpp:230 msgid "&Quit" msgstr "&Quitter" -#: pcbnew/menubar_pcbframe.cpp:230 +#: pcbnew/menubar_pcbframe.cpp:231 msgid "Quit PCBNew" msgstr "Quitter PCBnew" -#: pcbnew/menubar_pcbframe.cpp:244 +#: pcbnew/menubar_pcbframe.cpp:245 msgid "Undo" msgstr "Undo" -#: pcbnew/menubar_pcbframe.cpp:246 +#: pcbnew/menubar_pcbframe.cpp:247 #, fuzzy msgid "Undo\tCtrl+Z" msgstr "&Ouvrir\tCtrl+O" -#: pcbnew/menubar_pcbframe.cpp:255 +#: pcbnew/menubar_pcbframe.cpp:256 msgid "Redo" msgstr "Redo" -#: pcbnew/menubar_pcbframe.cpp:257 +#: pcbnew/menubar_pcbframe.cpp:258 msgid "Redo\tShift+Ctrl+Z" msgstr "" -#: pcbnew/menubar_pcbframe.cpp:269 -msgid "&Find..." +#: pcbnew/menubar_pcbframe.cpp:270 +msgid "&Find" msgstr "&Chercher" -#: pcbnew/menubar_pcbframe.cpp:271 +#: pcbnew/menubar_pcbframe.cpp:272 #, fuzzy msgid "Find\tCtrl+F" msgstr "&Ouvrir\tCtrl+O" -#: pcbnew/menubar_pcbframe.cpp:275 +#: pcbnew/menubar_pcbframe.cpp:276 msgid "Find components and text in current loaded board" msgstr "Recherche de composants et textes sur le circuit" -#: pcbnew/menubar_pcbframe.cpp:284 +#: pcbnew/menubar_pcbframe.cpp:285 msgid "Global &Deletions" msgstr "Effacements &Généraux" -#: pcbnew/menubar_pcbframe.cpp:285 +#: pcbnew/menubar_pcbframe.cpp:286 msgid "Delete tracks, modules, texts... on board" msgstr "Effacer pistes, modules, textes... sur le C.I." -#: pcbnew/menubar_pcbframe.cpp:291 -msgid "&Tracks" -msgstr "&Pistes" +#: pcbnew/menubar_pcbframe.cpp:292 +msgid "&Tracks and Vias Cleanup" +msgstr "&Nettoyage Pistes et Vias" -#: pcbnew/menubar_pcbframe.cpp:293 +#: pcbnew/menubar_pcbframe.cpp:294 msgid "Clean stubs, vias, delete break points, or connect dangling tracks to pads and vias" msgstr "Nettoyer bouts de pistes, vias, points inutiles, ou connecter extrémités de pistes mal connectées au centre de pads ou vias" -#: pcbnew/menubar_pcbframe.cpp:299 +#: pcbnew/menubar_pcbframe.cpp:300 msgid "&Swap Layers" msgstr "&Permutte Couches" -#: pcbnew/menubar_pcbframe.cpp:300 +#: pcbnew/menubar_pcbframe.cpp:301 msgid "Swap tracks on copper layers or drawings on others layers" msgstr "Permutation de couches" -#: pcbnew/menubar_pcbframe.cpp:312 -#: pcbnew/menubar_pcbframe.cpp:318 -#, fuzzy +#: pcbnew/menubar_pcbframe.cpp:313 +#: pcbnew/menubar_pcbframe.cpp:319 msgid "Zoom In" msgstr "Zoom +" -#: pcbnew/menubar_pcbframe.cpp:315 +#: pcbnew/menubar_pcbframe.cpp:316 #, fuzzy msgid "Zoom In\tCtrl++" msgstr "Zoom +" -#: pcbnew/menubar_pcbframe.cpp:328 +#: pcbnew/menubar_pcbframe.cpp:329 #, fuzzy msgid "Zoom Out\tCtrl+-" msgstr "Zoom -" -#: pcbnew/menubar_pcbframe.cpp:331 -#, fuzzy +#: pcbnew/menubar_pcbframe.cpp:332 msgid "Zoom Out" msgstr "Zoom -" -#: pcbnew/menubar_pcbframe.cpp:338 +#: pcbnew/menubar_pcbframe.cpp:339 msgid "Fit on Screen" msgstr "Ajuster à l'Ecran " -#: pcbnew/menubar_pcbframe.cpp:341 +#: pcbnew/menubar_pcbframe.cpp:342 msgid "Fit on Screen\tCtrl+0" msgstr "" -#: pcbnew/menubar_pcbframe.cpp:345 +#: pcbnew/menubar_pcbframe.cpp:346 msgid "Zoom to fit the board on the screen" msgstr "Zoom popur ajuster le circuit impriméà l'écran" -#: pcbnew/menubar_pcbframe.cpp:354 +#: pcbnew/menubar_pcbframe.cpp:355 msgid "Redraw" msgstr "Redessin de l'écran" -#: pcbnew/menubar_pcbframe.cpp:357 +#: pcbnew/menubar_pcbframe.cpp:358 #, fuzzy msgid "Redraw\tCtrl+R" msgstr "&Nouveau\tCtrl+N" -#: pcbnew/menubar_pcbframe.cpp:361 +#: pcbnew/menubar_pcbframe.cpp:362 msgid "Redraw the screen of the board" msgstr "Redessiner l'écran du circuit imprimé" -#: pcbnew/menubar_pcbframe.cpp:370 +#: pcbnew/menubar_pcbframe.cpp:371 msgid "&List Nets" msgstr "Liste Equipots" -#: pcbnew/menubar_pcbframe.cpp:371 +#: pcbnew/menubar_pcbframe.cpp:372 msgid "View a list of nets with names and id's" msgstr "Lister les équipotentielles (noms et numéros d'identification)" -#: pcbnew/menubar_pcbframe.cpp:390 +#: pcbnew/menubar_pcbframe.cpp:391 msgid "&Library" msgstr "&Librairie" -#: pcbnew/menubar_pcbframe.cpp:391 +#: pcbnew/menubar_pcbframe.cpp:392 msgid "Setting libraries, directories and others..." msgstr "Sélectionner les librairies , répertoires et autres" -#: pcbnew/menubar_pcbframe.cpp:397 +#: pcbnew/menubar_pcbframe.cpp:398 msgid "&Colors and Visibility" msgstr "&Couleurs et Visibilité" -#: pcbnew/menubar_pcbframe.cpp:398 +#: pcbnew/menubar_pcbframe.cpp:399 msgid "Select colors and visibility of layers and some items" msgstr "Sélection les couleurs et l' affichage des couches et de certains éléments du C.I." -#: pcbnew/menubar_pcbframe.cpp:403 +#: pcbnew/menubar_pcbframe.cpp:404 msgid "&General" msgstr "&Général " -#: pcbnew/menubar_pcbframe.cpp:404 +#: pcbnew/menubar_pcbframe.cpp:405 msgid "Select general options for PCBnew" msgstr " Sélection options générales pour PCBNEW" -#: pcbnew/menubar_pcbframe.cpp:410 +#: pcbnew/menubar_pcbframe.cpp:411 msgid "&Display" msgstr "&Affichage" -#: pcbnew/menubar_pcbframe.cpp:411 +#: pcbnew/menubar_pcbframe.cpp:412 msgid "Select how items (pads, tracks texts ... ) are displayed" msgstr "Sélectionner comment les éléments (pads, pistes, textes ...) sont affichés" -#: pcbnew/menubar_pcbframe.cpp:420 +#: pcbnew/menubar_pcbframe.cpp:421 msgid "Adjust user grid dimensions" msgstr "Ajuster taille grille utilisateur" -#: pcbnew/menubar_pcbframe.cpp:426 +#: pcbnew/menubar_pcbframe.cpp:427 msgid "Texts and Drawings" msgstr "Textes et Tracés" -#: pcbnew/menubar_pcbframe.cpp:427 +#: pcbnew/menubar_pcbframe.cpp:428 msgid "Adjust dimensions for texts and drawings" msgstr "Ajuster dimensions pour textes et graphiques" -#: pcbnew/menubar_pcbframe.cpp:433 +#: pcbnew/menubar_pcbframe.cpp:434 msgid "Adjust default pads caracteristics" msgstr "Ajuster les caracteristiques par défaut des pads" -#: pcbnew/menubar_pcbframe.cpp:439 +#: pcbnew/menubar_pcbframe.cpp:440 msgid "Pads Mask Clearance" msgstr "Marge Masque des Pads" -#: pcbnew/menubar_pcbframe.cpp:440 +#: pcbnew/menubar_pcbframe.cpp:441 msgid "Adjust the global clearance between pads and the solder resist mask" msgstr "Ajuster la marge globale entre pads et le masque de vernis épargne" -#: pcbnew/menubar_pcbframe.cpp:447 +#: pcbnew/menubar_pcbframe.cpp:448 msgid "&Save" msgstr "&Sauver" -#: pcbnew/menubar_pcbframe.cpp:448 +#: pcbnew/menubar_pcbframe.cpp:449 msgid "Save dimension preferences" msgstr "Sauver les préférences de dimension" -#: pcbnew/menubar_pcbframe.cpp:454 +#: pcbnew/menubar_pcbframe.cpp:455 msgid "Di&mensions" msgstr "Di&mensions" -#: pcbnew/menubar_pcbframe.cpp:455 +#: pcbnew/menubar_pcbframe.cpp:456 msgid "Global dimensions preferences" msgstr "Préférences générales de dimensions" -#: pcbnew/menubar_pcbframe.cpp:468 +#: pcbnew/menubar_pcbframe.cpp:469 msgid "&Save Preferences" msgstr "&Sauver Préférences" -#: pcbnew/menubar_pcbframe.cpp:469 +#: pcbnew/menubar_pcbframe.cpp:470 msgid "Save application preferences" msgstr "Sauver les préférences de l'application" -#: pcbnew/menubar_pcbframe.cpp:474 +#: pcbnew/menubar_pcbframe.cpp:475 msgid "&Read Preferences" msgstr "&Lire Préférences" -#: pcbnew/menubar_pcbframe.cpp:475 +#: pcbnew/menubar_pcbframe.cpp:476 msgid "Read application preferences" msgstr "Lire les préférences de l'application" -#: pcbnew/menubar_pcbframe.cpp:487 +#: pcbnew/menubar_pcbframe.cpp:488 msgid "Design Rules" msgstr "Règles de Conception" -#: pcbnew/menubar_pcbframe.cpp:488 +#: pcbnew/menubar_pcbframe.cpp:489 msgid "Open the design rules dialog editor" msgstr "Ouvrir la fenêtre de dialogue de l'éditeur de règles de conception" -#: pcbnew/menubar_pcbframe.cpp:493 +#: pcbnew/menubar_pcbframe.cpp:494 msgid "&Layers Setup" msgstr "&Options Couches" -#: pcbnew/menubar_pcbframe.cpp:494 +#: pcbnew/menubar_pcbframe.cpp:495 msgid "Enable and set properties of layers" msgstr "Activer les couches et ajuster leur propriétés" -#: pcbnew/menubar_pcbframe.cpp:504 +#: pcbnew/menubar_pcbframe.cpp:505 msgid "Open the PCBnew manual" msgstr "Ouvrir la documentation de PCPnew" -#: pcbnew/menubar_pcbframe.cpp:512 +#: pcbnew/menubar_pcbframe.cpp:513 msgid "&About" msgstr "&Au Sujet de" -#: pcbnew/menubar_pcbframe.cpp:513 +#: pcbnew/menubar_pcbframe.cpp:514 msgid "About PCBnew printed circuit board designer" msgstr "Au Sujet de PCBnew outil de conception de C.I." -#: pcbnew/menubar_pcbframe.cpp:522 +#: pcbnew/menubar_pcbframe.cpp:523 msgid "&File" msgstr "&Fichiers" -#: pcbnew/menubar_pcbframe.cpp:523 +#: pcbnew/menubar_pcbframe.cpp:524 msgid "&Edit" msgstr "&Editer" -#: pcbnew/menubar_pcbframe.cpp:524 +#: pcbnew/menubar_pcbframe.cpp:525 msgid "&View" msgstr "&Affichage" -#: pcbnew/menubar_pcbframe.cpp:525 +#: pcbnew/menubar_pcbframe.cpp:526 msgid "&Preferences" msgstr "&Préférences" -#: pcbnew/menubar_pcbframe.cpp:526 +#: pcbnew/menubar_pcbframe.cpp:527 msgid "&Design Rules" msgstr "&Règles de Conception" @@ -8676,16 +8682,6 @@ msgstr "Rétro Annotation" msgid "Back annotated footprint fields" msgstr "Rétroannotation des champs modules" -#: eeschema/menubar.cpp:226 -#, fuzzy -msgid "Zoom Out\t" -msgstr "Zoom -" - -#: eeschema/menubar.cpp:229 -#, fuzzy -msgid "Zoom out\tCtrl+-" -msgstr "Zoom -" - #: eeschema/menubar.cpp:246 msgid "Fit the schematic sheet on the screen" msgstr "Ajuster la feuille de schéma à l'écran" @@ -9523,6 +9519,10 @@ msgstr "Imprimer Tout" msgid "Current" msgstr "Courant" +#: eeschema/dialog_eeschema_config.cpp:224 +msgid "Library files:" +msgstr "Fichiers Librairies:" + #: eeschema/eelibs_read_libraryfiles.cpp:61 msgid "\n" msgstr "\n" @@ -10456,10 +10456,6 @@ msgstr "Remplissage en &avant plan" msgid "Fill &background" msgstr "Remplissage en a&rriere plan" -#: eeschema/dialog_eeschema_config.cpp:224 -msgid "Library files:" -msgstr "Fichiers Librairies:" - #: eeschema/dialog_eeschema_options_base.cpp:34 msgid "Mesurement &units:" msgstr "&Unités de mesure:" @@ -13110,6 +13106,17 @@ msgstr "Options d'Affichage" msgid "Page Settings" msgstr "Ajustage opt Page" +#, fuzzy +#~ msgid "Zoom Out\t" +#~ msgstr "Zoom -" + +#, fuzzy +#~ msgid "Zoom out\tCtrl+-" +#~ msgstr "Zoom -" +#~ msgid "&Find..." +#~ msgstr "&Chercher" +#~ msgid "&Tracks" +#~ msgstr "&Pistes" #~ msgid "&New" #~ msgstr "&Nouveau" #~ msgid "Save as..." @@ -13611,8 +13618,6 @@ msgstr "Ajustage opt Page" #~ msgstr "low clock" #~ msgid "low out" #~ msgstr "low out" -#~ msgid "Pin type" -#~ msgstr "Type Pin" #~ msgid "Not visible" #~ msgstr "Invisible" #~ msgid "Pin Name :" @@ -13648,8 +13653,6 @@ msgstr "Ajustage opt Page" #~ msgstr "" #~ "Sélection emplacement des fichiers de config. des hotkeys(\"home\" ou " #~ "répertoire kicad)" -#~ msgid "Tracks and Vias Sizes" -#~ msgstr "Dims Pistes et Vias" #~ msgid "Copper layers setup" #~ msgstr "Réglage des Couches Cuivre" #~ msgid "EESchema Annotation" diff --git a/pcbnew/dialog_copper_zones.cpp b/pcbnew/dialog_copper_zones.cpp index 0708babb91..f07c54348d 100644 --- a/pcbnew/dialog_copper_zones.cpp +++ b/pcbnew/dialog_copper_zones.cpp @@ -41,6 +41,12 @@ dialog_copper_zone::dialog_copper_zone( WinEDA_PcbFrame* parent, ZONE_SETTING* z } SetReturnCode( ZONE_ABORT ); // Will be changed on buttons click + + if( GetSizer() ) + { + GetSizer()->SetSizeHints( this ); + } + Center(); } @@ -198,11 +204,6 @@ void dialog_copper_zone::OnInitDialog( wxInitDialogEvent& event ) } } } - if( GetSizer() ) - { - GetSizer()->SetSizeHints( this ); - } - Center(); } diff --git a/pcbnew/dialog_edit_module_for_BoardEditor.cpp b/pcbnew/dialog_edit_module_for_BoardEditor.cpp index 446e3b938a..231ef8b128 100644 --- a/pcbnew/dialog_edit_module_for_BoardEditor.cpp +++ b/pcbnew/dialog_edit_module_for_BoardEditor.cpp @@ -404,6 +404,22 @@ void DIALOG_MODULE_BOARD_EDITOR::Browse3DLib( wxCommandEvent& event ) */ shortfilename = wxGetApp().ReturnFilenameWithRelativePathInLibPath( fullfilename ); + + wxFileName aux = shortfilename; + if( aux.IsAbsolute() ) + { // Absolute path, ask if the user wants a relative one + int diag = wxMessageBox( + _( "Use a relative path?" ), + _( "Path type" ), + wxYES_NO | wxICON_QUESTION, this ); + + if( diag == wxYES ) + { // Make it relative + aux.MakeRelativeTo( wxT(".") ); + shortfilename = aux.GetPathWithSep() + aux.GetFullName(); + } + } + S3D_MASTER* new3DShape = new S3D_MASTER( NULL ); new3DShape->m_Shape3DName = shortfilename; m_Shapes3D_list.push_back( new3DShape ); diff --git a/pcbnew/dialog_edit_module_for_Modedit.cpp b/pcbnew/dialog_edit_module_for_Modedit.cpp index 874237b4bf..efdf00779a 100644 --- a/pcbnew/dialog_edit_module_for_Modedit.cpp +++ b/pcbnew/dialog_edit_module_for_Modedit.cpp @@ -279,6 +279,22 @@ void DIALOG_MODULE_MODULE_EDITOR::Browse3DLib( wxCommandEvent& event ) * because it preserve use of default libraries paths, when the path is a sub path of these default paths */ shortfilename = wxGetApp().ReturnFilenameWithRelativePathInLibPath( fullfilename ); + + wxFileName aux = shortfilename; + if( aux.IsAbsolute() ) + { // Absolute path, ask if the user wants a relative one + int diag = wxMessageBox( + _( "Use a relative path?" ), + _( "Path type" ), + wxYES_NO | wxICON_QUESTION, this ); + + if( diag == wxYES ) + { // Make it relative + aux.MakeRelativeTo( wxT(".") ); + shortfilename = aux.GetPathWithSep() + aux.GetFullName(); + } + } + S3D_MASTER* new3DShape = new S3D_MASTER(NULL); new3DShape->m_Shape3DName = shortfilename; m_Shapes3D_list.push_back( new3DShape ); diff --git a/pcbnew/dialog_general_options.cpp b/pcbnew/dialog_general_options.cpp index a7fd12ef4c..ac1e07e138 100644 --- a/pcbnew/dialog_general_options.cpp +++ b/pcbnew/dialog_general_options.cpp @@ -24,6 +24,9 @@ Dialog_GeneralOptions::Dialog_GeneralOptions( WinEDA_PcbFrame* parent ) : { m_Parent = parent; init(); + + GetSizer()->SetSizeHints( this ); + Center(); } @@ -65,11 +68,6 @@ void Dialog_GeneralOptions::init() m_MagneticPadOptCtrl->SetSelection( g_MagneticPadOption ); m_MagneticTrackOptCtrl->SetSelection( g_MagneticTrackOption ); - - if( GetSizer() ) - { - GetSizer()->SetSizeHints( this ); - } } diff --git a/pcbnew/dialog_mask_clearance.cpp b/pcbnew/dialog_mask_clearance.cpp index be33af611c..286656a8ad 100644 --- a/pcbnew/dialog_mask_clearance.cpp +++ b/pcbnew/dialog_mask_clearance.cpp @@ -28,6 +28,7 @@ DIALOG_PADS_MASK_CLEARANCE::DIALOG_PADS_MASK_CLEARANCE( WinEDA_PcbFrame* parent m_Parent = parent; MyInit(); GetSizer()->SetSizeHints( this ); + Centre(); } diff --git a/pcbnew/dialog_pad_properties.cpp b/pcbnew/dialog_pad_properties.cpp index 5e1e03338d..9ffad23a33 100644 --- a/pcbnew/dialog_pad_properties.cpp +++ b/pcbnew/dialog_pad_properties.cpp @@ -89,6 +89,8 @@ DIALOG_PAD_PROPERTIES::DIALOG_PAD_PROPERTIES( WinEDA_BasePcbFrame* parent, D_PAD { GetSizer()->SetSizeHints( this ); } + + Center(); } diff --git a/pcbnew/dialog_pcbnew_config_libs_and_paths.cpp b/pcbnew/dialog_pcbnew_config_libs_and_paths.cpp index 11887c822f..d569336223 100644 --- a/pcbnew/dialog_pcbnew_config_libs_and_paths.cpp +++ b/pcbnew/dialog_pcbnew_config_libs_and_paths.cpp @@ -258,6 +258,20 @@ void DIALOG_PCBNEW_CONFIG_LIBS::OnAddOrInsertPath( wxCommandEvent& event ) if ( jj >= 0 ) ipos = jj; } + + // Ask the user if this is a relative path + int diag = wxMessageBox( + _( "Use a relative path?" ), + _( "Path type" ), + wxYES_NO | wxICON_QUESTION, this ); + + if( diag == wxYES ) + { // Make it relative + wxFileName fn = path; + fn.MakeRelativeTo( wxT(".") ); + path = fn.GetPathWithSep() + fn.GetFullName(); + } + m_listUserPaths->Insert(path, ipos); m_LibPathChanged = true; wxGetApp().InsertLibraryPath( path, ipos+1 ); diff --git a/pcbnew/dialog_print_for_modedit.cpp b/pcbnew/dialog_print_for_modedit.cpp index ec3b99e28e..e27eccf143 100644 --- a/pcbnew/dialog_print_for_modedit.cpp +++ b/pcbnew/dialog_print_for_modedit.cpp @@ -44,7 +44,6 @@ public: private: void OnCloseWindow( wxCloseEvent& event ); - void OnInitDialog( wxInitDialogEvent& event ); void OnPrintSetup( wxCommandEvent& event ); void OnPrintPreview( wxCommandEvent& event ); void OnPrintButtonClick( wxCommandEvent& event ); @@ -89,10 +88,8 @@ DIALOG_PRINT_FOR_MODEDIT::DIALOG_PRINT_FOR_MODEDIT( WinEDA_DrawFrame* parent ) : m_Config = wxGetApp().m_EDA_Config; InitValues(); - if( GetSizer() ) - { - GetSizer()->SetSizeHints( this ); - } + GetSizer()->SetSizeHints( this ); + Center(); } diff --git a/pcbnew/menubar_pcbframe.cpp b/pcbnew/menubar_pcbframe.cpp index ac0581ea78..a0186a54c9 100644 --- a/pcbnew/menubar_pcbframe.cpp +++ b/pcbnew/menubar_pcbframe.cpp @@ -129,7 +129,8 @@ void WinEDA_PcbFrame::ReCreateMenuBar() /* Fabrications Outputs submenu append */ ADD_MENUITEM_WITH_HELP_AND_SUBMENU( filesMenu, fabricationOutputsMenu, -1, _( "Fabrication Outputs" ), - _( "Generate files for fabrication" ), export_xpm ); + _( "Generate files for fabrication" ), + fabrication_xpm ); /* Import submenu */ wxMenu* submenuImport = new wxMenu(); @@ -266,7 +267,7 @@ void WinEDA_PcbFrame::ReCreateMenuBar() /* Find */ #if !defined( __WXMAC__) - text = AddHotkeyName( _( "&Find..." ), s_Pcbnew_Editor_Hokeys_Descr, HK_FIND_ITEM ); + text = AddHotkeyName( _( "&Find" ), s_Pcbnew_Editor_Hokeys_Descr, HK_FIND_ITEM ); #else text = _( "Find\tCtrl+F" ); #endif @@ -288,7 +289,7 @@ void WinEDA_PcbFrame::ReCreateMenuBar() /* Tracks */ item = new wxMenuItem( editMenu, ID_MENU_PCB_CLEAN, - _( "&Tracks" ), + _( "&Tracks and Vias Cleanup" ), _( "Clean stubs, vias, delete break points, or connect dangling tracks to pads and vias" ) ); item->SetBitmap( delete_body_xpm ); @@ -438,7 +439,7 @@ void WinEDA_PcbFrame::ReCreateMenuBar() item = new wxMenuItem( dimensionsMenu, ID_PCB_MASK_CLEARANCE, _( "Pads Mask Clearance" ), _( "Adjust the global clearance between pads and the solder resist mask" ) ); - item->SetBitmap( pad_xpm ); + item->SetBitmap( pads_mask_layers_xpm ); dimensionsMenu->Append( item );