gui: fix Qt5/KF5 compatibility

- Remove placeholderText from QML palette block (not available in Qt5)
- Use theme.placeholderTextColor directly instead of palette.placeholderText
- Add Qt version guards for QFontDatabase static vs instance API
- Add Qt version guard for QVariant::typeId vs QVariant::type
- Link KF5::ConfigCore for ollie-gui KF5 build
This commit is contained in:
Levi Neely 2026-07-09 11:26:10 +02:00
parent 7f93543e56
commit dc1816f023
4 changed files with 23 additions and 2 deletions

View File

@ -108,6 +108,7 @@ if(OLLIE_KF5)
Qt5::Quick Qt5::Quick
Qt5::Qml Qt5::Qml
Qt5::QuickControls2 Qt5::QuickControls2
KF5::ConfigCore
) )
# --- Install --- # --- Install ---

View File

@ -29,7 +29,6 @@ ApplicationWindow {
dark: theme.darkColor dark: theme.darkColor
light: theme.lightColor light: theme.lightColor
shadow: theme.shadowColor shadow: theme.shadowColor
placeholderText: theme.placeholderTextColor
} }
// --- Settings Dialog --- // --- Settings Dialog ---
@ -371,7 +370,7 @@ ApplicationWindow {
? "(waiting for output...)" ? "(waiting for output...)"
: "Select or create a session") : "Select or create a session")
font.family: "monospace" font.family: "monospace"
color: dbus.chatText ? palette.text : palette.placeholderText color: dbus.chatText ? palette.text : theme.placeholderTextColor
background: null background: null
onTextChanged: { onTextChanged: {

View File

@ -19,7 +19,11 @@ static QIcon makeBrainIcon()
// Fallback: render FA6 brain glyph from installed font // Fallback: render FA6 brain glyph from installed font
QFont fa("Font Awesome 6 Free Solid"); QFont fa("Font Awesome 6 Free Solid");
#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
if (!QFontDatabase::hasFamily("Font Awesome 6 Free Solid")) { if (!QFontDatabase::hasFamily("Font Awesome 6 Free Solid")) {
#else
if (!QFontDatabase().families().contains("Font Awesome 6 Free Solid")) {
#endif
fa = QFont("Font Awesome 6 Free"); fa = QFont("Font Awesome 6 Free");
fa.setWeight(QFont::Black); fa.setWeight(QFont::Black);
} }

View File

@ -242,7 +242,11 @@ QPalette ThemeManager::paletteFromScheme(const QString &path) const
QColor ThemeManager::parseColor(const QVariant &value) const QColor ThemeManager::parseColor(const QVariant &value) const
{ {
QStringList parts; QStringList parts;
#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
if (value.typeId() == QMetaType::QStringList) { if (value.typeId() == QMetaType::QStringList) {
#else
if (value.type() == QVariant::StringList) {
#endif
parts = value.toStringList(); parts = value.toStringList();
} else { } else {
parts = value.toString().split(','); parts = value.toString().split(',');
@ -329,7 +333,11 @@ void ThemeManager::setFontStyle(const QString &style)
QStringList ThemeManager::availableFamilies() const QStringList ThemeManager::availableFamilies() const
{ {
#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
return QFontDatabase::families(); return QFontDatabase::families();
#else
return QFontDatabase().families();
#endif
} }
QStringList ThemeManager::availableStyles() const QStringList ThemeManager::availableStyles() const
@ -337,7 +345,11 @@ QStringList ThemeManager::availableStyles() const
QString family = m_fontFamily.isEmpty() QString family = m_fontFamily.isEmpty()
? QGuiApplication::font().family() ? QGuiApplication::font().family()
: m_fontFamily; : m_fontFamily;
#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
return QFontDatabase::styles(family); return QFontDatabase::styles(family);
#else
return QFontDatabase().styles(family);
#endif
} }
void ThemeManager::resetFont() void ThemeManager::resetFont()
@ -372,8 +384,13 @@ void ThemeManager::applyFont()
if (!m_fontStyle.isEmpty()) { if (!m_fontStyle.isEmpty()) {
// Use QFontDatabase to resolve style string to weight + italic // Use QFontDatabase to resolve style string to weight + italic
QString family = m_fontFamily.isEmpty() ? font.family() : m_fontFamily; QString family = m_fontFamily.isEmpty() ? font.family() : m_fontFamily;
#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
QFont styled = QFontDatabase::font(family, m_fontStyle, QFont styled = QFontDatabase::font(family, m_fontStyle,
m_fontSize > 0 ? m_fontSize : font.pointSize()); m_fontSize > 0 ? m_fontSize : font.pointSize());
#else
QFont styled = QFontDatabase().font(family, m_fontStyle,
m_fontSize > 0 ? m_fontSize : font.pointSize());
#endif
font.setWeight(styled.weight()); font.setWeight(styled.weight());
font.setItalic(styled.italic()); font.setItalic(styled.italic());
} }