[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-bugs-dist
Subject:    [Bug 7738] fit to page wdith
From:       Luis Pedro Coelho <luis_pedro () netcabo ! pt>
Date:       2003-09-01 16:43:42
[Download RAW message or body]

------- 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     
luis_pedro@netcabo.pt changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|                            |FIXED



------- Additional Comments From luis_pedro@netcabo.pt  2003-09-01 18:43 -------
Subject: kdegraphics/kghostview

CVS commit by luis_pedro: 

This works much nicer like this. Press M,S ("M" followed by "S") to get a
one full screen view of the file.

CCMAIL: 7738-close@bugs.kde.org


  M +17 -2     kgvshell.cpp   1.77
  M +3 -0      kgvshell.h   1.28


--- kdegraphics/kghostview/kgvshell.cpp  #1.76:1.77
@@ -120,4 +120,5 @@ KGVShell::KGVShell() :
     connect( m_gvpart->pageView(), SIGNAL( rightClick() ),SLOT( slotRMBClick() ) );
     connect( m_gvpart, SIGNAL( canceled(const QString&) ),SLOT( slotReset() ) );
+    mFitTimer = new QTimer( this );
 
     if (!initialGeometrySet())
@@ -282,4 +283,5 @@ void KGVShell::slotFileOpen()
 void KGVShell::slotFitToPage()
 {
+    kdDebug(4500) << "KGVShell::slotFitToPage()" << endl;
     if( m_gvpart->pageView()->page() )
         m_gvpart->miniWidget()->fitWidth( m_gvpart->pageView()->viewport()->width() - 16 );
@@ -290,5 +292,15 @@ void KGVShell::slotFitToPage()
 void KGVShell::slotFitToScreen()
 {
-    disconnect( 0, 0, this, SLOT( slotFitToPage() ) );
+    kdDebug(4500) << "KGVShell::slotFitToScreen()" << endl;
+    if ( mFitTimer->isActive() ) {
+        disconnect( mFitTimer, SIGNAL( timeout() ), this, 0 );
+        connect( mFitTimer, SIGNAL( timeout() ), SLOT( slotDoFitToScreen() ) );
+    }
+    else slotDoFitToScreen();
+}
+
+void KGVShell::slotDoFitToScreen()
+{
+    kdDebug(4500) << "KGVShell::slotDoFitToScreen()" << endl;
     if( m_gvpart->pageView()->page() )
         m_gvpart->miniWidget()->fitWidthHeight( m_gvpart->pageView()->viewport()->width() - 16,
@@ -298,8 +310,11 @@ void KGVShell::slotFitToScreen()
 void KGVShell::slotMaximize()
 {
+    kdDebug(4500) << "KGVShell::slotMaximize()" << endl;
     KWin::setState( winId(), NET::MaxHoriz | NET::MaxVert );
     // If we do it now, it comes to nothing since it would work
     // on the current (non-maximized) size
-    QTimer::singleShot( 1000, this, SLOT( slotFitToPage() ) );
+    disconnect( mFitTimer, SIGNAL( timeout() ), this, 0 );
+    connect( mFitTimer, SIGNAL( timeout() ), SLOT( slotFitToPage() ) );
+    mFitTimer->start( 800, true );
 }
 

--- kdegraphics/kghostview/kgvshell.h  #1.27:1.28
@@ -56,4 +56,5 @@ protected slots:
     void slotFitToPage();
     void slotFitToScreen();
+    void slotDoFitToScreen();
     void slotMaximize();
     void slotResize();
@@ -78,4 +79,6 @@ private:
     QString cwd;
     bool m_isFullScreen;
+
+    QTimer* mFitTimer;
 
     KAction* openact;
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic