From f38f4b1deef51e27c07fb859a1b4f2737455ac7e Mon Sep 17 00:00:00 2001 From: Jean-Marc Lasgouttes Date: Wed, 7 Nov 2001 11:39:58 +0000 Subject: [PATCH] fix the "save defaults" problems git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@2973 a592a061-630c-0410-9148-cb99ea01b6c8 --- src/ChangeLog | 9 ++++++ src/LyXAction.C | 2 -- src/buffer.C | 16 ---------- src/buffer.h | 8 ----- src/commandtags.h | 1 - src/frontends/xforms/ChangeLog | 12 ++++++++ src/frontends/xforms/FormDocument.C | 47 +++++++++++++++++++++++++---- src/lyx_cb.C | 12 -------- src/lyx_cb.h | 2 -- src/lyxfunc.C | 4 --- 10 files changed, 62 insertions(+), 51 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index 3a26ccc8bf..6c9856c896 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,12 @@ +2001-11-07 Jean-Marc Lasgouttes + + * buffer.C (saveParamsAsDefaults): + * lyx_cb.C (MenuLayoutSave): remove + + * LyXAction.C (init): + * commandtags.h: + * lyxfunc.C (dispatch): remove LFUN_LAYOUT_SAVE_DEFAULT. + 2001-11-06 Jean-Marc Lasgouttes * buffer.C (setPaperStuff): removed from here... diff --git a/src/LyXAction.C b/src/LyXAction.C index 58095e2e60..6986dab36b 100644 --- a/src/LyXAction.C +++ b/src/LyXAction.C @@ -257,8 +257,6 @@ void LyXAction::init() { LFUN_LAYOUT_PASTE, "layout-paste", N_("Paste paragraph environment type"), Noop }, { LFUN_LAYOUT_PREAMBLE, "layout-preamble", "", ReadOnly }, - { LFUN_LAYOUT_SAVE_DEFAULT, "layout-save-default", "", - ReadOnly }, { LFUN_LAYOUT_TABULAR, "layout-tabular", N_("Open the tabular layout"), Noop }, { LFUN_HOME, "line-begin", diff --git a/src/buffer.C b/src/buffer.C index 49f15e40f1..edefcb7cdd 100644 --- a/src/buffer.C +++ b/src/buffer.C @@ -240,22 +240,6 @@ void Buffer::setReadonly(bool flag) } -bool Buffer::saveParamsAsDefaults() // const -{ - string const fname = AddName(AddPath(user_lyxdir, "templates/"), - "defaults.lyx"); - Buffer defaults = Buffer(fname); - - // Use the current buffer's parameters as default - defaults.params = params; - - // add an empty paragraph. Is this enough? - defaults.paragraph = new Paragraph; - - return defaults.writeFile(defaults.filename, false); -} - - /// Update window titles of all users // Should work on a list void Buffer::updateTitles() const diff --git a/src/buffer.h b/src/buffer.h index 59beaa1ac8..bcdef34b19 100644 --- a/src/buffer.h +++ b/src/buffer.h @@ -70,14 +70,6 @@ public: /// Destructor ~Buffer(); - /** Save the buffer's parameters as user default. - This function saves a file \c user_lyxdir/templates/defaults.lyx - which parameters are those of the current buffer. This file - is used as a default template when creating a new - file. Returns \c true on success. - */ - bool saveParamsAsDefaults(); - /** High-level interface to buffer functionality. This function parses a command string and executes it */ diff --git a/src/commandtags.h b/src/commandtags.h index 5445872c06..640577c585 100644 --- a/src/commandtags.h +++ b/src/commandtags.h @@ -163,7 +163,6 @@ enum kb_action { LFUN_LAYOUT_PARAGRAPH, LFUN_LAYOUT_DOCUMENT, LFUN_LAYOUT_PREAMBLE, - LFUN_LAYOUT_SAVE_DEFAULT, LFUN_DROP_LAYOUTS_CHOICE, LFUN_CODE, LFUN_SANS, diff --git a/src/frontends/xforms/ChangeLog b/src/frontends/xforms/ChangeLog index a3bf185b26..5cba603be8 100644 --- a/src/frontends/xforms/ChangeLog +++ b/src/frontends/xforms/ChangeLog @@ -1,3 +1,15 @@ +2001-11-07 Jean-Marc Lasgouttes + + * FormDocument.C (class_apply): + (paper_apply): + (language_apply): + (options_apply): + (bullets_apply): add a version of these methods taking a + BufferParams& parameters. The original versions are now wrappers + around these. + (saveParamsAsDefault): new function, moved from old + LFUN_LAYOUT_SAVE_DEFAULT code. + 2001-11-03 John Levon * Makefile.am: diff --git a/src/frontends/xforms/FormDocument.C b/src/frontends/xforms/FormDocument.C index 04a516bb11..18cff16143 100644 --- a/src/frontends/xforms/FormDocument.C +++ b/src/frontends/xforms/FormDocument.C @@ -45,6 +45,7 @@ #include "debug.h" #include "input_validators.h" // fl_unsigned_float_filter #include "helper_funcs.h" +#include "lyx_main.h" // for user_lyxdir using Liason::setMinibuffer; using SigC::slot; @@ -370,6 +371,34 @@ void FormDocument::update() } +namespace { +// should this go elsewhere? Maybe a ControllerDocument? (JMarc) +/** Save the buffer's parameters as user default. + This function saves a file \c user_lyxdir/templates/defaults.lyx + which parameters are those of the current buffer. This file + is used as a default template when creating a new + file. Returns \c true on success. +*/ +bool saveParamsAsDefault(BufferParams const ¶ms) +{ + if (!AskQuestion(_("Do you want to save the current settings"), + _("for document layout"), + _("as default for new documents?"))) + return false; + + string const fname = AddName(AddPath(user_lyxdir, "templates/"), + "defaults.lyx"); + Buffer defaults = Buffer(fname); + defaults.params = params; + + // add an empty paragraph. Is this enough? + defaults.paragraph = new Paragraph; + + return defaults.writeFile(defaults.fileName(), false); +} + +} //namespace + bool FormDocument::input( FL_OBJECT * ob, long data ) { State cb = static_cast( data ); @@ -438,7 +467,13 @@ bool FormDocument::input( FL_OBJECT * ob, long data ) } if (ob == dialog_->button_save_defaults) { - lv_->getLyXFunc()->dispatch(LFUN_LAYOUT_SAVE_DEFAULT); + BufferParams params; + class_apply(params); + paper_apply(params); + language_apply(params); + options_apply(params); + bullets_apply(params); + saveParamsAsDefault(params); } if (ob == dialog_->button_reset_defaults) { @@ -899,13 +934,13 @@ bool FormDocument::options_apply() void FormDocument::bullets_apply(BufferParams & params) { /* update the bullet settings */ - BufferParams & params_doc = lv_->buffer()->params; + BufferParams & buf_params = lv_->buffer()->params; // a little bit of loop unrolling - params.user_defined_bullets[0] = params_doc.temp_bullets[0]; - params.user_defined_bullets[1] = params_doc.temp_bullets[1]; - params.user_defined_bullets[2] = params_doc.temp_bullets[2]; - params.user_defined_bullets[3] = params_doc.temp_bullets[3]; + params.user_defined_bullets[0] = buf_params.temp_bullets[0]; + params.user_defined_bullets[1] = buf_params.temp_bullets[1]; + params.user_defined_bullets[2] = buf_params.temp_bullets[2]; + params.user_defined_bullets[3] = buf_params.temp_bullets[3]; } diff --git a/src/lyx_cb.C b/src/lyx_cb.C index 4d5787a354..739a744735 100644 --- a/src/lyx_cb.C +++ b/src/lyx_cb.C @@ -526,18 +526,6 @@ void MenuInsertLabel(BufferView * bv, string const & arg) } -void MenuLayoutSave(BufferView * bv) -{ - if (!bv->available()) - return; - - if (AskQuestion(_("Do you want to save the current settings"), - _("for document layout"), - _("as default for new documents?"))) - bv->buffer()->saveParamsAsDefaults(); -} - - // This function runs "configure" and then rereads lyx.defaults to // reconfigure the automatic settings. void Reconfigure(BufferView * bv) diff --git a/src/lyx_cb.h b/src/lyx_cb.h index 5a39ffa23d..f5e4111663 100644 --- a/src/lyx_cb.h +++ b/src/lyx_cb.h @@ -33,8 +33,6 @@ void InsertAsciiFile(BufferView * bv, string const & f, bool asParagraph); /// void MenuInsertLabel(BufferView * bv, string const & arg); /// -void MenuLayoutSave(BufferView * bv); -/// void Reconfigure(BufferView * bv); #endif diff --git a/src/lyxfunc.C b/src/lyxfunc.C index 3ac2af1e92..529038d8b7 100644 --- a/src/lyxfunc.C +++ b/src/lyxfunc.C @@ -1350,10 +1350,6 @@ string const LyXFunc::dispatch(int ac, owner->getDialogs()->showPreamble(); break; - case LFUN_LAYOUT_SAVE_DEFAULT: - MenuLayoutSave(owner->view()); - break; - case LFUN_DROP_LAYOUTS_CHOICE: owner->getToolbar()->openLayoutList(); break; -- 2.39.2