#include "lyx_cb.h"
#include "lyx_main.h"
#include "buffer.h"
+#include "buffer_funcs.h"
#include "bufferlist.h"
#include "bufferview_funcs.h"
#include "debug.h"
// Menu callbacks
//
-bool MenuWrite(BufferView * bv, Buffer * buffer)
+bool MenuWrite(Buffer * buffer)
{
if (buffer->save()) {
lastfiles->newFile(buffer->fileName());
text, 0, 1, _("&Rename"), _("&Cancel"));
if (ret == 0)
- return WriteAs(bv, buffer);
+ return WriteAs(buffer);
return false;
}
-bool WriteAs(BufferView * bv, Buffer * buffer, string const & filename)
+bool WriteAs(Buffer * buffer, string const & filename)
{
string fname = buffer->fileName();
string const oldname = fname;
bool unnamed = buffer->isUnnamed();
buffer->setUnnamed(false);
- if (!MenuWrite(bv, buffer)) {
+ if (!MenuWrite(buffer)) {
buffer->setFileName(oldname);
buffer->setUnnamed(unnamed);
return false;
<< "\nTemplate is " << tmpname << endl;
// find a free buffer
- Buffer * tmpbuf = bufferlist.newFile(name, tmpname);
+ Buffer * tmpbuf = newFile(name, tmpname);
if (tmpbuf)
lastfiles->newFile(tmpbuf->fileName());
return tmpbuf;
string const getPossibleLabel(BufferView const & bv)
{
- Paragraph * par = &*bv.getLyXText()->cursor.par();
- LyXLayout_ptr layout = par->layout();
- if (layout->latextype == LATEX_PARAGRAPH && par->previous()) {
- Paragraph * par2 = par->previous();
+ ParagraphList::iterator pit = bv.getLyXText()->cursor.par();
+ ParagraphList & plist = bv.getLyXText()->ownerParagraphs();
- LyXLayout_ptr const & layout2 = par2->layout();
+ LyXLayout_ptr layout = pit->layout();
+
+ if (layout->latextype == LATEX_PARAGRAPH && pit != plist.begin()) {
+ ParagraphList::iterator pit2 = boost::prior(pit);
+
+ LyXLayout_ptr const & layout2 = pit2->layout();
if (layout2->latextype != LATEX_PARAGRAPH) {
- par = par2;
+ pit = pit2;
layout = layout2;
}
}
lyxrc.label_init_length < 0)
text.erase();
- string par_text = par->asString(bv.buffer(), false);
+ string par_text = pit->asString(bv.buffer(), false);
for (int i = 0; i < lyxrc.label_init_length; ++i) {
if (par_text.empty())
break;