Fix Helge's index bugs.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@6010 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
Angus Leeming 2003-01-31 13:50:21 +00:00
parent 8a4110a1bd
commit c7fb290bfd
7 changed files with 42 additions and 23 deletions

View File

@ -1,3 +1,11 @@
2003-01-30 Angus Leeming <leeming@lyx.org>
* factory.C (createInset): create an InsetCommandParam of type "index"
and use it to 'do the right thing'.
* text2.C (getStringToIndex): ensure that cursor position is always
reset to the reset_cursor position.
2003-01-28 Jean-Marc Lasgouttes <Jean-Marc.Lasgouttes@inria.fr>
* lyxfunc.C (getStatus): "buffer-export custom" should never be

View File

@ -93,11 +93,16 @@ Inset * createInset(FuncRequest const & cmd)
return 0;
case LFUN_INDEX_INSERT: {
string entry = cmd.argument;
if (entry.empty())
entry = bv->getLyXText()->getStringToIndex(bv);
if (!entry.empty())
return new InsetIndex(InsetCommandParams("index", entry));
string const entry = cmd.argument.empty() ?
"index" : cmd.argument;
InsetCommandParams icp;
icp.setFromString(entry);
if (icp.getContents().empty())
icp.setContents(bv->getLyXText()->getStringToIndex(bv));
if (!icp.getContents().empty())
return new InsetIndex(icp);
bv->owner()->getDialogs().createIndex();
return 0;
}

View File

@ -1,3 +1,8 @@
2003-01-30 Angus Leeming <leeming@lyx.org>
* Dialogs2.C (createIndex): enable ControlCommand to create an
InsetCommandParam of type "index", not null.
2003-01-26 Michael Schmitt <michael.schmitt@teststep.org>
* ui/QThesaurusDialogBase.ui: add colons to labels.

View File

@ -127,7 +127,7 @@ void Dialogs::showIndex(InsetCommand * ic)
void Dialogs::createIndex()
{
pimpl_->index.controller().createInset(string());
pimpl_->index.controller().createInset("index");
}

View File

@ -1,3 +1,8 @@
2003-01-30 Angus Leeming <leeming@lyx.org>
* Dialogs2.C (createIndex): enable ControlCommand to create an
InsetCommandParam of type "index", not null.
2003-01-26 Michael Schmitt <michael.schmitt@teststep.org>
* forms/form_thesaurus.fd: add colons to labels. Shrink dialog.

View File

@ -129,7 +129,7 @@ void Dialogs::showIndex(InsetCommand * ic)
void Dialogs::createIndex()
{
pimpl_->index.controller().createInset(string());
pimpl_->index.controller().createInset("index");
}

View File

@ -1039,33 +1039,29 @@ void LyXText::toggleFree(BufferView * bview,
string LyXText::getStringToIndex(BufferView * bview)
{
string idxstring;
// Try implicit word selection
// If there is a change in the language the implicit word selection
// is disabled.
LyXCursor const reset_cursor = cursor;
bool const implicitSelection = selectWordWhenUnderCursor(bview, PREVIOUS_WORD);
if (!selection.set()) {
string idxstring;
if (!selection.set())
bview->owner()->message(_("Nothing to index!"));
return string();
}
if (selection.start.par() != selection.end.par()) {
else if (selection.start.par() != selection.end.par())
bview->owner()->message(_("Cannot index more than one paragraph!"));
return string();
}
else
idxstring = selectionAsString(bview->buffer(), false);
idxstring = selectionAsString(bview->buffer(), false);
// Reset cursors to their original position.
cursor = reset_cursor;
setCursor(bview, cursor.par(), cursor.pos());
selection.cursor = cursor;
// Implicit selections are cleared afterwards
//and cursor is set to the original position.
if (implicitSelection) {
// Clear the implicit selection.
if (implicitSelection)
clearSelection();
cursor = reset_cursor;
setCursor(bview, cursor.par(), cursor.pos());
selection.cursor = cursor;
}
return idxstring;
}