9 : m_windowOrderChangedCallback(
std::move(windowOrderChangedCallback)),
10 m_regularWindowsBegin(m_windowStack.
begin()),
11 m_alwaysOnTopWindowsBegin(m_windowStack.
begin())
22 const auto stayOnTopDistance =
23 std::distance(m_windowStack.
begin(), m_alwaysOnTopWindowsBegin);
24 const auto regularDistance = std::distance(m_windowStack.
begin(), m_regularWindowsBegin);
26 m_alwaysOnTopWindowsBegin = m_windowStack.
begin() + stayOnTopDistance;
27 m_regularWindowsBegin = m_windowStack.
begin() + regularDistance;
29 const auto regularDistance = std::distance(m_windowStack.
begin(), m_regularWindowsBegin);
30 m_alwaysOnTopWindowsBegin = m_windowStack.
insert(m_alwaysOnTopWindowsBegin,
window) + 1;
31 m_regularWindowsBegin = m_windowStack.
begin() + regularDistance;
33 const auto stayOnTopDistance =
34 std::distance(m_windowStack.
begin(), m_alwaysOnTopWindowsBegin);
35 m_regularWindowsBegin = m_windowStack.
insert(m_regularWindowsBegin,
window) + 1;
36 m_alwaysOnTopWindowsBegin = m_windowStack.
begin() + stayOnTopDistance + 1;
39 m_windowOrderChangedCallback();
47 const auto position = getWindowPositionPreference(
it);
48 const auto stayOnTopDistance = std::distance(m_windowStack.
begin(), m_alwaysOnTopWindowsBegin);
49 const auto regularDistance = std::distance(m_windowStack.
begin(), m_regularWindowsBegin);
53 m_alwaysOnTopWindowsBegin = m_windowStack.
begin() + stayOnTopDistance
55 m_regularWindowsBegin = m_windowStack.
begin() + regularDistance
58 m_windowOrderChangedCallback();
69 auto itEnd = ([
this,
position = getWindowPositionPreference(
it)]() {
72 return m_windowStack.
end();
74 return m_alwaysOnTopWindowsBegin;
76 return m_regularWindowsBegin;
79 std::rotate(
it,
it + 1, itEnd);
80 m_windowOrderChangedCallback();
91 auto itBegin = ([
this,
position = getWindowPositionPreference(
it)]() {
94 return m_alwaysOnTopWindowsBegin;
96 return m_regularWindowsBegin;
98 return m_windowStack.
begin();
102 std::rotate(itBegin,
it,
it + 1);
103 m_windowOrderChangedCallback();
110 const auto currentPosition = getWindowPositionPreference(
it);
112 const auto zones =
static_cast<int>(
position) -
static_cast<int>(currentPosition);
117 const auto begin = std::make_reverse_iterator(
it + 1);
119 ? std::make_reverse_iterator(m_alwaysOnTopWindowsBegin)
120 : std::make_reverse_iterator(m_regularWindowsBegin);
123 ++m_alwaysOnTopWindowsBegin;
124 ++m_regularWindowsBegin;
126 ++m_alwaysOnTopWindowsBegin;
128 ++m_regularWindowsBegin;
134 : m_alwaysOnTopWindowsBegin;
137 --m_alwaysOnTopWindowsBegin;
138 --m_regularWindowsBegin;
140 --m_regularWindowsBegin;
142 --m_alwaysOnTopWindowsBegin;
145 m_windowOrderChangedCallback();
150 return m_windowStack.
rbegin();
155 return m_windowStack.
rend();
160 return m_windowStack.
rbegin();
165 return m_windowStack.
rend();
170 return m_windowStack.
begin();
175 return m_windowStack.
end();
180 return m_windowStack.
empty();
185 return m_windowStack.
size();
194QWasmWindowStack::getWindowPositionPreference(StorageType::iterator windowIt)
const
196 if (windowIt >= m_alwaysOnTopWindowsBegin)
198 if (windowIt >= m_regularWindowsBegin)
qsizetype size() const noexcept
iterator erase(const_iterator begin, const_iterator end)
iterator insert(qsizetype i, parameter_type t)
bool empty() const noexcept
void push_back(parameter_type t)
qsizetype count() const noexcept
reverse_iterator rbegin()
void lower(QWasmWindow *window)
StorageType::reverse_iterator iterator
QWasmWindowStack(WindowOrderChangedCallbackType topWindowChangedCallback)
StorageType::const_reverse_iterator const_iterator
std::function< void()> WindowOrderChangedCallbackType
QWasmWindow * topWindow() const
const_reverse_iterator rbegin() const
void removeWindow(QWasmWindow *window)
const_reverse_iterator rend() const
void raise(QWasmWindow *window)
void pushWindow(QWasmWindow *window, PositionPreference position)
void windowPositionPreferenceChanged(QWasmWindow *window, PositionPreference position)
QSet< QString >::iterator it
Combined button and popup list for selecting options.
static const char zones[]
static qreal position(const QQuickItem *item, QQuickAnchors::Anchor anchorLine)
QtPrivate::QRegularExpressionMatchIteratorRangeBasedForIterator begin(const QRegularExpressionMatchIterator &iterator)