From 31fc070ee51446ae0e898dd4e3aa029685b94cb8 Mon Sep 17 00:00:00 2001 From: Pritpal Bedi Date: Wed, 15 Jun 2011 20:49:41 +0000 Subject: [PATCH] 2011-06-15 13:45 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com) * contrib/hbide/ideeditor.prg ! Fixed: relaoding a source now correctly sets the READONLY attribute associated with the file and also positions the cursor approximately at the same position as it was before. This helps in keeping the same session if a file is checked in/out of some version control systems which sets the attribute to read-only when checked in. --- harbour/ChangeLog | 9 +++++++++ harbour/contrib/hbide/ideeditor.prg | 30 ++++++++++++++++++++++------- 2 files changed, 32 insertions(+), 7 deletions(-) diff --git a/harbour/ChangeLog b/harbour/ChangeLog index b8ca032ab0..1a13cb3c57 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -16,6 +16,15 @@ The license applies to all entries newer than 2009-04-28. */ +2011-06-15 13:45 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com) + * contrib/hbide/ideeditor.prg + ! Fixed: relaoding a source now correctly sets the READONLY + attribute associated with the file and also positions the cursor + approximately at the same position as it was before. + This helps in keeping the same session if a file is checked + in/out of some version control systems which sets the attribute + to read-only when checked in. + 2011-06-15 12:50 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com) * contrib/hbide/idechangelog.prg ! Fixed: a silly comparison in prev commit. diff --git a/harbour/contrib/hbide/ideeditor.prg b/harbour/contrib/hbide/ideeditor.prg index d76d9944a1..503f30110e 100644 --- a/harbour/contrib/hbide/ideeditor.prg +++ b/harbour/contrib/hbide/ideeditor.prg @@ -1351,11 +1351,6 @@ METHOD IdeEditor:create( oIde, cSourceFile, nPos, nHPos, nVPos, cTheme, cView, a ::oEdit:qEdit:connect( "updateRequest(QRect,int)", {|| ::scrollThumbnail() } ) ::qDocument := ::qEdit:document() -#if 0 - IF !( ::cType == "U" ) - ::qHiliter := ::oTH:SetSyntaxHilighting( ::oEdit:qEdit, @::cTheme ) - ENDIF -#endif ::qCursor := ::qEdit:textCursor() /* Populate Tabs Array */ @@ -1540,10 +1535,31 @@ METHOD IdeEditor:prepareBufferToLoad( cBuffer ) /*----------------------------------------------------------------------*/ METHOD IdeEditor:reload() + LOCAL nAttr, nPos, qCursor, nHPos, nVPos + + qCursor := ::qEdit:textCursor() + nPos := qCursor:position() + nHPos := ::qEdit:horizontalScrollBar():value() + nVPos := ::qEdit:verticalScrollBar():value() + + + IF hb_fGetAttr( ::sourceFile, @nAttr ) + ::lReadOnly := hb_bitAnd( nAttr, FC_READONLY ) == FC_READONLY + ENDIF + + ::oEdit:setReadOnly( ::lReadOnly ) + + ::qTabWidget:setTabIcon( ::qTabWidget:indexOf( ::oTab:oWidget ), ; + hbide_image( iif( ::lReadOnly, "tabreadonly", "tabunmodified" ) ) ) ::qEdit:clear() ::qEdit:setPlainText( ::prepareBufferToLoad( hb_memoread( ::sourceFile ) ) ) + qCursor:setPosition( nPos ) + ::qEdit:setTextCursor( qCursor ) + ::qEdit:horizontalScrollBar():setValue( nHPos ) + ::qEdit:verticalScrollBar():setValue( nVPos ) + RETURN Self /*----------------------------------------------------------------------*/ @@ -1555,11 +1571,11 @@ METHOD IdeEditor:setDocumentProperties() IF !( ::lLoaded ) /* First Time */ ::qEdit:setPlainText( ::prepareBufferToLoad( hb_memoread( ::sourceFile ) ) ) -#if 1 + IF !( ::cType == "U" ) ::qHiliter := ::oTH:setSyntaxHilighting( ::qEdit, @::cTheme ) ENDIF -#endif + qCursor:setPosition( ::nPos ) ::qEdit:setTextCursor( qCursor )