void Panner::paintEvent(QPaintEvent *e) { Profiler profiler("Panner::paintEvent"); QPaintEvent *e2 = new QPaintEvent(e->region().boundingRect()); QGraphicsView::paintEvent(e2); QPainter paint; paint.begin(viewport()); paint.setClipRegion(e->region()); QPainterPath path; path.addRect(rect()); path.addPolygon(mapFromScene(m_pannedRect)); QColor c(GUIPalette::getColour(GUIPalette::PannerOverlay)); c.setAlpha(80); paint.setPen(Qt::NoPen); paint.setBrush(c); paint.drawPath(path); paint.setBrush(Qt::NoBrush); paint.setPen(QPen(GUIPalette::getColour(GUIPalette::PannerOverlay), 0)); paint.drawConvexPolygon(mapFromScene(m_pannedRect)); if (m_pointerVisible && scene()) { QPoint top = mapFromScene(m_pointerTop); float height = m_pointerHeight; if (height == 0.f) height = scene()->height(); QPoint bottom = mapFromScene (QPointF(m_pointerTop.x(), m_pointerTop.y() + height)); paint.setPen(QPen(GUIPalette::getColour(GUIPalette::Pointer), 2)); paint.drawLine(top, bottom); } RG_DEBUG << "draw polygon: " << mapFromScene(m_pannedRect); paint.end(); emit pannerChanged(m_pannedRect); }
kdvi::kdvi( char *fname, QWidget *, const char *name ) : KTopLevelWidget( name ) { msg = NULL; ssmenu = NULL; hbl = NULL; prefs = NULL; keys = new KAccel(this); readConfig(); setMinimumSize( 400, 60 ); setCaption( kapp->getCaption() ); tipgroup = new QToolTipGroup( this, "TipGroup" ); connect( tipgroup, SIGNAL(showTip(const char *)), SLOT(showTip(const char *)) ); connect( tipgroup, SIGNAL(removeTip()), SLOT(removeTip()) ); // Create KPanner for toolBar2 and dviwindow kpan = new KPanner( this, "panner", KPanner::O_VERTICAL|KPanner::U_ABSOLUTE, 100); setView( kpan, TRUE ); setFrameBorderWidth( 4 ); kpan->setAbsSeparator( pannerValue ); connect( kpan, SIGNAL(positionChanged()), SLOT(pannerChanged()) ); // Create a dvi window dviwin = new dviWindow( basedpi, mfmode, paper, makepk, kpan->child1(), "dviWindow" ); connect( dviwin, SIGNAL(currentPage(int)), SLOT(setPage(int)) ); connect( dviwin, SIGNAL(shrinkChanged(int)), SLOT(shrinkChanged(int)) ); connect( dviwin, SIGNAL(fileChanged()), SLOT(fileChanged()) ); connect( dviwin, SIGNAL(statusChange(const char *)), SLOT(showTip(const char *)) ); connect( dviwin, SIGNAL(setPoint(QPoint)), SLOT(showPoint(QPoint)) ); // Create a menubar menuBar = NULL; makeMenuBar(); // Create toolbars toolBar = NULL; makeButtons(); makeToolBar2( kpan->child0() ); // Create a statusbar statusBar = NULL; makeStatusBar( i18n("No document") ); // Lay out widgets QBoxLayout *l; l = new QBoxLayout( kpan->child0(), QBoxLayout::LeftToRight ); l->addWidget( toolBar2 ); l->activate(); l = new QBoxLayout( kpan->child1(), QBoxLayout::LeftToRight ); l->addWidget( dviwin ); l->activate(); // Create RMB menu rmbmenu = new QPopupMenu; rmbmenu->setMouseTracking( TRUE ); rmbmenu->connectItem( rmbmenu->insertItem(i18n("Toggle Menubar")), this, SLOT(toggleShowMenubar()) ); rmbmenu->connectItem( rmbmenu->insertItem(i18n("Mark page")), marklist, SLOT(markSelected()) ); rmbmenu->connectItem( rmbmenu->insertItem(i18n("Redraw")), dviwin, SLOT(drawPage()) ); rmbmenu->connectItem( rmbmenu->insertItem(i18n("Preferences ...")), this, SLOT(optionsPreferences()) ); // Bind keys bindKeys(); updateMenuAccel(); // Drag and drop KDNDDropZone * dropZone = new KDNDDropZone( this , DndURL); connect( dropZone, SIGNAL( dropAction( KDNDDropZone *) ), SLOT( dropEvent( KDNDDropZone *) ) ); // Read config options applyPreferences(); selectSmall(); dviwin->installEventFilter( this ); message( "" ); openFile(QString(fname)); }