diff options
Diffstat (limited to 'Userland/Libraries/LibGUI/ModelEditingDelegate.h')
-rw-r--r-- | Userland/Libraries/LibGUI/ModelEditingDelegate.h | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/Userland/Libraries/LibGUI/ModelEditingDelegate.h b/Userland/Libraries/LibGUI/ModelEditingDelegate.h index 2678f25cfd..a910b67b05 100644 --- a/Userland/Libraries/LibGUI/ModelEditingDelegate.h +++ b/Userland/Libraries/LibGUI/ModelEditingDelegate.h @@ -14,6 +14,11 @@ namespace GUI { class ModelEditingDelegate { public: + enum SelectionBehavior { + DoNotSelect, + SelectAll, + }; + virtual ~ModelEditingDelegate() { } void bind(Model& model, const ModelIndex& index) @@ -32,7 +37,7 @@ public: Function<void()> on_rollback; 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() { } @@ -76,11 +81,12 @@ public: return textbox; } 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()); textbox.set_text(value.to_string()); - textbox.select_all(); + if (selection_behavior == SelectionBehavior::SelectAll) + textbox.select_all(); } }; |