From 0f1db5f75e89bef2772cc08818ddf796b6257983 Mon Sep 17 00:00:00 2001 From: Juan Treminio Date: Thu, 19 Dec 2019 16:17:45 -0600 Subject: [PATCH] SplitItemBuilder should reference menu styles --- src/Builder/CliMenuBuilder.php | 10 ++-------- src/Builder/SplitItemBuilder.php | 21 ++++----------------- 2 files changed, 6 insertions(+), 25 deletions(-) diff --git a/src/Builder/CliMenuBuilder.php b/src/Builder/CliMenuBuilder.php index dd6d45f5..469f27be 100644 --- a/src/Builder/CliMenuBuilder.php +++ b/src/Builder/CliMenuBuilder.php @@ -320,6 +320,8 @@ private function processIndividualShortcut(MenuItemInterface $item, callable $ca public function addSplitItem(\Closure $callback) : self { $builder = new SplitItemBuilder($this->menu); + $builder->setCheckboxStyle(clone $this->menu->getCheckboxStyle()) + ->setRadioStyle(clone $this->menu->getRadioStyle()); if ($this->autoShortcuts) { $builder->enableAutoShortcuts($this->autoShortcutsRegex); @@ -327,14 +329,6 @@ public function addSplitItem(\Closure $callback) : self $callback($builder); - if (!$builder->getCheckboxStyle()->hasChangedFromDefaults()) { - $builder->setCheckboxStyle(clone $this->menu->getCheckboxStyle()); - } - - if (!$builder->getRadioStyle()->hasChangedFromDefaults()) { - $builder->setRadioStyle(clone $this->menu->getRadioStyle()); - } - $this->menu->addItem($splitItem = $builder->build()); $this->processSplitItemShortcuts($splitItem); diff --git a/src/Builder/SplitItemBuilder.php b/src/Builder/SplitItemBuilder.php index c71bbfe1..1f6112a6 100644 --- a/src/Builder/SplitItemBuilder.php +++ b/src/Builder/SplitItemBuilder.php @@ -44,23 +44,10 @@ class SplitItemBuilder */ private $autoShortcutsRegex = '/\[(.)\]/'; - /** - * @var CheckboxStyle - */ - private $checkboxStyle; - - /** - * @var RadioStyle - */ - private $radioStyle; - public function __construct(CliMenu $menu) { $this->menu = $menu; $this->splitItem = new SplitItem(); - - $this->checkboxStyle = new CheckboxStyle(); - $this->radioStyle = new RadioStyle(); } public function addItem( @@ -171,12 +158,12 @@ public function build() : SplitItem public function getCheckboxStyle() : CheckboxStyle { - return $this->checkboxStyle; + return $this->menu->getCheckboxStyle(); } public function setCheckboxStyle(CheckboxStyle $style) : self { - $this->checkboxStyle = $style; + $this->menu->setCheckboxStyle($style); return $this; } @@ -190,12 +177,12 @@ public function modifyCheckboxStyle(callable $itemCallable) : self public function getRadioStyle() : RadioStyle { - return $this->radioStyle; + return $this->menu->getRadioStyle(); } public function setRadioStyle(RadioStyle $style) : self { - $this->radioStyle = $style; + $this->menu->setRadioStyle($style); return $this; }