------- You are receiving this mail because: ------- You are on the CC list for the bug, or are watching someone who is. http://bugs.kde.org/show_bug.cgi?id=7738 ------- Additional Comments From luis_pedro@netcabo.pt 2003-09-01 00:02 ------- Subject: kdegraphics/kghostview CVS commit by luis_pedro: Fit the page in a single screen with one key ("S"). (Doesn't work 100 % with Maximize. Ie. you cannot do M,S and get the desired effect. I will fix this and then close the wishitem) CCMAIL: 7738@bugs.kde.org M +3 -0 kghostviewui.rc 1.18 M +10 -0 kgv_miniwidget.cpp 1.181 M +1 -0 kgv_miniwidget.h 1.97 M +13 -0 kgvshell.cpp 1.76 M +1 -0 kgvshell.h 1.27 --- kdegraphics/kghostview/kghostviewui.rc #1.17:1.18 @@ -6,4 +6,5 @@ + @@ -16,4 +17,5 @@ + @@ -31,4 +33,5 @@ + --- kdegraphics/kghostview/kgv_miniwidget.cpp #1.180:1.181 @@ -181,4 +181,14 @@ void KGVMiniWidget::fitHeight( unsigned } +void KGVMiniWidget::fitWidthHeight( unsigned int w, unsigned int h ) +{ + double magnification = std::min( + ( ( double )h / QPaintDevice::x11AppDpiY() ) / + ( ( double )boundingBox().height() / 72.0 ), + ( ( double )w / QPaintDevice::x11AppDpiX() ) / + ( ( double )boundingBox().width() / 72.0 ) ); + setMagnification( magnification ); +} + void KGVMiniWidget::firstPage() { --- kdegraphics/kghostview/kgv_miniwidget.h #1.96:1.97 @@ -101,4 +101,5 @@ public slots: void fitWidth( unsigned int ); void fitHeight( unsigned int ); + void fitWidthHeight( unsigned int, unsigned int ); void info(); --- kdegraphics/kghostview/kgvshell.cpp #1.75:1.76 @@ -80,4 +80,7 @@ KGVShell::KGVShell() : SLOT( slotFitToPage() ), actionCollection(), "fit_to_page"); + new KAction( i18n( "&Fit to Screen" ), Key_S, this, + SLOT( slotFitToScreen() ), actionCollection(), + "fit_to_page"); new KAction( i18n( "&Maximize" ), Key_M, this, SLOT( slotMaximize() ), actionCollection(), @@ -283,4 +286,14 @@ void KGVShell::slotFitToPage() // We subtract 16 pixels because of the page decoration. } + + +void KGVShell::slotFitToScreen() +{ + disconnect( 0, 0, this, SLOT( slotFitToPage() ) ); + if( m_gvpart->pageView()->page() ) + m_gvpart->miniWidget()->fitWidthHeight( m_gvpart->pageView()->viewport()->width() - 16, + m_gvpart->pageView()->viewport()->height() - 16 ); +} + void KGVShell::slotMaximize() { --- kdegraphics/kghostview/kgvshell.h #1.26:1.27 @@ -55,4 +55,5 @@ protected slots: void slotQuit(); void slotFitToPage(); + void slotFitToScreen(); void slotMaximize(); void slotResize();