Browse Source
Add Make selected active/inactive actions to the symbol libraries
Add Make selected active/inactive actions to the symbol libraries
context menu Fixes #113727.0
committed by
Seth Hillbrand
6 changed files with 119 additions and 13 deletions
-
1common/CMakeLists.txt
-
73common/lib_table_grid_tricks.cpp
-
7eeschema/dialogs/panel_sym_lib_table.cpp
-
4eeschema/dialogs/panel_sym_lib_table.h
-
35include/lib_table_grid_tricks.h
-
12pcbnew/dialogs/panel_fp_lib_table.cpp
@ -0,0 +1,73 @@ |
|||
/*
|
|||
* This program source code file is part of KiCad, a free EDA CAD application. |
|||
* |
|||
* Copyright (C) 2017-2022 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 3 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, see <http://www.gnu.org/licenses/>.
|
|||
*/ |
|||
|
|||
#include "lib_table_grid_tricks.h"
|
|||
#include "lib_table_grid.h"
|
|||
|
|||
LIB_TABLE_GRID_TRICKS::LIB_TABLE_GRID_TRICKS( WX_GRID* aGrid ) : GRID_TRICKS( aGrid ) |
|||
{ |
|||
} |
|||
|
|||
void LIB_TABLE_GRID_TRICKS::showPopupMenu( wxMenu& menu ) |
|||
{ |
|||
bool showActivate = false; |
|||
bool showDeactivate = false; |
|||
LIB_TABLE_GRID* tbl = static_cast<LIB_TABLE_GRID*>( m_grid->GetTable() ); |
|||
|
|||
for( int row = m_sel_row_start; row < m_sel_row_start + m_sel_row_count; ++row ) |
|||
{ |
|||
if( tbl->GetValueAsBool( row, 0 ) ) |
|||
{ |
|||
showDeactivate = true; |
|||
} |
|||
else |
|||
{ |
|||
showActivate = true; |
|||
} |
|||
|
|||
if( showActivate && showDeactivate ) |
|||
break; |
|||
} |
|||
|
|||
if( showActivate ) |
|||
menu.Append( LIB_TABLE_GRID_TRICKS_ACTIVATE_SELECTED, _( "Activate selected" ) ); |
|||
if( showDeactivate ) |
|||
menu.Append( LIB_TABLE_GRID_TRICKS_DEACTIVATE_SELECTED, _( "Deactivate selected" ) ); |
|||
menu.AppendSeparator(); |
|||
GRID_TRICKS::showPopupMenu( menu ); |
|||
} |
|||
|
|||
void LIB_TABLE_GRID_TRICKS::doPopupSelection( wxCommandEvent& event ) |
|||
{ |
|||
int menu_id = event.GetId(); |
|||
if( menu_id == LIB_TABLE_GRID_TRICKS_ACTIVATE_SELECTED |
|||
|| menu_id == LIB_TABLE_GRID_TRICKS_DEACTIVATE_SELECTED ) |
|||
{ |
|||
LIB_TABLE_GRID* tbl = (LIB_TABLE_GRID*) m_grid->GetTable(); |
|||
|
|||
for( int row = m_sel_row_start; row < m_sel_row_start + m_sel_row_count; ++row ) |
|||
{ |
|||
tbl->SetValueAsBool( row, 0, menu_id == LIB_TABLE_GRID_TRICKS_ACTIVATE_SELECTED ); |
|||
} |
|||
} |
|||
else |
|||
{ |
|||
GRID_TRICKS::doPopupSelection( event ); |
|||
} |
|||
} |
@ -0,0 +1,35 @@ |
|||
/* |
|||
* This program source code file is part of KiCad, a free EDA CAD application. |
|||
* |
|||
* Copyright (C) 2017-2022 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 3 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, see <http://www.gnu.org/licenses/>. |
|||
*/ |
|||
|
|||
#include "grid_tricks.h" |
|||
|
|||
class LIB_TABLE_GRID_TRICKS : public GRID_TRICKS |
|||
{ |
|||
enum |
|||
{ |
|||
LIB_TABLE_GRID_TRICKS_ACTIVATE_SELECTED = GRIDTRICKS_FIRST_CLIENT_ID, |
|||
LIB_TABLE_GRID_TRICKS_DEACTIVATE_SELECTED |
|||
}; |
|||
|
|||
public: |
|||
explicit LIB_TABLE_GRID_TRICKS( WX_GRID* aGrid ); |
|||
|
|||
void showPopupMenu( wxMenu& menu ) override; |
|||
void doPopupSelection( wxCommandEvent& event ) override; |
|||
}; |
Write
Preview
Loading…
Cancel
Save
Reference in new issue