diff --git a/src/CalcViewModel/Common/Utils.h b/src/CalcViewModel/Common/Utils.h index d263644..e0638bf 100644 --- a/src/CalcViewModel/Common/Utils.h +++ b/src/CalcViewModel/Common/Utils.h @@ -188,7 +188,7 @@ public: private: \ static Windows::UI::Xaml::DependencyProperty ^ s_##n##Property; \ \ -public: +private: // Utilities for DependencyProperties namespace Utils diff --git a/src/CalcViewModel/StandardCalculatorViewModel.cpp b/src/CalcViewModel/StandardCalculatorViewModel.cpp index d39dca8..9a7ce17 100644 --- a/src/CalcViewModel/StandardCalculatorViewModel.cpp +++ b/src/CalcViewModel/StandardCalculatorViewModel.cpp @@ -1860,3 +1860,11 @@ void StandardCalculatorViewModel::ValueBitLength::set(CalculatorApp::Common::Bit SetMemorizedNumbersString(); } } + +void StandardCalculatorViewModel::SelectHistoryItem(HistoryItemViewModel ^ item) +{ + SetHistoryExpressionDisplay(item->GetTokens(), item->GetCommands()); + SetExpressionDisplay(item->GetTokens(), item->GetCommands()); + SetPrimaryDisplay(item->Result, false); + IsFToEEnabled = false; +} diff --git a/src/CalcViewModel/StandardCalculatorViewModel.h b/src/CalcViewModel/StandardCalculatorViewModel.h index 8c6644a..0a210ff 100644 --- a/src/CalcViewModel/StandardCalculatorViewModel.h +++ b/src/CalcViewModel/StandardCalculatorViewModel.h @@ -65,7 +65,7 @@ namespace CalculatorApp OBSERVABLE_PROPERTY_RW(Windows::Foundation::Collections::IVector ^, MemorizedNumbers); OBSERVABLE_NAMED_PROPERTY_RW(bool, IsMemoryEmpty); OBSERVABLE_PROPERTY_RW(bool, IsFToEChecked); - OBSERVABLE_PROPERTY_RW(bool, IsFToEEnabled); + OBSERVABLE_PROPERTY_R(bool, IsFToEEnabled); OBSERVABLE_PROPERTY_RW(bool, AreHEXButtonsEnabled); OBSERVABLE_PROPERTY_RW(Platform::String ^, CalculationResultAutomationName); OBSERVABLE_PROPERTY_RW(Platform::String ^, CalculationExpressionAutomationName); @@ -340,15 +340,7 @@ namespace CalculatorApp void OnPinUnpinCommand(Platform::Object ^ parameter); void OnInputChanged(); - void SetPrimaryDisplay(Platform::String ^ displayString, _In_ bool isError); void DisplayPasteError(); - void SetTokens(_Inout_ std::shared_ptr>> const& tokens); - void SetExpressionDisplay( - _Inout_ std::shared_ptr>> const& tokens, - _Inout_ std::shared_ptr>> const& commands); - void SetHistoryExpressionDisplay( - _Inout_ std::shared_ptr>> const& tokens, - _Inout_ std::shared_ptr>> const& commands); void SetParenthesisCount(_In_ unsigned int parenthesisCount); void SetOpenParenthesisCountNarratorAnnouncement(); void OnNoRightParenAdded(); @@ -382,11 +374,19 @@ namespace CalculatorApp { return m_CurrentAngleType; } - + void SelectHistoryItem(HistoryItemViewModel ^ item); private: void SetMemorizedNumbers(const std::vector& memorizedNumbers); void UpdateProgrammerPanelDisplay(); void HandleUpdatedOperandData(CalculationManager::Command cmdenum); + void SetPrimaryDisplay(_In_ Platform::String ^ displayStringValue, _In_ bool isError); + void SetExpressionDisplay( + _Inout_ std::shared_ptr>> const& tokens, + _Inout_ std::shared_ptr>> const& commands); + void SetHistoryExpressionDisplay( + _Inout_ std::shared_ptr>> const& tokens, + _Inout_ std::shared_ptr>> const& commands); + void SetTokens(_Inout_ std::shared_ptr>> const& tokens); NumbersAndOperatorsEnum ConvertIntegerToNumbersAndOperatorsEnum(unsigned int parameter); NumbersAndOperatorsEnum m_CurrentAngleType; wchar_t m_decimalSeparator; diff --git a/src/Calculator/Views/Calculator.xaml.cpp b/src/Calculator/Views/Calculator.xaml.cpp index 2bf867f..68c050e 100644 --- a/src/Calculator/Views/Calculator.xaml.cpp +++ b/src/Calculator/Views/Calculator.xaml.cpp @@ -470,11 +470,7 @@ void Calculator::OnHideHistoryClicked() void Calculator::OnHistoryItemClicked(_In_ HistoryItemViewModel ^ e) { - assert(e->GetTokens() != nullptr); - Model->SetHistoryExpressionDisplay(e->GetTokens(), e->GetCommands()); - Model->SetExpressionDisplay(e->GetTokens(), e->GetCommands()); - Model->SetPrimaryDisplay(e->Result, false); - Model->IsFToEEnabled = false; + Model->SelectHistoryItem(e); CloseHistoryFlyout(); this->Focus(::FocusState::Programmatic); @@ -717,3 +713,4 @@ void Calculator::Calculator_SizeChanged(Object ^ /*sender*/, SizeChangedEventArg AlwaysOnTopResults->UpdateScrollButtons(); } } + diff --git a/src/Calculator/Views/Calculator.xaml.h b/src/Calculator/Views/Calculator.xaml.h index a7b1a92..13a211f 100644 --- a/src/Calculator/Views/Calculator.xaml.h +++ b/src/Calculator/Views/Calculator.xaml.h @@ -69,7 +69,6 @@ public void CloseMemoryFlyout(); void SetDefaultFocus(); - private: void OnLoaded(Platform::Object ^ sender, Windows::UI::Xaml::RoutedEventArgs ^ e);