From 9db12be71419bae1ff2298a8d6a405c6cb896f31 Mon Sep 17 00:00:00 2001 From: Marek Roszko Date: Mon, 12 Oct 2020 18:40:17 -0400 Subject: [PATCH] Cleanup some includes and enum in kicad --- kicad/kicad.cpp | 2 - kicad/kicad_manager_frame.cpp | 2 - kicad/kicad_manager_frame.h | 36 ---------- kicad/pgm_kicad.h | 1 - kicad/tools/kicad_manager_control.cpp | 1 - kicad/tree_file_type.h | 68 +++++++++++++++++++ kicad/tree_project_frame.cpp | 97 ++++++++++++++------------- kicad/tree_project_frame.h | 5 +- kicad/treeproject_item.cpp | 60 +++++++++-------- kicad/treeproject_item.h | 12 ++-- kicad/treeprojectfiles.cpp | 8 ++- kicad/treeprojectfiles.h | 3 +- 12 files changed, 166 insertions(+), 129 deletions(-) create mode 100644 kicad/tree_file_type.h diff --git a/kicad/kicad.cpp b/kicad/kicad.cpp index 92daa00909..a77b339099 100644 --- a/kicad/kicad.cpp +++ b/kicad/kicad.cpp @@ -31,14 +31,12 @@ #include #include #include -#include #include #include #include #include #include -#include #include diff --git a/kicad/kicad_manager_frame.cpp b/kicad/kicad_manager_frame.cpp index 9653105ab4..8cc6316ddd 100644 --- a/kicad/kicad_manager_frame.cpp +++ b/kicad/kicad_manager_frame.cpp @@ -28,9 +28,7 @@ #include "tree_project_frame.h" #include #include -#include #include -#include #include #include #include diff --git a/kicad/kicad_manager_frame.h b/kicad/kicad_manager_frame.h index 9230f0930b..1c1cc18ea9 100644 --- a/kicad/kicad_manager_frame.h +++ b/kicad/kicad_manager_frame.h @@ -35,42 +35,6 @@ class TREE_PROJECT_FRAME; class ACTION_TOOLBAR; class KICAD_SETTINGS; -// Identify the type of files handled by KiCad manager -// -// When changing this enum please verify (and perhaps update) -// TREE_PROJECT_FRAME::GetFileExt(), -// s_AllowedExtensionsToList[] - -enum TreeFileType { - TREE_ROOT = 0, - TREE_LEGACY_PROJECT, // Legacy project file (.pro) - TREE_JSON_PROJECT, // JSON formatted project file (.kicad_pro) - TREE_LEGACY_SCHEMATIC, // Schematic file (.sch) - TREE_SEXPR_SCHEMATIC, // Schematic file (.kicad_sch) - TREE_LEGACY_PCB, // board file (.brd) legacy format - TREE_SEXPR_PCB, // board file (.kicad_brd) new s expression format - TREE_GERBER, // Gerber file (.pho, .g*) - TREE_GERBER_JOB_FILE, // Gerber file (.gbrjob) - TREE_HTML, // HTML file (.htm, *.html) - TREE_PDF, // PDF file (.pdf) - TREE_TXT, // ascii text file (.txt) - TREE_NET, // netlist file (.net) - TREE_UNKNOWN, - TREE_DIRECTORY, - TREE_CMP_LINK, // cmp/footprint link file (.cmp) - TREE_REPORT, // report file (.rpt) - TREE_FP_PLACE, // footprints position (place) file (.pos) - TREE_DRILL, // Excellon drill file (.drl) - TREE_DRILL_NC, // Similar Excellon drill file (.nc) - TREE_DRILL_XNC, // Similar Excellon drill file (.xnc) - TREE_SVG, // SVG file (.svg) - TREE_PAGE_LAYOUT_DESCR, // Page layout and title block descr file (.kicad_wks) - TREE_FOOTPRINT_FILE, // footprint file (.kicad_mod) - TREE_SCHEMATIC_LIBFILE, // schematic library file (.lib) - TREE_SEXPR_SYMBOL_LIB_FILE, // s-expression symbol library file (.kicad_sym) - TREE_MAX -}; - /** * The main KiCad project manager frame. It is not a KIWAY_PLAYER. diff --git a/kicad/pgm_kicad.h b/kicad/pgm_kicad.h index e837e145d1..299071b3a7 100644 --- a/kicad/pgm_kicad.h +++ b/kicad/pgm_kicad.h @@ -27,7 +27,6 @@ #include #include -#include "kicad_settings.h" /** * PGM_KICAD diff --git a/kicad/tools/kicad_manager_control.cpp b/kicad/tools/kicad_manager_control.cpp index e1ed05dd5e..2ecc64e297 100644 --- a/kicad/tools/kicad_manager_control.cpp +++ b/kicad/tools/kicad_manager_control.cpp @@ -27,7 +27,6 @@ #include #include #include -#include #include #include #include diff --git a/kicad/tree_file_type.h b/kicad/tree_file_type.h new file mode 100644 index 0000000000..509e9ae083 --- /dev/null +++ b/kicad/tree_file_type.h @@ -0,0 +1,68 @@ +/* + * This program source code file is part of KiCad, a free EDA CAD application. + * + * Copyright (C) 2020 KiCad Developers, see AUTHORS.txt for contributors. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, you may find one here: + * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html + * or you may search the http://www.gnu.org website for the version 2 license, + * or you may write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + */ + +/** + * @file tree_file_types.h + */ + + +#ifndef TREE_FILE_TYPE_H +#define TREE_FILE_TYPE_H + +// Identify the type of files handled by KiCad manager +// +// When changing this enum please verify (and perhaps update) +// TREE_PROJECT_FRAME::GetFileExt(), +// s_AllowedExtensionsToList[] +enum class TREE_FILE_TYPE +{ + ROOT = 0, + LEGACY_PROJECT, // Legacy project file (.pro) + JSON_PROJECT, // JSON formatted project file (.kicad_pro) + LEGACY_SCHEMATIC, // Schematic file (.sch) + SEXPR_SCHEMATIC, // Schematic file (.kicad_sch) + LEGACY_PCB, // board file (.brd) legacy format + SEXPR_PCB, // board file (.kicad_brd) new s expression format + GERBER, // Gerber file (.pho, .g*) + GERBER_JOB_FILE, // Gerber file (.gbrjob) + HTML, // HTML file (.htm, *.html) + PDF, // PDF file (.pdf) + TXT, // ascii text file (.txt) + NET, // netlist file (.net) + UNKNOWN, + DIRECTORY, + CMP_LINK, // cmp/footprint link file (.cmp) + REPORT, // report file (.rpt) + FP_PLACE, // footprints position (place) file (.pos) + DRILL, // Excellon drill file (.drl) + DRILL_NC, // Similar Excellon drill file (.nc) + DRILL_XNC, // Similar Excellon drill file (.xnc) + SVG, // SVG file (.svg) + PAGE_LAYOUT_DESCR, // Page layout and title block descr file (.kicad_wks) + FOOTPRINT_FILE, // footprint file (.kicad_mod) + SCHEMATIC_LIBFILE, // schematic library file (.lib) + SEXPR_SYMBOL_LIB_FILE, // s-expression symbol library file (.kicad_sym) + MAX +}; + +#endif // TREE_FILE_TYPE_H \ No newline at end of file diff --git a/kicad/tree_project_frame.cpp b/kicad/tree_project_frame.cpp index d14d4cacaf..a336fe7f7f 100644 --- a/kicad/tree_project_frame.cpp +++ b/kicad/tree_project_frame.cpp @@ -45,6 +45,7 @@ #include "treeprojectfiles.h" #include "pgm_kicad.h" #include "kicad_id.h" +#include "kicad_manager_frame.h" #include "tree_project_frame.h" @@ -262,33 +263,33 @@ void TREE_PROJECT_FRAME::OnCreateNewDirectory( wxCommandEvent& event ) } -wxString TREE_PROJECT_FRAME::GetFileExt( TreeFileType type ) +wxString TREE_PROJECT_FRAME::GetFileExt( TREE_FILE_TYPE type ) { switch( type ) { - case TREE_LEGACY_PROJECT: return LegacyProjectFileExtension; - case TREE_JSON_PROJECT: return ProjectFileExtension; - case TREE_LEGACY_SCHEMATIC: return LegacySchematicFileExtension; - case TREE_SEXPR_SCHEMATIC: return KiCadSchematicFileExtension; - case TREE_LEGACY_PCB: return LegacyPcbFileExtension; - case TREE_SEXPR_PCB: return KiCadPcbFileExtension; - case TREE_GERBER: return GerberFileExtensionWildCard; - case TREE_GERBER_JOB_FILE: return GerberJobFileExtension; - case TREE_HTML: return HtmlFileExtension; - case TREE_PDF: return PdfFileExtension; - case TREE_TXT: return TextFileExtension; - case TREE_NET: return NetlistFileExtension; - case TREE_CMP_LINK: return ComponentFileExtension; - case TREE_REPORT: return ReportFileExtension; - case TREE_FP_PLACE: return FootprintPlaceFileExtension; - case TREE_DRILL: return DrillFileExtension; - case TREE_DRILL_NC: return "nc"; - case TREE_DRILL_XNC: return "xnc"; - case TREE_SVG: return SVGFileExtension; - case TREE_PAGE_LAYOUT_DESCR: return PageLayoutDescrFileExtension; - case TREE_FOOTPRINT_FILE: return KiCadFootprintFileExtension; - case TREE_SCHEMATIC_LIBFILE: return LegacySymbolLibFileExtension; - case TREE_SEXPR_SYMBOL_LIB_FILE: return KiCadSymbolLibFileExtension; + case TREE_FILE_TYPE::LEGACY_PROJECT: return LegacyProjectFileExtension; + case TREE_FILE_TYPE::JSON_PROJECT: return ProjectFileExtension; + case TREE_FILE_TYPE::LEGACY_SCHEMATIC: return LegacySchematicFileExtension; + case TREE_FILE_TYPE::SEXPR_SCHEMATIC: return KiCadSchematicFileExtension; + case TREE_FILE_TYPE::LEGACY_PCB: return LegacyPcbFileExtension; + case TREE_FILE_TYPE::SEXPR_PCB: return KiCadPcbFileExtension; + case TREE_FILE_TYPE::GERBER: return GerberFileExtensionWildCard; + case TREE_FILE_TYPE::GERBER_JOB_FILE: return GerberJobFileExtension; + case TREE_FILE_TYPE::HTML: return HtmlFileExtension; + case TREE_FILE_TYPE::PDF: return PdfFileExtension; + case TREE_FILE_TYPE::TXT: return TextFileExtension; + case TREE_FILE_TYPE::NET: return NetlistFileExtension; + case TREE_FILE_TYPE::CMP_LINK: return ComponentFileExtension; + case TREE_FILE_TYPE::REPORT: return ReportFileExtension; + case TREE_FILE_TYPE::FP_PLACE: return FootprintPlaceFileExtension; + case TREE_FILE_TYPE::DRILL: return DrillFileExtension; + case TREE_FILE_TYPE::DRILL_NC: return "nc"; + case TREE_FILE_TYPE::DRILL_XNC: return "xnc"; + case TREE_FILE_TYPE::SVG: return SVGFileExtension; + case TREE_FILE_TYPE::PAGE_LAYOUT_DESCR: return PageLayoutDescrFileExtension; + case TREE_FILE_TYPE::FOOTPRINT_FILE: return KiCadFootprintFileExtension; + case TREE_FILE_TYPE::SCHEMATIC_LIBFILE: return LegacySymbolLibFileExtension; + case TREE_FILE_TYPE::SEXPR_SYMBOL_LIB_FILE: return KiCadSymbolLibFileExtension; default: return wxEmptyString; } } @@ -298,7 +299,7 @@ wxTreeItemId TREE_PROJECT_FRAME::AddItemToTreeProject( const wxString& aName, wxTreeItemId& aRoot, bool aCanResetFileWatcher, bool aRecurse ) { wxTreeItemId newItemId; - TreeFileType type = TREE_UNKNOWN; + TREE_FILE_TYPE type = TREE_FILE_TYPE::UNKNOWN; wxFileName fn( aName ); // Files/dirs names starting by "." are not visible files under unices. @@ -308,7 +309,7 @@ wxTreeItemId TREE_PROJECT_FRAME::AddItemToTreeProject( if( wxDirExists( aName ) ) { - type = TREE_DIRECTORY; + type = TREE_FILE_TYPE::DIRECTORY; } else { @@ -401,14 +402,15 @@ wxTreeItemId TREE_PROJECT_FRAME::AddItemToTreeProject( } } - for( int i = TREE_LEGACY_PROJECT; i < TREE_MAX; i++ ) + for( int i = static_cast( TREE_FILE_TYPE::LEGACY_PROJECT ); + i < static_cast( TREE_FILE_TYPE::MAX ); i++ ) { - wxString ext = GetFileExt( (TreeFileType) i ); + wxString ext = GetFileExt( (TREE_FILE_TYPE) i ); if( ext == wxT( "" ) ) continue; - if( i == TREE_GERBER ) // For gerber files, the official ext is gbr + if( i == static_cast( TREE_FILE_TYPE::GERBER ) ) // For gerber files, the official ext is gbr ext = "gbr"; reg.Compile( wxString::FromAscii( "^.*\\." ) + ext + @@ -416,7 +418,7 @@ wxTreeItemId TREE_PROJECT_FRAME::AddItemToTreeProject( if( reg.Matches( aName ) ) { - type = (TreeFileType) i; + type = (TREE_FILE_TYPE) i; break; } } @@ -427,7 +429,8 @@ wxTreeItemId TREE_PROJECT_FRAME::AddItemToTreeProject( wxFileName project( m_Parent->GetProjectFileName() ); // Ignore legacy projects with the same name as the current project - if( ( type == TREE_LEGACY_PROJECT ) && ( currfile.GetName().CmpNoCase( project.GetName() ) == 0 ) ) + if( ( type == TREE_FILE_TYPE::LEGACY_PROJECT ) + && ( currfile.GetName().CmpNoCase( project.GetName() ) == 0 ) ) return newItemId; // also check to see if it is already there. @@ -448,7 +451,7 @@ wxTreeItemId TREE_PROJECT_FRAME::AddItemToTreeProject( } // Only show the JSON project files if both legacy and JSON files are present - if( ( type == TREE_LEGACY_PROJECT ) || ( type == TREE_JSON_PROJECT ) ) + if( ( type == TREE_FILE_TYPE::LEGACY_PROJECT ) || ( type == TREE_FILE_TYPE::JSON_PROJECT ) ) { kid = m_TreeProject->GetFirstChild( aRoot, cookie ); @@ -463,14 +466,14 @@ wxTreeItemId TREE_PROJECT_FRAME::AddItemToTreeProject( if( fname.GetName().CmpNoCase( currfile.GetName() ) == 0 ) { // If the tree item is the legacy project remove it. - if( itemData->GetType() == TREE_LEGACY_PROJECT ) + if( itemData->GetType() == TREE_FILE_TYPE::LEGACY_PROJECT ) { m_TreeProject->Delete( kid ); break; } // If we are the legacy project and the tree was the JSON project, ignore this file - else if( ( itemData->GetType() == TREE_JSON_PROJECT ) - && ( type == TREE_LEGACY_PROJECT ) ) + else if( ( itemData->GetType() == TREE_FILE_TYPE::JSON_PROJECT ) + && ( type == TREE_FILE_TYPE::LEGACY_PROJECT ) ) { return newItemId; } @@ -499,7 +502,7 @@ wxTreeItemId TREE_PROJECT_FRAME::AddItemToTreeProject( // This section adds dirs and files found in the subdirs // in this case AddFile is recursive, but for the first level only. - if( TREE_DIRECTORY == type && aRecurse ) + if( TREE_FILE_TYPE::DIRECTORY == type && aRecurse ) { wxDir dir( aName ); @@ -573,12 +576,13 @@ void TREE_PROJECT_FRAME::ReCreateTreePrj() } // root tree: - m_root = m_TreeProject->AddRoot( fn.GetFullName(), TREE_ROOT, TREE_ROOT ); + m_root = m_TreeProject->AddRoot( fn.GetFullName(), static_cast( TREE_FILE_TYPE::ROOT ), + static_cast( TREE_FILE_TYPE::ROOT ) ); m_TreeProject->SetItemBold( m_root, true ); // The main project file is now a JSON file - m_TreeProject->SetItemData( m_root, new TREEPROJECT_ITEM( TREE_JSON_PROJECT, fn.GetFullPath(), - m_TreeProject ) ); + m_TreeProject->SetItemData( m_root, + new TREEPROJECT_ITEM( TREE_FILE_TYPE::JSON_PROJECT, fn.GetFullPath(), m_TreeProject ) ); // Now adding all current files if available if( prjOpened ) @@ -657,13 +661,12 @@ void TREE_PROJECT_FRAME::OnRight( wxTreeEvent& Event ) continue; } - int tree_id = item->GetType(); wxString full_file_name = item->GetFileName(); - switch( tree_id ) + switch( item->GetType() ) { - case TREE_LEGACY_PROJECT: - case TREE_JSON_PROJECT: + case TREE_FILE_TYPE::LEGACY_PROJECT: + case TREE_FILE_TYPE::JSON_PROJECT: can_rename = false; can_print = false; @@ -679,7 +682,7 @@ void TREE_PROJECT_FRAME::OnRight( wxTreeEvent& Event ) } break; - case TREE_DIRECTORY: + case TREE_FILE_TYPE::DIRECTORY: can_switch_to_project = false; can_edit = false; can_rename = false; @@ -915,7 +918,7 @@ void TREE_PROJECT_FRAME::OnExpand( wxTreeEvent& Event ) if( !tree_data ) return; - if( tree_data->GetType() != TREE_DIRECTORY ) + if( tree_data->GetType() != TREE_FILE_TYPE::DIRECTORY ) return; // explore list of non populated subdirs, and populate them @@ -930,7 +933,7 @@ void TREE_PROJECT_FRAME::OnExpand( wxTreeEvent& Event ) { TREEPROJECT_ITEM* itemData = GetItemIdData( kid ); - if( !itemData || itemData->GetType() != TREE_DIRECTORY ) + if( !itemData || itemData->GetType() != TREE_FILE_TYPE::DIRECTORY ) continue; if( itemData->IsPopulated() ) @@ -1027,7 +1030,7 @@ wxTreeItemId TREE_PROJECT_FRAME::findSubdirTreeItem( const wxString& aSubDir ) TREEPROJECT_ITEM* itemData = GetItemIdData( kid ); - if( itemData && ( itemData->GetType() == TREE_DIRECTORY ) ) + if( itemData && ( itemData->GetType() == TREE_FILE_TYPE::DIRECTORY ) ) { if( itemData->GetFileName() == aSubDir ) // Found! { diff --git a/kicad/tree_project_frame.h b/kicad/tree_project_frame.h index a51d1f381c..7a807dfe1d 100644 --- a/kicad/tree_project_frame.h +++ b/kicad/tree_project_frame.h @@ -30,11 +30,12 @@ #ifndef TREEPRJ_FRAME_H #define TREEPRJ_FRAME_H +#include #include #include #include -#include "kicad_manager_frame.h" +#include "tree_file_type.h" class KICAD_MANAGER_FRAME; @@ -80,7 +81,7 @@ public: void EmptyTreePrj(); protected: - static wxString GetFileExt( TreeFileType type ); + static wxString GetFileExt( TREE_FILE_TYPE type ); /** * Function GetSelectedData diff --git a/kicad/treeproject_item.cpp b/kicad/treeproject_item.cpp index 75c0e3c862..6f95bd6316 100644 --- a/kicad/treeproject_item.cpp +++ b/kicad/treeproject_item.cpp @@ -38,6 +38,7 @@ #include #include +#include "kicad_manager_frame.h" #include "treeprojectfiles.h" #include "pgm_kicad.h" #include "tree_project_frame.h" @@ -45,7 +46,7 @@ #include "kicad_id.h" -TREEPROJECT_ITEM::TREEPROJECT_ITEM( enum TreeFileType type, const wxString& data, +TREEPROJECT_ITEM::TREEPROJECT_ITEM( TREE_FILE_TYPE type, const wxString& data, wxTreeCtrl* parent ) : wxTreeItemData() { @@ -60,13 +61,14 @@ TREEPROJECT_ITEM::TREEPROJECT_ITEM( enum TreeFileType type, const wxString& data void TREEPROJECT_ITEM::SetState( int state ) { - wxImageList* imglist = m_parent->GetImageList(); + wxImageList* imglist = m_parent->GetImageList(); + int treeEnumMax = static_cast( TREE_FILE_TYPE::MAX ); - if( !imglist || state < 0 || state >= imglist->GetImageCount() / ( TREE_MAX - 2 ) ) + if( !imglist || state < 0 || state >= imglist->GetImageCount() / ( treeEnumMax - 2 ) ) return; - m_state = state; - int imgid = m_Type - 1 + state * ( TREE_MAX - 1 ); + m_state = state; + int imgid = static_cast( m_Type ) - 1 + state * ( treeEnumMax - 1 ); m_parent->SetItemImage( GetId(), imgid ); m_parent->SetItemImage( GetId(), imgid, wxTreeItemIcon_Selected ); } @@ -74,7 +76,7 @@ void TREEPROJECT_ITEM::SetState( int state ) const wxString TREEPROJECT_ITEM::GetDir() const { - if( TREE_DIRECTORY == m_Type ) + if( TREE_FILE_TYPE::DIRECTORY == m_Type ) return GetFileName(); return wxFileName( GetFileName() ).GetPath(); @@ -84,7 +86,7 @@ const wxString TREEPROJECT_ITEM::GetDir() const bool TREEPROJECT_ITEM::Rename( const wxString& name, bool check ) { // this is broken & unsafe to use on linux. - if( m_Type == TREE_DIRECTORY ) + if( m_Type == TREE_FILE_TYPE::DIRECTORY ) return false; if( name.IsEmpty() ) @@ -94,7 +96,7 @@ bool TREEPROJECT_ITEM::Rename( const wxString& name, bool check ) wxString newFile; wxString dirs = GetDir(); - if( !dirs.IsEmpty() && GetType() != TREE_DIRECTORY ) + if( !dirs.IsEmpty() && GetType() != TREE_FILE_TYPE::DIRECTORY ) newFile = dirs + sep + name; else newFile = name; @@ -161,20 +163,20 @@ void TREEPROJECT_ITEM::Activate( TREE_PROJECT_FRAME* aTreePrjFrame ) switch( GetType() ) { - case TREE_LEGACY_PROJECT: - case TREE_JSON_PROJECT: + case TREE_FILE_TYPE::LEGACY_PROJECT: + case TREE_FILE_TYPE::JSON_PROJECT: // Select a new project if this is not the current project: if( id != aTreePrjFrame->m_TreeProject->GetRootItem() ) frame->LoadProject( fullFileName ); break; - case TREE_DIRECTORY: + case TREE_FILE_TYPE::DIRECTORY: m_parent->Toggle( id ); break; - case TREE_LEGACY_SCHEMATIC: - case TREE_SEXPR_SCHEMATIC: + case TREE_FILE_TYPE::LEGACY_SCHEMATIC: + case TREE_FILE_TYPE::SEXPR_SCHEMATIC: // Schematics not part of the project are opened in a separate process. if( fullFileName == frame->SchFileName() || fullFileName == frame->SchLegacyFileName() ) toolMgr->RunAction( KICAD_MANAGER_ACTIONS::editSchematic, true ); @@ -183,8 +185,8 @@ void TREEPROJECT_ITEM::Activate( TREE_PROJECT_FRAME* aTreePrjFrame ) break; - case TREE_LEGACY_PCB: - case TREE_SEXPR_PCB: + case TREE_FILE_TYPE::LEGACY_PCB: + case TREE_FILE_TYPE::SEXPR_PCB: // Boards not part of the project are opened in a separate process. if( fullFileName == frame->PcbFileName() || fullFileName == frame->PcbLegacyFileName() ) toolMgr->RunAction( KICAD_MANAGER_ACTIONS::editPCB, true ); @@ -193,40 +195,40 @@ void TREEPROJECT_ITEM::Activate( TREE_PROJECT_FRAME* aTreePrjFrame ) break; - case TREE_GERBER: - case TREE_GERBER_JOB_FILE: - case TREE_DRILL: - case TREE_DRILL_NC: - case TREE_DRILL_XNC: + case TREE_FILE_TYPE::GERBER: + case TREE_FILE_TYPE::GERBER_JOB_FILE: + case TREE_FILE_TYPE::DRILL: + case TREE_FILE_TYPE::DRILL_NC: + case TREE_FILE_TYPE::DRILL_XNC: toolMgr->RunAction( KICAD_MANAGER_ACTIONS::viewGerbers, true, &fullFileName ); break; - case TREE_HTML: + case TREE_FILE_TYPE::HTML: wxLaunchDefaultBrowser( fullFileName ); break; - case TREE_PDF: + case TREE_FILE_TYPE::PDF: OpenPDF( fullFileName ); break; - case TREE_NET: - case TREE_TXT: - case TREE_REPORT: + case TREE_FILE_TYPE::NET: + case TREE_FILE_TYPE::TXT: + case TREE_FILE_TYPE::REPORT: toolMgr->RunAction( KICAD_MANAGER_ACTIONS::openTextEditor, true, &fullFileName ); break; - case TREE_PAGE_LAYOUT_DESCR: + case TREE_FILE_TYPE::PAGE_LAYOUT_DESCR: toolMgr->RunAction( KICAD_MANAGER_ACTIONS::editWorksheet, true, &fullFileName ); break; - case TREE_FOOTPRINT_FILE: + case TREE_FILE_TYPE::FOOTPRINT_FILE: toolMgr->RunAction( KICAD_MANAGER_ACTIONS::editFootprints, true ); packet = fullFileName.ToStdString(); kiway.ExpressMail( FRAME_FOOTPRINT_EDITOR, MAIL_FP_EDIT, packet ); break; - case TREE_SCHEMATIC_LIBFILE: - case TREE_SEXPR_SYMBOL_LIB_FILE: + case TREE_FILE_TYPE::SCHEMATIC_LIBFILE: + case TREE_FILE_TYPE::SEXPR_SYMBOL_LIB_FILE: toolMgr->RunAction( KICAD_MANAGER_ACTIONS::editSymbols, true ); packet = fullFileName.ToStdString(); kiway.ExpressMail( FRAME_SCH_LIB_EDITOR, MAIL_LIB_EDIT, packet ); diff --git a/kicad/treeproject_item.h b/kicad/treeproject_item.h index 7aeb947878..4b8bcce802 100644 --- a/kicad/treeproject_item.h +++ b/kicad/treeproject_item.h @@ -28,8 +28,10 @@ #include -#include "kicad_manager_frame.h" +#include "tree_file_type.h" +class TREE_PROJECT_FRAME; +class wxTreeCtrl; /** * TREEPROJECT_ITEM @@ -39,7 +41,7 @@ class TREEPROJECT_ITEM : public wxTreeItemData { public: - TREEPROJECT_ITEM( TreeFileType type, const wxString& data, + TREEPROJECT_ITEM( TREE_FILE_TYPE type, const wxString& data, wxTreeCtrl* parent ); TREEPROJECT_ITEM() : m_parent( NULL ) { } @@ -51,8 +53,8 @@ public: m_IsPopulated = false; } - TreeFileType GetType() const { return m_Type; } - void SetType( TreeFileType aType ) { m_Type = aType; } + TREE_FILE_TYPE GetType() const { return m_Type; } + void SetType( TREE_FILE_TYPE aType ) { m_Type = aType; } const wxString& GetFileName() const { return m_file_name; } void SetFileName( const wxString& name ) { m_file_name = name; } @@ -78,7 +80,7 @@ public: private: - TreeFileType m_Type; // = TREE_PROJECT, TREE_DIRECTORY ... + TREE_FILE_TYPE m_Type; // = TREE_PROJECT, TREE_DIRECTORY ... wxString m_file_name; // Filename for a file, or directory name bool m_IsRootFile; // True if m_Filename is a root schematic (same name as project) bool m_IsPopulated; // True if the name is a directory, and its content was read diff --git a/kicad/treeprojectfiles.cpp b/kicad/treeprojectfiles.cpp index d7b481b52e..4a1a3900ce 100644 --- a/kicad/treeprojectfiles.cpp +++ b/kicad/treeprojectfiles.cpp @@ -53,7 +53,7 @@ TREEPROJECTFILES::TREEPROJECTFILES( TREE_PROJECT_FRAME* parent ) iconsize.y = dummy.GetHeight(); // Make an image list containing small icons - m_ImageList = new wxImageList( iconsize.x, iconsize.y, true, TREE_MAX ); + m_ImageList = new wxImageList( iconsize.x, iconsize.y, true, static_cast( TREE_FILE_TYPE::MAX ) ); m_ImageList->Add( KiBitmap( new_project_xpm ) ); // TREE_LEGACY_PROJECT m_ImageList->Add( KiBitmap( new_project_xpm ) ); // TREE_JSON_PROJECT @@ -99,10 +99,12 @@ int TREEPROJECTFILES::OnCompareItems( const wxTreeItemId& item1, const wxTreeIte if( !myitem1 || !myitem2 ) return 0; - if( myitem1->GetType() == TREE_DIRECTORY && myitem2->GetType() != TREE_DIRECTORY ) + if( myitem1->GetType() == TREE_FILE_TYPE::DIRECTORY + && myitem2->GetType() != TREE_FILE_TYPE::DIRECTORY ) return -1; - if( myitem2->GetType() == TREE_DIRECTORY && myitem1->GetType() != TREE_DIRECTORY ) + if( myitem2->GetType() == TREE_FILE_TYPE::DIRECTORY + && myitem1->GetType() != TREE_FILE_TYPE::DIRECTORY ) return 1; if( myitem1->IsRootFile() && !myitem2->IsRootFile() ) diff --git a/kicad/treeprojectfiles.h b/kicad/treeprojectfiles.h index 98149e8c55..1aade8337c 100644 --- a/kicad/treeprojectfiles.h +++ b/kicad/treeprojectfiles.h @@ -32,8 +32,9 @@ #include -#include "kicad_manager_frame.h" +#include "tree_file_type.h" +class TREE_PROJECT_FRAME; /** TREEPROJECTFILES * This is the class to show (as a tree) the files in the project directory