more consistent font selections by avoiding QApplication

This commit is contained in:
Axel Kohlmeyer
2024-08-13 03:21:32 -04:00
parent 8111697882
commit 206302a8e1
3 changed files with 48 additions and 14 deletions

View File

@ -168,17 +168,20 @@ LammpsGui::LammpsGui(QWidget *parent, const char *filename) :
setWindowIcon(QIcon(":/icons/lammps-icon-128x128.png")); setWindowIcon(QIcon(":/icons/lammps-icon-128x128.png"));
QFont all_font("Arial", -1); QFont all_font;
all_font.fromString(settings.value("allfont", QFont("Arial", -1).toString()).toString());
all_font.setStyleHint(QFont::SansSerif, QFont::PreferOutline); all_font.setStyleHint(QFont::SansSerif, QFont::PreferOutline);
all_font.fromString(settings.value("allfont", all_font.toString()).toString());
settings.setValue("allfont", all_font.toString()); settings.setValue("allfont", all_font.toString());
QApplication::setFont(all_font); setFont(all_font);
QFont text_font("Monospace", -1); QFont text_font;
text_font.fromString(settings.value("textfont", QFont("Monospace", -1).toString()).toString());
text_font.setStyleHint(QFont::Monospace, QFont::PreferOutline); text_font.setStyleHint(QFont::Monospace, QFont::PreferOutline);
text_font.fromString(settings.value("textfont", text_font.toString()).toString()); text_font.setFixedPitch(true);
settings.setValue("textfont", text_font.toString()); settings.setValue("textfont", text_font.toString());
ui->textEdit->setFont(text_font); ui->textEdit->setFont(text_font);
ui->textEdit->document()->setDefaultFont(text_font);
ui->textEdit->setMinimumSize(600, 400); ui->textEdit->setMinimumSize(600, 400);
varwindow = new QLabel(QString()); varwindow = new QLabel(QString());
@ -820,6 +823,7 @@ void LammpsGui::inspect_file(const QString &fileName)
QFile(infodata).remove(); QFile(infodata).remove();
auto *inspect_image = new ImageViewer( auto *inspect_image = new ImageViewer(
fileName, &lammps, QString("LAMMPS-GUI: Image for %1").arg(shortName)); fileName, &lammps, QString("LAMMPS-GUI: Image for %1").arg(shortName));
inspect_image->setFont(font());
inspect_image->show(); inspect_image->show();
ilist->image = inspect_image; ilist->image = inspect_image;
} }
@ -1415,6 +1419,21 @@ void LammpsGui::autoSave()
if (autosave) write_file(fileName); if (autosave) write_file(fileName);
} }
void LammpsGui::setFont(const QFont &newfont)
{
QMainWindow::setFont(newfont);
if (ui) {
ui->textEdit->setFont(newfont);
ui->menubar->setFont(newfont);
ui->menuFile->setFont(newfont);
ui->menuEdit->setFont(newfont);
ui->menu_Run->setFont(newfont);
ui->menu_Tutorial->setFont(newfont);
ui->menuAbout->setFont(newfont);
ui->menu_View->setFont(newfont);
}
}
void LammpsGui::about() void LammpsGui::about()
{ {
std::string version = "This is LAMMPS-GUI version " LAMMPS_GUI_VERSION; std::string version = "This is LAMMPS-GUI version " LAMMPS_GUI_VERSION;
@ -1457,9 +1476,9 @@ void LammpsGui::about()
msg.setInformativeText(info.c_str()); msg.setInformativeText(info.c_str());
msg.setIconPixmap(QPixmap(":/icons/lammps-icon-128x128.png").scaled(64, 64)); msg.setIconPixmap(QPixmap(":/icons/lammps-icon-128x128.png").scaled(64, 64));
msg.setStandardButtons(QMessageBox::Close); msg.setStandardButtons(QMessageBox::Close);
QFont font; QFont myfont(font());
font.setPointSizeF(font.pointSizeF() * 0.75); myfont.setPointSize(myfont.pointSizeF() * 0.8);
msg.setFont(font); msg.setFont(myfont);
auto *minwidth = new QSpacerItem(700, 0, QSizePolicy::Minimum, QSizePolicy::Expanding); auto *minwidth = new QSpacerItem(700, 0, QSizePolicy::Minimum, QSizePolicy::Expanding);
auto *layout = (QGridLayout *)msg.layout(); auto *layout = (QGridLayout *)msg.layout();
@ -1521,6 +1540,7 @@ void LammpsGui::help()
"LAMMPS-GUI in parallel with MPI.</p>"); "LAMMPS-GUI in parallel with MPI.</p>");
msg.setIconPixmap(QPixmap(":/icons/lammps-icon-128x128.png").scaled(64, 64)); msg.setIconPixmap(QPixmap(":/icons/lammps-icon-128x128.png").scaled(64, 64));
msg.setStandardButtons(QMessageBox::Close); msg.setStandardButtons(QMessageBox::Close);
msg.setFont(font());
msg.exec(); msg.exec();
} }
@ -1539,6 +1559,7 @@ void LammpsGui::start_tutorial1()
{ {
if (wizard) delete wizard; if (wizard) delete wizard;
wizard = new Tutorial1Wizard; wizard = new Tutorial1Wizard;
wizard->setFont(font());
wizard->addPage(tutorial1_intro()); wizard->addPage(tutorial1_intro());
wizard->addPage(tutorial1_info()); wizard->addPage(tutorial1_info());
wizard->addPage(tutorial1_directory()); wizard->addPage(tutorial1_directory());
@ -1835,6 +1856,7 @@ void LammpsGui::edit_variables()
{ {
QList<QPair<QString, QString>> newvars = variables; QList<QPair<QString, QString>> newvars = variables;
SetVariables vars(newvars); SetVariables vars(newvars);
vars.setFont(font());
if (vars.exec() == QDialog::Accepted) { if (vars.exec() == QDialog::Accepted) {
variables = newvars; variables = newvars;
if (lammps.is_running()) { if (lammps.is_running()) {
@ -1856,6 +1878,8 @@ void LammpsGui::preferences()
bool oldcite = settings.value("cite", false).toBool(); bool oldcite = settings.value("cite", false).toBool();
Preferences prefs(&lammps); Preferences prefs(&lammps);
prefs.setFont(font());
prefs.setObjectName("preferences");
if (prefs.exec() == QDialog::Accepted) { if (prefs.exec() == QDialog::Accepted) {
// must delete LAMMPS instance after preferences have changed that require // must delete LAMMPS instance after preferences have changed that require
// using different command line flags when creating the LAMMPS instance like // using different command line flags when creating the LAMMPS instance like

View File

@ -35,6 +35,7 @@
// forward declarations // forward declarations
class QFont;
class QLabel; class QLabel;
class QPlainTextEdit; class QPlainTextEdit;
class QProgressBar; class QProgressBar;
@ -82,6 +83,7 @@ protected:
void run_done(); void run_done();
void setDocver(); void setDocver();
void autoSave(); void autoSave();
void setFont(const QFont &newfont);
QWizardPage *tutorial1_intro(); QWizardPage *tutorial1_intro();
QWizardPage *tutorial1_info(); QWizardPage *tutorial1_info();
QWizardPage *tutorial1_directory(); QWizardPage *tutorial1_directory();

View File

@ -295,16 +295,24 @@ void GeneralTab::updatefonts(const QFont &all, const QFont &text)
for (QWidget *widget : QApplication::topLevelWidgets()) for (QWidget *widget : QApplication::topLevelWidgets())
if (widget->objectName() == "LammpsGui") main = dynamic_cast<LammpsGui *>(widget); if (widget->objectName() == "LammpsGui") main = dynamic_cast<LammpsGui *>(widget);
QApplication::setFont(all); if (main) {
if (main) main->ui->textEdit->document()->setDefaultFont(text); main->setFont(all);
main->ui->textEdit->document()->setDefaultFont(text);
if (main->wizard) main->wizard->setFont(all);
}
Preferences *prefs = nullptr;
for (QWidget *widget : QApplication::topLevelWidgets())
if (widget->objectName() == "preferences") prefs = dynamic_cast<Preferences *>(widget);
if (prefs) prefs->setFont(all);
} }
void GeneralTab::newallfont() void GeneralTab::newallfont()
{ {
QSettings settings; QSettings settings;
QFont all, text; QFont all, text;
all.fromString(settings.value("allfont", "").toString()); all.fromString(settings.value("allfont", QFont("Arial", -1).toString()).toString());
text.fromString(settings.value("textfont", "").toString()); text.fromString(settings.value("textfont", QFont("Monospace", -1).toString()).toString());
bool ok = false; bool ok = false;
QFont font = QFontDialog::getFont(&ok, all, this, QString("Select Default Font")); QFont font = QFontDialog::getFont(&ok, all, this, QString("Select Default Font"));
@ -317,8 +325,8 @@ void GeneralTab::newtextfont()
{ {
QSettings settings; QSettings settings;
QFont all, text; QFont all, text;
all.fromString(settings.value("allfont", "").toString()); all.fromString(settings.value("allfont", QFont("Arial", -1).toString()).toString());
text.fromString(settings.value("textfont", "").toString()); text.fromString(settings.value("textfont", QFont("Monospace", -1).toString()).toString());
bool ok = false; bool ok = false;
QFont font = QFontDialog::getFont(&ok, text, this, QString("Select Text Font")); QFont font = QFontDialog::getFont(&ok, text, this, QString("Select Text Font"));