#include "ui/QPrefPrinterModule.h"
#include "ui/QPrefUIModule.h"
#include "ui/QPrefIdentityModule.h"
+#include "lyx_gui.h"
#include "QPrefs.h"
#include "Qt2BC.h"
#include "lyxrc.h"
#include <qcombobox.h>
#include <qlistbox.h>
#include <qlabel.h>
+#include <qfontinfo.h>
#include "qcoloritem.h"
using std::vector;
return;
}
}
-}
+ // Bleh, default fonts, and the names couldn't be found. Hack
+ // for bug 1063. Qt makes baby Jesus cry.
+
+ QFont font;
+
+ if (family == lyx_gui::roman_font_name()) {
+ font.setStyleHint(QFont::Serif);
+ font.setFamily(lyx_gui::roman_font_name().c_str());
+ } else if (family == lyx_gui::sans_font_name()) {
+ font.setStyleHint(QFont::SansSerif);
+ font.setFamily(lyx_gui::sans_font_name().c_str());
+ } else if (family == lyx_gui::typewriter_font_name()) {
+ font.setStyleHint(QFont::TypeWriter);
+ font.setFamily(lyx_gui::typewriter_font_name().c_str());
+ } else {
+ lyxerr << "FAILED to find the default font !"
+ << foundry << ", " << family << endl;
+ return;
+ }
+
+ QFontInfo info(font);
+ lyxerr << "Apparent font is " << info.family() << endl;
+
+ for (int i = 0; i < cb->count(); ++i) {
+ lyxerr << "Looking at " << fromqstr(cb->text(i)) << endl;
+ if (compare_no_case(cb->text(i).latin1(), info.family().latin1()) == 0) {
+ cb->setCurrentItem(i);
+ return;
+ }
+ }
+
+ lyxerr << "FAILED to find the font !"
+ << foundry << ", " << family << endl;
}
+} // end namespace anon
+
+
void QPrefs::update_contents()
{
LyXRC const & rc(controller().rc());
#include <qwidget.h>
#include <qpaintdevicemetrics.h>
#include <qfont.h>
+#include <qfontinfo.h>
#include <fcntl.h>
#include <cstdlib>
return "serif";
QFont font;
- font.setFamily("serif");
font.setStyleHint(QFont::Serif);
- return font.family().latin1();
+ font.setFamily("serif");
+ return QFontInfo(font).family().latin1();
}
return "sans";
QFont font;
- font.setFamily("sans");
font.setStyleHint(QFont::SansSerif);
- return font.family().latin1();
+ font.setFamily("sans");
+ return QFontInfo(font).family().latin1();
}
return "monospace";
QFont font;
- font.setFamily("monospace");
font.setStyleHint(QFont::TypeWriter);
- return font.family().latin1();
+ font.setFamily("monospace");
+ return QFontInfo(font).family().latin1();
}
}; // namespace lyx_gui