Move the GncOptionUIType and dirty members to GncOptionUIUtem.

Even though it makes the class not pure virtual any more it is necessary
behavior common to all possible subclasses.
This commit is contained in:
John Ralls
2020-03-10 14:49:49 -07:00
parent 3200bd4966
commit ac0e7063c7
2 changed files with 8 additions and 5 deletions

View File

@@ -44,14 +44,17 @@ using GncOptionUIItemPtr = std::unique_ptr<GncOptionUIItem>;
class GncOptionUIItem
{
public:
GncOptionUIItem() = default;
GncOptionUIItem(GncOptionUIType type) : m_type{type} {}
virtual ~GncOptionUIItem() = default;
virtual GncOptionUIType get_ui_type() const noexcept = 0;
virtual void set_dirty(bool status) noexcept = 0;
virtual bool get_dirty() const noexcept = 0;
GncOptionUIType get_ui_type() const noexcept { return m_type; }
virtual void set_dirty(bool status) noexcept { m_dirty = status; }
virtual bool get_dirty() const noexcept { return m_dirty; }
virtual void clear_ui_item() = 0;
virtual void set_ui_item_from_option(GncOption& option) noexcept = 0;
virtual void set_option_from_ui_item(GncOption& option) noexcept = 0;
private:
GncOptionUIType m_type;
bool m_dirty = false;
};
#endif //GNC_OPTION_UI_HPP__

View File

@@ -522,8 +522,8 @@ class OptionUIItem : public GncOptionUIItem
GncUIType m_widget;
bool m_dirty = false;
public:
OptionUIItem() : GncOptionUIItem{GncOptionUIType::STRING} {}
~OptionUIItem() = default;
GncOptionUIType get_ui_type() const noexcept override { return GncOptionUIType::STRING; }
void set_dirty(bool status) noexcept override { m_dirty = status; }
bool get_dirty() const noexcept override { return m_dirty; }
void clear_ui_item() override { m_widget.clear(); }