int RunLinuxDoc(BufferView *, int, string const &);
int RunDocBook(int, string const &);
void MenuWrite(Buffer * buf);
-void MenuWriteAs(Buffer * buffer);
+bool MenuWriteAs(Buffer * buffer);
void MenuReload(Buffer * buf);
void MenuLayoutSave();
// should be moved to BufferView.C
// Half of this func should be in LyXView, the rest in BufferView.
-void MenuWriteAs(Buffer * buffer)
+bool MenuWriteAs(Buffer * buffer)
{
// Why do we require BufferView::text to be able to write a
// document? I see no point in that. (Lgb)
if (!IsLyXFilename(fname))
fname += ".lyx";
- fname = fileDlg.Select(_("Enter Filename to Save Document as"),
- OnlyPath(fname),
- "*.lyx",
- OnlyFilename(fname));
+ if (buffer->isUnnamed()) {
+ fname = fileDlg.Select(_("Enter Filename to Save Document as"),
+ "",
+ "*.lyx",
+ "");
+ } else {
+ fname = fileDlg.Select(_("Enter Filename to Save Document as"),
+ OnlyPath(fname),
+ "*.lyx",
+ OnlyFilename(fname));
+ }
AllowInput(current_view);
if (fname.empty()) {
- return;
+ return false;
}
// Make sure the absolute filename ends with appropriate suffix
string s = MakeAbsPath(fname);
if (!AskQuestion(_("Same name as document already has:"),
MakeDisplayPath(s, 50),
_("Save anyway?")))
- return;
+ return false;
// Falls through to name change and save
}
// No, but do we have another file with this name open?
ShowMessage(buffer, _("Document renamed to '"),
MakeDisplayPath(s), _("', but not saved..."));
}
- return;
+ return false;
} // Check whether the file exists
else {
FileInfo myfile(s);
if (myfile.isOK() && !AskQuestion(_("Document already exists:"),
MakeDisplayPath(s, 50),
_("Replace file?")))
- return;
+ return false;
}
// Ok, change the name of the buffer
buffer->fileName(s);
buffer->markDirty();
+ buffer->setUnnamed(false);
// And save
// Small bug: If the save fails, we have irreversible changed the name
// of the document.
MenuWrite(buffer);
+ return true;
}
}
// HTML
else if (extyp == "html") {
- MenuMakeHTML(buffer);
- }
- // HTML from linuxdoc
- else if (extyp == "html-linuxdoc") {
- MenuMakeHTML_LinuxDoc(buffer);
- }
- // HTML from docbook
- else if (extyp == "html-docbook") {
- MenuMakeHTML_DocBook(buffer);
+ if (buffer->isLinuxDoc())
+ MenuMakeHTML_LinuxDoc(buffer);
+ else if (buffer->isDocBook())
+ MenuMakeHTML_DocBook(buffer);
+ else
+ MenuMakeHTML(buffer);
}
else {
ShowMessage(buffer, _("Unknown export type: ") + extyp);
if (!bv->available())
return;
- if (bv->buffer()->isBakClean()
- || bv->buffer()->isReadonly()) {
+ if (bv->buffer()->isBakClean() ||
+ bv->buffer()->isReadonly() || bv->buffer()->isUnnamed()) {
// We don't save now, but we'll try again later
bv->owner()->resetAutosaveTimer();
return;
ifs.unsetf(ios::skipws);
istream_iterator<char> ii(ifs);
istream_iterator<char> end;
+#if !defined(USE_INCLUDED_STRING) && !defined(STD_STRING_IS_GOOD)
+ // We use this until the compilers get better...
+ vector<char> tmp;
+ copy(ii, end, back_inserter(tmp));
+ string tmpstr(tmp.begin(), tmp.end());
+#else
+ // This is what we want to use and what we will use once the
+ // compilers get good enough.
//string tmpstr(ii, end); // yet a reason for using std::string
// alternate approach to get the file into a string:
string tmpstr;
copy(ii, end, back_inserter(tmpstr));
+#endif
// insert the string
current_view->hideCursor();
}
Buffer * buf = current_view->buffer();
+ LyXText * text = 0;
+ if (current_view->the_locking_inset)
+ text = current_view->the_locking_inset->getLyXText(current_view);
+ if (!text)
+ text = current_view->text;
fl_set_input(fd_form_paragraph->input_labelwidth,
- current_view->text->cursor.par()->GetLabelWidthString().c_str());
+ text->cursor.par()->GetLabelWidthString().c_str());
fl_set_button(fd_form_paragraph->radio_align_right, 0);
fl_set_button(fd_form_paragraph->radio_align_left, 0);
fl_set_button(fd_form_paragraph->radio_align_center, 0);
fl_set_button(fd_form_paragraph->radio_align_block, 0);
- int align = current_view->text->cursor.par()->GetAlign();
+ int align = text->cursor.par()->GetAlign();
if (align == LYX_ALIGN_LAYOUT)
align = textclasslist.Style(buf->params.textclass,
- current_view->text->cursor.par()->GetLayout()).align;
+ text->cursor.par()->GetLayout()).align;
switch (align) {
case LYX_ALIGN_RIGHT:
fl_set_button(fd_form_paragraph->radio_align_block, 1);
break;
}
-
+
+#ifndef NEW_INSETS
+ fl_set_button(fd_form_paragraph->check_lines_top,
+ text->cursor.par()->FirstPhysicalPar()->line_top);
+
+ fl_set_button(fd_form_paragraph->check_lines_bottom,
+ text->cursor.par()->FirstPhysicalPar()->line_bottom);
+
+ fl_set_button(fd_form_paragraph->check_pagebreaks_top,
+ text->cursor.par()->FirstPhysicalPar()->pagebreak_top);
+
+ fl_set_button(fd_form_paragraph->check_pagebreaks_bottom,
+ text->cursor.par()->FirstPhysicalPar()->pagebreak_bottom);
+ fl_set_button(fd_form_paragraph->check_noindent,
+ text->cursor.par()->FirstPhysicalPar()->noindent);
+#else
fl_set_button(fd_form_paragraph->check_lines_top,
- current_view->text->cursor.par()->FirstPhysicalPar()->line_top);
+ text->cursor.par()->line_top);
fl_set_button(fd_form_paragraph->check_lines_bottom,
- current_view->text->cursor.par()->FirstPhysicalPar()->line_bottom);
+ text->cursor.par()->line_bottom);
fl_set_button(fd_form_paragraph->check_pagebreaks_top,
- current_view->text->cursor.par()->FirstPhysicalPar()->pagebreak_top);
+ text->cursor.par()->pagebreak_top);
fl_set_button(fd_form_paragraph->check_pagebreaks_bottom,
- current_view->text->cursor.par()->FirstPhysicalPar()->pagebreak_bottom);
+ text->cursor.par()->pagebreak_bottom);
fl_set_button(fd_form_paragraph->check_noindent,
- current_view->text->cursor.par()->FirstPhysicalPar()->noindent);
+ text->cursor.par()->noindent);
+#endif
fl_set_input (fd_form_paragraph->input_space_above, "");
-
- switch (current_view->text->cursor.par()->FirstPhysicalPar()->added_space_top.kind()) {
+
+#ifndef NEW_INSETS
+ switch (text->cursor.par()->FirstPhysicalPar()->added_space_top.kind()) {
+#else
+ switch (text->cursor.par()->added_space_top.kind()) {
+#endif
+
case VSpace::NONE:
fl_set_choice (fd_form_paragraph->choice_space_above, 1);
break;
fl_set_choice (fd_form_paragraph->choice_space_above, 6);
break;
case VSpace::LENGTH:
- fl_set_choice (fd_form_paragraph->choice_space_above, 7);
+ fl_set_choice (fd_form_paragraph->choice_space_above, 7);
+#ifndef NEW_INSETS
fl_set_input (fd_form_paragraph->input_space_above,
- current_view->text->cursor.par()->FirstPhysicalPar()->added_space_top.length().asString().c_str());
+ text->cursor.par()->FirstPhysicalPar()->added_space_top.length().asString().c_str());
+#else
+ fl_set_input (fd_form_paragraph->input_space_above,
+ text->cursor.par()->added_space_top.length().asString().c_str());
+#endif
break;
}
+#ifndef NEW_INSETS
+ fl_set_button (fd_form_paragraph->check_space_above,
+ text->cursor.par()->FirstPhysicalPar()->added_space_top.keep());
+ fl_set_input (fd_form_paragraph->input_space_below, "");
+ switch (text->cursor.par()->FirstPhysicalPar()->added_space_bottom.kind()) {
+#else
fl_set_button (fd_form_paragraph->check_space_above,
- current_view->text->cursor.par()->FirstPhysicalPar()->added_space_top.keep());
+ text->cursor.par()->added_space_top.keep());
fl_set_input (fd_form_paragraph->input_space_below, "");
- switch (current_view->text->cursor.par()->FirstPhysicalPar()->added_space_bottom.kind()) {
+ switch (text->cursor.par()->added_space_bottom.kind()) {
+#endif
case VSpace::NONE:
fl_set_choice (fd_form_paragraph->choice_space_below,
1);
break;
case VSpace::LENGTH:
fl_set_choice (fd_form_paragraph->choice_space_below,
- 7);
+ 7);
+#ifndef NEW_INSETS
fl_set_input (fd_form_paragraph->input_space_below,
- current_view->text->cursor.par()->FirstPhysicalPar()->added_space_bottom.length().asString().c_str());
+ text->cursor.par()->FirstPhysicalPar()->added_space_bottom.length().asString().c_str());
break;
}
fl_set_button (fd_form_paragraph->check_space_below,
- current_view->text->cursor.par()->FirstPhysicalPar()->added_space_bottom.keep());
+ text->cursor.par()->FirstPhysicalPar()->added_space_bottom.keep());
fl_set_button(fd_form_paragraph->check_noindent,
- current_view->text->cursor.par()->FirstPhysicalPar()->noindent);
+ text->cursor.par()->FirstPhysicalPar()->noindent);
+#else
+ fl_set_input (fd_form_paragraph->input_space_below,
+ text->cursor.par()->added_space_bottom.length().asString().c_str());
+ break;
+ }
+ fl_set_button (fd_form_paragraph->check_space_below,
+ text->cursor.par()->added_space_bottom.keep());
+ fl_set_button(fd_form_paragraph->check_noindent,
+ text->cursor.par()->noindent);
+#endif
if (current_view->buffer()->isReadonly()) {
DisableParagraphLayout();
} else {
labelwidthstring = fl_get_input(fd_form_paragraph->input_labelwidth);
noindent = fl_get_button(fd_form_paragraph->check_noindent);
- current_view->text->SetParagraph(current_view,
- line_top,
- line_bottom,
- pagebreak_top,
- pagebreak_bottom,
- space_top,
- space_bottom,
- align,
- labelwidthstring,
- noindent);
+ LyXText * text = 0;
+ if (current_view->the_locking_inset)
+ text = current_view->the_locking_inset->getLyXText(current_view);
+ if (!text)
+ text = current_view->text;
+ text->SetParagraph(current_view,
+ line_top,
+ line_bottom,
+ pagebreak_top,
+ pagebreak_bottom,
+ space_top,
+ space_bottom,
+ align,
+ labelwidthstring,
+ noindent);
current_view->update(BufferView::SELECT|BufferView::FITCUR|BufferView::CHANGE);
current_view->owner()->getMiniBuffer()->Set(_("Paragraph layout set"));
}
/* callbacks for form form_table */
-extern "C" void TableApplyCB(FL_OBJECT *, long)
+extern "C"
+void TableApplyCB(FL_OBJECT *, long)
{
if (!current_view->available())
return;
-
+
+#ifndef NEW_TABULAR
// check for tables in tables
if (current_view->text->cursor.par()->table){
WriteAlert(_("Impossible Operation!"),
_("Sorry."));
return;
}
-
+#endif
current_view->owner()->getMiniBuffer()->Set(_("Inserting table..."));
int ysize = int(fl_get_slider_value(fd_form_table->slider_columns) + 0.5);
//if (!fl_get_button(fd_form_table->check_latex)){
// insert the new wysiwy table
current_view->text->SetLayout(current_view, 0); // standard layout
+#ifndef NEW_INSETS
if (current_view->text->cursor.par()->footnoteflag ==
LyXParagraph::NO_FOOTNOTE) {
+#endif
current_view->text
->SetParagraph(current_view, 0, 0,
0, 0,
LYX_ALIGN_CENTER,
string(),
0);
+#ifndef NEW_INSETS
} else {
current_view->text
->SetParagraph(current_view, 0, 0,
string(),
0);
}
-
+#endif
+#ifndef NEW_TABULAR
current_view->text->cursor.par()->table =
new LyXTable(xsize, ysize);
-
+#endif
Language const * lang =
current_view->text->cursor.par()->getParLanguage(current_view->buffer()->params);
LyXFont font(LyXFont::ALL_INHERIT, lang);
}
-extern "C" void TableCancelCB(FL_OBJECT *, long)
+extern "C"
+void TableCancelCB(FL_OBJECT *, long)
{
fl_hide_form(fd_form_table->form_table);
}
-extern "C" void TableOKCB(FL_OBJECT * ob, long data)
+extern "C"
+void TableOKCB(FL_OBJECT * ob, long data)
{
TableApplyCB(ob, data);
TableCancelCB(ob, data);
/* callbacks for form form_figure */
-extern "C" void FigureApplyCB(FL_OBJECT *, long)
+extern "C"
+void FigureApplyCB(FL_OBJECT *, long)
{
if (!current_view->available())
return;
current_view->owner()->getMiniBuffer()->Set(_("Inserting figure..."));
if (fl_get_button(fd_form_figure->radio_inline)
- || current_view->text->cursor.par()->table) {
+#ifndef NEW_TABULAR
+ || current_view->text->cursor.par()->table
+#endif
+ ) {
InsetFig * new_inset = new InsetFig(100, 20, buffer);
current_view->insertInset(new_inset);
current_view->owner()->getMiniBuffer()->Set(_("Figure inserted"));
// The standard layout should always be numer 0;
current_view->text->SetLayout(current_view, 0);
-
+
+#ifndef NEW_INSETS
if (current_view->text->cursor.par()->footnoteflag ==
LyXParagraph::NO_FOOTNOTE) {
+#endif
current_view->text->
SetParagraph(current_view, 0, 0,
0, 0,
buffer->params.spacing.getValue(),
LyXLength::CM),
LYX_ALIGN_CENTER, string(), 0);
+#ifndef NEW_INSETS
} else {
current_view->text->SetParagraph(current_view, 0, 0,
0, 0,
string(),
0);
}
+#endif
current_view->update(BufferView::SELECT|BufferView::FITCUR|BufferView::CHANGE);