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 }