2010-15:14 07:01 UTC-0800 Pritpal Bedi (pritpal@vouchcac.com)

* contrib/hbide/resources/curlinehilight.png
    ! Some refinement though not sufficient yet.

  * contrib/hbqt/hbqt_hbqplaintextedit.cpp
  * contrib/hbide/ideedit.prg
    ! More optimization and behavioral changes is selected text.
      Still litte more work to be done.

  * contrib/hbide/idesaveload.prg
    ! Reintroduced "settings.ide" .ini like file, placed along 
      hbide.ini", to hold Qt written hbIDE settings. This reversal 
      is triggered by the fact that, under unknown circumstances, 
      Qt just mangles the hbIDE.ini contents to a level that a lot of 
      information it stores is lost. This has happened to me many 
      times after the settings info was made to be retained in 
      hbIDE.ini itself. Please do not change it until I come up 
      with the way to read and write byte arrays per Qt.
      Below is the little snapshot what Qt inserts some info 
      inside existing other text not meant for "idesettings" keyword:

      =================================
      [FIND]
      find_1=setselection
      find_2="imagesfind_3=images/"
      find_4=":/\r\nfind_5=ShowCaretAtCurrentPosition\r\nfind_6=moveExtendsSelection\r\nfind_7=oDlg\r\nfind_8[ MORE LIKE IT ] +
      ,,,,,\r\n \r\n[General]\r\n \r\n"

      [ ALL OTHER SECTIONS BELOW MANGLED AS ABOVE ]

      [General]
      hbidesettings="@ByteArray(  [ PLUS MORE, IT IS CORRECT ]
      =================================
This commit is contained in:
Pritpal Bedi
2010-05-14 14:17:07 +00:00
parent 8993f567a9
commit 0d35f1c42b
5 changed files with 104 additions and 32 deletions

View File

@@ -17,6 +17,40 @@
past entries belonging to author(s): Viktor Szakats.
*/
2010-15:14 07:01 UTC-0800 Pritpal Bedi (pritpal@vouchcac.com)
* contrib/hbide/resources/curlinehilight.png
! Some refinement though not sufficient yet.
* contrib/hbqt/hbqt_hbqplaintextedit.cpp
* contrib/hbide/ideedit.prg
! More optimization and behavioral changes is selected text.
Still litte more work to be done.
* contrib/hbide/idesaveload.prg
! Reintroduced "settings.ide" .ini like file, placed along
hbide.ini", to hold Qt written hbIDE settings. This reversal
is triggered by the fact that, under unknown circumstances,
Qt just mangles the hbIDE.ini contents to a level that a lot of
information it stores is lost. This has happened to me many
times after the settings info was made to be retained in
hbIDE.ini itself. Please do not change it until I come up
with the way to read and write byte arrays per Qt.
Below is the little snapshot what Qt inserts some info
inside existing other text not meant for "idesettings" keyword:
=================================
[FIND]
find_1=setselection
find_2="imagesfind_3=images/"
find_4=":/\r\nfind_5=ShowCaretAtCurrentPosition\r\nfind_6=moveExtendsSelection\r\nfind_7=oDlg\r\nfind_8[ MORE LIKE IT ] +
,,,,,\r\n \r\n[General]\r\n \r\n"
[ ALL OTHER SECTIONS BELOW MANGLED AS ABOVE ]
[General]
hbidesettings="@ByteArray( [ PLUS MORE, IT IS CORRECT ]
=================================
2010-05-14 15:12 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbapicom.h
* minor modification in defined names

View File

@@ -869,7 +869,7 @@ METHOD IdeEdit:insertBlockContents( aCord )
nW := nR - nL
cKey := chr( XbpQKeyEventToAppEvent( aCord[ 5 ] ) )
cKey := chr( XbpQKeyEventToAppEvent( aCord[ 7 ] ) )
qCursor := QTextCursor():from( ::qEdit:textCursor() )
qCursor:beginEditBlock()

View File

