mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-12-23 21:40:19 +00:00
next one
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@20809 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
3f554746dc
commit
30725acc58
@ -1,210 +0,0 @@
|
||||
/**
|
||||
* \file ControlPrefs.cpp
|
||||
* This file is part of LyX, the document processor.
|
||||
* Licence details can be found in the file COPYING.
|
||||
*
|
||||
* \author John Levon
|
||||
*
|
||||
* Full author contact details are available in file CREDITS.
|
||||
*/
|
||||
|
||||
#include <config.h>
|
||||
|
||||
#include "ControlPrefs.h"
|
||||
|
||||
#include "frontend_helpers.h"
|
||||
|
||||
#include "BufferList.h"
|
||||
#include "gettext.h"
|
||||
#include "FuncRequest.h"
|
||||
#include "paper.h"
|
||||
#include "Color.h"
|
||||
|
||||
#include "support/FileFilterList.h"
|
||||
|
||||
#include <sstream>
|
||||
|
||||
using std::ostringstream;
|
||||
using std::pair;
|
||||
using std::string;
|
||||
using std::vector;
|
||||
using lyx::support::FileFilterList;
|
||||
|
||||
namespace lyx {
|
||||
|
||||
namespace frontend {
|
||||
|
||||
|
||||
ControlPrefs::ControlPrefs(Dialog & parent)
|
||||
: Controller(parent),
|
||||
update_screen_font_(false)
|
||||
{}
|
||||
|
||||
|
||||
bool ControlPrefs::initialiseParams(std::string const &)
|
||||
{
|
||||
rc_ = lyxrc;
|
||||
formats_ = lyx::formats;
|
||||
converters_ = theConverters();
|
||||
converters_.update(formats_);
|
||||
movers_ = theMovers();
|
||||
colors_.clear();
|
||||
update_screen_font_ = false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
void ControlPrefs::dispatchParams()
|
||||
{
|
||||
ostringstream ss;
|
||||
rc_.write(ss, true);
|
||||
dispatch(FuncRequest(LFUN_LYXRC_APPLY, ss.str()));
|
||||
// FIXME: these need lfuns
|
||||
// FIXME UNICODE
|
||||
theBufferList().setCurrentAuthor(from_utf8(rc_.user_name), from_utf8(rc_.user_email));
|
||||
|
||||
lyx::formats = formats_;
|
||||
|
||||
theConverters() = converters_;
|
||||
theConverters().update(lyx::formats);
|
||||
theConverters().buildGraph();
|
||||
|
||||
theMovers() = movers_;
|
||||
|
||||
vector<string>::const_iterator it = colors_.begin();
|
||||
vector<string>::const_iterator const end = colors_.end();
|
||||
for (; it != end; ++it)
|
||||
dispatch(FuncRequest(LFUN_SET_COLOR, *it));
|
||||
colors_.clear();
|
||||
|
||||
if (update_screen_font_) {
|
||||
dispatch(FuncRequest(LFUN_SCREEN_FONT_UPDATE));
|
||||
update_screen_font_ = false;
|
||||
}
|
||||
|
||||
// The Save button has been pressed
|
||||
if (dialog().isClosing()) {
|
||||
dispatch(FuncRequest(LFUN_PREFERENCES_SAVE));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void ControlPrefs::setColor(Color_color col, string const & hex)
|
||||
{
|
||||
colors_.push_back(lcolor.getLyXName(col) + ' ' + hex);
|
||||
}
|
||||
|
||||
|
||||
void ControlPrefs::updateScreenFonts()
|
||||
{
|
||||
update_screen_font_ = true;
|
||||
}
|
||||
|
||||
|
||||
docstring const ControlPrefs::browsebind(docstring const & file) const
|
||||
{
|
||||
return browseLibFile(from_ascii("bind"), file, from_ascii("bind"),
|
||||
_("Choose bind file"),
|
||||
FileFilterList(_("LyX bind files (*.bind)")));
|
||||
}
|
||||
|
||||
|
||||
docstring const ControlPrefs::browseUI(docstring const & file) const
|
||||
{
|
||||
return browseLibFile(from_ascii("ui"), file, from_ascii("ui"),
|
||||
_("Choose UI file"),
|
||||
FileFilterList(_("LyX UI files (*.ui)")));
|
||||
}
|
||||
|
||||
|
||||
docstring const ControlPrefs::browsekbmap(docstring const & file) const
|
||||
{
|
||||
return browseLibFile(from_ascii("kbd"), file, from_ascii("kmap"),
|
||||
_("Choose keyboard map"),
|
||||
FileFilterList(_("LyX keyboard maps (*.kmap)")));
|
||||
}
|
||||
|
||||
|
||||
docstring const ControlPrefs::browsedict(docstring const & file) const
|
||||
{
|
||||
if (lyxrc.use_spell_lib)
|
||||
return browseFile(file,
|
||||
_("Choose personal dictionary"),
|
||||
FileFilterList(_("*.pws")));
|
||||
else
|
||||
return browseFile(file,
|
||||
_("Choose personal dictionary"),
|
||||
FileFilterList(_("*.ispell")));
|
||||
}
|
||||
|
||||
|
||||
docstring const ControlPrefs::browse(docstring const & file,
|
||||
docstring const & title) const
|
||||
{
|
||||
return browseFile(file, title, FileFilterList(), true);
|
||||
}
|
||||
|
||||
|
||||
docstring const ControlPrefs::browsedir(docstring const & path,
|
||||
docstring const & title) const
|
||||
{
|
||||
return browseDir(path, title);
|
||||
}
|
||||
|
||||
|
||||
// We support less paper sizes than the document dialog
|
||||
// Therefore this adjustment is needed.
|
||||
PAPER_SIZE ControlPrefs::toPaperSize(int i) const
|
||||
{
|
||||
switch (i) {
|
||||
case 0:
|
||||
return PAPER_DEFAULT;
|
||||
case 1:
|
||||
return PAPER_USLETTER;
|
||||
case 2:
|
||||
return PAPER_USLEGAL;
|
||||
case 3:
|
||||
return PAPER_USEXECUTIVE;
|
||||
case 4:
|
||||
return PAPER_A3;
|
||||
case 5:
|
||||
return PAPER_A4;
|
||||
case 6:
|
||||
return PAPER_A5;
|
||||
case 7:
|
||||
return PAPER_B5;
|
||||
default:
|
||||
// should not happen
|
||||
return PAPER_DEFAULT;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
int ControlPrefs::fromPaperSize(PAPER_SIZE papersize) const
|
||||
{
|
||||
switch (papersize) {
|
||||
case PAPER_DEFAULT:
|
||||
return 0;
|
||||
case PAPER_USLETTER:
|
||||
return 1;
|
||||
case PAPER_USLEGAL:
|
||||
return 2;
|
||||
case PAPER_USEXECUTIVE:
|
||||
return 3;
|
||||
case PAPER_A3:
|
||||
return 4;
|
||||
case PAPER_A4:
|
||||
return 5;
|
||||
case PAPER_A5:
|
||||
return 6;
|
||||
case PAPER_B5:
|
||||
return 7;
|
||||
default:
|
||||
// should not happen
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
} // namespace frontend
|
||||
} // namespace lyx
|
@ -1,102 +0,0 @@
|
||||
// -*- C++ -*-
|
||||
/**
|
||||
* \file ControlPrefs.h
|
||||
* This file is part of LyX, the document processor.
|
||||
* Licence details can be found in the file COPYING.
|
||||
*
|
||||
* \author John Levon
|
||||
*
|
||||
* Full author contact details are available in file CREDITS.
|
||||
*/
|
||||
|
||||
#ifndef CONTROLPREFS_H
|
||||
#define CONTROLPREFS_H
|
||||
|
||||
#include "Dialog.h"
|
||||
#include "Converter.h"
|
||||
#include "Format.h"
|
||||
#include "LyXRC.h"
|
||||
#include "Mover.h"
|
||||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
namespace lyx {
|
||||
|
||||
class Color_color;
|
||||
|
||||
namespace frontend {
|
||||
|
||||
class ControlPrefs : public Controller {
|
||||
public:
|
||||
ControlPrefs(Dialog &);
|
||||
///
|
||||
virtual bool initialiseParams(std::string const &);
|
||||
///
|
||||
virtual void clearParams() {}
|
||||
///
|
||||
virtual void dispatchParams();
|
||||
///
|
||||
virtual bool isBufferDependent() const { return false; }
|
||||
|
||||
LyXRC & rc() { return rc_; }
|
||||
LyXRC const & rc() const { return rc_; }
|
||||
|
||||
Converters & converters() { return converters_; }
|
||||
Converters const & converters() const { return converters_; }
|
||||
|
||||
Formats & formats() { return formats_; }
|
||||
Formats const & formats() const { return formats_; }
|
||||
|
||||
Movers & movers() { return movers_; }
|
||||
Movers const & movers() const { return movers_; }
|
||||
|
||||
/// various file pickers
|
||||
docstring const browsebind(docstring const & file) const;
|
||||
docstring const browseUI(docstring const & file) const;
|
||||
docstring const browsekbmap(docstring const & file) const;
|
||||
docstring const browsedict(docstring const & file) const;
|
||||
|
||||
/// general browse
|
||||
docstring const browse(docstring const & file,
|
||||
docstring const & title) const;
|
||||
|
||||
/// browse directory
|
||||
docstring const browsedir(docstring const & path,
|
||||
docstring const & title) const;
|
||||
|
||||
/// set a color
|
||||
void setColor(Color_color col, std::string const & hex);
|
||||
|
||||
/// update the screen fonts after change
|
||||
void updateScreenFonts();
|
||||
|
||||
/// adjust the prefs paper sizes
|
||||
PAPER_SIZE toPaperSize(int i) const;
|
||||
/// adjust the prefs paper sizes
|
||||
int fromPaperSize(PAPER_SIZE papersize) const;
|
||||
|
||||
private:
|
||||
/// temporary lyxrc
|
||||
LyXRC rc_;
|
||||
|
||||
/// temporary converters
|
||||
Converters converters_;
|
||||
|
||||
/// temporary formats
|
||||
Formats formats_;
|
||||
|
||||
/// temporary movers
|
||||
Movers movers_;
|
||||
|
||||
/// A list of colors to be dispatched
|
||||
std::vector<std::string> colors_;
|
||||
|
||||
bool redraw_gui_;
|
||||
bool update_screen_font_;
|
||||
};
|
||||
|
||||
} // namespace frontend
|
||||
} // namespace lyx
|
||||
|
||||
#endif // CONTROLPREFS_H
|
@ -13,7 +13,6 @@ SOURCEFILES = \
|
||||
ControlCommandBuffer.cpp \
|
||||
ControlMath.cpp \
|
||||
ControlParagraph.cpp \
|
||||
ControlPrefs.cpp \
|
||||
frontend_helpers.cpp
|
||||
|
||||
HEADERFILES = \
|
||||
@ -23,7 +22,6 @@ HEADERFILES = \
|
||||
ControlCommandBuffer.h \
|
||||
ControlMath.h \
|
||||
ControlParagraph.h \
|
||||
ControlPrefs.h \
|
||||
frontend_helpers.h
|
||||
|
||||
if MONOLITHIC_CONTROLLERS
|
||||
|
@ -22,7 +22,6 @@
|
||||
#include "GuiMathMatrix.h"
|
||||
#include "GuiNomencl.h"
|
||||
#include "GuiParagraph.h"
|
||||
#include "GuiPrefs.h"
|
||||
#include "GuiView.h"
|
||||
#include "GuiURL.h"
|
||||
|
||||
@ -98,7 +97,7 @@ Dialog * createGuiLog(LyXView & lv);
|
||||
Dialog * createGuiMath(LyXView & lv);
|
||||
Dialog * createGuiNomencl(LyXView & lv);
|
||||
Dialog * createGuiNote(LyXView & lv);
|
||||
Dialog * createGuiPrefs(LyXView & lv);
|
||||
Dialog * createGuiPreferences(LyXView & lv);
|
||||
Dialog * createGuiPrint(LyXView & lv);
|
||||
Dialog * createGuiRef(LyXView & lv);
|
||||
Dialog * createGuiSearch(LyXView & lv);
|
||||
@ -190,7 +189,7 @@ Dialog * Dialogs::build(string const & name)
|
||||
#endif
|
||||
}
|
||||
if (name == "prefs")
|
||||
return new GuiPrefsDialog(lyxview_);
|
||||
return createGuiPreferences(lyxview_);
|
||||
if (name == "print")
|
||||
return createGuiPrint(lyxview_);
|
||||
if (name == "ref")
|
||||
|
@ -11,22 +11,25 @@
|
||||
#include <config.h>
|
||||
|
||||
#include "GuiPrefs.h"
|
||||
#include "ControlPrefs.h"
|
||||
|
||||
#include "qt_helpers.h"
|
||||
#include "GuiApplication.h"
|
||||
|
||||
#include "ConverterCache.h"
|
||||
#include "Session.h"
|
||||
#include "debug.h"
|
||||
#include "BufferList.h"
|
||||
#include "Color.h"
|
||||
#include "ConverterCache.h"
|
||||
#include "debug.h"
|
||||
#include "Font.h"
|
||||
#include "PanelStack.h"
|
||||
#include "GuiFontExample.h"
|
||||
#include "FuncRequest.h"
|
||||
#include "gettext.h"
|
||||
#include "GuiFontExample.h"
|
||||
#include "PanelStack.h"
|
||||
#include "paper.h"
|
||||
#include "Session.h"
|
||||
|
||||
#include "support/lstrings.h"
|
||||
#include "support/os.h"
|
||||
#include "support/FileFilterList.h"
|
||||
|
||||
#include "frontend_helpers.h"
|
||||
|
||||
@ -50,21 +53,23 @@
|
||||
|
||||
using namespace Ui;
|
||||
|
||||
using lyx::support::compare_ascii_no_case;
|
||||
using lyx::support::os::external_path;
|
||||
using lyx::support::os::external_path_list;
|
||||
using lyx::support::os::internal_path;
|
||||
using lyx::support::os::internal_path_list;
|
||||
|
||||
using std::endl;
|
||||
using std::string;
|
||||
using std::ostringstream;
|
||||
using std::pair;
|
||||
using std::string;
|
||||
using std::vector;
|
||||
|
||||
|
||||
namespace lyx {
|
||||
namespace frontend {
|
||||
|
||||
using support::compare_ascii_no_case;
|
||||
using support::os::external_path;
|
||||
using support::os::external_path_list;
|
||||
using support::os::internal_path;
|
||||
using support::os::internal_path_list;
|
||||
using support::FileFilterList;
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Helpers
|
||||
@ -234,7 +239,7 @@ void PrefDate::update(LyXRC const & rc)
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////
|
||||
|
||||
PrefKeyboard::PrefKeyboard(GuiPrefsDialog * form, QWidget * parent)
|
||||
PrefKeyboard::PrefKeyboard(GuiPreferences * form, QWidget * parent)
|
||||
: PrefModule(_("Keyboard"), form, parent)
|
||||
{
|
||||
setupUi(this);
|
||||
@ -268,7 +273,7 @@ void PrefKeyboard::update(LyXRC const & rc)
|
||||
|
||||
QString PrefKeyboard::testKeymap(QString keymap)
|
||||
{
|
||||
return toqstr(form_->controller().browsekbmap(from_utf8(internal_path(fromqstr(keymap)))));
|
||||
return toqstr(form_->browsekbmap(from_utf8(internal_path(fromqstr(keymap)))));
|
||||
}
|
||||
|
||||
|
||||
@ -305,7 +310,7 @@ void PrefKeyboard::on_keymapCB_toggled(bool keymap)
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////
|
||||
|
||||
PrefLatex::PrefLatex(GuiPrefsDialog * form, QWidget * parent)
|
||||
PrefLatex::PrefLatex(GuiPreferences * form, QWidget * parent)
|
||||
: PrefModule(_("LaTeX"), form, parent)
|
||||
{
|
||||
setupUi(this);
|
||||
@ -343,7 +348,7 @@ void PrefLatex::apply(LyXRC & rc) const
|
||||
rc.auto_reset_options = latexAutoresetCB->isChecked();
|
||||
rc.view_dvi_paper_option = fromqstr(latexDviPaperED->text());
|
||||
rc.default_papersize =
|
||||
form_->controller().toPaperSize(latexPaperSizeCO->currentIndex());
|
||||
form_->toPaperSize(latexPaperSizeCO->currentIndex());
|
||||
#if defined(__CYGWIN__) || defined(_WIN32)
|
||||
rc.windows_style_tex_paths = pathCB->isChecked();
|
||||
#endif
|
||||
@ -359,7 +364,7 @@ void PrefLatex::update(LyXRC const & rc)
|
||||
latexAutoresetCB->setChecked(rc.auto_reset_options);
|
||||
latexDviPaperED->setText(toqstr(rc.view_dvi_paper_option));
|
||||
latexPaperSizeCO->setCurrentIndex(
|
||||
form_->controller().fromPaperSize(rc.default_papersize));
|
||||
form_->fromPaperSize(rc.default_papersize));
|
||||
#if defined(__CYGWIN__) || defined(_WIN32)
|
||||
pathCB->setChecked(rc.windows_style_tex_paths);
|
||||
#endif
|
||||
@ -372,7 +377,7 @@ void PrefLatex::update(LyXRC const & rc)
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////
|
||||
|
||||
PrefScreenFonts::PrefScreenFonts(GuiPrefsDialog * form, QWidget * parent)
|
||||
PrefScreenFonts::PrefScreenFonts(GuiPreferences * form, QWidget * parent)
|
||||
: PrefModule(_("Screen fonts"), form, parent)
|
||||
{
|
||||
setupUi(this);
|
||||
@ -464,7 +469,7 @@ void PrefScreenFonts::apply(LyXRC & rc) const
|
||||
|| rc.sans_font_name != oldrc.sans_font_name
|
||||
|| rc.typewriter_font_name != oldrc.typewriter_font_name
|
||||
|| rc.zoom != oldrc.zoom || rc.dpi != oldrc.dpi) {
|
||||
form_->controller().updateScreenFonts();
|
||||
form_->updateScreenFonts();
|
||||
}
|
||||
}
|
||||
|
||||
@ -531,7 +536,7 @@ struct ColorSorter
|
||||
|
||||
} // namespace anon
|
||||
|
||||
PrefColors::PrefColors(GuiPrefsDialog * form, QWidget * parent)
|
||||
PrefColors::PrefColors(GuiPreferences * form, QWidget * parent)
|
||||
: PrefModule( _("Colors"), form, parent)
|
||||
{
|
||||
setupUi(this);
|
||||
@ -580,7 +585,7 @@ void PrefColors::apply(LyXRC & /*rc*/) const
|
||||
{
|
||||
for (unsigned int i = 0; i < lcolors_.size(); ++i)
|
||||
if (curcolors_[i] != newcolors_[i])
|
||||
form_->controller().setColor(lcolors_[i], fromqstr(newcolors_[i]));
|
||||
form_->setColor(lcolors_[i], fromqstr(newcolors_[i]));
|
||||
}
|
||||
|
||||
|
||||
@ -700,7 +705,7 @@ void PrefDisplay::update(LyXRC const & rc)
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////
|
||||
|
||||
PrefPaths::PrefPaths(GuiPrefsDialog * form, QWidget * parent)
|
||||
PrefPaths::PrefPaths(GuiPreferences * form, QWidget * parent)
|
||||
: PrefModule(_("Paths"), form, parent)
|
||||
{
|
||||
setupUi(this);
|
||||
@ -750,7 +755,7 @@ void PrefPaths::update(LyXRC const & rc)
|
||||
|
||||
void PrefPaths::select_templatedir()
|
||||
{
|
||||
docstring file(form_->controller().browsedir(
|
||||
docstring file(form_->browsedir(
|
||||
from_utf8(internal_path(fromqstr(templateDirED->text()))),
|
||||
_("Select a document templates directory")));
|
||||
if (!file.empty())
|
||||
@ -760,7 +765,7 @@ void PrefPaths::select_templatedir()
|
||||
|
||||
void PrefPaths::select_tempdir()
|
||||
{
|
||||
docstring file(form_->controller().browsedir(
|
||||
docstring file(form_->browsedir(
|
||||
from_utf8(internal_path(fromqstr(tempDirED->text()))),
|
||||
_("Select a temporary directory")));
|
||||
if (!file.empty())
|
||||
@ -770,7 +775,7 @@ void PrefPaths::select_tempdir()
|
||||
|
||||
void PrefPaths::select_backupdir()
|
||||
{
|
||||
docstring file(form_->controller().browsedir(
|
||||
docstring file(form_->browsedir(
|
||||
from_utf8(internal_path(fromqstr(backupDirED->text()))),
|
||||
_("Select a backups directory")));
|
||||
if (!file.empty())
|
||||
@ -780,7 +785,7 @@ void PrefPaths::select_backupdir()
|
||||
|
||||
void PrefPaths::select_workingdir()
|
||||
{
|
||||
docstring file(form_->controller().browsedir(
|
||||
docstring file(form_->browsedir(
|
||||
from_utf8(internal_path(fromqstr(workingDirED->text()))),
|
||||
_("Select a document directory")));
|
||||
if (!file.empty())
|
||||
@ -790,7 +795,7 @@ void PrefPaths::select_workingdir()
|
||||
|
||||
void PrefPaths::select_lyxpipe()
|
||||
{
|
||||
docstring file(form_->controller().browse(
|
||||
docstring file(form_->browse(
|
||||
from_utf8(internal_path(fromqstr(lyxserverDirED->text()))),
|
||||
_("Give a filename for the LyX server pipe")));
|
||||
if (!file.empty())
|
||||
@ -804,7 +809,7 @@ void PrefPaths::select_lyxpipe()
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////
|
||||
|
||||
PrefSpellchecker::PrefSpellchecker(GuiPrefsDialog * form, QWidget * parent)
|
||||
PrefSpellchecker::PrefSpellchecker(GuiPreferences * form, QWidget * parent)
|
||||
: PrefModule(_("Spellchecker"), form, parent)
|
||||
{
|
||||
setupUi(this);
|
||||
@ -899,7 +904,7 @@ void PrefSpellchecker::update(LyXRC const & rc)
|
||||
|
||||
void PrefSpellchecker::select_dict()
|
||||
{
|
||||
docstring file(form_->controller().browsedict(
|
||||
docstring file(form_->browsedict(
|
||||
from_utf8(internal_path(fromqstr(persDictionaryED->text())))));
|
||||
if (!file.empty())
|
||||
persDictionaryED->setText(toqstr(file));
|
||||
@ -914,7 +919,7 @@ void PrefSpellchecker::select_dict()
|
||||
/////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
PrefConverters::PrefConverters(GuiPrefsDialog * form, QWidget * parent)
|
||||
PrefConverters::PrefConverters(GuiPreferences * form, QWidget * parent)
|
||||
: PrefModule(_("Converters"), form, parent)
|
||||
{
|
||||
setupUi(this);
|
||||
@ -1183,7 +1188,7 @@ std::string FormatPrettynameValidator::str(Formats::const_iterator it) const
|
||||
}
|
||||
|
||||
|
||||
PrefFileformats::PrefFileformats(GuiPrefsDialog * form, QWidget * parent)
|
||||
PrefFileformats::PrefFileformats(GuiPreferences * form, QWidget * parent)
|
||||
: PrefModule(_("File formats"), form, parent)
|
||||
{
|
||||
setupUi(this);
|
||||
@ -1560,7 +1565,7 @@ void PrefPrinter::update(LyXRC const & rc)
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////
|
||||
|
||||
PrefUserInterface::PrefUserInterface(GuiPrefsDialog * form, QWidget * parent)
|
||||
PrefUserInterface::PrefUserInterface(GuiPreferences * form, QWidget * parent)
|
||||
: PrefModule(_("User interface"), form, parent)
|
||||
{
|
||||
setupUi(this);
|
||||
@ -1650,7 +1655,7 @@ void PrefUserInterface::select_ui()
|
||||
{
|
||||
docstring const name =
|
||||
from_utf8(internal_path(fromqstr(uiFileED->text())));
|
||||
docstring file = form_->controller().browseUI(name);
|
||||
docstring file = form_->browseUI(name);
|
||||
if (!file.empty())
|
||||
uiFileED->setText(toqstr(file));
|
||||
}
|
||||
@ -1660,7 +1665,7 @@ void PrefUserInterface::select_bind()
|
||||
{
|
||||
docstring const name =
|
||||
from_utf8(internal_path(fromqstr(bindFileED->text())));
|
||||
docstring file = form_->controller().browsebind(name);
|
||||
docstring file = form_->browsebind(name);
|
||||
if (!file.empty())
|
||||
bindFileED->setText(toqstr(file));
|
||||
}
|
||||
@ -1704,16 +1709,16 @@ void PrefIdentity::update(LyXRC const & rc)
|
||||
|
||||
/////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// GuiPrefsDialog
|
||||
// GuiPreferences
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////
|
||||
|
||||
GuiPrefsDialog::GuiPrefsDialog(LyXView & lv)
|
||||
: GuiDialog(lv, "prefs")
|
||||
GuiPreferences::GuiPreferences(LyXView & lv)
|
||||
: GuiDialog(lv, "prefs"), Controller(this), update_screen_font_(false)
|
||||
{
|
||||
setupUi(this);
|
||||
setViewTitle(_("Preferences"));
|
||||
setController(new ControlPrefs(*this));
|
||||
setController(this, false);
|
||||
|
||||
QDialog::setModal(false);
|
||||
|
||||
@ -1762,13 +1767,7 @@ GuiPrefsDialog::GuiPrefsDialog(LyXView & lv)
|
||||
}
|
||||
|
||||
|
||||
ControlPrefs & GuiPrefsDialog::controller()
|
||||
{
|
||||
return static_cast<ControlPrefs &>(GuiDialog::controller());
|
||||
}
|
||||
|
||||
|
||||
void GuiPrefsDialog::add(PrefModule * module)
|
||||
void GuiPreferences::add(PrefModule * module)
|
||||
{
|
||||
BOOST_ASSERT(module);
|
||||
prefsPS->addPanel(module, module->title());
|
||||
@ -1777,20 +1776,20 @@ void GuiPrefsDialog::add(PrefModule * module)
|
||||
}
|
||||
|
||||
|
||||
void GuiPrefsDialog::closeEvent(QCloseEvent * e)
|
||||
void GuiPreferences::closeEvent(QCloseEvent * e)
|
||||
{
|
||||
slotClose();
|
||||
e->accept();
|
||||
}
|
||||
|
||||
|
||||
void GuiPrefsDialog::change_adaptor()
|
||||
void GuiPreferences::change_adaptor()
|
||||
{
|
||||
changed();
|
||||
}
|
||||
|
||||
|
||||
void GuiPrefsDialog::apply(LyXRC & rc) const
|
||||
void GuiPreferences::apply(LyXRC & rc) const
|
||||
{
|
||||
size_t end = modules_.size();
|
||||
for (size_t i = 0; i != end; ++i)
|
||||
@ -1798,7 +1797,7 @@ void GuiPrefsDialog::apply(LyXRC & rc) const
|
||||
}
|
||||
|
||||
|
||||
void GuiPrefsDialog::updateRc(LyXRC const & rc)
|
||||
void GuiPreferences::updateRc(LyXRC const & rc)
|
||||
{
|
||||
size_t const end = modules_.size();
|
||||
for (size_t i = 0; i != end; ++i)
|
||||
@ -1806,34 +1805,187 @@ void GuiPrefsDialog::updateRc(LyXRC const & rc)
|
||||
}
|
||||
|
||||
|
||||
Converters & GuiPrefsDialog::converters()
|
||||
void GuiPreferences::applyView()
|
||||
{
|
||||
return controller().converters();
|
||||
apply(rc());
|
||||
}
|
||||
|
||||
|
||||
Formats & GuiPrefsDialog::formats()
|
||||
void GuiPreferences::updateContents()
|
||||
{
|
||||
return controller().formats();
|
||||
updateRc(rc());
|
||||
}
|
||||
|
||||
|
||||
Movers & GuiPrefsDialog::movers()
|
||||
bool GuiPreferences::initialiseParams(std::string const &)
|
||||
{
|
||||
return controller().movers();
|
||||
rc_ = lyxrc;
|
||||
formats_ = lyx::formats;
|
||||
converters_ = theConverters();
|
||||
converters_.update(formats_);
|
||||
movers_ = theMovers();
|
||||
colors_.clear();
|
||||
update_screen_font_ = false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
void GuiPrefsDialog::applyView()
|
||||
void GuiPreferences::dispatchParams()
|
||||
{
|
||||
apply(controller().rc());
|
||||
ostringstream ss;
|
||||
rc_.write(ss, true);
|
||||
dispatch(FuncRequest(LFUN_LYXRC_APPLY, ss.str()));
|
||||
// FIXME: these need lfuns
|
||||
// FIXME UNICODE
|
||||
theBufferList().setCurrentAuthor(from_utf8(rc_.user_name), from_utf8(rc_.user_email));
|
||||
|
||||
lyx::formats = formats_;
|
||||
|
||||
theConverters() = converters_;
|
||||
theConverters().update(lyx::formats);
|
||||
theConverters().buildGraph();
|
||||
|
||||
theMovers() = movers_;
|
||||
|
||||
vector<string>::const_iterator it = colors_.begin();
|
||||
vector<string>::const_iterator const end = colors_.end();
|
||||
for (; it != end; ++it)
|
||||
dispatch(FuncRequest(LFUN_SET_COLOR, *it));
|
||||
colors_.clear();
|
||||
|
||||
if (update_screen_font_) {
|
||||
dispatch(FuncRequest(LFUN_SCREEN_FONT_UPDATE));
|
||||
update_screen_font_ = false;
|
||||
}
|
||||
|
||||
// The Save button has been pressed
|
||||
if (dialog().isClosing()) {
|
||||
dispatch(FuncRequest(LFUN_PREFERENCES_SAVE));
|
||||
}
|
||||
}
|
||||
|
||||
void GuiPrefsDialog::updateContents()
|
||||
|
||||
void GuiPreferences::setColor(Color_color col, string const & hex)
|
||||
{
|
||||
updateRc(controller().rc());
|
||||
colors_.push_back(lcolor.getLyXName(col) + ' ' + hex);
|
||||
}
|
||||
|
||||
|
||||
void GuiPreferences::updateScreenFonts()
|
||||
{
|
||||
update_screen_font_ = true;
|
||||
}
|
||||
|
||||
|
||||
docstring const GuiPreferences::browsebind(docstring const & file) const
|
||||
{
|
||||
return browseLibFile(from_ascii("bind"), file, from_ascii("bind"),
|
||||
_("Choose bind file"),
|
||||
FileFilterList(_("LyX bind files (*.bind)")));
|
||||
}
|
||||
|
||||
|
||||
docstring const GuiPreferences::browseUI(docstring const & file) const
|
||||
{
|
||||
return browseLibFile(from_ascii("ui"), file, from_ascii("ui"),
|
||||
_("Choose UI file"),
|
||||
FileFilterList(_("LyX UI files (*.ui)")));
|
||||
}
|
||||
|
||||
|
||||
docstring const GuiPreferences::browsekbmap(docstring const & file) const
|
||||
{
|
||||
return browseLibFile(from_ascii("kbd"), file, from_ascii("kmap"),
|
||||
_("Choose keyboard map"),
|
||||
FileFilterList(_("LyX keyboard maps (*.kmap)")));
|
||||
}
|
||||
|
||||
|
||||
docstring const GuiPreferences::browsedict(docstring const & file) const
|
||||
{
|
||||
if (lyxrc.use_spell_lib)
|
||||
return browseFile(file,
|
||||
_("Choose personal dictionary"),
|
||||
FileFilterList(_("*.pws")));
|
||||
else
|
||||
return browseFile(file,
|
||||
_("Choose personal dictionary"),
|
||||
FileFilterList(_("*.ispell")));
|
||||
}
|
||||
|
||||
|
||||
docstring const GuiPreferences::browse(docstring const & file,
|
||||
docstring const & title) const
|
||||
{
|
||||
return browseFile(file, title, FileFilterList(), true);
|
||||
}
|
||||
|
||||
|
||||
docstring const GuiPreferences::browsedir(docstring const & path,
|
||||
docstring const & title) const
|
||||
{
|
||||
return browseDir(path, title);
|
||||
}
|
||||
|
||||
|
||||
// We support less paper sizes than the document dialog
|
||||
// Therefore this adjustment is needed.
|
||||
PAPER_SIZE GuiPreferences::toPaperSize(int i) const
|
||||
{
|
||||
switch (i) {
|
||||
case 0:
|
||||
return PAPER_DEFAULT;
|
||||
case 1:
|
||||
return PAPER_USLETTER;
|
||||
case 2:
|
||||
return PAPER_USLEGAL;
|
||||
case 3:
|
||||
return PAPER_USEXECUTIVE;
|
||||
case 4:
|
||||
return PAPER_A3;
|
||||
case 5:
|
||||
return PAPER_A4;
|
||||
case 6:
|
||||
return PAPER_A5;
|
||||
case 7:
|
||||
return PAPER_B5;
|
||||
default:
|
||||
// should not happen
|
||||
return PAPER_DEFAULT;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
int GuiPreferences::fromPaperSize(PAPER_SIZE papersize) const
|
||||
{
|
||||
switch (papersize) {
|
||||
case PAPER_DEFAULT:
|
||||
return 0;
|
||||
case PAPER_USLETTER:
|
||||
return 1;
|
||||
case PAPER_USLEGAL:
|
||||
return 2;
|
||||
case PAPER_USEXECUTIVE:
|
||||
return 3;
|
||||
case PAPER_A3:
|
||||
return 4;
|
||||
case PAPER_A4:
|
||||
return 5;
|
||||
case PAPER_A5:
|
||||
return 6;
|
||||
case PAPER_B5:
|
||||
return 7;
|
||||
default:
|
||||
// should not happen
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Dialog * createGuiPreferences(LyXView & lv) { return new GuiPreferences(lv); }
|
||||
|
||||
|
||||
} // namespace frontend
|
||||
} // namespace lyx
|
||||
|
||||
|
@ -13,10 +13,12 @@
|
||||
#define GUIPREFS_H
|
||||
|
||||
#include "GuiDialog.h"
|
||||
#include "ControlPrefs.h"
|
||||
|
||||
#include "Color.h"
|
||||
#include "LyXRC.h"
|
||||
#include "Converter.h"
|
||||
#include "Format.h"
|
||||
#include "LyXRC.h"
|
||||
#include "Mover.h"
|
||||
|
||||
#include "ui_PrefsUi.h"
|
||||
|
||||
@ -39,24 +41,27 @@
|
||||
#include <QDialog>
|
||||
#include <QValidator>
|
||||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
|
||||
namespace lyx {
|
||||
|
||||
class Color_color;
|
||||
class Converters;
|
||||
class Formats;
|
||||
class Movers;
|
||||
|
||||
namespace frontend {
|
||||
|
||||
class GuiPrefsDialog;
|
||||
class GuiPreferences;
|
||||
|
||||
class PrefModule : public QWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
PrefModule(docstring const & t,
|
||||
GuiPrefsDialog * form = 0, QWidget * parent = 0)
|
||||
GuiPreferences * form = 0, QWidget * parent = 0)
|
||||
: QWidget(parent), title_(t), form_(form)
|
||||
{}
|
||||
|
||||
@ -67,7 +72,7 @@ public:
|
||||
|
||||
protected:
|
||||
docstring title_;
|
||||
GuiPrefsDialog * form_;
|
||||
GuiPreferences * form_;
|
||||
|
||||
Q_SIGNALS:
|
||||
void changed();
|
||||
@ -100,7 +105,7 @@ class PrefKeyboard : public PrefModule, public Ui::PrefKeyboardUi
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
PrefKeyboard(GuiPrefsDialog * form, QWidget * parent = 0);
|
||||
PrefKeyboard(GuiPreferences * form, QWidget * parent = 0);
|
||||
|
||||
virtual void apply(LyXRC & rc) const;
|
||||
virtual void update(LyXRC const & rc);
|
||||
@ -119,7 +124,7 @@ class PrefLatex : public PrefModule, public Ui::PrefLatexUi
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
PrefLatex(GuiPrefsDialog * form, QWidget * parent = 0);
|
||||
PrefLatex(GuiPreferences * form, QWidget * parent = 0);
|
||||
|
||||
virtual void apply(LyXRC & rc) const;
|
||||
virtual void update(LyXRC const & rc);
|
||||
@ -130,7 +135,7 @@ class PrefScreenFonts : public PrefModule, public Ui::PrefScreenFontsUi
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
PrefScreenFonts(GuiPrefsDialog * form, QWidget * parent = 0);
|
||||
PrefScreenFonts(GuiPreferences * form, QWidget * parent = 0);
|
||||
|
||||
virtual void apply(LyXRC & rc) const;
|
||||
virtual void update(LyXRC const & rc);
|
||||
@ -146,7 +151,7 @@ class PrefColors : public PrefModule, public Ui::PrefColorsUi
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
PrefColors(GuiPrefsDialog * form, QWidget * parent = 0);
|
||||
PrefColors(GuiPreferences * form, QWidget * parent = 0);
|
||||
|
||||
void apply(LyXRC & rc) const;
|
||||
void update(LyXRC const & rc);
|
||||
@ -181,7 +186,7 @@ class PrefPaths : public PrefModule, public Ui::PrefPathsUi
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
PrefPaths(GuiPrefsDialog * form, QWidget * parent = 0);
|
||||
PrefPaths(GuiPreferences * form, QWidget * parent = 0);
|
||||
|
||||
void apply(LyXRC & rc) const;
|
||||
void update(LyXRC const & rc);
|
||||
@ -200,7 +205,7 @@ class PrefSpellchecker : public PrefModule, public Ui::PrefSpellcheckerUi
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
PrefSpellchecker(GuiPrefsDialog * form, QWidget * parent = 0);
|
||||
PrefSpellchecker(GuiPreferences * form, QWidget * parent = 0);
|
||||
|
||||
void apply(LyXRC & rc) const;
|
||||
void update(LyXRC const & rc);
|
||||
@ -214,7 +219,7 @@ class PrefConverters : public PrefModule, public Ui::PrefConvertersUi
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
PrefConverters(GuiPrefsDialog * form, QWidget * parent = 0);
|
||||
PrefConverters(GuiPreferences * form, QWidget * parent = 0);
|
||||
|
||||
void apply(LyXRC & rc) const;
|
||||
void update(LyXRC const & rc);
|
||||
@ -268,7 +273,7 @@ class PrefFileformats : public PrefModule, public Ui::PrefFileformatsUi
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
PrefFileformats(GuiPrefsDialog * form, QWidget * parent = 0);
|
||||
PrefFileformats(GuiPreferences * form, QWidget * parent = 0);
|
||||
|
||||
void apply(LyXRC & rc) const;
|
||||
void update(LyXRC const & rc);
|
||||
@ -326,7 +331,7 @@ class PrefUserInterface : public PrefModule, public Ui::PrefUi
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
PrefUserInterface(GuiPrefsDialog * form, QWidget * parent = 0);
|
||||
PrefUserInterface(GuiPreferences * form, QWidget * parent = 0);
|
||||
|
||||
void apply(LyXRC & rc) const;
|
||||
void update(LyXRC const & rc);
|
||||
@ -349,12 +354,12 @@ public:
|
||||
void update(LyXRC const & rc);
|
||||
};
|
||||
|
||||
///
|
||||
class GuiPrefsDialog : public GuiDialog, public Ui::PrefsUi
|
||||
|
||||
class GuiPreferences : public GuiDialog, public Ui::PrefsUi, public Controller
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
GuiPrefsDialog(LyXView & lv);
|
||||
GuiPreferences(LyXView & lv);
|
||||
|
||||
void apply(LyXRC & rc) const;
|
||||
void updateRc(LyXRC const & rc);
|
||||
@ -367,20 +372,69 @@ public:
|
||||
void closeEvent(QCloseEvent * e);
|
||||
///
|
||||
void add(PrefModule * module);
|
||||
///
|
||||
Converters & converters();
|
||||
///
|
||||
Formats & formats();
|
||||
///
|
||||
Movers & movers();
|
||||
/// parent controller
|
||||
ControlPrefs & controller();
|
||||
Controller & controller() { return *this; }
|
||||
/// Apply changes
|
||||
void applyView();
|
||||
/// update (do we need this?)
|
||||
void updateContents();
|
||||
|
||||
std::vector<PrefModule *> modules_;
|
||||
|
||||
///
|
||||
bool initialiseParams(std::string const &);
|
||||
///
|
||||
void clearParams() {}
|
||||
///
|
||||
void dispatchParams();
|
||||
///
|
||||
bool isBufferDependent() const { return false; }
|
||||
|
||||
/// various file pickers
|
||||
docstring const browsebind(docstring const & file) const;
|
||||
docstring const browseUI(docstring const & file) const;
|
||||
docstring const browsekbmap(docstring const & file) const;
|
||||
docstring const browsedict(docstring const & file) const;
|
||||
|
||||
/// general browse
|
||||
docstring const browse(docstring const & file,
|
||||
docstring const & title) const;
|
||||
|
||||
/// browse directory
|
||||
docstring const browsedir(docstring const & path,
|
||||
docstring const & title) const;
|
||||
|
||||
/// set a color
|
||||
void setColor(Color_color col, std::string const & hex);
|
||||
|
||||
/// update the screen fonts after change
|
||||
void updateScreenFonts();
|
||||
|
||||
/// adjust the prefs paper sizes
|
||||
PAPER_SIZE toPaperSize(int i) const;
|
||||
/// adjust the prefs paper sizes
|
||||
int fromPaperSize(PAPER_SIZE papersize) const;
|
||||
|
||||
LyXRC & rc() { return rc_; }
|
||||
Converters & converters() { return converters_; }
|
||||
Formats & formats() { return formats_; }
|
||||
Movers & movers() { return movers_; }
|
||||
|
||||
private:
|
||||
/// temporary lyxrc
|
||||
LyXRC rc_;
|
||||
/// temporary converters
|
||||
Converters converters_;
|
||||
/// temporary formats
|
||||
Formats formats_;
|
||||
/// temporary movers
|
||||
Movers movers_;
|
||||
|
||||
/// A list of colors to be dispatched
|
||||
std::vector<std::string> colors_;
|
||||
|
||||
bool redraw_gui_;
|
||||
bool update_screen_font_;
|
||||
};
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user