This commit is contained in:
2026-02-07 08:28:56 +03:00
parent eff857a55e
commit 451ddd9ae0
30 changed files with 3993 additions and 1233 deletions
+27 -39
View File
@@ -1,4 +1,5 @@
#include "ffontsetting.h"
#include "filemanager.h"
#include "qdebug.h"
#include "qdir.h"
#include "ui_ffontsetting.h"
@@ -48,58 +49,45 @@ void FFontSetting::setupColorComboBox(QComboBox* comboBox)
void FFontSetting::loadFonts()
{
QString fontsPath = "fonts";
QDir fontsDir(fontsPath);
// Загружаем шрифты из пользовательской папки
QString userFontsPath = FileManager::instance().getPath(FileManager::Fonts);
QDir userFontsDir(userFontsPath);
if (fontsDir.exists()) {
QStringList fontFiles = fontsDir.entryList(QStringList() << "*.ttf" << "*.otf" << "*.ttc",
QDir::Files);
// Список всех загруженных шрифтов
QStringList allFontFamilies;
// Загружаем пользовательские шрифты
if (userFontsDir.exists()) {
QStringList fontFiles = userFontsDir.entryList(QStringList() << "*.ttf" << "*.otf" << "*.ttc", QDir::Files);
foreach (const QString &fontFile, fontFiles) {
QString fontPath = fontsDir.absoluteFilePath(fontFile);
QString fontPath = userFontsDir.absoluteFilePath(fontFile);
int fontId = QFontDatabase::addApplicationFont(fontPath);
if (fontId != -1) {
QStringList fontFamilies = QFontDatabase::applicationFontFamilies(fontId);
} else {
allFontFamilies.append(fontFamilies);
}
}
}
// ОБНОВЛЯЕМ СПИСОК ШРИФТОВ В КОМБОБОКСЕ
ui->cbFontStyle->clear(); // Очищаем старый список
// Добавляем системные шрифты Windows
QFontDatabase fontDatabase;
QStringList systemFamilies = fontDatabase.families();
allFontFamilies.append(systemFamilies);
// Получаем все шрифты через объект QFontDatabase
QFontDatabase fontDatabase;
QStringList fontFamilies = fontDatabase.families(); // Получаем все шрифты
// Удаляем дубликаты
allFontFamilies.removeDuplicates();
allFontFamilies.sort();
// ИЛИ используйте статический метод с параметром:
// QStringList fontFamilies = QFontDatabase::families(QFontDatabase::Any);
// Заполняем ComboBox
ui->cbFontStyle->clear();
ui->cbFontStyle->addItems(allFontFamilies);
ui->cbFontStyle->addItems(fontFamilies); // Добавляем все шрифты
// Устанавливаем шрифт по умолчанию
int defaultIndex = ui->cbFontStyle->findText("Arial");
if (defaultIndex >= 0) {
ui->cbFontStyle->setCurrentIndex(defaultIndex);
}
// Показываем количество доступных шрифтов
} else {
// Загружаем системные шрифты, если папки нет
QFontDatabase fontDatabase;
QStringList fontFamilies = fontDatabase.families();
ui->cbFontStyle->clear();
ui->cbFontStyle->addItems(fontFamilies);
int defaultIndex = ui->cbFontStyle->findText("Arial");
if (defaultIndex >= 0) {
ui->cbFontStyle->setCurrentIndex(defaultIndex);
}
// Проверяем альтернативные пути
QString appDir = QApplication::applicationDirPath();
QString altPath = appDir + "/fonts";
// Устанавливаем шрифт по умолчанию
int defaultIndex = ui->cbFontStyle->findText("Arial");
if (defaultIndex >= 0) {
ui->cbFontStyle->setCurrentIndex(defaultIndex);
}
}