Version: (using KDE KDE 3.5.4) Installed from: SuSE RPMs Currently KSpread jumps to cells given in sum formula: =sum(b2:c5) When I set cursor in this formula at "b" KSpread jumps to b2 cell. It is really annoying, please add option to turn off such behaviour.
SVN commit 586306 by nikolaus: Selection Don't jump to chosen cell (range) on entering the formula. BUG: 134276 M +4 -0 branches/koffice/1.6/koffice/kspread/kspread_editors.cc M +8 -1 branches/koffice/1.6/koffice/kspread/kspread_view.cc M +1 -0 branches/koffice/1.6/koffice/kspread/kspread_view.h M +4 -0 trunk/koffice/kspread/Editors.cpp M +8 -1 trunk/koffice/kspread/View.cpp M +1 -0 trunk/koffice/kspread/View.h --- branches/koffice/1.6/koffice/kspread/kspread_editors.cc #586305:586306 @@ -743,6 +743,8 @@ { d->highlighter->resetRangeChanged(); + disconnect( d->canvas->choice(), SIGNAL(changed(const Region&)), + d->canvas->view(), SLOT(slotScrollChoice(const Region&)) ); d->canvas->doc()->emitBeginOperation(); setUpdateChoice(false); @@ -781,6 +783,8 @@ } setUpdateChoice(true); d->canvas->doc()->emitEndOperation(*d->canvas->choice()); + connect( d->canvas->choice(), SIGNAL(changed(const Region&)), + d->canvas->view(), SLOT(slotScrollChoice(const Region&)) ); } } } --- branches/koffice/1.6/koffice/kspread/kspread_view.cc #586305:586306 @@ -1752,6 +1752,7 @@ d->choice->setMultipleSelection(true); connect(d->selection, SIGNAL(changed(const Region&)), this, SLOT(slotChangeSelection(const Region&))); connect(d->choice, SIGNAL(changed(const Region&)), this, SLOT(slotChangeChoice(const Region&))); + connect(d->choice, SIGNAL(changed(const Region&)), this, SLOT(slotScrollChoice(const Region&))); d->findOptions = 0; d->findLeftColumn = 0; @@ -7063,11 +7064,17 @@ doc()->emitBeginOperation( false ); d->canvas->updateEditor(); d->canvas->setSelectionChangePaintDirty( d->activeSheet, changedRegion ); - d->canvas->scrollToCell(choice()->marker()); doc()->emitEndOperation( *choice() ); kdDebug() << "Choice: " << *choice() << endl; } +void View::slotScrollChoice( const KSpread::Region& changedRegion ) +{ + if ( !changedRegion.isValid() ) + return; + d->canvas->scrollToCell( choice()->marker() ); +} + void View::calcStatusBarOp() { Sheet * sheet = activeSheet(); --- branches/koffice/1.6/koffice/kspread/kspread_view.h #586305:586306 @@ -665,6 +665,7 @@ void slotUpdateVBorder( Sheet *_sheet ); void slotChangeSelection(const Region&); void slotChangeChoice(const Region&); + void slotScrollChoice(const Region&); void slotAddSheet( Sheet *_sheet ); void slotUpdateChildGeometry( EmbeddedKOfficeObject *_child ); void slotSheetRenamed( Sheet* sheet, const QString& old_name ); --- trunk/koffice/kspread/Editors.cpp #586305:586306 @@ -760,6 +760,8 @@ { d->highlighter->resetRangeChanged(); + disconnect( d->canvas->choice(), SIGNAL(changed(const Region&)), + d->canvas->view(), SLOT(slotScrollChoice(const Region&)) ); d->canvas->doc()->emitBeginOperation(); setUpdateChoice(false); @@ -798,6 +800,8 @@ } setUpdateChoice(true); d->canvas->doc()->emitEndOperation(*d->canvas->choice()); + connect( d->canvas->choice(), SIGNAL(changed(const Region&)), + d->canvas->view(), SLOT(slotScrollChoice(const Region&)) ); } } } --- trunk/koffice/kspread/View.cpp #586305:586306 @@ -1499,6 +1499,7 @@ d->choice->setMultipleOccurences(true); connect(d->selection, SIGNAL(changed(const Region&)), this, SLOT(slotChangeSelection(const Region&))); connect(d->choice, SIGNAL(changed(const Region&)), this, SLOT(slotChangeChoice(const Region&))); + connect(d->choice, SIGNAL(changed(const Region&)), this, SLOT(slotScrollChoice(const Region&))); d->findOptions = 0; d->findLeftColumn = 0; @@ -6694,11 +6695,17 @@ doc()->emitBeginOperation( false ); d->canvas->updateEditor(); d->activeSheet->setRegionPaintDirty( changedRegion ); - d->canvas->scrollToCell(choice()->marker()); doc()->emitEndOperation(/* *choice() */); kDebug(36002) << "Choice: " << *choice() << endl; } +void View::slotScrollChoice(const KSpread::Region& changedRegion) +{ + if ( !changedRegion.isValid() ) + return; + d->canvas->scrollToCell( choice()->marker() ); +} + void View::calcStatusBarOp() { Sheet * sheet = activeSheet(); --- trunk/koffice/kspread/View.h #586305:586306 @@ -557,6 +557,7 @@ void slotUpdateVBorder( Sheet *_sheet ); void slotChangeSelection(const Region&); void slotChangeChoice(const Region&); + void slotScrollChoice(const Region&); void slotAddSheet( Sheet *_sheet ); void slotUpdateChildGeometry( EmbeddedKOfficeObject *_child ); void slotSheetRenamed( Sheet* sheet, const QString& old_name );
You need to log in before you can comment on or make changes to this bug.