21#include <com/sun/star/uno/Any.hxx>
23#include <com/sun/star/beans/NamedValue.hpp>
24#include <com/sun/star/container/XNameContainer.hpp>
25#include <com/sun/star/container/XNameAccess.hpp>
26#include <com/sun/star/beans/XPropertySet.hpp>
41 : m_eViewType (
eType )
42 , m_sViewName (
std::move( sViewName ))
52 default: assert(
false);
60 ::comphelper::getProcessComponentContext(),
67 catch(
const css::uno::Exception&)
96 catch(
const css::uno::Exception&)
119 css::uno::Reference< css::container::XNameContainer > xSet(
m_xSet, css::uno::UNO_QUERY_THROW);
123 catch(
const css::container::NoSuchElementException&)
125 catch(
const css::uno::Exception&)
141 OUString sWindowState;
144 css::uno::Reference< css::beans::XPropertySet > xNode(
146 css::uno::UNO_QUERY);
150 catch(
const css::uno::Exception&)
153 sWindowState.clear();
176 css::uno::Reference< css::beans::XPropertySet > xNode(
178 css::uno::UNO_QUERY_THROW);
182 catch(
const css::uno::Exception&)
199 css::uno::Reference< css::beans::XPropertySet > xNode(
201 css::uno::UNO_QUERY);
205 catch(
const css::uno::Exception&)
224 css::uno::Reference< css::beans::XPropertySet > xNode(
226 css::uno::UNO_QUERY_THROW);
230 catch(
const css::uno::Exception&)
243 assert(
m_eViewType ==
EViewType::Window &&
"SvtViewOptions::IsVisible()\nCall not allowed for Dialogs, TabDialogs or TabPages! I do nothing!" );
253 css::uno::Reference< css::beans::XPropertySet > xNode(
255 css::uno::UNO_QUERY);
265 catch(
const css::uno::Exception&)
278 assert(
m_eViewType ==
EViewType::Window &&
"SvtViewOptions::SetVisible()\nCall not allowed for Dialogs, TabDialogs or TabPages! I do nothing!" );
282 css::uno::Reference< css::beans::XPropertySet > xNode(
284 css::uno::UNO_QUERY_THROW);
288 catch(
const css::uno::Exception&)
300 assert(
m_eViewType ==
EViewType::Window &&
"SvtViewOptions::IsVisible()\nCall not allowed for Dialogs, TabDialogs or TabPages! I do nothing!" );
309 css::uno::Reference< css::container::XNameAccess > xNode(
311 css::uno::UNO_QUERY);
312 css::uno::Reference< css::container::XNameAccess > xUserData;
317 const css::uno::Sequence<OUString> lNames = xUserData->getElementNames();
318 sal_Int32 c = lNames.getLength();
319 css::uno::Sequence< css::beans::NamedValue > lUserData(c);
321 std::transform(lNames.begin(), lNames.end(), lUserData.getArray(),
322 [&xUserData](
const OUString& rName) -> css::beans::NamedValue {
323 return { rName, xUserData->getByName(rName) }; });
328 catch(
const css::uno::Exception&)
333 return css::uno::Sequence< css::beans::NamedValue >();
340 css::uno::Reference< css::container::XNameAccess > xNode(
342 css::uno::UNO_QUERY_THROW);
343 css::uno::Reference< css::container::XNameContainer > xUserData;
347 for (
const css::beans::NamedValue& rData : lData)
349 if (xUserData->hasByName(rData.Name))
350 xUserData->replaceByName(rData.Name, rData.Value);
352 xUserData->insertByName(rData.Name, rData.Value);
357 catch(
const css::uno::Exception&)
368 css::uno::Reference< css::container::XNameAccess > xNode(
370 css::uno::UNO_QUERY);
371 css::uno::Reference< css::container::XNameAccess > xUserData;
375 aItem = xUserData->getByName(sItemName);
377 catch(
const css::container::NoSuchElementException&)
379 catch(
const css::uno::Exception&)
389 const css::uno::Any& aValue )
393 css::uno::Reference< css::container::XNameAccess > xNode(
395 css::uno::UNO_QUERY_THROW);
396 css::uno::Reference< css::container::XNameContainer > xUserData;
400 if (xUserData->hasByName(sItemName))
401 xUserData->replaceByName(sItemName, aValue);
403 xUserData->insertByName(sItemName, aValue);
407 catch(
const css::uno::Exception&)
425 bool bCreateIfMissing)
const
427 css::uno::Reference< css::uno::XInterface > xNode;
431 if (bCreateIfMissing)
436 m_xSet->getByName(sNode) >>= xNode;
439 catch(
const css::container::NoSuchElementException&)
441 catch(
const css::uno::Exception&)
css::uno::Reference< css::container::XNameAccess > m_xRoot
void SetPageID(const OUString &rID)
css::uno::Any GetUserItem(const OUString &sName) const
void SetUserItem(const OUString &sName, const css::uno::Any &aValue)
bool HasVisible() const
Return true if the "Visible" property actually has a non-nil value.
void SetWindowState(const OUString &sState)
void SetUserData(const css::uno::Sequence< css::beans::NamedValue > &lData)
OUString GetPageID() const
css::uno::Reference< css::uno::XInterface > impl_getSetNode(const OUString &sNode, bool bCreateIfMissing) const
EViewType m_eViewType
specify which list of views in configuration is used! This can't be a static value!...
css::uno::Reference< css::container::XNameAccess > m_xSet
OUString GetWindowState() const
void SetVisible(bool bState)
css::uno::Sequence< css::beans::NamedValue > GetUserData() const
SvtViewOptions(EViewType eType, OUString sViewName)
static css::uno::Reference< css::uno::XInterface > makeSureSetNodeExists(const css::uno::Reference< css::uno::XInterface > &xCFG, const OUString &sRelPathToSet, const OUString &sSetNode)
static css::uno::Reference< css::uno::XInterface > openConfig(const css::uno::Reference< css::uno::XComponentContext > &rxContext, const OUString &sPackage, EConfigurationModes eMode)
static void flush(const css::uno::Reference< css::uno::XInterface > &xCFG)
#define TOOLS_WARN_EXCEPTION(area, stream)
constexpr OUStringLiteral PROPERTY_VISIBLE
constexpr OUStringLiteral PROPERTY_USERDATA
constexpr OUStringLiteral PROPERTY_WINDOWSTATE
constexpr OUStringLiteral PACKAGE_VIEWS
constexpr OUStringLiteral PROPERTY_PAGEID