]> git.lyx.org Git - lyx.git/blob - src/frontends/qt2/QPrefs.C
92dafa7dd3f46f39234e998e1d511b7283e641da
[lyx.git] / src / frontends / qt2 / QPrefs.C
1 /**
2  * \file QPrefs.C
3  * This file is part of LyX, the document processor.
4  * Licence details can be found in the file COPYING.
5  *
6  * \author John Levon
7  *
8  * Full author contact details are available in file CREDITS
9  */
10
11 #include <config.h>
12
13 #ifdef __GNUG__
14 #pragma implementation
15 #endif
16
17 #include "support/lstrings.h"
18  
19 #include "ControlPrefs.h"
20 #include "QPrefsDialog.h"
21 #include "ui/QPrefAsciiModule.h"
22 #include "ui/QPrefDateModule.h"
23 #include "ui/QPrefKeyboardModule.h"
24 #include "ui/QPrefLatexModule.h"
25 #include "ui/QPrefScreenFontsModule.h"
26 #include "ui/QPrefColorsModule.h"
27 #include "ui/QPrefDisplayModule.h"
28 #include "ui/QPrefPathsModule.h"
29 #include "ui/QPrefSpellcheckerModule.h"
30 #include "ui/QPrefConvertersModule.h"
31 #include "ui/QPrefFileformatsModule.h"
32 #include "ui/QPrefLanguageModule.h"
33 #include "ui/QPrefPrinterModule.h"
34 #include "ui/QPrefUIModule.h"
35 #include "QPrefs.h"
36 #include "Qt2BC.h"
37 #include "lyxrc.h"
38
39 #include <qpushbutton.h>
40 #include <qcheckbox.h>
41 #include <qlineedit.h>
42 #include <qspinbox.h>
43 #include <qcombobox.h> 
44  
45 typedef Qt2CB<ControlPrefs, Qt2DB<QPrefsDialog> > base_class;
46
47
48 QPrefs::QPrefs()
49         : base_class(_("LyX: Preferences"))
50 {
51 }
52
53
54 void QPrefs::build_dialog()
55 {
56         dialog_.reset(new QPrefsDialog(this));
57
58         bc().setOK(dialog_->savePB);
59         bc().setApply(dialog_->applyPB);
60         bc().setCancel(dialog_->closePB);
61         bc().setRestore(dialog_->restorePB);
62 }
63
64
65 void QPrefs::apply()
66 {
67         LyXRC & rc(controller().rc());
68
69         // do something ... 
70
71 #if 0
72         bool modifiedText = false;
73         bool modifiedBackground = false;
74
75         // Now do the same for the LyX LColors...
76         for (vector<NamedColor>::const_iterator cit = lyxColorDB.begin();
77              cit != lyxColorDB.end(); ++cit) {
78                 LColor::color lc = lcolor.getFromGUIName(cit->getname());
79                 if (lc == LColor::inherit) continue;
80
81                 // Create a valid X11 name of the form "#rrggbb"
82                 string const hexname = X11hexname(cit->color());
83
84                 if (lcolor.getX11Name(lc) != hexname) {
85                         lyxerr[Debug::GUI]
86                                 << "FormPreferences::Colors::apply: "
87                                 << "resetting LColor " << lcolor.getGUIName(lc)
88                                 << " from \"" << lcolor.getX11Name(lc)
89                                 << "\" to \"" << hexname << "\"."
90                                 << endl;
91
92                         parent_.controller().setColor(lc, hexname);
93                 }
94         }
95 }
96  
97         parent_.controller().setConverters(local_converters);
98
99         parent_.controller().setFormats(local_formats);
100  
101         rc.date_insert_format =
102                 fl_get_input(dialog_->input_date_format);
103  
104         rc.popup_normal_font =
105                 fl_get_input(dialog_->input_popup_normal_font);
106         rc.popup_bold_font = fl_get_input(dialog_->input_popup_bold_font);
107         rc.popup_font_encoding =
108                 fl_get_input(dialog_->input_popup_font_encoding);
109         rc.bind_file = fl_get_input(dialog_->input_bind_file);
110         rc.ui_file = fl_get_input(dialog_->input_ui_file);
111         rc.override_x_deadkeys =
112                 fl_get_button(dialog_->check_override_x_dead_keys);
113 }
114         int const pos = combo_default_lang->get();
115         rc.default_language = lang_[pos-1];
116
117         int button = fl_get_button(dialog_->check_use_kbmap);
118         string const name_1 = fl_get_input(dialog_->input_kbmap1);
119         string const name_2 = fl_get_input(dialog_->input_kbmap2);
120         if (button)
121                 button = !(name_1.empty() && name_2.empty());
122         rc.use_kbmap = static_cast<bool>(button);
123
124         if (rc.use_kbmap) {
125                 rc.primary_kbmap = name_1;
126                 rc.secondary_kbmap = name_2;
127         }
128
129         button = fl_get_button(dialog_->check_rtl_support);
130         rc.rtl_support = static_cast<bool>(button);
131
132         button = fl_get_button(dialog_->check_mark_foreign);
133         rc.mark_foreign_language = static_cast<bool>(button);
134
135         button = fl_get_button(dialog_->check_auto_begin);
136         rc.language_auto_begin = static_cast<bool>(button);
137
138         button = fl_get_button(dialog_->check_auto_end);
139         rc.language_auto_end = static_cast<bool>(button);
140
141         button = fl_get_button(dialog_->check_use_babel);
142         rc.language_use_babel = static_cast<bool>(button);
143
144         button = fl_get_button(dialog_->check_global_options);
145         rc.language_global_options = static_cast<bool>(button);
146
147         rc.language_package = fl_get_input(dialog_->input_package);
148         rc.language_command_begin = fl_get_input(dialog_->input_command_begin);
149         rc.language_command_end = fl_get_input(dialog_->input_command_end);
150
151         // Ensure that all is self-consistent.
152         update(rc);
153
154  
155         rc.auto_region_delete =
156                 fl_get_button(dialog_->check_auto_region_delete);
157         rc.cursor_follows_scrollbar =
158                 fl_get_button(dialog_->check_cursor_follows_scrollbar);
159         rc.dialogs_iconify_with_main =
160                 fl_get_button(dialog_->check_dialogs_iconify_with_main);
161         rc.preview = fl_get_button(dialog_->check_preview_latex);
162         rc.autosave = static_cast<unsigned int>
163                 (fl_get_counter_value(dialog_->counter_autosave));
164         rc.wheel_jump = static_cast<unsigned int>
165                 (fl_get_counter_value(dialog_->counter_wm_jump));
166
167         // See FIXME below
168         // grfx::DisplayType old_value = rc.display_graphics;
169         switch (fl_get_choice(dialog_->choice_display)) {
170                 case 4: rc.display_graphics = grfx::NoDisplay; break;
171                 case 3: rc.display_graphics = grfx::ColorDisplay; break;
172                 case 2: rc.display_graphics = grfx::GrayscaleDisplay; break;
173                 case 1: rc.display_graphics = grfx::MonochromeDisplay; break;
174                 default: rc.display_graphics = grfx::ColorDisplay; break;
175         }
176
177 #ifdef WITH_WARNINGS
178 #warning FIXME!! The graphics cache no longer has a changeDisplay method.
179 #endif
180 #if 0
181         if (old_value != rc.display_graphics) {
182                 grfx::GCache & gc = grfx::GCache::get();
183                 gc.changeDisplay();
184         }
185 #endif
186  
187
188  
189         rc.ascii_linelen = static_cast<unsigned int>
190                 (fl_get_counter_value(dialog_->counter_line_len));
191         rc.fontenc = fl_get_input(dialog_->input_tex_encoding);
192
193         int const choice =
194                 fl_get_choice(dialog_->choice_default_papersize) - 1;
195         rc.default_papersize = static_cast<BufferParams::PAPER_SIZE>(choice);
196
197         rc.ascii_roff_command = fl_get_input(dialog_->input_ascii_roff);
198         rc.chktex_command = fl_get_input(dialog_->input_checktex);
199         rc.view_dvi_paper_option = fl_get_input(dialog_->input_paperoption);
200         rc.auto_reset_options = fl_get_button(dialog_->check_autoreset_classopt);
201
202
203  
204         rc.document_path = fl_get_input(dialog_->input_default_path);
205         rc.template_path = fl_get_input(dialog_->input_template_path);
206
207         int button = fl_get_button(dialog_->check_use_temp_dir);
208         string str  = fl_get_input(dialog_->input_temp_dir);
209         if (!button)
210                 str.erase();
211
212         rc.use_tempdir = button;
213         rc.tempdir_path = str;
214
215         button = fl_get_button(dialog_->check_last_files);
216         str = fl_get_input(dialog_->input_lastfiles);
217         if (!button) str.erase();
218
219         rc.check_lastfiles = button;
220         rc.lastfiles = str;
221         rc.num_lastfiles = static_cast<unsigned int>
222                 (fl_get_counter_value(dialog_->counter_lastfiles));
223
224         button = fl_get_button(dialog_->check_make_backups);
225         str = fl_get_input(dialog_->input_backup_path);
226         if (!button)
227                 str.erase();
228
229         rc.make_backup = button;
230         rc.backupdir_path = str;
231
232         rc.lyxpipes = fl_get_input(dialog_->input_serverpipe);
233
234         // update view
235         update(rc);
236
237  
238         rc.print_adapt_output = fl_get_button(dialog_->check_adapt_output);
239         rc.print_command = fl_get_input(dialog_->input_command);
240         rc.print_pagerange_flag = fl_get_input(dialog_->input_page_range);
241         rc.print_copies_flag = fl_get_input(dialog_->input_copies);
242         rc.print_reverse_flag = fl_get_input(dialog_->input_reverse);
243         rc.print_to_printer = fl_get_input(dialog_->input_to_printer);
244         rc.print_file_extension =
245                 fl_get_input(dialog_->input_file_extension);
246         rc.print_spool_command =
247                 fl_get_input(dialog_->input_spool_command);
248         rc.print_paper_flag = fl_get_input(dialog_->input_paper_type);
249         rc.print_evenpage_flag = fl_get_input(dialog_->input_even_pages);
250         rc.print_oddpage_flag = fl_get_input(dialog_->input_odd_pages);
251         rc.print_collcopies_flag = fl_get_input(dialog_->input_collated);
252         rc.print_landscape_flag = fl_get_input(dialog_->input_landscape);
253         rc.print_to_file = fl_get_input(dialog_->input_to_file);
254         rc.print_extra_options =
255                 fl_get_input(dialog_->input_extra_options);
256         rc.print_spool_printerprefix =
257                 fl_get_input(dialog_->input_spool_prefix);
258         rc.print_paper_dimension_flag =
259                 fl_get_input(dialog_->input_paper_size);
260         rc.printer = fl_get_input(dialog_->input_name);
261
262
263  
264         bool changed = false;
265
266         string str = fl_get_input(dialog_->input_roman);
267         if (rc.roman_font_name != str) {
268                 changed = true;
269                 rc.roman_font_name = str;
270         }
271
272         str = fl_get_input(dialog_->input_sans);
273         if (rc.sans_font_name != str) {
274                 changed = true;
275                 rc.sans_font_name = str;
276         }
277
278         str = fl_get_input(dialog_->input_typewriter);
279         if (rc.typewriter_font_name != str) {
280                 changed = true;
281                 rc.typewriter_font_name = str;
282         }
283
284         str = fl_get_input(dialog_->input_screen_encoding);
285         if (rc.font_norm != str) {
286                 changed = true;
287                 rc.font_norm = str;
288         }
289
290         bool button = fl_get_button(dialog_->check_scalable);
291         if (rc.use_scalable_fonts != button) {
292                 changed = true;
293                 rc.use_scalable_fonts = button;
294         }
295
296         unsigned int ivalue = static_cast<unsigned int>
297                 (fl_get_counter_value(dialog_->counter_zoom));
298         if (rc.zoom != ivalue) {
299                 changed = true;
300                 rc.zoom = ivalue;
301         }
302
303         ivalue = static_cast<unsigned int>
304                 (fl_get_counter_value(dialog_->counter_dpi));
305         if (rc.dpi != ivalue) {
306                 changed = true;
307                 rc.dpi = ivalue;
308         }
309
310         double dvalue = strToDbl(fl_get_input(dialog_->input_tiny));
311         if (rc.font_sizes[LyXFont::SIZE_TINY] != dvalue) {
312                 changed = true;
313                 rc.font_sizes[LyXFont::SIZE_TINY] = dvalue;
314         }
315
316         dvalue = strToDbl(fl_get_input(dialog_->input_script));
317         if (rc.font_sizes[LyXFont::SIZE_SCRIPT] != dvalue) {
318                 changed = true;
319                 rc.font_sizes[LyXFont::SIZE_SCRIPT] = dvalue;
320         }
321
322         dvalue = strToDbl(fl_get_input(dialog_->input_footnote));
323         if (rc.font_sizes[LyXFont::SIZE_FOOTNOTE] != dvalue) {
324                 changed = true;
325                 rc.font_sizes[LyXFont::SIZE_FOOTNOTE] = dvalue;
326         }
327
328         dvalue = strToDbl(fl_get_input(dialog_->input_small));
329         if (rc.font_sizes[LyXFont::SIZE_SMALL] != dvalue) {
330                 changed = true;
331                 rc.font_sizes[LyXFont::SIZE_SMALL] = dvalue;
332         }
333
334         dvalue = strToDbl(fl_get_input(dialog_->input_normal));
335         if (rc.font_sizes[LyXFont::SIZE_NORMAL] != dvalue) {
336                 changed = true;
337                 rc.font_sizes[LyXFont::SIZE_NORMAL] = dvalue;
338         }
339
340         dvalue = strToDbl(fl_get_input(dialog_->input_large));
341         if (rc.font_sizes[LyXFont::SIZE_LARGE] != dvalue) {
342                 changed = true;
343                 rc.font_sizes[LyXFont::SIZE_LARGE] = dvalue;
344         }
345
346         dvalue = strToDbl(fl_get_input(dialog_->input_larger));
347         if (rc.font_sizes[LyXFont::SIZE_LARGER] != dvalue) {
348                 changed = true;
349                 rc.font_sizes[LyXFont::SIZE_LARGER] = dvalue;
350         }
351
352         dvalue = strToDbl(fl_get_input(dialog_->input_largest));
353         if (rc.font_sizes[LyXFont::SIZE_LARGEST] != dvalue) {
354                 changed = true;
355                 rc.font_sizes[LyXFont::SIZE_LARGEST] = dvalue;
356         }
357
358         dvalue = strToDbl(fl_get_input(dialog_->input_huge));
359         if (rc.font_sizes[LyXFont::SIZE_HUGE] != dvalue) {
360                 changed = true;
361                 rc.font_sizes[LyXFont::SIZE_HUGE] = dvalue;
362         }
363
364         dvalue = strToDbl(fl_get_input(dialog_->input_huger));
365         if (rc.font_sizes[LyXFont::SIZE_HUGER] != dvalue) {
366                 changed = true;
367                 rc.font_sizes[LyXFont::SIZE_HUGER] = dvalue;
368         }
369
370         if (changed) {
371                 // Now update the buffers
372                 // Can anything below here affect the redraw process?
373                 parent_.controller().updateScreenFonts();
374
375
376  
377         string choice = fl_get_choice_text(dialog_->choice_spell_command);
378         choice = trim(choice);
379
380         rc.isp_command = choice;
381
382 #if 0
383         // If spell checker == "none", all other input set to off.
384         if (fl_get_choice(dialog_->choice_spell_command) == 1) {
385                 rc.isp_use_alt_lang = false;
386                 rc.isp_alt_lang.erase();
387
388                 rc.isp_use_esc_chars = false;
389                 rc.isp_esc_chars.erase();
390
391                 rc.isp_use_pers_dict = false;
392                 rc.isp_pers_dict.erase();
393
394                 rc.isp_accept_compound = false;
395                 rc.isp_use_input_encoding = false;
396         } else {
397 #else
398                 int button = fl_get_button(dialog_->check_alt_lang);
399                 choice = fl_get_input(dialog_->input_alt_lang);
400                 if (button && choice.empty()) button = 0;
401                 if (!button) choice.erase();
402
403                 rc.isp_use_alt_lang = static_cast<bool>(button);
404                 rc.isp_alt_lang = choice;
405
406                 button = fl_get_button(dialog_->check_escape_chars);
407                 choice = fl_get_input(dialog_->input_escape_chars);
408                 if (button && choice.empty()) button = 0;
409                 if (!button) choice.erase();
410
411                 rc.isp_use_esc_chars = static_cast<bool>(button);
412                 rc.isp_esc_chars = choice;
413
414                 button = fl_get_button(dialog_->check_personal_dict);
415                 choice = fl_get_input(dialog_->input_personal_dict);
416                 if (button && choice.empty()) button = 0;
417                 if (!button) choice.erase();
418
419                 rc.isp_use_pers_dict = static_cast<bool>(button);
420                 rc.isp_pers_dict = choice;
421
422                 button = fl_get_button(dialog_->check_compound_words);
423                 rc.isp_accept_compound = static_cast<bool>(button);
424
425                 button = fl_get_button(dialog_->check_input_enc);
426                 rc.isp_use_input_encoding = static_cast<bool>(button);
427 #endif
428 #if 0
429         }
430 #endif
431
432         // Reset view
433         update(rc);
434 #endif
435  
436 }
437
438
439 void QPrefs::update_contents()
440 {
441         LyXRC const & rc(controller().rc());
442
443         QPrefLanguageModule * langmod(dialog_->languageModule);
444  
445         // FIXME: remove rtl_support bool
446         langmod->rtlCB->setChecked(rc.rtl_support);
447         langmod->markForeignCB->setChecked(rc.mark_foreign_language); 
448         langmod->autoBeginCB->setChecked(rc.language_auto_begin); 
449         langmod->autoEndCB->setChecked(rc.language_auto_end); 
450         langmod->useBabelCB->setChecked(rc.language_use_babel);
451         langmod->globalCB->setChecked(rc.language_global_options);
452         langmod->languagePackageED->setText(rc.language_package.c_str());
453         langmod->startCommandED->setText(rc.language_command_begin.c_str());
454         langmod->endCommandED->setText(rc.language_command_end.c_str());
455
456
457         QPrefUIModule * uimod(dialog_->uiModule); 
458
459         uimod->uiFileED->setText(rc.bind_file.c_str());
460         uimod->bindFileED->setText(rc.ui_file.c_str());
461         uimod->cursorFollowsCB->setChecked(rc.cursor_follows_scrollbar); 
462         uimod->wheelMouseSB->setValue(rc.wheel_jump);
463         // convert to minutes
464         int mins(rc.autosave / 60);
465         if (rc.autosave && !mins)
466                 mins = 1;
467         uimod->autoSaveSB->setValue(mins);
468         uimod->autoSaveCB->setChecked(rc.make_backup);
469  
470  
471         QPrefKeyboardModule * keymod(dialog_->keyboardModule);
472
473         // FIXME: can derive CB from the two EDs 
474         keymod->keymapCB->setChecked(rc.use_kbmap);
475         keymod->firstKeymapED->setText(rc.primary_kbmap.c_str());
476         keymod->secondKeymapED->setText(rc.secondary_kbmap.c_str());
477  
478
479         QPrefAsciiModule * ascmod(dialog_->asciiModule);
480
481         ascmod->asciiLinelengthSB->setValue(rc.ascii_linelen);
482         ascmod->asciiRoffED->setText(rc.ascii_roff_command.c_str());
483
484
485         QPrefDateModule * datemod(dialog_->dateModule);
486
487         datemod->DateED->setText(rc.date_insert_format.c_str());
488
489
490         QPrefLatexModule * latexmod(dialog_->latexModule);
491
492         latexmod->latexEncodingED->setText(rc.fontenc.c_str());
493         latexmod->latexChecktexED->setText(rc.chktex_command.c_str()); 
494         latexmod->latexAutoresetCB->setChecked(rc.auto_reset_options);
495         latexmod->latexDviPaperED->setText(rc.view_dvi_paper_option.c_str());
496
497
498         QPrefDisplayModule * displaymod(dialog_->displayModule);
499
500         displaymod->previewCB->setChecked(rc.preview);
501  
502         int item = 2;
503  
504         switch (rc.display_graphics) {
505                 case grfx::NoDisplay:           item = 3; break;
506                 case grfx::ColorDisplay:        item = 2; break;
507                 case grfx::GrayscaleDisplay:    item = 1; break;
508                 case grfx::MonochromeDisplay:   item = 0; break;
509         }
510         displaymod->displayGraphicsCO->setCurrentItem(item);
511  
512
513         QPrefPathsModule * pathsmod(dialog_->pathsModule);
514  
515         pathsmod->workingDirED->setText(rc.document_path.c_str());
516         pathsmod->templateDirED->setText(rc.template_path.c_str());
517         pathsmod->backupDirED->setText(rc.backupdir_path.c_str());
518         pathsmod->tempDirCB->setChecked(rc.use_tempdir);
519         pathsmod->tempDirED->setText(rc.tempdir_path.c_str());
520         // FIXME: should be a checkbox only
521         pathsmod->lyxserverDirED->setText(rc.lyxpipes.c_str());
522
523 #if 0 
524         local_converters = converters;
525         local_converters.update(local_formats);
526         UpdateBrowser();
527
528         local_formats = formats;
529         UpdateBrowser();
530
531         int const pos = int(findPos(lang_, rc.default_language));
532         combo_default_lang->select(pos + 1);
533
534         fl_set_choice(dialog_->choice_default_papersize,
535                       rc.default_papersize + 1);
536
537         fl_set_counter_value(dialog_->counter_lastfiles,
538                              rc.num_lastfiles);
539
540         fl_set_button(dialog_->check_adapt_output,
541                       rc.print_adapt_output);
542         fl_set_input(dialog_->input_command,
543                      rc.print_command.c_str());
544         fl_set_input(dialog_->input_page_range,
545                      rc.print_pagerange_flag.c_str());
546         fl_set_input(dialog_->input_copies,
547                      rc.print_copies_flag.c_str());
548         fl_set_input(dialog_->input_reverse,
549                      rc.print_reverse_flag.c_str());
550         fl_set_input(dialog_->input_to_printer,
551                      rc.print_to_printer.c_str());
552         fl_set_input(dialog_->input_file_extension,
553                      rc.print_file_extension.c_str());
554         fl_set_input(dialog_->input_spool_command,
555                      rc.print_spool_command.c_str());
556         fl_set_input(dialog_->input_paper_type,
557                      rc.print_paper_flag.c_str());
558         fl_set_input(dialog_->input_even_pages,
559                      rc.print_evenpage_flag.c_str());
560         fl_set_input(dialog_->input_odd_pages,
561                      rc.print_oddpage_flag.c_str());
562         fl_set_input(dialog_->input_collated,
563                      rc.print_collcopies_flag.c_str());
564         fl_set_input(dialog_->input_landscape,
565                      rc.print_landscape_flag.c_str());
566         fl_set_input(dialog_->input_to_file,
567                      rc.print_to_file.c_str());
568         fl_set_input(dialog_->input_extra_options,
569                      rc.print_extra_options.c_str());
570         fl_set_input(dialog_->input_spool_prefix,
571                      rc.print_spool_printerprefix.c_str());
572         fl_set_input(dialog_->input_paper_size,
573                      rc.print_paper_dimension_flag.c_str());
574         fl_set_input(dialog_->input_name,
575                      rc.printer.c_str());
576
577
578
579         fl_set_input(dialog_->input_roman,
580                      rc.roman_font_name.c_str());
581         fl_set_input(dialog_->input_sans,
582                      rc.sans_font_name.c_str());
583         fl_set_input(dialog_->input_typewriter,
584                      rc.typewriter_font_name.c_str());
585         fl_set_counter_value(dialog_->counter_zoom, rc.zoom);
586         fl_set_counter_value(dialog_->counter_dpi,  rc.dpi);
587         fl_set_input(dialog_->input_tiny,
588                      tostr(rc.font_sizes[LyXFont::SIZE_TINY]).c_str());
589         fl_set_input(dialog_->input_script,
590                      tostr(rc.font_sizes[LyXFont::SIZE_SCRIPT]).c_str());
591         fl_set_input(dialog_->input_footnote,
592                      tostr(rc.font_sizes[LyXFont::SIZE_FOOTNOTE]).c_str());
593         fl_set_input(dialog_->input_small,
594                      tostr(rc.font_sizes[LyXFont::SIZE_SMALL]).c_str());
595         fl_set_input(dialog_->input_normal,
596                      tostr(rc.font_sizes[LyXFont::SIZE_NORMAL]).c_str());
597         fl_set_input(dialog_->input_large,
598                      tostr(rc.font_sizes[LyXFont::SIZE_LARGE]).c_str());
599         fl_set_input(dialog_->input_larger,
600                      tostr(rc.font_sizes[LyXFont::SIZE_LARGER]).c_str());
601         fl_set_input(dialog_->input_largest,
602                      tostr(rc.font_sizes[LyXFont::SIZE_LARGEST]).c_str());
603         fl_set_input(dialog_->input_huge,
604                      tostr(rc.font_sizes[LyXFont::SIZE_HUGE]).c_str());
605         fl_set_input(dialog_->input_huger,
606                      tostr(rc.font_sizes[LyXFont::SIZE_HUGER]).c_str());
607
608  
609         int choice = 1;
610 #if 0
611         if (rc.isp_command == "none")
612                 choice = 1;
613         else if (rc.isp_command == "ispell")
614                 choice = 2;
615         else if (rc.isp_command == "aspell")
616                 choice = 3;
617 #else
618         if (rc.isp_command == "ispell")
619                 choice = 1;
620         else if (rc.isp_command == "aspell")
621                 choice = 2;
622 #endif
623         fl_set_choice(dialog_->choice_spell_command, choice);
624
625         string str;
626         if (rc.isp_use_alt_lang)
627                 str = rc.isp_alt_lang;
628
629         fl_set_button(dialog_->check_alt_lang,
630                       rc.isp_use_alt_lang);
631         fl_set_input(dialog_->input_alt_lang, str.c_str());
632
633         str.erase();
634         if (rc.isp_use_esc_chars)
635                 str = rc.isp_esc_chars;
636
637         fl_set_button(dialog_->check_escape_chars,
638                       rc.isp_use_esc_chars);
639         fl_set_input(dialog_->input_escape_chars, str.c_str());
640
641         str.erase();
642         if (rc.isp_use_pers_dict)
643                 str = rc.isp_pers_dict;
644
645         fl_set_button(dialog_->check_personal_dict,
646                       rc.isp_use_pers_dict);
647         fl_set_input(dialog_->input_personal_dict, str.c_str());
648
649         fl_set_button(dialog_->check_compound_words,
650                       rc.isp_accept_compound);
651         fl_set_button(dialog_->check_input_enc,
652                       rc.isp_use_input_encoding);
653
654         // Activate/Deactivate the input fields dependent on the state of the
655         // buttons.
656         input(0);
657 #endif 
658 }