mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-10-04 06:11:02 +00:00
Compare commits
16
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7eadc93ecc | ||
|
|
6146a793ab | ||
|
|
36fb9905e5 | ||
|
|
674308f691 | ||
|
|
5be5c90e59 | ||
|
|
32b1e69fdd | ||
|
|
5e2d8ab4f0 | ||
|
|
0d80446301 | ||
|
|
d1a3ef68c5 | ||
|
|
a80c323614 | ||
|
|
52ff374870 | ||
|
|
6e0f04815b | ||
|
|
c67b54b39d | ||
|
|
a6dbf2502d | ||
|
|
8a6377f087 | ||
|
|
c86e33db6d |
+4
-1
@@ -14,7 +14,9 @@ CheckOptions:
|
||||
# admesh's stl.h, which the include path also exposes without its directory.
|
||||
# Clipper's own clipper.hpp is only included through libslic3r/clipper.hpp or
|
||||
# clipper_z.hpp, which configure it first, and Boost.Polygon's headers only
|
||||
# work through boost/polygon/polygon.hpp or voronoi.hpp. minilzo's config
|
||||
# work through boost/polygon/polygon.hpp or voronoi.hpp. Clipper2's headers
|
||||
# are included through clipper2/clipper.h, or clipper2_z.hpp, which defines
|
||||
# USINGZ first. minilzo's config
|
||||
# headers are internal to minilzo.h.
|
||||
# FFmpeg's C headers are left alone because they are only included inside
|
||||
# extern "C", which an inserted include would miss. OS-specific headers (GLib,
|
||||
@@ -59,4 +61,5 @@ CheckOptions:
|
||||
png(lib)?conf\.h;
|
||||
mcut[/\\]platform\.h;
|
||||
boost[/\\]polygon[/\\].*;
|
||||
clipper2[/\\]clipper\.(core|engine|offset|minkowski|rectclip|export|triangulation|version)\.h;
|
||||
lzo(conf|defs)\.h
|
||||
|
||||
@@ -30,8 +30,9 @@ how you read the wx docs:
|
||||
Look things up in the source the app is built from — it beats memory, and 3.3 changed real behaviour:
|
||||
|
||||
```bash
|
||||
WX=$(find deps -maxdepth 5 -type d -path '*dep_wxWidgets-prefix/src/dep_wxWidgets' | head -1)
|
||||
# macOS: deps/build/<arch>/dep_wxWidgets-prefix/src/dep_wxWidgets Linux: deps/build/dep_wxWidgets-prefix/...
|
||||
WX=$(find -L deps -maxdepth 5 -type d -path '*dep_wxWidgets-prefix/src/dep_wxWidgets' 2>/dev/null | head -1)
|
||||
# macOS: deps/build/<arch>/dep_wxWidgets-prefix/src/dep_wxWidgets Linux, Windows: deps/<tree>/dep_wxWidgets-prefix/...
|
||||
# -L follows a worktree's deps/<tree> symlinked to the main checkout. Not a glob: zsh aborts on one that matches nothing.
|
||||
# If deps are not built: git clone --depth 1 -b v3.3.2 https://github.com/SoftFever/Orca-deps-wxWidgets
|
||||
grep -n "CaptureMouse" -A 30 $WX/interface/wx/window.h # documented contract (doxygen source)
|
||||
grep -rn "@onlyfor\|not implemented" $WX/interface/wx/popupwin.h # documented platform limits
|
||||
@@ -40,6 +41,13 @@ grep -n "IsDark" $WX/docs/changes.txt # what changed in
|
||||
grep -n "NotifyCaptureLost" -r $WX/src/osx $WX/src/gtk $WX/src/msw # what each port actually does
|
||||
```
|
||||
|
||||
On Windows these lookups are bash: run them from Git Bash. PowerShell has no `grep`, and its `find` is
|
||||
Windows' text-search `find.exe`. To locate the wx tree from PowerShell:
|
||||
|
||||
```powershell
|
||||
$WX = Resolve-Path deps\*\dep_wxWidgets-prefix\src\dep_wxWidgets, deps\*\*\dep_wxWidgets-prefix\src\dep_wxWidgets -ErrorAction SilentlyContinue | Select-Object -First 1 -ExpandProperty Path
|
||||
```
|
||||
|
||||
`interface/wx/<class>.h` is the documentation; `src/common` holds shared behaviour and
|
||||
`src/{msw,osx,gtk,unix,generic}` the per-port implementation. When the docs and the source disagree,
|
||||
the source is what runs — the references mark such facts **[source]**. Orca-side design docs live in
|
||||
|
||||
@@ -331,6 +331,10 @@ OrcaSlicer: integer spinners are `::SpinInput` ([below](#spininput)); progress b
|
||||
Contract:
|
||||
- A page must be created with the book as its parent and added once; the book owns and deletes it
|
||||
(`interface/wx/bookctrl.h:253-254, 273`). `RemovePage` detaches without deleting, and you then own it (`:324-330`).
|
||||
- Removing the selected page selects the page before it (the new first page if it was first) through `SetSelection`,
|
||||
so that page is shown and PAGE_CHANGING/CHANGED are sent; removing a page before the selection only shifts the
|
||||
index. This is `wxBookCtrlBase::DoSetSelectionAfterRemoval` (`src/common/bookctrl.cpp:477-495` **[source]**),
|
||||
called from `DoRemovePage` by `wxSimplebook`, `wxChoicebook`, `wxListbook`, `wxToolbook` and Orca's `Notebook`.
|
||||
- `GetSelection()` inside a `PAGE_CHANGED` handler may return the old or the new page depending on the platform; use
|
||||
`event.GetSelection()` (`interface/wx/bookctrl.h:160-166`).
|
||||
- `wxSimplebook` has no UI; switch with `ChangeSelection()`. `SetSelection()` sends PAGE_CHANGING/CHANGED
|
||||
|
||||
@@ -10,7 +10,7 @@ wx asserts are compiled out in Orca (`wxDEBUG_LEVEL=0`), so every misuse below t
|
||||
an assert fails silently. "GTK" means wxGTK3, Orca's Linux default (X11 and Wayland); GTK2 is only
|
||||
an opt-out build (`-DDEP_WX_GTK3=OFF`), noted where it differs. Paths starting `interface/`,
|
||||
`include/`, `src/`, `docs/` are in the wx tree
|
||||
(`find deps -maxdepth 5 -type d -path '*dep_wxWidgets-prefix/src/dep_wxWidgets'`); Orca paths are
|
||||
(located as in `SKILL.md` §Ground truth); Orca paths are
|
||||
relative to `src/slic3r/GUI/`.
|
||||
|
||||
Contents: [Rules](#rules) · [Mouse capture](#mouse-capture) · [Mouse events](#mouse-events) ·
|
||||
|
||||
@@ -332,7 +332,9 @@ indices: pages come and go per printer and per feature flag.
|
||||
pages depending on the printer and on `use_printer_agents`; a removed page stays registered but is
|
||||
not prebuilt (its `LazyPage::in_book()` is false).
|
||||
- Plugin pages are appended by `PluginPages::initialize` (`plugin/host/PluginPages.hpp`) with
|
||||
namespaced ids (`plugin.<plugin_key>.<name>`) that cannot collide with `TAB_ID_*`.
|
||||
namespaced ids (`plugin.<plugin_key>.<name>`) that cannot collide with `TAB_ID_*`. Each is a
|
||||
`LazyPage<PluginPage>` with order −1, destroyed when its capability goes away.
|
||||
→ [Deferred construction](#deferred-construction-lazy-lazypage-stagedbuild-idlescheduler)
|
||||
|
||||
### Preset tabs
|
||||
|
||||
@@ -529,6 +531,32 @@ the main frame does nothing to a panel after creating it.
|
||||
m_idle.add(m_diff_dialog);
|
||||
```
|
||||
Cite: `IdleScheduler::tick`, `docs/HLSD/deferred-page-construction.md`.
|
||||
- **Rule:** A lazy page that can be destroyed while the main frame lives takes a negative order and
|
||||
stays out of `m_lazy_pages`.
|
||||
**Why:** `m_lazy_pages` and `PrebuildQueue` hold raw `LazyBase*` and nothing removes one
|
||||
(`PrebuildQueue` has only `add` and `clear`). The queue calls `pending()` on every task each slice,
|
||||
and `prebuild_pages_when_idle` reads every entry of `m_lazy_pages`, so a page destroyed while still
|
||||
listed can be read after it is freed. A page only taken out of the book is fine: it stays registered
|
||||
and its `pending()` is false (`MainFrame::show_device`).
|
||||
```cpp
|
||||
// Right (PluginPages::create_page): order -1, and no m_lazy_pages.push_back
|
||||
auto* page = new GUI::LazyPage<PluginPage>(m_parent, name, -1, [capability](wxWindow* parent) {
|
||||
return new PluginPage(parent, capability);
|
||||
});
|
||||
```
|
||||
Cite: `PluginPages::create_page`, `PluginPages::remove_page`.
|
||||
- **Rule:** Remove several lazy pages from a book left to right.
|
||||
**Why:** removing the selected page selects and shows the page before it
|
||||
(`references/controls-dataview.md` §Book controls), and showing an unbuilt `LazyPage` while the frame
|
||||
is shown builds it. In any other order the page before the selected one can be one removed next,
|
||||
built only to be destroyed; left to right it is one that stays (unless the selected page is the
|
||||
book's first).
|
||||
```cpp
|
||||
// Right (PluginPages::shutdown): m_order is the tabs' left-to-right order
|
||||
for (const PluginCapabilityId& id : std::vector<PluginCapabilityId>(m_order))
|
||||
remove_page(id);
|
||||
```
|
||||
Cite: `PluginPages::shutdown`, `PluginPages::relayout`, `PluginPages::on_plugin_deregister`.
|
||||
|
||||
## Plater and Sidebar
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@ to write a custom control on the wx side and how to author an Orca widget on the
|
||||
`StaticBox`/`StateHandler` foundation. Read it before writing or reviewing any `wxEVT_PAINT`
|
||||
handler, `render`/`doRender` method, `messureSize`, or a new class under `src/slic3r/GUI/Widgets/`.
|
||||
|
||||
wx cites are relative to the pinned wx 3.3.2 tree (`deps/build/<arch>/dep_wxWidgets-prefix/src/dep_wxWidgets`).
|
||||
wx cites are relative to the pinned wx 3.3.2 tree (located as in `SKILL.md` §Ground truth).
|
||||
Orca builds wx with `wxBUILD_DEBUG_LEVEL=0` and `libslic3r_gui` with `wxDEBUG_LEVEL=0`: every
|
||||
wx assert below is compiled out and `wxCHECK*` returns silently, so paint misuse shows up only as
|
||||
wrong, missing or stale pixels, never as an assert dialog.
|
||||
|
||||
@@ -78,8 +78,9 @@ Contents: [Rules](#rules) · [The wx build Orca uses](#the-wx-build-orca-uses)
|
||||
`references/colours-dark-mode.md`.
|
||||
- The checked-out source is the tree that every wx citation in this skill refers to:
|
||||
`deps/build/<arch>/dep_wxWidgets-prefix/src/dep_wxWidgets` on macOS and
|
||||
`deps/build/dep_wxWidgets-prefix/src/dep_wxWidgets` on Linux. Find it with
|
||||
`find deps -maxdepth 5 -type d -path '*dep_wxWidgets-prefix/src/dep_wxWidgets'`. On macOS its
|
||||
`deps/<tree>/dep_wxWidgets-prefix/src/dep_wxWidgets` on Linux and Windows (`deps/build` for a
|
||||
release build; `build_win.bat` names the others). Locate it with the bash or PowerShell lookup in
|
||||
`SKILL.md` §Ground truth. On macOS its
|
||||
`src/osx/cocoa/colour.mm` already has the patch applied.
|
||||
- **Flatpak builds wx separately.** `deps/CMakeLists.txt` leaves `dep_wxWidgets` out of the deps
|
||||
target when `FLATPAK` is set. Instead, `scripts/flatpak/com.orcaslicer.OrcaSlicer.yml` has its own
|
||||
|
||||
@@ -5,7 +5,7 @@ How wx 3.3.2 popups and menus behave on each port, and the Orca wrappers built o
|
||||
`append_menu_item`, `Plater::PopupMenu` and the macOS menubar versus `BBLTopbar`. Read it before you add
|
||||
or change anything that opens over other UI and must close by itself, or any context menu or menubar item.
|
||||
|
||||
wx cites are relative to the wx tree root (`deps/build/<arch>/dep_wxWidgets-prefix/src/dep_wxWidgets`).
|
||||
wx cites are relative to the wx tree root (located as in `SKILL.md` §Ground truth).
|
||||
**[source]** marks behaviour derived from the implementation that the wx docs do not state or contradict.
|
||||
Orca builds wx with `wxBUILD_DEBUG_LEVEL=0`, so every "asserts" below means "fails silently in Orca".
|
||||
"GTK" means wxGTK3 (X11 and Wayland), the default Linux build; GTK2 is only an opt-out (`-DDEP_WX_GTK3=OFF`).
|
||||
|
||||
@@ -7,7 +7,7 @@ yields and nested event loops, progress dialogs, startup, shutdown and exception
|
||||
screen, and the access rules for `wxGetApp()` and `app_config`. Read it whenever code runs off the
|
||||
main thread, defers work, starts a timer, yields, shows progress, or runs during startup or shutdown.
|
||||
|
||||
wx cites are relative to the pinned wx 3.3.2 tree (`deps/build/<arch>/dep_wxWidgets-prefix/src/dep_wxWidgets`).
|
||||
wx cites are relative to the pinned wx 3.3.2 tree (located as in `SKILL.md` §Ground truth).
|
||||
Orca builds wx with `wxBUILD_DEBUG_LEVEL=0` and `libslic3r_gui` with `wxDEBUG_LEVEL=0`, so `wxASSERT`
|
||||
is compiled out and `wxCHECK*` returns silently: a timer started off the main thread never fires on macOS,
|
||||
`Exit()` on a loop that is not the active one is ignored, `Start(0)` on macOS fails — all without
|
||||
|
||||
@@ -6,10 +6,9 @@ port; what Orca's `DPIDialog`/`DPIFrame` add; the Orca dialog recipe; and the `M
|
||||
Read it before writing or reviewing any dialog, frame, close handler, `Destroy()`/`delete`, or code
|
||||
that keeps a pointer to a window across an event, a `CallAfter` or a modal loop.
|
||||
|
||||
wx cites are relative to the pinned wx 3.3.2 tree (`find deps -maxdepth 5 -type d -path
|
||||
'*dep_wxWidgets-prefix/src/dep_wxWidgets'`). wx is built with `wxBUILD_DEBUG_LEVEL=0` and
|
||||
`libslic3r_gui` with `wxDEBUG_LEVEL=0`: every wx assert quoted below is compiled out, so misuse
|
||||
fails silently (dropped call, stuck loop, freed memory), never with an assert dialog. "GTK" below
|
||||
wx cites are relative to the pinned wx 3.3.2 tree (located as in `SKILL.md` §Ground truth). wx is
|
||||
built with `wxBUILD_DEBUG_LEVEL=0` and `libslic3r_gui` with `wxDEBUG_LEVEL=0`: every wx assert
|
||||
quoted below is compiled out, so misuse fails silently (dropped call, stuck loop, freed memory), never with an assert dialog. "GTK" below
|
||||
means wxGTK as Orca builds it on Linux: GTK3 by default (X11 or Wayland); GTK2 is only an opt-out.
|
||||
|
||||
Contents: [Rules](#rules) · [1 Creating and parenting](#1-creating-and-parenting-windows) ·
|
||||
|
||||
@@ -14,7 +14,7 @@ Contents: [Rules](#rules) · [1 Reading the change logs](#1-reading-the-change-l
|
||||
[8 Migration done in Orca](#8-migration-already-done-in-orca)
|
||||
|
||||
All `docs/`, `interface/`, `include/`, `src/`, `build/` cites are relative to the pinned wx tree
|
||||
(`find deps -maxdepth 5 -type d -path '*dep_wxWidgets-prefix/src/dep_wxWidgets'`), except paths
|
||||
(located as in `SKILL.md` §Ground truth), except paths
|
||||
explicitly called Orca's (`deps/…`, Orca's `src/CMakeLists.txt`) and bare Orca file + symbol cites.
|
||||
|
||||
## Rules
|
||||
|
||||
+1830
-1830
File diff suppressed because it is too large
Load Diff
+1189
-1189
File diff suppressed because it is too large
Load Diff
+2943
-2943
File diff suppressed because it is too large
Load Diff
+1338
-1338
File diff suppressed because it is too large
Load Diff
+2014
-2014
File diff suppressed because it is too large
Load Diff
+321
-321
@@ -1,323 +1,323 @@
|
||||
{
|
||||
"result": 0,
|
||||
"t": 1765968095,
|
||||
"ver": 202511162200,
|
||||
"data": [
|
||||
{
|
||||
"ecode": "03008041",
|
||||
"image": "",
|
||||
"actions": [
|
||||
4,
|
||||
6
|
||||
],
|
||||
"device": "26A"
|
||||
},
|
||||
{
|
||||
"ecode": "03008060",
|
||||
"image": "",
|
||||
"actions": [
|
||||
22
|
||||
],
|
||||
"device": "26A"
|
||||
},
|
||||
{
|
||||
"ecode": "12008010",
|
||||
"image": "c31daf51b36e446698f14c6df879ea21.png",
|
||||
"actions": [
|
||||
6,
|
||||
4
|
||||
],
|
||||
"device": "26A"
|
||||
},
|
||||
{
|
||||
"ecode": "12FF8010",
|
||||
"image": "f87557495f2f2163a44bde8f4ddd9b8c.png",
|
||||
"actions": [
|
||||
4,
|
||||
6
|
||||
],
|
||||
"device": "26A"
|
||||
},
|
||||
{
|
||||
"ecode": "18008016",
|
||||
"image": "",
|
||||
"actions": [
|
||||
4,
|
||||
6
|
||||
],
|
||||
"device": "26A"
|
||||
},
|
||||
{
|
||||
"ecode": "07008016",
|
||||
"image": "",
|
||||
"actions": [
|
||||
4,
|
||||
6
|
||||
],
|
||||
"device": "26A"
|
||||
},
|
||||
{
|
||||
"ecode": "07018016",
|
||||
"image": "",
|
||||
"actions": [
|
||||
4,
|
||||
6
|
||||
],
|
||||
"device": "26A"
|
||||
},
|
||||
{
|
||||
"ecode": "03002E0000030001",
|
||||
"image": "",
|
||||
"actions": [
|
||||
52
|
||||
],
|
||||
"device": "26A"
|
||||
},
|
||||
{
|
||||
"ecode": "03004016",
|
||||
"image": "",
|
||||
"actions": [
|
||||
6
|
||||
],
|
||||
"device": "26A"
|
||||
},
|
||||
{
|
||||
"ecode": "03008019",
|
||||
"image": "",
|
||||
"actions": [
|
||||
4
|
||||
],
|
||||
"device": "default"
|
||||
},
|
||||
{
|
||||
"ecode": "0502C026",
|
||||
"image": "",
|
||||
"actions": [
|
||||
11
|
||||
],
|
||||
"device": "default"
|
||||
},
|
||||
{
|
||||
"ecode": "05004003",
|
||||
"image": "",
|
||||
"actions": [
|
||||
11
|
||||
],
|
||||
"device": "default"
|
||||
},
|
||||
{
|
||||
"ecode": "05004040",
|
||||
"image": "",
|
||||
"actions": [
|
||||
11
|
||||
],
|
||||
"device": "default"
|
||||
},
|
||||
{
|
||||
"ecode": "05004042",
|
||||
"image": "",
|
||||
"actions": [
|
||||
36,
|
||||
37
|
||||
],
|
||||
"device": "default"
|
||||
},
|
||||
{
|
||||
"ecode": "03008000",
|
||||
"image": "",
|
||||
"actions": [
|
||||
2
|
||||
],
|
||||
"device": "default"
|
||||
},
|
||||
{
|
||||
"ecode": "0C00402D",
|
||||
"image": "",
|
||||
"actions": [
|
||||
11
|
||||
],
|
||||
"device": "default"
|
||||
},
|
||||
{
|
||||
"ecode": "05004037",
|
||||
"image": "",
|
||||
"actions": [
|
||||
11
|
||||
],
|
||||
"device": "default"
|
||||
},
|
||||
{
|
||||
"ecode": "05004015",
|
||||
"image": "",
|
||||
"actions": [
|
||||
14
|
||||
],
|
||||
"device": "default"
|
||||
},
|
||||
{
|
||||
"ecode": "05004007",
|
||||
"image": "",
|
||||
"actions": [
|
||||
11
|
||||
],
|
||||
"device": "default"
|
||||
},
|
||||
{
|
||||
"ecode": "0502C014",
|
||||
"image": "",
|
||||
"actions": [
|
||||
11
|
||||
],
|
||||
"device": "default"
|
||||
},
|
||||
{
|
||||
"ecode": "0300800C",
|
||||
"image": "",
|
||||
"actions": [
|
||||
2
|
||||
],
|
||||
"device": "default"
|
||||
},
|
||||
{
|
||||
"ecode": "05004004",
|
||||
"image": "",
|
||||
"actions": [
|
||||
11
|
||||
],
|
||||
"device": "default"
|
||||
},
|
||||
{
|
||||
"ecode": "0500402E",
|
||||
"image": "",
|
||||
"actions": [
|
||||
14
|
||||
],
|
||||
"device": "default"
|
||||
},
|
||||
{
|
||||
"ecode": "05024001",
|
||||
"image": "",
|
||||
"actions": [
|
||||
11
|
||||
],
|
||||
"device": "default"
|
||||
},
|
||||
{
|
||||
"ecode": "0502C012",
|
||||
"image": "",
|
||||
"actions": [
|
||||
11
|
||||
],
|
||||
"device": "default"
|
||||
},
|
||||
{
|
||||
"ecode": "0502C010",
|
||||
"image": "",
|
||||
"actions": [
|
||||
35
|
||||
],
|
||||
"device": "default"
|
||||
},
|
||||
{
|
||||
"ecode": "05008092",
|
||||
"image": "",
|
||||
"actions": [
|
||||
27,
|
||||
5
|
||||
],
|
||||
"device": "default"
|
||||
},
|
||||
{
|
||||
"ecode": "05004014",
|
||||
"image": "",
|
||||
"actions": [
|
||||
11
|
||||
],
|
||||
"device": "default"
|
||||
},
|
||||
{
|
||||
"ecode": "0300800D",
|
||||
"image": "",
|
||||
"actions": [
|
||||
2,
|
||||
6
|
||||
],
|
||||
"device": "default"
|
||||
},
|
||||
{
|
||||
"ecode": "0500402F",
|
||||
"image": "",
|
||||
"actions": [
|
||||
14
|
||||
],
|
||||
"device": "default"
|
||||
},
|
||||
{
|
||||
"ecode": "05004041",
|
||||
"image": "",
|
||||
"actions": [
|
||||
11
|
||||
],
|
||||
"device": "default"
|
||||
},
|
||||
{
|
||||
"ecode": "0500400E",
|
||||
"image": "",
|
||||
"actions": [
|
||||
11
|
||||
],
|
||||
"device": "default"
|
||||
},
|
||||
{
|
||||
"ecode": "05004043",
|
||||
"image": "",
|
||||
"actions": [
|
||||
11
|
||||
],
|
||||
"device": "default"
|
||||
},
|
||||
{
|
||||
"ecode": "0C00402C",
|
||||
"image": "",
|
||||
"actions": [
|
||||
11
|
||||
],
|
||||
"device": "default"
|
||||
},
|
||||
{
|
||||
"ecode": "03008017",
|
||||
"image": "",
|
||||
"actions": [
|
||||
4
|
||||
],
|
||||
"device": "default"
|
||||
},
|
||||
{
|
||||
"ecode": "03008013",
|
||||
"image": "",
|
||||
"actions": [
|
||||
2
|
||||
],
|
||||
"device": "default"
|
||||
},
|
||||
{
|
||||
"ecode": "03008007",
|
||||
"image": "",
|
||||
"actions": [
|
||||
2,
|
||||
5
|
||||
],
|
||||
"device": "default"
|
||||
},
|
||||
{
|
||||
"ecode": "03008016",
|
||||
"image": "",
|
||||
"actions": [
|
||||
4,
|
||||
5,
|
||||
6
|
||||
],
|
||||
"device": "default"
|
||||
}
|
||||
]
|
||||
"result": 0,
|
||||
"t": 1765968095,
|
||||
"ver": 202511162200,
|
||||
"data": [
|
||||
{
|
||||
"ecode": "03008041",
|
||||
"image": "",
|
||||
"actions": [
|
||||
4,
|
||||
6
|
||||
],
|
||||
"device": "26A"
|
||||
},
|
||||
{
|
||||
"ecode": "03008060",
|
||||
"image": "",
|
||||
"actions": [
|
||||
22
|
||||
],
|
||||
"device": "26A"
|
||||
},
|
||||
{
|
||||
"ecode": "12008010",
|
||||
"image": "c31daf51b36e446698f14c6df879ea21.png",
|
||||
"actions": [
|
||||
6,
|
||||
4
|
||||
],
|
||||
"device": "26A"
|
||||
},
|
||||
{
|
||||
"ecode": "12FF8010",
|
||||
"image": "f87557495f2f2163a44bde8f4ddd9b8c.png",
|
||||
"actions": [
|
||||
4,
|
||||
6
|
||||
],
|
||||
"device": "26A"
|
||||
},
|
||||
{
|
||||
"ecode": "18008016",
|
||||
"image": "",
|
||||
"actions": [
|
||||
4,
|
||||
6
|
||||
],
|
||||
"device": "26A"
|
||||
},
|
||||
{
|
||||
"ecode": "07008016",
|
||||
"image": "",
|
||||
"actions": [
|
||||
4,
|
||||
6
|
||||
],
|
||||
"device": "26A"
|
||||
},
|
||||
{
|
||||
"ecode": "07018016",
|
||||
"image": "",
|
||||
"actions": [
|
||||
4,
|
||||
6
|
||||
],
|
||||
"device": "26A"
|
||||
},
|
||||
{
|
||||
"ecode": "03002E0000030001",
|
||||
"image": "",
|
||||
"actions": [
|
||||
52
|
||||
],
|
||||
"device": "26A"
|
||||
},
|
||||
{
|
||||
"ecode": "03004016",
|
||||
"image": "",
|
||||
"actions": [
|
||||
6
|
||||
],
|
||||
"device": "26A"
|
||||
},
|
||||
{
|
||||
"ecode": "03008019",
|
||||
"image": "",
|
||||
"actions": [
|
||||
4
|
||||
],
|
||||
"device": "default"
|
||||
},
|
||||
{
|
||||
"ecode": "0502C026",
|
||||
"image": "",
|
||||
"actions": [
|
||||
11
|
||||
],
|
||||
"device": "default"
|
||||
},
|
||||
{
|
||||
"ecode": "05004003",
|
||||
"image": "",
|
||||
"actions": [
|
||||
11
|
||||
],
|
||||
"device": "default"
|
||||
},
|
||||
{
|
||||
"ecode": "05004040",
|
||||
"image": "",
|
||||
"actions": [
|
||||
11
|
||||
],
|
||||
"device": "default"
|
||||
},
|
||||
{
|
||||
"ecode": "05004042",
|
||||
"image": "",
|
||||
"actions": [
|
||||
36,
|
||||
37
|
||||
],
|
||||
"device": "default"
|
||||
},
|
||||
{
|
||||
"ecode": "03008000",
|
||||
"image": "",
|
||||
"actions": [
|
||||
2
|
||||
],
|
||||
"device": "default"
|
||||
},
|
||||
{
|
||||
"ecode": "0C00402D",
|
||||
"image": "",
|
||||
"actions": [
|
||||
11
|
||||
],
|
||||
"device": "default"
|
||||
},
|
||||
{
|
||||
"ecode": "05004037",
|
||||
"image": "",
|
||||
"actions": [
|
||||
11
|
||||
],
|
||||
"device": "default"
|
||||
},
|
||||
{
|
||||
"ecode": "05004015",
|
||||
"image": "",
|
||||
"actions": [
|
||||
14
|
||||
],
|
||||
"device": "default"
|
||||
},
|
||||
{
|
||||
"ecode": "05004007",
|
||||
"image": "",
|
||||
"actions": [
|
||||
11
|
||||
],
|
||||
"device": "default"
|
||||
},
|
||||
{
|
||||
"ecode": "0502C014",
|
||||
"image": "",
|
||||
"actions": [
|
||||
11
|
||||
],
|
||||
"device": "default"
|
||||
},
|
||||
{
|
||||
"ecode": "0300800C",
|
||||
"image": "",
|
||||
"actions": [
|
||||
2
|
||||
],
|
||||
"device": "default"
|
||||
},
|
||||
{
|
||||
"ecode": "05004004",
|
||||
"image": "",
|
||||
"actions": [
|
||||
11
|
||||
],
|
||||
"device": "default"
|
||||
},
|
||||
{
|
||||
"ecode": "0500402E",
|
||||
"image": "",
|
||||
"actions": [
|
||||
14
|
||||
],
|
||||
"device": "default"
|
||||
},
|
||||
{
|
||||
"ecode": "05024001",
|
||||
"image": "",
|
||||
"actions": [
|
||||
11
|
||||
],
|
||||
"device": "default"
|
||||
},
|
||||
{
|
||||
"ecode": "0502C012",
|
||||
"image": "",
|
||||
"actions": [
|
||||
11
|
||||
],
|
||||
"device": "default"
|
||||
},
|
||||
{
|
||||
"ecode": "0502C010",
|
||||
"image": "",
|
||||
"actions": [
|
||||
35
|
||||
],
|
||||
"device": "default"
|
||||
},
|
||||
{
|
||||
"ecode": "05008092",
|
||||
"image": "",
|
||||
"actions": [
|
||||
27,
|
||||
5
|
||||
],
|
||||
"device": "default"
|
||||
},
|
||||
{
|
||||
"ecode": "05004014",
|
||||
"image": "",
|
||||
"actions": [
|
||||
11
|
||||
],
|
||||
"device": "default"
|
||||
},
|
||||
{
|
||||
"ecode": "0300800D",
|
||||
"image": "",
|
||||
"actions": [
|
||||
2,
|
||||
6
|
||||
],
|
||||
"device": "default"
|
||||
},
|
||||
{
|
||||
"ecode": "0500402F",
|
||||
"image": "",
|
||||
"actions": [
|
||||
14
|
||||
],
|
||||
"device": "default"
|
||||
},
|
||||
{
|
||||
"ecode": "05004041",
|
||||
"image": "",
|
||||
"actions": [
|
||||
11
|
||||
],
|
||||
"device": "default"
|
||||
},
|
||||
{
|
||||
"ecode": "0500400E",
|
||||
"image": "",
|
||||
"actions": [
|
||||
11
|
||||
],
|
||||
"device": "default"
|
||||
},
|
||||
{
|
||||
"ecode": "05004043",
|
||||
"image": "",
|
||||
"actions": [
|
||||
11
|
||||
],
|
||||
"device": "default"
|
||||
},
|
||||
{
|
||||
"ecode": "0C00402C",
|
||||
"image": "",
|
||||
"actions": [
|
||||
11
|
||||
],
|
||||
"device": "default"
|
||||
},
|
||||
{
|
||||
"ecode": "03008017",
|
||||
"image": "",
|
||||
"actions": [
|
||||
4
|
||||
],
|
||||
"device": "default"
|
||||
},
|
||||
{
|
||||
"ecode": "03008013",
|
||||
"image": "",
|
||||
"actions": [
|
||||
2
|
||||
],
|
||||
"device": "default"
|
||||
},
|
||||
{
|
||||
"ecode": "03008007",
|
||||
"image": "",
|
||||
"actions": [
|
||||
2,
|
||||
5
|
||||
],
|
||||
"device": "default"
|
||||
},
|
||||
{
|
||||
"ecode": "03008016",
|
||||
"image": "",
|
||||
"actions": [
|
||||
4,
|
||||
5,
|
||||
6
|
||||
],
|
||||
"device": "default"
|
||||
}
|
||||
]
|
||||
}
|
||||
+2847
-2847
File diff suppressed because it is too large
Load Diff
+20903
-20903
File diff suppressed because it is too large
Load Diff
+20315
-20315
File diff suppressed because it is too large
Load Diff
+22215
-22215
File diff suppressed because it is too large
Load Diff
+20215
-20215
File diff suppressed because it is too large
Load Diff
+21799
-21799
File diff suppressed because it is too large
Load Diff
+19555
-19555
File diff suppressed because it is too large
Load Diff
+23351
-23351
File diff suppressed because it is too large
Load Diff
+20903
-20903
File diff suppressed because it is too large
Load Diff
+20315
-20315
File diff suppressed because it is too large
Load Diff
+22215
-22215
File diff suppressed because it is too large
Load Diff
+20215
-20215
File diff suppressed because it is too large
Load Diff
+21799
-21799
File diff suppressed because it is too large
Load Diff
+19555
-19555
File diff suppressed because it is too large
Load Diff
+23351
-23351
File diff suppressed because it is too large
Load Diff
+20903
-20903
File diff suppressed because it is too large
Load Diff
+20315
-20315
File diff suppressed because it is too large
Load Diff
+22215
-22215
File diff suppressed because it is too large
Load Diff
+20215
-20215
File diff suppressed because it is too large
Load Diff
+21799
-21799
File diff suppressed because it is too large
Load Diff
+19555
-19555
File diff suppressed because it is too large
Load Diff
+23351
-23351
File diff suppressed because it is too large
Load Diff
+20903
-20903
File diff suppressed because it is too large
Load Diff
+20315
-20315
File diff suppressed because it is too large
Load Diff
+22215
-22215
File diff suppressed because it is too large
Load Diff
+20215
-20215
File diff suppressed because it is too large
Load Diff
+21799
-21799
File diff suppressed because it is too large
Load Diff
+19555
-19555
File diff suppressed because it is too large
Load Diff
+23351
-23351
File diff suppressed because it is too large
Load Diff
+20903
-20903
File diff suppressed because it is too large
Load Diff
+20315
-20315
File diff suppressed because it is too large
Load Diff
+22215
-22215
File diff suppressed because it is too large
Load Diff
+20215
-20215
File diff suppressed because it is too large
Load Diff
+21799
-21799
File diff suppressed because it is too large
Load Diff
+19555
-19555
File diff suppressed because it is too large
Load Diff
+23351
-23351
File diff suppressed because it is too large
Load Diff
+20903
-20903
File diff suppressed because it is too large
Load Diff
+20315
-20315
File diff suppressed because it is too large
Load Diff
+22215
-22215
File diff suppressed because it is too large
Load Diff
+20215
-20215
File diff suppressed because it is too large
Load Diff
+21799
-21799
File diff suppressed because it is too large
Load Diff
+19555
-19555
File diff suppressed because it is too large
Load Diff
+23351
-23351
File diff suppressed because it is too large
Load Diff
+20903
-20903
File diff suppressed because it is too large
Load Diff
+20315
-20315
File diff suppressed because it is too large
Load Diff
+22215
-22215
File diff suppressed because it is too large
Load Diff
+20215
-20215
File diff suppressed because it is too large
Load Diff
+21799
-21799
File diff suppressed because it is too large
Load Diff
+19555
-19555
File diff suppressed because it is too large
Load Diff
+23351
-23351
File diff suppressed because it is too large
Load Diff
+20903
-20903
File diff suppressed because it is too large
Load Diff
+20315
-20315
File diff suppressed because it is too large
Load Diff
+22215
-22215
File diff suppressed because it is too large
Load Diff
+20215
-20215
File diff suppressed because it is too large
Load Diff
+21799
-21799
File diff suppressed because it is too large
Load Diff
+19555
-19555
File diff suppressed because it is too large
Load Diff
+23351
-23351
File diff suppressed because it is too large
Load Diff
+20903
-20903
File diff suppressed because it is too large
Load Diff
+20315
-20315
File diff suppressed because it is too large
Load Diff
+20215
-20215
File diff suppressed because it is too large
Load Diff
+21799
-21799
File diff suppressed because it is too large
Load Diff
+20903
-20903
File diff suppressed because it is too large
Load Diff
+20315
-20315
File diff suppressed because it is too large
Load Diff
+22215
-22215
File diff suppressed because it is too large
Load Diff
+20215
-20215
File diff suppressed because it is too large
Load Diff
+21799
-21799
File diff suppressed because it is too large
Load Diff
+19555
-19555
File diff suppressed because it is too large
Load Diff
+23351
-23351
File diff suppressed because it is too large
Load Diff
+20903
-20903
File diff suppressed because it is too large
Load Diff
+20315
-20315
File diff suppressed because it is too large
Load Diff
+22215
-22215
File diff suppressed because it is too large
Load Diff
+20215
-20215
File diff suppressed because it is too large
Load Diff
+21799
-21799
File diff suppressed because it is too large
Load Diff
+19555
-19555
File diff suppressed because it is too large
Load Diff
+23351
-23351
File diff suppressed because it is too large
Load Diff
+20903
-20903
File diff suppressed because it is too large
Load Diff
+20315
-20315
File diff suppressed because it is too large
Load Diff
+22215
-22215
File diff suppressed because it is too large
Load Diff
+20215
-20215
File diff suppressed because it is too large
Load Diff
+21799
-21799
File diff suppressed because it is too large
Load Diff
+19555
-19555
File diff suppressed because it is too large
Load Diff
+23351
-23351
File diff suppressed because it is too large
Load Diff
+20315
-20315
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user