summaryrefslogtreecommitdiff
path: root/Userland/Libraries/LibGUI/ModelEditingDelegate.h
diff options
context:
space:
mode:
Diffstat (limited to 'Userland/Libraries/LibGUI/ModelEditingDelegate.h')
-rw-r--r--Userland/Libraries/LibGUI/ModelEditingDelegate.h12
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();
}
};