/* -*- 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/. * * This file incorporates work covered by the following license notice: * * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed * with this work for additional information regarding copyright * ownership. The ASF licenses this file to you under the Apache * License, Version 2.0 (the "License"); you may not use this file * except in compliance with the License. You may obtain a copy of * the License at http://www.apache.org/licenses/LICENSE-2.0 . */ #include "imestatuswindow.hxx" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include //TO-Do, merge into framework/inc/helpers/mischelpers.hxx and deliver class WeakPropertyChangeListener : public ::cppu::WeakImplHelper { private: css::uno::WeakReference mxOwner; public: explicit WeakPropertyChangeListener(css::uno::Reference xOwner) : mxOwner(xOwner) { } virtual ~WeakPropertyChangeListener() { } virtual void SAL_CALL propertyChange(const css::beans::PropertyChangeEvent &rEvent ) throw(css::uno::RuntimeException, std::exception) override { css::uno::Reference xOwner(mxOwner.get(), css::uno::UNO_QUERY); if (xOwner.is()) xOwner->propertyChange(rEvent); } // lang.XEventListener virtual void SAL_CALL disposing(const css::lang::EventObject& rEvent) throw(css::uno::RuntimeException, std::exception) override { css::uno::Reference xOwner(mxOwner.get(), css::uno::UNO_QUERY); if (xOwner.is()) xOwner->disposing(rEvent); } }; using sfx2::appl::ImeStatusWindow; ImeStatusWindow::ImeStatusWindow( css::uno::Reference< css::uno::XComponentContext > const & rxContext): m_xContext(rxContext), m_bDisposed(false) {} void ImeStatusWindow::init() { if (Application::CanToggleImeStatusWindow()) try { bool bShow; if (getConfig()->getPropertyValue("ShowStatusWindow") >>= bShow) Application::ShowImeStatusWindow(bShow); } catch (css::uno::Exception &) { OSL_FAIL("com.sun.star.uno.Exception"); // Degrade gracefully and use the VCL-supplied default if no // configuration is available. } } bool ImeStatusWindow::isShowing() { try { bool bShow(false); if (getConfig()->getPropertyValue("ShowStatusWindow") >>= bShow) return bShow; } catch (css::uno::Exception &) { OSL_FAIL("com.sun.star.uno.Exception"); // Degrade gracefully and use the VCL-supplied default if no // configuration is available. } return Application::GetShowImeStatusWindowDefault(); } void ImeStatusWindow::show(bool bShow) { try { css::uno::Reference< css::beans::XPropertySet > xConfig(getConfig()); xConfig->setPropertyValue( "ShowStatusWindow", css::uno::makeAny(bShow)); css::uno::Reference< css::util::XChangesBatch > xCommit( xConfig, css::uno::UNO_QUERY); // Degrade gracefully by not saving the settings permanently: if (xCommit.is()) xCommit->commitChanges(); // Alternatively, setting the VCL status could be done even if updating // the configuration failed: Application::ShowImeStatusWindow(bShow); } catch (css::uno::Exception &) { OSL_FAIL("com.sun.star.uno.Exception"); } } bool ImeStatusWindow::canToggle() { return Application::CanToggleImeStatusWindow(); } ImeStatusWindow::~ImeStatusWindow() { if (m_xConfig.is() && m_xConfigListener.is()) // We should never get here, but just in case... try { m_xConfig->removePropertyChangeListener( "ShowStatusWindow", m_xConfigListener); } catch (css::uno::Exception &) { OSL_FAIL("com.sun.star.uno.RuntimeException"); } } void SAL_CALL ImeStatusWindow::disposing(css::lang::EventObject const & ) throw (css::uno::RuntimeException, std::exception) { osl::MutexGuard aGuard(m_aMutex); m_xConfig = nullptr; m_bDisposed = true; } void SAL_CALL ImeStatusWindow::propertyChange(css::beans::PropertyChangeEvent const & ) throw (css::uno::RuntimeException, std::exception) { SolarMutexGuard aGuard; SfxApplication* pApp = SfxApplication::Get(); if (pApp) pApp->Invalidate(SID_SHOW_IME_STATUS_WINDOW); } css::uno::Reference< css::beans::XPropertySet > ImeStatusWindow::getConfig() { css::uno::Reference< css::beans::XPropertySet > xConfig; bool bAdd = false; { osl::MutexGuard aGuard(m_aMutex); if (!m_xConfig.is()) { if (m_bDisposed) throw css::lang::DisposedException(); if (!m_xContext.is()) throw css::uno::RuntimeException( OUString("null comphelper::getProcessServiceFactory"), nullptr); css::uno::Reference< css::lang::XMultiServiceFactory > xProvider = css::configuration::theDefaultProvider::get( m_xContext ); css::beans::PropertyValue aArg( OUString("nodepath"), -1, css::uno::makeAny( OUString( "/org.openoffice.Office.Common/I18N/InputMethod")), css::beans::PropertyState_DIRECT_VALUE); css::uno::Sequence< css::uno::Any > aArgs(1); aArgs[0] <<= aArg; m_xConfig.set( xProvider->createInstanceWithArguments( "com.sun.star.configuration.ConfigurationUpdateAccess", aArgs), css::uno::UNO_QUERY); if (!m_xConfig.is()) throw css::uno::RuntimeException( OUString( "null com.sun.star.configuration." "ConfigurationUpdateAccess"), nullptr); bAdd = true; } xConfig = m_xConfig; } if (bAdd) { // Exceptions here could be handled individually, to support graceful // degradation (no update notification mechanism in this case---but also // no dispose notifications): m_xConfigListener = new WeakPropertyChangeListener(this); xConfig->addPropertyChangeListener( "ShowStatusWindow", m_xConfigListener); } return xConfig; } /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ ue='libreoffice-4-1'>libreoffice-4-1 LibreOffice 界面翻译代码仓库文档基金会
aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Lohmaier <lohmaier+LibreOffice@googlemail.com>2017-10-19 13:24:14 +0200
committerChristian Lohmaier <lohmaier+LibreOffice@googlemail.com>2017-10-19 13:50:14 +0200
commitdedc237384aa088b21796e0eb6d23501e00aaf89 (patch)
tree7beebacfb4d3bc93727d23f08ac55f03c848af1e /source/te/sw/messages.po
parent639342ecb83334102cb3659a5894643ac64d7327 (diff)
update templates for 6.0.0 alpha1
Change-Id: Ie5bf8ab575cb94b341c277daa0cd9f6f2f6871f0
Diffstat (limited to 'source/te/sw/messages.po')
-rw-r--r--source/te/sw/messages.po21963
1 files changed, 9394 insertions, 12569 deletions
diff --git a/source/te/sw/messages.po b/source/te/sw/messages.po
index d303b0a0ef9..a8428d8a7f7 100644
--- a/source/te/sw/messages.po
+++ b/source/te/sw/messages.po