From: Thomas B. <br...@ph...> - 2006-11-14 18:28:50
|
On Tuesday 14 November 2006 12:59, Michel Ludwig wrote: > Hi, > > On Monday 13 November 2006 22:16, Thomas Braun wrote: > > + // if we have an selection, replace a selection with " > > + if( doc && doc->hasSelection() ) > > + { > > + return false; // FIXME why do we return true in the other > > cases ?! > > + } > > + > > // simply insert, if autoinsert mode is not active or the char > > bevor is \ (typically for \"a useful) > > if ( !m_dblQuotes || ( col > 0 && doc->text(row,col-1,row,col) == > > QString("\\") ) ) > > { > > I don't think that this patch fixes bug 137272 completely as we should also > insert correctly escaped double quotes in some situations. okay you are are right Michel, forget about my old patch here is the new one as you suggested: thomas@thomas:~/devel/svn/office-trunk/kile/kile$svn diff kileedit.cpp Index: kileedit.cpp =================================================================== --- kileedit.cpp (Revision 603693) +++ kileedit.cpp (Arbeitskopie) @@ -2292,6 +2292,8 @@ bool EditorExtension::insertDoubleQuotes uint row,col; view->cursorPositionReal(&row,&col); Kate::Document *doc = view->getDoc(); + if(doc) + doc->removeSelectedText(); // simply insert, if we are inside a verb command if ( insideVerb(view) || insideVerbatim(view) ) > > but as the FIXME comment suggest I don't understand why we return false > > solves the problem in this case and in the other cases we do e.g.: > > > > // simply insert, if we are inside a verb command > > if ( insideVerb(view) || insideVerbatim(view) ) > > { > > doc->insertText(row,col,"\""); > > return true; > > } > > > > Any hints ?! > > I think it's because the return value of > EditorExtension::insertDoubleQuotes() is used in > KileEventFilter::eventFilter(QObject *o, QEvent *e), i.e. if > insertDoubleQuotes() returns "false", then the character insertion event is > not consumed and a possible text selection is replaced by the newly > inserted character. On the other hand, if insertDoubleQuotes() returns > "true", then the insertion event is consumed, a possible text selection > isn't deleted and we just add new characters. > > My suggestion would be to add the deletion of a possible text selection at > line 2295 of kiledit.cpp. > Thanks. So in cases where special doublequotes are not wanted we could also return false and don't insert the " by hand or not ? Thomas |