@@ -71,16 +71,24 @@
/*----------------------------------------------------------------------*/
STATIC FUNCTION hbide_saveSettings( oIde )
LOCAL cPath
hbqt_QMainWindow_saveSettings( oIde:cProjIni, "hbidesettings", oIde:oDlg:oWidget:pPtr )
hb_fNameSplit( oIde:cProjIni, @cPath )
hbqt_QMainWindow_saveSettings( cPath + "settings.ide", "hbidesettings", oIde:oDlg:oWidget:pPtr )
* hbqt_QMainWindow_saveSettings( oIde:cProjIni, "hbidesettings", oIde:oDlg:oWidget:pPtr )
RETURN nil
/*----------------------------------------------------------------------*/
FUNCTION hbide_restSettings( oIde )
LOCAL cPath
hbqt_QMainWindow_restSettings( oIde:cProjIni, "hbidesettings", oIde:oDlg:oWidget:pPtr )
hb_fNameSplit( oIde:cProjIni, @cPath )
hbqt_QMainWindow_restSettings( cPath + "settings.ide", "hbidesettings", oIde:oDlg:oWidget:pPtr )
* hbqt_QMainWindow_restSettings( oIde:cProjIni, "hbidesettings", oIde:oDlg:oWidget:pPtr )
RETURN nil

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 415 B

View File

