KiCad PCB EDA Suite
Loading...
Searching...
No Matches
model_preview_manager_windows_classifier.cpp
Go to the documentation of this file.
1
/*
2
* This program source code file is part of KiCad, a free EDA CAD application.
3
*
4
* Copyright The KiCad Developers, see AUTHORS.txt for contributors.
5
*
6
* This program is free software; you can redistribute it and/or
7
* modify it under the terms of the GNU General Public License as published by
8
* the Free Software Foundation; either version 3 of the License, or (at your option)
9
* any later version.
10
*
11
* This program is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
* GNU General Public License for more details.
15
*
16
* You should have received a copy of the GNU General Public License
17
* along with this program; if not, you may find one here:
18
* http://www.gnu.org/licenses/old-licenses/gpl-3.0.html
19
*/
20
21
#include <
model_preview_manager_windows_internal.h
>
22
23
24
namespace
25
{
26
bool
Uncertain(
MODEL_PREVIEW_OBSERVATION
aValue )
27
{
28
return
aValue ==
MODEL_PREVIEW_OBSERVATION::UNREADABLE
;
29
}
30
31
bool
Damaged(
MODEL_PREVIEW_OBSERVATION
aValue )
32
{
33
return
aValue ==
MODEL_PREVIEW_OBSERVATION::MISSING
|| aValue ==
MODEL_PREVIEW_OBSERVATION::MALFORMED
;
34
}
35
}
// namespace
36
37
38
MODEL_PREVIEW_STATUS
ClassifyWindowsModelPreviewStatus
(
const
WINDOWS_MODEL_PREVIEW_SNAPSHOT
& aSnapshot )
39
{
40
MODEL_PREVIEW_STATUS
status;
41
status.
bundledVersion
= aSnapshot.
bundledVersion
;
42
status.
registeredVersion
= aSnapshot.
registeredVersion
;
43
status.
requirementId
= aSnapshot.
requirementId
;
44
45
if
( !aSnapshot.
bundledPresent
)
46
{
47
status.
component
=
MODEL_PREVIEW_COMPONENT_STATE::UNAVAILABLE
;
48
status.
enablement
=
MODEL_PREVIEW_ENABLEMENT_STATE::SETUP_REQUIRED
;
49
status.
guidance
=
MODEL_PREVIEW_GUIDANCE::REINSTALL_KICAD
;
50
status.
detail
= wxS(
"The bundled Windows preview handler is missing."
);
51
return
status;
52
}
53
54
if
( Uncertain( aSnapshot.module ) || Uncertain( aSnapshot.
associations
) || Uncertain( aSnapshot.
surrogate
)
55
|| Uncertain( aSnapshot.
classMetadata
) || Uncertain( aSnapshot.
previewList
) )
56
{
57
status.
component
=
MODEL_PREVIEW_COMPONENT_STATE::AVAILABLE
;
58
status.
enablement
=
MODEL_PREVIEW_ENABLEMENT_STATE::UNKNOWN
;
59
status.
guidance
=
MODEL_PREVIEW_GUIDANCE::STATUS_UNAVAILABLE
;
60
status.
detail
= wxS(
"Windows preview registration could not be read."
);
61
return
status;
62
}
63
64
if
( aSnapshot.
foreignOwner
|| ( aSnapshot.module ==
MODEL_PREVIEW_OBSERVATION::PRESENT
&& !aSnapshot.
sameModule
) )
65
{
66
status.
component
=
MODEL_PREVIEW_COMPONENT_STATE::DAMAGED
;
67
status.
enablement
=
MODEL_PREVIEW_ENABLEMENT_STATE::SETUP_REQUIRED
;
68
status.
guidance
=
MODEL_PREVIEW_GUIDANCE::NONE
;
69
status.
detail
= wxS(
"A different Windows preview handler owns this registration."
);
70
return
status;
71
}
72
73
if
( aSnapshot.module ==
MODEL_PREVIEW_OBSERVATION::MISSING
)
74
{
75
status.
component
=
MODEL_PREVIEW_COMPONENT_STATE::AVAILABLE
;
76
status.
enablement
=
MODEL_PREVIEW_ENABLEMENT_STATE::SETUP_REQUIRED
;
77
status.
guidance
=
MODEL_PREVIEW_GUIDANCE::REPAIR_REGISTRATION
;
78
status.
detail
= wxS(
"Windows model previews are not registered for this user."
);
79
status.
canRepairRegistration
=
true
;
80
return
status;
81
}
82
83
if
( aSnapshot.
registeredVersion
!= aSnapshot.
bundledVersion
)
84
{
85
status.
component
=
MODEL_PREVIEW_COMPONENT_STATE::VERSION_MISMATCH
;
86
status.
enablement
=
MODEL_PREVIEW_ENABLEMENT_STATE::SETUP_REQUIRED
;
87
status.
guidance
=
MODEL_PREVIEW_GUIDANCE::REPAIR_REGISTRATION
;
88
status.
detail
= wxS(
"The registered Windows preview handler version does not match this KiCad installation."
);
89
status.
canRepairRegistration
=
true
;
90
return
status;
91
}
92
93
if
( aSnapshot.module ==
MODEL_PREVIEW_OBSERVATION::MALFORMED
|| Damaged( aSnapshot.
associations
)
94
|| Damaged( aSnapshot.
surrogate
) || Damaged( aSnapshot.
classMetadata
) || Damaged( aSnapshot.
previewList
) )
95
{
96
status.
component
=
MODEL_PREVIEW_COMPONENT_STATE::DAMAGED
;
97
status.
enablement
=
MODEL_PREVIEW_ENABLEMENT_STATE::SETUP_REQUIRED
;
98
status.
guidance
=
MODEL_PREVIEW_GUIDANCE::REPAIR_REGISTRATION
;
99
status.
detail
= wxS(
"Windows model preview registration is incomplete."
);
100
status.
canRepairRegistration
=
true
;
101
return
status;
102
}
103
104
status.
component
=
MODEL_PREVIEW_COMPONENT_STATE::AVAILABLE
;
105
status.
enablement
=
MODEL_PREVIEW_ENABLEMENT_STATE::ENABLED
;
106
status.
detail
= wxS(
"Windows model previews are registered."
);
107
return
status;
108
}
MODEL_PREVIEW_COMPONENT_STATE::UNAVAILABLE
@ UNAVAILABLE
Definition
model_preview_manager.h:38
MODEL_PREVIEW_COMPONENT_STATE::AVAILABLE
@ AVAILABLE
Definition
model_preview_manager.h:37
MODEL_PREVIEW_COMPONENT_STATE::DAMAGED
@ DAMAGED
Definition
model_preview_manager.h:39
MODEL_PREVIEW_COMPONENT_STATE::VERSION_MISMATCH
@ VERSION_MISMATCH
Definition
model_preview_manager.h:40
MODEL_PREVIEW_GUIDANCE::REPAIR_REGISTRATION
@ REPAIR_REGISTRATION
Definition
model_preview_manager.h:53
MODEL_PREVIEW_GUIDANCE::STATUS_UNAVAILABLE
@ STATUS_UNAVAILABLE
Definition
model_preview_manager.h:55
MODEL_PREVIEW_GUIDANCE::NONE
@ NONE
Definition
model_preview_manager.h:52
MODEL_PREVIEW_GUIDANCE::REINSTALL_KICAD
@ REINSTALL_KICAD
Definition
model_preview_manager.h:54
MODEL_PREVIEW_ENABLEMENT_STATE::SETUP_REQUIRED
@ SETUP_REQUIRED
Definition
model_preview_manager.h:46
MODEL_PREVIEW_ENABLEMENT_STATE::UNKNOWN
@ UNKNOWN
Definition
model_preview_manager.h:47
MODEL_PREVIEW_ENABLEMENT_STATE::ENABLED
@ ENABLED
Definition
model_preview_manager.h:45
ClassifyWindowsModelPreviewStatus
MODEL_PREVIEW_STATUS ClassifyWindowsModelPreviewStatus(const WINDOWS_MODEL_PREVIEW_SNAPSHOT &aSnapshot)
Definition
model_preview_manager_windows_classifier.cpp:38
model_preview_manager_windows_internal.h
MODEL_PREVIEW_OBSERVATION::MISSING
@ MISSING
Definition
model_preview_manager_windows_internal.h:36
MODEL_PREVIEW_OBSERVATION::UNREADABLE
@ UNREADABLE
Definition
model_preview_manager_windows_internal.h:37
MODEL_PREVIEW_OBSERVATION::MALFORMED
@ MALFORMED
Definition
model_preview_manager_windows_internal.h:38
MODEL_PREVIEW_OBSERVATION::PRESENT
@ PRESENT
Definition
model_preview_manager_windows_internal.h:35
MODEL_PREVIEW_OBSERVATION
MODEL_PREVIEW_STATUS
Definition
model_preview_manager.h:59
MODEL_PREVIEW_STATUS::bundledVersion
wxString bundledVersion
Definition
model_preview_manager.h:63
MODEL_PREVIEW_STATUS::enablement
MODEL_PREVIEW_ENABLEMENT_STATE enablement
Definition
model_preview_manager.h:61
MODEL_PREVIEW_STATUS::requirementId
wxString requirementId
Definition
model_preview_manager.h:65
MODEL_PREVIEW_STATUS::guidance
MODEL_PREVIEW_GUIDANCE guidance
Definition
model_preview_manager.h:62
MODEL_PREVIEW_STATUS::registeredVersion
wxString registeredVersion
Definition
model_preview_manager.h:64
MODEL_PREVIEW_STATUS::detail
wxString detail
Definition
model_preview_manager.h:66
MODEL_PREVIEW_STATUS::canRepairRegistration
bool canRepairRegistration
Definition
model_preview_manager.h:67
MODEL_PREVIEW_STATUS::component
MODEL_PREVIEW_COMPONENT_STATE component
Definition
model_preview_manager.h:60
WINDOWS_MODEL_PREVIEW_SNAPSHOT
Definition
model_preview_manager_windows_internal.h:42
WINDOWS_MODEL_PREVIEW_SNAPSHOT::previewList
MODEL_PREVIEW_OBSERVATION previewList
Definition
model_preview_manager_windows_internal.h:50
WINDOWS_MODEL_PREVIEW_SNAPSHOT::classMetadata
MODEL_PREVIEW_OBSERVATION classMetadata
Definition
model_preview_manager_windows_internal.h:49
WINDOWS_MODEL_PREVIEW_SNAPSHOT::bundledVersion
wxString bundledVersion
Definition
model_preview_manager_windows_internal.h:51
WINDOWS_MODEL_PREVIEW_SNAPSHOT::requirementId
wxString requirementId
Definition
model_preview_manager_windows_internal.h:53
WINDOWS_MODEL_PREVIEW_SNAPSHOT::registeredVersion
wxString registeredVersion
Definition
model_preview_manager_windows_internal.h:52
WINDOWS_MODEL_PREVIEW_SNAPSHOT::foreignOwner
bool foreignOwner
Definition
model_preview_manager_windows_internal.h:44
WINDOWS_MODEL_PREVIEW_SNAPSHOT::bundledPresent
bool bundledPresent
Definition
model_preview_manager_windows_internal.h:43
WINDOWS_MODEL_PREVIEW_SNAPSHOT::associations
MODEL_PREVIEW_OBSERVATION associations
Definition
model_preview_manager_windows_internal.h:47
WINDOWS_MODEL_PREVIEW_SNAPSHOT::sameModule
bool sameModule
Definition
model_preview_manager_windows_internal.h:45
WINDOWS_MODEL_PREVIEW_SNAPSHOT::surrogate
MODEL_PREVIEW_OBSERVATION surrogate
Definition
model_preview_manager_windows_internal.h:48
src
common
model_preview_manager_windows_classifier.cpp
Generated on Wed Oct 7 2026 00:05:53 for KiCad PCB EDA Suite by
1.13.2