// Menu callbacks
//
-//
-// File menu
-//
-// should be moved to lyxfunc.C
bool MenuWrite(BufferView * bv, Buffer * buffer)
{
- if (!buffer->save()) {
- if (Alert::askQuestion(_("Save failed. Rename and try again?"),
- MakeDisplayPath(buffer->fileName(), 50),
- _("(If not, document is not saved.)"))) {
- return WriteAs(bv, buffer);
- }
- return false;
- } else
+ if (buffer->save()) {
lastfiles->newFile(buffer->fileName());
- return true;
+ return true;
+ }
+
+ // FIXME: we don't tell the user *WHY* the save failed !!
+
+ string const file = MakeDisplayPath(buffer->fileName(), 30);
+
+#if USE_BOOST_FORMAT
+ boost::format fmt(_("The document %1$s could not be saved.\n\nDo you want to rename the document and try again?"));
+ fmt % file;
+ string text = fmt.str();
+#else
+ string text = _("The document ");
+ text += file + _(" could not be saved.\n\nDo you want to rename the document and try again?");
+#endif
+ int const ret = Alert::prompt(_("Rename and save?"),
+ text, 0, _("&Rename"), _("&Cancel"));
+
+ if (ret == 0)
+ return WriteAs(bv, buffer);
+ return false;
}
-// should be moved to BufferView.C
-// Half of this func should be in LyXView, the rest in BufferView.
bool WriteAs(BufferView * bv, Buffer * buffer, string const & filename)
{
string fname = buffer->fileName();
} else
fname = filename;
- // Same name as we have already?
- if (!buffer->isUnnamed() && fname == oldname) {
- if (!Alert::askQuestion(_("Same name as document already has:"),
- MakeDisplayPath(fname, 50),
- _("Save anyway?")))
- return false;
- // Falls through to name change and save
- }
- // No, but do we have another file with this name open?
- else if (!buffer->isUnnamed() && bufferlist.exists(fname)) {
- if (Alert::askQuestion(_("Another document with same name open!"),
- MakeDisplayPath(fname, 50),
- _("Replace with current document?")))
- {
- bufferlist.close(bufferlist.getBuffer(fname));
-
- // Ok, change the name of the buffer, but don't save!
- buffer->setFileName(fname);
- buffer->markDirty();
-
- ShowMessage(buffer, _("Document renamed to '"),
- MakeDisplayPath(fname), _("', but not saved..."));
- }
- return false;
- } // Check whether the file exists
- else {
- FileInfo const myfile(fname);
- if (myfile.isOK() && !Alert::askQuestion(_("Document already exists:"),
- MakeDisplayPath(fname, 50),
- _("Replace file?")))
+ FileInfo const myfile(fname);
+ if (myfile.isOK()) {
+ string const file = MakeDisplayPath(fname, 30);
+
+#if USE_BOOST_FORMAT
+ boost::format fmt(_("The document %1$s already exists.\n\nDo you want to over-write that document?"));
+ fmt % file;
+ string text = fmt.str();
+#else
+ string text = _("The document ");
+ text += file + _(" already exists.\n\nDo you want to over-write that document?");
+#endif
+ int const ret = Alert::prompt(_("Over-write document?"),
+ text, 1, _("&Over-write"), _("&Cancel"));
+
+ if (ret == 1)
return false;
}
buffer->setUnnamed(false);
if (!MenuWrite(bv, buffer)) {
- buffer->setFileName(oldname);
- buffer->setUnnamed(unnamed);
- ShowMessage(buffer, _("Document could not be saved!"),
- _("Holding the old name."), MakeDisplayPath(oldname));
- return false;
+ buffer->setFileName(oldname);
+ buffer->setUnnamed(unnamed);
+ return false;
}
- // now remove the oldname autosave file if existant!
+
removeAutosaveFile(oldname);
return true;
}
lyxerr[Debug::INFO] << "Running QuitLyX." << endl;
if (lyxrc.use_gui) {
- if (!bufferlist.qwriteAll())
+ if (!bufferlist.quitWriteAll())
return;
lastfiles->writeFile(lyxrc.lastfiles);
// do any other cleanup procedures now
lyxerr[Debug::INFO] << "Deleting tmp dir " << system_tempdir << endl;
- DestroyLyXTmpDir(system_tempdir);
+ if (destroyDir(system_tempdir) != 0) {
+#if USE_BOOST_FORMAT
+ boost::format fmt = _("Could not remove the temporary directory %1$s");
+ fmt % system_tempdir;
+ string msg = fmt.str();
+#else
+ string msg = _("Could not remove the temporary directory ") + system_tempdir;
+#endif
+ Alert::warning(_("Could not remove temporary directory"), msg);
+ }
lyx_gui::exit();
}
FileInfo fi(fname);
if (!fi.readable()) {
- Alert::err_alert(_("Error! Specified file is unreadable: "),
- MakeDisplayPath(fname, 50));
+ string const error = strerror(errno);
+ string const file = MakeDisplayPath(fname, 50);
+#if USE_BOOST_FORMAT
+ boost::format fmt(_("Could not read the specified document\n%1$s\ndue to the error: %2$s"));
+ fmt % file;
+ fmt % error;
+ string text = fmt.str();
+#else
+ string text = _("Could not read the specified document\n");
+ text += file + _(" due to the error: ");
+ text += error;
+#endif
+ Alert::error(_("Could not read file"), text);
return string();
}
ifstream ifs(fname.c_str());
if (!ifs) {
- Alert::err_alert(_("Error! Cannot open specified file:"),
- MakeDisplayPath(fname, 50));
+ string const error = strerror(errno);
+ string const file = MakeDisplayPath(fname, 50);
+#if USE_BOOST_FORMAT
+ boost::format fmt(_("Could not open the specified document\n%1$s\ndue to the error: %2$s"));
+ fmt % file;
+ fmt % error;
+ string text = fmt.str();
+#else
+ string text = _("Could not open the specified document\n");
+ text += file + _(" due to the error: ");
+ text += error;
+#endif
+ Alert::error(_("Could not open file"), text);
return string();
}
p.pop();
bv->owner()->message(_("Reloading configuration..."));
lyxrc.read(LibFileSearch(string(), "lyxrc.defaults"));
- Alert::alert(_("The system has been reconfigured."),
- _("You need to restart LyX to make use of any"),
- _("updated document class specifications."));
+
+ Alert::information(_("System reconfigured"),
+ _("The system has been reconfigured.\n"
+ "You need to restart LyX to make use of any \n"
+ "updated document class specifications."));
}