if (filename.empty()) {
- FileDialog fileDlg(bv->owner(),
- _("Choose a filename to save document as"),
+ FileDialog fileDlg(_("Choose a filename to save document as"),
LFUN_WRITEAS,
make_pair(string(_("Documents|#o#O")),
string(lyxrc.document_path)),
string fname = f;
if (fname.empty()) {
- FileDialog fileDlg(bv->owner(), _("Select file to insert"),
+ FileDialog fileDlg(_("Select file to insert"),
(asParagraph) ? LFUN_FILE_INSERT_ASCII_PARA : LFUN_FILE_INSERT_ASCII);
FileDialog::Result result = fileDlg.open(bv->owner()->buffer()->filePath());
}
-void MenuInsertLabel(BufferView * bv, string const & arg)
+string const getPossibleLabel(BufferView const & bv)
{
- string label = arg;
- bv->owner()->prohibitInput();
- if (label.empty()) {
- Paragraph * par = bv->getLyXText()->cursor.par();
- LyXLayout_ptr layout = par->layout();
- if (layout->latextype == LATEX_PARAGRAPH && par->previous()) {
- Paragraph * par2 = par->previous();
-
- LyXLayout_ptr const & layout2 = par2->layout();
-
- if (layout2->latextype != LATEX_PARAGRAPH) {
- par = par2;
- layout = layout2;
- }
- }
- string text = layout->latexname().substr(0, 3);
- if (layout->latexname() == "theorem")
- text = "thm"; // Create a correct prefix for prettyref
-
- text += ':';
- if (layout->latextype == LATEX_PARAGRAPH ||
- lyxrc.label_init_length < 0)
- text.erase();
- string par_text = par->asString(bv->buffer(), false);
- for (int i = 0; i < lyxrc.label_init_length; ++i) {
- if (par_text.empty())
- break;
- string head;
- par_text = split(par_text, head, ' ');
- if (i > 0)
- text += '-'; // Is it legal to use spaces in
- // labels ?
- text += head;
- }
+ Paragraph * par = bv.getLyXText()->cursor.par();
+ LyXLayout_ptr layout = par->layout();
+ if (layout->latextype == LATEX_PARAGRAPH && par->previous()) {
+ Paragraph * par2 = par->previous();
- pair<bool, string> result =
- Alert::askForText(_("Enter new label to insert:"), text);
- if (result.first) {
- label = trim(result.second);
+ LyXLayout_ptr const & layout2 = par2->layout();
+
+ if (layout2->latextype != LATEX_PARAGRAPH) {
+ par = par2;
+ layout = layout2;
}
}
- if (!label.empty()) {
- InsetCommandParams p("label", label);
- InsetLabel * inset = new InsetLabel(p);
- bv->insertInset(inset);
+
+ string text = layout->latexname().substr(0, 3);
+ if (layout->latexname() == "theorem")
+ text = "thm"; // Create a correct prefix for prettyref
+
+ text += ':';
+ if (layout->latextype == LATEX_PARAGRAPH ||
+ lyxrc.label_init_length < 0)
+ text.erase();
+
+ string par_text = par->asString(bv.buffer(), false);
+ for (int i = 0; i < lyxrc.label_init_length; ++i) {
+ if (par_text.empty())
+ break;
+ string head;
+ par_text = split(par_text, head, ' ');
+ if (i > 0)
+ text += '-'; // Is it legal to use spaces in
+ // labels ?
+ text += head;
}
- bv->owner()->allowInput();
+
+ return text;
}