refactor
This commit is contained in:
+27
-39
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user