Files
libreoffice/sw/inc/unocrsrhelper.hxx
Stephan Bergmann e57ca02849 Remove dynamic exception specifications
...(for now, from LIBO_INTERNAL_CODE only).  See the mail thread starting at
<https://lists.freedesktop.org/archives/libreoffice/2017-January/076665.html>
"Dynamic Exception Specifications" for details.

Most changes have been done automatically by the rewriting loplugin:dynexcspec
(after enabling the rewriting mode, to be committed shortly).  The way it only
removes exception specs from declarations if it also sees a definition, it
identified some dead declarations-w/o-definitions (that have been removed
manually) and some cases where a definition appeared in multiple include files
(which have also been cleaned up manually).  There's also been cases of macro
paramters (that were used to abstract over exception specs) that have become
unused now (and been removed).

Furthermore, some code needed to be cleaned up manually
(avmedia/source/quicktime/ and connectivity/source/drivers/kab/), as I had no
configurations available that would actually build that code.  Missing @throws
documentation has not been applied in such manual clean-up.

Change-Id: I3408691256c9b0c12bc5332de976743626e13960
Reviewed-on: https://gerrit.libreoffice.org/33574
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2017-01-26 12:54:43 +00:00

250 lines
10 KiB
C++

/* -*- 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 .
*/
#ifndef INCLUDED_SW_INC_UNOCRSRHELPER_HXX
#define INCLUDED_SW_INC_UNOCRSRHELPER_HXX
#include <com/sun/star/beans/XPropertyState.hpp>
#include <com/sun/star/beans/XPropertySet.hpp>
#include <com/sun/star/uno/DeploymentException.hpp>
#include <swtypes.hxx>
#include <flyenum.hxx>
#include <pam.hxx>
#include <map>
class SfxItemSet;
class SfxItemPropertySet;
struct SfxItemPropertySimpleEntry;
class SdrObject;
class SwTextNode;
class SwCursor;
class SwUnoCursor;
class SwUnoTableCursor;
class SwFormatColl;
struct SwSortOptions;
class SwDoc;
namespace sw { namespace mark { class IMark; } }
namespace com{ namespace sun{ namespace star{
namespace uno{
class Any;
}
namespace beans{
struct PropertyValue;
}
namespace text {
class XTextContent;
class XFlatParagraphIterator;
}
}}}
enum SwGetPropertyStatesCaller
{
SW_PROPERTY_STATE_CALLER_DEFAULT,
SW_PROPERTY_STATE_CALLER_SWX_TEXT_PORTION,
SW_PROPERTY_STATE_CALLER_SINGLE_VALUE_ONLY,
SW_PROPERTY_STATE_CALLER_SWX_TEXT_PORTION_TOLERANT
};
namespace SwUnoCursorHelper
{
class SwAnyMapHelper
{
private:
// keep Any's mapped by (WhichId << 16 ) + (MemberId)
std::map<sal_uInt32, css::uno::Any> m_Map;
public:
void SetValue( sal_uInt16 nWhichId, sal_uInt16 nMemberId, const css::uno::Any& rAny );
bool FillValue( sal_uInt16 nWhichId, sal_uInt16 nMemberId, const css::uno::Any*& pAny );
};
css::uno::Reference< css::text::XTextContent >
GetNestedTextContent(SwTextNode & rTextNode, sal_Int32 const nIndex,
bool const bParent);
bool getCursorPropertyValue(const SfxItemPropertySimpleEntry& rEntry
, SwPaM& rPam
, css::uno::Any *pAny
, css::beans::PropertyState& eState
, const SwTextNode* pNode = nullptr );
void GetCurPageStyle(SwPaM& rPaM, OUString &rString);
inline bool IsStartOfPara(SwPaM& rUnoCursor)
{ return rUnoCursor.GetPoint()->nContent == 0;}
inline bool IsEndOfPara(SwPaM& rUnoCursor)
{ return rUnoCursor.GetContentNode() &&
rUnoCursor.GetPoint()->nContent == rUnoCursor.GetContentNode()->Len();}
void resetCursorPropertyValue(const SfxItemPropertySimpleEntry& rEntry, SwPaM& rPam);
/// @throws css::lang::IllegalArgumentException
/// @throws css::io::IOException
/// @throws css::uno::RuntimeException
void InsertFile(SwUnoCursor* pUnoCursor,
const OUString& rURL,
const css::uno::Sequence< css::beans::PropertyValue >& rOptions);
void getNumberingProperty(
SwPaM& rPam,
css::beans::PropertyState& eState,
css::uno::Any *pAny );
void setNumberingProperty(
const css::uno::Any& rValue,
SwPaM& rPam);
sal_Int16 IsNodeNumStart(
SwPaM& rPam,
css::beans::PropertyState& eState);
bool DocInsertStringSplitCR( SwDoc &rDoc,
const SwPaM &rNewCursor, const OUString &rText,
const bool bForceExpandHints );
/// @throws css::lang::IllegalArgumentException
/// @throws css::uno::RuntimeException
void makeRedline( SwPaM& rPaM, const OUString& RedlineType,
const css::uno::Sequence< css::beans::PropertyValue >& RedlineProperties );
/// @throws css::lang::IllegalArgumentException
/// @throws css::uno::RuntimeException
void makeTableRowRedline( SwTableLine& rTableLine, const OUString& RedlineType,
const css::uno::Sequence< css::beans::PropertyValue >& RedlineProperties );
/// @throws css::lang::IllegalArgumentException
/// @throws css::uno::RuntimeException
SW_DLLPUBLIC void makeTableCellRedline( SwTableBox& rTableBox, const OUString& RedlineType,
const css::uno::Sequence< css::beans::PropertyValue >& RedlineProperties );
/// @param bTableMode: attributes should be applied to a table selection
void SetCursorAttr(SwPaM & rPam, const SfxItemSet & rSet,
const SetAttrMode nAttrMode,
const bool bTableMode = false);
void GetCursorAttr(SwPaM & rPam, SfxItemSet & rSet,
const bool bOnlyTextAttr = false,
const bool bGetFromChrFormat = true);
void GetTextFromPam(SwPaM & rPam, OUString & rBuffer);
SwFormatColl * GetCurTextFormatColl(SwPaM & rPam, const bool bConditional);
void SelectPam(SwPaM & rPam, const bool bExpand);
void SetString(SwCursor & rCursor, const OUString & rString);
css::uno::Sequence< css::beans::PropertyValue >
CreateSortDescriptor(const bool bFromTable);
bool ConvertSortProperties(
const css::uno::Sequence< css::beans::PropertyValue >& rDescriptor,
SwSortOptions & rSortOpt);
/// @param bTableMode: attributes should be applied to a table selection
/// @throws css::beans::UnknownPropertyException
/// @throws css::beans::PropertyVetoException
/// @throws css::lang::IllegalArgumentException
/// @throws css::lang::WrappedTargetException
/// @throws css::uno::RuntimeException
void SetPropertyValue(
SwPaM& rPaM,
const SfxItemPropertySet & rPropSet,
const OUString & rPropertyName,
const css::uno::Any & rValue,
const SetAttrMode nAttrMode = SetAttrMode::DEFAULT);
/// @param bTableMode: attributes should be applied to a table selection
/// @throws css::beans::UnknownPropertyException
/// @throws css::beans::PropertyVetoException
/// @throws css::lang::IllegalArgumentException
/// @throws css::lang::WrappedTargetException
/// @throws css::uno::RuntimeException
void SetPropertyValues(
SwPaM& rPaM,
const SfxItemPropertySet & rPropSet,
const css::uno::Sequence< css::beans::PropertyValue > &
rPropertyValues,
const SetAttrMode nAttrMode = SetAttrMode::DEFAULT,
const bool bTableMode = false);
/// @throws css::beans::UnknownPropertyException
/// @throws css::lang::WrappedTargetException
/// @throws css::uno::RuntimeException
css::uno::Any GetPropertyValue(
SwPaM& rPaM,
const SfxItemPropertySet & rPropSet,
const OUString & rPropertyName);
/// @throws css::beans::UnknownPropertyException
/// @throws css::uno::RuntimeException
css::uno::Sequence< css::beans::PropertyState > GetPropertyStates(
SwPaM & rPaM,
const SfxItemPropertySet & rPropSet,
const css::uno::Sequence< OUString >&
rPropertyNames,
const SwGetPropertyStatesCaller eCaller =
SW_PROPERTY_STATE_CALLER_DEFAULT);
/// @throws css::beans::UnknownPropertyException
/// @throws css::uno::RuntimeException
css::beans::PropertyState GetPropertyState(
SwPaM & rPaM,
const SfxItemPropertySet & rPropSet,
const OUString & rPropertyName);
/// @throws css::beans::UnknownPropertyException
/// @throws css::uno::RuntimeException
void SetPropertyToDefault(
SwPaM & rPaM,
const SfxItemPropertySet & rPropSet,
const OUString & rPropertyName);
/// @throws css::beans::UnknownPropertyException
/// @throws css::lang::WrappedTargetException
/// @throws css::uno::RuntimeException
css::uno::Any GetPropertyDefault(
SwPaM & rPaM,
const SfxItemPropertySet & rPropSet,
const OUString & rPropertyName);
bool SetPageDesc(
const css::uno::Any& rValue,
SwDoc & rDoc, SfxItemSet & rSet);
/// @throws css::lang::IllegalArgumentException
/// @throws css::uno::RuntimeException
void SetTextFormatColl(const css::uno::Any & rAny, SwPaM & rPaM);
/// @throws css::lang::IllegalArgumentException
/// @throws css::uno::RuntimeException
/// @throws css::uno::DeploymentException
bool SetCursorPropertyValue(
SfxItemPropertySimpleEntry const& rEntry,
css::uno::Any const& rValue,
SwPaM & rPam, SfxItemSet & rItemSet);
/// try to get something that can be selected out of the XInterface
/// at most one of the out parameters gets assigned a non-null value
/// o_rpPaM is newly allocated and must be deleted; other parameters not
SW_DLLPUBLIC void GetSelectableFromAny(
css::uno::Reference<css::uno::XInterface> const& xIfc,
SwDoc & rTargetDoc,
SwPaM *& o_rpPaM, std::pair<OUString, FlyCntType> & o_rFrame,
OUString & o_rTableName, SwUnoTableCursor const*& o_rpTableCursor,
::sw::mark::IMark const*& o_rpMark,
std::vector<SdrObject *> & o_rSdrObjects);
css::uno::Reference<css::text::XFlatParagraphIterator>
CreateFlatParagraphIterator(SwDoc &, sal_Int32, bool);
} // namespace SwUnoCursorHelper
#endif
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */