MCPcopy Create free account
hub / github.com/Serial-Studio/Serial-Studio / resolveSavedOrder

Method resolveSavedOrder

app/src/UI/WindowManager.cpp:671–701  ·  view source on GitHub ↗

* @brief Resolves a saved window-order array into live windowIds. */

Source from the content-addressed store, hash-verified

669 * @brief Resolves a saved window-order array into live windowIds.
670 */
671QVector<int> UI::WindowManager::resolveSavedOrder(const QJsonObject& layout,
672 const QHash<StableKey, int>& stableLookup) const
673{
674 QVector<int> newOrder;
675 QSet<int> seen;
676 const bool typed = layout.contains("windowOrderTyped");
677 const QJsonArray src = (typed ? layout["windowOrderTyped"] : layout["windowOrder"]).toArray();
678
679 for (const auto& val : std::as_const(src)) {
680 int id = -1;
681 if (typed)
682 id = resolveSavedWindowId(val.toObject(), stableLookup, m_windows);
683 else
684 id = val.toInt(-1);
685
686 if (id < 0 || seen.contains(id) || !m_windows.contains(id))
687 continue;
688
689 newOrder.append(id);
690 seen.insert(id);
691 }
692
693 for (int id : std::as_const(m_windowOrder)) {
694 if (!seen.contains(id)) {
695 newOrder.append(id);
696 seen.insert(id);
697 }
698 }
699
700 return newOrder;
701}
702
703/**
704 * @brief Applies saved manual-mode geometries to live windows and stashes the

Callers

nothing calls this directly

Calls 3

resolveSavedWindowIdFunction · 0.85
containsMethod · 0.45
appendMethod · 0.45

Tested by

no test coverage detected