1 /*
2  * This program source code file is part of KiCad, a free EDA CAD application.
3  *
4  * Copyright (C) 2017 CERN
5  * Copyright (C) 2019-2021 KiCad Developers, see AUTHORS.txt for contributors.
6  * @author Maciej Suminski <maciej.suminski@cern.ch>
7  *
8  * This program is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU General Public License
10  * as published by the Free Software Foundation; either version 3
11  * of the License, or (at your option) any later version.
12  *
13  * This program is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16  * GNU General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License
19  * along with this program; if not, you may find one here:
20  * https://www.gnu.org/licenses/gpl-3.0.html
21  * or you may search the http://www.gnu.org website for the version 3 license,
22  * or you may write to the Free Software Foundation, Inc.,
23  * 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
24  */
25 
26 
27 #include <wx/intl.h>
28 #include <lib_logger.h>
29 
LIB_LOGGER()30 LIB_LOGGER::LIB_LOGGER() : m_previousLogger( nullptr ), m_activated( false )
31 {
32 }
33 
~LIB_LOGGER()34 LIB_LOGGER::~LIB_LOGGER()
35 {
36     Deactivate();
37 }
38 
Activate()39 void LIB_LOGGER::Activate()
40 {
41     if( !m_activated )
42     {
43         m_previousLogger = wxLog::GetActiveTarget();
44         wxLog::SetActiveTarget( this );
45         m_activated = true;
46     }
47 }
48 
Deactivate()49 void LIB_LOGGER::Deactivate()
50 {
51     if( m_activated )
52     {
53         Flush();
54         m_activated = false;
55         wxLog::SetActiveTarget( m_previousLogger );
56     }
57 }
58 
59 
Flush()60 void LIB_LOGGER::Flush()
61 {
62     if( m_bHasMessages )
63     {
64         wxLogMessage( _( "Not all symbol libraries could be loaded.  Use the Manage Symbol\n"
65                          "Libraries dialog to adjust paths and add or remove libraries." ) );
66         wxLogGui::Flush();
67     }
68 }