2009-12-03 23:24 UTC-0800 Pritpal Bedi (pritpal@vouchcac.com)

* contrib/hbide/hbide.ch
  + contrib/hbide/hbide.env
  * contrib/hbide/hbide.prg
  * contrib/hbide/idemisc.prg
  * contrib/hbide/projects/hbide.hbi
  * contrib/hbide/resources/projectproperties.ui
    + Started the possibility to switch to any compiler while building a project.
    ! Implemented tooltips on <Project Properties> dialog components.
    + Added one more tab <Compilers> which holds the contents of hbide.env
      residing alongside hbide.exe. 

      NOTE: hbide.env is an experimental feature and as such name and location 
            of this file may change in future. 

    ! Few more artifacts corrected.
This commit is contained in:
Pritpal Bedi
2009-12-05 02:42:09 +00:00
parent 6fdd5f7c26
commit 8147e7fa16
7 changed files with 252 additions and 34 deletions

View File

@@ -17,6 +17,23 @@
past entries belonging to author(s): Viktor Szakats.
*/
2009-12-03 23:24 UTC-0800 Pritpal Bedi (pritpal@vouchcac.com)
* contrib/hbide/hbide.ch
+ contrib/hbide/hbide.env
* contrib/hbide/hbide.prg
* contrib/hbide/idemisc.prg
* contrib/hbide/projects/hbide.hbi
* contrib/hbide/resources/projectproperties.ui
+ Started the possibility to switch to any compiler while building a project.
! Implemented tooltips on <Project Properties> dialog components.
+ Added one more tab <Compilers> which holds the contents of hbide.env
residing alongside hbide.exe.
NOTE: hbide.env is an experimental feature and as such name and location
of this file may change in future.
! Few more artifacts corrected.
2009-12-05 01:56 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* utils/hbmk2/hbmk2.prg
+ Added Harbour lib dir autodetection when Harbour installed

View File

@@ -105,6 +105,7 @@
#define E_oPrjSrc 10
#define E_oPrjMta 11
#define E_oPrjHbp 12
#define E_oPrjCmp 13

View File

@@ -0,0 +1,27 @@
[ MinGW 4.4.1 ]
SET PATH=e:\harbour;e:\harbour\bin;c:\harbour-11\mingw\bin;c:\qt\2009.01\qt\bin;%PATH%
set HB_ARCHITECTURE=win
set HB_COMPILER=mingw
set HB_INSTALL_PREFIX=e:\harbour
set HB_INC_QT=c:\qt\2009.01\qt\include
set HB_USER_PRGFLAGS=-gc3 -d__HB_WINDEBUG__ -d__HB_DEBUG__
set HB_USER_CFLAGS=-D__HB_WINDEBUG__ -D__HB_DEBUG__ -DHB_FM_STATISTICS
[ Visual Studio 8 ]
call "%ProgramFiles%\Microsoft Visual Studio 8\VC\vcvarsall.bat" x86
set PATH=e:\harbour;e:\harbour\bin;c:\harbour-11\mingw\bin;c:\qt\2009.01\qt\bin;%PATH%
set HB_ARCHITECTURE=win
set HB_COMPILER=msvc
set HB_INSTALL_PREFIX=e:\harbour
set HB_INC_QT=c:\qt\2009.01\qt\include
set HB_USER_PRGFLAGS=-gc3
set HB_USER_CFLAGS=-DHB_FM_STATISTICS


View File

@@ -1461,8 +1461,8 @@ METHOD HbIde:loadProjectProperties( cProject, lNew, lFetch )
/*----------------------------------------------------------------------*/
METHOD HbIde:fetchProjectProperties()
LOCAL qPrpDlg, qPrjType, oPrjTtl, oPBOk, oPBCn, pPrpDlg, oTabWidget
LOCAL oPrjLoc, oPrjWrk, oPrjDst, oPrjOut, oPrjInc, oPrjLau, oPrjLEx, oPrjSrc, oPrjMta, oPrjHbp
LOCAL qPrpDlg, qPrjType, oPrjTtl, oPBOk, oPBCn, pPrpDlg, oTabWidget, oPBSv
LOCAL oPrjLoc, oPrjWrk, oPrjDst, oPrjOut, oPrjInc, oPrjLau, oPrjLEx, oPrjSrc, oPrjMta, oPrjHbp, oPrjCmp
LOCAL cPrjLoc := hb_dirBase() + "projects"
LOCAL aPrjProps := ::aPrjProps
@@ -1485,13 +1485,16 @@ METHOD HbIde:fetchProjectProperties()
oPrjSrc := QTextEdit():configure( Qt_FindChild( pPrpDlg, "editSources" ) )
oPrjMta := QTextEdit():configure( Qt_FindChild( pPrpDlg, "editMetaData" ) )
oPrjHbp := QTextEdit():configure( Qt_FindChild( pPrpDlg, "editHbp" ) )
oPrjCmp := QTextEdit():configure( Qt_FindChild( pPrpDlg, "editCompilers" ) )
::aPrpObjs := { qPrjType, oPrjTtl, oPrjLoc, oPrjWrk, oPrjDst, oPrjOut, oPrjLau, oPrjLEx, oPrjInc, oPrjSrc, oPrjMta, oPrjHbp }
::aPrpObjs := { qPrjType, oPrjTtl, oPrjLoc, oPrjWrk, oPrjDst, oPrjOut, oPrjLau, oPrjLEx, oPrjInc, oPrjSrc, oPrjMta, oPrjHbp, oPrjCmp }
oPBOk := XbpPushButton():new():createFromQtPtr( , , , , , , Qt_findChild( pPrpDlg, "buttonOk" ) )
oPBOk:activate := {|| ::saveProject(), qPrpDlg:close() }
oPBCn := XbpPushButton():new():createFromQtPtr( , , , , , , Qt_findChild( pPrpDlg, "buttonCn" ) )
oPBCn:activate := {|| qPrpDlg:close() }
oPBSv := XbpPushButton():new():createFromQtPtr( , , , , , , Qt_findChild( pPrpDlg, "buttonSave" ) )
oPBSv:activate := {|| ::saveProject() }
oPBOk := XbpPushButton():new():createFromQtPtr( , , , , , , Qt_findChild( pPrpDlg, "buttonSaveExit" ) )
oPBOk:activate := {|| ::saveProject(), qPrpDlg:close() }
oTabWidget := QTabWidget():configure( Qt_FindChild( pPrpDlg, "tabWidget" ) )
Qt_Connect_Signal( QT_PTROF( oTabWidget ), "currentChanged(int)", {|o,p| ::updateHbp( p, o ) } )
@@ -1513,6 +1516,7 @@ METHOD HbIde:fetchProjectProperties()
oPrjInc:setPlainText( ArrayToMemo( aPrjProps[ PRJ_PRP_FLAGS , 1 ] ) )
oPrjSrc:setPlainText( ArrayToMemo( aPrjProps[ PRJ_PRP_SOURCES , 1 ] ) )
oPrjMta:setPlainText( ArrayToMemo( aPrjProps[ PRJ_PRP_METADATA, 1 ] ) )
oPrjCmp:setPlainText( memoread( hb_dirBase() + "hbide.env" ) )
ENDIF
@@ -1527,6 +1531,7 @@ METHOD HbIde:fetchProjectProperties()
METHOD HbIde:updateHbp( iIndex )
LOCAL a_, a4_1, o_, txt_, s
LOCAL cExt
IF iIndex != 3
RETURN nil
@@ -1539,26 +1544,35 @@ METHOD HbIde:updateHbp( iIndex )
a4_1 := SetupMetaKeys( a_ )
txt_:= {}
aadd( txt_, "# " )
aadd( txt_, "# HBMK2 Project File" )
aadd( txt_, "# " )
aadd( txt_, "# " + ParseWithMetaData( o_[ E_oPrjWrk ]:text(), a4_1 ) + s_pathSep + ;
ParseWithMetaData( o_[ E_oPrjOut ]:text(), a4_1 ) + ".hbp" )
aadd( txt_, " " )
a_:= hb_atokens( o_[ E_oPrjInc ]:toPlainText(), _EOL )
aeval( a_, {|e| aadd( txt_, ParseWithMetaData( e, a4_1 ) ) } )
/* This block will be absent when submitting to hbmk engine */
aadd( txt_, "# " + ParseWithMetaData( o_[ E_oPrjWrk ]:text(), a4_1 ) + s_pathSep + ;
ParseWithMetaData( o_[ E_oPrjOut ]:text(), a4_1 ) + ".hbp" )
aadd( txt_, " " )
a_:= hb_atokens( o_[ E_oPrjSrc ]:toPlainText(), _EOL )
/* Flags */
a_:= hb_atokens( o_[ E_oPrjInc ]:toPlainText(), _EOL )
FOR EACH s IN a_
s := alltrim( s )
IF !( "#" == left( s,1 ) )
IF !( "#" == left( s,1 ) ) .and. !empty( s )
s := ParseWithMetaData( s, a4_1 )
aadd( txt_, s )
ENDIF
aadd( txt_, s )
NEXT
aadd( txt_, " " )
/* Sources */
a_:= hb_atokens( o_[ E_oPrjSrc ]:toPlainText(), _EOL )
FOR EACH s IN a_
s := alltrim( s )
IF !( "#" == left( s,1 ) ) .and. !empty( s )
s := ParseWithMetaData( s, a4_1 )
hb_FNameSplit( s, , , @cExt )
IF lower( cExt ) $ ".c,.cpp,.prg,.rc,.res"
aadd( txt_, s )
ENDIF
ENDIF
NEXT
aadd( txt_, " " )
/* Final assault */
::aPrpObjs[ E_oPrjHbp ]:setPlainText( ArrayToMemo( txt_ ) )
@@ -1568,7 +1582,7 @@ METHOD HbIde:updateHbp( iIndex )
/*----------------------------------------------------------------------*/
METHOD HbIde:saveProject()
LOCAL txt_, a_, a4_1, o_
LOCAL txt_, a_, a4_1, o_//, s, b_, i, j
LOCAL typ_:= { "Executable", "Lib", "Dll" }
IF empty( o_:= ::aPrpObjs )
@@ -1589,14 +1603,11 @@ METHOD HbIde:saveProject()
aadd( txt_, " " )
aadd( txt_, "[ FLAGS ]" )
a_:= hb_atokens( o_[ E_oPrjInc ]:toPlainText(), _EOL ); aeval( a_, {|e| aadd( txt_, e ) } )
aadd( txt_, " " )
a_:= MemoToArray( o_[ E_oPrjInc ]:toPlainText() ); aeval( a_, {|e| aadd( txt_, e ) } ) ; aadd( txt_, " " )
aadd( txt_, "[ SOURCES ]" )
a_:= hb_atokens( o_[ E_oPrjSrc ]:toPlainText(), _EOL ); aeval( a_, {|e| aadd( txt_, e ) } )
aadd( txt_, " " )
a_:= MemoToArray( o_[ E_oPrjSrc ]:toPlainText() ); aeval( a_, {|e| aadd( txt_, e ) } ) ; aadd( txt_, " " )
aadd( txt_, "[ METADATA ]" )
a_:= hb_atokens( o_[ E_oPrjMta ]:toPlainText(), _EOL ); aeval( a_, {|e| aadd( txt_, e ) } )
aadd( txt_, " " )
a_:= MemoToArray( o_[ E_oPrjMta ]:toPlainText() ); aeval( a_, {|e| aadd( txt_, e ) } ) ; aadd( txt_, " " )
/* Setup Meta Keys */
a4_1 := SetupMetaKeys( a_ )
@@ -1607,6 +1618,7 @@ METHOD HbIde:saveProject()
".hbi"
CreateTarget( ::cSaveTo, txt_ )
MemoWrit( hb_dirBase() + "hbide.env", o_[ E_oPrjCmp ]:toPlainText() )
RETURN Nil

View File

@@ -180,7 +180,7 @@ FUNCTION ReadSource( cTxtFile )
do WHILE ( hb_fReadLine( nHandle, @cLine ) == 0 )
aadd( aTxt, cLine )
enddo
aadd( aTxt, cLine )
//aadd( aTxt, cLine )
fclose( nHandle )
endif
@@ -349,6 +349,32 @@ FUNCTION ArrayToMemo( a_ )
aeval( a_, {|e| s += e + CRLF } )
s += CRLF
RETURN s
/*----------------------------------------------------------------------*/
FUNCTION MemoToArray( s )
LOCAL a_, b_, i, j
b_:={}
s := trim( s )
s := strtran( s, CRLF, _EOL )
a_:= hb_atokens( s, _EOL )
FOR i := len( a_ ) TO 1 step -1
IF !empty( a_[ i ] )
EXIT
ENDIF
NEXT
IF i < len( a_ )
FOR j := 1 TO i
aadd( b_, a_[ j ] )
NEXT
ENDIF
RETURN b_
/*----------------------------------------------------------------------*/

View File

@@ -19,8 +19,6 @@ LaunchProgram =
# So you can exploit this feature to visualize project source files
# in a graspable way.
#
# .PRG Sources
#
<IdeSrc>hbide.prg
<IdeSrc>ideactions.prg
<IdeSrc>idemisc.prg
@@ -28,14 +26,12 @@ LaunchProgram =
<IdeSrc>idestylesheets.prg
<IdeSrc>idetags.prg
<IdeSrc>hbide.ch
<IdeSrc>freadlin.c
# Here and there
#
<IdeSrc>hbide.ini
<IdeSrc>hbide.ch
<IdeSrc>hbide.ini
[ METADATA ]
# Meta Key/Value pair accepts any valid Harbour defined
# function call returning a string value, thus making meta-data
@@ -46,3 +42,4 @@ LaunchProgram =
#
IdeSrc = hb_dirBase()
{/} = hb_osPathSeparator()

View File

@@ -44,6 +44,13 @@
<height>22</height>
</rect>
</property>
<property name="toolTip">
<string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p align=&quot;center&quot; style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;A project may be of type Executable|Library|Dll.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="editable">
<bool>false</bool>
</property>
@@ -79,6 +86,13 @@
<height>20</height>
</rect>
</property>
<property name="toolTip">
<string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p align=&quot;center&quot; style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;Title will be shown as a node in project tree.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
</widget>
<widget class="QLabel" name="label_2">
<property name="geometry">
@@ -121,6 +135,13 @@
<height>20</height>
</rect>
</property>
<property name="toolTip">
<string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p align=&quot;center&quot; style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;Project location is the folder where project definition file .hbi will be stored. &amp;lt;Project Location&amp;gt; plus &amp;lt;Output Name&amp;gt; will comprise the full file name with .hbp extension.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
</widget>
<widget class="QLabel" name="label_4">
<property name="geometry">
@@ -147,6 +168,13 @@
<height>20</height>
</rect>
</property>
<property name="toolTip">
<string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p align=&quot;center&quot; style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;Working folder will be used to host HBMK2 compliant &lt;/span&gt;&lt;span style=&quot; font-size:8pt; font-weight:600;&quot;&gt;&amp;lt;Output Name&amp;gt;&lt;/span&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt; plus &lt;/span&gt;&lt;span style=&quot; font-size:8pt; font-weight:600;&quot;&gt;&amp;lt;.hbp&amp;gt;&lt;/span&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt; and will be designated as current folder when &lt;/span&gt;&lt;span style=&quot; font-size:8pt; font-weight:600;&quot;&gt;HBMK2&lt;/span&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt; will be invoked.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
</widget>
<widget class="QLabel" name="label_5">
<property name="geometry">
@@ -173,6 +201,14 @@
<height>20</height>
</rect>
</property>
<property name="toolTip">
<string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p align=&quot;center&quot; style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Destination folder is a compatibility slot and is reserved to place the &amp;lt;Output&amp;gt; .exe .a .lib. &lt;/p&gt;
&lt;p align=&quot;center&quot; style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;But currently this functionality will be achieved through the -o compiler flag.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
</widget>
<widget class="QLabel" name="label_6">
<property name="geometry">
@@ -199,6 +235,13 @@
<height>20</height>
</rect>
</property>
<property name="toolTip">
<string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p align=&quot;center&quot; style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Output name is used as final name for .hbi .hbp .exe .lib .a and will be added to the paths retrieved via &amp;lt;Project Location&amp;gt;, &amp;lt;Working Folder&amp;gt;, &amp;lt;Destination Folder&amp;gt;, etc. So this is a very important component.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
</widget>
<widget class="QLabel" name="label_7">
<property name="geometry">
@@ -261,6 +304,16 @@
<height>109</height>
</rect>
</property>
<property name="toolTip">
<string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p align=&quot;center&quot; style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;Compiler/Linker flags may include all commands except the source files list. Additional libraries can be included here.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="styleSheet">
<string>background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 rgba(128, 170, 165, 255), stop:1 rgba(255, 255, 255, 255));</string>
</property>
<property name="lineWrapMode">
<enum>QPlainTextEdit::NoWrap</enum>
</property>
@@ -321,6 +374,19 @@
<height>345</height>
</rect>
</property>
<property name="toolTip">
<string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p align=&quot;center&quot; style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;You can include hereunder any type of file which can be edited via plain text editor. One file per line. You can use meta-keys to define your source paths to make your projects location independant. &lt;/p&gt;
&lt;p align=&quot;center&quot; style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;/p&gt;
&lt;p align=&quot;center&quot; style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;NOTE:&lt;/p&gt;
&lt;p align=&quot;center&quot; style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Only .prg .c .cpp .rc .res files will be supplied to the HBMK2. All other files will be made visible for editing in &amp;lt;Project Tree&amp;gt;.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="styleSheet">
<string>background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 rgba(214, 219, 198, 255), stop:1 rgba(255, 255, 255, 255));</string>
</property>
<property name="lineWrapMode">
<enum>QPlainTextEdit::NoWrap</enum>
</property>
@@ -339,6 +405,18 @@
<height>265</height>
</rect>
</property>
<property name="toolTip">
<string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p align=&quot;center&quot; style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Meta-keys are a special way of keeping generic information which is of repeated and/or of dynamic nature. HBIDE implements meta key/value pair more comprehensively. It allows you to write an expression for the value part which get evaluated at the time project is loaded. The only point to take into consideration is that value returned by such expression must be of type character.&lt;/p&gt;
&lt;p align=&quot;center&quot; style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;/p&gt;
&lt;p align=&quot;center&quot; style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;The expression is evaluated only once and keeps its value until the HBIDE interface is closed. In case of any error, the expression string itself is returned.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="styleSheet">
<string>background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 rgba(255, 206, 170, 255), stop:1 rgba(255, 255, 255, 255));</string>
</property>
<property name="lineWrapMode">
<enum>QPlainTextEdit::NoWrap</enum>
</property>
@@ -352,6 +430,9 @@
<height>93</height>
</rect>
</property>
<property name="styleSheet">
<string>background-color: rgb(171, 171, 171);</string>
</property>
<property name="tabChangesFocus">
<bool>true</bool>
</property>
@@ -389,6 +470,18 @@ Pritpal Bedi</string>
<height>373</height>
</rect>
</property>
<property name="toolTip">
<string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p align=&quot;center&quot; style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;Here you can view in real-time the resultant .hbp output which will be supplied to HBMK2. This view may give you insight about your source layout and many other facts.&lt;/span&gt;&lt;/p&gt;
&lt;p align=&quot;center&quot; style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;&quot;&gt;&lt;/p&gt;
&lt;p align=&quot;center&quot; style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:14pt; font-weight:600; text-decoration: underline;&quot;&gt;Enjoy&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="styleSheet">
<string>background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 rgba(191, 234, 255, 255), stop:1 rgba(255, 255, 255, 255));</string>
</property>
<property name="lineWrapMode">
<enum>QPlainTextEdit::NoWrap</enum>
</property>
@@ -397,6 +490,38 @@ Pritpal Bedi</string>
</property>
</widget>
</widget>
<widget class="QWidget" name="tabCompilers">
<attribute name="title">
<string>Compilers</string>
</attribute>
<widget class="QPlainTextEdit" name="editCompilers">
<property name="geometry">
<rect>
<x>12</x>
<y>12</y>
<width>341</width>
<height>373</height>
</rect>
</property>
<property name="toolTip">
<string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p align=&quot;center&quot; style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;HBIDE employes the concept of keeping everything tied together. It means all complier specific environments are kept together in a convinient way and applied as per need.&lt;/span&gt;&lt;/p&gt;
&lt;p align=&quot;center&quot; style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;&quot;&gt;&lt;/p&gt;
&lt;p align=&quot;center&quot; style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;So here you view/edit all the environments you employ in your applications. At the time you will build the project, a list of stated environments will be presented to choose from.&lt;/span&gt;&lt;/p&gt;
&lt;p align=&quot;center&quot; style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;&quot;&gt;&lt;/p&gt;
&lt;p align=&quot;center&quot; style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;This opens up the possibility to experiment with different compilers without re-opening the IDE or setting up the envvars manually.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="styleSheet">
<string>background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 rgba(255, 255, 191, 255), stop:1 rgba(255, 255, 255, 255));</string>
</property>
<property name="lineWrapMode">
<enum>QPlainTextEdit::NoWrap</enum>
</property>
</widget>
</widget>
</widget>
<widget class="QPushButton" name="buttonCn">
<property name="geometry">
@@ -414,17 +539,17 @@ Pritpal Bedi</string>
<bool>false</bool>
</property>
</widget>
<widget class="QPushButton" name="buttonOk">
<widget class="QPushButton" name="buttonSave">
<property name="geometry">
<rect>
<x>140</x>
<y>444</y>
<width>241</width>
<width>117</width>
<height>24</height>
</rect>
</property>
<property name="text">
<string>OK</string>
<string>Save</string>
</property>
<property name="autoDefault">
<bool>false</bool>
@@ -433,6 +558,19 @@ Pritpal Bedi</string>
<bool>true</bool>
</property>
</widget>
<widget class="QPushButton" name="buttonSaveExit">
<property name="geometry">
<rect>
<x>264</x>
<y>444</y>
<width>117</width>
<height>24</height>
</rect>
</property>
<property name="text">
<string>Save_Exit</string>
</property>
</widget>
</widget>
<resources/>
<connections/>