RenderController::RenderController( RenderContextPtr renderContext ) : renderContext_( renderContext ) , displayGroupRenderer_( new DisplayGroupRenderer( renderContext )) , syncQuit_( false ) , syncDisplayGroup_( boost::make_shared<DisplayGroup>( QSize( ))) , syncOptions_( boost::make_shared<Options>( )) { syncDisplayGroup_.setCallback( boost::bind( &DisplayGroupRenderer::setDisplayGroup, displayGroupRenderer_.get(), _1 )); MarkerRenderer& markers = renderContext_->getScene().getMarkersRenderer(); syncMarkers_.setCallback( boost::bind( &MarkerRenderer::setMarkers, &markers, _1 )); syncOptions_.setCallback( boost::bind( &RenderController::setRenderOptions, this, _1 )); connect( displayGroupRenderer_.get(), SIGNAL( windowAdded( QmlWindowPtr )), &pixelStreamUpdater_, SLOT( onWindowAdded( QmlWindowPtr ))); connect( displayGroupRenderer_.get(), SIGNAL( windowRemoved( QmlWindowPtr )), &pixelStreamUpdater_, SLOT( onWindowRemoved( QmlWindowPtr ))); }
void Application::connectWindowSignals() { if (m_application == NULL || m_application->running() == false) { return; } QScopedPointer<BamfWindowList> windows(m_application->windows()); const int size = windows->size(); if (size < 1) { return; } WnckScreen* screen = wnck_screen_get_default(); wnck_screen_force_update(screen); for (int i = 0; i < size; ++i) { BamfWindow *window = windows->at(i); onWindowAdded(window); } }
WindowListModel::WindowListModel( WId kdevWinId, QObject* parent): QAbstractListModel(parent), m_kdevWinId(kdevWinId) { KWindowSystem *kws = KWindowSystem::self(); // QList<WId> winList = kws->windows(); // // QList<WId>::ConstIterator it; // QList<WId>::ConstIterator end = KWindowSystem::windows().end(); // for ( it = KWindowSystem::windows().begin(); it != end; ++it ) // { // KWindowInfo kwi = kws->windowInfo(*it, NET::WMName | NET::WMVisibleName | NET::WMVisibleIconName | NET::WMWindowType); // // if( kwi.windowType(NET::NormalMask) == NET::Normal ) { // m_winList.append( kwi ); // // qDebug() << "Adding window " << kwi.visibleName() << "(" << kwi.win() << ")"; // } // } connect( kws, SIGNAL(windowAdded(WId)), this, SLOT(onWindowAdded(WId))); connect( kws, SIGNAL(windowRemoved(WId)), this, SLOT(onWindowRemoved(WId))); connect( kws, SIGNAL(windowChanged(WId,uint)), this, SLOT(onWindowChanged(WId,uint)) ); }