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

Method autoLayout

app/src/UI/WindowManager.cpp:925–958  ·  view source on GitHub ↗

* @brief Automatically tiles visible windows using a smart grid-based layout. */

Source from the content-addressed store, hash-verified

923 * @brief Automatically tiles visible windows using a smart grid-based layout.
924 */
925void UI::WindowManager::autoLayout()
926{
927 const int canvasW = static_cast<int>(width());
928 const int canvasH = static_cast<int>(height());
929 if (canvasW <= 0 || canvasH <= 0)
930 return;
931
932 if (anyWindowMaximized(m_windows))
933 return;
934
935 QList<QQuickItem*> windows;
936 for (int id : std::as_const(m_windowOrder)) {
937 auto* win = m_windows.value(id);
938 if (win && win->state() == "normal")
939 windows.append(win);
940 }
941
942 if (windows.isEmpty())
943 return;
944
945 TileEnv env;
946 env.margin = qMax(0, UI::Dashboard::instance().autoLayoutMargin());
947 env.spacing = qMax(-1, UI::Dashboard::instance().autoLayoutSpacing());
948 env.availW = canvasW - 2 * env.margin;
949 env.availH = canvasH - 2 * env.margin;
950 env.isLandscape = env.availW >= env.availH;
951 dispatchTile(windows, env);
952
953 for (auto* win : std::as_const(m_windows))
954 if (win && !win->isVisible() && (win->state() == "normal" || win->state() == "maximized"))
955 win->setVisible(true);
956
957 Q_EMIT geometryChanged(nullptr);
958}
959
960/**
961 * @brief Arranges windows using a macOS-inspired smart cascade layout.

Callers

nothing calls this directly

Calls 7

anyWindowMaximizedFunction · 0.85
dispatchTileFunction · 0.85
isEmptyMethod · 0.80
autoLayoutMarginMethod · 0.80
autoLayoutSpacingMethod · 0.80
valueMethod · 0.45
appendMethod · 0.45

Tested by

no test coverage detected