From 0c4be0f362540ce7d104de45df3771228d629ba6 Mon Sep 17 00:00:00 2001 From: Pritpal Bedi Date: Wed, 10 Feb 2010 02:35:23 +0000 Subject: [PATCH] 2010-02-09 18:25 UTC-0800 Pritpal Bedi (pritpal@vouchcac.com) + contrib/hbide/docs + contrib/hbide/docs/idemainpage.html + contrib/hbide/docs/interfaceelements.html + contrib/hbide/docs/multiviews.html * contrib/hbide/resources/help.png * contrib/hbide/hbide.prg * contrib/hbide/ideactions.prg * contrib/hbide/idedocks.prg * contrib/hbide/ideobject.prg + Implemented basics of ib-build help mechanism. It is working in a limited manner and is scheduled to be matured in next few days, at-least from operations point-of-view. QtextBrowser() accepts a sub-set of html commands and hence is very limited in appearnce. As we have decided against QtWebkit, this implementation may not look highly professional, will surely solve our purpose. If someone is willing to extend help in this direction, then following are the guidelines how you should design html page: 1. Open Qt Creator 2. Create a widget in the designer. 3. Place a QTextBrowser control somewhere. 4. Double-click within the control. 5. A rich-text editing box will appear. 6. Design the page. 7. Click on the "Source" tab at the bottom. 8. Select the whole source with Ctrl+A and copy with Ctrl+C. 9. Create a .html file with notepad, paste the source, and save. The process is lengthy, but no other html editor solves our purpose due to limited html tags availability in QTextBrowser. --- harbour/ChangeLog | 38 ++++++++++++++++++ harbour/contrib/hbide/docs/idemainpage.html | 16 ++++++++ .../contrib/hbide/docs/interfaceelements.html | 15 +++++++ harbour/contrib/hbide/docs/multiviews.html | 10 +++++ harbour/contrib/hbide/hbide.prg | 11 ++--- harbour/contrib/hbide/ideactions.prg | 2 + harbour/contrib/hbide/idedocks.prg | 36 ++++++++++++++++- harbour/contrib/hbide/ideobject.prg | 2 + harbour/contrib/hbide/resources/help.png | Bin 0 -> 1471 bytes 9 files changed, 124 insertions(+), 6 deletions(-) create mode 100644 harbour/contrib/hbide/docs/idemainpage.html create mode 100644 harbour/contrib/hbide/docs/interfaceelements.html create mode 100644 harbour/contrib/hbide/docs/multiviews.html create mode 100644 harbour/contrib/hbide/resources/help.png diff --git a/harbour/ChangeLog b/harbour/ChangeLog index cceae61615..cacd9b471d 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -17,6 +17,44 @@ past entries belonging to author(s): Viktor Szakats. */ +2010-02-09 18:25 UTC-0800 Pritpal Bedi (pritpal@vouchcac.com) + + contrib/hbide/docs + + contrib/hbide/docs/idemainpage.html + + contrib/hbide/docs/interfaceelements.html + + contrib/hbide/docs/multiviews.html + + * contrib/hbide/resources/help.png + + * contrib/hbide/hbide.prg + * contrib/hbide/ideactions.prg + * contrib/hbide/idedocks.prg + * contrib/hbide/ideobject.prg + + + Implemented basics of ib-build help mechanism. + It is working in a limited manner and is scheduled to be + matured in next few days, at-least from operations + point-of-view. QtextBrowser() accepts a sub-set of + html commands and hence is very limited in appearnce. + As we have decided against QtWebkit, this implementation + may not look highly professional, will surely solve + our purpose. + + If someone is willing to extend help in this direction, + then following are the guidelines how you should design + html page: + 1. Open Qt Creator + 2. Create a widget in the designer. + 3. Place a QTextBrowser control somewhere. + 4. Double-click within the control. + 5. A rich-text editing box will appear. + 6. Design the page. + 7. Click on the "Source" tab at the bottom. + 8. Select the whole source with Ctrl+A and copy with Ctrl+C. + 9. Create a .html file with notepad, paste the source, and save. + + The process is lengthy, but no other html editor solves our + purpose due to limited html tags availability in QTextBrowser. + 2010-02-09 21:57 UTC+0100 Viktor Szakats (harbour.01 syenar.hu) * include/hbdefs.h + Added more info on HB_SIZE/HB_ISIZ future plans. diff --git a/harbour/contrib/hbide/docs/idemainpage.html b/harbour/contrib/hbide/docs/idemainpage.html new file mode 100644 index 0000000000..5fbb1f8d67 --- /dev/null +++ b/harbour/contrib/hbide/docs/idemainpage.html @@ -0,0 +1,16 @@ + + +

