From 267c6f2ac71f92999e969232431ba04678e7437e Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Mon, 15 Apr 2024 07:54:39 +0200 Subject: Adding upstream version 4:24.2.0. Signed-off-by: Daniel Baumann --- sc/source/ui/optdlg/tpcompatibility.cxx | 103 ++++++++++++++++++++++++++++++++ 1 file changed, 103 insertions(+) create mode 100644 sc/source/ui/optdlg/tpcompatibility.cxx (limited to 'sc/source/ui/optdlg/tpcompatibility.cxx') diff --git a/sc/source/ui/optdlg/tpcompatibility.cxx b/sc/source/ui/optdlg/tpcompatibility.cxx new file mode 100644 index 0000000000..cc54635f33 --- /dev/null +++ b/sc/source/ui/optdlg/tpcompatibility.cxx @@ -0,0 +1,103 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +#undef SC_DLLIMPLEMENTATION + +#include +#include + +#include +#include +#include + +ScTpCompatOptions::ScTpCompatOptions(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet &rCoreAttrs) + : SfxTabPage(pPage, pController, "modules/scalc/ui/optcompatibilitypage.ui", "OptCompatibilityPage", &rCoreAttrs) + , m_xLbKeyBindings(m_xBuilder->weld_combo_box("keybindings")) + , m_xBtnLink(m_xBuilder->weld_check_button("cellLinkCB")) +{ +} + +ScTpCompatOptions::~ScTpCompatOptions() +{ +} + +std::unique_ptr ScTpCompatOptions::Create(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet *rCoreAttrs) +{ + return std::make_unique(pPage, pController, *rCoreAttrs); +} + +OUString ScTpCompatOptions::GetAllStrings() +{ + OUString sAllStrings; + OUString labels[] = { "label1", "label2" }; + + for (const auto& label : labels) + { + if (const auto& pString = m_xBuilder->weld_label(label)) + sAllStrings += pString->get_label() + " "; + } + + // id "keybindings" GtkComboBoxText is not included + + return sAllStrings.replaceAll("_", ""); +} + +bool ScTpCompatOptions::FillItemSet(SfxItemSet *rCoreAttrs) +{ + bool bRet = false; + if (m_xLbKeyBindings->get_value_changed_from_saved()) + { + rCoreAttrs->Put( + SfxUInt16Item( + SID_SC_OPT_KEY_BINDING_COMPAT, m_xLbKeyBindings->get_active())); + bRet = true; + } + if (m_xBtnLink->get_state_changed_from_saved()) + { + rCoreAttrs->Put(SfxBoolItem(SID_SC_OPT_LINKS, m_xBtnLink->get_active())); + bRet = true; + } + + return bRet; +} + +void ScTpCompatOptions::Reset(const SfxItemSet *rCoreAttrs) +{ + if (const SfxUInt16Item* p16Item = rCoreAttrs->GetItemIfSet(SID_SC_OPT_KEY_BINDING_COMPAT)) + { + ScOptionsUtil::KeyBindingType eKeyB = + static_cast(p16Item->GetValue()); + + switch (eKeyB) + { + case ScOptionsUtil::KEY_DEFAULT: + m_xLbKeyBindings->set_active(0); + break; + case ScOptionsUtil::KEY_OOO_LEGACY: + m_xLbKeyBindings->set_active(1); + break; + default: + ; + } + } + m_xLbKeyBindings->save_value(); + + if (const SfxBoolItem* pbItem = rCoreAttrs->GetItemIfSet(SID_SC_OPT_LINKS)) + { + m_xBtnLink->set_active(pbItem->GetValue()); + } + m_xBtnLink->save_state(); +} + +DeactivateRC ScTpCompatOptions::DeactivatePage(SfxItemSet* /*pSet*/) +{ + return DeactivateRC::KeepPage; +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ -- cgit v1.2.3