diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 24742edef..0b9f7a823 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -105,6 +105,7 @@ set(keepassx_SOURCES gui/EditWidgetIcons.cpp gui/EditWidgetProperties.cpp gui/FileDialog.cpp + gui/Font.cpp gui/IconModels.cpp gui/KeePass1OpenWidget.cpp gui/KMessageWidget.cpp diff --git a/src/gui/Font.cpp b/src/gui/Font.cpp new file mode 100644 index 000000000..3583622dd --- /dev/null +++ b/src/gui/Font.cpp @@ -0,0 +1,36 @@ +/* + * Copyright (C) 2017 KeePassXC Team + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 or (at your option) + * version 3 of the License. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "Font.h" + +#include + +QFont Font::fixedFont() +{ + QFont fixedFont = QFontDatabase::systemFont(QFontDatabase::FixedFont); + +#ifdef Q_OS_WIN + // try to use Consolas on Windows, because the default Courier New has too many similar characters + QFont consolasFont = QFontDatabase().font("Consolas", fixedFont.styleName(), fixedFont.pointSize()); + const QFont defaultFont; + if (fixedFont != defaultFont) { + fixedFont = consolasFont; + } +#endif + + return fixedFont; +} diff --git a/src/gui/Font.h b/src/gui/Font.h new file mode 100644 index 000000000..bfc3d7d36 --- /dev/null +++ b/src/gui/Font.h @@ -0,0 +1,31 @@ +/* + * Copyright (C) 2017 KeePassXC Team + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 or (at your option) + * version 3 of the License. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef KEEPASSX_FONT_H +#define KEEPASSX_FONT_H + +#include + +class Font +{ +public: + static QFont fixedFont(); +private: + Font() {} +}; + +#endif // KEEPASSX_FONT_H diff --git a/src/gui/PasswordEdit.cpp b/src/gui/PasswordEdit.cpp index ad736bf20..b084f9cf0 100644 --- a/src/gui/PasswordEdit.cpp +++ b/src/gui/PasswordEdit.cpp @@ -19,8 +19,7 @@ #include "PasswordEdit.h" #include "core/Config.h" - -#include +#include "gui/Font.h" const QColor PasswordEdit::CorrectSoFarColor = QColor(255, 205, 15); const QColor PasswordEdit::ErrorColor = QColor(255, 125, 125); @@ -33,16 +32,7 @@ PasswordEdit::PasswordEdit(QWidget* parent) updateStylesheet(); // use a monospace font for the password field - QFont passwordFont = QFontDatabase::systemFont(QFontDatabase::FixedFont); -#ifdef Q_OS_WIN - // try to use Consolas on Windows, because the default Courier New has too many similar characters - QFont consolasFont = QFontDatabase().font("Consolas", passwordFont.styleName(), passwordFont.pointSize()); - const QFont defaultFont; - if (passwordFont != defaultFont) { - passwordFont = consolasFont; - } -#endif - + QFont passwordFont = Font::fixedFont(); passwordFont.setLetterSpacing(QFont::PercentageSpacing, 110); setFont(passwordFont); }