hbIDE Help

+

+

This effort may not bring desired results but hopefully solve some of the issues supporting the project.

+

+

Interface Elements

+

Multi Views

+

+

+

Please bear with me if things appear to be simple.

+

+

Pritpal Bedi

+

_a_student_of_software_analysis_&_design

diff --git a/harbour/contrib/hbide/docs/interfaceelements.html b/harbour/contrib/hbide/docs/interfaceelements.html new file mode 100644 index 0000000000..deda049274 --- /dev/null +++ b/harbour/contrib/hbide/docs/interfaceelements.html @@ -0,0 +1,15 @@ + + +

Interface Elements

+

+

hbIDE interface contains

+

+

1. Main Frame

+

2. Menubar

+

3. Toolbar

+

4. Statusbar

+

5. Left docking Project Tree

+

6. Left docking Tabs Tree

+

diff --git a/harbour/contrib/hbide/docs/multiviews.html b/harbour/contrib/hbide/docs/multiviews.html new file mode 100644 index 0000000000..13438fd4c8 --- /dev/null +++ b/harbour/contrib/hbide/docs/multiviews.html @@ -0,0 +1,10 @@ + + +

Multi Views

+

+

hbIDE interface provides multiple views to organize your sources in a convenient way. The creation of a panel is a few clicks away. Switching is even simple.

+

+

+

