#include "support/FileFilterList.h"
#include "support/FileName.h"
#include "support/filetools.h"
+#include "support/foreach.h"
#include "support/gettext.h"
#include "support/lstrings.h"
#include "support/os.h"
//
/////////////////////////////////////////////////////////////////////
-FileName libFileSearch(QString const & dir, QString const & name,
- QString const & ext = QString())
-{
- return support::libFileSearch(fromqstr(dir), fromqstr(name), fromqstr(ext));
-}
-
-
/** Launch a file dialog and return the chosen file.
filename: a suggested filename.
title: the title of the dialog.
// remove the extension if it is the default one
QString noextresult;
- if (toqstr(getExtension(fromqstr(result))) == ext)
- noextresult = toqstr(removeExtension(fromqstr(result)));
+ if (getExtension(result) == ext)
+ noextresult = removeExtension(result);
else
noextresult = result;
namespace frontend {
-template<class A>
-static size_t findPos_helper(vector<A> const & vec, A const & val)
-{
- typedef typename vector<A>::const_iterator Cit;
+string const catLookAndFeel = N_("Look & Feel");
+string const catEditing = N_("Editing");
+string const catLanguage = N_("Language Settings");
+string const catOutput = N_("Output");
+string const catFiles = N_("File Handling");
- Cit it = find(vec.begin(), vec.end(), val);
- if (it == vec.end())
- return 0;
- return distance(vec.begin(), it);
+static int findPos_helper(QStringList const & vec, QString const & val)
+{
+ for (int i = 0; i != vec.size(); ++i)
+ if (vec[i] == val)
+ return i;
+ return 0;
}
/////////////////////////////////////////////////////////////////////
PrefPlaintext::PrefPlaintext(QWidget * parent)
- : PrefModule(qt_("Plain text"), 0, parent)
+ : PrefModule(qt_(catOutput), qt_("Plain text"), 0, parent)
{
setupUi(this);
connect(plaintextLinelengthSB, SIGNAL(valueChanged(int)),
/////////////////////////////////////////////////////////////////////
PrefDate::PrefDate(QWidget * parent)
- : PrefModule(qt_("Date format"), 0, parent)
+ : PrefModule(qt_(catOutput), qt_("Date format"), 0, parent)
{
setupUi(this);
connect(DateED, SIGNAL(textChanged(QString)),
/////////////////////////////////////////////////////////////////////
PrefInput::PrefInput(GuiPreferences * form, QWidget * parent)
- : PrefModule(qt_("Keyboard/Mouse"), form, parent)
+ : PrefModule(qt_(catEditing), qt_("Keyboard/Mouse"), form, parent)
{
setupUi(this);
this, SIGNAL(changed()));
connect(secondKeymapED, SIGNAL(textChanged(QString)),
this, SIGNAL(changed()));
- connect(inlineDelaySB, SIGNAL(valueChanged(double)),
- this, SIGNAL(changed()));
- connect(inlineMathCB, SIGNAL(clicked()),
- this, SIGNAL(changed()));
- connect(inlineTextCB, SIGNAL(clicked()),
- this, SIGNAL(changed()));
- connect(inlineDotsCB, SIGNAL(clicked()),
- this, SIGNAL(changed()));
- connect(popupDelaySB, SIGNAL(valueChanged(double)),
- this, SIGNAL(changed()));
- connect(popupMathCB, SIGNAL(clicked()),
- this, SIGNAL(changed()));
- connect(popupTextCB, SIGNAL(clicked()),
- this, SIGNAL(changed()));
- connect(popupAfterCompleteCB, SIGNAL(clicked()),
- this, SIGNAL(changed()));
connect(mouseWheelSpeedSB, SIGNAL(valueChanged(double)),
this, SIGNAL(changed()));
}
rc.use_kbmap = keymapCB->isChecked();
rc.primary_kbmap = internal_path(fromqstr(firstKeymapED->text()));
rc.secondary_kbmap = internal_path(fromqstr(secondKeymapED->text()));
- rc.completion_inline_delay = inlineDelaySB->value();
- rc.completion_inline_math = inlineMathCB->isChecked();
- rc.completion_inline_text = inlineTextCB->isChecked();
- rc.completion_inline_dots = inlineDotsCB->isChecked() ? 13 : -1;
- rc.completion_popup_delay = popupDelaySB->value();
- rc.completion_popup_math = popupMathCB->isChecked();
- rc.completion_popup_text = popupTextCB->isChecked();
- rc.completion_popup_after_complete
- = popupAfterCompleteCB->isChecked();
rc.mouse_wheel_speed = mouseWheelSpeedSB->value();
}
keymapCB->setChecked(rc.use_kbmap);
firstKeymapED->setText(toqstr(external_path(rc.primary_kbmap)));
secondKeymapED->setText(toqstr(external_path(rc.secondary_kbmap)));
- inlineDelaySB->setValue(rc.completion_inline_delay);
- inlineMathCB->setChecked(rc.completion_inline_math);
- inlineTextCB->setChecked(rc.completion_inline_text);
- inlineDotsCB->setChecked(rc.completion_inline_dots != -1);
- popupDelaySB->setValue(rc.completion_popup_delay);
- popupMathCB->setChecked(rc.completion_popup_math);
- popupTextCB->setChecked(rc.completion_popup_text);
- popupAfterCompleteCB->setChecked(rc.completion_popup_after_complete);
mouseWheelSpeedSB->setValue(rc.mouse_wheel_speed);
}
}
+/////////////////////////////////////////////////////////////////////
+//
+// PrefCompletion
+//
+/////////////////////////////////////////////////////////////////////
+
+PrefCompletion::PrefCompletion(GuiPreferences * form, QWidget * parent)
+ : PrefModule(qt_(catEditing), qt_("Input Completion"), form, parent)
+{
+ setupUi(this);
+
+ connect(inlineDelaySB, SIGNAL(valueChanged(double)),
+ this, SIGNAL(changed()));
+ connect(inlineMathCB, SIGNAL(clicked()),
+ this, SIGNAL(changed()));
+ connect(inlineTextCB, SIGNAL(clicked()),
+ this, SIGNAL(changed()));
+ connect(inlineDotsCB, SIGNAL(clicked()),
+ this, SIGNAL(changed()));
+ connect(popupDelaySB, SIGNAL(valueChanged(double)),
+ this, SIGNAL(changed()));
+ connect(popupMathCB, SIGNAL(clicked()),
+ this, SIGNAL(changed()));
+ connect(popupTextCB, SIGNAL(clicked()),
+ this, SIGNAL(changed()));
+ connect(popupAfterCompleteCB, SIGNAL(clicked()),
+ this, SIGNAL(changed()));
+ connect(cursorTextCB, SIGNAL(clicked()),
+ this, SIGNAL(changed()));
+}
+
+
+void PrefCompletion::apply(LyXRC & rc) const
+{
+ rc.completion_inline_delay = inlineDelaySB->value();
+ rc.completion_inline_math = inlineMathCB->isChecked();
+ rc.completion_inline_text = inlineTextCB->isChecked();
+ rc.completion_inline_dots = inlineDotsCB->isChecked() ? 13 : -1;
+ rc.completion_popup_delay = popupDelaySB->value();
+ rc.completion_popup_math = popupMathCB->isChecked();
+ rc.completion_popup_text = popupTextCB->isChecked();
+ rc.completion_cursor_text = cursorTextCB->isChecked();
+ rc.completion_popup_after_complete =
+ popupAfterCompleteCB->isChecked();
+}
+
+
+void PrefCompletion::update(LyXRC const & rc)
+{
+ inlineDelaySB->setValue(rc.completion_inline_delay);
+ inlineMathCB->setChecked(rc.completion_inline_math);
+ inlineTextCB->setChecked(rc.completion_inline_text);
+ inlineDotsCB->setChecked(rc.completion_inline_dots != -1);
+ popupDelaySB->setValue(rc.completion_popup_delay);
+ popupMathCB->setChecked(rc.completion_popup_math);
+ popupTextCB->setChecked(rc.completion_popup_text);
+ cursorTextCB->setChecked(rc.completion_cursor_text);
+ popupAfterCompleteCB->setChecked(rc.completion_popup_after_complete);
+}
+
+
+
/////////////////////////////////////////////////////////////////////
//
// PrefLatex
/////////////////////////////////////////////////////////////////////
PrefLatex::PrefLatex(GuiPreferences * form, QWidget * parent)
- : PrefModule(qt_("LaTeX"), form, parent)
+ : PrefModule(qt_(catOutput), qt_("LaTeX"), form, parent)
{
setupUi(this);
connect(latexEncodingED, SIGNAL(textChanged(QString)),
/////////////////////////////////////////////////////////////////////
PrefScreenFonts::PrefScreenFonts(GuiPreferences * form, QWidget * parent)
- : PrefModule(qt_("Screen fonts"), form, parent)
+ : PrefModule(qt_(catLookAndFeel), qt_("Screen fonts"), form, parent)
{
setupUi(this);
} // namespace anon
PrefColors::PrefColors(GuiPreferences * form, QWidget * parent)
- : PrefModule(qt_("Colors"), form, parent)
+ : PrefModule(qt_(catLookAndFeel), qt_("Colors"), form, parent)
{
setupUi(this);
change_lyxObjects_selection();
}
+
void PrefColors::change_color()
{
int const row = lyxObjectsLW->currentRow();
/////////////////////////////////////////////////////////////////////
PrefDisplay::PrefDisplay(QWidget * parent)
- : PrefModule(qt_("Graphics"), 0, parent)
+ : PrefModule(qt_(catLookAndFeel), qt_("Graphics"), 0, parent)
{
setupUi(this);
connect(instantPreviewCO, SIGNAL(activated(int)),
/////////////////////////////////////////////////////////////////////
PrefPaths::PrefPaths(GuiPreferences * form, QWidget * parent)
- : PrefModule(qt_("Paths"), form, parent)
+ : PrefModule(QString(), qt_("Paths"), form, parent)
{
setupUi(this);
connect(exampleDirPB, SIGNAL(clicked()), this, SLOT(select_exampledir()));
/////////////////////////////////////////////////////////////////////
PrefSpellchecker::PrefSpellchecker(GuiPreferences * form, QWidget * parent)
- : PrefModule(qt_("Spellchecker"), form, parent)
+ : PrefModule(qt_(catLanguage), qt_("Spellchecker"), form, parent)
{
setupUi(this);
PrefConverters::PrefConverters(GuiPreferences * form, QWidget * parent)
- : PrefModule(qt_("Converters"), form, parent)
+ : PrefModule(qt_(catFiles), qt_("Converters"), form, parent)
{
setupUi(this);
PrefFileformats::PrefFileformats(GuiPreferences * form, QWidget * parent)
- : PrefModule(qt_("File formats"), form, parent)
+ : PrefModule(qt_(catFiles), qt_("File formats"), form, parent)
{
setupUi(this);
formatED->setValidator(new FormatNameValidator(formatsCB, form_->formats()));
/////////////////////////////////////////////////////////////////////
PrefLanguage::PrefLanguage(QWidget * parent)
- : PrefModule(qt_("Language"), 0, parent)
+ : PrefModule(qt_(catLanguage), qt_("Language"), 0, parent)
{
setupUi(this);
defaultLanguageCO->clear();
// store the lang identifiers for later
- vector<LanguagePair> const langs = getLanguageData(false);
- vector<LanguagePair>::const_iterator lit = langs.begin();
- vector<LanguagePair>::const_iterator lend = langs.end();
- lang_.clear();
- for (; lit != lend; ++lit) {
- defaultLanguageCO->addItem(toqstr(lit->first));
- lang_.push_back(lit->second);
+ //foreach (LanguagePair const & lpair, languageData(false)) {
+ QList<LanguagePair> l = languageData(false);
+ foreach (LanguagePair const & lpair, l) {
+ defaultLanguageCO->addItem(lpair.first);
+ lang_.append(lpair.second);
}
}
rc.language_package = fromqstr(languagePackageED->text());
rc.language_command_begin = fromqstr(startCommandED->text());
rc.language_command_end = fromqstr(endCommandED->text());
- rc.default_language = lang_[defaultLanguageCO->currentIndex()];
+ rc.default_language = fromqstr(lang_[defaultLanguageCO->currentIndex()]);
}
startCommandED->setText(toqstr(rc.language_command_begin));
endCommandED->setText(toqstr(rc.language_command_end));
- int const pos = int(findPos_helper(lang_, rc.default_language));
+ int const pos = findPos_helper(lang_, toqstr(rc.default_language));
defaultLanguageCO->setCurrentIndex(pos);
}
/////////////////////////////////////////////////////////////////////
PrefPrinter::PrefPrinter(QWidget * parent)
- : PrefModule(qt_("Printer"), 0, parent)
+ : PrefModule(qt_(catOutput), qt_("Printer"), 0, parent)
{
setupUi(this);
/////////////////////////////////////////////////////////////////////
PrefUserInterface::PrefUserInterface(GuiPreferences * form, QWidget * parent)
- : PrefModule(qt_("User interface"), form, parent)
+ : PrefModule(qt_(catLookAndFeel), qt_("User interface"), form, parent)
{
setupUi(this);
autoSaveSB, SLOT(setEnabled(bool)));
connect(autoSaveCB, SIGNAL(toggled(bool)),
TextLabel1, SLOT(setEnabled(bool)));
+ connect(openDocumentsInTabsCB, SIGNAL(clicked()),
+ this, SIGNAL(changed()));
connect(uiFilePB, SIGNAL(clicked()),
this, SLOT(select_ui()));
connect(uiFileED, SIGNAL(textChanged(QString)),
this, SIGNAL(changed()));
connect(allowGeometrySessionCB, SIGNAL(clicked()),
this, SIGNAL(changed()));
- connect(cursorFollowsCB, SIGNAL(clicked()),
- this, SIGNAL(changed()));
- connect(sortEnvironmentsCB, SIGNAL(clicked()),
- this, SIGNAL(changed()));
- connect(macroEditStyleCO, SIGNAL(activated(int)),
- this, SIGNAL(changed()));
connect(autoSaveSB, SIGNAL(valueChanged(int)),
this, SIGNAL(changed()));
connect(autoSaveCB, SIGNAL(clicked()),
this, SIGNAL(changed()));
connect(tooltipCB, SIGNAL(toggled(bool)),
this, SIGNAL(changed()));
- connect(fullscreenLimitGB, SIGNAL(clicked()),
- this, SIGNAL(changed()));
- connect(fullscreenWidthSB, SIGNAL(valueChanged(int)),
- this, SIGNAL(changed()));
- connect(toggleTabbarCB, SIGNAL(toggled(bool)),
- this, SIGNAL(changed()));
- connect(toggleScrollbarCB, SIGNAL(toggled(bool)),
- this, SIGNAL(changed()));
- connect(toggleToolbarsCB, SIGNAL(toggled(bool)),
- this, SIGNAL(changed()));
lastfilesSB->setMaximum(maxlastfiles);
}
rc.use_lastfilepos = restoreCursorCB->isChecked();
rc.load_session = loadSessionCB->isChecked();
rc.allow_geometry_session = allowGeometrySessionCB->isChecked();
- rc.cursor_follows_scrollbar = cursorFollowsCB->isChecked();
- rc.sort_layouts = sortEnvironmentsCB->isChecked();
- switch (macroEditStyleCO->currentIndex()) {
- case 0: rc.macro_edit_style = LyXRC::MACRO_EDIT_INLINE_BOX; break;
- case 1: rc.macro_edit_style = LyXRC::MACRO_EDIT_INLINE; break;
- case 2: rc.macro_edit_style = LyXRC::MACRO_EDIT_LIST; break;
- }
rc.autosave = autoSaveSB->value() * 60;
rc.make_backup = autoSaveCB->isChecked();
rc.num_lastfiles = lastfilesSB->value();
rc.use_tooltip = tooltipCB->isChecked();
- rc.full_screen_toolbars = toggleToolbarsCB->isChecked();
- rc.full_screen_scrollbar = toggleScrollbarCB->isChecked();
- rc.full_screen_tabbar = toggleTabbarCB->isChecked();
- rc.full_screen_width = fullscreenWidthSB->value();
- rc.full_screen_limit = fullscreenLimitGB->isChecked();
+ rc.open_buffers_in_tabs = openDocumentsInTabsCB->isChecked();
}
restoreCursorCB->setChecked(rc.use_lastfilepos);
loadSessionCB->setChecked(rc.load_session);
allowGeometrySessionCB->setChecked(rc.allow_geometry_session);
- cursorFollowsCB->setChecked(rc.cursor_follows_scrollbar);
- sortEnvironmentsCB->setChecked(rc.sort_layouts);
- macroEditStyleCO->setCurrentIndex(rc.macro_edit_style);
// convert to minutes
int mins(rc.autosave / 60);
if (rc.autosave && !mins)
autoSaveCB->setChecked(rc.make_backup);
lastfilesSB->setValue(rc.num_lastfiles);
tooltipCB->setChecked(rc.use_tooltip);
- toggleScrollbarCB->setChecked(rc.full_screen_scrollbar);
- toggleToolbarsCB->setChecked(rc.full_screen_toolbars);
- toggleTabbarCB->setChecked(rc.full_screen_tabbar);
- fullscreenWidthSB->setValue(rc.full_screen_width);
- fullscreenLimitGB->setChecked(rc.full_screen_limit);
-
+ openDocumentsInTabsCB->setChecked(rc.open_buffers_in_tabs);
}
uiFileED->setText(file);
}
+/////////////////////////////////////////////////////////////////////
+//
+// PrefEdit
+//
+/////////////////////////////////////////////////////////////////////
+
+PrefEdit::PrefEdit(GuiPreferences * form, QWidget * parent)
+ : PrefModule(qt_(catEditing), qt_("Control"), form, parent)
+{
+ setupUi(this);
+
+ connect(cursorFollowsCB, SIGNAL(clicked()),
+ this, SIGNAL(changed()));
+ connect(sortEnvironmentsCB, SIGNAL(clicked()),
+ this, SIGNAL(changed()));
+ connect(groupEnvironmentsCB, SIGNAL(clicked()),
+ this, SIGNAL(changed()));
+ connect(macroEditStyleCO, SIGNAL(activated(int)),
+ this, SIGNAL(changed()));
+ connect(fullscreenLimitGB, SIGNAL(clicked()),
+ this, SIGNAL(changed()));
+ connect(fullscreenWidthSB, SIGNAL(valueChanged(int)),
+ this, SIGNAL(changed()));
+ connect(toggleTabbarCB, SIGNAL(toggled(bool)),
+ this, SIGNAL(changed()));
+ connect(toggleScrollbarCB, SIGNAL(toggled(bool)),
+ this, SIGNAL(changed()));
+ connect(toggleToolbarsCB, SIGNAL(toggled(bool)),
+ this, SIGNAL(changed()));
+}
+
+
+void PrefEdit::apply(LyXRC & rc) const
+{
+ rc.cursor_follows_scrollbar = cursorFollowsCB->isChecked();
+ rc.sort_layouts = sortEnvironmentsCB->isChecked();
+ rc.group_layouts = groupEnvironmentsCB->isChecked();
+ switch (macroEditStyleCO->currentIndex()) {
+ case 0: rc.macro_edit_style = LyXRC::MACRO_EDIT_INLINE_BOX; break;
+ case 1: rc.macro_edit_style = LyXRC::MACRO_EDIT_INLINE; break;
+ case 2: rc.macro_edit_style = LyXRC::MACRO_EDIT_LIST; break;
+ }
+ rc.full_screen_toolbars = toggleToolbarsCB->isChecked();
+ rc.full_screen_scrollbar = toggleScrollbarCB->isChecked();
+ rc.full_screen_tabbar = toggleTabbarCB->isChecked();
+ rc.full_screen_width = fullscreenWidthSB->value();
+ rc.full_screen_limit = fullscreenLimitGB->isChecked();
+}
+
+
+void PrefEdit::update(LyXRC const & rc)
+{
+ cursorFollowsCB->setChecked(rc.cursor_follows_scrollbar);
+ sortEnvironmentsCB->setChecked(rc.sort_layouts);
+ groupEnvironmentsCB->setChecked(rc.group_layouts);
+ macroEditStyleCO->setCurrentIndex(rc.macro_edit_style);
+ toggleScrollbarCB->setChecked(rc.full_screen_scrollbar);
+ toggleToolbarsCB->setChecked(rc.full_screen_toolbars);
+ toggleTabbarCB->setChecked(rc.full_screen_tabbar);
+ fullscreenWidthSB->setValue(rc.full_screen_width);
+ fullscreenLimitGB->setChecked(rc.full_screen_limit);
+}
+
/////////////////////////////////////////////////////////////////////
//
PrefShortcuts::PrefShortcuts(GuiPreferences * form, QWidget * parent)
- : PrefModule(qt_("Shortcuts"), form, parent)
+ : PrefModule(qt_(catEditing), qt_("Shortcuts"), form, parent)
{
setupUi(this);
shortcutsTW->clear();
editItem_ = new QTreeWidgetItem(shortcutsTW);
- editItem_->setText(0, toqstr("Cursor, Mouse and Editing functions"));
+ editItem_->setText(0, qt_("Cursor, Mouse and Editing functions"));
editItem_->setFlags(editItem_->flags() & ~Qt::ItemIsSelectable);
mathItem_ = new QTreeWidgetItem(shortcutsTW);
- mathItem_->setText(0, toqstr("Mathematical Symbols"));
+ mathItem_->setText(0, qt_("Mathematical Symbols"));
mathItem_->setFlags(mathItem_->flags() & ~Qt::ItemIsSelectable);
bufferItem_ = new QTreeWidgetItem(shortcutsTW);
- bufferItem_->setText(0, toqstr("Buffer and Window"));
+ bufferItem_->setText(0, qt_("Buffer and Window"));
bufferItem_->setFlags(bufferItem_->flags() & ~Qt::ItemIsSelectable);
layoutItem_ = new QTreeWidgetItem(shortcutsTW);
- layoutItem_->setText(0, toqstr("Font, Layouts and Textclasses"));
+ layoutItem_->setText(0, qt_("Font, Layouts and Textclasses"));
layoutItem_->setFlags(layoutItem_->flags() & ~Qt::ItemIsSelectable);
systemItem_ = new QTreeWidgetItem(shortcutsTW);
- systemItem_->setText(0, toqstr("System and Miscellaneous"));
+ systemItem_->setText(0, qt_("System and Miscellaneous"));
systemItem_->setFlags(systemItem_->flags() & ~Qt::ItemIsSelectable);
// listBindings(unbound=true) lists all bound and unbound lfuns
QTreeWidgetItem * PrefShortcuts::insertShortcutItem(FuncRequest const & lfun,
KeySequence const & seq, item_type tag)
{
- kb_action action = lfun.action;
+ FuncCode action = lfun.action;
string const action_name = lyxaction.getActionName(action);
QString const lfun_name = toqstr(from_utf8(action_name)
- + " " + lfun.argument());
+ + ' ' + lfun.argument());
QString const shortcut = toqstr(seq.print(KeySequence::ForGui));
item_type item_tag = tag;
- QTreeWidgetItem * newItem = NULL;
+ QTreeWidgetItem * newItem = 0;
// for unbind items, try to find an existing item in the system bind list
if (tag == UserUnbind) {
QList<QTreeWidgetItem*> const items = shortcutsTW->findItems(lfun_name,
// unmatched removed?).
if (!newItem) {
item_tag = UserExtraUnbind;
- return NULL;
+ return 0;
}
}
if (!newItem) {
switch(lyxaction.getActionType(action)) {
case LyXAction::Hidden:
- return NULL;
+ return 0;
case LyXAction::Edit:
newItem = new QTreeWidgetItem(editItem_);
break;
item_type tag = static_cast<item_type>(items[0]->data(0, Qt::UserRole).toInt());
if (tag == UserUnbind)
- removePB->setText(toqstr("Restore"));
+ removePB->setText(qt_("Res&tore"));
else
- removePB->setText(toqstr("Remove"));
+ removePB->setText(qt_("Remo&ve"));
}
// but add an user unbind item
user_unbind_.bind(shortcut, func);
setItemType(items[i], UserUnbind);
- removePB->setText(toqstr("Restore"));
+ removePB->setText(qt_("Res&tore"));
break;
}
case UserBind: {
// become System again.
user_unbind_.unbind(shortcut, func);
setItemType(items[i], System);
- removePB->setText(toqstr("Remove"));
+ removePB->setText(qt_("Remo&ve"));
break;
}
case UserExtraUnbind: {
/////////////////////////////////////////////////////////////////////
PrefIdentity::PrefIdentity(QWidget * parent)
- : PrefModule(qt_("Identity"), 0, parent)
+ : PrefModule(QString(), qt_("Identity"), 0, parent)
{
setupUi(this);
connect(restorePB, SIGNAL(clicked()), this, SLOT(slotRestore()));
add(new PrefUserInterface(this));
+ add(new PrefEdit(this));
add(new PrefShortcuts(this));
add(new PrefScreenFonts(this));
add(new PrefColors(this));
add(new PrefDisplay);
add(new PrefInput(this));
+ add(new PrefCompletion(this));
add(new PrefPaths(this));
void GuiPreferences::add(PrefModule * module)
{
- BOOST_ASSERT(module);
- prefsPS->addPanel(module, module->title());
+ LASSERT(module, /**/);
+ if (module->category().isEmpty())
+ prefsPS->addPanel(module, module->title());
+ else
+ prefsPS->addPanel(module, module->title(), module->category());
connect(module, SIGNAL(changed()), this, SLOT(change_adaptor()));
modules_.push_back(module);
}