本文整理汇总了C++中QListIterator::toBack方法的典型用法代码示例。如果您正苦于以下问题:C++ QListIterator::toBack方法的具体用法?C++ QListIterator::toBack怎么用?C++ QListIterator::toBack使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类QListIterator
的用法示例。
在下文中一共展示了QListIterator::toBack方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: activateOrHide
// taken from ksystemtray.cpp
void Interface::activateOrHide( QWidget* widget, bool onlyActivate )
{
if ( !widget )
return;
KWindowInfo info1 = KWindowSystem::windowInfo( widget->winId(), NET::XAWMState | NET::WMState );
// mapped = visible (but possibly obscured)
bool mapped = (info1.mappingState() == NET::Visible) && !info1.isMinimized();
// - not mapped -> show, raise, focus
// - mapped
// - obscured -> raise, focus
// - not obscured -> hide
if( !mapped )
{
KWindowSystem::setOnDesktop( widget->winId(), KWindowSystem::currentDesktop() );
widget->show();
widget->raise();
}
else
{
QListIterator< WId > it (KWindowSystem::stackingOrder());
it.toBack();
while( it.hasPrevious() )
{
WId id = it.previous();
if( id == widget->winId() )
break;
KWindowInfo info2 = KWindowSystem::windowInfo( id,
NET::WMGeometry | NET::XAWMState | NET::WMState | NET::WMWindowType );
if( info2.mappingState() != NET::Visible )
continue; // not visible on current desktop -> ignore
if( !info2.geometry().intersects( widget->geometry()))
continue; // not obscuring the window -> ignore
if( !info1.hasState( NET::KeepAbove ) && info2.hasState( NET::KeepAbove ))
continue; // obscured by window kept above -> ignore
NET::WindowType type = info2.windowType( NET::NormalMask | NET::DesktopMask
| NET::DockMask | NET::ToolbarMask | NET::MenuMask | NET::DialogMask
| NET::OverrideMask | NET::TopMenuMask | NET::UtilityMask | NET::SplashMask );
if( type == NET::Dock || type == NET::TopMenu )
continue; // obscured by dock or topmenu -> ignore
widget->raise();
KWindowSystem::activateWindow( widget->winId());
return;
}
if ( !onlyActivate )
{
widget->hide();
}
}
}