feat: implement configurable font settings for VTK viewports and GUI elements with persistent preferences.

This commit is contained in:
AndreaRigoni
2026-04-15 14:50:46 +00:00
parent bf4006ff91
commit 24ec326715
20 changed files with 433 additions and 28 deletions

View File

@@ -17,6 +17,7 @@ class QSlider;
#include "Core/Property.h"
#include "Core/Object.h"
#include "Core/Signal.h"
#include "Core/FontConfig.h"
#include "Math/Dense.h"
#include "Settings.h"
@@ -32,6 +33,9 @@ public:
virtual ~PropertyWidgetBase();
PropertyBase* getProperty() const { return m_BaseProperty; }
signals:
void updated();
protected:
PropertyBase* m_BaseProperty;
QHBoxLayout* m_Layout;
@@ -121,7 +125,10 @@ public:
connect(m_Edits[i], &UnitLineEdit::valueManualChanged, [this, i](double val){
VecT v = m_Prop->Get();
v(i) = (typename VecT::Scalar)val;
if (m_Prop->Get() != v) m_Prop->Set(v);
if (m_Prop->Get() != v) {
m_Prop->Set(v);
emit updated();
}
});
}
updateEdits();
@@ -191,6 +198,19 @@ private:
QLineEdit* m_LineEdit;
};
class FontPropertyWidget : public PropertyWidgetBase {
Q_OBJECT
public:
FontPropertyWidget(Property<FontConfig>* prop, QWidget* parent = nullptr);
virtual ~FontPropertyWidget();
private slots:
void onClicked();
private:
void updateButtonText();
Property<FontConfig>* m_Prop;
QPushButton* m_Button;
};
class PropertyEditor : public QWidget {
Q_OBJECT
public:
@@ -202,6 +222,9 @@ public:
m_Factories[std::type_index(typeid(T))] = factory;
}
signals:
void propertyUpdated(PropertyBase* prop = nullptr);
private:
void clear();
uLib::Object* m_Object;