feat: implement configurable font settings for VTK viewports and GUI elements with persistent preferences.
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user