Save annotation settings in preferences.
See comments in issue. Fixes https://gitlab.com/kicad/code/kicad/issues/8277
This commit is contained in:
parent
3f040185ce
commit
de2f60fe4c
|
@ -96,7 +96,7 @@ void SCH_EDIT_FRAME::DeleteAnnotation( bool aCurrentSheetOnly, bool* aAppendUndo
|
||||||
|
|
||||||
void SCH_EDIT_FRAME::AnnotateSymbols( bool aAnnotateSchematic,
|
void SCH_EDIT_FRAME::AnnotateSymbols( bool aAnnotateSchematic,
|
||||||
ANNOTATE_ORDER_T aSortOption,
|
ANNOTATE_ORDER_T aSortOption,
|
||||||
ANNOTATE_OPTION_T aAlgoOption,
|
ANNOTATE_ALGO_T aAlgoOption,
|
||||||
int aStartNumber,
|
int aStartNumber,
|
||||||
bool aResetAnnotation,
|
bool aResetAnnotation,
|
||||||
bool aRepairTimestamps,
|
bool aRepairTimestamps,
|
||||||
|
|
|
@ -59,18 +59,9 @@ private:
|
||||||
bool GetResetItems();
|
bool GetResetItems();
|
||||||
bool GetLockUnits();
|
bool GetLockUnits();
|
||||||
|
|
||||||
/**
|
ANNOTATE_ORDER_T GetSortOrder();
|
||||||
* @return 0 if annotation by X position,
|
|
||||||
* 1 if annotation by Y position,
|
|
||||||
*/
|
|
||||||
int GetSortOrder();
|
|
||||||
|
|
||||||
/**
|
ANNOTATE_ALGO_T GetAnnotateAlgo();
|
||||||
* @return 0 if annotation using first free Id value
|
|
||||||
* 1 for first free Id value inside sheet num * 100 to sheet num * 100 + 99
|
|
||||||
* 2 for first free Id value inside sheet num * 1000 to sheet num * 1000 + 999
|
|
||||||
*/
|
|
||||||
int GetAnnotateAlgo();
|
|
||||||
|
|
||||||
int GetStartNumber();
|
int GetStartNumber();
|
||||||
|
|
||||||
|
@ -117,6 +108,8 @@ DIALOG_ANNOTATE::~DIALOG_ANNOTATE()
|
||||||
|
|
||||||
cfg->m_AnnotatePanel.sort_order = GetSortOrder();
|
cfg->m_AnnotatePanel.sort_order = GetSortOrder();
|
||||||
cfg->m_AnnotatePanel.method = GetAnnotateAlgo();
|
cfg->m_AnnotatePanel.method = GetAnnotateAlgo();
|
||||||
|
cfg->m_AnnotatePanel.options = m_rbOptions->GetSelection();
|
||||||
|
cfg->m_AnnotatePanel.scope = m_rbScope->GetSelection();
|
||||||
cfg->m_AnnotatePanel.messages_filter = m_MessageWindow->GetVisibleSeverities();
|
cfg->m_AnnotatePanel.messages_filter = m_MessageWindow->GetVisibleSeverities();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -127,8 +120,8 @@ void DIALOG_ANNOTATE::InitValues()
|
||||||
int option;
|
int option;
|
||||||
|
|
||||||
// These are always reset to attempt to keep the user out of trouble...
|
// These are always reset to attempt to keep the user out of trouble...
|
||||||
m_rbScope->SetSelection( 0 );
|
m_rbScope->SetSelection( cfg->m_AnnotatePanel.scope );
|
||||||
m_rbOptions->SetSelection( 0 );
|
m_rbOptions->SetSelection( cfg->m_AnnotatePanel.options );
|
||||||
|
|
||||||
option = cfg->m_AnnotatePanel.sort_order;
|
option = cfg->m_AnnotatePanel.sort_order;
|
||||||
|
|
||||||
|
@ -179,8 +172,7 @@ void DIALOG_ANNOTATE::OnApplyClick( wxCommandEvent& event )
|
||||||
REPORTER& reporter = m_MessageWindow->Reporter();
|
REPORTER& reporter = m_MessageWindow->Reporter();
|
||||||
m_MessageWindow->SetLazyUpdate( true ); // Don't update after each message
|
m_MessageWindow->SetLazyUpdate( true ); // Don't update after each message
|
||||||
|
|
||||||
m_Parent->AnnotateSymbols( GetLevel(), (ANNOTATE_ORDER_T) GetSortOrder(),
|
m_Parent->AnnotateSymbols( GetLevel(), GetSortOrder(), GetAnnotateAlgo(), GetStartNumber(),
|
||||||
(ANNOTATE_OPTION_T) GetAnnotateAlgo(), GetStartNumber(),
|
|
||||||
GetResetItems(), true, GetLockUnits(), reporter );
|
GetResetItems(), true, GetLockUnits(), reporter );
|
||||||
|
|
||||||
m_MessageWindow->Flush( true ); // Now update to show all messages
|
m_MessageWindow->Flush( true ); // Now update to show all messages
|
||||||
|
@ -237,23 +229,23 @@ bool DIALOG_ANNOTATE::GetLockUnits()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int DIALOG_ANNOTATE::GetSortOrder()
|
ANNOTATE_ORDER_T DIALOG_ANNOTATE::GetSortOrder()
|
||||||
{
|
{
|
||||||
if( m_rbSortBy_Y_Position->GetValue() )
|
if( m_rbSortBy_Y_Position->GetValue() )
|
||||||
return 1;
|
return SORT_BY_Y_POSITION;
|
||||||
else
|
else
|
||||||
return 0;
|
return SORT_BY_X_POSITION;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int DIALOG_ANNOTATE::GetAnnotateAlgo()
|
ANNOTATE_ALGO_T DIALOG_ANNOTATE::GetAnnotateAlgo()
|
||||||
{
|
{
|
||||||
if( m_rbSheetX100->GetValue() )
|
if( m_rbSheetX100->GetValue() )
|
||||||
return 1;
|
return SHEET_NUMBER_X_100;
|
||||||
else if( m_rbSheetX1000->GetValue() )
|
else if( m_rbSheetX1000->GetValue() )
|
||||||
return 2;
|
return SHEET_NUMBER_X_1000;
|
||||||
else
|
else
|
||||||
return 0;
|
return INCREMENTAL_BY_REF;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -193,6 +193,12 @@ EESCHEMA_SETTINGS::EESCHEMA_SETTINGS() :
|
||||||
m_params.emplace_back( new PARAM<int>( "annotation.method",
|
m_params.emplace_back( new PARAM<int>( "annotation.method",
|
||||||
&m_AnnotatePanel.method, 0, 0, 2 ) );
|
&m_AnnotatePanel.method, 0, 0, 2 ) );
|
||||||
|
|
||||||
|
m_params.emplace_back( new PARAM<int>( "annotation.scope",
|
||||||
|
&m_AnnotatePanel.scope, 0, 0, 2 ) );
|
||||||
|
|
||||||
|
m_params.emplace_back( new PARAM<int>( "annotation.options",
|
||||||
|
&m_AnnotatePanel.options, 0, 0, 2 ) );
|
||||||
|
|
||||||
m_params.emplace_back( new PARAM<int>( "annotation.messages_filter",
|
m_params.emplace_back( new PARAM<int>( "annotation.messages_filter",
|
||||||
&m_AnnotatePanel.messages_filter, -1 ) );
|
&m_AnnotatePanel.messages_filter, -1 ) );
|
||||||
|
|
||||||
|
|
|
@ -132,6 +132,8 @@ public:
|
||||||
|
|
||||||
struct PANEL_ANNOTATE
|
struct PANEL_ANNOTATE
|
||||||
{
|
{
|
||||||
|
int scope;
|
||||||
|
int options;
|
||||||
int method;
|
int method;
|
||||||
int messages_filter;
|
int messages_filter;
|
||||||
int sort_order;
|
int sort_order;
|
||||||
|
|
|
@ -65,7 +65,8 @@ class HIERARCHY_NAVIG_DLG;
|
||||||
|
|
||||||
// @todo Move this to transform alone with all of the transform manipulation code.
|
// @todo Move this to transform alone with all of the transform manipulation code.
|
||||||
/// enum used in RotationMiroir()
|
/// enum used in RotationMiroir()
|
||||||
enum COMPONENT_ORIENTATION_T {
|
enum COMPONENT_ORIENTATION_T
|
||||||
|
{
|
||||||
CMP_NORMAL, // Normal orientation, no rotation or mirror
|
CMP_NORMAL, // Normal orientation, no rotation or mirror
|
||||||
CMP_ROTATE_CLOCKWISE, // Rotate -90
|
CMP_ROTATE_CLOCKWISE, // Rotate -90
|
||||||
CMP_ROTATE_COUNTERCLOCKWISE, // Rotate +90
|
CMP_ROTATE_COUNTERCLOCKWISE, // Rotate +90
|
||||||
|
@ -79,7 +80,8 @@ enum COMPONENT_ORIENTATION_T {
|
||||||
|
|
||||||
|
|
||||||
/** Schematic annotation order options. */
|
/** Schematic annotation order options. */
|
||||||
enum ANNOTATE_ORDER_T {
|
enum ANNOTATE_ORDER_T
|
||||||
|
{
|
||||||
SORT_BY_X_POSITION, ///< Annotate by X position from left to right.
|
SORT_BY_X_POSITION, ///< Annotate by X position from left to right.
|
||||||
SORT_BY_Y_POSITION, ///< Annotate by Y position from top to bottom.
|
SORT_BY_Y_POSITION, ///< Annotate by Y position from top to bottom.
|
||||||
UNSORTED, ///< Annotate by position of component in the schematic sheet
|
UNSORTED, ///< Annotate by position of component in the schematic sheet
|
||||||
|
@ -88,7 +90,8 @@ enum ANNOTATE_ORDER_T {
|
||||||
|
|
||||||
|
|
||||||
/** Schematic annotation type options. */
|
/** Schematic annotation type options. */
|
||||||
enum ANNOTATE_OPTION_T {
|
enum ANNOTATE_ALGO_T
|
||||||
|
{
|
||||||
INCREMENTAL_BY_REF, ///< Annotate incrementally using the first free reference number.
|
INCREMENTAL_BY_REF, ///< Annotate incrementally using the first free reference number.
|
||||||
SHEET_NUMBER_X_100, ///< Annotate using the first free reference number starting at
|
SHEET_NUMBER_X_100, ///< Annotate using the first free reference number starting at
|
||||||
///< the sheet number * 100.
|
///< the sheet number * 100.
|
||||||
|
@ -98,13 +101,15 @@ enum ANNOTATE_OPTION_T {
|
||||||
|
|
||||||
|
|
||||||
/// Schematic search type used by the socket link with Pcbnew
|
/// Schematic search type used by the socket link with Pcbnew
|
||||||
enum SCH_SEARCH_T {
|
enum SCH_SEARCH_T
|
||||||
|
{
|
||||||
HIGHLIGHT_PIN,
|
HIGHLIGHT_PIN,
|
||||||
HIGHLIGHT_COMPONENT
|
HIGHLIGHT_COMPONENT
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
enum SCH_CLEANUP_FLAGS {
|
enum SCH_CLEANUP_FLAGS
|
||||||
|
{
|
||||||
NO_CLEANUP,
|
NO_CLEANUP,
|
||||||
LOCAL_CLEANUP,
|
LOCAL_CLEANUP,
|
||||||
GLOBAL_CLEANUP
|
GLOBAL_CLEANUP
|
||||||
|
@ -369,7 +374,7 @@ public:
|
||||||
* @param aAnnotateSchematic Annotate the entire schematic if true. Otherwise annotate
|
* @param aAnnotateSchematic Annotate the entire schematic if true. Otherwise annotate
|
||||||
* the current sheet only.
|
* the current sheet only.
|
||||||
* @param aSortOption Define the annotation order. See #ANNOTATE_ORDER_T.
|
* @param aSortOption Define the annotation order. See #ANNOTATE_ORDER_T.
|
||||||
* @param aAlgoOption Define the annotation style. See #ANNOTATE_OPTION_T.
|
* @param aAlgoOption Define the annotation style. See #ANNOTATE_ALGO_T.
|
||||||
* @param aStartNumber The start number for non-sheet-based annotation styles.
|
* @param aStartNumber The start number for non-sheet-based annotation styles.
|
||||||
* @param aResetAnnotation Clear any previous annotation if true. Otherwise, keep the
|
* @param aResetAnnotation Clear any previous annotation if true. Otherwise, keep the
|
||||||
* existing component annotation.
|
* existing component annotation.
|
||||||
|
@ -391,7 +396,7 @@ public:
|
||||||
* 200 to 299, and so on.
|
* 200 to 299, and so on.
|
||||||
*/
|
*/
|
||||||
void AnnotateSymbols( bool aAnnotateSchematic, ANNOTATE_ORDER_T aSortOption,
|
void AnnotateSymbols( bool aAnnotateSchematic, ANNOTATE_ORDER_T aSortOption,
|
||||||
ANNOTATE_OPTION_T aAlgoOption, int aStartNumber, bool aResetAnnotation,
|
ANNOTATE_ALGO_T aAlgoOption, int aStartNumber, bool aResetAnnotation,
|
||||||
bool aRepairTimestamps, bool aLockUnits, REPORTER& aReporter );
|
bool aRepairTimestamps, bool aLockUnits, REPORTER& aReporter );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue