From 4809712e1b8f91fd2249b3f3371e098d0884a155 Mon Sep 17 00:00:00 2001 From: Pritpal Bedi Date: Sun, 6 Jun 2010 10:08:55 +0000 Subject: [PATCH] 2010-06-06 02:43 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com) + contrib/hbide/resources/go-bottom.png + contrib/hbide/resources/go-down.png + contrib/hbide/resources/go-first.png + contrib/hbide/resources/go-jump.png + contrib/hbide/resources/go-last.png + contrib/hbide/resources/go-next.png + contrib/hbide/resources/go-prev.png + contrib/hbide/resources/go-top.png + contrib/hbide/resources/go-up.png + contrib/hbide/resources/hilight-all.png + contrib/hbide/resources/updown.ui + contrib/hbide/resources/updown.uic * contrib/hbqt/hbqt_hbqplaintextedit.cpp ! An important fix. * contrib/hbide/ideedit.prg * contrib/hbide/idefindreplace.prg * contrib/hbide/idetools.prg + Extended: in addition to next/previous buttons to naviagte occurances of selected text, three more buttons are added: "first", "last", occurance and "highlight all" occurances. + Implemented: macros parsing in "Parameters" list of "Tools and Utilities" protocol. Currently following macros are parsed: {source_fullname} => full sourcename of current edit instance {source_name} => mere name of current edit instance {source_path} => only path of source in current edit instance {%MY_ENV_VAR%} => result of hb_GetEnv( "MY_ENV_VAR" ) C:\temp\mycopy.bat {source_fullname} {source_path}\mysource.bkp => C:\temp\mycopy.bat C:\harbour\contrib\hbide\hbide.prg C:\harbour\contrib\hbide\mysource.bkp ( assuming that current editor is containe hbide.prg ) --- harbour/ChangeLog | 36 +++++++ harbour/contrib/hbide/ideedit.prg | 92 +++++++++++++++++- harbour/contrib/hbide/idefindreplace.prg | 45 ++++++--- harbour/contrib/hbide/idetools.prg | 62 +++++++++++- harbour/contrib/hbide/resources/go-bottom.png | Bin 0 -> 663 bytes harbour/contrib/hbide/resources/go-down.png | Bin 0 -> 683 bytes harbour/contrib/hbide/resources/go-first.png | Bin 0 -> 666 bytes harbour/contrib/hbide/resources/go-jump.png | Bin 0 -> 723 bytes harbour/contrib/hbide/resources/go-last.png | Bin 0 -> 685 bytes harbour/contrib/hbide/resources/go-next.png | Bin 0 -> 676 bytes harbour/contrib/hbide/resources/go-prev.png | Bin 0 -> 655 bytes harbour/contrib/hbide/resources/go-top.png | Bin 0 -> 636 bytes harbour/contrib/hbide/resources/go-up.png | Bin 0 -> 652 bytes .../contrib/hbide/resources/hilight-all.png | Bin 0 -> 203 bytes harbour/contrib/hbide/resources/updown.ui | 71 ++++++++++++++ harbour/contrib/hbide/resources/updown.uic | 92 ++++++++++++++++++ .../contrib/hbqt/hbqt_hbqplaintextedit.cpp | 6 +- 17 files changed, 388 insertions(+), 16 deletions(-) create mode 100644 harbour/contrib/hbide/resources/go-bottom.png create mode 100644 harbour/contrib/hbide/resources/go-down.png create mode 100644 harbour/contrib/hbide/resources/go-first.png create mode 100644 harbour/contrib/hbide/resources/go-jump.png create mode 100644 harbour/contrib/hbide/resources/go-last.png create mode 100644 harbour/contrib/hbide/resources/go-next.png create mode 100644 harbour/contrib/hbide/resources/go-prev.png create mode 100644 harbour/contrib/hbide/resources/go-top.png create mode 100644 harbour/contrib/hbide/resources/go-up.png create mode 100644 harbour/contrib/hbide/resources/hilight-all.png create mode 100644 harbour/contrib/hbide/resources/updown.ui create mode 100644 harbour/contrib/hbide/resources/updown.uic diff --git a/harbour/ChangeLog b/harbour/ChangeLog index e34de028d5..f6ee5f7967 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -17,6 +17,42 @@ past entries belonging to author(s): Viktor Szakats. */ +2010-06-06 02:43 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com) + + contrib/hbide/resources/go-bottom.png + + contrib/hbide/resources/go-down.png + + contrib/hbide/resources/go-first.png + + contrib/hbide/resources/go-jump.png + + contrib/hbide/resources/go-last.png + + contrib/hbide/resources/go-next.png + + contrib/hbide/resources/go-prev.png + + contrib/hbide/resources/go-top.png + + contrib/hbide/resources/go-up.png + + contrib/hbide/resources/hilight-all.png + + contrib/hbide/resources/updown.ui + + contrib/hbide/resources/updown.uic + + * contrib/hbqt/hbqt_hbqplaintextedit.cpp + ! An important fix. + + * contrib/hbide/ideedit.prg + * contrib/hbide/idefindreplace.prg + * contrib/hbide/idetools.prg + + Extended: in addition to next/previous buttons to naviagte + occurances of selected text, three more buttons are added: + "first", "last", occurance and "highlight all" occurances. + + + Implemented: macros parsing in "Parameters" list of + "Tools and Utilities" protocol. Currently following macros + are parsed: + {source_fullname} => full sourcename of current edit instance + {source_name} => mere name of current edit instance + {source_path} => only path of source in current edit instance + {%MY_ENV_VAR%} => result of hb_GetEnv( "MY_ENV_VAR" ) + C:\temp\mycopy.bat {source_fullname} {source_path}\mysource.bkp + => + C:\temp\mycopy.bat C:\harbour\contrib\hbide\hbide.prg C:\harbour\contrib\hbide\mysource.bkp + ( assuming that current editor is containe hbide.prg ) + 2010-06-06 00:50 UTC+0200 Viktor Szakats (harbour.01 syenar.hu) * INSTALL * external/sqlite3/Makefile diff --git a/harbour/contrib/hbide/ideedit.prg b/harbour/contrib/hbide/ideedit.prg index 7061655d39..b61eba5de6 100644 --- a/harbour/contrib/hbide/ideedit.prg +++ b/harbour/contrib/hbide/ideedit.prg @@ -132,6 +132,7 @@ CLASS IdeEdit INHERIT IdeObject DATA isColumnSelectionON INIT .F. DATA lReadOnly INIT .F. + DATA isHighLighted INIT .f. METHOD new( oEditor, nMode ) METHOD create( oEditor, nMode ) @@ -230,7 +231,9 @@ CLASS IdeEdit INHERIT IdeObject METHOD spaces2tabs() METHOD removeTrailingSpaces() METHOD formatBraces() - METHOD findEx( cText, nFlags ) + METHOD findEx( cText, nFlags, nStart ) + METHOD highlightAll( cText ) + METHOD unHighlight() ENDCLASS @@ -286,6 +289,7 @@ METHOD IdeEdit:create( oEditor, nMode ) 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 ) } ) Qt_Events_Connect( ::pEvents, ::qEdit, QEvent_FocusIn , {| | ::execKeyEvent( 104, QEvent_FocusIn ) } ) + Qt_Events_Connect( ::pEvents, ::qEdit, QEvent_Resize , {| | ::execKeyEvent( 106, QEvent_Resize ) } ) Qt_Events_Connect( ::pEvents, ::qEdit, QEvent_FocusOut , {| | ::execKeyEvent( 105, QEvent_FocusOut ) } ) Qt_Events_Connect( ::pEvents, ::qEdit, QEvent_MouseButtonDblClick, {|p| ::execKeyEvent( 103, QEvent_MouseButtonDblClick, p ) } ) @@ -473,6 +477,8 @@ METHOD IdeEdit:execEvent( nMode, oEdit, p, p1 ) ::oDK:setStatusText( SB_PNL_SELECTEDCHARS, len( ::getSelectedText() ) ) ::oUpDn:show() + ::unHighlight() + EXIT CASE cursorPositionChanged @@ -602,6 +608,10 @@ METHOD IdeEdit:execKeyEvent( nMode, nEvent, p, p1 ) ENDIF EXIT + CASE QEvent_Resize + ::oUpDn:show() + EXIT + CASE QEvent_Leave CASE QEvent_FocusOut ::suspendPrototype() @@ -1475,8 +1485,21 @@ METHOD IdeEdit:find( cText, nPosFrom ) /*----------------------------------------------------------------------*/ /* nFlags will decide the position, case sensitivity and direction */ -METHOD IdeEdit:findEx( cText, nFlags ) - LOCAL qCursor, lFound, cT +METHOD IdeEdit:findEx( cText, nFlags, nStart ) + LOCAL qCursor, lFound, cT, nPos + + DEFAULT nStart TO 0 + + qCursor := ::getCursor() + nPos := qCursor:position() + + IF nStart == 0 + // No need to move cursor + ELSEIF nStart == 1 + ::qEdit:moveCursor( QTextCursor_Start ) + ELSEIF nStart == 2 + ::qEdit:moveCursor( QTextCursor_End ) + ENDIF IF ( lFound := ::qEdit:find( cText, nFlags ) ) ::qEdit:centerCursor() @@ -1485,12 +1508,75 @@ METHOD IdeEdit:findEx( cText, nFlags ) ::qEdit:hbSetSelectionInfo( { qCursor:blockNumber(), qCursor:columnNumber() - len( cT ), ; qCursor:blockNumber(), qCursor:columnNumber(), 1 } ) ::qEdit:setTextCursor( qCursor ) + ELSE + qCursor:setPosition( nPos ) + ::qEdit:setTextCursor( qCursor ) ENDIF RETURN lFound /*----------------------------------------------------------------------*/ +METHOD IdeEdit:unHighlight() + LOCAL qCursor, nPos, lModified + + IF ::isHighLighted + ::isHighLighted := .f. + qCursor := ::getCursor() + nPos := qCursor:position() + lModified := QTextDocument():configure( ::qEdit:document() ):isModified() + ::qEdit:undo() + IF ! lModified + QTextDocument():configure( ::qEdit:document() ):setModified( .f. ) + ::oEditor:setTabImage( ::qEdit ) + ENDIF + qCursor:setPosition( nPos ) + ::qEdit:setTextCursor( qCursor ) + RETURN .t. + ENDIF + + RETURN .f. + +/*----------------------------------------------------------------------*/ + +METHOD IdeEdit:highlightAll( cText ) + LOCAL qDoc, qFormat, qCursor, qFormatHL, qCur, lModified + + IF ::unHighLight() + RETURN Self + ENDIF + + ::isHighLighted := .t. + + qDoc := ::oEditor:qDocument + lModified := QTextDocument():configure( ::qEdit:document() ):isModified() + + qCur := ::getCursor() + qCur:beginEditBlock() + + qCursor := QTextCursor():new( "QTextDocument", qDoc ) + qFormat := QTextCharFormat():from( qCursor:charFormat() ) + qFormatHL := qFormat + qFormatHL:setBackground( QBrush():new( "QColor", QColor():new( Qt_yellow ) ) ) + + DO WHILE .t. + qCursor := QTextCursor():from( qDoc:find( cText, qCursor, 0 ) ) + IF qCursor:isNull() + EXIT + ENDIF + qCursor:mergeCharFormat( qFormatHL ) + ENDDO + qCur:endEditBlock() + + IF ! lModified + QTextDocument():configure( ::qEdit:document() ):setModified( .f. ) + ::oEditor:setTabImage( ::qEdit ) + ENDIF + + RETURN Self + +/*----------------------------------------------------------------------*/ + METHOD IdeEdit:refresh() ::qEdit:hbRefresh() RETURN Self diff --git a/harbour/contrib/hbide/idefindreplace.prg b/harbour/contrib/hbide/idefindreplace.prg index b284b69a12..d5aeeeee49 100644 --- a/harbour/contrib/hbide/idefindreplace.prg +++ b/harbour/contrib/hbide/idefindreplace.prg @@ -138,14 +138,28 @@ METHOD IdeUpDown:create( oIde ) ::oUI:setWindowFlags( hb_bitOr( Qt_Tool, Qt_FramelessWindowHint ) ) ::oUI:setFocusPolicy( Qt_NoFocus ) - ::oUI:setMaximumWidth( 55 ) + //::oUI:setMaximumWidth( 75 ) + //::oUI:setMaximumHeight( 25 ) - ::oUI:q_buttonUp:setIcon( hbide_image( "previous" ) ) - ::oUI:q_buttonUp:setToolTip( "Find Previous" ) - ::oUI:signal( "buttonUp", "clicked()", {|| ::execEvent( "buttonUp_clicked" ) } ) - ::oUI:q_buttonDown:setIcon( hbide_image( "next" ) ) - ::oUI:q_buttonDown:setToolTip( "Find Next" ) - ::oUI:signal( "buttonDown", "clicked()", {|| ::execEvent( "buttonDown_clicked" ) } ) + ::oUI:q_buttonPrev:setIcon( hbide_image( "go-prev" ) ) + ::oUI:q_buttonPrev:setToolTip( "Find Previous" ) + ::oUI:signal( "buttonPrev", "clicked()", {|| ::execEvent( "buttonPrev_clicked" ) } ) + // + ::oUI:q_buttonNext:setIcon( hbide_image( "go-next" ) ) + ::oUI:q_buttonNext:setToolTip( "Find Next" ) + ::oUI:signal( "buttonNext", "clicked()", {|| ::execEvent( "buttonNext_clicked" ) } ) + // + ::oUI:q_buttonFirst:setIcon( hbide_image( "go-first" ) ) + ::oUI:q_buttonFirst:setToolTip( "Find First" ) + ::oUI:signal( "buttonFirst", "clicked()", {|| ::execEvent( "buttonFirst_clicked" ) } ) + // + ::oUI:q_buttonLast:setIcon( hbide_image( "go-last" ) ) + ::oUI:q_buttonLast:setToolTip( "Find Last" ) + ::oUI:signal( "buttonLast", "clicked()", {|| ::execEvent( "buttonLast_clicked" ) } ) + // + ::oUI:q_buttonAll:setIcon( hbide_image( "hilight-all" ) ) + ::oUI:q_buttonAll:setToolTip( "Highlight All" ) + ::oUI:signal( "buttonAll", "clicked()", {|| ::execEvent( "buttonAll_clicked" ) } ) RETURN Self @@ -162,11 +176,20 @@ METHOD IdeUpDown:execEvent( cEvent, p ) IF !empty( cText ) SWITCH cEvent - CASE "buttonUp_clicked" - oEdit:findEx( cText, QTextDocument_FindBackward ) + CASE "buttonPrev_clicked" + oEdit:findEx( cText, QTextDocument_FindBackward, 0 ) EXIT - CASE "buttonDown_clicked" - oEdit:findEx( cText, 0 ) + CASE "buttonNext_clicked" + oEdit:findEx( cText, 0, 0 ) + EXIT + CASE "buttonFirst_clicked" + oEdit:findEx( cText, 0, 1 ) + EXIT + CASE "buttonLast_clicked" + oEdit:findEx( cText, QTextDocument_FindBackward, 2 ) + EXIT + CASE "buttonAll_clicked" + oEdit:highlightAll( cText ) EXIT ENDSWITCH ENDIF diff --git a/harbour/contrib/hbide/idetools.prg b/harbour/contrib/hbide/idetools.prg index a655bca8ca..f785405e4e 100644 --- a/harbour/contrib/hbide/idetools.prg +++ b/harbour/contrib/hbide/idetools.prg @@ -112,6 +112,8 @@ CLASS IdeToolsManager INHERIT IdeObject METHOD addPanelsMenu( cPrompt ) METHOD showOutput( cOut, mp2, oHbp ) METHOD finished( nEC, nES, oHbp ) + METHOD parseParams( cP ) + METHOD macro2value( cMacro ) ENDCLASS @@ -405,7 +407,7 @@ METHOD IdeToolsManager:execToolByParams( cCmd, cParams, cStartIn, lCapture, lOpe ELSE cArg := "" ENDIF - cArg += cParams + cArg += ::parseParams( cParams ) IF lCapture IF lOpen @@ -448,6 +450,7 @@ METHOD IdeToolsManager:execTool( ... ) cCmd := hbide_pathToOSPath( aParam[ 1 ] ) cParams := aParam[ 2 ] cParams := iif( "http://" $ lower( cParams ), cParams, hbide_pathToOSPath( cParams ) ) + cParams := ::parseParams( cParams ) cStayIn := hbide_pathToOSPath( aParam[ 3 ] ) lCapture := iif( hb_isLogical( aParam[ 4 ] ), aParam[ 4 ], aParam[ 4 ] == "YES" ) lOpen := iif( hb_isLogical( aParam[ 5 ] ), aParam[ 5 ], aParam[ 5 ] == "YES" ) @@ -483,3 +486,60 @@ METHOD IdeToolsManager:finished( nEC, nES, oHbp ) /*----------------------------------------------------------------------*/ +METHOD IdeToolsManager:parseParams( cP ) + LOCAL lHas, n, n1, cMacro + + IF !empty( cP ) + DO WHILE .t. + lHas := .f. + IF ( n := at( "{" , cP ) ) > 0 + IF ( n1 := at( "}" , cP ) ) > 0 + lHas := .t. + cMacro := substr( cP, n + 1, n1 - n - 1 ) + cP := substr( cP, 1, n - 1 ) + ::macro2value( cMacro ) + substr( cP, n1 + 1 ) + ENDIF + ENDIF + IF ! lHas + EXIT + ENDIF + ENDDO + ENDIF + + RETURN cP + +/*----------------------------------------------------------------------*/ + +METHOD IdeToolsManager:macro2value( cMacro ) + LOCAL cVal, cMacroL, oEdit, cFile, cPath, cExt + + cMacro := alltrim( cMacro ) + cMacroL := lower( cMacro ) + + oEdit := ::oEM:getEditorCurrent() + IF !empty( oEdit ) + hb_fNameSplit( oEdit:sourceFile, @cPath, @cFile, @cExt ) + ELSE + cPath := ""; cFile := ""; cExt := "" + ENDIF + + DO CASE + CASE cMacroL == "source_fullname" + cVal := hbide_pathToOSPath( cPath + cFile + cExt ) + + CASE cMacroL == "source_name" + cVal := cFile + cExt + + CASE cMacroL == "source_path" + cVal := hbide_pathToOSPath( cPath ) + + CASE "%" $ cMacro + cVal := hb_GetEnv( strtran( cMacro, "%", "" ) ) + + OTHERWISE + cVal := cMacro + + ENDCASE + + RETURN cVal + +/*----------------------------------------------------------------------*/ diff --git a/harbour/contrib/hbide/resources/go-bottom.png b/harbour/contrib/hbide/resources/go-bottom.png new file mode 100644 index 0000000000000000000000000000000000000000..2c5a80385cca2f80f829819f25e943bee4fbb759 GIT binary patch literal 663 zcmV;I0%-k-P)^@R5*>5 zQafl0i$fhnu!z>dT@ZRl2cb)*4pLDG zZG=odu7yxbG&DksLWh*3HCi!E@4f%ybBM&$q+$>J%i-gE|2f}bM1)ohPMBp7qUZ#M ziZjW3S}CJ#h!C}JK7mjILiv!2Lnsa|Jv>a^ZWC@70Kk}r+-e%0*oG^%;PEY-Ju=$y zQ(8wB42=DLU;tx~itk0BkqZ%lKmgIM0>;oi(;G18uk)G8m+}(D!pA`x$GW$IlKT-XC=du~Fhe@}W5cL!R;jp>uMpvSGepPcH4u{1 zFCV)GvtXJgHvG>pEgb<%Lm;Fh9zKRhs1Mm!vo0wl9h=v7T*0wCML#^(K9-8dDwfOPh0opXQOv3a5686BHXl{Qv0xety%&@%$fU@!t2&O}F$dq3~5 zSJ&non@{aHV_O3h#uf_mOTDqf@uT4c(+v&P(of1QI%OprzW-Sy$L2MXNX}+oxQB2O x2h<5XpL^yi`NwxFSmKUBf0KK`E>-@2`~s>b4Ju;H8xa5i002ovPDHLkV1l6R8=C+C literal 0 HcmV?d00001 diff --git a/harbour/contrib/hbide/resources/go-down.png b/harbour/contrib/hbide/resources/go-down.png new file mode 100644 index 0000000000000000000000000000000000000000..3dd7fccdf06321880f69d65631a363e4b813ba04 GIT binary patch literal 683 zcmV;c0#yBpP)i}4~9FCHr5K@{qtRq-ka(iJ?ZP=uTm zA)-=KTXM11RS2~$6nm&uv{cQSuKf$?CbP4jht?XK7~kVJ-#qia^UW|KLbc-EY953z z>WRV7dqi_}NvUZfgl}C)!*&F0M_|b+V97E80CykVr~%gk05Haon|Y41T|%KagO77# zXg_$ht|?xxSRKlv`0H+L2mld?91sx{?rsQB5|>q-9K_b`yI?say^?H5vawt?QN0%L zQr8VKjyDQ9NJT;|(TgXq`xKW7BF8I9f|vxjL{S!?dO5hlaQ@UaF9;B#f^;@jnqQnt zF(N{uTTQn`k0*~rlb-kaSCCvlqKp-L5!3TI5NItHN89$(7@Zg?Pfm^Zz3vh1d@XXv z%dw2{#h9WC`nbQFn~GCVFR$PcMeY21IKx0j@A8ZjM9Y6Ue=LTlryr z>(@2W+wdKbgN~t*f$yfVK)ah_*yWGG{JKoJQ9bX-)!YpMx+aPwk<4VDSzECWL8lc@ z`=3~j{FA#{Y~yeIt$3GuF4Da7HUP}#KVRBt{l5SJIDAFD4*hqp0JED290h! zVU0NBR?cr`p~-QQ_EsWfBH@EQ`Nc0GKMZR^J`BSAxf26@WBs>$$pHKvI7xf7HPn_K z?i~+>+atsnZ|Jg4VBK;@=p(qz`$(+u}xd3d6n3+*N?MDJ7VE8(JO(EzhB^&{0eRn zE*?mNaRLBn_0NHlrd}YI5_3+{j?R9X$}BA9ySqF4x2)2Bd@j8KF~Xg@H(lYH;N~^f z^&poLB>)3X(jI*{c`tpTvp3}I9wGn`t_kK+f;Jb)x5~Mcm=MA{nSJ@R@P7JTO$g5q z)>vRYlF^9H&d+2YJejC8!ZrPk8zPM`j$uE{Us}u$`^<2oGynhq07*qoM6N<$f}(68 A0{{R3 literal 0 HcmV?d00001 diff --git a/harbour/contrib/hbide/resources/go-jump.png b/harbour/contrib/hbide/resources/go-jump.png new file mode 100644 index 0000000000000000000000000000000000000000..1d218c388b35c8720f623c9a0ad89e4d26beeea3 GIT binary patch literal 723 zcmV;^0xbQBP)gNmRQ(IQ2% zNG7^}6DKT8pUmw{ZRXO%ahpj;$Zg04x;uK}h^cq_Vl}(QGz*qQ7rI z-o*xFW#J|OTs=XGZ&X%QfTClr0}EIUXk%oxW9vJPt*-)SKlJrWF{{X=b9io!;lwA_ zSB4crc^<&B_yOESh(~Z)2tY;J{jGQ0I0w z>{eB4!YB%OJa`RbK#Xu8d<=k*(eL!W?h+9>p9h$RTv5t8zBh6}4JBiwz2t1KC{Rjm zSu?#ayTwSZ!?AT+UY_avZ6c=gd8}9J%9{xILI4DOA?nJTh`xRxMsl5wt=s;JFwe=0 zU?9}k9NA}m75 zlTApJQ51%s``vp#$I+r-vIvbVCs0U1TC~hLW^i)Pz0@_MiE-%s!hV+qFhuE z1Zm_VBKtFl7NgQ1VznuPg3$S4O4HHl`{uj1g=uPI)C+fW&f$UkzUK&QElXA3suR|5 zJ<;J``J?$u(U`UXPO+vn)Kyk&?u@qR+tHXVUkqlzip{BLi%w!$yRaxEd1FmzWb`T3ks8r@G#>8hztmaZq7PV0 zbE3nanxCyZt880y97jl`qmV)&9f_2Z=U?uj9L4I=^=w>K!{FN|e&4{&F>6dCFan?e zj0t%B{u)}App{FB8^U#6l+*|z$>u-tJ)Ndz>rP!+QC-#j=G5`zmT}-uUontb9=r!a)e|uV|)6#W_-^(UF2DL6`zGMn!p-|9fRGGizh?e=&U5++$Mxhv T)(+xx00000NkvXXu0mjfgrPr^ literal 0 HcmV?d00001 diff --git a/harbour/contrib/hbide/resources/go-next.png b/harbour/contrib/hbide/resources/go-next.png new file mode 100644 index 0000000000000000000000000000000000000000..6ef8de76e0f5bf01c09da24a07c61cfe558d7a4b GIT binary patch literal 676 zcmV;V0$crwP)5 zl1oTbVI0MO-{a21M#B_R#9l-oXcPp6(?)2~B7y{4Mu9@O$#RS~LMu0okc%jC6BNCq zMPfd15iMrWDWnuP(IPA}ow0!)<9P4f`?UyPGZWN-v-$pq!}*{8hcSkHhP!mEu~WAd zo8?nd1jeIrclCk3aF;a@j#!~$nl%(P0Jzf98$5aR>}dqE;fU4n-v&x*nhu}wwKrd{ z4f;b9;fU2%OeY#6`YVQ=TOJkJo9%;vsn26nmF>ePxAA!V*2;(ZnPFo%AB#FaHw-$p z>A83xDHKX5gpddX0EtgSc(|1Lcd)Cxp7`{*Gd4M}fH9|HQD+7~1Grv}*vDrmsZm0K z5C{Q60m5V1o+G_9&%wGQR!!BO+NWc8C&Ce{BNlb~H9*c=C7oHocC*-S7Ns<$C1sQZ zLijB|M!48sj(1C=)P(9pYjao0(5pv%$FEw)G{Dl2Io>Bnm(2P=eF~WywGEfv2*dEE+1BNH1p0gO_(!va6Ym6#!ZeU0XL$ zmOyFA$XqYlC#eqYr*8WRCf~&E#M}5+`DMhod1o}n6nu_w#4?v#yZPlMNv2Zf#pvLQ?bsc$8%}?|wxEMGI60fdRAO~{ zc52bv6uF?Yza^+BugrY=o*FhT7dA)!rvyS0Urwj)#iE6g^YI%&-U+mBcICDJ0000< KMNUMnLSTZVNH5j^ literal 0 HcmV?d00001 diff --git a/harbour/contrib/hbide/resources/go-prev.png b/harbour/contrib/hbide/resources/go-prev.png new file mode 100644 index 0000000000000000000000000000000000000000..659cd90d7f80488a8a6a2c12f6f9e5ad98720461 GIT binary patch literal 655 zcmV;A0&x9_P)_fWZPlDqB9?#%D^>oA$FjP8SXdVl!5?|TnYO4RbBH?=GA zTUy2|reO<?=@r%h} zW6#cJQfPC~s>mwxzQ}>D!BbZalds_8_h}r7_JCAa@f4F))r6lUrCf(hQ;9=;jU5L& z+1FnmP_XjQREAhnABYqX00}@!0U-tMq%XJx@e~^h8rvWApSa|&uWz9Di?6_?1E%N@ zl4EB68Hfl3f`qGnd$iXb;n;2VsHt)P`R?O`My|Agci-NCF&}hI2Ui3vQGjU{P_$N1 zwo6b*g`Wk{x;wF^0p~U>`wvX#H%c-OZ~=##s0b5Wa!4-09SO%4;Ep?Tu9$V#I5TQr z&Mtkq{`h6ugzb~9dlQg)8A30C1pt3Qg&t7B3bbY+H`>YWThbX9oF#2!=nK7F-=6arTX3U&+XWy2~<%(BYwFX|c pI#R>7P%^)q3wROKeC1m2{1L zlTS!gQ51)N=l*%UXM%2Q)F>(p+zgmdf)8?0hB*|-MC$(Y7uSP)<6hBvp%pb#VTA`mW=f8m3=A+VF$gz+5g|*fW9a=~fVCub#hVuLlKG!y<+UFWVr@ zx}I*`6F`LLL;b0)!-tO1O8E;`N}ti*)<%831DzmD?+S1|ojsB`IeM-?t-lsNLXv_Y zi4Wgq(ARs$>S*s8bv>PJ3UEE0w6rsoxp>?8Sy_bP08%N`;|ezT7d{op$Nz_$1Jr8{;^A=dpOl#Zx*NxBimVOIKWYqfyp}XTIm^nr{$U_L)(rG}9&-Pp{q+Q5 zlTT<9K@`TnH@h?0jfHw>O#jh>1nt2m6SAzrkW<%*%=Q}tRboP9pC%r$9&(LA+0sq)ybQD9srhR zz3Fxu)^6aqJl)?FN%nOeOgb)4?+M_zJQ@)DvRBSb2FFH|!GH*69hXP{3*flC1BAti zbJNzAm&ca3iTKDR3xq|-Y2`eKx?tij|4I5$vH1yqf%5H^Fb8J54jK)5$VM-C5%i8b<|k&Kxh=#FG>Ox&>r z4?sb}hlkg>1-vahgJcyDBP0eg&{{(&pkA-x@zeQAv9vj35<}`!ZpEItce&w-qk8xH z6RRw9@QrP7!N5#{!3lE@ZdYYZTfgiFi6Lb!&3aDLCbZTHrTP~zgJ5t59%w*hO}1rz{XKI3&T#%lrSM zCd(;fA(I9B_Q|b&cI=qj1e>m^Icx?-POW}bO)LMW-9EskaMJLRX+s0I!I#8c52lE_ zC_E52!g_vR!^>uN{-#WJcJ>X48w?arv1)`d?`^!!;HD|pae&QQWcq;^=L-z4b})3m zEh%F(awy_`8{04~qJU`)+W{WMQ!H$3Z`dX + + Form + + + + 0 + 0 + 135 + 24 + + + + Form + + + + 1 + + + 0 + + + 2 + + + 0 + + + 2 + + + + + ... + + + + + + + ... + + + + + + + ... + + + + + + + ... + + + + + + + ... + + + + + + + + diff --git a/harbour/contrib/hbide/resources/updown.uic b/harbour/contrib/hbide/resources/updown.uic new file mode 100644 index 0000000000..c397e1defa --- /dev/null +++ b/harbour/contrib/hbide/resources/updown.uic @@ -0,0 +1,92 @@ +/******************************************************************************** +** Form generated from reading UI file 'updown.ui' +** +** Created: Sun Jun 6 00:57:17 2010 +** by: Qt User Interface Compiler version 4.6.2 +** +** WARNING! All changes made in this file will be lost when recompiling UI file! +********************************************************************************/ + +#ifndef UPDOWN_H +#define UPDOWN_H + +#include +#include +#include +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class Ui_Form +{ +public: + QHBoxLayout *horizontalLayout; + QToolButton *buttonNext; + QToolButton *buttonPrev; + QToolButton *buttonLast; + QToolButton *buttonFirst; + QToolButton *buttonAll; + + void setupUi(QWidget *Form) + { + if (Form->objectName().isEmpty()) + Form->setObjectName(QString::fromUtf8("Form")); + Form->resize(135, 24); + horizontalLayout = new QHBoxLayout(Form); + horizontalLayout->setSpacing(1); + horizontalLayout->setObjectName(QString::fromUtf8("horizontalLayout")); + horizontalLayout->setContentsMargins(0, 2, 0, 2); + buttonNext = new QToolButton(Form); + buttonNext->setObjectName(QString::fromUtf8("buttonNext")); + + horizontalLayout->addWidget(buttonNext); + + buttonPrev = new QToolButton(Form); + buttonPrev->setObjectName(QString::fromUtf8("buttonPrev")); + + horizontalLayout->addWidget(buttonPrev); + + buttonLast = new QToolButton(Form); + buttonLast->setObjectName(QString::fromUtf8("buttonLast")); + + horizontalLayout->addWidget(buttonLast); + + buttonFirst = new QToolButton(Form); + buttonFirst->setObjectName(QString::fromUtf8("buttonFirst")); + + horizontalLayout->addWidget(buttonFirst); + + buttonAll = new QToolButton(Form); + buttonAll->setObjectName(QString::fromUtf8("buttonAll")); + + horizontalLayout->addWidget(buttonAll); + + + retranslateUi(Form); + + QMetaObject::connectSlotsByName(Form); + } // setupUi + + void retranslateUi(QWidget *Form) + { + Form->setWindowTitle(QApplication::translate("Form", "Form", 0, QApplication::UnicodeUTF8)); + buttonNext->setText(QApplication::translate("Form", "...", 0, QApplication::UnicodeUTF8)); + buttonPrev->setText(QApplication::translate("Form", "...", 0, QApplication::UnicodeUTF8)); + buttonLast->setText(QApplication::translate("Form", "...", 0, QApplication::UnicodeUTF8)); + buttonFirst->setText(QApplication::translate("Form", "...", 0, QApplication::UnicodeUTF8)); + buttonAll->setText(QApplication::translate("Form", "...", 0, QApplication::UnicodeUTF8)); + } // retranslateUi + +}; + +namespace Ui { + class Form: public Ui_Form {}; +} // namespace Ui + +QT_END_NAMESPACE + +#endif // UPDOWN_H diff --git a/harbour/contrib/hbqt/hbqt_hbqplaintextedit.cpp b/harbour/contrib/hbqt/hbqt_hbqplaintextedit.cpp index ec3136cd15..4c9a7bfb81 100644 --- a/harbour/contrib/hbqt/hbqt_hbqplaintextedit.cpp +++ b/harbour/contrib/hbqt/hbqt_hbqplaintextedit.cpp @@ -987,8 +987,11 @@ bool HBQPlainTextEdit::hbKeyPressSelection( QKeyEvent * event ) if( ctrl && event->text().isEmpty() ) { + #if 0 event->ignore(); return true; + #endif + return false; } if( ctrl && ( k == Qt::Key_C || k == Qt::Key_V || k == Qt::Key_X || @@ -1248,12 +1251,13 @@ bool HBQPlainTextEdit::hbKeyPressSelection( QKeyEvent * event ) void HBQPlainTextEdit::keyPressEvent( QKeyEvent * event ) { +HB_TRACE( HB_TR_ALWAYS, ( "keyPressEvent %i 000", event->key() ) ); if( hbKeyPressSelection( event ) ) { QApplication::processEvents(); return; } - +HB_TRACE( HB_TR_ALWAYS, ( "keyPressEvent %i", event->key() ) ); if( c && c->popup()->isVisible() ) { // The following keys are forwarded by the completer to the widget