#include "buffer.h"
#include "bufferlist.h"
#include "BufferView.h"
+#include "cursor.h"
#include "debug.h"
#include "gettext.h"
#include "lastfiles.h"
#include "lyx_main.h"
+#include "lyxlayout.h"
#include "lyxrc.h"
#include "lyxtext.h"
#include "paragraph.h"
#include "support/FileInfo.h"
#include "support/filetools.h"
#include "support/forkedcall.h"
+#include "support/globbing.h"
#include "support/lyxlib.h"
#include "support/os.h"
#include "support/path.h"
#include "support/path_defines.h"
#include "support/systemcall.h"
+#include <boost/shared_ptr.hpp>
+
#include <cerrno>
#include <fstream>
-using namespace lyx::support;
+using lyx::support::AddName;
+using lyx::support::bformat;
+using lyx::support::destroyDir;
+using lyx::support::FileFilterList;
+using lyx::support::FileInfo;
+using lyx::support::ForkedProcess;
+using lyx::support::IsLyXFilename;
+using lyx::support::LibFileSearch;
+using lyx::support::MakeAbsPath;
+using lyx::support::MakeDisplayPath;
+using lyx::support::OnlyFilename;
+using lyx::support::OnlyPath;
+using lyx::support::Path;
+using lyx::support::QuoteName;
+using lyx::support::removeAutosaveFile;
+using lyx::support::rename;
+using lyx::support::split;
+using lyx::support::system_lyxdir;
+using lyx::support::Systemcall;
+using lyx::support::tempName;
+using lyx::support::unlink;
+using lyx::support::user_lyxdir;
+
+namespace os = lyx::support::os;
+
+using boost::shared_ptr;
using std::back_inserter;
using std::copy;
using std::endl;
using std::make_pair;
-
+using std::string;
using std::ifstream;
using std::ios;
using std::istream_iterator;
+
extern BufferList bufferlist;
// this should be static, but I need it in buffer.C
bool quitting; // flag, that we are quitting the program
bool MenuWrite(Buffer * buffer)
{
if (buffer->save()) {
- lastfiles->newFile(buffer->fileName());
+ LyX::ref().lastfiles().newFile(buffer->fileName());
return true;
}
if (!IsLyXFilename(fname))
fname += ".lyx";
+ FileFilterList const filter (_("LyX Documents (*.lyx)"));
+
FileDialog::Result result =
fileDlg.save(OnlyPath(fname),
- _("*.lyx| LyX Documents (*.lyx)"),
- OnlyFilename(fname));
+ filter,
+ OnlyFilename(fname));
if (result.first == FileDialog::Later)
return false;
if (!bufferlist.quitWriteAll())
return;
- lastfiles->writeFile(lyxrc.lastfiles);
+ LyX::cref().lastfiles().writeFile(lyxrc.lastfiles);
}
// Set a flag that we do quitting from the program,
AutoSaveBuffer(BufferView & bv, string const & fname)
: bv_(bv), fname_(fname) {}
///
- virtual ForkedProcess * clone() const {
- return new AutoSaveBuffer(*this);
+ virtual shared_ptr<ForkedProcess> clone() const
+ {
+ return shared_ptr<ForkedProcess>(new AutoSaveBuffer(*this));
}
///
int start();
int AutoSaveBuffer::start()
{
command_ = bformat(_("Auto-saving %1$s"), fname_);
- return runNonBlocking();
+ return run(DontWait);
}
return;
// clear the selection
- bool flag = (bv->text == bv->getLyXText());
- if (flag)
- bv->beforeChange(bv->text);
- if (!asParagraph)
- bv->getLyXText()->insertStringAsLines(tmpstr);
+ if (bv->text() == bv->getLyXText())
+ bv->cursor().clearSelection();
+ if (asParagraph)
+ bv->getLyXText()->insertStringAsParagraphs(bv->cursor(), tmpstr);
else
- bv->getLyXText()->insertStringAsParagraphs(tmpstr);
+ bv->getLyXText()->insertStringAsLines(bv->cursor(), tmpstr);
bv->update();
}
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());
+ FileDialog::Result result =
+ fileDlg.open(bv->owner()->buffer()->filePath(),
+ FileFilterList(), string());
if (result.first == FileDialog::Later)
return string();
}
-string const getPossibleLabel(BufferView const & bv)
-{
- ParagraphList::iterator pit = bv.getLyXText()->cursor.par();
- ParagraphList & plist = bv.getLyXText()->ownerParagraphs();
-
- 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) {
- pit = pit2;
- 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 = pit->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;
- }
-
- return text;
-}
-
-
// This function runs "configure" and then rereads lyx.defaults to
// reconfigure the automatic settings.
void Reconfigure(BufferView * bv)
Path p(user_lyxdir());
Systemcall one;
one.startscript(Systemcall::Wait,
- AddName(system_lyxdir(), "configure"));
+ QuoteName(AddName(system_lyxdir(), "configure")));
p.pop();
bv->owner()->message(_("Reloading configuration..."));
lyxrc.read(LibFileSearch(string(), "lyxrc.defaults"));
Alert::information(_("System reconfigured"),
_("The system has been reconfigured.\n"
- "You need to restart LyX to make use of any \n"
+ "You need to restart LyX to make use of any\n"
"updated document class specifications."));
}