@@ -489,7 +489,7 @@ void HBQPlainTextEdit::mousePressEvent( QMouseEvent *event )
void HBQPlainTextEdit::mouseReleaseEvent( QMouseEvent *event )
{
selectionState = 0;
selectionState = 1;
setCursorWidth( 1 );
QPlainTextEdit::mouseReleaseEvent( event );
}
@@ -576,6 +576,8 @@ bool HBQPlainTextEdit::hbKeyPressColumnSelection( QKeyEvent * event )
selectionMode = selectionMode_stream;
}
bool bClear = false;
if( selectionMode == selectionMode_column || selectionMode == selectionMode_stream )
{
QTextCursor c( textCursor() );
@@ -612,7 +614,7 @@ bool HBQPlainTextEdit::hbKeyPressColumnSelection( QKeyEvent * event )
{
columnEnds--;
columnEnds = columnEnds < 0 ? 0 : columnEnds;
update();
repaint();
event->ignore();
return true;
}
@@ -622,7 +624,20 @@ bool HBQPlainTextEdit::hbKeyPressColumnSelection( QKeyEvent * event )
if( c.columnNumber() <= columnEnds )
{
columnEnds++;
update();
#if 0 /* Tobe Matured */
int w = fontMetrics().averageCharWidth();
if( ( columnEnds * w ) > viewport()->width() )
{
int v = horizontalScrollBar()->value();
horizontalScrollBar()->setValue( v + w );
if( horizontalScrollBar()->value() == v )
{
horizontalScrollBar()->setMaximum( horizontalScrollBar()->maximum() + w );
horizontalScrollBar()->setValue( v + w );
}
}
#endif
repaint();
event->ignore();
return true;
}
@@ -671,29 +686,22 @@ bool HBQPlainTextEdit::hbKeyPressColumnSelection( QKeyEvent * event )
event->ignore();
return true;
} // if( shift && isNavableKey( k ) )
else if( isNavableKey( k ) )
{
emit selectionChanged();
setCursorWidth( 1 );
selectionState = 0;
}
else if( selectionMode == selectionMode_column )
{
if( ! ctrl && k >= ' ' && k < 127 && columnBegins >= 0 )
{
if( ( ( columnBegins == columnEnds ) && ( col == columnBegins + 1 ) && ( row == rowEnds ) )
||
isCursorInSelection() )
if( ( columnBegins == columnEnds && selectionState > 0 ) || isCursorInSelection() )
{
PHB_ITEM p1 = hb_itemPutNI( NULL, 21013 );
PHB_ITEM p2 = hb_itemNew( NULL );
hb_arrayNew( p2, 5 );
hb_arraySetNI( p2, 1, rowBegins );
hb_arraySetNI( p2, 2, columnBegins );
hb_arraySetNI( p2, 3, rowEnds );
hb_arraySetNI( p2, 4, columnEnds );
hb_arraySetPtr( p2, 5, event );
hb_arrayNew( p2, 7 );
hb_arraySetNI( p2, 1, rowBegins );
hb_arraySetNI( p2, 2, columnBegins );
hb_arraySetNI( p2, 3, rowEnds );
hb_arraySetNI( p2, 4, columnEnds );
hb_arraySetNI( p2, 5, selectionMode );
hb_arraySetNI( p2, 6, selectionState );
hb_arraySetPtr( p2, 7, event );
hb_vmEvalBlockV( block, 2, p1, p2 );
hb_itemRelease( p1 );
hb_itemRelease( p2 );
@@ -703,12 +711,12 @@ bool HBQPlainTextEdit::hbKeyPressColumnSelection( QKeyEvent * event )
columnBegins++;
columnEnds++;
}
update();
repaint();
event->ignore();
return true;
}
}
if( ! ctrl && ( k == Qt::Key_Backspace || k == Qt::Key_Delete ) && columnBegins >= 0 )
if( ! ctrl && ( k == Qt::Key_Backspace || k == Qt::Key_Delete ) && columnBegins >= 0 && selectionState > 0 )
{
hbCut( k );
@@ -721,28 +729,47 @@ bool HBQPlainTextEdit::hbKeyPressColumnSelection( QKeyEvent * event )
{
columnEnds = columnBegins;
}
update();
repaint();
event->ignore();
return true;
}
else
{
bClear = true;
}
}
else if( selectionMode == selectionMode_stream || selectionMode == selectionMode_line )
{
if( selectionState > 0 && ! ctrl && k == Qt::Key_Delete )
{
hbCut( k );
update();
repaint();
selectionState = 0;
event->ignore();
return true;
}
else
{
bClear = true;
}
}
else
{
bClear = true;
}
if( bClear )
{
if( selectionState > 0 )
{
emit selectionChanged();
}
setCursorWidth( 1 );
selectionState = 0;
if( columnEnds == columnBegins )
{
hbClearColumnSelection();
}
}
}
else if( selectionMode == selectionMode_line )
@@ -1090,10 +1117,11 @@ void HBQPlainTextEdit::lineNumberAreaPaintEvent( QPaintEvent *event )
void HBQPlainTextEdit::hbPaintSelection( QPaintEvent * event )
{
HB_SYMBOL_UNUSED( event );
//HB_TRACE( HB_TR_ALWAYS, ( " 1 " ) );
#if 0
HB_TRACE( HB_TR_ALWAYS, ( "%i %i %i %i %i %i %i %i ", event->rect().x(), event->rect().y(), event->rect().width(), event->rect().height(),
cursorRect().x(), cursorRect().y(), cursorRect().width(), cursorRect().height() ) );
HB_TRACE( HB_TR_ALWAYS, ( "%i %i %i %i %i %i %i %i",
event->rect().x(), event->rect().y(), event->rect().width(), event->rect().height(),
cursorRect().x() , cursorRect().y() , cursorRect().width() , cursorRect().height() ) );
#endif
if( rowBegins >= 0 && rowEnds >= 0 )
{
@@ -1103,10 +1131,11 @@ HB_TRACE( HB_TR_ALWAYS, ( "%i %i %i %i %i %i %i %i ", event->rect().x(), event->
int re = rowBegins <= rowEnds ? rowEnds : rowBegins;
QTextCursor ct = cursorForPosition( QPoint( 2,2 ) );
int t = ct.blockNumber();
int c = ct.columnNumber();
int t = ct.blockNumber();
int c = ct.columnNumber();
int fontHeight = fontMetrics().height();
int b = t + ( viewport()->height() / fontHeight ) + 1 ; /* just in case */
int b = t + ( viewport()->height() / fontHeight ) + 1;
re = re > b ? b : re;
if( re >= t && rb < b )
@@ -1183,6 +1212,7 @@ HB_TRACE( HB_TR_ALWAYS, ( "%i %i %i %i %i %i %i %i ", event->rect().x(), event->
}
}
}
//HB_TRACE( HB_TR_ALWAYS, ( " 2 " ) );
}
/*----------------------------------------------------------------------*/