2010-02-12 18:41 UTC-0800 Pritpal Bedi (pritpal@vouchcac.com)
* contrib/hbqt/generator/qt45.qtp
* contrib/hbqt/hbqt.h
* contrib/hbqt/hbqt_garbage.h
* contrib/hbqt/hbqt_hbslots.cpp
* contrib/hbqt/qtgui/filelist.mk
+ contrib/hbqt/qtgui/QPlainTextDocumentLayout.cpp
+ contrib/hbqt/qtgui/TQPlainTextDocumentLayout.prg
+ contrib/hbqt/qth/QPlainTextDocumentLayout.qth
+ Added one more class.
+ contrib/hbide/resources/skeletons.ui
+ contrib/hbide/resources/skeletons.uic
+ Added widget definition to hold user input for "code skeletons".
* contrib/hbide/hbide.prg
* contrib/hbide/ideactions.prg
* contrib/hbide/idedocks.prg
* contrib/hbide/ideeditor.prg
* contrib/hbide/ideobject.prg
* contrib/hbide/idesaveload.prg
* contrib/hbide/idesources.prg
* contrib/hbide/idethemes.prg
+ Prepared to fetch "Code Skeletons" from the user which will be
made available to be inserted into the source being edited.
To have a preview as to what will go inside the implementation,
click on "{}" icon on the toolbar.
! Fixed not to load whole document and highlight when hbIDE is
terminated. This reduces termination time to bare minimum.
+ Implemented "Convert Single Quotes to Double" and its reverse,
accessible from <Edit><Block...> main-menu options. First select the
part of the source you want to apply these options, then click
on relevant menu option. A toolbar implementation will be better
which I am looking into how it can be presented in an aesthetic way.
! Fixed many more artifacts.
; NOTE: Regression is possible, please report issues, if any.
This commit is contained in:
@@ -17,6 +17,47 @@
|
||||
past entries belonging to author(s): Viktor Szakats.
|
||||
*/
|
||||
|
||||
2010-02-12 18:41 UTC-0800 Pritpal Bedi (pritpal@vouchcac.com)
|
||||
* contrib/hbqt/generator/qt45.qtp
|
||||
* contrib/hbqt/hbqt.h
|
||||
* contrib/hbqt/hbqt_garbage.h
|
||||
* contrib/hbqt/hbqt_hbslots.cpp
|
||||
* contrib/hbqt/qtgui/filelist.mk
|
||||
+ contrib/hbqt/qtgui/QPlainTextDocumentLayout.cpp
|
||||
+ contrib/hbqt/qtgui/TQPlainTextDocumentLayout.prg
|
||||
+ contrib/hbqt/qth/QPlainTextDocumentLayout.qth
|
||||
+ Added one more class.
|
||||
|
||||
+ contrib/hbide/resources/skeletons.ui
|
||||
+ contrib/hbide/resources/skeletons.uic
|
||||
+ Added widget definition to hold user input for "code skeletons".
|
||||
|
||||
* contrib/hbide/hbide.prg
|
||||
* contrib/hbide/ideactions.prg
|
||||
* contrib/hbide/idedocks.prg
|
||||
* contrib/hbide/ideeditor.prg
|
||||
* contrib/hbide/ideobject.prg
|
||||
* contrib/hbide/idesaveload.prg
|
||||
* contrib/hbide/idesources.prg
|
||||
* contrib/hbide/idethemes.prg
|
||||
+ Prepared to fetch "Code Skeletons" from the user which will be
|
||||
made available to be inserted into the source being edited.
|
||||
To have a preview as to what will go inside the implementation,
|
||||
click on "{}" icon on the toolbar.
|
||||
|
||||
! Fixed not to load whole document and highlight when hbIDE is
|
||||
terminated. This reduces termination time to bare minimum.
|
||||
|
||||
+ Implemented "Convert Single Quotes to Double" and its reverse,
|
||||
accessible from <Edit><Block...> main-menu options. First select the
|
||||
part of the source you want to apply these options, then click
|
||||
on relevant menu option. A toolbar implementation will be better
|
||||
which I am looking into how it can be presented in an aesthetic way.
|
||||
|
||||
! Fixed many more artifacts.
|
||||
|
||||
; NOTE: Regression is possible, please report issues, if any.
|
||||
|
||||
2010-02-13 02:38 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
|
||||
* harbour/contrib/hbwin/hbwin.ch
|
||||
+ added WIN_OFN_* constants
|
||||
|
||||
@@ -122,6 +122,8 @@ CLASS HbIde
|
||||
DATA oFindInFiles
|
||||
DATA oDockFind
|
||||
DATA oHelp
|
||||
DATA oSkeltn
|
||||
DATA oSkeltnUI
|
||||
|
||||
DATA oUI
|
||||
|
||||
@@ -229,6 +231,7 @@ CLASS HbIde
|
||||
DATA aProjects INIT {}
|
||||
|
||||
DATA aMarkTBtns INIT array( 6 )
|
||||
DATA lClosing INIT .f.
|
||||
|
||||
METHOD new( cProjIni )
|
||||
METHOD create( cProjIni )
|
||||
@@ -384,7 +387,9 @@ METHOD HbIde:create( cProjIni )
|
||||
IF ::nEvent == xbeP_Close
|
||||
hbide_dbg( "================ xbeP_Close" )
|
||||
hbide_saveINI( Self )
|
||||
hbide_dbg( "================ xbeP_Close", "after: hbide_saveINI( Self )" )
|
||||
::oSM:closeAllSources()
|
||||
hbide_dbg( "================ xbeP_Close", "after: ::oSM:closeAllSources()" )
|
||||
EXIT
|
||||
|
||||
ELSEIF ::nEvent == xbeP_Keyboard
|
||||
@@ -494,6 +499,8 @@ METHOD HbIde:execAction( cKey )
|
||||
CASE "StreamComment"
|
||||
CASE "BlockIndentR"
|
||||
CASE "BlockIndentL"
|
||||
CASE "BlockSgl2Dbl"
|
||||
CASE "BlockDbl2Sgl"
|
||||
CASE "switchReadOnly"
|
||||
CASE "Search"
|
||||
CASE "Find"
|
||||
@@ -583,6 +590,12 @@ METHOD HbIde:execEditorAction( cKey )
|
||||
CASE "BlockIndentL"
|
||||
::oEM:indent( -1 )
|
||||
EXIT
|
||||
CASE "BlockSgl2Dbl"
|
||||
::oEM:convertDQuotes()
|
||||
EXIT
|
||||
CASE "BlockDbl2Sgl"
|
||||
::oEM:convertQuotes()
|
||||
EXIT
|
||||
CASE "switchReadOnly"
|
||||
::oEM:switchToReadOnly()
|
||||
EXIT
|
||||
@@ -614,6 +627,7 @@ METHOD HbIde:execEditorAction( cKey )
|
||||
EXIT
|
||||
CASE "MatchPairs"
|
||||
//
|
||||
::oSkeltn:show()
|
||||
EXIT
|
||||
CASE "InsertSeparator"
|
||||
::oEM:insertSeparator()
|
||||
@@ -1144,7 +1158,7 @@ METHOD HbIde:updateProjectMenu()
|
||||
* 02/01/2010 - 16:30:06 - vailtom
|
||||
*/
|
||||
METHOD HbIde:updateTitleBar()
|
||||
LOCAL cTitle := "Harbour-Qt IDE"
|
||||
LOCAL cTitle := "Harbour IDE " + substr( HB_VERSION(), at( "(Rev.", HB_VERSION() ) )
|
||||
LOCAL oEdit
|
||||
|
||||
IF Empty( ::oDlg )
|
||||
@@ -1178,7 +1192,6 @@ METHOD HbIde:setCodec( cCodec )
|
||||
|
||||
HbXbp_SetCodec( ::cWrkCodec )
|
||||
|
||||
//::oSBar:getItem( SB_PNL_CODEC ):caption := ::cWrkCodec
|
||||
::oDK:setStatusText( SB_PNL_CODEC, ::cWrkCodec )
|
||||
|
||||
RETURN Self
|
||||
|
||||
@@ -289,11 +289,15 @@ METHOD IdeActions:loadActions()
|
||||
aadd( aAct, { "RemoveTabs" , "Replace Tabs with Spaces" , "removetabs" , "" , "No", "Yes" } )
|
||||
aadd( aAct, { "RemoveTrailingSpaces" , "Remove Trailing Spaces" , "removetrailingspaces", "", "No", "Yes" } )
|
||||
aadd( aAct, { "FormatBraces" , "Format Braces" , "ormatbraces" , "" , "No", "Yes" } )
|
||||
aadd( aAct, { "DuplicateLine" , "Duplicate Current Line" , "duplicateline" , "^D" , "No", "Yes" } )
|
||||
|
||||
aadd( aAct, { "StreamComment" , "Stream Comment" , "streamcomment" , "Sh+^Q", "No", "Yes" } )
|
||||
aadd( aAct, { "BlockComment" , "Block Comment" , "blockcomment" , "Sh+^/", "No", "Yes" } )
|
||||
aadd( aAct, { "BlockIndentR" , "Indent Right" , "blockindentr" , "^Tab" , "No", "Yes" } )
|
||||
aadd( aAct, { "BlockIndentL" , "Indent Left" , "blockindentl" , "Sh+^Tab", "No", "Yes" } )
|
||||
aadd( aAct, { "BlockDbl2Sgl" , "Double Quotes to Single" , "blockdbl2sgl" , "" , "No", "Yes" } )
|
||||
aadd( aAct, { "BlockSgl2Dbl" , "Single Quotes to Double" , "blocksgl2dbl" , "" , "No", "Yes" } )
|
||||
|
||||
aadd( aAct, { "DuplicateLine" , "Duplicate Current Line" , "duplicateline" , "^D" , "No", "Yes" } )
|
||||
aadd( aAct, { "DeleteLine" , "Delete Line" , "deleteline" , "^Delete", "No", "Yes" } )
|
||||
aadd( aAct, { "MoveLineUp" , "Move Line Up" , "movelineup" , "Sh+^Up", "No", "Yes" } )
|
||||
aadd( aAct, { "MoveLineDown" , "Move Line Down" , "movelinedown" , "Sh+^Down", "No", "Yes" } )
|
||||
@@ -486,6 +490,9 @@ METHOD IdeActions:buildMainMenu()
|
||||
oSubMenu2:addItem( { ::getAction( "BlockComment" ), {|| oIde:execAction( "BlockComment" ) } } )
|
||||
oSubMenu2:addItem( { ::getAction( "BlockIndentR" ), {|| oIde:execAction( "BlockIndentR" ) } } )
|
||||
oSubMenu2:addItem( { ::getAction( "BlockIndentL" ), {|| oIde:execAction( "BlockIndentL" ) } } )
|
||||
hbide_menuAddSep( oSubMenu2 )
|
||||
oSubMenu2:addItem( { ::getAction( "BlockSgl2Dbl" ), {|| oIde:execAction( "BlockSgl2Dbl" ) } } )
|
||||
oSubMenu2:addItem( { ::getAction( "BlockDbl2Sgl" ), {|| oIde:execAction( "BlockDbl2Sgl" ) } } )
|
||||
oMenuBar:addItem( { oSubMenu2, _T( "~Block..." ) } )
|
||||
|
||||
hbide_menuAddSep( oSubMenu )
|
||||
|
||||
@@ -82,6 +82,7 @@ CLASS IdeDocks INHERIT IdeObject
|
||||
METHOD execEvent( nMode, p )
|
||||
METHOD setView( cView )
|
||||
METHOD buildHelpWidget()
|
||||
METHOD buildSkeletonWidget()
|
||||
METHOD buildDialog()
|
||||
METHOD buildViewWidget()
|
||||
METHOD buildStackedWidget()
|
||||
@@ -101,6 +102,7 @@ CLASS IdeDocks INHERIT IdeObject
|
||||
METHOD setStatusText( nPart, xValue )
|
||||
METHOD getMarkWidget( nIndex )
|
||||
METHOD dispEnvironment( cEnviron )
|
||||
METHOD execSkeleton( nMode, p )
|
||||
|
||||
ENDCLASS
|
||||
|
||||
@@ -183,8 +185,10 @@ METHOD IdeDocks:execEvent( nMode, p )
|
||||
|
||||
nIndex := ::oIde:qTabWidget:currentIndex()
|
||||
IF nIndex + 1 == ::oIde:qTabWidget:count()
|
||||
::oIde:qTabWidget:setCurrentIndex( 0 )
|
||||
::oIde:qTabWidget:setCurrentIndex( nIndex ) /* TODO: Must be last saved */
|
||||
IF !( ::oIde:lClosing )
|
||||
::oIde:qTabWidget:setCurrentIndex( 0 )
|
||||
::oIde:qTabWidget:setCurrentIndex( nIndex ) /* TODO: Must be last saved */
|
||||
ENDIF
|
||||
ENDIF
|
||||
::setStatusText( SB_PNL_VIEW, iif( p == 0, "Main", ::aINI[ INI_VIEWS, ::nCurView ] ) )
|
||||
ENDIF
|
||||
@@ -228,7 +232,7 @@ METHOD IdeDocks:buildDialog()
|
||||
|
||||
::oIde:oDlg := XbpDialog():new()
|
||||
::oDlg:icon := ::resPath + "vr.png"
|
||||
::oDlg:title := "Harbour-Qt IDE"
|
||||
::oDlg:title := "Harbour IDE"
|
||||
#ifdef HBIDE_USE_UIC
|
||||
::oDlg:qtObject := HbQtUI():new( ::resPath + "mainwindow.uic" ):build()
|
||||
#else
|
||||
@@ -313,6 +317,7 @@ METHOD IdeDocks:buildDockWidgets()
|
||||
::buildOutputResults()
|
||||
* ::buildFindInFiles()
|
||||
::buildHelpWidget()
|
||||
::buildSkeletonWidget()
|
||||
|
||||
::oDlg:oWidget:tabifyDockWidget( ::oDockB:oWidget , ::oDockB1:oWidget )
|
||||
::oDlg:oWidget:tabifyDockWidget( ::oDockB1:oWidget, ::oDockB2:oWidget )
|
||||
@@ -726,7 +731,7 @@ METHOD IdeDocks:toggleBottomDocks()
|
||||
METHOD IdeDocks:buildFindInFiles()
|
||||
LOCAL oXbp
|
||||
|
||||
::oIde:oDockFind := XbpWindow():new( ::oDa )
|
||||
::oIde:oDockFind := XbpWindow():new()
|
||||
::oDockFind:oWidget := QDockWidget():new( ::oDlg:oWidget )
|
||||
::oDockFind:oWidget:setObjectName( "dockFindInFiles" )
|
||||
::oDlg:addChild( ::oDockFind )
|
||||
@@ -758,3 +763,85 @@ METHOD IdeDocks:buildFindInFiles()
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeDocks:buildSkeletonWidget()
|
||||
LOCAL oUI
|
||||
|
||||
::oIde:oSkeltn := XbpWindow():new()
|
||||
::oSkeltn:oWidget := QDockWidget():new( ::oDlg:oWidget )
|
||||
::oSkeltn:oWidget:setObjectName( "dockSkeleton" )
|
||||
::oDlg:addChild( ::oSkeltn )
|
||||
::oSkeltn:oWidget:setFeatures( QDockWidget_DockWidgetClosable + QDockWidget_DockWidgetFloatable )
|
||||
::oSkeltn:oWidget:setAllowedAreas( Qt_RightDockWidgetArea )
|
||||
::oSkeltn:oWidget:setWindowTitle( "Code Skeletons" )
|
||||
::oSkeltn:oWidget:setFocusPolicy( Qt_NoFocus )
|
||||
|
||||
::oIde:oSkeltnUI := HbQtUI():new( ::oIde:resPath + "skeletons.uic", ::oSkeltn:oWidget ):build()
|
||||
|
||||
::oSkeltn:oWidget:setWidget( ::oIde:oSkeltnUI:oWidget )
|
||||
|
||||
::oDlg:oWidget:addDockWidget_1( Qt_RightDockWidgetArea, ::oSkeltn:oWidget, Qt_Horizontal )
|
||||
::oSkeltn:hide()
|
||||
|
||||
oUI := ::oIde:oSkeltnUI
|
||||
|
||||
::connect( oUI:q_buttonNew , "clicked()", {|| ::execSkeleton( 1 ) } )
|
||||
::connect( oUI:q_buttonRename, "clicked()", {|| ::execSkeleton( 2 ) } )
|
||||
::connect( oUI:q_buttonDelete, "clicked()", {|| ::execSkeleton( 3 ) } )
|
||||
::connect( oUI:q_buttonClear , "clicked()", {|| ::execSkeleton( 4 ) } )
|
||||
::connect( oUI:q_buttonGetSel, "clicked()", {|| ::execSkeleton( 5 ) } )
|
||||
::connect( oUI:q_buttonUpdate, "clicked()", {|| ::execSkeleton( 6 ) } )
|
||||
::connect( oUI:q_listNames , "itemSelectionChanged()", {|| ::execSkeleton( 7 ) } )
|
||||
|
||||
//::oSkeltnUI:q_editCode:setFontFamily( "Courier New" )
|
||||
//::oSkeltnUI:q_editCode:setFontPointSize( 10 )
|
||||
|
||||
//::oSkeltnUI:q_editCode:setFont( ::oFont:oWidget )
|
||||
|
||||
RETURN Self
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeDocks:execSkeleton( nMode, p )
|
||||
LOCAL cName, qItem, cCode
|
||||
|
||||
HB_SYMBOL_UNUSED( p )
|
||||
|
||||
SWITCH nMode
|
||||
|
||||
CASE 1
|
||||
IF !empty( cName := hbide_fetchAString( ::oSkeltnUI:q_listNames, "", "Name", "New Skeleton" ) )
|
||||
::oSkeltnUI:q_listNames:addItem( cName )
|
||||
ENDIF
|
||||
EXIT
|
||||
CASE 2
|
||||
qItem := QListWidgetItem():configure( ::oSkeltnUI:q_listNames:currentItem() )
|
||||
cName := qItem:text()
|
||||
IF !empty( cName := hbide_fetchAString( ::oSkeltnUI:q_listNames, cName, "Name", "New Skeleton" ) )
|
||||
qItem:setText( cName )
|
||||
ENDIF
|
||||
EXIT
|
||||
CASE 3
|
||||
qItem := QListWidgetItem():configure( ::oSkeltnUI:q_listNames:currentItem() )
|
||||
::oSkeltnUI:q_listNames:removeItemWidget( qItem )
|
||||
EXIT
|
||||
CASE 4
|
||||
::oSkeltnUI:q_editCode:clear()
|
||||
EXIT
|
||||
CASE 5
|
||||
IF !empty( cCode := ::oEM:getSelectedText() )
|
||||
// TODO: Format cCode
|
||||
::oSkeltnUI:q_editCode:setPlainText( cCode )
|
||||
ENDIF
|
||||
EXIT
|
||||
CASE 6
|
||||
// Update the skeleton code and save the skeleton's buffer | file
|
||||
|
||||
EXIT
|
||||
CASE 7
|
||||
|
||||
EXIT
|
||||
ENDSWITCH
|
||||
|
||||
RETURN NIL
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
@@ -141,6 +141,8 @@ CLASS IdeEditsManager INHERIT IdeObject
|
||||
METHOD streamComment()
|
||||
METHOD blockComment()
|
||||
METHOD indent( nStep )
|
||||
METHOD convertQuotes()
|
||||
METHOD convertDQuotes()
|
||||
METHOD toggleSelectionMode()
|
||||
|
||||
ENDCLASS
|
||||
@@ -560,6 +562,24 @@ METHOD IdeEditsManager:indent( nStep )
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeEditsManager:convertQuotes()
|
||||
LOCAL qEdit
|
||||
IF !empty( qEdit := ::getEditCurrent() )
|
||||
qEdit:convertQuotes()
|
||||
ENDIF
|
||||
RETURN Self
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeEditsManager:convertDQuotes()
|
||||
LOCAL qEdit
|
||||
IF !empty( qEdit := ::getEditCurrent() )
|
||||
qEdit:convertDQuotes()
|
||||
ENDIF
|
||||
RETURN Self
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeEditsManager:switchToReadOnly()
|
||||
IF !empty( ::qCurEdit )
|
||||
::qCurEdit:setReadOnly( !( ::qCurEdit:isReadOnly() ) )
|
||||
@@ -907,6 +927,7 @@ CLASS IdeEditor INHERIT IdeObject
|
||||
DATA cTheme INIT ""
|
||||
DATA cView
|
||||
DATA qDocument
|
||||
DATA qDocLayout
|
||||
DATA qHiliter
|
||||
DATA sourceFile INIT ""
|
||||
DATA pathNormalized
|
||||
@@ -921,8 +942,6 @@ CLASS IdeEditor INHERIT IdeObject
|
||||
|
||||
DATA nBlock INIT -1
|
||||
DATA nColumn INIT -1
|
||||
DATA nPrevBlocks INIT 0
|
||||
DATA nBlocks INIT 0
|
||||
|
||||
DATA nPos INIT 0
|
||||
DATA nHPos INIT 0
|
||||
@@ -946,7 +965,6 @@ CLASS IdeEditor INHERIT IdeObject
|
||||
METHOD split( nOrient, oEditP )
|
||||
METHOD relay( oEdit )
|
||||
METHOD destroy()
|
||||
METHOD exeEvent( nMode, p, p1, p2 )
|
||||
METHOD setDocumentProperties()
|
||||
METHOD activateTab( mp1, mp2, oXbp )
|
||||
METHOD buildTabPage( cSource )
|
||||
@@ -1037,13 +1055,9 @@ METHOD IdeEditor:create( oIde, cSourceFile, nPos, nHPos, nVPos, cTheme, cView )
|
||||
::qCoEdit := ::oEdit
|
||||
|
||||
::qDocument := QTextDocument():configure( ::qEdit:document() )
|
||||
#if 1
|
||||
::connect( ::qDocument, "blockCountChanged(int)" , {|p | ::exeEvent( blockCountChanged, p ) } )
|
||||
::connect( ::qDocument, "contentsChange(int,int,int)", {|p,p1,p2| ::exeEvent( contentsChange, p, p1, p2 ) } )
|
||||
#else
|
||||
hbide_dbg( 2001, ::qSlots:hbConnect( ::qDocument, "blockCountChanged(int)" , {|o,p | ::exeEvent( 21, o, p ) } ) )
|
||||
::qSlots:hbConnect( ::qDocument, "contentsChange(int,int,int)", {|o,p,p1,p2| ::exeEvent( 22, o, p, p1, p2 ) } )
|
||||
#endif
|
||||
::qDocLayout := QPlainTextDocumentLayout():new( ::qDocument )
|
||||
::qDocument:setDocumentLayout( ::qDocLayout )
|
||||
|
||||
IF ::cType != "U"
|
||||
::qHiliter := ::oThemes:SetSyntaxHilighting( ::oEdit:qEdit, @::cTheme )
|
||||
ENDIF
|
||||
@@ -1064,33 +1078,90 @@ hbide_dbg( 2001, ::qSlots:hbConnect( ::qDocument, "blockCountChanged(int)"
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeEditor:exeEvent( nMode, p, p1, p2 )
|
||||
LOCAL qChar
|
||||
METHOD IdeEditor:destroy()
|
||||
LOCAL n, oEdit
|
||||
|
||||
HB_SYMBOL_UNUSED( p1 )
|
||||
hbide_dbg( "IdeEditor:destroy()", 0, ::sourceFile )
|
||||
|
||||
SWITCH nMode
|
||||
CASE blockCountChanged
|
||||
//hbide_dbg( "blockCountChanged(int)", p )
|
||||
::nPrevBlocks := ::nBlocks
|
||||
::nBlocks := p
|
||||
EXIT
|
||||
::qHiliter := NIL
|
||||
|
||||
CASE contentsChange
|
||||
//hbide_dbg( "contentsChange()", p, p1, p2 )
|
||||
IF p2 == 1 /* Characters Added */
|
||||
qChar := QChar():configure( ::qDocument:characterAt( p ) )
|
||||
SWITCH qChar:toAscii()
|
||||
CASE 32 /* Space Key */
|
||||
::qCoEdit:lUpdatePrevWord := .t.
|
||||
EXIT
|
||||
ENDSWITCH
|
||||
::qCqEdit := NIL
|
||||
::qCoEdit := NIL
|
||||
::qEdit := NIL
|
||||
DO WHILE len( ::aEdits ) > 0
|
||||
oEdit := ::aEdits[ 1 ]
|
||||
hb_adel( ::aEdits, 1, .t. )
|
||||
oEdit:destroy()
|
||||
ENDDO
|
||||
::oEdit:destroy()
|
||||
|
||||
IF !Empty( ::qDocument )
|
||||
::qDocument := NIL
|
||||
ENDIF
|
||||
|
||||
IF !Empty( ::qHiliter )
|
||||
::qHiliter := NIL
|
||||
ENDIF
|
||||
|
||||
::oEdit := NIL
|
||||
|
||||
IF !Empty( ::qLayout )
|
||||
::qLayout := NIL
|
||||
ENDIF
|
||||
|
||||
IF ( n := ascan( ::aTabs, {|e_| e_[ TAB_OEDITOR ] == Self } ) ) > 0
|
||||
hb_adel( ::oIde:aTabs, n, .T. )
|
||||
ENDIF
|
||||
|
||||
::oEM:removeSourceInTree( ::sourceFile )
|
||||
|
||||
::qTabWidget:removeTab( ::qTabWidget:indexOf( ::oTab:oWidget ) )
|
||||
::oTab := NIL
|
||||
|
||||
IF ::qTabWidget:count() == 0
|
||||
IF ::lDockRVisible
|
||||
::oDockR:hide()
|
||||
::oIde:lDockRVisible := .f.
|
||||
ENDIF
|
||||
EXIT
|
||||
ENDIF
|
||||
hbide_dbg( "IdeEditor:destroy()", 1, "-------------------------------------" )
|
||||
RETURN Self
|
||||
|
||||
ENDSWITCH
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
RETURN Nil
|
||||
METHOD IdeEditor:setDocumentProperties()
|
||||
LOCAL qCursor
|
||||
|
||||
qCursor := QTextCursor():configure( ::qEdit:textCursor() )
|
||||
|
||||
IF !( ::lLoaded ) /* First Time */
|
||||
// ::qEdit:clear()
|
||||
::qEdit:setPlainText( hb_memoRead( ::sourceFile ) )
|
||||
qCursor:setPosition( ::nPos )
|
||||
::qEdit:setTextCursor( qCursor )
|
||||
|
||||
QScrollBar():configure( ::qEdit:horizontalScrollBar() ):setValue( ::nHPos )
|
||||
QScrollBar():configure( ::qEdit:verticalScrollBar() ):setValue( ::nVPos )
|
||||
|
||||
QTextDocument():configure( ::qEdit:document() ):setModified( .f. )
|
||||
|
||||
::qTabWidget:setTabIcon( ::qTabWidget:indexOf( ::oTab:oWidget ), ::resPath + "tabunmodified.png" )
|
||||
::lLoaded := .T.
|
||||
ENDIF
|
||||
|
||||
::nBlock := qCursor:blockNumber()
|
||||
::nColumn := qCursor:columnNumber()
|
||||
|
||||
::oIde:aSources := { ::sourceFile }
|
||||
::oIde:createTags()
|
||||
::oIde:updateFuncList()
|
||||
::oIde:updateTitleBar()
|
||||
|
||||
::dispEditInfo( ::qEdit )
|
||||
|
||||
::oIde:manageFocusInEditor()
|
||||
|
||||
RETURN Self
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
@@ -1145,93 +1216,6 @@ METHOD IdeEditor:split( nOrient, oEditP )
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeEditor:destroy()
|
||||
LOCAL n, oEdit
|
||||
|
||||
hbide_dbg( "IdeEditor:destroy()", 0 )
|
||||
::disconnect( ::qDocument, "blockCountChanged(int)" )
|
||||
::disconnect( ::qDocument, "contentsChange(int,int,int)" )
|
||||
|
||||
::qCqEdit := NIL
|
||||
::qCoEdit := NIL
|
||||
::qEdit := NIL
|
||||
DO WHILE len( ::aEdits ) > 0
|
||||
oEdit := ::aEdits[ 1 ]
|
||||
hb_adel( ::aEdits, 1, .t. )
|
||||
oEdit:destroy()
|
||||
ENDDO
|
||||
::oEdit:destroy()
|
||||
|
||||
IF !Empty( ::qDocument )
|
||||
::qDocument := NIL
|
||||
ENDIF
|
||||
|
||||
IF !Empty( ::qHiliter )
|
||||
::qHiliter := NIL
|
||||
ENDIF
|
||||
|
||||
::oEdit := NIL
|
||||
|
||||
IF !Empty( ::qLayout )
|
||||
::qLayout := NIL
|
||||
ENDIF
|
||||
|
||||
IF ( n := ascan( ::aTabs, {|e_| e_[ TAB_OEDITOR ] == Self } ) ) > 0
|
||||
hb_adel( ::oIde:aTabs, n, .T. )
|
||||
ENDIF
|
||||
|
||||
::oEM:removeSourceInTree( ::sourceFile )
|
||||
|
||||
::qTabWidget:removeTab( ::qTabWidget:indexOf( ::oTab:oWidget ) )
|
||||
::oTab := NIL
|
||||
|
||||
IF ::qTabWidget:count() == 0
|
||||
IF ::lDockRVisible
|
||||
::oDockR:hide()
|
||||
::oIde:lDockRVisible := .f.
|
||||
ENDIF
|
||||
ENDIF
|
||||
hbide_dbg( "IdeEditor:destroy()", 1 )
|
||||
RETURN Self
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeEditor:setDocumentProperties()
|
||||
LOCAL qCursor
|
||||
|
||||
qCursor := QTextCursor():configure( ::qEdit:textCursor() )
|
||||
|
||||
IF !( ::lLoaded ) /* First Time */
|
||||
::qEdit:clear()
|
||||
::qEdit:setPlainText( hb_memoRead( ::sourceFile ) )
|
||||
qCursor:setPosition( ::nPos )
|
||||
::qEdit:setTextCursor( qCursor )
|
||||
|
||||
QScrollBar():configure( ::qEdit:horizontalScrollBar() ):setValue( ::nHPos )
|
||||
QScrollBar():configure( ::qEdit:verticalScrollBar() ):setValue( ::nVPos )
|
||||
|
||||
QTextDocument():configure( ::qEdit:document() ):setModified( .f. )
|
||||
|
||||
::qTabWidget:setTabIcon( ::qTabWidget:indexOf( ::oTab:oWidget ), ::resPath + "tabunmodified.png" )
|
||||
::lLoaded := .T.
|
||||
ENDIF
|
||||
|
||||
::nBlock := qCursor:blockNumber()
|
||||
::nColumn := qCursor:columnNumber()
|
||||
|
||||
::oIde:aSources := { ::sourceFile }
|
||||
::oIde:createTags()
|
||||
::oIde:updateFuncList()
|
||||
::oIde:updateTitleBar()
|
||||
|
||||
::dispEditInfo( ::qEdit )
|
||||
|
||||
::oIde:manageFocusInEditor()
|
||||
|
||||
RETURN Self
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeEditor:activateTab( mp1, mp2, oXbp )
|
||||
LOCAL oEdit
|
||||
|
||||
@@ -1249,7 +1233,6 @@ METHOD IdeEditor:activateTab( mp1, mp2, oXbp )
|
||||
|
||||
METHOD IdeEditor:buildTabPage( cSource )
|
||||
|
||||
//::oTab := XbpTabPage():new( ::oIde:oDA, , { 5,5 }, { 700,400 }, , .t. )
|
||||
::oTab := XbpTabPage():new( ::oTabParent, , { 5,5 }, { 700,400 }, , .t. )
|
||||
|
||||
IF Empty( cSource )
|
||||
@@ -1426,19 +1409,264 @@ METHOD IdeEdit:create( oEditor, nMode )
|
||||
::qEdit:installEventFilter( ::pEvents )
|
||||
::qEdit:highlightCurrentLine( .t. ) /* Via user-setup */
|
||||
|
||||
Qt_Events_Connect( ::pEvents, ::qEdit, QEvent_KeyPress, {|p| ::execKeyEvent( 101, QEvent_KeyPress, p ) } )
|
||||
Qt_Events_Connect( ::pEvents, ::qEdit, QEvent_Wheel , {|p| ::execKeyEvent( 102, QEvent_Wheel , p ) } )
|
||||
|
||||
::qHLayout := QHBoxLayout():new()
|
||||
::qHLayout:setSpacing( 0 )
|
||||
|
||||
::qHLayout:addWidget( ::qEdit )
|
||||
|
||||
::connectEditSignals( Self )
|
||||
|
||||
Qt_Events_Connect( ::pEvents, ::qEdit, QEvent_KeyPress, {|p| ::execKeyEvent( 101, QEvent_KeyPress, p ) } )
|
||||
Qt_Events_Connect( ::pEvents, ::qEdit, QEvent_Wheel , {|p| ::execKeyEvent( 102, QEvent_Wheel , p ) } )
|
||||
|
||||
RETURN Self
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeEdit:destroy()
|
||||
|
||||
Qt_Events_DisConnect( ::pEvents, ::qEdit, QEvent_KeyPress )
|
||||
Qt_Events_DisConnect( ::pEvents, ::qEdit, QEvent_Wheel )
|
||||
|
||||
::disconnectEditSignals( Self )
|
||||
|
||||
::oEditor:qLayout:removeItem( ::qHLayout )
|
||||
//
|
||||
::qHLayout:removeWidget( ::qEdit )
|
||||
::qEdit := NIL
|
||||
::qHLayout := NIL
|
||||
|
||||
RETURN Self
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeEdit:disconnectEditSignals( oEdit )
|
||||
HB_SYMBOL_UNUSED( oEdit )
|
||||
|
||||
::disConnect( oEdit:qEdit, "customContextMenuRequested(QPoint)" )
|
||||
::disConnect( oEdit:qEdit, "textChanged()" )
|
||||
::disConnect( oEdit:qEdit, "selectionChanged()" )
|
||||
::disConnect( oEdit:qEdit, "cursorPositionChanged()" )
|
||||
|
||||
#if 0
|
||||
::disConnect( oEdit:qEdit, "copyAvailable(bool)" )
|
||||
::disConnect( oEdit:qEdit, "modificationChanged(bool)" )
|
||||
::disConnect( oEdit:qEdit, "updateRequest(QRect,int)" )
|
||||
::disConnect( oEdit:qEdit, "redoAvailable(bool)" )
|
||||
::disConnect( oEdit:qEdit, "undoAvailable(bool)" )
|
||||
#endif
|
||||
|
||||
RETURN Self
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeEdit:connectEditSignals( oEdit )
|
||||
HB_SYMBOL_UNUSED( oEdit )
|
||||
|
||||
::connect( oEdit:qEdit, "customContextMenuRequested(QPoint)", {|p | ::execEvent( 1, oEdit, p ) } )
|
||||
::Connect( oEdit:qEdit, "textChanged()" , {| | ::execEvent( 2, oEdit, ) } )
|
||||
::Connect( oEdit:qEdit, "selectionChanged()" , {|p | ::execEvent( 6, oEdit, p ) } )
|
||||
::Connect( oEdit:qEdit, "cursorPositionChanged()" , {| | ::execEvent( 9, oEdit, ) } )
|
||||
|
||||
#if 0
|
||||
::Connect( oEdit:qEdit, "copyAvailable(bool)" , {|p | ::execEvent( 3, oEdit, p ) } )
|
||||
::Connect( oEdit:qEdit, "modificationChanged(bool)" , {|p | ::execEvent( 4, oEdit, p ) } )
|
||||
::Connect( oEdit:qEdit, "updateRequest(QRect,int)" , {|p,p1| ::execEvent( 8, oEdit, p, p1 ) } )
|
||||
::Connect( oEdit:qEdit, "redoAvailable(bool)" , {|p | ::execEvent( 5, oEdit, p ) } )
|
||||
::Connect( oEdit:qEdit, "undoAvailable(bool)" , {|p | ::execEvent( 7, oEdit, p ) } )
|
||||
#endif
|
||||
|
||||
RETURN Self
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeEdit:execEvent( nMode, oEdit, p, p1 )
|
||||
LOCAL pAct, qAct, n, qCursor, qEdit, oo, nSpaces
|
||||
|
||||
HB_SYMBOL_UNUSED( p1 )
|
||||
|
||||
qEdit := oEdit:qEdit
|
||||
qCursor := QTextCursor():configure( qEdit:textCursor() )
|
||||
oEdit:nCurLineNo := qCursor:blockNumber()
|
||||
|
||||
SWITCH nMode
|
||||
|
||||
CASE customContextMenuRequested
|
||||
pAct := ::oEM:qContextMenu:exec_1( qEdit:mapToGlobal( p ) )
|
||||
IF !hbqt_isEmptyQtPointer( pAct )
|
||||
qAct := QAction():configure( pAct )
|
||||
DO CASE
|
||||
CASE qAct:text() == "Split Horizontally"
|
||||
::oEditor:split( 1, oEdit )
|
||||
CASE qAct:text() == "Split Vertically"
|
||||
::oEditor:split( 2, oEdit )
|
||||
CASE qAct:text() == "Close Split Window"
|
||||
IF ( n := ascan( ::oEditor:aEdits, {|o| o == oEdit } ) ) > 0 /* 1 == Main Edit */
|
||||
oo := ::oEditor:aEdits[ n ]
|
||||
hb_adel( ::oEditor:aEdits, n, .t. )
|
||||
oo:destroy()
|
||||
::oEditor:relay()
|
||||
::oEditor:qCqEdit := ::oEditor:qEdit
|
||||
::oEditor:qCoEdit := ::oEditor:oEdit
|
||||
::oIde:manageFocusInEditor()
|
||||
ENDIF
|
||||
CASE qAct:text() == "Apply Theme"
|
||||
::oEditor:applyTheme()
|
||||
ENDCASE
|
||||
ENDIF
|
||||
EXIT
|
||||
CASE textChanged
|
||||
hbide_dbg( "textChanged()" )
|
||||
::oEditor:setTabImage( qEdit )
|
||||
EXIT
|
||||
CASE selectionChanged
|
||||
hbide_dbg( "selectionChanged()" )
|
||||
::oEditor:qCqEdit := qEdit
|
||||
::oEditor:qCoEdit := oEdit
|
||||
|
||||
qCursor := QTextCursor():configure( qEdit:TextCursor() )
|
||||
|
||||
/* Book Marks reach-out buttons */
|
||||
::relayMarkButtons()
|
||||
|
||||
/* An experimental move but seems a lot is required to achieve column selection */
|
||||
* qEdit:highlightSelectedColumns( ::isColumnSelectionEnabled )
|
||||
|
||||
::oDK:setStatusText( SB_PNL_SELECTEDCHARS, len( qCursor:selectedText() ) )
|
||||
|
||||
EXIT
|
||||
CASE cursorPositionChanged
|
||||
hbide_dbg( "cursorPositionChanged()" )
|
||||
::oEditor:dispEditInfo( qEdit )
|
||||
IF ::lUpdatePrevWord
|
||||
::lUpdatePrevWord := .f.
|
||||
hbide_handlePreviousWord( ::qEdit )
|
||||
ENDIF
|
||||
|
||||
IF ::lIndentIt
|
||||
::lIndentIt := .f.
|
||||
IF ( nSpaces := ::findLastIndent() ) > 0
|
||||
qCursor := QTextCursor():configure( ::qEdit:textCursor() )
|
||||
qCursor:insertText( space( nSpaces ) )
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
EXIT
|
||||
#if 0
|
||||
CASE copyAvailable
|
||||
//hbide_dbg( "copyAvailable(bool)", p )
|
||||
EXIT
|
||||
CASE modificationChanged
|
||||
//hbide_dbg( "modificationChanged(bool)", p )
|
||||
EXIT
|
||||
CASE redoAvailable
|
||||
//hbide_dbg( "redoAvailable(bool)", p )
|
||||
EXIT
|
||||
CASE undoAvailable
|
||||
//hbide_dbg( "undoAvailable(bool)", p )
|
||||
EXIT
|
||||
CASE updateRequest
|
||||
EXIT
|
||||
#endif
|
||||
ENDSWITCH
|
||||
|
||||
RETURN Nil
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeEdit:execKeyEvent( nMode, nEvent, p )
|
||||
LOCAL key, kbm, txt, qEvent
|
||||
LOCAL lAlt := .f.
|
||||
LOCAL lCtrl := .f.
|
||||
LOCAL lShift := .f.
|
||||
|
||||
SWITCH nEvent
|
||||
CASE QEvent_KeyPress
|
||||
|
||||
qEvent := QKeyEvent():configure( p )
|
||||
|
||||
key := qEvent:key()
|
||||
kbm := qEvent:modifiers()
|
||||
txt := qEvent:text()
|
||||
|
||||
IF hb_bitAnd( kbm, Qt_AltModifier ) == Qt_AltModifier
|
||||
lAlt := .t.
|
||||
ENDIF
|
||||
IF hb_bitAnd( kbm, Qt_ControlModifier ) == Qt_ControlModifier
|
||||
lCtrl := .t.
|
||||
ENDIF
|
||||
IF hb_bitAnd( kbm, Qt_ShiftModifier ) == Qt_ShiftModifier
|
||||
lShift := .t.
|
||||
ENDIF
|
||||
|
||||
SWITCH ( key )
|
||||
CASE Qt_Key_Space
|
||||
IF !lAlt .AND. !lShift .AND. !lCtrl
|
||||
::lUpdatePrevWord := .t.
|
||||
ENDIF
|
||||
EXIT
|
||||
CASE Qt_Key_Return
|
||||
CASE Qt_Key_Enter
|
||||
::lIndentIt := .t.
|
||||
EXIT
|
||||
CASE Qt_Key_Tab
|
||||
IF lCtrl
|
||||
::blockIndent( 1 )
|
||||
RETURN .T.
|
||||
ENDIF
|
||||
EXIT
|
||||
CASE Qt_Key_Backtab
|
||||
IF lCtrl
|
||||
::blockIndent( -1 )
|
||||
RETURN .t.
|
||||
ENDIF
|
||||
EXIT
|
||||
CASE Qt_Key_Q /* All these actions will be pulled from user-setup */
|
||||
IF lCtrl .AND. lShift
|
||||
::streamComment()
|
||||
ENDIF
|
||||
EXIT
|
||||
CASE Qt_Key_Slash
|
||||
IF lCtrl
|
||||
::blockComment()
|
||||
ENDIF
|
||||
EXIT
|
||||
CASE Qt_Key_D
|
||||
IF lCtrl
|
||||
::duplicateLine()
|
||||
ENDIF
|
||||
EXIT
|
||||
CASE Qt_Key_Backspace
|
||||
hbide_justACall( txt, lAlt, lShift, lCtrl, qEvent, nMode )
|
||||
EXIT
|
||||
CASE Qt_Key_Delete
|
||||
IF lCtrl
|
||||
::deleteLine()
|
||||
RETURN .t.
|
||||
ENDIF
|
||||
EXIT
|
||||
CASE Qt_Key_Up
|
||||
IF lCtrl .AND. lShift
|
||||
::moveLine( -1 )
|
||||
RETURN .t.
|
||||
ENDIF
|
||||
CASE Qt_Key_Down
|
||||
IF lCtrl .AND. lShift
|
||||
::moveLine( 1 )
|
||||
RETURN .t.
|
||||
ENDIF
|
||||
ENDSWITCH
|
||||
|
||||
EXIT
|
||||
CASE QEvent_Wheel
|
||||
EXIT
|
||||
|
||||
ENDSWITCH
|
||||
|
||||
RETURN .F. /* Important */
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeEdit:gotoMark( nIndex )
|
||||
IF len( ::aBookMarks ) >= nIndex
|
||||
::qEdit:gotoBookmark( ::aBookMarks[ nIndex ] )
|
||||
@@ -1483,52 +1711,6 @@ METHOD IdeEdit:setNewMark()
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeEdit:destroy()
|
||||
|
||||
::disconnectEditSignals( Self )
|
||||
|
||||
::oEditor:qLayout:removeItem( ::qHLayout )
|
||||
//
|
||||
::qHLayout:removeWidget( ::qEdit )
|
||||
::qEdit := NIL
|
||||
::qHLayout := NIL
|
||||
|
||||
RETURN Self
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeEdit:disconnectEditSignals( oEdit )
|
||||
|
||||
::disConnect( oEdit:qEdit, "customContextMenuRequested(QPoint)" )
|
||||
::disConnect( oEdit:qEdit, "textChanged()" )
|
||||
::disConnect( oEdit:qEdit, "copyAvailable(bool)" )
|
||||
::disConnect( oEdit:qEdit, "modificationChanged(bool)" )
|
||||
::disConnect( oEdit:qEdit, "redoAvailable(bool)" )
|
||||
::disConnect( oEdit:qEdit, "selectionChanged()" )
|
||||
::disConnect( oEdit:qEdit, "undoAvailable(bool)" )
|
||||
::disConnect( oEdit:qEdit, "updateRequest(QRect,int)" )
|
||||
::disConnect( oEdit:qEdit, "cursorPositionChanged()" )
|
||||
|
||||
RETURN Self
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeEdit:connectEditSignals( oEdit )
|
||||
|
||||
::Connect( oEdit:qEdit, "updateRequest(QRect,int)" , {|p,p1| ::execEvent( 8, oEdit, p, p1 ) } )
|
||||
::connect( oEdit:qEdit, "customContextMenuRequested(QPoint)", {|p | ::execEvent( 1, oEdit, p ) } )
|
||||
::Connect( oEdit:qEdit, "textChanged()" , {| | ::execEvent( 2, oEdit, ) } )
|
||||
::Connect( oEdit:qEdit, "copyAvailable(bool)" , {|p | ::execEvent( 3, oEdit, p ) } )
|
||||
::Connect( oEdit:qEdit, "modificationChanged(bool)" , {|p | ::execEvent( 4, oEdit, p ) } )
|
||||
::Connect( oEdit:qEdit, "redoAvailable(bool)" , {|p | ::execEvent( 5, oEdit, p ) } )
|
||||
::Connect( oEdit:qEdit, "selectionChanged()" , {|p | ::execEvent( 6, oEdit, p ) } )
|
||||
::Connect( oEdit:qEdit, "undoAvailable(bool)" , {|p | ::execEvent( 7, oEdit, p ) } )
|
||||
::Connect( oEdit:qEdit, "cursorPositionChanged()" , {| | ::execEvent( 9, oEdit, ) } )
|
||||
|
||||
RETURN Self
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeEdit:duplicateLine()
|
||||
::qEdit:duplicateLine()
|
||||
RETURN Self
|
||||
@@ -1602,188 +1784,6 @@ hbide_dbg( s )
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeEdit:execEvent( nMode, oEdit, p, p1 )
|
||||
LOCAL pAct, qAct, n, qCursor, qEdit, oo, nSpaces
|
||||
|
||||
HB_SYMBOL_UNUSED( p1 )
|
||||
|
||||
qEdit := oEdit:qEdit
|
||||
qCursor := QTextCursor():configure( qEdit:textCursor() )
|
||||
oEdit:nCurLineNo := qCursor:blockNumber()
|
||||
|
||||
SWITCH nMode
|
||||
|
||||
CASE customContextMenuRequested
|
||||
pAct := ::oEM:qContextMenu:exec_1( qEdit:mapToGlobal( p ) )
|
||||
IF !hbqt_isEmptyQtPointer( pAct )
|
||||
qAct := QAction():configure( pAct )
|
||||
DO CASE
|
||||
CASE qAct:text() == "Split Horizontally"
|
||||
::oEditor:split( 1, oEdit )
|
||||
CASE qAct:text() == "Split Vertically"
|
||||
::oEditor:split( 2, oEdit )
|
||||
CASE qAct:text() == "Close Split Window"
|
||||
IF ( n := ascan( ::oEditor:aEdits, {|o| o == oEdit } ) ) > 0 /* 1 == Main Edit */
|
||||
oo := ::oEditor:aEdits[ n ]
|
||||
hb_adel( ::oEditor:aEdits, n, .t. )
|
||||
oo:destroy()
|
||||
::oEditor:relay()
|
||||
::oEditor:qCqEdit := ::oEditor:qEdit
|
||||
::oEditor:qCoEdit := ::oEditor:oEdit
|
||||
::oIde:manageFocusInEditor()
|
||||
ENDIF
|
||||
CASE qAct:text() == "Apply Theme"
|
||||
::oEditor:applyTheme()
|
||||
ENDCASE
|
||||
ENDIF
|
||||
EXIT
|
||||
CASE textChanged
|
||||
//hbide_dbg( "textChanged()" )
|
||||
::oEditor:setTabImage( qEdit )
|
||||
EXIT
|
||||
CASE copyAvailable
|
||||
//hbide_dbg( "copyAvailable(bool)", p )
|
||||
EXIT
|
||||
CASE modificationChanged
|
||||
//hbide_dbg( "modificationChanged(bool)", p )
|
||||
EXIT
|
||||
CASE redoAvailable
|
||||
//hbide_dbg( "redoAvailable(bool)", p )
|
||||
EXIT
|
||||
CASE selectionChanged
|
||||
hbide_dbg( "selectionChanged()" )
|
||||
::oEditor:qCqEdit := qEdit
|
||||
::oEditor:qCoEdit := oEdit
|
||||
|
||||
qCursor := QTextCursor():configure( qEdit:TextCursor() )
|
||||
|
||||
/* Book Marks reach-out buttons */
|
||||
::relayMarkButtons()
|
||||
|
||||
/* An experimental move but seems a lot is required to achieve column selection */
|
||||
* qEdit:highlightSelectedColumns( ::isColumnSelectionEnabled )
|
||||
|
||||
::oDK:setStatusText( SB_PNL_SELECTEDCHARS, len( qCursor:selectedText() ) )
|
||||
|
||||
EXIT
|
||||
CASE undoAvailable
|
||||
//hbide_dbg( "undoAvailable(bool)", p )
|
||||
EXIT
|
||||
CASE updateRequest
|
||||
EXIT
|
||||
CASE cursorPositionChanged
|
||||
//hbide_dbg( "cursorPositionChanged()" )
|
||||
::oEditor:dispEditInfo( qEdit )
|
||||
IF ::lUpdatePrevWord
|
||||
::lUpdatePrevWord := .f.
|
||||
hbide_handlePreviousWord( ::qEdit )
|
||||
ENDIF
|
||||
|
||||
IF ::lIndentIt
|
||||
::lIndentIt := .f.
|
||||
IF ( nSpaces := ::findLastIndent() ) > 0
|
||||
qCursor := QTextCursor():configure( ::qEdit:textCursor() )
|
||||
qCursor:insertText( space( nSpaces ) )
|
||||
ENDIF
|
||||
ENDIF
|
||||
//hbide_dbg( "cursorPositionChanged() 1" )
|
||||
EXIT
|
||||
|
||||
ENDSWITCH
|
||||
|
||||
RETURN Nil
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeEdit:execKeyEvent( nMode, nEvent, p )
|
||||
LOCAL key, kbm, txt, qEvent
|
||||
LOCAL lAlt := .f.
|
||||
LOCAL lCtrl := .f.
|
||||
LOCAL lShift := .f.
|
||||
|
||||
SWITCH nEvent
|
||||
CASE QEvent_KeyPress
|
||||
|
||||
qEvent := QKeyEvent():configure( p )
|
||||
|
||||
key := qEvent:key()
|
||||
kbm := qEvent:modifiers()
|
||||
txt := qEvent:text()
|
||||
|
||||
IF hb_bitAnd( kbm, Qt_AltModifier ) == Qt_AltModifier
|
||||
lAlt := .t.
|
||||
ENDIF
|
||||
IF hb_bitAnd( kbm, Qt_ControlModifier ) == Qt_ControlModifier
|
||||
lCtrl := .t.
|
||||
ENDIF
|
||||
IF hb_bitAnd( kbm, Qt_ShiftModifier ) == Qt_ShiftModifier
|
||||
lShift := .t.
|
||||
ENDIF
|
||||
|
||||
SWITCH ( key )
|
||||
|
||||
CASE Qt_Key_Q /* All these actions will be pulled from user-setup */
|
||||
IF lCtrl .AND. lShift
|
||||
::streamComment()
|
||||
ENDIF
|
||||
EXIT
|
||||
CASE Qt_Key_Slash
|
||||
IF lCtrl
|
||||
::blockComment()
|
||||
ENDIF
|
||||
EXIT
|
||||
CASE Qt_Key_D
|
||||
IF lCtrl
|
||||
::duplicateLine()
|
||||
ENDIF
|
||||
EXIT
|
||||
CASE Qt_Key_Return
|
||||
CASE Qt_Key_Enter
|
||||
::lIndentIt := .t.
|
||||
EXIT
|
||||
CASE Qt_Key_Tab
|
||||
IF lCtrl
|
||||
::blockIndent( 1 )
|
||||
RETURN .T.
|
||||
ENDIF
|
||||
EXIT
|
||||
CASE Qt_Key_Backtab
|
||||
IF lCtrl
|
||||
::blockIndent( -1 )
|
||||
RETURN .t.
|
||||
ENDIF
|
||||
EXIT
|
||||
CASE Qt_Key_Backspace
|
||||
hbide_justACall( txt, lAlt, lShift, lCtrl, qEvent, nMode )
|
||||
EXIT
|
||||
CASE Qt_Key_Delete
|
||||
IF lCtrl
|
||||
::deleteLine()
|
||||
RETURN .t.
|
||||
ENDIF
|
||||
EXIT
|
||||
CASE Qt_Key_Up
|
||||
IF lCtrl .AND. lShift
|
||||
::moveLine( -1 )
|
||||
RETURN .t.
|
||||
ENDIF
|
||||
CASE Qt_Key_Down
|
||||
IF lCtrl .AND. lShift
|
||||
::moveLine( 1 )
|
||||
RETURN .t.
|
||||
ENDIF
|
||||
ENDSWITCH
|
||||
|
||||
EXIT
|
||||
CASE QEvent_Wheel
|
||||
EXIT
|
||||
|
||||
ENDSWITCH
|
||||
|
||||
RETURN .F. /* Important */
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeEdit:findLastIndent()
|
||||
LOCAL qCursor, qTextBlock, cText, cWord
|
||||
LOCAL nSpaces := 0
|
||||
|
||||
@@ -158,6 +158,8 @@ CLASS IdeObject
|
||||
ACCESS oStackedWidget INLINE ::oIde:oStackedWidget
|
||||
ACCESS oFrame INLINE ::oIde:oFrame
|
||||
ACCESS oHelp INLINE ::oIde:oHelp
|
||||
ACCESS oSkeltn INLINE ::oIde:oSkeltn
|
||||
ACCESS oSkeltnUI INLINE ::oIde:oSkeltnUI
|
||||
|
||||
ACCESS lProjTreeVisible INLINE ::oIde:lProjTreeVisible
|
||||
ACCESS lDockRVisible INLINE ::oIde:lDockRVisible
|
||||
|
||||
@@ -112,6 +112,7 @@ FUNCTION hbide_saveINI( oIde )
|
||||
aadd( txt_, " " )
|
||||
|
||||
FOR j := 0 TO len( oIde:aINI[ INI_VIEWS ] )
|
||||
oIde:lClosing := .t.
|
||||
oIde:oStackedWidget:oWidget:setCurrentIndex( j )
|
||||
|
||||
nTabs := oIde:qTabWidget:count()
|
||||
@@ -121,17 +122,25 @@ FUNCTION hbide_saveINI( oIde )
|
||||
oEdit := oIde:aTabs[ nTab, TAB_OEDITOR ]
|
||||
|
||||
IF !Empty( oEdit:sourceFile ) .and. !( ".ppo" == lower( oEdit:cExt ) )
|
||||
IF oEdit:lLoaded
|
||||
qHScr := QScrollBar():configure( oEdit:qEdit:horizontalScrollBar() )
|
||||
qVScr := QScrollBar():configure( oEdit:qEdit:verticalScrollBar() )
|
||||
qCursor := QTextCursor():configure( oEdit:qEdit:textCursor() )
|
||||
|
||||
qHScr := QScrollBar():configure( oEdit:qEdit:horizontalScrollBar() )
|
||||
qVScr := QScrollBar():configure( oEdit:qEdit:verticalScrollBar() )
|
||||
qCursor := QTextCursor():configure( oEdit:qEdit:textCursor() )
|
||||
|
||||
aadd( txt_, oEdit:sourceFile + "," + ;
|
||||
hb_ntos( iif( oEdit:lLoaded, qCursor:position(), oEdit:nPos ) ) + "," + ;
|
||||
hb_ntos( iif( oEdit:lLoaded, qHScr:value() , oEdit:nHPos ) ) + "," + ;
|
||||
hb_ntos( iif( oEdit:lLoaded, qVScr:value() , oEdit:nVPos ) ) + "," + ;
|
||||
oEdit:cTheme + "," + ;
|
||||
oEdit:cView + "," )
|
||||
aadd( txt_, oEdit:sourceFile + "," + ;
|
||||
hb_ntos( qCursor:position() ) + "," + ;
|
||||
hb_ntos( qHScr:value() ) + "," + ;
|
||||
hb_ntos( qVScr:value() ) + "," + ;
|
||||
oEdit:cTheme + "," + ;
|
||||
oEdit:cView + "," )
|
||||
ELSE
|
||||
aadd( txt_, oEdit:sourceFile + "," + ;
|
||||
hb_ntos( oEdit:nPos ) + "," + ;
|
||||
hb_ntos( oEdit:nHPos ) + "," + ;
|
||||
hb_ntos( oEdit:nVPos ) + "," + ;
|
||||
oEdit:cTheme + "," + ;
|
||||
oEdit:cView + "," )
|
||||
ENDIF
|
||||
ENDIF
|
||||
NEXT
|
||||
NEXT
|
||||
|
||||
@@ -275,9 +275,9 @@ hbide_dbg( "<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<", 0 )
|
||||
RETURN .F.
|
||||
ENDIF
|
||||
ENDIF
|
||||
hbide_dbg( "<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<", 1 )
|
||||
hbide_dbg( "<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<", 1, "before: oEditor:destroy()" )
|
||||
oEditor:destroy()
|
||||
hbide_dbg( "<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<", 21 )
|
||||
hbide_dbg( "<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<", 2, "after: oEditor:destroy()" )
|
||||
::oIde:updateTitleBar()
|
||||
ENDIF
|
||||
|
||||
|
||||
@@ -370,7 +370,6 @@ METHOD IdeThemes:setSyntaxRule( qHiliter, cName, cPattern, aAttr )
|
||||
METHOD IdeThemes:setSyntaxFormat( qHiliter, cName, aAttr )
|
||||
|
||||
qHiliter:hbSetFormat( cName, ::buildSyntaxFormat( aAttr ) )
|
||||
// qHiliter:rehighlight()
|
||||
|
||||
RETURN Self
|
||||
|
||||
@@ -391,7 +390,7 @@ METHOD IdeThemes:setSyntaxHilighting( qEdit, cTheme, lNew )
|
||||
|
||||
::setForeBackGround( qEdit, cTheme )
|
||||
|
||||
qHiliter := HBQSyntaxHighlighter():new( qEdit:document() )
|
||||
qHiliter := HBQSyntaxHighlighter():new()// qEdit:document() )
|
||||
|
||||
FOR EACH a_ IN ::aPatterns
|
||||
IF !empty( aAttr := ::getThemeAttribute( a_[ 1 ], cTheme ) )
|
||||
@@ -402,6 +401,8 @@ METHOD IdeThemes:setSyntaxHilighting( qEdit, cTheme, lNew )
|
||||
::setSingleLineCommentRule( qHiliter, cTheme )
|
||||
::setQuotesRule( qHiliter, cTheme )
|
||||
|
||||
qHiliter:setDocument( qEdit:document() )
|
||||
|
||||
RETURN qHiliter
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
87
harbour/contrib/hbide/resources/skeletons.ui
Normal file
87
harbour/contrib/hbide/resources/skeletons.ui
Normal file
@@ -0,0 +1,87 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>Form</class>
|
||||
<widget class="QWidget" name="Form">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>290</width>
|
||||
<height>508</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Form</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<item row="0" column="0" colspan="2">
|
||||
<widget class="QLabel" name="labelIdentity">
|
||||
<property name="text">
|
||||
<string>Identity</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0" rowspan="3" colspan="2">
|
||||
<widget class="QListWidget" name="listNames"/>
|
||||
</item>
|
||||
<item row="3" column="2">
|
||||
<widget class="QPushButton" name="buttonDelete">
|
||||
<property name="text">
|
||||
<string>Delete</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="2">
|
||||
<widget class="QPushButton" name="buttonRename">
|
||||
<property name="text">
|
||||
<string>Rename</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="0" colspan="3">
|
||||
<widget class="QPlainTextEdit" name="editCode">
|
||||
<property name="lineWrapMode">
|
||||
<enum>QPlainTextEdit::NoWrap</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="6" column="0">
|
||||
<widget class="QPushButton" name="buttonClear">
|
||||
<property name="text">
|
||||
<string>Clear</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="0" colspan="2">
|
||||
<widget class="QLabel" name="labelSnippets">
|
||||
<property name="text">
|
||||
<string>Code Snippet</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="6" column="1">
|
||||
<widget class="QPushButton" name="buttonGetSel">
|
||||
<property name="text">
|
||||
<string>Get Selection</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="2">
|
||||
<widget class="QPushButton" name="buttonNew">
|
||||
<property name="text">
|
||||
<string>Add New</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="6" column="2">
|
||||
<widget class="QPushButton" name="buttonUpdate">
|
||||
<property name="text">
|
||||
<string>Update</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
||||
128
harbour/contrib/hbide/resources/skeletons.uic
Normal file
128
harbour/contrib/hbide/resources/skeletons.uic
Normal file
@@ -0,0 +1,128 @@
|
||||
/********************************************************************************
|
||||
** Form generated from reading ui file 'skeletons.ui'
|
||||
**
|
||||
** Created: Fri Feb 12 18:01:10 2010
|
||||
** by: Qt User Interface Compiler version 4.5.3
|
||||
**
|
||||
** WARNING! All changes made in this file will be lost when recompiling ui file!
|
||||
********************************************************************************/
|
||||
|
||||
#ifndef SKELETONS_H
|
||||
#define SKELETONS_H
|
||||
|
||||
#include <QtCore/QVariant>
|
||||
#include <QtGui/QAction>
|
||||
#include <QtGui/QApplication>
|
||||
#include <QtGui/QButtonGroup>
|
||||
#include <QtGui/QGridLayout>
|
||||
#include <QtGui/QHeaderView>
|
||||
#include <QtGui/QLabel>
|
||||
#include <QtGui/QListWidget>
|
||||
#include <QtGui/QPlainTextEdit>
|
||||
#include <QtGui/QPushButton>
|
||||
#include <QtGui/QWidget>
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
||||
class Ui_Form
|
||||
{
|
||||
public:
|
||||
QGridLayout *gridLayout;
|
||||
QLabel *labelIdentity;
|
||||
QListWidget *listNames;
|
||||
QPushButton *buttonDelete;
|
||||
QPushButton *buttonRename;
|
||||
QPlainTextEdit *editCode;
|
||||
QPushButton *buttonClear;
|
||||
QLabel *labelSnippets;
|
||||
QPushButton *buttonGetSel;
|
||||
QPushButton *buttonNew;
|
||||
QPushButton *buttonUpdate;
|
||||
|
||||
void setupUi(QWidget *Form)
|
||||
{
|
||||
if (Form->objectName().isEmpty())
|
||||
Form->setObjectName(QString::fromUtf8("Form"));
|
||||
Form->resize(290, 508);
|
||||
gridLayout = new QGridLayout(Form);
|
||||
gridLayout->setObjectName(QString::fromUtf8("gridLayout"));
|
||||
labelIdentity = new QLabel(Form);
|
||||
labelIdentity->setObjectName(QString::fromUtf8("labelIdentity"));
|
||||
|
||||
gridLayout->addWidget(labelIdentity, 0, 0, 1, 2);
|
||||
|
||||
listNames = new QListWidget(Form);
|
||||
listNames->setObjectName(QString::fromUtf8("listNames"));
|
||||
|
||||
gridLayout->addWidget(listNames, 1, 0, 3, 2);
|
||||
|
||||
buttonDelete = new QPushButton(Form);
|
||||
buttonDelete->setObjectName(QString::fromUtf8("buttonDelete"));
|
||||
|
||||
gridLayout->addWidget(buttonDelete, 3, 2, 1, 1);
|
||||
|
||||
buttonRename = new QPushButton(Form);
|
||||
buttonRename->setObjectName(QString::fromUtf8("buttonRename"));
|
||||
|
||||
gridLayout->addWidget(buttonRename, 2, 2, 1, 1);
|
||||
|
||||
editCode = new QPlainTextEdit(Form);
|
||||
editCode->setObjectName(QString::fromUtf8("editCode"));
|
||||
editCode->setLineWrapMode(QPlainTextEdit::NoWrap);
|
||||
|
||||
gridLayout->addWidget(editCode, 5, 0, 1, 3);
|
||||
|
||||
buttonClear = new QPushButton(Form);
|
||||
buttonClear->setObjectName(QString::fromUtf8("buttonClear"));
|
||||
|
||||
gridLayout->addWidget(buttonClear, 6, 0, 1, 1);
|
||||
|
||||
labelSnippets = new QLabel(Form);
|
||||
labelSnippets->setObjectName(QString::fromUtf8("labelSnippets"));
|
||||
|
||||
gridLayout->addWidget(labelSnippets, 4, 0, 1, 2);
|
||||
|
||||
buttonGetSel = new QPushButton(Form);
|
||||
buttonGetSel->setObjectName(QString::fromUtf8("buttonGetSel"));
|
||||
|
||||
gridLayout->addWidget(buttonGetSel, 6, 1, 1, 1);
|
||||
|
||||
buttonNew = new QPushButton(Form);
|
||||
buttonNew->setObjectName(QString::fromUtf8("buttonNew"));
|
||||
|
||||
gridLayout->addWidget(buttonNew, 1, 2, 1, 1);
|
||||
|
||||
buttonUpdate = new QPushButton(Form);
|
||||
buttonUpdate->setObjectName(QString::fromUtf8("buttonUpdate"));
|
||||
|
||||
gridLayout->addWidget(buttonUpdate, 6, 2, 1, 1);
|
||||
|
||||
|
||||
retranslateUi(Form);
|
||||
|
||||
QMetaObject::connectSlotsByName(Form);
|
||||
} // setupUi
|
||||
|
||||
void retranslateUi(QWidget *Form)
|
||||
{
|
||||
Form->setWindowTitle(QApplication::translate("Form", "Form", 0, QApplication::UnicodeUTF8));
|
||||
labelIdentity->setText(QApplication::translate("Form", "Identity", 0, QApplication::UnicodeUTF8));
|
||||
buttonDelete->setText(QApplication::translate("Form", "Delete", 0, QApplication::UnicodeUTF8));
|
||||
buttonRename->setText(QApplication::translate("Form", "Rename", 0, QApplication::UnicodeUTF8));
|
||||
buttonClear->setText(QApplication::translate("Form", "Clear", 0, QApplication::UnicodeUTF8));
|
||||
labelSnippets->setText(QApplication::translate("Form", "Code Snippet", 0, QApplication::UnicodeUTF8));
|
||||
buttonGetSel->setText(QApplication::translate("Form", "Get Selection", 0, QApplication::UnicodeUTF8));
|
||||
buttonNew->setText(QApplication::translate("Form", "Add New", 0, QApplication::UnicodeUTF8));
|
||||
buttonUpdate->setText(QApplication::translate("Form", "Update", 0, QApplication::UnicodeUTF8));
|
||||
Q_UNUSED(Form);
|
||||
} // retranslateUi
|
||||
|
||||
};
|
||||
|
||||
namespace Ui {
|
||||
class Form: public Ui_Form {};
|
||||
} // namespace Ui
|
||||
|
||||
QT_END_NAMESPACE
|
||||
|
||||
#endif // SKELETONS_H
|
||||
@@ -157,6 +157,7 @@ QPalette.qth
|
||||
QPen.qth
|
||||
QPicture.qth
|
||||
QPixmap.qth
|
||||
QPlainTextDocumentLayout.qth
|
||||
QPlainTextEdit.qth
|
||||
QPoint.qth
|
||||
QPointF.qth
|
||||
|
||||
@@ -234,6 +234,7 @@ extern void * hbqt_pPtrFromItem( PHB_ITEM pObj );
|
||||
#define hbqt_par_QPen( n ) ( ( QPen * ) hbqt_gcpointer( n ) )
|
||||
#define hbqt_par_QPicture( n ) ( ( QPicture * ) hbqt_gcpointer( n ) )
|
||||
#define hbqt_par_QPixmap( n ) ( ( QPixmap * ) hbqt_gcpointer( n ) )
|
||||
#define hbqt_par_QPlainTextDocumentLayout( n ) ( ( QPlainTextDocumentLayout * ) hbqt_gcpointer( n ) )
|
||||
#define hbqt_par_QPlainTextEdit( n ) ( ( QPlainTextEdit * ) hbqt_gcpointer( n ) )
|
||||
#define hbqt_par_QPoint( n ) ( ( QPoint * ) hbqt_gcpointer( n ) )
|
||||
#define hbqt_par_QPointF( n ) ( ( QPointF * ) hbqt_gcpointer( n ) )
|
||||
|
||||
@@ -150,6 +150,7 @@ extern QT_G_FUNC( hbqt_gcRelease_QPalette );
|
||||
extern QT_G_FUNC( hbqt_gcRelease_QPen );
|
||||
extern QT_G_FUNC( hbqt_gcRelease_QPicture );
|
||||
extern QT_G_FUNC( hbqt_gcRelease_QPixmap );
|
||||
extern QT_G_FUNC( hbqt_gcRelease_QPlainTextDocumentLayout );
|
||||
extern QT_G_FUNC( hbqt_gcRelease_QPlainTextEdit );
|
||||
extern QT_G_FUNC( hbqt_gcRelease_QPoint );
|
||||
extern QT_G_FUNC( hbqt_gcRelease_QPointF );
|
||||
@@ -186,6 +187,7 @@ extern QT_G_FUNC( hbqt_gcRelease_QSpacerItem );
|
||||
extern QT_G_FUNC( hbqt_gcRelease_QSpinBox );
|
||||
extern QT_G_FUNC( hbqt_gcRelease_QSplashScreen );
|
||||
extern QT_G_FUNC( hbqt_gcRelease_QSplitter );
|
||||
extern QT_G_FUNC( hbqt_gcRelease_QStackedWidget );
|
||||
extern QT_G_FUNC( hbqt_gcRelease_QStandardItem );
|
||||
extern QT_G_FUNC( hbqt_gcRelease_QStandardItemModel );
|
||||
extern QT_G_FUNC( hbqt_gcRelease_QStatusBar );
|
||||
@@ -295,7 +297,7 @@ extern QT_G_FUNC( hbqt_gcRelease_QWizardPage );
|
||||
|
||||
extern void * hbqt_gcAllocate_HBDbfModel( void * pObj, bool bNew );
|
||||
extern void * hbqt_gcAllocate_HBEvents( void * pObj, bool bNew );
|
||||
extern void * hbqt_gcAllocate_HbQMainWindow( void * pObj, bool bNew );
|
||||
extern void * hbqt_gcAllocate_HBQMainWindow( void * pObj, bool bNew );
|
||||
extern void * hbqt_gcAllocate_HBQPlainTextEdit( void * pObj, bool bNew );
|
||||
extern void * hbqt_gcAllocate_HBQSyntaxHighlighter( void * pObj, bool bNew );
|
||||
extern void * hbqt_gcAllocate_HBQTableView( void * pObj, bool bNew );
|
||||
@@ -435,6 +437,7 @@ extern void * hbqt_gcAllocate_QPalette( void * pObj, bool bNew );
|
||||
extern void * hbqt_gcAllocate_QPen( void * pObj, bool bNew );
|
||||
extern void * hbqt_gcAllocate_QPicture( void * pObj, bool bNew );
|
||||
extern void * hbqt_gcAllocate_QPixmap( void * pObj, bool bNew );
|
||||
extern void * hbqt_gcAllocate_QPlainTextDocumentLayout( void * pObj, bool bNew );
|
||||
extern void * hbqt_gcAllocate_QPlainTextEdit( void * pObj, bool bNew );
|
||||
extern void * hbqt_gcAllocate_QPoint( void * pObj, bool bNew );
|
||||
extern void * hbqt_gcAllocate_QPointF( void * pObj, bool bNew );
|
||||
@@ -471,6 +474,7 @@ extern void * hbqt_gcAllocate_QSpacerItem( void * pObj, bool bNew );
|
||||
extern void * hbqt_gcAllocate_QSpinBox( void * pObj, bool bNew );
|
||||
extern void * hbqt_gcAllocate_QSplashScreen( void * pObj, bool bNew );
|
||||
extern void * hbqt_gcAllocate_QSplitter( void * pObj, bool bNew );
|
||||
extern void * hbqt_gcAllocate_QStackedWidget( void * pObj, bool bNew );
|
||||
extern void * hbqt_gcAllocate_QStandardItem( void * pObj, bool bNew );
|
||||
extern void * hbqt_gcAllocate_QStandardItemModel( void * pObj, bool bNew );
|
||||
extern void * hbqt_gcAllocate_QStatusBar( void * pObj, bool bNew );
|
||||
|
||||
@@ -113,6 +113,18 @@ static bool connect_signal( QString signal, QObject * object, HBSlots * t_slots
|
||||
else if( signal == ( QString ) "itemExpanded(QTWItem)" ) ret = object->connect( object, SIGNAL( itemExpanded( QTreeWidgetItem * ) ), t_slots, SLOT( itemExpanded( QTreeWidgetItem * ) ), Qt::AutoConnection );
|
||||
else if( signal == ( QString ) "itemPressed(QTWItem)" ) ret = object->connect( object, SIGNAL( itemPressed( QTreeWidgetItem *, int ) ), t_slots, SLOT( itemPressed( QTreeWidgetItem *, int ) ), Qt::AutoConnection );
|
||||
else if( signal == ( QString ) "itemSelectionChanged()" ) ret = object->connect( object, SIGNAL( itemSelectionChanged() ), t_slots, SLOT( itemSelectionChanged() ), Qt::AutoConnection );
|
||||
#if 0
|
||||
/* QListViewWidget */
|
||||
else if( signal == ( QString ) "currentItemChanged(QLWItem)" ) ret = object->connect( object, SIGNAL( currentItemChanged( QTreeWidgetItem *, QTreeWidgetItem * ) ), t_slots, SLOT( currentItemChanged( QTreeWidgetItem *, QTreeWidgetItem * ) ), Qt::AutoConnection );
|
||||
else if( signal == ( QString ) "itemActivated(QLWItem)" ) ret = object->connect( object, SIGNAL( itemActivated( QTreeWidgetItem *, int ) ), t_slots, SLOT( itemActivated( QTreeWidgetItem *, int ) ), Qt::AutoConnection );
|
||||
else if( signal == ( QString ) "itemChanged(QLWItem)" ) ret = object->connect( object, SIGNAL( itemChanged( QTreeWidgetItem *, int ) ), t_slots, SLOT( itemChanged( QTreeWidgetItem *, int ) ), Qt::AutoConnection );
|
||||
else if( signal == ( QString ) "itemClicked(QLWItem)" ) ret = object->connect( object, SIGNAL( itemClicked( QTreeWidgetItem *, int ) ), t_slots, SLOT( itemClicked( QTreeWidgetItem *, int ) ), Qt::AutoConnection );
|
||||
else if( signal == ( QString ) "itemCollapsed(QLWItem)" ) ret = object->connect( object, SIGNAL( itemCollapsed( QTreeWidgetItem * ) ), t_slots, SLOT( itemCollapsed( QTreeWidgetItem * ) ), Qt::AutoConnection );
|
||||
else if( signal == ( QString ) "itemDoubleClicked(QLWItem)" ) ret = object->connect( object, SIGNAL( itemDoubleClicked( QTreeWidgetItem *, int ) ), t_slots, SLOT( itemDoubleClicked( QTreeWidgetItem *, int ) ), Qt::AutoConnection );
|
||||
else if( signal == ( QString ) "itemEntered(QLWItem)" ) ret = object->connect( object, SIGNAL( itemEntered( QTreeWidgetItem *, int ) ), t_slots, SLOT( itemEntered( QTreeWidgetItem *, int ) ), Qt::AutoConnection );
|
||||
else if( signal == ( QString ) "itemExpanded(QLWItem)" ) ret = object->connect( object, SIGNAL( itemExpanded( QTreeWidgetItem * ) ), t_slots, SLOT( itemExpanded( QTreeWidgetItem * ) ), Qt::AutoConnection );
|
||||
else if( signal == ( QString ) "itemPressed(QLWItem)" ) ret = object->connect( object, SIGNAL( itemPressed( QTreeWidgetItem *, int ) ), t_slots, SLOT( itemPressed( QTreeWidgetItem *, int ) ), Qt::AutoConnection );
|
||||
#endif
|
||||
/* QDialog (s) QFontDialog, QFileDialog */
|
||||
else if( signal == ( QString ) "currentFontChanged(QFont)" ) ret = object->connect( object, SIGNAL( currentFontChanged( const QFont & ) ), t_slots, SLOT( currentFontChanged( const QFont & ) ), Qt::AutoConnection );
|
||||
else if( signal == ( QString ) "fontSelected(QFont)" ) ret = object->connect( object, SIGNAL( fontSelected( const QFont & ) ), t_slots, SLOT( fontSelected( const QFont & ) ), Qt::AutoConnection );
|
||||
|
||||
183
harbour/contrib/hbqt/qtgui/QPlainTextDocumentLayout.cpp
Normal file
183
harbour/contrib/hbqt/qtgui/QPlainTextDocumentLayout.cpp
Normal file
@@ -0,0 +1,183 @@
|
||||
/*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
/* -------------------------------------------------------------------- */
|
||||
/* WARNING: Automatically generated source file. DO NOT EDIT! */
|
||||
/* Instead, edit corresponding .qth file, */
|
||||
/* or the generator tool itself, and run regenarate. */
|
||||
/* -------------------------------------------------------------------- */
|
||||
|
||||
/*
|
||||
* Harbour Project source code:
|
||||
* QT wrapper main header
|
||||
*
|
||||
* Copyright 2009-2010 Pritpal Bedi <pritpal@vouchcac.com>
|
||||
*
|
||||
* Copyright 2009 Marcos Antonio Gambeta <marcosgambeta at gmail dot com>
|
||||
* www - http://www.harbour-project.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2, or (at your option)
|
||||
* any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this software; see the file COPYING. If not, write to
|
||||
* the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
|
||||
* Boston, MA 02111-1307 USA (or visit the web site http://www.gnu.org/).
|
||||
*
|
||||
* As a special exception, the Harbour Project gives permission for
|
||||
* additional uses of the text contained in its release of Harbour.
|
||||
*
|
||||
* The exception is that, if you link the Harbour libraries with other
|
||||
* files to produce an executable, this does not by itself cause the
|
||||
* resulting executable to be covered by the GNU General Public License.
|
||||
* Your use of that executable is in no way restricted on account of
|
||||
* linking the Harbour library code into it.
|
||||
*
|
||||
* This exception does not however invalidate any other reasons why
|
||||
* the executable file might be covered by the GNU General Public License.
|
||||
*
|
||||
* This exception applies only to the code released by the Harbour
|
||||
* Project under the name Harbour. If you copy code from other
|
||||
* Harbour Project or Free Software Foundation releases into a copy of
|
||||
* Harbour, as the General Public License permits, the exception does
|
||||
* not apply to the code that you add in this way. To avoid misleading
|
||||
* anyone as to the status of such modified files, you must delete
|
||||
* this exception notice from them.
|
||||
*
|
||||
* If you write modifications of your own for Harbour, it is your choice
|
||||
* whether to permit this exception to apply to your modifications.
|
||||
* If you do not wish that, delete this exception notice.
|
||||
*
|
||||
*/
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
#include "hbapi.h"
|
||||
#include "../hbqt.h"
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
#if QT_VERSION >= 0x040500
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
#include <QtCore/QPointer>
|
||||
|
||||
#include <QtGui/QPlainTextDocumentLayout>
|
||||
|
||||
|
||||
/*
|
||||
* QPlainTextDocumentLayout ( QTextDocument * document )
|
||||
* ~QPlainTextDocumentLayout ()
|
||||
*/
|
||||
|
||||
typedef struct
|
||||
{
|
||||
void * ph;
|
||||
bool bNew;
|
||||
QT_G_FUNC_PTR func;
|
||||
QPointer< QPlainTextDocumentLayout > pq;
|
||||
} QGC_POINTER_QPlainTextDocumentLayout;
|
||||
|
||||
QT_G_FUNC( hbqt_gcRelease_QPlainTextDocumentLayout )
|
||||
{
|
||||
QGC_POINTER_QPlainTextDocumentLayout * p = ( QGC_POINTER_QPlainTextDocumentLayout * ) Cargo;
|
||||
|
||||
if( p && p->bNew )
|
||||
{
|
||||
if( p->ph && p->pq )
|
||||
{
|
||||
const QMetaObject * m = ( ( QObject * ) p->ph )->metaObject();
|
||||
if( ( QString ) m->className() != ( QString ) "QObject" )
|
||||
{
|
||||
HB_TRACE( HB_TR_DEBUG, ( "YES_rel_QPlainTextDocumentLayout /.\\ ph=%p pq=%p", p->ph, (void *)(p->pq) ) );
|
||||
delete ( ( QPlainTextDocumentLayout * ) p->ph );
|
||||
HB_TRACE( HB_TR_DEBUG, ( "YES_rel_QPlainTextDocumentLayout \\./ ph=%p pq=%p", p->ph, (void *)(p->pq) ) );
|
||||
p->ph = NULL;
|
||||
}
|
||||
else
|
||||
{
|
||||
HB_TRACE( HB_TR_DEBUG, ( "NO__rel_QPlainTextDocumentLayoutph=%p pq=%p", p->ph, (void *)(p->pq) ) );
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
HB_TRACE( HB_TR_DEBUG, ( "DEL_rel_QPlainTextDocumentLayout : Object already deleted!" ) );
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
HB_TRACE( HB_TR_DEBUG, ( "PTR_rel_QPlainTextDocumentLayout : Object not created with new()" ) );
|
||||
p->ph = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
void * hbqt_gcAllocate_QPlainTextDocumentLayout( void * pObj, bool bNew )
|
||||
{
|
||||
QGC_POINTER_QPlainTextDocumentLayout * p = ( QGC_POINTER_QPlainTextDocumentLayout * ) hb_gcAllocate( sizeof( QGC_POINTER_QPlainTextDocumentLayout ), hbqt_gcFuncs() );
|
||||
|
||||
p->ph = pObj;
|
||||
p->bNew = bNew;
|
||||
p->func = hbqt_gcRelease_QPlainTextDocumentLayout;
|
||||
|
||||
if( bNew )
|
||||
{
|
||||
new( & p->pq ) QPointer< QPlainTextDocumentLayout >( ( QPlainTextDocumentLayout * ) pObj );
|
||||
HB_TRACE( HB_TR_DEBUG, ( " _new_QPlainTextDocumentLayout ph=%p %i B %i KB", pObj, ( int ) hb_xquery( 1001 ), hbqt_getmemused() ) );
|
||||
}
|
||||
return p;
|
||||
}
|
||||
|
||||
HB_FUNC( QT_QPLAINTEXTDOCUMENTLAYOUT )
|
||||
{
|
||||
void * pObj = NULL;
|
||||
|
||||
if( hb_pcount() == 1 && HB_ISPOINTER( 1 ) )
|
||||
{
|
||||
pObj = new QPlainTextDocumentLayout( hbqt_par_QTextDocument( 1 ) ) ;
|
||||
}
|
||||
|
||||
hb_retptrGC( hbqt_gcAllocate_QPlainTextDocumentLayout( pObj, true ) );
|
||||
}
|
||||
|
||||
/*
|
||||
* int cursorWidth () const
|
||||
*/
|
||||
HB_FUNC( QT_QPLAINTEXTDOCUMENTLAYOUT_CURSORWIDTH )
|
||||
{
|
||||
hb_retni( hbqt_par_QPlainTextDocumentLayout( 1 )->cursorWidth() );
|
||||
}
|
||||
|
||||
/*
|
||||
* void ensureBlockLayout ( const QTextBlock & block ) const
|
||||
*/
|
||||
HB_FUNC( QT_QPLAINTEXTDOCUMENTLAYOUT_ENSUREBLOCKLAYOUT )
|
||||
{
|
||||
hbqt_par_QPlainTextDocumentLayout( 1 )->ensureBlockLayout( *hbqt_par_QTextBlock( 2 ) );
|
||||
}
|
||||
|
||||
/*
|
||||
* void requestUpdate ()
|
||||
*/
|
||||
HB_FUNC( QT_QPLAINTEXTDOCUMENTLAYOUT_REQUESTUPDATE )
|
||||
{
|
||||
hbqt_par_QPlainTextDocumentLayout( 1 )->requestUpdate();
|
||||
}
|
||||
|
||||
/*
|
||||
* void setCursorWidth ( int width )
|
||||
*/
|
||||
HB_FUNC( QT_QPLAINTEXTDOCUMENTLAYOUT_SETCURSORWIDTH )
|
||||
{
|
||||
hbqt_par_QPlainTextDocumentLayout( 1 )->setCursorWidth( hb_parni( 2 ) );
|
||||
}
|
||||
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
#endif /* #if QT_VERSION >= 0x040500 */
|
||||
/*----------------------------------------------------------------------*/
|
||||
101
harbour/contrib/hbqt/qtgui/TQPlainTextDocumentLayout.prg
Normal file
101
harbour/contrib/hbqt/qtgui/TQPlainTextDocumentLayout.prg
Normal file
@@ -0,0 +1,101 @@
|
||||
/*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
/* -------------------------------------------------------------------- */
|
||||
/* WARNING: Automatically generated source file. DO NOT EDIT! */
|
||||
/* Instead, edit corresponding .qth file, */
|
||||
/* or the generator tool itself, and run regenarate. */
|
||||
/* -------------------------------------------------------------------- */
|
||||
|
||||
/*
|
||||
* Harbour Project source code:
|
||||
* QT wrapper main header
|
||||
*
|
||||
* Copyright 2009-2010 Pritpal Bedi <pritpal@vouchcac.com>
|
||||
*
|
||||
* Copyright 2009 Marcos Antonio Gambeta <marcosgambeta at gmail dot com>
|
||||
* www - http://www.harbour-project.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2, or (at your option)
|
||||
* any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this software; see the file COPYING. If not, write to
|
||||
* the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
|
||||
* Boston, MA 02111-1307 USA (or visit the web site http://www.gnu.org/).
|
||||
*
|
||||
* As a special exception, the Harbour Project gives permission for
|
||||
* additional uses of the text contained in its release of Harbour.
|
||||
*
|
||||
* The exception is that, if you link the Harbour libraries with other
|
||||
* files to produce an executable, this does not by itself cause the
|
||||
* resulting executable to be covered by the GNU General Public License.
|
||||
* Your use of that executable is in no way restricted on account of
|
||||
* linking the Harbour library code into it.
|
||||
*
|
||||
* This exception does not however invalidate any other reasons why
|
||||
* the executable file might be covered by the GNU General Public License.
|
||||
*
|
||||
* This exception applies only to the code released by the Harbour
|
||||
* Project under the name Harbour. If you copy code from other
|
||||
* Harbour Project or Free Software Foundation releases into a copy of
|
||||
* Harbour, as the General Public License permits, the exception does
|
||||
* not apply to the code that you add in this way. To avoid misleading
|
||||
* anyone as to the status of such modified files, you must delete
|
||||
* this exception notice from them.
|
||||
*
|
||||
* If you write modifications of your own for Harbour, it is your choice
|
||||
* whether to permit this exception to apply to your modifications.
|
||||
* If you do not wish that, delete this exception notice.
|
||||
*
|
||||
*/
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
|
||||
#include "hbclass.ch"
|
||||
|
||||
|
||||
CREATE CLASS QPlainTextDocumentLayout INHERIT HbQtObjectHandler, QAbstractTextDocumentLayout
|
||||
|
||||
METHOD new( ... )
|
||||
|
||||
METHOD cursorWidth()
|
||||
METHOD ensureBlockLayout( pBlock )
|
||||
METHOD requestUpdate()
|
||||
METHOD setCursorWidth( nWidth )
|
||||
|
||||
ENDCLASS
|
||||
|
||||
|
||||
METHOD QPlainTextDocumentLayout:new( ... )
|
||||
LOCAL p
|
||||
FOR EACH p IN { ... }
|
||||
hb_pvalue( p:__enumIndex(), hbqt_ptr( p ) )
|
||||
NEXT
|
||||
::pPtr := Qt_QPlainTextDocumentLayout( ... )
|
||||
RETURN Self
|
||||
|
||||
|
||||
METHOD QPlainTextDocumentLayout:cursorWidth()
|
||||
RETURN Qt_QPlainTextDocumentLayout_cursorWidth( ::pPtr )
|
||||
|
||||
|
||||
METHOD QPlainTextDocumentLayout:ensureBlockLayout( pBlock )
|
||||
RETURN Qt_QPlainTextDocumentLayout_ensureBlockLayout( ::pPtr, hbqt_ptr( pBlock ) )
|
||||
|
||||
|
||||
METHOD QPlainTextDocumentLayout:requestUpdate()
|
||||
RETURN Qt_QPlainTextDocumentLayout_requestUpdate( ::pPtr )
|
||||
|
||||
|
||||
METHOD QPlainTextDocumentLayout:setCursorWidth( nWidth )
|
||||
RETURN Qt_QPlainTextDocumentLayout_setCursorWidth( ::pPtr, nWidth )
|
||||
|
||||
@@ -116,6 +116,7 @@ CPP_SOURCES := \
|
||||
QPen.cpp \
|
||||
QPicture.cpp \
|
||||
QPixmap.cpp \
|
||||
QPlainTextDocumentLayout.cpp \
|
||||
QPlainTextEdit.cpp \
|
||||
QPolygon.cpp \
|
||||
QPolygonF.cpp \
|
||||
@@ -336,6 +337,7 @@ PRG_SOURCES := \
|
||||
TQPen.prg \
|
||||
TQPicture.prg \
|
||||
TQPixmap.prg \
|
||||
TQPlainTextDocumentLayout.prg \
|
||||
TQPlainTextEdit.prg \
|
||||
TQPolygon.prg \
|
||||
TQPolygonF.prg \
|
||||
|
||||
101
harbour/contrib/hbqt/qth/QPlainTextDocumentLayout.qth
Normal file
101
harbour/contrib/hbqt/qth/QPlainTextDocumentLayout.qth
Normal file
@@ -0,0 +1,101 @@
|
||||
/*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
/*
|
||||
* Harbour Project source code:
|
||||
* QT Source Generator for Harbour
|
||||
*
|
||||
* Copyright 2009 Pritpal Bedi <pritpal@vouchcac.com>
|
||||
* www - http://www.harbour-project.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2, or (at your option)
|
||||
* any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this software; see the file COPYING. If not, write to
|
||||
* the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
|
||||
* Boston, MA 02111-1307 USA (or visit the web site http://www.gnu.org/).
|
||||
*
|
||||
* As a special exception, the Harbour Project gives permission for
|
||||
* additional uses of the text contained in its release of Harbour.
|
||||
*
|
||||
* The exception is that, if you link the Harbour libraries with other
|
||||
* files to produce an executable, this does not by itself cause the
|
||||
* resulting executable to be covered by the GNU General Public License.
|
||||
* Your use of that executable is in no way restricted on account of
|
||||
* linking the Harbour library code into it.
|
||||
*
|
||||
* This exception does not however invalidate any other reasons why
|
||||
* the executable file might be covered by the GNU General Public License.
|
||||
*
|
||||
* This exception applies only to the code released by the Harbour
|
||||
* Project under the name Harbour. If you copy code from other
|
||||
* Harbour Project or Free Software Foundation releases into a copy of
|
||||
* Harbour, as the General Public License permits, the exception does
|
||||
* not apply to the code that you add in this way. To avoid misleading
|
||||
* anyone as to the status of such modified files, you must delete
|
||||
* this exception notice from them.
|
||||
*
|
||||
* If you write modifications of your own for Harbour, it is your choice
|
||||
* whether to permit this exception to apply to your modifications.
|
||||
* If you do not wish that, delete this exception notice.
|
||||
*
|
||||
*/
|
||||
/*----------------------------------------------------------------------*/
|
||||
;
|
||||
; Header File to Generate QT Wrapper Sources
|
||||
;
|
||||
|
||||
<CLASS>
|
||||
QObject =
|
||||
Inherits = QAbstractTextDocumentLayout
|
||||
Type =
|
||||
New =
|
||||
</CLASS>
|
||||
|
||||
<CODE>
|
||||
#include <QtGui/QPlainTextDocumentLayout>
|
||||
|
||||
|
||||
/*
|
||||
* QPlainTextDocumentLayout ( QTextDocument * document )
|
||||
* ~QPlainTextDocumentLayout ()
|
||||
*/
|
||||
HB_FUNC( QT_QPLAINTEXTDOCUMENTLAYOUT )
|
||||
{
|
||||
if( hb_pcount() == 1 && HB_ISPOINTER( 1 ) )
|
||||
{
|
||||
hb_retptr( new QPlainTextDocumentLayout( hbqt_par_QTextDocument( 1 ) ) );
|
||||
}
|
||||
}
|
||||
</CODE>
|
||||
|
||||
<ENUMS>
|
||||
</ENUMS>
|
||||
|
||||
<PROTOS>
|
||||
int cursorWidth () const
|
||||
void ensureBlockLayout ( const QTextBlock & block ) const
|
||||
void requestUpdate ()
|
||||
void setCursorWidth ( int width )
|
||||
</PROTOS>
|
||||
|
||||
<SLOTS>
|
||||
</SLOTS>
|
||||
|
||||
<SIGNALS>
|
||||
</SIGNALS>
|
||||
|
||||
<VARIABLES>
|
||||
</VARIABLES>
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user