Convert all state checks to KWindowInfo::hasState().

Summary:
We've had bad experiences with state() in a plasma-framework testcase
and this is more readable regardless.

Reviewers: #plasma, graesslin

Subscribers: plasma-devel

Tags: #plasma

Differential Revision: https://phabricator.kde.org/D2181
wilder-5.14
Eike Hein 10 years ago
parent 56ea0f5947
commit f4a1d740f1
  1. 32
      libtaskmanager/xwindowtasksmodel.cpp

@ -224,7 +224,7 @@ void XWindowTasksModel::Private::addWindow(WId window)
transients.insert(window); transients.insert(window);
// Update demands attention state for leader. // Update demands attention state for leader.
if (info.state() & NET::DemandsAttention && windows.contains(leader)) { if (info.hasState(NET::DemandsAttention) && windows.contains(leader)) {
transientsDemandingAttention.insertMulti(leader, window); transientsDemandingAttention.insertMulti(leader, window);
dataChanged(leader, QVector<int>{IsDemandingAttention}); dataChanged(leader, QVector<int>{IsDemandingAttention});
} }
@ -297,7 +297,7 @@ void XWindowTasksModel::Private::transientChanged(WId window, NET::Properties pr
return; return;
} }
if (info.state() & NET::DemandsAttention) { if (info.hasState(NET::DemandsAttention)) {
if (!transientsDemandingAttention.values(leader).contains(window)) { if (!transientsDemandingAttention.values(leader).contains(window)) {
transientsDemandingAttention.insertMulti(leader, window); transientsDemandingAttention.insertMulti(leader, window);
dataChanged(leader, QVector<int>{IsDemandingAttention}); dataChanged(leader, QVector<int>{IsDemandingAttention});
@ -309,7 +309,7 @@ void XWindowTasksModel::Private::transientChanged(WId window, NET::Properties pr
} else if (properties2 & NET::WM2TransientFor) { } else if (properties2 & NET::WM2TransientFor) {
const KWindowInfo info(window, NET::WMState | NET::XAWMState, NET::WM2TransientFor); const KWindowInfo info(window, NET::WMState | NET::XAWMState, NET::WM2TransientFor);
if (info.state() & NET::DemandsAttention) { if (info.hasState(NET::DemandsAttention)) {
WId oldLeader = info.transientFor(); WId oldLeader = info.transientFor();
QMutableHashIterator<WId, WId> i(transientsDemandingAttention); QMutableHashIterator<WId, WId> i(transientsDemandingAttention);
@ -820,7 +820,7 @@ QStringList XWindowTasksModel::Private::activities(WId window)
bool XWindowTasksModel::Private::demandsAttention(WId window) bool XWindowTasksModel::Private::demandsAttention(WId window)
{ {
if (windows.contains(window)) { if (windows.contains(window)) {
return ((windowInfo(window)->state() & NET::DemandsAttention) return ((windowInfo(window)->hasState(NET::DemandsAttention))
|| transientsDemandingAttention.contains(window)); || transientsDemandingAttention.contains(window));
} }
@ -880,23 +880,23 @@ QVariant XWindowTasksModel::data(const QModelIndex &index, int role) const
return d->windowInfo(window)->actionSupported(NET::ActionMax); return d->windowInfo(window)->actionSupported(NET::ActionMax);
} else if (role == IsMaximized) { } else if (role == IsMaximized) {
const KWindowInfo *info = d->windowInfo(window); const KWindowInfo *info = d->windowInfo(window);
return (bool)(info->state() & NET::MaxHoriz) && (bool)(info->state() & NET::MaxVert); return info->hasState(NET::MaxHoriz) && info->hasState(NET::MaxVert);
} else if (role == IsMinimizable) { } else if (role == IsMinimizable) {
return d->windowInfo(window)->actionSupported(NET::ActionMinimize); return d->windowInfo(window)->actionSupported(NET::ActionMinimize);
} else if (role == IsMinimized) { } else if (role == IsMinimized) {
return d->windowInfo(window)->isMinimized(); return d->windowInfo(window)->isMinimized();
} else if (role == IsKeepAbove) { } else if (role == IsKeepAbove) {
return (bool)(d->windowInfo(window)->state() & NET::StaysOnTop); return d->windowInfo(window)->hasState(NET::StaysOnTop);
} else if (role == IsKeepBelow) { } else if (role == IsKeepBelow) {
return (bool)(d->windowInfo(window)->state() & NET::KeepBelow); return d->windowInfo(window)->hasState(NET::KeepBelow);
} else if (role == IsFullScreenable) { } else if (role == IsFullScreenable) {
return d->windowInfo(window)->actionSupported(NET::ActionFullScreen); return d->windowInfo(window)->actionSupported(NET::ActionFullScreen);
} else if (role == IsFullScreen) { } else if (role == IsFullScreen) {
return (bool)(d->windowInfo(window)->state() & NET::FullScreen); return d->windowInfo(window)->hasState(NET::FullScreen);
} else if (role == IsShadeable) { } else if (role == IsShadeable) {
return d->windowInfo(window)->actionSupported(NET::ActionShade); return d->windowInfo(window)->actionSupported(NET::ActionShade);
} else if (role == IsShaded) { } else if (role == IsShaded) {
return (bool)(d->windowInfo(window)->state() & NET::Shaded); return d->windowInfo(window)->hasState(NET::Shaded);
} else if (role == IsVirtualDesktopChangeable) { } else if (role == IsVirtualDesktopChangeable) {
return d->windowInfo(window)->actionSupported(NET::ActionChangeDesktop); return d->windowInfo(window)->actionSupported(NET::ActionChangeDesktop);
} else if (role == VirtualDesktop) { } else if (role == VirtualDesktop) {
@ -910,7 +910,7 @@ QVariant XWindowTasksModel::data(const QModelIndex &index, int role) const
} else if (role == IsDemandingAttention) { } else if (role == IsDemandingAttention) {
return d->demandsAttention(window); return d->demandsAttention(window);
} else if (role == SkipTaskbar) { } else if (role == SkipTaskbar) {
return (bool)(d->windowInfo(window)->state() & NET::SkipTaskbar); return d->windowInfo(window)->hasState(NET::SkipTaskbar);
} }
return QVariant(); return QVariant();
@ -943,7 +943,7 @@ void XWindowTasksModel::requestActivate(const QModelIndex &index)
foreach (const WId transient, d->transients) { foreach (const WId transient, d->transients) {
KWindowInfo info(transient, NET::WMState, NET::WM2TransientFor); KWindowInfo info(transient, NET::WMState, NET::WM2TransientFor);
if (info.valid(true) && (info.state() & NET::Shaded) && info.transientFor() == window) { if (info.valid(true) && info.hasState(NET::Shaded) && info.transientFor() == window) {
window = transient; window = transient;
break; break;
} }
@ -1065,7 +1065,7 @@ void XWindowTasksModel::requestToggleMaximized(const QModelIndex &index)
const WId window = d->windows.at(index.row()); const WId window = d->windows.at(index.row());
const KWindowInfo *info = d->windowInfo(window); const KWindowInfo *info = d->windowInfo(window);
bool onCurrent = info->isOnCurrentDesktop(); bool onCurrent = info->isOnCurrentDesktop();
bool restore = (info->state() & NET::MaxHoriz) && (bool)(info->state() & NET::MaxVert); bool restore = (info->hasState(NET::MaxHoriz) && info->hasState(NET::MaxVert));
// FIXME: Move logic up into proxy? (See also others.) // FIXME: Move logic up into proxy? (See also others.)
if (!onCurrent) { if (!onCurrent) {
@ -1100,7 +1100,7 @@ void XWindowTasksModel::requestToggleKeepAbove(const QModelIndex &index)
NETWinInfo ni(QX11Info::connection(), window, QX11Info::appRootWindow(), NET::WMState, 0); NETWinInfo ni(QX11Info::connection(), window, QX11Info::appRootWindow(), NET::WMState, 0);
if (info->state() & NET::StaysOnTop) { if (info->hasState(NET::StaysOnTop)) {
ni.setState(0, NET::StaysOnTop); ni.setState(0, NET::StaysOnTop);
} else { } else {
ni.setState(NET::StaysOnTop, NET::StaysOnTop); ni.setState(NET::StaysOnTop, NET::StaysOnTop);
@ -1118,7 +1118,7 @@ void XWindowTasksModel::requestToggleKeepBelow(const QModelIndex &index)
NETWinInfo ni(QX11Info::connection(), window, QX11Info::appRootWindow(), NET::WMState, 0); NETWinInfo ni(QX11Info::connection(), window, QX11Info::appRootWindow(), NET::WMState, 0);
if (info->state() & NET::KeepBelow) { if (info->hasState(NET::KeepBelow)) {
ni.setState(0, NET::KeepBelow); ni.setState(0, NET::KeepBelow);
} else { } else {
ni.setState(NET::KeepBelow, NET::KeepBelow); ni.setState(NET::KeepBelow, NET::KeepBelow);
@ -1136,7 +1136,7 @@ void XWindowTasksModel::requestToggleFullScreen(const QModelIndex &index)
NETWinInfo ni(QX11Info::connection(), window, QX11Info::appRootWindow(), NET::WMState, 0); NETWinInfo ni(QX11Info::connection(), window, QX11Info::appRootWindow(), NET::WMState, 0);
if (info->state() & NET::FullScreen) { if (info->hasState(NET::FullScreen)) {
ni.setState(0, NET::FullScreen); ni.setState(0, NET::FullScreen);
} else { } else {
ni.setState(NET::FullScreen, NET::FullScreen); ni.setState(NET::FullScreen, NET::FullScreen);
@ -1154,7 +1154,7 @@ void XWindowTasksModel::requestToggleShaded(const QModelIndex &index)
NETWinInfo ni(QX11Info::connection(), window, QX11Info::appRootWindow(), NET::WMState, 0); NETWinInfo ni(QX11Info::connection(), window, QX11Info::appRootWindow(), NET::WMState, 0);
if (info->state() & NET::Shaded) { if (info->hasState(NET::Shaded)) {
ni.setState(0, NET::Shaded); ni.setState(0, NET::Shaded);
} else { } else {
ni.setState(NET::Shaded, NET::Shaded); ni.setState(NET::Shaded, NET::Shaded);

Loading…
Cancel
Save