diff --git a/harbour/contrib/hbide/hbide.prg b/harbour/contrib/hbide/hbide.prg index 1607707cd0..a5ef8c08f8 100644 --- a/harbour/contrib/hbide/hbide.prg +++ b/harbour/contrib/hbide/hbide.prg @@ -121,6 +121,7 @@ CLASS HbIde DATA oThemes DATA oFindInFiles DATA oDockFind + DATA oHelp DATA oUI @@ -152,6 +153,7 @@ CLASS HbIde DATA qFontWrkProject DATA qBrushWrkProject DATA qProcess + DATA qHelpBrw ACCESS oCurEditor INLINE ::oEM:getEditorCurrent() ACCESS qCurEdit INLINE ::oEM:getEditCurrent() @@ -309,8 +311,7 @@ METHOD HbIde:create( cProjIni ) ::oAC:buildToolBar() /* Main Menu */ ::oAC:buildMainMenu() - /* StatusBar */ -// ::oDK:buildStatusBar() + /* Docking Widgets */ ::oDK:buildDockWidgets() @@ -518,7 +519,9 @@ METHOD HbIde:execAction( cKey ) CASE "ToggleFuncList" ::execWindowsAction( cKey ) EXIT - + CASE "Help" + ::oHelp:show() + EXIT ENDSWITCH ::manageFocusInEditor() @@ -610,8 +613,6 @@ METHOD HbIde:execEditorAction( cKey ) EXIT CASE "MatchPairs" // - //::oDockFind:show() - ::oStackedWidget:oWidget:setCurrentIndex( iif( ::oStackedWidget:oWidget:currentIndex() == 1, 0, 1 ) ) EXIT CASE "InsertSeparator" ::oEM:insertSeparator() diff --git a/harbour/contrib/hbide/ideactions.prg b/harbour/contrib/hbide/ideactions.prg index b2887e9b51..83a9f85441 100644 --- a/harbour/contrib/hbide/ideactions.prg +++ b/harbour/contrib/hbide/ideactions.prg @@ -206,6 +206,7 @@ METHOD IdeActions:loadActions() aadd( aAct, { "TB_ZoomIn" , "ZoomIn" , "zoomin" , "" , "No", "Yes" } ) aadd( aAct, { "TB_ZoomOut" , "ZoomOut" , "zoomout" , "" , "No", "Yes" } ) // + aadd( aAct, { "Help" , "~Help" , "help" , "F1" , "No", "Yes" } ) aadd( aAct, { "Exit" , "E~xit" , "exit" , "Sh+^W", "No", "Yes" } ) aadd( aAct, { "New" , "~Source" , "new" , "^N" , "No", "Yes" } ) aadd( aAct, { "Open" , "~Open" , "open" , "^O" , "No", "Yes" } ) @@ -318,6 +319,7 @@ METHOD IdeActions:buildToolBar() oTBar:buttonClick := {|oButton| ::oIde:execAction( oButton:key ) } oTBar:addItem( ::getAction( "TB_Exit" ), , , , , , "Exit" ) + oTBar:addItem( ::getAction( "Help" ), , , , , , "Help" ) oTBar:addItem( , , , , , nSep ) oTBar:addItem( ::getAction( "TB_New" ), , , , , , "New" ) oTBar:addItem( ::getAction( "TB_Open" ), , , , , , "Open" ) diff --git a/harbour/contrib/hbide/idedocks.prg b/harbour/contrib/hbide/idedocks.prg index 380ef22bb5..c483c72e19 100644 --- a/harbour/contrib/hbide/idedocks.prg +++ b/harbour/contrib/hbide/idedocks.prg @@ -81,6 +81,7 @@ CLASS IdeDocks INHERIT IdeObject METHOD destroy() METHOD execEvent( nMode, p ) METHOD setView( cView ) + METHOD buildHelpWidget() METHOD buildDialog() METHOD buildViewWidget() METHOD buildStackedWidget() @@ -296,7 +297,8 @@ METHOD IdeDocks:buildDockWidgets() ::buildCompileResults() ::buildLinkResults() ::buildOutputResults() - //::buildFindInFiles() + * ::buildFindInFiles() + ::buildHelpWidget() ::oDlg:oWidget:tabifyDockWidget( ::oDockB:oWidget , ::oDockB1:oWidget ) ::oDlg:oWidget:tabifyDockWidget( ::oDockB1:oWidget, ::oDockB2:oWidget ) @@ -432,6 +434,38 @@ METHOD IdeDocks:buildFuncList() /*----------------------------------------------------------------------*/ +METHOD IdeDocks:buildHelpWidget() + STATIC qUrl + + IF empty( qUrl ) + qUrl := QUrl():new( "docs/idemainpage.html" ) + ENDIF + + ::oIde:oHelp := XbpWindow():new() + ::oHelp:oWidget := QDockWidget():new( ::oDlg:oWidget ) + ::oHelp:oWidget:setObjectName( "dockHelp" ) + ::oDlg:addChild( ::oHelp ) + ::oHelp:oWidget:setFeatures( QDockWidget_DockWidgetClosable ) + ::oHelp:oWidget:setAllowedAreas( Qt_RightDockWidgetArea ) + ::oHelp:oWidget:setWindowTitle( "hbIDE Help" ) + ::oHelp:oWidget:setFocusPolicy( Qt_NoFocus ) + + ::oIde:qHelpBrw := QTextBrowser():new( ::oHelp:oWidget ) + ::oIde:qHelpBrw:show() + ::oIde:qHelpBrw:setOpenExternalLinks( .t. ) + ::qHelpBrw:setSource( qUrl ) + + ::oHelp:oWidget:setWidget( ::oIde:qHelpBrw ) + + // ::oHelp:connect( ::qHelpBrw ) + + ::oDlg:oWidget:addDockWidget_1( Qt_RightDockWidgetArea, ::oHelp:oWidget, Qt_Horizontal ) + ::oHelp:hide() + + RETURN Self + +/*----------------------------------------------------------------------*/ + METHOD IdeDocks:buildCompileResults() ::oIde:oDockB := XbpWindow():new() diff --git a/harbour/contrib/hbide/ideobject.prg b/harbour/contrib/hbide/ideobject.prg index 5c821af800..3d3d10be86 100644 --- a/harbour/contrib/hbide/ideobject.prg +++ b/harbour/contrib/hbide/ideobject.prg @@ -111,6 +111,7 @@ CLASS IdeObject ACCESS oTabParent INLINE ::oIde:oTabParent ACCESS qBrushWrkProject INLINE ::oIde:qBrushWrkProject ACCESS qViewsCombo INLINE ::oIde:qViewsCombo + ACCESS qHelpBrw INLINE ::oIde:qHelpBrw ACCESS cWrkProject INLINE ::oIde:cWrkProject ACCESS cWrkTheme INLINE ::oIde:cWrkTheme @@ -156,6 +157,7 @@ CLASS IdeObject ACCESS oOutputResult INLINE ::oIde:oOutputResult ACCESS oStackedWidget INLINE ::oIde:oStackedWidget ACCESS oFrame INLINE ::oIde:oFrame + ACCESS oHelp INLINE ::oIde:oHelp ACCESS lProjTreeVisible INLINE ::oIde:lProjTreeVisible ACCESS lDockRVisible INLINE ::oIde:lDockRVisible diff --git a/harbour/contrib/hbide/resources/help.png b/harbour/contrib/hbide/resources/help.png new file mode 100644 index 0000000000000000000000000000000000000000..fcdfb43ca5899f678d6733ee88839a21d01894ac GIT binary patch literal 1471 zcmV;w1wi_VP)DZyIWIIXFf@5y zqtyTa1rSL@K~#90wUupbon;xvfA@1g&vTyB^V0U%!PeT%tN{&iPTdq@5D*M3Yc?Qg zqQ7F&Y!6U?PdxaGPXVx-10D3V|`%+7ULkwtHz$yK{O@ z&+~TQ_vHr@LP;xrkn8hx{eSuYuRHgpM1&8sybo0!@IR>G_qVBQy9<1|SmbMX+~hp^ z5(ly4rH*672z$Txyo@h5ua=AG&`*`tukqbdnTL8-53Vh(_!xyk7doG(UB5{E;sjS3 zjw?Bh#HinD_{D>NclG}Xuzy(f^;X!sa{anZ{dataQf(zP&LfQr*!fG4E}(5j^THY4 zdh0A_nov*GDTVsRjsy0@e+4}AB~@Lsisy%h@4sc`@Gdxe0Q36O=+-2zlaXhTJ4mIQ zpnMIa36tlic)c!MPC2LWZrgdtTv!rt zx$$1?_+K#-C&_{1R|fgy1N+&qaW&VEJ<8ybEmU89g3|i0vTFOEAPh<4j7~1}h8`8I zFvzxtZ&v;y2WzX`-rfI^&vcg~TCeO!d635teEdH8dP7eCYAXY@a2n$AcX(&)ET7+f zoN!=0^QT5}fhN!%wSr|Ple;Qft_7yvbx`hNd(Sm%$R8 zdlNc``3_v}_;`SLAr3$X_&T7fH4eH&v0+g}%Hwm9ugP1pm=vr5EUdclN1`h)GFVNq z^$AX#hc|j|X5)^(V5Uycnixld0-j&M3kqmY0}6qjMG=X|pr1A|%3&->3R;6|&eHka zy|i<9rJ?X|-^1PCdK`ChA8$YN1LEc!s#3!bBD67x%5b6(`H!)80R|+VZ>XXHabRS6_INsY3^eQAoK;5S1yG%7j6PIGD{GAc=LnvB*IzYILTR z-OwNTsIZE44ksDbWH@W-(T?+f{yxFvD5fXG6)S|r3dKq{g)oFp%xsb~lNvmc!-->Z z5y0X70z`p-teLwb=i2s;bzL5QR7Q$Eo^yyb)cl;!e*H0+KEuVCllaP_gCe9U zrqyO_uFd2^f;e~DIrc627d?GX*R8&%{&7QJcQmx3hF7Ve!U(j7r#$Fik9H~P#eboc zkL$$5a}C~{o?~pbNheMcXWiC4N9FL60Dxa_jduBd@U!cCE3ECSQL0u5q6mTjN!y46 zr$Ul;o9V_p<1-B=nr*T)L!5p1$0PE~_v$Tq51t$@?D4gJyjJSsqt!CCQjstW0Y#eU zG~zfcH6B2S}$*g6uEW3n7) zthM5v72&BpBl7A}I?Dn8cHXEewW|K2^3(&MHi$4F;*3}~CL$x&viB#)WOP}94+8u@ Z>faBeeGLQPBNG4s002ovPDHLkV1mTtwk-ev literal 0 HcmV?d00001