|
@@ -14,6 +14,11 @@ namespace GUI {
|
|
|
|
|
|
class ModelEditingDelegate {
|
|
class ModelEditingDelegate {
|
|
public:
|
|
public:
|
|
|
|
+ enum SelectionBehavior {
|
|
|
|
+ DoNotSelect,
|
|
|
|
+ SelectAll,
|
|
|
|
+ };
|
|
|
|
+
|
|
virtual ~ModelEditingDelegate() { }
|
|
virtual ~ModelEditingDelegate() { }
|
|
|
|
|
|
void bind(Model& model, const ModelIndex& index)
|
|
void bind(Model& model, const ModelIndex& index)
|
|
@@ -32,7 +37,7 @@ public:
|
|
Function<void()> on_rollback;
|
|
Function<void()> on_rollback;
|
|
|
|
|
|
virtual Variant value() const = 0;
|
|
virtual Variant value() const = 0;
|
|
- virtual void set_value(const Variant&) = 0;
|
|
|
|
|
|
+ virtual void set_value(Variant const&, SelectionBehavior selection_behavior = SelectionBehavior::SelectAll) = 0;
|
|
|
|
|
|
virtual void will_begin_editing() { }
|
|
virtual void will_begin_editing() { }
|
|
|
|
|
|
@@ -76,11 +81,12 @@ public:
|
|
return textbox;
|
|
return textbox;
|
|
}
|
|
}
|
|
virtual Variant value() const override { return static_cast<const TextBox*>(widget())->text(); }
|
|
virtual Variant value() const override { return static_cast<const TextBox*>(widget())->text(); }
|
|
- virtual void set_value(const Variant& value) override
|
|
|
|
|
|
+ virtual void set_value(Variant const& value, SelectionBehavior selection_behavior) override
|
|
{
|
|
{
|
|
auto& textbox = static_cast<TextBox&>(*widget());
|
|
auto& textbox = static_cast<TextBox&>(*widget());
|
|
textbox.set_text(value.to_string());
|
|
textbox.set_text(value.to_string());
|
|
- textbox.select_all();
|
|
|
|
|
|
+ if (selection_behavior == SelectionBehavior::SelectAll)
|
|
|
|
+ textbox.select_all();
|
|
}
|
|
}
|
|
};
|
|
};
|
|
|
|
|